diff --git a/rust/scx_utils/src/builder.rs b/rust/scx_utils/src/builder.rs index f5e35b9..8ae6042 100644 --- a/rust/scx_utils/src/builder.rs +++ b/rust/scx_utils/src/builder.rs @@ -45,7 +45,7 @@ impl Builder { let bindings = bindgen::Builder::default() .header("bindings.h") .allowlist_type("scx_exit_kind") - .allowlist_type("scx_internal_consts") + .allowlist_type("scx_consts") .parse_callbacks(Box::new(bindgen::CargoCallbacks)) .generate() .expect("Unable to generate bindings"); diff --git a/rust/scx_utils/src/lib.rs b/rust/scx_utils/src/lib.rs index 010f78a..239483b 100644 --- a/rust/scx_utils/src/lib.rs +++ b/rust/scx_utils/src/lib.rs @@ -43,7 +43,7 @@ pub use builder::Builder; mod user_exit_info; pub use user_exit_info::ScxExitKind; -pub use user_exit_info::ScxInternalConsts; +pub use user_exit_info::ScxConsts; pub use user_exit_info::UeiDumpPtr; pub use user_exit_info::UserExitInfo; pub use user_exit_info::UEI_DUMP_PTR_MUTEX; diff --git a/rust/scx_utils/src/user_exit_info.rs b/rust/scx_utils/src/user_exit_info.rs index 349da0b..ee36e98 100644 --- a/rust/scx_utils/src/user_exit_info.rs +++ b/rust/scx_utils/src/user_exit_info.rs @@ -29,8 +29,8 @@ pub enum ScxExitKind { ErrorStall = bindings::scx_exit_kind_SCX_EXIT_ERROR_STALL as isize, } -pub enum ScxInternalConsts { - ExitDumpDflLen = bindings::scx_internal_consts_SCX_EXIT_DUMP_DFL_LEN as isize, +pub enum ScxConsts { + ExitDumpDflLen = bindings::scx_consts_SCX_EXIT_DUMP_DFL_LEN as isize, } /// Takes a reference to C struct user_exit_info and reads it into @@ -65,7 +65,7 @@ macro_rules! uei_set_size { ($skel: expr, $ops: ident, $uei:ident) => {{ scx_utils::paste! { let len = match $skel.struct_ops.$ops().exit_dump_len { - 0 => scx_utils::ScxInternalConsts::ExitDumpDflLen as u32, + 0 => scx_utils::ScxConsts::ExitDumpDflLen as u32, v => v, }; $skel.rodata_mut().[<$uei _dump_len>] = len; diff --git a/scheds/c/scx_central.c b/scheds/c/scx_central.c index bc209ad..df692dc 100644 --- a/scheds/c/scx_central.c +++ b/scheds/c/scx_central.c @@ -24,10 +24,19 @@ const char help_fmt[] = "\n" " -s SLICE_US Override slice duration\n" " -c CPU Override the central CPU (default: 0)\n" +" -v Print libbpf debug messages\n" " -h Display this help and exit\n"; +static bool verbose; static volatile int exit_req; +static int libbpf_print_fn(enum libbpf_print_level level, const char *format, va_list args) +{ + if (level == LIBBPF_DEBUG && !verbose) + return 0; + return vfprintf(stderr, format, args); +} + static void sigint_handler(int dummy) { exit_req = 1; @@ -37,22 +46,20 @@ int main(int argc, char **argv) { struct scx_central *skel; struct bpf_link *link; - __u64 seq = 0; + __u64 seq = 0, ecode; __s32 opt; cpu_set_t *cpuset; + libbpf_set_print(libbpf_print_fn); signal(SIGINT, sigint_handler); signal(SIGTERM, sigint_handler); - - libbpf_set_strict_mode(LIBBPF_STRICT_ALL); - - skel = scx_central__open(); - SCX_BUG_ON(!skel, "Failed to open skel"); +restart: + skel = SCX_OPS_OPEN(central_ops, scx_central); skel->rodata->central_cpu = 0; skel->rodata->nr_cpu_ids = libbpf_num_possible_cpus(); - while ((opt = getopt(argc, argv, "s:c:ph")) != -1) { + while ((opt = getopt(argc, argv, "s:c:pvh")) != -1) { switch (opt) { case 's': skel->rodata->slice_ns = strtoull(optarg, NULL, 0) * 1000; @@ -60,6 +67,9 @@ int main(int argc, char **argv) case 'c': skel->rodata->central_cpu = strtoul(optarg, NULL, 0); break; + case 'v': + verbose = true; + break; default: fprintf(stderr, help_fmt, basename(argv[0])); return opt != 'h'; @@ -116,7 +126,10 @@ int main(int argc, char **argv) } bpf_link__destroy(link); - UEI_REPORT(skel, uei); + ecode = UEI_REPORT(skel, uei); scx_central__destroy(skel); + + if (UEI_ECODE_RESTART(ecode)) + goto restart; return 0; } diff --git a/scheds/c/scx_flatcg.c b/scheds/c/scx_flatcg.c index b6f0184..1143d5e 100644 --- a/scheds/c/scx_flatcg.c +++ b/scheds/c/scx_flatcg.c @@ -26,15 +26,24 @@ const char help_fmt[] = "\n" "See the top-level comment in .bpf.c for more details.\n" "\n" -"Usage: %s [-s SLICE_US] [-i INTERVAL] [-f]\n" +"Usage: %s [-s SLICE_US] [-i INTERVAL] [-f] [-v]\n" "\n" " -s SLICE_US Override slice duration\n" " -i INTERVAL Report interval\n" " -f Use FIFO scheduling instead of weighted vtime scheduling\n" +" -v Print libbpf debug messages\n" " -h Display this help and exit\n"; +static bool verbose; static volatile int exit_req; +static int libbpf_print_fn(enum libbpf_print_level level, const char *format, va_list args) +{ + if (level == LIBBPF_DEBUG && !verbose) + return 0; + return vfprintf(stderr, format, args); +} + static void sigint_handler(int dummy) { exit_req = 1; @@ -119,18 +128,17 @@ int main(int argc, char **argv) __u64 last_stats[FCG_NR_STATS] = {}; unsigned long seq = 0; __s32 opt; + __u64 ecode; + libbpf_set_print(libbpf_print_fn); signal(SIGINT, sigint_handler); signal(SIGTERM, sigint_handler); - - libbpf_set_strict_mode(LIBBPF_STRICT_ALL); - - skel = scx_flatcg__open(); - SCX_BUG_ON(!skel, "Failed to open skel"); +restart: + skel = SCX_OPS_OPEN(flatcg_ops, scx_flatcg); skel->rodata->nr_cpus = libbpf_num_possible_cpus(); - while ((opt = getopt(argc, argv, "s:i:dfph")) != -1) { + while ((opt = getopt(argc, argv, "s:i:dfvh")) != -1) { double v; switch (opt) { @@ -149,6 +157,9 @@ int main(int argc, char **argv) case 'f': skel->rodata->fifo_sched = true; break; + case 'v': + verbose = true; + break; case 'h': default: fprintf(stderr, help_fmt, basename(argv[0])); @@ -213,7 +224,10 @@ int main(int argc, char **argv) } bpf_link__destroy(link); - UEI_REPORT(skel, uei); + ecode = UEI_REPORT(skel, uei); scx_flatcg__destroy(skel); + + if (UEI_ECODE_RESTART(ecode)) + goto restart; return 0; } diff --git a/scheds/c/scx_qmap.bpf.c b/scheds/c/scx_qmap.bpf.c index 9bdd837..832fa87 100644 --- a/scheds/c/scx_qmap.bpf.c +++ b/scheds/c/scx_qmap.bpf.c @@ -23,6 +23,12 @@ * Copyright (c) 2022 David Vernet */ #include +#include + +enum consts { + ONE_SEC_IN_NS = 1000000000, + SHARED_DSQ = 0, +}; char _license[] SEC("license") = "GPL"; @@ -30,6 +36,9 @@ const volatile u64 slice_ns = SCX_SLICE_DFL; const volatile u32 stall_user_nth; const volatile u32 stall_kernel_nth; const volatile u32 dsp_inf_loop_after; +const volatile u32 dsp_batch; +const volatile bool print_shared_dsq; +const volatile char exp_prefix[17]; const volatile s32 disallow_tgid; const volatile bool switch_partial; @@ -62,6 +71,18 @@ struct { }, }; +/* + * If enabled, CPU performance target is set according to the queue index + * according to the following table. + */ +static const u32 qidx_to_cpuperf_target[] = { + [0] = SCX_CPUPERF_ONE * 0 / 4, + [1] = SCX_CPUPERF_ONE * 1 / 4, + [2] = SCX_CPUPERF_ONE * 2 / 4, + [3] = SCX_CPUPERF_ONE * 3 / 4, + [4] = SCX_CPUPERF_ONE * 4 / 4, +}; + /* * Per-queue sequence numbers to implement core-sched ordering. * @@ -86,17 +107,25 @@ struct { __type(value, struct task_ctx); } task_ctx_stor SEC(".maps"); -/* Per-cpu dispatch index and remaining count */ +struct cpu_ctx { + u64 dsp_idx; /* dispatch index */ + u64 dsp_cnt; /* remaining count */ + u32 avg_weight; + u32 cpuperf_target; +}; + struct { __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); - __uint(max_entries, 2); + __uint(max_entries, 1); __type(key, u32); - __type(value, u64); -} dispatch_idx_cnt SEC(".maps"); + __type(value, struct cpu_ctx); +} cpu_ctx_stor SEC(".maps"); /* Statistics */ u64 nr_enqueued, nr_dispatched, nr_reenqueued, nr_dequeued; -u64 nr_core_sched_execed; +u64 nr_core_sched_execed, nr_expedited; +u32 cpuperf_min, cpuperf_avg, cpuperf_max; +u32 cpuperf_target_min, cpuperf_target_avg, cpuperf_target_max; s32 BPF_STRUCT_OPS(qmap_select_cpu, struct task_struct *p, s32 prev_cpu, u64 wake_flags) @@ -189,7 +218,7 @@ void BPF_STRUCT_OPS(qmap_enqueue, struct task_struct *p, u64 enq_flags) if (enq_flags & SCX_ENQ_REENQ) { s32 cpu; - scx_bpf_dispatch(p, SCX_DSQ_GLOBAL, 0, enq_flags); + scx_bpf_dispatch(p, SHARED_DSQ, 0, enq_flags); cpu = scx_bpf_pick_idle_cpu(p->cpus_ptr, 0); if (cpu >= 0) scx_bpf_kick_cpu(cpu, __COMPAT_SCX_KICK_IDLE); @@ -204,7 +233,7 @@ void BPF_STRUCT_OPS(qmap_enqueue, struct task_struct *p, u64 enq_flags) /* Queue on the selected FIFO. If the FIFO overflows, punt to global. */ if (bpf_map_push_elem(ring, &pid, 0)) { - scx_bpf_dispatch(p, SCX_DSQ_GLOBAL, slice_ns, enq_flags); + scx_bpf_dispatch(p, SHARED_DSQ, slice_ns, enq_flags); return; } @@ -233,18 +262,49 @@ static void update_core_sched_head_seq(struct task_struct *p) scx_bpf_error("task_ctx lookup failed"); } +static bool consume_shared_dsq(void) +{ + struct task_struct *p; + bool consumed; + + if (exp_prefix[0] == '\0') + return scx_bpf_consume(SHARED_DSQ); + + /* + * To demonstrate the use of scx_bpf_consume_task(), implement silly + * selective priority boosting mechanism by scanning SHARED_DSQ looking + * for matching comms and consume them first. This makes difference only + * when dsp_batch is larger than 1. + */ + consumed = false; + __COMPAT_DSQ_FOR_EACH(p, SHARED_DSQ, 0) { + char comm[sizeof(exp_prefix)]; + + memcpy(comm, p->comm, sizeof(exp_prefix) - 1); + + if (!bpf_strncmp(comm, sizeof(exp_prefix), + (const char *)exp_prefix) && + __COMPAT_scx_bpf_consume_task(BPF_FOR_EACH_ITER, p)) { + consumed = true; + __sync_fetch_and_add(&nr_expedited, 1); + } + } + + return consumed || scx_bpf_consume(SHARED_DSQ); +} + void BPF_STRUCT_OPS(qmap_dispatch, s32 cpu, struct task_struct *prev) { - u32 zero = 0, one = 1; - u64 *idx = bpf_map_lookup_elem(&dispatch_idx_cnt, &zero); - u64 *cnt = bpf_map_lookup_elem(&dispatch_idx_cnt, &one); + struct task_struct *p; + struct cpu_ctx *cpuc; + u32 zero = 0, batch = dsp_batch ?: 1; void *fifo; - s32 pid; - int i; + s32 i, pid; + + if (consume_shared_dsq()) + return; if (dsp_inf_loop_after && nr_dispatched > dsp_inf_loop_after) { - struct task_struct *p; - /* * PID 2 should be kthreadd which should mostly be idle and off * the scheduler. Let's keep dispatching it to force the kernel @@ -252,49 +312,80 @@ void BPF_STRUCT_OPS(qmap_dispatch, s32 cpu, struct task_struct *prev) */ p = bpf_task_from_pid(2); if (p) { - scx_bpf_dispatch(p, SCX_DSQ_GLOBAL, slice_ns, 0); + scx_bpf_dispatch(p, SCX_DSQ_LOCAL, slice_ns, 0); bpf_task_release(p); return; } } - if (!idx || !cnt) { - scx_bpf_error("failed to lookup idx[%p], cnt[%p]", idx, cnt); + if (!(cpuc = bpf_map_lookup_elem(&cpu_ctx_stor, &zero))) { + scx_bpf_error("failed to look up cpu_ctx"); return; } for (i = 0; i < 5; i++) { /* Advance the dispatch cursor and pick the fifo. */ - if (!*cnt) { - *idx = (*idx + 1) % 5; - *cnt = 1 << *idx; + if (!cpuc->dsp_cnt) { + cpuc->dsp_idx = (cpuc->dsp_idx + 1) % 5; + cpuc->dsp_cnt = 1 << cpuc->dsp_idx; } - (*cnt)--; - fifo = bpf_map_lookup_elem(&queue_arr, idx); + fifo = bpf_map_lookup_elem(&queue_arr, &cpuc->dsp_idx); if (!fifo) { - scx_bpf_error("failed to find ring %llu", *idx); + scx_bpf_error("failed to find ring %llu", cpuc->dsp_idx); return; } /* Dispatch or advance. */ - if (!bpf_map_pop_elem(fifo, &pid)) { - struct task_struct *p; + bpf_repeat(BPF_MAX_LOOPS) { + if (bpf_map_pop_elem(fifo, &pid)) + break; p = bpf_task_from_pid(pid); - if (p) { - update_core_sched_head_seq(p); - __sync_fetch_and_add(&nr_dispatched, 1); - scx_bpf_dispatch(p, SCX_DSQ_GLOBAL, slice_ns, 0); - bpf_task_release(p); + if (!p) + continue; + + update_core_sched_head_seq(p); + __sync_fetch_and_add(&nr_dispatched, 1); + scx_bpf_dispatch(p, SHARED_DSQ, slice_ns, 0); + bpf_task_release(p); + batch--; + cpuc->dsp_cnt--; + if (!batch || !scx_bpf_dispatch_nr_slots()) { + consume_shared_dsq(); return; } + if (!cpuc->dsp_cnt) + break; } - *cnt = 0; + cpuc->dsp_cnt = 0; } } +void BPF_STRUCT_OPS(qmap_tick, struct task_struct *p) +{ + struct cpu_ctx *cpuc; + u32 zero = 0; + int idx; + + if (!(cpuc = bpf_map_lookup_elem(&cpu_ctx_stor, &zero))) { + scx_bpf_error("failed to look up cpu_ctx"); + return; + } + + /* + * Use the running avg of weights to select the target cpuperf level. + * This is a demonstration of the cpuperf feature rather than a + * practical strategy to regulate CPU frequency. + */ + cpuc->avg_weight = cpuc->avg_weight * 3 / 4 + p->scx.weight / 4; + idx = weight_to_idx(cpuc->avg_weight); + cpuc->cpuperf_target = qidx_to_cpuperf_target[idx]; + + scx_bpf_cpuperf_set(scx_bpf_task_cpu(p), cpuc->cpuperf_target); +} + /* * The distance from the head of the queue scaled by the weight of the queue. * The lower the number, the older the task and the higher the priority. @@ -371,11 +462,189 @@ s32 BPF_STRUCT_OPS(qmap_init_task, struct task_struct *p, return -ENOMEM; } -s32 BPF_STRUCT_OPS(qmap_init) +/* + * Print out the online and possible CPU map using bpf_printk() as a + * demonstration of using the cpumask kfuncs and ops.cpu_on/offline(). + */ +static void print_cpus(void) { + const struct cpumask *possible, *online; + s32 cpu; + char buf[128] = "", *p; + int idx; + + if (!__COMPAT_HAS_CPUMASKS) + return; + + possible = scx_bpf_get_possible_cpumask(); + online = scx_bpf_get_online_cpumask(); + + idx = 0; + bpf_for(cpu, 0, scx_bpf_nr_cpu_ids()) { + if (!(p = MEMBER_VPTR(buf, [idx++]))) + break; + if (bpf_cpumask_test_cpu(cpu, online)) + *p++ = 'O'; + else if (bpf_cpumask_test_cpu(cpu, possible)) + *p++ = 'X'; + else + *p++ = ' '; + + if ((cpu & 7) == 7) { + if (!(p = MEMBER_VPTR(buf, [idx++]))) + break; + *p++ = '|'; + } + } + buf[sizeof(buf) - 1] = '\0'; + + scx_bpf_put_cpumask(online); + scx_bpf_put_cpumask(possible); + + bpf_printk("CPUS: |%s", buf); +} + +void BPF_STRUCT_OPS(qmap_cpu_online, s32 cpu) +{ + bpf_printk("CPU %d coming online", cpu); + /* @cpu is already online at this point */ + print_cpus(); +} + +void BPF_STRUCT_OPS(qmap_cpu_offline, s32 cpu) +{ + bpf_printk("CPU %d going offline", cpu); + /* @cpu is still online at this point */ + print_cpus(); +} + +struct monitor_timer { + struct bpf_timer timer; +}; + +struct { + __uint(type, BPF_MAP_TYPE_ARRAY); + __uint(max_entries, 1); + __type(key, u32); + __type(value, struct monitor_timer); +} central_timer SEC(".maps"); + +/* + * Print out the min, avg and max performance levels of CPUs every second to + * demonstrate the cpuperf interface. + */ +static void monitor_cpuperf(void) +{ + u32 zero = 0; + u32 nr_cpu_ids = scx_bpf_nr_cpu_ids(); + u64 cap_sum = 0, cur_sum = 0, cur_min = SCX_CPUPERF_ONE, cur_max = 0; + u64 target_sum = 0, target_min = SCX_CPUPERF_ONE, target_max = 0; + const struct cpumask *online; + int i, nr_online_cpus = 0; + + online = scx_bpf_get_online_cpumask(); + + bpf_for(i, 0, nr_cpu_ids) { + struct cpu_ctx *cpuc; + u32 cap, cur; + + if (!bpf_cpumask_test_cpu(i, online)) + continue; + nr_online_cpus++; + + /* collect the capacity and current cpuperf */ + cap = scx_bpf_cpuperf_cap(i); + cur = scx_bpf_cpuperf_cur(i); + + cur_min = cur < cur_min ? cur : cur_min; + cur_max = cur > cur_max ? cur : cur_max; + + /* + * $cur is relative to $cap. Scale it down accordingly so that + * it's in the same scale as other CPUs and $cur_sum/$cap_sum + * makes sense. + */ + cur_sum += cur * cap / SCX_CPUPERF_ONE; + cap_sum += cap; + + if (!(cpuc = bpf_map_lookup_percpu_elem(&cpu_ctx_stor, &zero, i))) { + scx_bpf_error("failed to look up cpu_ctx"); + goto out; + } + + /* collect target */ + cur = cpuc->cpuperf_target; + target_sum += cur; + target_min = cur < target_min ? cur : target_min; + target_max = cur > target_max ? cur : target_max; + } + + cpuperf_min = cur_min; + cpuperf_avg = cur_sum * SCX_CPUPERF_ONE / cap_sum; + cpuperf_max = cur_max; + + cpuperf_target_min = target_min; + cpuperf_target_avg = target_sum / nr_online_cpus; + cpuperf_target_max = target_max; +out: + scx_bpf_put_cpumask(online); +} + +/* + * Dump the currently queued tasks in the shared DSQ to demonstrate the usage of + * scx_bpf_dsq_nr_queued() and DSQ iterator. Raise the dispatch batch count to + * see meaningful dumps in the trace pipe. + */ +static void dump_shared_dsq(void) +{ + struct task_struct *p; + s32 nr; + + if (!(nr = scx_bpf_dsq_nr_queued(SHARED_DSQ))) + return; + + bpf_printk("Dumping %d tasks in SHARED_DSQ in reverse order", nr); + + bpf_rcu_read_lock(); + __COMPAT_DSQ_FOR_EACH(p, SHARED_DSQ, SCX_DSQ_ITER_REV) + bpf_printk("%s[%d]", p->comm, p->pid); + bpf_rcu_read_unlock(); +} + +static int monitor_timerfn(void *map, int *key, struct bpf_timer *timer) +{ + monitor_cpuperf(); + + if (print_shared_dsq) + dump_shared_dsq(); + + bpf_timer_start(timer, ONE_SEC_IN_NS, 0); + return 0; +} + +s32 BPF_STRUCT_OPS_SLEEPABLE(qmap_init) +{ + u32 key = 0; + struct bpf_timer *timer; + s32 ret; + if (!switch_partial) __COMPAT_scx_bpf_switch_all(); - return 0; + + print_cpus(); + + ret = scx_bpf_create_dsq(SHARED_DSQ, -1); + if (ret) + return ret; + + timer = bpf_map_lookup_elem(¢ral_timer, &key); + if (!timer) + return -ESRCH; + + bpf_timer_init(timer, ¢ral_timer, CLOCK_MONOTONIC); + bpf_timer_set_callback(timer, monitor_timerfn); + + return bpf_timer_start(timer, ONE_SEC_IN_NS, 0); } void BPF_STRUCT_OPS(qmap_exit, struct scx_exit_info *ei) @@ -388,9 +657,12 @@ SCX_OPS_DEFINE(qmap_ops, .enqueue = (void *)qmap_enqueue, .dequeue = (void *)qmap_dequeue, .dispatch = (void *)qmap_dispatch, + .tick = (void *)qmap_tick, .core_sched_before = (void *)qmap_core_sched_before, .cpu_release = (void *)qmap_cpu_release, .init_task = (void *)qmap_init_task, + .cpu_online = (void *)qmap_cpu_online, + .cpu_offline = (void *)qmap_cpu_offline, .init = (void *)qmap_init, .exit = (void *)qmap_exit, .flags = SCX_OPS_ENQ_LAST, diff --git a/scheds/c/scx_qmap.c b/scheds/c/scx_qmap.c index 0171a5f..eb221f0 100644 --- a/scheds/c/scx_qmap.c +++ b/scheds/c/scx_qmap.c @@ -19,21 +19,34 @@ const char help_fmt[] = "\n" "See the top-level comment in .bpf.c for more details.\n" "\n" -"Usage: %s [-s SLICE_US] [-e COUNT] [-t COUNT] [-T COUNT] [-l COUNT] [-d PID]\n" -" [-D LEN] [-p]\n" +"Usage: %s [-s SLICE_US] [-e COUNT] [-t COUNT] [-T COUNT] [-l COUNT] [-b COUNT]\n" +" [-P] [-E PREFIX] [-d PID] [-D LEN] [-p] [-v]\n" "\n" " -s SLICE_US Override slice duration\n" " -e COUNT Trigger scx_bpf_error() after COUNT enqueues\n" " -t COUNT Stall every COUNT'th user thread\n" " -T COUNT Stall every COUNT'th kernel thread\n" " -l COUNT Trigger dispatch infinite looping after COUNT dispatches\n" +" -b COUNT Dispatch upto COUNT tasks together\n" +" -P Print out DSQ content to trace_pipe every second, use with -b\n" +" -E PREFIX Expedite consumption of threads w/ matching comm, use with -b\n" +" (e.g. match shell on a loaded system)\n" " -d PID Disallow a process from switching into SCHED_EXT (-1 for self)\n" " -D LEN Set scx_exit_info.dump buffer length\n" " -p Switch only tasks on SCHED_EXT policy intead of all\n" +" -v Print libbpf debug messages\n" " -h Display this help and exit\n"; +static bool verbose; static volatile int exit_req; +static int libbpf_print_fn(enum libbpf_print_level level, const char *format, va_list args) +{ + if (level == LIBBPF_DEBUG && !verbose) + return 0; + return vfprintf(stderr, format, args); +} + static void sigint_handler(int dummy) { exit_req = 1; @@ -45,15 +58,13 @@ int main(int argc, char **argv) struct bpf_link *link; int opt; + libbpf_set_print(libbpf_print_fn); signal(SIGINT, sigint_handler); signal(SIGTERM, sigint_handler); - libbpf_set_strict_mode(LIBBPF_STRICT_ALL); + skel = SCX_OPS_OPEN(qmap_ops, scx_qmap); - skel = scx_qmap__open(); - SCX_BUG_ON(!skel, "Failed to open skel"); - - while ((opt = getopt(argc, argv, "s:e:t:T:l:d:D:ph")) != -1) { + while ((opt = getopt(argc, argv, "s:e:t:T:l:b:PE:d:D:pvh")) != -1) { switch (opt) { case 's': skel->rodata->slice_ns = strtoull(optarg, NULL, 0) * 1000; @@ -70,6 +81,16 @@ int main(int argc, char **argv) case 'l': skel->rodata->dsp_inf_loop_after = strtoul(optarg, NULL, 0); break; + case 'b': + skel->rodata->dsp_batch = strtoul(optarg, NULL, 0); + break; + case 'P': + skel->rodata->print_shared_dsq = true; + break; + case 'E': + strncpy(skel->rodata->exp_prefix, optarg, + sizeof(skel->rodata->exp_prefix) - 1); + break; case 'd': skel->rodata->disallow_tgid = strtol(optarg, NULL, 0); if (skel->rodata->disallow_tgid < 0) @@ -82,12 +103,19 @@ int main(int argc, char **argv) skel->rodata->switch_partial = true; skel->struct_ops.qmap_ops->flags |= __COMPAT_SCX_OPS_SWITCH_PARTIAL; break; + case 'v': + verbose = true; + break; default: fprintf(stderr, help_fmt, basename(argv[0])); return opt != 'h'; } } + if (!__COMPAT_HAS_DSQ_ITER && + (skel->rodata->print_shared_dsq || strlen(skel->rodata->exp_prefix))) + fprintf(stderr, "kernel doesn't support DSQ iteration\n"); + SCX_OPS_LOAD(skel, qmap_ops, scx_qmap, uei); link = SCX_OPS_ATTACH(skel, qmap_ops); @@ -95,10 +123,18 @@ int main(int argc, char **argv) long nr_enqueued = skel->bss->nr_enqueued; long nr_dispatched = skel->bss->nr_dispatched; - printf("enq=%lu, dsp=%lu, delta=%ld, reenq=%" PRIu64 ", deq=%" PRIu64 ", core=%" PRIu64 "\n", + printf("stats : enq=%lu dsp=%lu delta=%ld reenq=%"PRIu64" deq=%"PRIu64" core=%"PRIu64" exp=%"PRIu64"\n", nr_enqueued, nr_dispatched, nr_enqueued - nr_dispatched, skel->bss->nr_reenqueued, skel->bss->nr_dequeued, - skel->bss->nr_core_sched_execed); + skel->bss->nr_core_sched_execed, skel->bss->nr_expedited); + if (__COMPAT_has_ksym("scx_bpf_cpuperf_cur")) + printf("cpuperf: cur min/avg/max=%u/%u/%u target min/avg/max=%u/%u/%u\n", + skel->bss->cpuperf_min, + skel->bss->cpuperf_avg, + skel->bss->cpuperf_max, + skel->bss->cpuperf_target_min, + skel->bss->cpuperf_target_avg, + skel->bss->cpuperf_target_max); fflush(stdout); sleep(1); } @@ -106,5 +142,9 @@ int main(int argc, char **argv) bpf_link__destroy(link); UEI_REPORT(skel, uei); scx_qmap__destroy(skel); + /* + * scx_qmap implements ops.cpu_on/offline() and doesn't need to restart + * on CPU hotplug events. + */ return 0; } diff --git a/scheds/c/scx_simple.bpf.c b/scheds/c/scx_simple.bpf.c index edb323e..535fe52 100644 --- a/scheds/c/scx_simple.bpf.c +++ b/scheds/c/scx_simple.bpf.c @@ -129,7 +129,6 @@ void BPF_STRUCT_OPS(simple_enable, struct task_struct *p) s32 BPF_STRUCT_OPS_SLEEPABLE(simple_init) { - __COMPAT_scx_bpf_switch_all(); return scx_bpf_create_dsq(SHARED_DSQ, -1); } diff --git a/scheds/c/scx_simple.c b/scheds/c/scx_simple.c index 006a2a5..b88c058 100644 --- a/scheds/c/scx_simple.c +++ b/scheds/c/scx_simple.c @@ -17,13 +17,22 @@ const char help_fmt[] = "\n" "See the top-level comment in .bpf.c for more details.\n" "\n" -"Usage: %s [-f]\n" +"Usage: %s [-f] [-v]\n" "\n" " -f Use FIFO scheduling instead of weighted vtime scheduling\n" +" -v Print libbpf debug messages\n" " -h Display this help and exit\n"; +static bool verbose; static volatile int exit_req; +static int libbpf_print_fn(enum libbpf_print_level level, const char *format, va_list args) +{ + if (level == LIBBPF_DEBUG && !verbose) + return 0; + return vfprintf(stderr, format, args); +} + static void sigint_handler(int simple) { exit_req = 1; @@ -54,20 +63,22 @@ int main(int argc, char **argv) struct scx_simple *skel; struct bpf_link *link; __u32 opt; + __u64 ecode; + libbpf_set_print(libbpf_print_fn); signal(SIGINT, sigint_handler); signal(SIGTERM, sigint_handler); +restart: + skel = SCX_OPS_OPEN(simple_ops, scx_simple); - libbpf_set_strict_mode(LIBBPF_STRICT_ALL); - - skel = scx_simple__open(); - SCX_BUG_ON(!skel, "Failed to open skel"); - - while ((opt = getopt(argc, argv, "fh")) != -1) { + while ((opt = getopt(argc, argv, "fvh")) != -1) { switch (opt) { case 'f': skel->rodata->fifo_sched = true; break; + case 'v': + verbose = true; + break; default: fprintf(stderr, help_fmt, basename(argv[0])); return opt != 'h'; @@ -87,7 +98,10 @@ int main(int argc, char **argv) } bpf_link__destroy(link); - UEI_REPORT(skel, uei); + ecode = UEI_REPORT(skel, uei); scx_simple__destroy(skel); + + if (UEI_ECODE_RESTART(ecode)) + goto restart; return 0; } diff --git a/scheds/include/scx/common.bpf.h b/scheds/include/scx/common.bpf.h index 2a6a48f..20ebb40 100644 --- a/scheds/include/scx/common.bpf.h +++ b/scheds/include/scx/common.bpf.h @@ -28,9 +28,54 @@ static inline void ___vmlinux_h_sanity_check___(void) "bpftool generated vmlinux.h is missing high bits for 64bit enums, upgrade clang and pahole"); } +s32 scx_bpf_create_dsq(u64 dsq_id, s32 node) __ksym; +s32 scx_bpf_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags, bool *is_idle) __ksym; +void scx_bpf_dispatch(struct task_struct *p, u64 dsq_id, u64 slice, u64 enq_flags) __ksym; +void scx_bpf_dispatch_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags) __ksym; +u32 scx_bpf_dispatch_nr_slots(void) __ksym; +void scx_bpf_dispatch_cancel(void) __ksym; +bool scx_bpf_consume(u64 dsq_id) __ksym; +bool __scx_bpf_consume_task(unsigned long it, struct task_struct *p) __ksym __weak; +u32 scx_bpf_reenqueue_local(void) __ksym; +void scx_bpf_kick_cpu(s32 cpu, u64 flags) __ksym; +s32 scx_bpf_dsq_nr_queued(u64 dsq_id) __ksym; +void scx_bpf_destroy_dsq(u64 dsq_id) __ksym; +int bpf_iter_scx_dsq_new(struct bpf_iter_scx_dsq *it, u64 dsq_id, bool rev) __ksym __weak; +struct task_struct *bpf_iter_scx_dsq_next(struct bpf_iter_scx_dsq *it) __ksym __weak; +void bpf_iter_scx_dsq_destroy(struct bpf_iter_scx_dsq *it) __ksym __weak; +void scx_bpf_exit_bstr(s64 exit_code, char *fmt, unsigned long long *data, u32 data__sz) __ksym __weak; void scx_bpf_error_bstr(char *fmt, unsigned long long *data, u32 data_len) __ksym; -void scx_bpf_exit_bstr(s64 exit_code, char *fmt, - unsigned long long *data, u32 data__sz) __ksym __weak; +u32 scx_bpf_cpuperf_cap(s32 cpu) __ksym __weak; +u32 scx_bpf_cpuperf_cur(s32 cpu) __ksym __weak; +void scx_bpf_cpuperf_set(s32 cpu, u32 perf) __ksym __weak; +u32 scx_bpf_nr_cpu_ids(void) __ksym __weak; +const struct cpumask *scx_bpf_get_possible_cpumask(void) __ksym __weak; +const struct cpumask *scx_bpf_get_online_cpumask(void) __ksym __weak; +void scx_bpf_put_cpumask(const struct cpumask *cpumask) __ksym __weak; +const struct cpumask *scx_bpf_get_idle_cpumask(void) __ksym; +const struct cpumask *scx_bpf_get_idle_smtmask(void) __ksym; +void scx_bpf_put_idle_cpumask(const struct cpumask *cpumask) __ksym; +bool scx_bpf_test_and_clear_cpu_idle(s32 cpu) __ksym; +s32 scx_bpf_pick_idle_cpu(const cpumask_t *cpus_allowed, u64 flags) __ksym; +s32 scx_bpf_pick_any_cpu(const cpumask_t *cpus_allowed, u64 flags) __ksym; +bool scx_bpf_task_running(const struct task_struct *p) __ksym; +s32 scx_bpf_task_cpu(const struct task_struct *p) __ksym; +struct cgroup *scx_bpf_task_cgroup(struct task_struct *p) __ksym; + +/* + * Use the following as @it when calling scx_bpf_consume_task() from whitin + * bpf_for_each() loops. + */ +#define BPF_FOR_EACH_ITER (&___it) + +/* hopefully temporary wrapper to work around BPF restriction */ +static inline bool scx_bpf_consume_task(struct bpf_iter_scx_dsq *it, + struct task_struct *p) +{ + unsigned long ptr; + bpf_probe_read_kernel(&ptr, sizeof(ptr), it); + return __scx_bpf_consume_task(ptr, p); +} static inline __attribute__((format(printf, 1, 2))) void ___scx_bpf_exit_format_checker(const char *fmt, ...) {} @@ -40,18 +85,18 @@ void ___scx_bpf_exit_format_checker(const char *fmt, ...) {} * bstr exit kfuncs. Callers to this function should use ___fmt and ___param to * refer to the initialized list of inputs to the bstr kfunc. */ -#define scx_bpf_exit_preamble(fmt, args...) \ - static char ___fmt[] = fmt; \ - /* \ - * Note that __param[] must have at least one \ - * element to keep the verifier happy. \ - */ \ - unsigned long long ___param[___bpf_narg(args) ?: 1] = {}; \ - \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ - ___bpf_fill(___param, args); \ - _Pragma("GCC diagnostic pop") \ +#define scx_bpf_exit_preamble(fmt, args...) \ + static char ___fmt[] = fmt; \ + /* \ + * Note that __param[] must have at least one \ + * element to keep the verifier happy. \ + */ \ + unsigned long long ___param[___bpf_narg(args) ?: 1] = {}; \ + \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wint-conversion\"") \ + ___bpf_fill(___param, args); \ + _Pragma("GCC diagnostic pop") \ /* * scx_bpf_exit() wraps the scx_bpf_exit_bstr() kfunc with variadic arguments @@ -78,30 +123,6 @@ void ___scx_bpf_exit_format_checker(const char *fmt, ...) {} ___scx_bpf_exit_format_checker(fmt, ##args); \ }) -s32 scx_bpf_create_dsq(u64 dsq_id, s32 node) __ksym; -bool scx_bpf_consume(u64 dsq_id) __ksym; -void scx_bpf_dispatch(struct task_struct *p, u64 dsq_id, u64 slice, u64 enq_flags) __ksym; -void scx_bpf_dispatch_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vtime, u64 enq_flags) __ksym; -u32 scx_bpf_dispatch_nr_slots(void) __ksym; -void scx_bpf_dispatch_cancel(void) __ksym; -void scx_bpf_kick_cpu(s32 cpu, u64 flags) __ksym; -s32 scx_bpf_dsq_nr_queued(u64 dsq_id) __ksym; -bool scx_bpf_test_and_clear_cpu_idle(s32 cpu) __ksym; -s32 scx_bpf_pick_idle_cpu(const cpumask_t *cpus_allowed, u64 flags) __ksym; -s32 scx_bpf_pick_any_cpu(const cpumask_t *cpus_allowed, u64 flags) __ksym; -const struct cpumask *scx_bpf_get_idle_cpumask(void) __ksym; -const struct cpumask *scx_bpf_get_idle_smtmask(void) __ksym; -void scx_bpf_put_idle_cpumask(const struct cpumask *cpumask) __ksym; -void scx_bpf_destroy_dsq(u64 dsq_id) __ksym; -s32 scx_bpf_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags, bool *is_idle) __ksym; -bool scx_bpf_task_running(const struct task_struct *p) __ksym; -s32 scx_bpf_task_cpu(const struct task_struct *p) __ksym; -struct cgroup *scx_bpf_task_cgroup(struct task_struct *p) __ksym; -u32 scx_bpf_reenqueue_local(void) __ksym; -u32 scx_bpf_cpuperf_cap(s32 cpu) __ksym; -u32 scx_bpf_cpuperf_cur(s32 cpu) __ksym; -void scx_bpf_cpuperf_set(u32 cpu, u32 perf) __ksym __weak; - #define BPF_STRUCT_OPS(name, args...) \ SEC("struct_ops/"#name) \ BPF_PROG(name, ##args) @@ -156,7 +177,8 @@ BPF_PROG(name, ##args) * be a pointer to the area. Use `MEMBER_VPTR(*ptr, .member)` instead of * `MEMBER_VPTR(ptr, ->member)`. */ -#define MEMBER_VPTR(base, member) (typeof((base) member) *)({ \ +#define MEMBER_VPTR(base, member) (typeof((base) member) *) \ +({ \ u64 __base = (u64)&(base); \ u64 __addr = (u64)&((base) member) - __base; \ _Static_assert(sizeof(base) >= sizeof((base) member), \ @@ -186,18 +208,19 @@ BPF_PROG(name, ##args) * size of the array to compute the max, which will result in rejection by * the verifier. */ -#define ARRAY_ELEM_PTR(arr, i, n) (typeof(arr[i]) *)({ \ - u64 __base = (u64)arr; \ - u64 __addr = (u64)&(arr[i]) - __base; \ - asm volatile ( \ - "if %0 <= %[max] goto +2\n" \ - "%0 = 0\n" \ - "goto +1\n" \ - "%0 += %1\n" \ - : "+r"(__addr) \ - : "r"(__base), \ - [max]"r"(sizeof(arr[0]) * ((n) - 1))); \ - __addr; \ +#define ARRAY_ELEM_PTR(arr, i, n) (typeof(arr[i]) *) \ +({ \ + u64 __base = (u64)arr; \ + u64 __addr = (u64)&(arr[i]) - __base; \ + asm volatile ( \ + "if %0 <= %[max] goto +2\n" \ + "%0 = 0\n" \ + "goto +1\n" \ + "%0 += %1\n" \ + : "+r"(__addr) \ + : "r"(__base), \ + [max]"r"(sizeof(arr[0]) * ((n) - 1))); \ + __addr; \ }) /* @@ -227,7 +250,7 @@ int bpf_rbtree_add_impl(struct bpf_rb_root *root, struct bpf_rb_node *node, struct bpf_rb_node *bpf_rbtree_first(struct bpf_rb_root *root) __ksym; -extern void *bpf_refcount_acquire_impl(void *kptr, void *meta) __ksym; +void *bpf_refcount_acquire_impl(void *kptr, void *meta) __ksym; #define bpf_refcount_acquire(kptr) bpf_refcount_acquire_impl(kptr, NULL) /* task */ diff --git a/scheds/include/scx/compat.bpf.h b/scheds/include/scx/compat.bpf.h index 5da12e3..8fcba25 100644 --- a/scheds/include/scx/compat.bpf.h +++ b/scheds/include/scx/compat.bpf.h @@ -18,13 +18,15 @@ /* * %SCX_KICK_IDLE is a later addition. To support both before and after, use * %__COMPAT_SCX_KICK_IDLE which becomes 0 on kernels which don't support it. + * Users can use %SCX_KICK_IDLE directly in the future. */ #define __COMPAT_SCX_KICK_IDLE \ __COMPAT_ENUM_OR_ZERO(enum scx_kick_flags, SCX_KICK_IDLE) /* * scx_switch_all() was replaced by %SCX_OPS_SWITCH_PARTIAL. See - * %__COMPAT_SCX_OPS_SWITCH_PARTIAL in compat.h. + * %__COMPAT_SCX_OPS_SWITCH_PARTIAL in compat.h. This can be dropped in the + * future. */ void scx_bpf_switch_all(void) __ksym __weak; @@ -34,6 +36,67 @@ static inline void __COMPAT_scx_bpf_switch_all(void) scx_bpf_switch_all(); } +/* + * scx_bpf_exit() is a new addition. Fall back to scx_bpf_error() if + * unavailable. Users can use scx_bpf_exit() directly in the future. + */ +#define __COMPAT_scx_bpf_exit(code, fmt, args...) \ +({ \ + if (bpf_ksym_exists(scx_bpf_exit_bstr)) \ + scx_bpf_exit((code), fmt, args); \ + else \ + scx_bpf_error(fmt, args); \ +}) + +/* + * scx_bpf_nr_cpu_ids(), scx_bpf_get_possible/online_cpumask() are new. No good + * way to noop these kfuncs. Provide a test macro. Users can assume existence in + * the future. + */ +#define __COMPAT_HAS_CPUMASKS \ + bpf_ksym_exists(scx_bpf_nr_cpu_ids) + +/* + * cpuperf is new. The followings become noop on older kernels. Callers can be + * updated to call cpuperf kfuncs directly in the future. + */ +static inline u32 __COMPAT_scx_bpf_cpuperf_cap(s32 cpu) +{ + if (bpf_ksym_exists(scx_bpf_cpuperf_cap)) + return scx_bpf_cpuperf_cap(cpu); + else + return 1024; +} + +static inline u32 __COMPAT_scx_bpf_cpuperf_cur(s32 cpu) +{ + if (bpf_ksym_exists(scx_bpf_cpuperf_cur)) + return scx_bpf_cpuperf_cur(cpu); + else + return 1024; +} + +static inline void __COMPAT_scx_bpf_cpuperf_set(s32 cpu, u32 perf) +{ + if (bpf_ksym_exists(scx_bpf_cpuperf_set)) + return scx_bpf_cpuperf_set(cpu, perf); +} + +/* + * Iteration and scx_bpf_consume_task() are new. The following become noop on + * older kernels. The users can switch to bpf_for_each(scx_dsq) and directly + * call scx_bpf_consume_task() in the future. + */ +#define __COMPAT_DSQ_FOR_EACH(p, dsq_id, flags) \ + if (bpf_ksym_exists(bpf_iter_scx_dsq_new)) \ + bpf_for_each(scx_dsq, (p), (dsq_id), (flags)) + +static inline bool __COMPAT_scx_bpf_consume_task(struct bpf_iter_scx_dsq *it, + struct task_struct *p) +{ + return false; +} + /* * Define sched_ext_ops. This may be expanded to define multiple variants for * backward compatibility. See compat.h::SCX_OPS_LOAD/ATTACH(). diff --git a/scheds/include/scx/compat.h b/scheds/include/scx/compat.h index 77ec97a..7783c82 100644 --- a/scheds/include/scx/compat.h +++ b/scheds/include/scx/compat.h @@ -8,6 +8,9 @@ #define __SCX_COMPAT_H #include +#include +#include +#include struct btf *__COMPAT_vmlinux_btf __attribute__((weak)); @@ -69,6 +72,12 @@ static inline bool __COMPAT_read_enum(const char *type, const char *name, u64 *v __val; \ }) +static inline bool __COMPAT_has_ksym(const char *ksym) +{ + __COMPAT_load_vmlinux_btf(); + return btf__find_by_name(__COMPAT_vmlinux_btf, ksym) >= 0; +} + static inline bool __COMPAT_struct_has_field(const char *type, const char *field) { const struct btf_type *t; @@ -101,27 +110,79 @@ static inline bool __COMPAT_struct_has_field(const char *type, const char *field * An ops flag, %SCX_OPS_SWITCH_PARTIAL, replaced scx_bpf_switch_all() which had * to be called from ops.init(). To support both before and after, use both * %__COMPAT_SCX_OPS_SWITCH_PARTIAL and %__COMPAT_scx_bpf_switch_all() defined - * in compat.bpf.h. + * in compat.bpf.h. Users can switch to directly using %SCX_OPS_SWITCH_PARTIAL + * in the future. */ #define __COMPAT_SCX_OPS_SWITCH_PARTIAL \ __COMPAT_ENUM_OR_ZERO("scx_ops_flags", "SCX_OPS_SWITCH_PARTIAL") +/* + * scx_bpf_nr_cpu_ids(), scx_bpf_get_possible/online_cpumask() are new. Users + * will be able to assume existence in the future. + */ +#define __COMPAT_HAS_CPUMASKS \ + __COMPAT_has_ksym("scx_bpf_nr_cpu_ids") + +/* + * DSQ iterator is new. Users will be able to assume existence in the future. + */ +#define __COMPAT_HAS_DSQ_ITER \ + __COMPAT_has_ksym("bpf_iter_scx_dsq_new") + +static inline long scx_hotplug_seq(void) +{ + int fd; + char buf[32]; + ssize_t len; + long val; + + fd = open("/sys/kernel/sched_ext/hotplug_seq", O_RDONLY); + if (fd < 0) + return -ENOENT; + + len = read(fd, buf, sizeof(buf) - 1); + SCX_BUG_ON(len <= 0, "read failed (%ld)", len); + buf[len] = 0; + close(fd); + + val = strtoul(buf, NULL, 10); + SCX_BUG_ON(val < 0, "invalid num hotplug events: %lu", val); + + return val; +} + /* * struct sched_ext_ops can change over time. If compat.bpf.h::SCX_OPS_DEFINE() * is used to define ops and compat.h::SCX_OPS_LOAD/ATTACH() are used to load * and attach it, backward compatibility is automatically maintained where * reasonable. * - * - sched_ext_ops.exit_dump_len was added later. On kernels which don't support - * it, the value is ignored and a warning is triggered if the value is - * requested to be non-zero. + * - ops.tick(): Ignored on older kernels with a warning. + * - ops.exit_dump_len: Cleared to zero on older kernels with a warning. + * - ops.hotplug_seq: Ignored on older kernels. */ +#define SCX_OPS_OPEN(__ops_name, __scx_name) ({ \ + struct __scx_name *__skel; \ + \ + __skel = __scx_name##__open(); \ + SCX_BUG_ON(!__skel, "Could not open " #__scx_name); \ + \ + if (__COMPAT_struct_has_field("sched_ext_ops", "hotplug_seq")) \ + __skel->struct_ops.__ops_name->hotplug_seq = scx_hotplug_seq(); \ + __skel; \ +}) + #define SCX_OPS_LOAD(__skel, __ops_name, __scx_name, __uei_name) ({ \ UEI_SET_SIZE(__skel, __ops_name, __uei_name); \ - if (__COMPAT_struct_has_field("sched_ext_ops", "exit_dump_len") && \ + if (!__COMPAT_struct_has_field("sched_ext_ops", "exit_dump_len") && \ (__skel)->struct_ops.__ops_name->exit_dump_len) { \ fprintf(stderr, "WARNING: kernel doesn't support setting exit dump len\n"); \ - (__skel)->struct_ops.__ops_name->exit_dump_len = 0; \ + (__skel)->struct_ops.__ops_name->exit_dump_len = 0; \ + } \ + if (!__COMPAT_struct_has_field("sched_ext_ops", "tick") && \ + (__skel)->struct_ops.__ops_name->tick) { \ + fprintf(stderr, "WARNING: kernel doesn't support ops.tick()\n"); \ + (__skel)->struct_ops.__ops_name->tick = NULL; \ } \ SCX_BUG_ON(__scx_name##__load((__skel)), "Failed to load skel"); \ }) diff --git a/scheds/include/scx/user_exit_info.h b/scheds/include/scx/user_exit_info.h index cf4293c..2d86d01 100644 --- a/scheds/include/scx/user_exit_info.h +++ b/scheds/include/scx/user_exit_info.h @@ -77,7 +77,35 @@ struct user_exit_info { if (__uei->msg[0] != '\0') \ fprintf(stderr, " (%s)", __uei->msg); \ fputs("\n", stderr); \ + __uei->exit_code; \ }) +/* + * We can't import vmlinux.h while compiling user C code. Let's duplicate + * scx_exit_code definition. + */ +enum scx_exit_code { + /* Reasons */ + SCX_ECODE_RSN_HOTPLUG = 1LLU << 32, + + /* Actions */ + SCX_ECODE_ACT_RESTART = 1LLU << 48, +}; + +enum uei_ecode_mask { + UEI_ECODE_USER_MASK = ((1LLU << 32) - 1), + UEI_ECODE_SYS_RSN_MASK = ((1LLU << 16) - 1) << 32, + UEI_ECODE_SYS_ACT_MASK = ((1LLU << 16) - 1) << 48, +}; + +/* + * These macro interpret the ecode returned from UEI_REPORT(). + */ +#define UEI_ECODE_USER(__ecode) ((__ecode) & UEI_ECODE_USER_MASK) +#define UEI_ECODE_SYS_RSN(__ecode) ((__ecode) & UEI_ECODE_SYS_RSN_MASK) +#define UEI_ECODE_SYS_ACT(__ecode) ((__ecode) & UEI_ECODE_SYS_ACT_MASK) + +#define UEI_ECODE_RESTART(__ecode) (UEI_ECODE_SYS_ACT((__ecode)) == SCX_ECODE_ACT_RESTART) + #endif /* __bpf__ */ #endif /* __USER_EXIT_INFO_H */ diff --git a/scheds/include/vmlinux/vmlinux-v6.9-g5dc95302301f.h b/scheds/include/vmlinux/vmlinux-v6.9-g73f4013eb1eb.h similarity index 99% rename from scheds/include/vmlinux/vmlinux-v6.9-g5dc95302301f.h rename to scheds/include/vmlinux/vmlinux-v6.9-g73f4013eb1eb.h index b2f9eca..6fd13c0 100644 --- a/scheds/include/vmlinux/vmlinux-v6.9-g5dc95302301f.h +++ b/scheds/include/vmlinux/vmlinux-v6.9-g73f4013eb1eb.h @@ -2672,18 +2672,21 @@ struct sched_dl_entity { struct sched_dl_entity *pi_se; }; +struct scx_dsq_node { + struct list_head list; + struct rb_node priq; + u32 flags; +}; + struct scx_dispatch_q; struct cgroup; struct sched_ext_entity { struct scx_dispatch_q *dsq; - struct { - struct list_head fifo; - struct rb_node priq; - } dsq_node; + struct scx_dsq_node dsq_node; + u64 dsq_seq; u32 flags; - u32 dsq_flags; u32 weight; s32 sticky_cpu; s32 holding_cpu; @@ -2697,8 +2700,8 @@ struct sched_ext_entity { u64 slice; u64 dsq_vtime; bool disallow; - struct list_head tasks_node; struct cgroup *cgrp_moving_from; + struct list_head tasks_node; }; struct sched_statistics {}; @@ -3185,6 +3188,12 @@ struct task_struct { const struct sched_class *sched_class; struct task_group *sched_task_group; long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; struct sched_statistics stats; unsigned int btrace_seq; unsigned int policy; @@ -3452,9 +3461,10 @@ struct rhash_head { struct scx_dispatch_q { raw_spinlock_t lock; - struct list_head fifo; - struct rb_root_cached priq; + struct list_head list; + struct rb_root priq; u32 nr; + u64 seq; u64 id; struct rhash_head hash_node; struct llist_node free_node; @@ -5401,1247 +5411,7 @@ struct pci_sysdata { void *fwnode; }; -enum bpf_text_poke_type { - BPF_MOD_CALL = 0, - BPF_MOD_JUMP = 1, -}; - -enum bpf_link_type { - BPF_LINK_TYPE_UNSPEC = 0, - BPF_LINK_TYPE_RAW_TRACEPOINT = 1, - BPF_LINK_TYPE_TRACING = 2, - BPF_LINK_TYPE_CGROUP = 3, - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, - BPF_LINK_TYPE_PERF_EVENT = 7, - BPF_LINK_TYPE_KPROBE_MULTI = 8, - BPF_LINK_TYPE_STRUCT_OPS = 9, - BPF_LINK_TYPE_NETFILTER = 10, - BPF_LINK_TYPE_TCX = 11, - BPF_LINK_TYPE_UPROBE_MULTI = 12, - BPF_LINK_TYPE_NETKIT = 13, - __MAX_BPF_LINK_TYPE = 14, -}; - -enum bpf_prog_type { - BPF_PROG_TYPE_UNSPEC = 0, - BPF_PROG_TYPE_SOCKET_FILTER = 1, - BPF_PROG_TYPE_KPROBE = 2, - BPF_PROG_TYPE_SCHED_CLS = 3, - BPF_PROG_TYPE_SCHED_ACT = 4, - BPF_PROG_TYPE_TRACEPOINT = 5, - BPF_PROG_TYPE_XDP = 6, - BPF_PROG_TYPE_PERF_EVENT = 7, - BPF_PROG_TYPE_CGROUP_SKB = 8, - BPF_PROG_TYPE_CGROUP_SOCK = 9, - BPF_PROG_TYPE_LWT_IN = 10, - BPF_PROG_TYPE_LWT_OUT = 11, - BPF_PROG_TYPE_LWT_XMIT = 12, - BPF_PROG_TYPE_SOCK_OPS = 13, - BPF_PROG_TYPE_SK_SKB = 14, - BPF_PROG_TYPE_CGROUP_DEVICE = 15, - BPF_PROG_TYPE_SK_MSG = 16, - BPF_PROG_TYPE_RAW_TRACEPOINT = 17, - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, - BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, - BPF_PROG_TYPE_LIRC_MODE2 = 20, - BPF_PROG_TYPE_SK_REUSEPORT = 21, - BPF_PROG_TYPE_FLOW_DISSECTOR = 22, - BPF_PROG_TYPE_CGROUP_SYSCTL = 23, - BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, - BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, - BPF_PROG_TYPE_TRACING = 26, - BPF_PROG_TYPE_STRUCT_OPS = 27, - BPF_PROG_TYPE_EXT = 28, - BPF_PROG_TYPE_LSM = 29, - BPF_PROG_TYPE_SK_LOOKUP = 30, - BPF_PROG_TYPE_SYSCALL = 31, - BPF_PROG_TYPE_NETFILTER = 32, - __MAX_BPF_PROG_TYPE = 33, -}; - -enum bpf_attach_type { - BPF_CGROUP_INET_INGRESS = 0, - BPF_CGROUP_INET_EGRESS = 1, - BPF_CGROUP_INET_SOCK_CREATE = 2, - BPF_CGROUP_SOCK_OPS = 3, - BPF_SK_SKB_STREAM_PARSER = 4, - BPF_SK_SKB_STREAM_VERDICT = 5, - BPF_CGROUP_DEVICE = 6, - BPF_SK_MSG_VERDICT = 7, - BPF_CGROUP_INET4_BIND = 8, - BPF_CGROUP_INET6_BIND = 9, - BPF_CGROUP_INET4_CONNECT = 10, - BPF_CGROUP_INET6_CONNECT = 11, - BPF_CGROUP_INET4_POST_BIND = 12, - BPF_CGROUP_INET6_POST_BIND = 13, - BPF_CGROUP_UDP4_SENDMSG = 14, - BPF_CGROUP_UDP6_SENDMSG = 15, - BPF_LIRC_MODE2 = 16, - BPF_FLOW_DISSECTOR = 17, - BPF_CGROUP_SYSCTL = 18, - BPF_CGROUP_UDP4_RECVMSG = 19, - BPF_CGROUP_UDP6_RECVMSG = 20, - BPF_CGROUP_GETSOCKOPT = 21, - BPF_CGROUP_SETSOCKOPT = 22, - BPF_TRACE_RAW_TP = 23, - BPF_TRACE_FENTRY = 24, - BPF_TRACE_FEXIT = 25, - BPF_MODIFY_RETURN = 26, - BPF_LSM_MAC = 27, - BPF_TRACE_ITER = 28, - BPF_CGROUP_INET4_GETPEERNAME = 29, - BPF_CGROUP_INET6_GETPEERNAME = 30, - BPF_CGROUP_INET4_GETSOCKNAME = 31, - BPF_CGROUP_INET6_GETSOCKNAME = 32, - BPF_XDP_DEVMAP = 33, - BPF_CGROUP_INET_SOCK_RELEASE = 34, - BPF_XDP_CPUMAP = 35, - BPF_SK_LOOKUP = 36, - BPF_XDP = 37, - BPF_SK_SKB_VERDICT = 38, - BPF_SK_REUSEPORT_SELECT = 39, - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, - BPF_PERF_EVENT = 41, - BPF_TRACE_KPROBE_MULTI = 42, - BPF_LSM_CGROUP = 43, - BPF_STRUCT_OPS = 44, - BPF_NETFILTER = 45, - BPF_TCX_INGRESS = 46, - BPF_TCX_EGRESS = 47, - BPF_TRACE_UPROBE_MULTI = 48, - BPF_CGROUP_UNIX_CONNECT = 49, - BPF_CGROUP_UNIX_SENDMSG = 50, - BPF_CGROUP_UNIX_RECVMSG = 51, - BPF_CGROUP_UNIX_GETPEERNAME = 52, - BPF_CGROUP_UNIX_GETSOCKNAME = 53, - BPF_NETKIT_PRIMARY = 54, - BPF_NETKIT_PEER = 55, - __MAX_BPF_ATTACH_TYPE = 56, -}; - -enum bpf_reg_type { - NOT_INIT = 0, - SCALAR_VALUE = 1, - PTR_TO_CTX = 2, - CONST_PTR_TO_MAP = 3, - PTR_TO_MAP_VALUE = 4, - PTR_TO_MAP_KEY = 5, - PTR_TO_STACK = 6, - PTR_TO_PACKET_META = 7, - PTR_TO_PACKET = 8, - PTR_TO_PACKET_END = 9, - PTR_TO_FLOW_KEYS = 10, - PTR_TO_SOCKET = 11, - PTR_TO_SOCK_COMMON = 12, - PTR_TO_TCP_SOCK = 13, - PTR_TO_TP_BUFFER = 14, - PTR_TO_XDP_SOCK = 15, - PTR_TO_BTF_ID = 16, - PTR_TO_MEM = 17, - PTR_TO_ARENA = 18, - PTR_TO_BUF = 19, - PTR_TO_FUNC = 20, - CONST_PTR_TO_DYNPTR = 21, - __BPF_REG_TYPE_MAX = 22, - PTR_TO_MAP_VALUE_OR_NULL = 260, - PTR_TO_SOCKET_OR_NULL = 267, - PTR_TO_SOCK_COMMON_OR_NULL = 268, - PTR_TO_TCP_SOCK_OR_NULL = 269, - PTR_TO_BTF_ID_OR_NULL = 272, - __BPF_REG_TYPE_LIMIT = 33554431, -}; - -enum ftrace_ops_cmd { - FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF = 0, - FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER = 1, - FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2, -}; - -struct ctl_table; - -typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); - -struct ctl_table_poll; - -struct ctl_table { - const char *procname; - void *data; - int maxlen; - umode_t mode; - enum { - SYSCTL_TABLE_TYPE_DEFAULT = 0, - SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, - } type; - proc_handler *proc_handler; - struct ctl_table_poll *poll; - void *extra1; - void *extra2; -}; - -struct ctl_table_poll { - atomic_t event; - wait_queue_head_t wait; -}; - -enum netdev_tx { - __NETDEV_TX_MIN = -2147483648, - NETDEV_TX_OK = 0, - NETDEV_TX_BUSY = 16, -}; - -enum tc_setup_type { - TC_QUERY_CAPS = 0, - TC_SETUP_QDISC_MQPRIO = 1, - TC_SETUP_CLSU32 = 2, - TC_SETUP_CLSFLOWER = 3, - TC_SETUP_CLSMATCHALL = 4, - TC_SETUP_CLSBPF = 5, - TC_SETUP_BLOCK = 6, - TC_SETUP_QDISC_CBS = 7, - TC_SETUP_QDISC_RED = 8, - TC_SETUP_QDISC_PRIO = 9, - TC_SETUP_QDISC_MQ = 10, - TC_SETUP_QDISC_ETF = 11, - TC_SETUP_ROOT_QDISC = 12, - TC_SETUP_QDISC_GRED = 13, - TC_SETUP_QDISC_TAPRIO = 14, - TC_SETUP_FT = 15, - TC_SETUP_QDISC_ETS = 16, - TC_SETUP_QDISC_TBF = 17, - TC_SETUP_QDISC_FIFO = 18, - TC_SETUP_QDISC_HTB = 19, - TC_SETUP_ACT = 20, -}; - -enum bpf_netdev_command { - XDP_SETUP_PROG = 0, - XDP_SETUP_PROG_HW = 1, - BPF_OFFLOAD_MAP_ALLOC = 2, - BPF_OFFLOAD_MAP_FREE = 3, - XDP_SETUP_XSK_POOL = 4, -}; - -enum net_device_path_type { - DEV_PATH_ETHERNET = 0, - DEV_PATH_VLAN = 1, - DEV_PATH_BRIDGE = 2, - DEV_PATH_PPPOE = 3, - DEV_PATH_DSA = 4, - DEV_PATH_MTK_WDMA = 5, -}; - -typedef __u16 __be16; - -struct net_device; - -struct net_device_path { - enum net_device_path_type type; - const struct net_device *dev; - union { - struct { - u16 id; - __be16 proto; - u8 h_dest[6]; - } encap; - struct { - enum { - DEV_PATH_BR_VLAN_KEEP = 0, - DEV_PATH_BR_VLAN_TAG = 1, - DEV_PATH_BR_VLAN_UNTAG = 2, - DEV_PATH_BR_VLAN_UNTAG_HW = 3, - } vlan_mode; - u16 vlan_id; - __be16 vlan_proto; - } bridge; - struct { - int port; - u16 proto; - } dsa; - struct { - u8 wdma_idx; - u8 queue; - u16 wcid; - u8 bss; - u8 amsdu; - } mtk_wdma; - }; -}; - -typedef u64 netdev_features_t; - -struct netdev_tc_txq { - u16 count; - u16 offset; -}; - -enum rx_handler_result { - RX_HANDLER_CONSUMED = 0, - RX_HANDLER_ANOTHER = 1, - RX_HANDLER_EXACT = 2, - RX_HANDLER_PASS = 3, -}; - -typedef enum rx_handler_result rx_handler_result_t; - -struct sk_buff; - -typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); - -struct net; - -typedef struct { - struct net __attribute__((btf_type_tag("rcu"))) *net; -} possible_net_t; - -typedef u32 xdp_features_t; - -struct net_device_stats { - union { - unsigned long rx_packets; - atomic_long_t __rx_packets; - }; - union { - unsigned long tx_packets; - atomic_long_t __tx_packets; - }; - union { - unsigned long rx_bytes; - atomic_long_t __rx_bytes; - }; - union { - unsigned long tx_bytes; - atomic_long_t __tx_bytes; - }; - union { - unsigned long rx_errors; - atomic_long_t __rx_errors; - }; - union { - unsigned long tx_errors; - atomic_long_t __tx_errors; - }; - union { - unsigned long rx_dropped; - atomic_long_t __rx_dropped; - }; - union { - unsigned long tx_dropped; - atomic_long_t __tx_dropped; - }; - union { - unsigned long multicast; - atomic_long_t __multicast; - }; - union { - unsigned long collisions; - atomic_long_t __collisions; - }; - union { - unsigned long rx_length_errors; - atomic_long_t __rx_length_errors; - }; - union { - unsigned long rx_over_errors; - atomic_long_t __rx_over_errors; - }; - union { - unsigned long rx_crc_errors; - atomic_long_t __rx_crc_errors; - }; - union { - unsigned long rx_frame_errors; - atomic_long_t __rx_frame_errors; - }; - union { - unsigned long rx_fifo_errors; - atomic_long_t __rx_fifo_errors; - }; - union { - unsigned long rx_missed_errors; - atomic_long_t __rx_missed_errors; - }; - union { - unsigned long tx_aborted_errors; - atomic_long_t __tx_aborted_errors; - }; - union { - unsigned long tx_carrier_errors; - atomic_long_t __tx_carrier_errors; - }; - union { - unsigned long tx_fifo_errors; - atomic_long_t __tx_fifo_errors; - }; - union { - unsigned long tx_heartbeat_errors; - atomic_long_t __tx_heartbeat_errors; - }; - union { - unsigned long tx_window_errors; - atomic_long_t __tx_window_errors; - }; - union { - unsigned long rx_compressed; - atomic_long_t __rx_compressed; - }; - union { - unsigned long tx_compressed; - atomic_long_t __tx_compressed; - }; -}; - -struct netdev_hw_addr_list { - struct list_head list; - int count; - struct rb_root tree; -}; - -struct ref_tracker_dir {}; - -enum netdev_ml_priv_type { - ML_PRIV_NONE = 0, - ML_PRIV_CAN = 1, -}; - -enum netdev_stat_type { - NETDEV_PCPU_STAT_NONE = 0, - NETDEV_PCPU_STAT_LSTATS = 1, - NETDEV_PCPU_STAT_TSTATS = 2, - NETDEV_PCPU_STAT_DSTATS = 3, -}; - -struct sfp_bus; - -struct udp_tunnel_nic; - -struct bpf_prog; - -struct bpf_xdp_link; - -struct bpf_xdp_entity { - struct bpf_prog *prog; - struct bpf_xdp_link *link; -}; - -typedef struct {} netdevice_tracker; - -struct net_device_ops; - -struct header_ops; - -struct netdev_queue; - -struct xps_dev_maps; - -struct nf_hook_entries; - -struct bpf_mprog_entry; - -struct pcpu_lstats; - -struct pcpu_sw_netstats; - -struct pcpu_dstats; - -struct inet6_dev; - -struct netdev_rx_queue; - -struct netdev_name_node; - -struct dev_ifalias; - -struct xdp_metadata_ops; - -struct xsk_tx_metadata_ops; - -struct net_device_core_stats; - -struct ethtool_ops; - -struct ndisc_ops; - -struct in_device; - -struct wireless_dev; - -struct cpu_rmap; - -struct Qdisc; - -struct xdp_dev_bulk_queue; - -struct rtnl_link_ops; - -struct netdev_stat_ops; - -struct phy_device; - -struct udp_tunnel_nic_info; - -struct rtnl_hw_stats64; - -struct devlink_port; - -struct net_device { - __u8 __cacheline_group_begin__net_device_read_tx[0]; - unsigned long long priv_flags; - const struct net_device_ops *netdev_ops; - const struct header_ops *header_ops; - struct netdev_queue *_tx; - netdev_features_t gso_partial_features; - unsigned int real_num_tx_queues; - unsigned int gso_max_size; - unsigned int gso_ipv4_max_size; - u16 gso_max_segs; - s16 num_tc; - unsigned int mtu; - unsigned short needed_headroom; - struct netdev_tc_txq tc_to_txq[16]; - struct xps_dev_maps __attribute__((btf_type_tag("rcu"))) *xps_maps[2]; - struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_egress; - struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_egress; - __u8 __cacheline_group_end__net_device_read_tx[0]; - __u8 __cacheline_group_begin__net_device_read_txrx[0]; - union { - struct pcpu_lstats __attribute__((btf_type_tag("percpu"))) *lstats; - struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *tstats; - struct pcpu_dstats __attribute__((btf_type_tag("percpu"))) *dstats; - }; - unsigned long state; - unsigned int flags; - unsigned short hard_header_len; - netdev_features_t features; - struct inet6_dev __attribute__((btf_type_tag("rcu"))) *ip6_ptr; - __u8 __cacheline_group_end__net_device_read_txrx[0]; - __u8 __cacheline_group_begin__net_device_read_rx[0]; - struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; - struct list_head ptype_specific; - int ifindex; - unsigned int real_num_rx_queues; - struct netdev_rx_queue *_rx; - unsigned long gro_flush_timeout; - int napi_defer_hard_irqs; - unsigned int gro_max_size; - unsigned int gro_ipv4_max_size; - rx_handler_func_t __attribute__((btf_type_tag("rcu"))) *rx_handler; - void __attribute__((btf_type_tag("rcu"))) *rx_handler_data; - possible_net_t nd_net; - struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_ingress; - __u8 __cacheline_group_end__net_device_read_rx[0]; - char name[16]; - struct netdev_name_node *name_node; - struct dev_ifalias __attribute__((btf_type_tag("rcu"))) *ifalias; - unsigned long mem_end; - unsigned long mem_start; - unsigned long base_addr; - struct list_head dev_list; - struct list_head napi_list; - struct list_head unreg_list; - struct list_head close_list; - struct list_head ptype_all; - struct { - struct list_head upper; - struct list_head lower; - } adj_list; - xdp_features_t xdp_features; - const struct xdp_metadata_ops *xdp_metadata_ops; - const struct xsk_tx_metadata_ops *xsk_tx_metadata_ops; - unsigned short gflags; - unsigned short needed_tailroom; - netdev_features_t hw_features; - netdev_features_t wanted_features; - netdev_features_t vlan_features; - netdev_features_t hw_enc_features; - netdev_features_t mpls_features; - unsigned int min_mtu; - unsigned int max_mtu; - unsigned short type; - unsigned char min_header_len; - unsigned char name_assign_type; - int group; - struct net_device_stats stats; - struct net_device_core_stats __attribute__((btf_type_tag("percpu"))) *core_stats; - atomic_t carrier_up_count; - atomic_t carrier_down_count; - const struct ethtool_ops *ethtool_ops; - const struct ndisc_ops *ndisc_ops; - unsigned int operstate; - unsigned char link_mode; - unsigned char if_port; - unsigned char dma; - unsigned char perm_addr[32]; - unsigned char addr_assign_type; - unsigned char addr_len; - unsigned char upper_level; - unsigned char lower_level; - unsigned short neigh_priv_len; - unsigned short dev_id; - unsigned short dev_port; - unsigned short padded; - spinlock_t addr_list_lock; - int irq; - struct netdev_hw_addr_list uc; - struct netdev_hw_addr_list mc; - struct netdev_hw_addr_list dev_addrs; - struct kset *queues_kset; - struct list_head unlink_list; - unsigned int promiscuity; - unsigned int allmulti; - bool uc_promisc; - unsigned char nested_level; - struct in_device __attribute__((btf_type_tag("rcu"))) *ip_ptr; - struct wireless_dev *ieee80211_ptr; - const unsigned char *dev_addr; - unsigned int num_rx_queues; - unsigned int xdp_zc_max_segs; - struct netdev_queue __attribute__((btf_type_tag("rcu"))) *ingress_queue; - struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_ingress; - unsigned char broadcast[32]; - struct cpu_rmap *rx_cpu_rmap; - struct hlist_node index_hlist; - unsigned int num_tx_queues; - struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; - unsigned int tx_queue_len; - spinlock_t tx_global_lock; - struct xdp_dev_bulk_queue __attribute__((btf_type_tag("percpu"))) *xdp_bulkq; - struct timer_list watchdog_timer; - int watchdog_timeo; - u32 proto_down_reason; - struct list_head todo_list; - int __attribute__((btf_type_tag("percpu"))) *pcpu_refcnt; - struct ref_tracker_dir refcnt_tracker; - struct list_head link_watch_list; - u8 reg_state; - bool dismantle; - enum { - RTNL_LINK_INITIALIZED = 0, - RTNL_LINK_INITIALIZING = 1, - } rtnl_link_state: 16; - bool needs_free_netdev; - void (*priv_destructor)(struct net_device *); - void *ml_priv; - enum netdev_ml_priv_type ml_priv_type; - enum netdev_stat_type pcpu_stat_type: 8; - struct device dev; - const struct attribute_group *sysfs_groups[4]; - const struct attribute_group *sysfs_rx_queue_group; - const struct rtnl_link_ops *rtnl_link_ops; - const struct netdev_stat_ops *stat_ops; - unsigned int tso_max_size; - u16 tso_max_segs; - u8 prio_tc_map[16]; - struct phy_device *phydev; - struct sfp_bus *sfp_bus; - struct lock_class_key *qdisc_tx_busylock; - bool proto_down; - unsigned int wol_enabled: 1; - unsigned int threaded: 1; - struct list_head net_notifier_list; - const struct udp_tunnel_nic_info *udp_tunnel_nic_info; - struct udp_tunnel_nic *udp_tunnel_nic; - struct bpf_xdp_entity xdp_state[3]; - u8 dev_addr_shadow[32]; - netdevice_tracker linkwatch_dev_tracker; - netdevice_tracker watchdog_dev_tracker; - netdevice_tracker dev_registered_tracker; - struct rtnl_hw_stats64 *offload_xstats_l3; - struct devlink_port *devlink_port; - struct hlist_head page_pools; -}; - -typedef enum netdev_tx netdev_tx_t; - -struct ifreq; - -struct if_settings; - -struct ifmap; - -struct neigh_parms; - -struct rtnl_link_stats64; - -struct ifla_vf_info; - -struct ifla_vf_stats; - -struct nlattr; - -struct ifla_vf_guid; - -struct netlink_ext_ack; - -struct neighbour; - -struct ndmsg; - -struct nlmsghdr; - -struct netlink_callback; - -struct netdev_phys_item_id; - -struct netdev_bpf; - -struct xdp_frame; - -struct xdp_buff; - -struct ip_tunnel_parm; - -struct net_device_path_ctx; - -struct skb_shared_hwtstamps; - -struct kernel_hwtstamp_config; - -struct net_device_ops { - int (*ndo_init)(struct net_device *); - void (*ndo_uninit)(struct net_device *); - int (*ndo_open)(struct net_device *); - int (*ndo_stop)(struct net_device *); - netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *); - netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t); - u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *); - void (*ndo_change_rx_flags)(struct net_device *, int); - void (*ndo_set_rx_mode)(struct net_device *); - int (*ndo_set_mac_address)(struct net_device *, void *); - int (*ndo_validate_addr)(struct net_device *); - int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int); - int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); - int (*ndo_siocbond)(struct net_device *, struct ifreq *, int); - int (*ndo_siocwandev)(struct net_device *, struct if_settings *); - int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int); - int (*ndo_set_config)(struct net_device *, struct ifmap *); - int (*ndo_change_mtu)(struct net_device *, int); - int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *); - void (*ndo_tx_timeout)(struct net_device *, unsigned int); - void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *); - bool (*ndo_has_offload_stats)(const struct net_device *, int); - int (*ndo_get_offload_stats)(int, const struct net_device *, void *); - struct net_device_stats * (*ndo_get_stats)(struct net_device *); - int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16); - int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16); - int (*ndo_set_vf_mac)(struct net_device *, int, u8 *); - int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16); - int (*ndo_set_vf_rate)(struct net_device *, int, int, int); - int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool); - int (*ndo_set_vf_trust)(struct net_device *, int, bool); - int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *); - int (*ndo_set_vf_link_state)(struct net_device *, int, int); - int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *); - int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **); - int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *); - int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *); - int (*ndo_set_vf_guid)(struct net_device *, int, u64, int); - int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool); - int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *); - int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32); - int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *); - int (*ndo_del_slave)(struct net_device *, struct net_device *); - struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool); - struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *); - netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t); - int (*ndo_set_features)(struct net_device *, netdev_features_t); - int (*ndo_neigh_construct)(struct net_device *, struct neighbour *); - void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *); - int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *); - int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *); - int (*ndo_fdb_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *); - int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); - int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); - int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); - int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); - int (*ndo_mdb_del_bulk)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); - int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); - int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); - int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); - int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); - int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); - int (*ndo_change_carrier)(struct net_device *, bool); - int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); - int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); - int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); - void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); - void (*ndo_dfwd_del_station)(struct net_device *, void *); - int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); - int (*ndo_get_iflink)(const struct net_device *); - int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *); - void (*ndo_set_rx_headroom)(struct net_device *, int); - int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); - int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); - struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); - int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); - int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int); - struct net_device * (*ndo_get_peer_dev)(struct net_device *); - int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); - ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); - int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); - int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); -}; - -typedef __u32 __wsum; - -typedef unsigned int sk_buff_data_t; - -struct skb_ext; - -struct sk_buff { - union { - struct { - struct sk_buff *next; - struct sk_buff *prev; - union { - struct net_device *dev; - unsigned long dev_scratch; - }; - }; - struct rb_node rbnode; - struct list_head list; - struct llist_node ll_node; - }; - struct sock *sk; - union { - ktime_t tstamp; - u64 skb_mstamp_ns; - }; - char cb[48]; - union { - struct { - unsigned long _skb_refdst; - void (*destructor)(struct sk_buff *); - }; - struct list_head tcp_tsorted_anchor; - unsigned long _sk_redir; - }; - unsigned long _nfct; - unsigned int len; - unsigned int data_len; - __u16 mac_len; - __u16 hdr_len; - __u16 queue_mapping; - __u8 __cloned_offset[0]; - __u8 cloned: 1; - __u8 nohdr: 1; - __u8 fclone: 2; - __u8 peeked: 1; - __u8 head_frag: 1; - __u8 pfmemalloc: 1; - __u8 pp_recycle: 1; - __u8 active_extensions; - union { - struct { - __u8 __pkt_type_offset[0]; - __u8 pkt_type: 3; - __u8 ignore_df: 1; - __u8 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 tc_at_ingress: 1; - __u8 tc_skip_classify: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 nf_trace: 1; - __u8 redirected: 1; - __u8 slow_gro: 1; - __u16 tc_index; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - union { - u32 vlan_all; - struct { - __be16 vlan_proto; - __u16 vlan_tci; - }; - }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - union { - __u32 mark; - __u32 reserved_tailroom; - }; - union { - __be16 inner_protocol; - __u8 inner_ipproto; - }; - __u16 inner_transport_header; - __u16 inner_network_header; - __u16 inner_mac_header; - __be16 protocol; - __u16 transport_header; - __u16 network_header; - __u16 mac_header; - }; - struct { - __u8 __pkt_type_offset[0]; - __u8 pkt_type: 3; - __u8 ignore_df: 1; - __u8 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 tc_at_ingress: 1; - __u8 tc_skip_classify: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 nf_trace: 1; - __u8 redirected: 1; - __u8 slow_gro: 1; - __u16 tc_index; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - union { - u32 vlan_all; - struct { - __be16 vlan_proto; - __u16 vlan_tci; - }; - }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - union { - __u32 mark; - __u32 reserved_tailroom; - }; - union { - __be16 inner_protocol; - __u8 inner_ipproto; - }; - __u16 inner_transport_header; - __u16 inner_network_header; - __u16 inner_mac_header; - __be16 protocol; - __u16 transport_header; - __u16 network_header; - __u16 mac_header; - } headers; - }; - sk_buff_data_t tail; - sk_buff_data_t end; - unsigned char *head; - unsigned char *data; - unsigned int truesize; - refcount_t users; - struct skb_ext *extensions; -}; - -struct skb_ext { - refcount_t refcnt; - u8 offset[1]; - u8 chunks; - long: 0; - char data[0]; -}; - -typedef unsigned short __kernel_sa_family_t; - -typedef __kernel_sa_family_t sa_family_t; - -struct sockaddr { - sa_family_t sa_family; - union { - char sa_data_min[14]; - struct { - struct {} __empty_sa_data; - char sa_data[0]; - }; - }; -}; - -struct ifmap { - unsigned long mem_start; - unsigned long mem_end; - unsigned short base_addr; - unsigned char irq; - unsigned char dma; - unsigned char port; -}; - -typedef struct { - unsigned short encoding; - unsigned short parity; -} raw_hdlc_proto; - -typedef struct { - unsigned int interval; - unsigned int timeout; -} cisco_proto; - -typedef struct { - unsigned int t391; - unsigned int t392; - unsigned int n391; - unsigned int n392; - unsigned int n393; - unsigned short lmi; - unsigned short dce; -} fr_proto; - -typedef struct { - unsigned int dlci; -} fr_proto_pvc; - -typedef struct { - unsigned int dlci; - char master[16]; -} fr_proto_pvc_info; - -typedef struct { - unsigned short dce; - unsigned int modulo; - unsigned int window; - unsigned int t1; - unsigned int t2; - unsigned int n2; -} x25_hdlc_proto; - -typedef struct { - unsigned int clock_rate; - unsigned int clock_type; - unsigned short loopback; -} sync_serial_settings; - -typedef struct { - unsigned int clock_rate; - unsigned int clock_type; - unsigned short loopback; - unsigned int slot_map; -} te1_settings; - -struct if_settings { - unsigned int type; - unsigned int size; - union { - raw_hdlc_proto __attribute__((btf_type_tag("user"))) *raw_hdlc; - cisco_proto __attribute__((btf_type_tag("user"))) *cisco; - fr_proto __attribute__((btf_type_tag("user"))) *fr; - fr_proto_pvc __attribute__((btf_type_tag("user"))) *fr_pvc; - fr_proto_pvc_info __attribute__((btf_type_tag("user"))) *fr_pvc_info; - x25_hdlc_proto __attribute__((btf_type_tag("user"))) *x25; - sync_serial_settings __attribute__((btf_type_tag("user"))) *sync; - te1_settings __attribute__((btf_type_tag("user"))) *te1; - } ifs_ifsu; -}; - -struct ifreq { - union { - char ifrn_name[16]; - } ifr_ifrn; - union { - struct sockaddr ifru_addr; - struct sockaddr ifru_dstaddr; - struct sockaddr ifru_broadaddr; - struct sockaddr ifru_netmask; - struct sockaddr ifru_hwaddr; - short ifru_flags; - int ifru_ivalue; - int ifru_mtu; - struct ifmap ifru_map; - char ifru_slave[16]; - char ifru_newname[16]; - void __attribute__((btf_type_tag("user"))) *ifru_data; - struct if_settings ifru_settings; - } ifr_ifru; -}; - -struct rtnl_link_stats64 { - __u64 rx_packets; - __u64 tx_packets; - __u64 rx_bytes; - __u64 tx_bytes; - __u64 rx_errors; - __u64 tx_errors; - __u64 rx_dropped; - __u64 tx_dropped; - __u64 multicast; - __u64 collisions; - __u64 rx_length_errors; - __u64 rx_over_errors; - __u64 rx_crc_errors; - __u64 rx_frame_errors; - __u64 rx_fifo_errors; - __u64 rx_missed_errors; - __u64 tx_aborted_errors; - __u64 tx_carrier_errors; - __u64 tx_fifo_errors; - __u64 tx_heartbeat_errors; - __u64 tx_window_errors; - __u64 rx_compressed; - __u64 tx_compressed; - __u64 rx_nohandler; - __u64 rx_otherhost_dropped; -}; - -struct ifla_vf_info { - __u32 vf; - __u8 mac[32]; - __u32 vlan; - __u32 qos; - __u32 spoofchk; - __u32 linkstate; - __u32 min_tx_rate; - __u32 max_tx_rate; - __u32 rss_query_en; - __u32 trusted; - __be16 vlan_proto; -}; - -struct ifla_vf_stats { - __u64 rx_packets; - __u64 tx_packets; - __u64 rx_bytes; - __u64 tx_bytes; - __u64 broadcast; - __u64 multicast; - __u64 rx_dropped; - __u64 tx_dropped; -}; - -struct nlattr { - __u16 nla_len; - __u16 nla_type; -}; - -struct ifla_vf_guid { - __u32 vf; - __u64 guid; -}; - -struct nla_policy; - -struct netlink_ext_ack { - const char *_msg; - const struct nlattr *bad_attr; - const struct nla_policy *policy; - const struct nlattr *miss_nest; - u16 miss_type; - u8 cookie[20]; - u8 cookie_len; - char _msg_buf[80]; -}; - -struct netlink_range_validation; - -struct netlink_range_validation_signed; - -struct nla_policy { - u8 type; - u8 validation_type; - u16 len; - union { - u16 strict_start_type; - const u32 bitfield32_valid; - const u32 mask; - const char *reject_message; - const struct nla_policy *nested_policy; - const struct netlink_range_validation *range; - const struct netlink_range_validation_signed *range_signed; - struct { - s16 min; - s16 max; - }; - int (*validate)(const struct nlattr *, struct netlink_ext_ack *); - }; -}; - -struct netlink_range_validation { - u64 min; - u64 max; -}; - -struct netlink_range_validation_signed { - s64 min; - s64 max; -}; - -struct ndmsg { - __u8 ndm_family; - __u8 ndm_pad1; - __u16 ndm_pad2; - __s32 ndm_ifindex; - __u16 ndm_state; - __u8 ndm_flags; - __u8 ndm_type; -}; - -struct nlmsghdr { - __u32 nlmsg_len; - __u16 nlmsg_type; - __u16 nlmsg_flags; - __u32 nlmsg_seq; - __u32 nlmsg_pid; -}; - -struct netlink_callback { - struct sk_buff *skb; - const struct nlmsghdr *nlh; - int (*dump)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - void *data; - struct module *module; - struct netlink_ext_ack *extack; - u16 family; - u16 answer_flags; - u32 min_dump_alloc; - unsigned int prev_seq; - unsigned int seq; - int flags; - bool strict_check; - union { - u8 ctx[48]; - long args[6]; - }; -}; +typedef void (*exitcall_t)(); enum writeback_sync_modes { WB_SYNC_NONE = 0, @@ -6685,10 +5455,21 @@ struct writeback_control { size_t wb_tcand_bytes; }; -struct idr { - struct xarray idr_rt; - unsigned int idr_base; - unsigned int idr_next; +struct uid_gid_extent { + u32 first; + u32 lower_first; + u32 count; +}; + +struct uid_gid_map { + u32 nr_extents; + union { + struct uid_gid_extent extent[5]; + struct { + struct uid_gid_extent *forward; + struct uid_gid_extent *reverse; + }; + }; }; struct proc_ns_operations; @@ -6700,22 +5481,202 @@ struct ns_common { refcount_t count; }; -struct fs_pin; +struct ctl_table; -struct pid_namespace { - struct idr idr; - struct callback_head rcu; - unsigned int pid_allocated; - struct task_struct *child_reaper; - struct kmem_cache *pid_cachep; - unsigned int level; - struct pid_namespace *parent; - struct fs_pin *bacct; - struct user_namespace *user_ns; - struct ucounts *ucounts; - int reboot; +struct ctl_table_root; + +struct ctl_table_set; + +struct ctl_dir; + +struct ctl_node; + +struct ctl_table_header { + union { + struct { + struct ctl_table *ctl_table; + int ctl_table_size; + int used; + int count; + int nreg; + }; + struct callback_head rcu; + }; + struct completion *unregistering; + struct ctl_table *ctl_table_arg; + struct ctl_table_root *root; + struct ctl_table_set *set; + struct ctl_dir *parent; + struct ctl_node *node; + struct hlist_head inodes; +}; + +struct ctl_dir { + struct ctl_table_header header; + struct rb_root root; +}; + +struct ctl_table_set { + int (*is_seen)(struct ctl_table_set *); + struct ctl_dir dir; +}; + +struct binfmt_misc; + +struct user_namespace { + struct uid_gid_map uid_map; + struct uid_gid_map gid_map; + struct uid_gid_map projid_map; + struct user_namespace *parent; + int level; + kuid_t owner; + kgid_t group; struct ns_common ns; - int memfd_noexec_scope; + unsigned long flags; + bool parent_could_setfcap; + struct list_head keyring_name_list; + struct key *user_keyring_register; + struct rw_semaphore keyring_sem; + struct work_struct work; + struct ctl_table_set set; + struct ctl_table_header *sysctls; + struct ucounts *ucounts; + long ucount_max[10]; + long rlimit_max[4]; + struct binfmt_misc *binfmt_misc; +}; + +struct nsset; + +struct proc_ns_operations { + const char *name; + const char *real_ns_name; + int type; + struct ns_common * (*get)(struct task_struct *); + void (*put)(struct ns_common *); + int (*install)(struct nsset *, struct ns_common *); + struct user_namespace * (*owner)(struct ns_common *); + struct ns_common * (*get_parent)(struct ns_common *); +}; + +typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); + +struct ctl_table_poll; + +struct ctl_table { + const char *procname; + void *data; + int maxlen; + umode_t mode; + enum { + SYSCTL_TABLE_TYPE_DEFAULT = 0, + SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, + } type; + proc_handler *proc_handler; + struct ctl_table_poll *poll; + void *extra1; + void *extra2; +}; + +struct ctl_table_poll { + atomic_t event; + wait_queue_head_t wait; +}; + +struct ctl_table_root { + struct ctl_table_set default_set; + struct ctl_table_set * (*lookup)(struct ctl_table_root *); + void (*set_ownership)(struct ctl_table_header *, struct ctl_table *, kuid_t *, kgid_t *); + int (*permissions)(struct ctl_table_header *, struct ctl_table *); +}; + +struct ctl_node { + struct rb_node node; + struct ctl_table_header *header; +}; + +struct ucounts { + struct hlist_node node; + struct user_namespace *ns; + kuid_t uid; + atomic_t count; + atomic_long_t ucount[10]; + atomic_long_t rlimit[4]; +}; + +struct iovec { + void __attribute__((btf_type_tag("user"))) *iov_base; + __kernel_size_t iov_len; +}; + +struct kvec; + +struct bio_vec; + +struct iov_iter { + u8 iter_type; + bool nofault; + bool data_source; + size_t iov_offset; + union { + struct iovec __ubuf_iovec; + struct { + union { + const struct iovec *__iov; + const struct kvec *kvec; + const struct bio_vec *bvec; + struct xarray *xarray; + void __attribute__((btf_type_tag("user"))) *ubuf; + }; + size_t count; + }; + }; + union { + unsigned long nr_segs; + loff_t xarray_start; + }; +}; + +struct kvec { + void *iov_base; + size_t iov_len; +}; + +struct bio_vec { + struct page *bv_page; + unsigned int bv_len; + unsigned int bv_offset; +}; + +typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); + +struct poll_table_struct { + poll_queue_proc _qproc; + __poll_t _key; +}; + +struct seq_operations; + +struct seq_file { + char *buf; + size_t size; + size_t from; + size_t count; + size_t pad_until; + loff_t index; + loff_t read_pos; + struct mutex lock; + const struct seq_operations *op; + int poll_event; + const struct file *file; + void *private; +}; + +struct seq_operations { + void * (*start)(struct seq_file *, loff_t *); + void (*stop)(struct seq_file *, void *); + void * (*next)(struct seq_file *, void *, loff_t *); + int (*show)(struct seq_file *, void *); }; struct rcu_work { @@ -6842,6 +5803,12 @@ struct cgroup { long: 64; }; +struct idr { + struct xarray idr_rt; + unsigned int idr_base; + unsigned int idr_next; +}; + struct cgroup_taskset; struct cgroup_subsys { @@ -6878,30 +5845,6 @@ struct cgroup_subsys { unsigned int depends_on; }; -struct seq_operations; - -struct seq_file { - char *buf; - size_t size; - size_t from; - size_t count; - size_t pad_until; - loff_t index; - loff_t read_pos; - struct mutex lock; - const struct seq_operations *op; - int poll_event; - const struct file *file; - void *private; -}; - -struct seq_operations { - void * (*start)(struct seq_file *, loff_t *); - void (*stop)(struct seq_file *, void *); - void * (*next)(struct seq_file *, void *, loff_t *); - int (*show)(struct seq_file *, void *); -}; - struct cgroup_root { struct kernfs_root *kf_root; unsigned int subsys_mask; @@ -7003,6 +5946,8 @@ struct psi_group_cpu { long: 64; }; +struct bpf_prog; + struct bpf_cgroup_storage; struct bpf_prog_array_item { @@ -7033,6 +5978,103 @@ struct bpf_insn { __s32 imm; }; +enum bpf_prog_type { + BPF_PROG_TYPE_UNSPEC = 0, + BPF_PROG_TYPE_SOCKET_FILTER = 1, + BPF_PROG_TYPE_KPROBE = 2, + BPF_PROG_TYPE_SCHED_CLS = 3, + BPF_PROG_TYPE_SCHED_ACT = 4, + BPF_PROG_TYPE_TRACEPOINT = 5, + BPF_PROG_TYPE_XDP = 6, + BPF_PROG_TYPE_PERF_EVENT = 7, + BPF_PROG_TYPE_CGROUP_SKB = 8, + BPF_PROG_TYPE_CGROUP_SOCK = 9, + BPF_PROG_TYPE_LWT_IN = 10, + BPF_PROG_TYPE_LWT_OUT = 11, + BPF_PROG_TYPE_LWT_XMIT = 12, + BPF_PROG_TYPE_SOCK_OPS = 13, + BPF_PROG_TYPE_SK_SKB = 14, + BPF_PROG_TYPE_CGROUP_DEVICE = 15, + BPF_PROG_TYPE_SK_MSG = 16, + BPF_PROG_TYPE_RAW_TRACEPOINT = 17, + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, + BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, + BPF_PROG_TYPE_LIRC_MODE2 = 20, + BPF_PROG_TYPE_SK_REUSEPORT = 21, + BPF_PROG_TYPE_FLOW_DISSECTOR = 22, + BPF_PROG_TYPE_CGROUP_SYSCTL = 23, + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, + BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, + BPF_PROG_TYPE_TRACING = 26, + BPF_PROG_TYPE_STRUCT_OPS = 27, + BPF_PROG_TYPE_EXT = 28, + BPF_PROG_TYPE_LSM = 29, + BPF_PROG_TYPE_SK_LOOKUP = 30, + BPF_PROG_TYPE_SYSCALL = 31, + BPF_PROG_TYPE_NETFILTER = 32, + __MAX_BPF_PROG_TYPE = 33, +}; + +enum bpf_attach_type { + BPF_CGROUP_INET_INGRESS = 0, + BPF_CGROUP_INET_EGRESS = 1, + BPF_CGROUP_INET_SOCK_CREATE = 2, + BPF_CGROUP_SOCK_OPS = 3, + BPF_SK_SKB_STREAM_PARSER = 4, + BPF_SK_SKB_STREAM_VERDICT = 5, + BPF_CGROUP_DEVICE = 6, + BPF_SK_MSG_VERDICT = 7, + BPF_CGROUP_INET4_BIND = 8, + BPF_CGROUP_INET6_BIND = 9, + BPF_CGROUP_INET4_CONNECT = 10, + BPF_CGROUP_INET6_CONNECT = 11, + BPF_CGROUP_INET4_POST_BIND = 12, + BPF_CGROUP_INET6_POST_BIND = 13, + BPF_CGROUP_UDP4_SENDMSG = 14, + BPF_CGROUP_UDP6_SENDMSG = 15, + BPF_LIRC_MODE2 = 16, + BPF_FLOW_DISSECTOR = 17, + BPF_CGROUP_SYSCTL = 18, + BPF_CGROUP_UDP4_RECVMSG = 19, + BPF_CGROUP_UDP6_RECVMSG = 20, + BPF_CGROUP_GETSOCKOPT = 21, + BPF_CGROUP_SETSOCKOPT = 22, + BPF_TRACE_RAW_TP = 23, + BPF_TRACE_FENTRY = 24, + BPF_TRACE_FEXIT = 25, + BPF_MODIFY_RETURN = 26, + BPF_LSM_MAC = 27, + BPF_TRACE_ITER = 28, + BPF_CGROUP_INET4_GETPEERNAME = 29, + BPF_CGROUP_INET6_GETPEERNAME = 30, + BPF_CGROUP_INET4_GETSOCKNAME = 31, + BPF_CGROUP_INET6_GETSOCKNAME = 32, + BPF_XDP_DEVMAP = 33, + BPF_CGROUP_INET_SOCK_RELEASE = 34, + BPF_XDP_CPUMAP = 35, + BPF_SK_LOOKUP = 36, + BPF_XDP = 37, + BPF_SK_SKB_VERDICT = 38, + BPF_SK_REUSEPORT_SELECT = 39, + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, + BPF_PERF_EVENT = 41, + BPF_TRACE_KPROBE_MULTI = 42, + BPF_LSM_CGROUP = 43, + BPF_STRUCT_OPS = 44, + BPF_NETFILTER = 45, + BPF_TCX_INGRESS = 46, + BPF_TCX_EGRESS = 47, + BPF_TRACE_UPROBE_MULTI = 48, + BPF_CGROUP_UNIX_CONNECT = 49, + BPF_CGROUP_UNIX_SENDMSG = 50, + BPF_CGROUP_UNIX_RECVMSG = 51, + BPF_CGROUP_UNIX_GETPEERNAME = 52, + BPF_CGROUP_UNIX_GETSOCKNAME = 53, + BPF_NETKIT_PRIMARY = 54, + BPF_NETKIT_PEER = 55, + __MAX_BPF_ATTACH_TYPE = 56, +}; + struct bpf_prog_stats; struct bpf_prog_aux; @@ -7213,6 +6255,38 @@ struct bpf_prog_aux { }; }; +enum bpf_reg_type { + NOT_INIT = 0, + SCALAR_VALUE = 1, + PTR_TO_CTX = 2, + CONST_PTR_TO_MAP = 3, + PTR_TO_MAP_VALUE = 4, + PTR_TO_MAP_KEY = 5, + PTR_TO_STACK = 6, + PTR_TO_PACKET_META = 7, + PTR_TO_PACKET = 8, + PTR_TO_PACKET_END = 9, + PTR_TO_FLOW_KEYS = 10, + PTR_TO_SOCKET = 11, + PTR_TO_SOCK_COMMON = 12, + PTR_TO_TCP_SOCK = 13, + PTR_TO_TP_BUFFER = 14, + PTR_TO_XDP_SOCK = 15, + PTR_TO_BTF_ID = 16, + PTR_TO_MEM = 17, + PTR_TO_ARENA = 18, + PTR_TO_BUF = 19, + PTR_TO_FUNC = 20, + CONST_PTR_TO_DYNPTR = 21, + __BPF_REG_TYPE_MAX = 22, + PTR_TO_MAP_VALUE_OR_NULL = 260, + PTR_TO_SOCKET_OR_NULL = 267, + PTR_TO_SOCK_COMMON_OR_NULL = 268, + PTR_TO_TCP_SOCK_OR_NULL = 269, + PTR_TO_BTF_ID_OR_NULL = 272, + __BPF_REG_TYPE_LIMIT = 33554431, +}; + struct bpf_ctx_arg_aux { u32 offset; enum bpf_reg_type reg_type; @@ -7250,48 +6324,6 @@ struct bpf_trampoline { struct bpf_tramp_image *cur_image; }; -struct ftrace_regs; - -typedef void (*ftrace_func_t)(unsigned long, unsigned long, struct ftrace_ops *, struct ftrace_regs *); - -struct ftrace_hash; - -struct ftrace_ops_hash { - struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *notrace_hash; - struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *filter_hash; - struct mutex regex_lock; -}; - -typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); - -struct ftrace_ops { - ftrace_func_t func; - struct ftrace_ops __attribute__((btf_type_tag("rcu"))) *next; - unsigned long flags; - void *private; - ftrace_func_t saved_func; - struct ftrace_ops_hash local_hash; - struct ftrace_ops_hash *func_hash; - struct ftrace_ops_hash old_hash; - unsigned long trampoline; - unsigned long trampoline_size; - struct list_head list; - ftrace_ops_func_t ops_func; - unsigned long direct_call; -}; - -struct ftrace_regs { - struct pt_regs regs; -}; - -struct ftrace_hash { - unsigned long size_bits; - struct hlist_head *buckets; - unsigned long count; - unsigned long flags; - struct callback_head rcu; -}; - struct bpf_tramp_image { void *image; int size; @@ -7831,6 +6863,7 @@ enum btf_field_type { BPF_GRAPH_NODE = 320, BPF_GRAPH_ROOT = 160, BPF_REFCOUNT = 512, + BPF_WORKQUEUE = 1024, }; typedef void (*btf_dtor_kfunc_t)(void *); @@ -7864,6 +6897,7 @@ struct btf_record { u32 field_mask; int spin_lock_off; int timer_off; + int wq_off; int refcount_off; struct btf_field fields[0]; }; @@ -8303,119 +7337,7 @@ struct bpf_token { u64 allowed_attachs; }; -struct uid_gid_extent { - u32 first; - u32 lower_first; - u32 count; -}; - -struct uid_gid_map { - u32 nr_extents; - union { - struct uid_gid_extent extent[5]; - struct { - struct uid_gid_extent *forward; - struct uid_gid_extent *reverse; - }; - }; -}; - -struct ctl_table_root; - -struct ctl_table_set; - -struct ctl_dir; - -struct ctl_node; - -struct ctl_table_header { - union { - struct { - struct ctl_table *ctl_table; - int ctl_table_size; - int used; - int count; - int nreg; - }; - struct callback_head rcu; - }; - struct completion *unregistering; - struct ctl_table *ctl_table_arg; - struct ctl_table_root *root; - struct ctl_table_set *set; - struct ctl_dir *parent; - struct ctl_node *node; - struct hlist_head inodes; -}; - -struct ctl_dir { - struct ctl_table_header header; - struct rb_root root; -}; - -struct ctl_table_set { - int (*is_seen)(struct ctl_table_set *); - struct ctl_dir dir; -}; - -struct binfmt_misc; - -struct user_namespace { - struct uid_gid_map uid_map; - struct uid_gid_map gid_map; - struct uid_gid_map projid_map; - struct user_namespace *parent; - int level; - kuid_t owner; - kgid_t group; - struct ns_common ns; - unsigned long flags; - bool parent_could_setfcap; - struct list_head keyring_name_list; - struct key *user_keyring_register; - struct rw_semaphore keyring_sem; - struct work_struct work; - struct ctl_table_set set; - struct ctl_table_header *sysctls; - struct ucounts *ucounts; - long ucount_max[10]; - long rlimit_max[4]; - struct binfmt_misc *binfmt_misc; -}; - -struct nsset; - -struct proc_ns_operations { - const char *name; - const char *real_ns_name; - int type; - struct ns_common * (*get)(struct task_struct *); - void (*put)(struct ns_common *); - int (*install)(struct nsset *, struct ns_common *); - struct user_namespace * (*owner)(struct ns_common *); - struct ns_common * (*get_parent)(struct ns_common *); -}; - -struct ctl_table_root { - struct ctl_table_set default_set; - struct ctl_table_set * (*lookup)(struct ctl_table_root *); - void (*set_ownership)(struct ctl_table_header *, struct ctl_table *, kuid_t *, kgid_t *); - int (*permissions)(struct ctl_table_header *, struct ctl_table *); -}; - -struct ctl_node { - struct rb_node node; - struct ctl_table_header *header; -}; - -struct ucounts { - struct hlist_node node; - struct user_namespace *ns; - kuid_t uid; - atomic_t count; - atomic_long_t ucount[10]; - atomic_long_t rlimit[4]; -}; +struct net_device; struct bpf_offload_dev; @@ -8450,17 +7372,14 @@ struct bpf_line_info { __u32 line_col; }; -struct sock_fprog_kern { - u16 len; - struct sock_filter *filter; -}; - struct uts_namespace; struct ipc_namespace; struct mnt_namespace; +struct net; + struct time_namespace; struct cgroup_namespace; @@ -8477,6 +7396,3766 @@ struct nsproxy { struct cgroup_namespace *cgroup_ns; }; +struct cgroup_namespace { + struct ns_common ns; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct css_set *root_cset; +}; + +struct taskstats { + __u16 version; + __u32 ac_exitcode; + __u8 ac_flag; + __u8 ac_nice; + __u64 cpu_count; + __u64 cpu_delay_total; + __u64 blkio_count; + __u64 blkio_delay_total; + __u64 swapin_count; + __u64 swapin_delay_total; + __u64 cpu_run_real_total; + __u64 cpu_run_virtual_total; + char ac_comm[32]; + __u8 ac_sched; + __u8 ac_pad[3]; + long: 0; + __u32 ac_uid; + __u32 ac_gid; + __u32 ac_pid; + __u32 ac_ppid; + __u32 ac_btime; + __u64 ac_etime; + __u64 ac_utime; + __u64 ac_stime; + __u64 ac_minflt; + __u64 ac_majflt; + __u64 coremem; + __u64 virtmem; + __u64 hiwater_rss; + __u64 hiwater_vm; + __u64 read_char; + __u64 write_char; + __u64 read_syscalls; + __u64 write_syscalls; + __u64 read_bytes; + __u64 write_bytes; + __u64 cancelled_write_bytes; + __u64 nvcsw; + __u64 nivcsw; + __u64 ac_utimescaled; + __u64 ac_stimescaled; + __u64 cpu_scaled_run_real_total; + __u64 freepages_count; + __u64 freepages_delay_total; + __u64 thrashing_count; + __u64 thrashing_delay_total; + __u64 ac_btime64; + __u64 compact_count; + __u64 compact_delay_total; + __u32 ac_tgid; + __u64 ac_tgetime; + __u64 ac_exe_dev; + __u64 ac_exe_inode; + __u64 wpcopy_count; + __u64 wpcopy_delay_total; + __u64 irq_count; + __u64 irq_delay_total; +}; + +struct bio; + +struct bio_list { + struct bio *head; + struct bio *tail; +}; + +typedef __u32 blk_opf_t; + +typedef u8 blk_status_t; + +struct bvec_iter { + sector_t bi_sector; + unsigned int bi_size; + unsigned int bi_idx; + unsigned int bi_bvec_done; +} __attribute__((packed)); + +typedef unsigned int blk_qc_t; + +typedef void bio_end_io_t(struct bio *); + +struct bio_issue { + u64 value; +}; + +struct blkcg_gq; + +struct bio_set; + +struct bio { + struct bio *bi_next; + struct block_device *bi_bdev; + blk_opf_t bi_opf; + unsigned short bi_flags; + unsigned short bi_ioprio; + enum rw_hint bi_write_hint; + blk_status_t bi_status; + atomic_t __bi_remaining; + struct bvec_iter bi_iter; + blk_qc_t bi_cookie; + bio_end_io_t *bi_end_io; + void *bi_private; + struct blkcg_gq *bi_blkg; + struct bio_issue bi_issue; + u64 bi_iocost_cost; + union {}; + unsigned short bi_vcnt; + unsigned short bi_max_vecs; + atomic_t __bi_cnt; + struct bio_vec *bi_io_vec; + struct bio_set *bi_pool; + struct bio_vec bi_inline_vecs[0]; +}; + +struct disk_stats; + +struct blk_holder_ops; + +struct partition_meta_info; + +struct block_device { + sector_t bd_start_sect; + sector_t bd_nr_sectors; + struct gendisk *bd_disk; + struct request_queue *bd_queue; + struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; + unsigned long bd_stamp; + bool bd_read_only; + u8 bd_partno; + bool bd_write_holder; + bool bd_has_submit_bio; + dev_t bd_dev; + struct inode *bd_inode; + atomic_t bd_openers; + spinlock_t bd_size_lock; + void *bd_claiming; + void *bd_holder; + const struct blk_holder_ops *bd_holder_ops; + struct mutex bd_holder_lock; + int bd_holders; + struct kobject *bd_holder_dir; + atomic_t bd_fsfreeze_count; + struct mutex bd_fsfreeze_mutex; + struct partition_meta_info *bd_meta_info; + bool bd_ro_warned; + int bd_writers; + struct device bd_device; +}; + +struct disk_stats { + u64 nsecs[4]; + unsigned long sectors[4]; + unsigned long ios[4]; + unsigned long merges[4]; + unsigned long io_ticks; + local_t in_flight[2]; +}; + +struct blk_holder_ops { + void (*mark_dead)(struct block_device *, bool); + void (*sync)(struct block_device *); + int (*freeze)(struct block_device *); + int (*thaw)(struct block_device *); + void (*get_holder)(void *); + void (*put_holder)(void *); +}; + +typedef void *mempool_alloc_t(gfp_t, void *); + +typedef void mempool_free_t(void *, void *); + +struct mempool_s { + spinlock_t lock; + int min_nr; + int curr_nr; + void **elements; + void *pool_data; + mempool_alloc_t *alloc; + mempool_free_t *free; + wait_queue_head_t wait; +}; + +typedef struct mempool_s mempool_t; + +struct bio_alloc_cache; + +struct bio_set { + struct kmem_cache *bio_slab; + unsigned int front_pad; + struct bio_alloc_cache __attribute__((btf_type_tag("percpu"))) *cache; + mempool_t bio_pool; + mempool_t bvec_pool; + unsigned int back_pad; + spinlock_t rescue_lock; + struct bio_list rescue_list; + struct work_struct rescue_work; + struct workqueue_struct *rescue_workqueue; + struct hlist_node cpuhp_dead; +}; + +struct bio_alloc_cache { + struct bio *free_list; + struct bio *free_list_irq; + unsigned int nr; + unsigned int nr_irq; +}; + +struct bpf_run_ctx {}; + +struct fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; +}; + +enum wb_reason { + WB_REASON_BACKGROUND = 0, + WB_REASON_VMSCAN = 1, + WB_REASON_SYNC = 2, + WB_REASON_PERIODIC = 3, + WB_REASON_LAPTOP_TIMER = 4, + WB_REASON_FS_FREE_SPACE = 5, + WB_REASON_FORKER_THREAD = 6, + WB_REASON_FOREIGN_FLUSH = 7, + WB_REASON_MAX = 8, +}; + +struct bdi_writeback { + struct backing_dev_info *bdi; + unsigned long state; + unsigned long last_old_flush; + struct list_head b_dirty; + struct list_head b_io; + struct list_head b_more_io; + struct list_head b_dirty_time; + spinlock_t list_lock; + atomic_t writeback_inodes; + struct percpu_counter stat[4]; + unsigned long bw_time_stamp; + unsigned long dirtied_stamp; + unsigned long written_stamp; + unsigned long write_bandwidth; + unsigned long avg_write_bandwidth; + unsigned long dirty_ratelimit; + unsigned long balanced_dirty_ratelimit; + struct fprop_local_percpu completions; + int dirty_exceeded; + enum wb_reason start_all_reason; + spinlock_t work_lock; + struct list_head work_list; + struct delayed_work dwork; + struct delayed_work bw_dwork; + struct list_head bdi_node; + struct percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; + union { + struct work_struct release_work; + struct callback_head rcu; + }; +}; + +struct backing_dev_info { + u64 id; + struct rb_node rb_node; + struct list_head bdi_list; + unsigned long ra_pages; + unsigned long io_pages; + struct kref refcnt; + unsigned int capabilities; + unsigned int min_ratio; + unsigned int max_ratio; + unsigned int max_prop_frac; + atomic_long_t tot_write_bandwidth; + unsigned long last_bdp_sleep; + struct bdi_writeback wb; + struct list_head wb_list; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; +}; + +struct static_call_mod { + struct static_call_mod *next; + struct module *mod; + struct static_call_site *sites; +}; + +enum cpuhp_state { + CPUHP_INVALID = -1, + CPUHP_OFFLINE = 0, + CPUHP_CREATE_THREADS = 1, + CPUHP_PERF_PREPARE = 2, + CPUHP_PERF_X86_PREPARE = 3, + CPUHP_PERF_X86_AMD_UNCORE_PREP = 4, + CPUHP_PERF_POWER = 5, + CPUHP_PERF_SUPERH = 6, + CPUHP_X86_HPET_DEAD = 7, + CPUHP_X86_MCE_DEAD = 8, + CPUHP_VIRT_NET_DEAD = 9, + CPUHP_IBMVNIC_DEAD = 10, + CPUHP_SLUB_DEAD = 11, + CPUHP_DEBUG_OBJ_DEAD = 12, + CPUHP_MM_WRITEBACK_DEAD = 13, + CPUHP_MM_VMSTAT_DEAD = 14, + CPUHP_SOFTIRQ_DEAD = 15, + CPUHP_NET_MVNETA_DEAD = 16, + CPUHP_CPUIDLE_DEAD = 17, + CPUHP_ARM64_FPSIMD_DEAD = 18, + CPUHP_ARM_OMAP_WAKE_DEAD = 19, + CPUHP_IRQ_POLL_DEAD = 20, + CPUHP_BLOCK_SOFTIRQ_DEAD = 21, + CPUHP_BIO_DEAD = 22, + CPUHP_ACPI_CPUDRV_DEAD = 23, + CPUHP_S390_PFAULT_DEAD = 24, + CPUHP_BLK_MQ_DEAD = 25, + CPUHP_FS_BUFF_DEAD = 26, + CPUHP_PRINTK_DEAD = 27, + CPUHP_MM_MEMCQ_DEAD = 28, + CPUHP_PERCPU_CNT_DEAD = 29, + CPUHP_RADIX_DEAD = 30, + CPUHP_PAGE_ALLOC = 31, + CPUHP_NET_DEV_DEAD = 32, + CPUHP_PCI_XGENE_DEAD = 33, + CPUHP_IOMMU_IOVA_DEAD = 34, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 35, + CPUHP_PADATA_DEAD = 36, + CPUHP_AP_DTPM_CPU_DEAD = 37, + CPUHP_RANDOM_PREPARE = 38, + CPUHP_WORKQUEUE_PREP = 39, + CPUHP_POWER_NUMA_PREPARE = 40, + CPUHP_HRTIMERS_PREPARE = 41, + CPUHP_PROFILE_PREPARE = 42, + CPUHP_X2APIC_PREPARE = 43, + CPUHP_SMPCFD_PREPARE = 44, + CPUHP_RELAY_PREPARE = 45, + CPUHP_MD_RAID5_PREPARE = 46, + CPUHP_RCUTREE_PREP = 47, + CPUHP_CPUIDLE_COUPLED_PREPARE = 48, + CPUHP_POWERPC_PMAC_PREPARE = 49, + CPUHP_POWERPC_MMU_CTX_PREPARE = 50, + CPUHP_XEN_PREPARE = 51, + CPUHP_XEN_EVTCHN_PREPARE = 52, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 53, + CPUHP_SH_SH3X_PREPARE = 54, + CPUHP_TOPOLOGY_PREPARE = 55, + CPUHP_NET_IUCV_PREPARE = 56, + CPUHP_ARM_BL_PREPARE = 57, + CPUHP_TRACE_RB_PREPARE = 58, + CPUHP_MM_ZS_PREPARE = 59, + CPUHP_MM_ZSWP_POOL_PREPARE = 60, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 61, + CPUHP_ZCOMP_PREPARE = 62, + CPUHP_TIMERS_PREPARE = 63, + CPUHP_MIPS_SOC_PREPARE = 64, + CPUHP_BP_PREPARE_DYN = 65, + CPUHP_BP_PREPARE_DYN_END = 85, + CPUHP_BP_KICK_AP = 86, + CPUHP_BRINGUP_CPU = 87, + CPUHP_AP_IDLE_DEAD = 88, + CPUHP_AP_OFFLINE = 89, + CPUHP_AP_CACHECTRL_STARTING = 90, + CPUHP_AP_SCHED_STARTING = 91, + CPUHP_AP_RCUTREE_DYING = 92, + CPUHP_AP_CPU_PM_STARTING = 93, + CPUHP_AP_IRQ_GIC_STARTING = 94, + CPUHP_AP_IRQ_HIP04_STARTING = 95, + CPUHP_AP_IRQ_APPLE_AIC_STARTING = 96, + CPUHP_AP_IRQ_ARMADA_XP_STARTING = 97, + CPUHP_AP_IRQ_BCM2836_STARTING = 98, + CPUHP_AP_IRQ_MIPS_GIC_STARTING = 99, + CPUHP_AP_IRQ_LOONGARCH_STARTING = 100, + CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 101, + CPUHP_AP_ARM_MVEBU_COHERENCY = 102, + CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 103, + CPUHP_AP_PERF_X86_STARTING = 104, + CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 105, + CPUHP_AP_PERF_X86_CSTATE_STARTING = 106, + CPUHP_AP_PERF_XTENSA_STARTING = 107, + CPUHP_AP_ARM_VFP_STARTING = 108, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 109, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 110, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 111, + CPUHP_AP_PERF_ARM_STARTING = 112, + CPUHP_AP_PERF_RISCV_STARTING = 113, + CPUHP_AP_ARM_L2X0_STARTING = 114, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 115, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 116, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 117, + CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 118, + CPUHP_AP_JCORE_TIMER_STARTING = 119, + CPUHP_AP_ARM_TWD_STARTING = 120, + CPUHP_AP_QCOM_TIMER_STARTING = 121, + CPUHP_AP_TEGRA_TIMER_STARTING = 122, + CPUHP_AP_ARMADA_TIMER_STARTING = 123, + CPUHP_AP_MIPS_GIC_TIMER_STARTING = 124, + CPUHP_AP_ARC_TIMER_STARTING = 125, + CPUHP_AP_RISCV_TIMER_STARTING = 126, + CPUHP_AP_CLINT_TIMER_STARTING = 127, + CPUHP_AP_CSKY_TIMER_STARTING = 128, + CPUHP_AP_TI_GP_TIMER_STARTING = 129, + CPUHP_AP_HYPERV_TIMER_STARTING = 130, + CPUHP_AP_DUMMY_TIMER_STARTING = 131, + CPUHP_AP_ARM_XEN_STARTING = 132, + CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 133, + CPUHP_AP_ARM_CORESIGHT_STARTING = 134, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 135, + CPUHP_AP_ARM64_ISNDEP_STARTING = 136, + CPUHP_AP_SMPCFD_DYING = 137, + CPUHP_AP_HRTIMERS_DYING = 138, + CPUHP_AP_TICK_DYING = 139, + CPUHP_AP_X86_TBOOT_DYING = 140, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 141, + CPUHP_AP_ONLINE = 142, + CPUHP_TEARDOWN_CPU = 143, + CPUHP_AP_ONLINE_IDLE = 144, + CPUHP_AP_HYPERV_ONLINE = 145, + CPUHP_AP_KVM_ONLINE = 146, + CPUHP_AP_SCHED_WAIT_EMPTY = 147, + CPUHP_AP_SMPBOOT_THREADS = 148, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 149, + CPUHP_AP_BLK_MQ_ONLINE = 150, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 151, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 152, + CPUHP_AP_PERF_ONLINE = 153, + CPUHP_AP_PERF_X86_ONLINE = 154, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 155, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 156, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 157, + CPUHP_AP_PERF_X86_RAPL_ONLINE = 158, + CPUHP_AP_PERF_X86_CSTATE_ONLINE = 159, + CPUHP_AP_PERF_S390_CF_ONLINE = 160, + CPUHP_AP_PERF_S390_SF_ONLINE = 161, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 162, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 163, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 164, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 165, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 166, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 167, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 168, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 169, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 170, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 171, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 172, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 173, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 174, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 175, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 176, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 177, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 178, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 179, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 180, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 181, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 182, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 183, + CPUHP_AP_PERF_CSKY_ONLINE = 184, + CPUHP_AP_TMIGR_ONLINE = 185, + CPUHP_AP_WATCHDOG_ONLINE = 186, + CPUHP_AP_WORKQUEUE_ONLINE = 187, + CPUHP_AP_RANDOM_ONLINE = 188, + CPUHP_AP_RCUTREE_ONLINE = 189, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 190, + CPUHP_AP_ONLINE_DYN = 191, + CPUHP_AP_ONLINE_DYN_END = 231, + CPUHP_AP_X86_HPET_ONLINE = 232, + CPUHP_AP_X86_KVM_CLK_ONLINE = 233, + CPUHP_AP_ACTIVE = 234, + CPUHP_ONLINE = 235, +}; + +enum allow_write_msrs { + MSR_WRITES_ON = 0, + MSR_WRITES_OFF = 1, + MSR_WRITES_DEFAULT = 2, +}; + +enum lockdown_reason { + LOCKDOWN_NONE = 0, + LOCKDOWN_MODULE_SIGNATURE = 1, + LOCKDOWN_DEV_MEM = 2, + LOCKDOWN_EFI_TEST = 3, + LOCKDOWN_KEXEC = 4, + LOCKDOWN_HIBERNATION = 5, + LOCKDOWN_PCI_ACCESS = 6, + LOCKDOWN_IOPORT = 7, + LOCKDOWN_MSR = 8, + LOCKDOWN_ACPI_TABLES = 9, + LOCKDOWN_DEVICE_TREE = 10, + LOCKDOWN_PCMCIA_CIS = 11, + LOCKDOWN_TIOCSSERIAL = 12, + LOCKDOWN_MODULE_PARAMETERS = 13, + LOCKDOWN_MMIOTRACE = 14, + LOCKDOWN_DEBUGFS = 15, + LOCKDOWN_XMON_WR = 16, + LOCKDOWN_BPF_WRITE_USER = 17, + LOCKDOWN_DBG_WRITE_KERNEL = 18, + LOCKDOWN_RTAS_ERROR_INJECTION = 19, + LOCKDOWN_INTEGRITY_MAX = 20, + LOCKDOWN_KCORE = 21, + LOCKDOWN_KPROBES = 22, + LOCKDOWN_BPF_READ_KERNEL = 23, + LOCKDOWN_DBG_READ_KERNEL = 24, + LOCKDOWN_PERF = 25, + LOCKDOWN_TRACEFS = 26, + LOCKDOWN_XMON_RW = 27, + LOCKDOWN_XFRM_SECRET = 28, + LOCKDOWN_CONFIDENTIALITY_MAX = 29, +}; + +enum lockdep_ok { + LOCKDEP_STILL_OK = 0, + LOCKDEP_NOW_UNRELIABLE = 1, +}; + +enum { + ___GFP_DMA_BIT = 0, + ___GFP_HIGHMEM_BIT = 1, + ___GFP_DMA32_BIT = 2, + ___GFP_MOVABLE_BIT = 3, + ___GFP_RECLAIMABLE_BIT = 4, + ___GFP_HIGH_BIT = 5, + ___GFP_IO_BIT = 6, + ___GFP_FS_BIT = 7, + ___GFP_ZERO_BIT = 8, + ___GFP_UNUSED_BIT = 9, + ___GFP_DIRECT_RECLAIM_BIT = 10, + ___GFP_KSWAPD_RECLAIM_BIT = 11, + ___GFP_WRITE_BIT = 12, + ___GFP_NOWARN_BIT = 13, + ___GFP_RETRY_MAYFAIL_BIT = 14, + ___GFP_NOFAIL_BIT = 15, + ___GFP_NORETRY_BIT = 16, + ___GFP_MEMALLOC_BIT = 17, + ___GFP_COMP_BIT = 18, + ___GFP_NOMEMALLOC_BIT = 19, + ___GFP_HARDWALL_BIT = 20, + ___GFP_THISNODE_BIT = 21, + ___GFP_ACCOUNT_BIT = 22, + ___GFP_ZEROTAGS_BIT = 23, + ___GFP_NOLOCKDEP_BIT = 24, + ___GFP_LAST_BIT = 25, +}; + +struct cpuinfo_topology { + u32 apicid; + u32 initial_apicid; + u32 pkg_id; + u32 die_id; + u32 cu_id; + u32 core_id; + u32 logical_pkg_id; + u32 logical_die_id; + u32 amd_node_id; + u32 llc_id; + u32 l2c_id; +}; + +struct cpuinfo_x86 { + __u8 x86; + __u8 x86_vendor; + __u8 x86_model; + __u8 x86_stepping; + int x86_tlbsize; + __u32 vmx_capability[5]; + __u8 x86_virt_bits; + __u8 x86_phys_bits; + __u32 extended_cpuid_level; + int cpuid_level; + union { + __u32 x86_capability[23]; + unsigned long x86_capability_alignment; + }; + char x86_vendor_id[16]; + char x86_model_id[64]; + struct cpuinfo_topology topo; + unsigned int x86_cache_size; + int x86_cache_alignment; + int x86_cache_max_rmid; + int x86_cache_occ_scale; + int x86_cache_mbm_width_offset; + int x86_power; + unsigned long loops_per_jiffy; + u64 ppin; + u16 x86_clflush_size; + u16 booted_cores; + u16 cpu_index; + bool smt_active; + u32 microcode; + u8 x86_cache_bits; + unsigned int initialized: 1; +}; + +struct obs_kernel_param { + const char *str; + int (*setup_func)(char *); + int early; +}; + +enum { + IRQTF_RUNTHREAD = 0, + IRQTF_WARNED = 1, + IRQTF_AFFINITY = 2, + IRQTF_FORCED_THREAD = 3, + IRQTF_READY = 4, +}; + +enum hk_type { + HK_TYPE_TIMER = 0, + HK_TYPE_RCU = 1, + HK_TYPE_MISC = 2, + HK_TYPE_SCHED = 3, + HK_TYPE_TICK = 4, + HK_TYPE_DOMAIN = 5, + HK_TYPE_WQ = 6, + HK_TYPE_MANAGED_IRQ = 7, + HK_TYPE_KTHREAD = 8, + HK_TYPE_MAX = 9, +}; + +enum { + IRQ_SET_MASK_OK = 0, + IRQ_SET_MASK_OK_NOCOPY = 1, + IRQ_SET_MASK_OK_DONE = 2, +}; + +enum { + IRQD_TRIGGER_MASK = 15, + IRQD_SETAFFINITY_PENDING = 256, + IRQD_ACTIVATED = 512, + IRQD_NO_BALANCING = 1024, + IRQD_PER_CPU = 2048, + IRQD_AFFINITY_SET = 4096, + IRQD_LEVEL = 8192, + IRQD_WAKEUP_STATE = 16384, + IRQD_MOVE_PCNTXT = 32768, + IRQD_IRQ_DISABLED = 65536, + IRQD_IRQ_MASKED = 131072, + IRQD_IRQ_INPROGRESS = 262144, + IRQD_WAKEUP_ARMED = 524288, + IRQD_FORWARDED_TO_VCPU = 1048576, + IRQD_AFFINITY_MANAGED = 2097152, + IRQD_IRQ_STARTED = 4194304, + IRQD_MANAGED_SHUTDOWN = 8388608, + IRQD_SINGLE_TARGET = 16777216, + IRQD_DEFAULT_TRIGGER_SET = 33554432, + IRQD_CAN_RESERVE = 67108864, + IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, + IRQD_AFFINITY_ON_ACTIVATE = 268435456, + IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, + IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, +}; + +enum { + IRQS_AUTODETECT = 1, + IRQS_SPURIOUS_DISABLED = 2, + IRQS_POLL_INPROGRESS = 8, + IRQS_ONESHOT = 32, + IRQS_REPLAY = 64, + IRQS_WAITING = 128, + IRQS_PENDING = 512, + IRQS_SUSPENDED = 2048, + IRQS_TIMINGS = 4096, + IRQS_NMI = 8192, + IRQS_SYSFS = 16384, +}; + +enum work_bits { + WORK_STRUCT_PENDING_BIT = 0, + WORK_STRUCT_INACTIVE_BIT = 1, + WORK_STRUCT_PWQ_BIT = 2, + WORK_STRUCT_LINKED_BIT = 3, + WORK_STRUCT_FLAG_BITS = 4, + WORK_STRUCT_COLOR_SHIFT = 4, + WORK_STRUCT_COLOR_BITS = 4, + WORK_STRUCT_PWQ_SHIFT = 8, + WORK_OFFQ_FLAG_SHIFT = 4, + WORK_OFFQ_CANCELING_BIT = 4, + WORK_OFFQ_FLAG_END = 5, + WORK_OFFQ_FLAG_BITS = 1, + WORK_OFFQ_POOL_SHIFT = 5, + WORK_OFFQ_LEFT = 59, + WORK_OFFQ_POOL_BITS = 31, +}; + +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, + IRQCHIP_IMMUTABLE = 2048, +}; + +enum { + IRQ_TYPE_NONE = 0, + IRQ_TYPE_EDGE_RISING = 1, + IRQ_TYPE_EDGE_FALLING = 2, + IRQ_TYPE_EDGE_BOTH = 3, + IRQ_TYPE_LEVEL_HIGH = 4, + IRQ_TYPE_LEVEL_LOW = 8, + IRQ_TYPE_LEVEL_MASK = 12, + IRQ_TYPE_SENSE_MASK = 15, + IRQ_TYPE_DEFAULT = 15, + IRQ_TYPE_PROBE = 16, + IRQ_LEVEL = 256, + IRQ_PER_CPU = 512, + IRQ_NOPROBE = 1024, + IRQ_NOREQUEST = 2048, + IRQ_NOAUTOEN = 4096, + IRQ_NO_BALANCING = 8192, + IRQ_MOVE_PCNTXT = 16384, + IRQ_NESTED_THREAD = 32768, + IRQ_NOTHREAD = 65536, + IRQ_PER_CPU_DEVID = 131072, + IRQ_IS_POLLED = 262144, + IRQ_DISABLE_UNLAZY = 524288, + IRQ_HIDDEN = 1048576, + IRQ_NO_DEBUG = 2097152, +}; + +enum { + IRQC_IS_HARDIRQ = 0, + IRQC_IS_NESTED = 1, +}; + +enum refcount_saturation_type { + REFCOUNT_ADD_NOT_ZERO_OVF = 0, + REFCOUNT_ADD_OVF = 1, + REFCOUNT_ADD_UAF = 2, + REFCOUNT_SUB_UAF = 3, + REFCOUNT_DEC_LEAK = 4, +}; + +enum wq_misc_consts { + WORK_NR_COLORS = 16, + WORK_CPU_UNBOUND = 8192, + WORK_BUSY_PENDING = 1, + WORK_BUSY_RUNNING = 2, + WORKER_DESC_LEN = 24, +}; + +enum lockdep_wait_type { + LD_WAIT_INV = 0, + LD_WAIT_FREE = 1, + LD_WAIT_SPIN = 2, + LD_WAIT_CONFIG = 2, + LD_WAIT_SLEEP = 3, + LD_WAIT_MAX = 4, +}; + +enum lockdep_lock_type { + LD_LOCK_NORMAL = 0, + LD_LOCK_PERCPU = 1, + LD_LOCK_WAIT_OVERRIDE = 2, + LD_LOCK_MAX = 3, +}; + +enum { + _IRQ_DEFAULT_INIT_FLAGS = 0, + _IRQ_PER_CPU = 512, + _IRQ_LEVEL = 256, + _IRQ_NOPROBE = 1024, + _IRQ_NOREQUEST = 2048, + _IRQ_NOTHREAD = 65536, + _IRQ_NOAUTOEN = 4096, + _IRQ_MOVE_PCNTXT = 16384, + _IRQ_NO_BALANCING = 8192, + _IRQ_NESTED_THREAD = 32768, + _IRQ_PER_CPU_DEVID = 131072, + _IRQ_IS_POLLED = 262144, + _IRQ_DISABLE_UNLAZY = 524288, + _IRQ_HIDDEN = 1048576, + _IRQ_NO_DEBUG = 2097152, + _IRQF_MODIFY_MASK = 2096911, +}; + +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_RANDOM_START = 0, + KMALLOC_RANDOM_END = 0, + KMALLOC_RECLAIM = 1, + KMALLOC_DMA = 2, + KMALLOC_CGROUP = 3, + NR_KMALLOC_TYPES = 4, +}; + +enum task_work_notify_mode { + TWA_NONE = 0, + TWA_RESUME = 1, + TWA_SIGNAL = 2, + TWA_SIGNAL_NO_IPI = 3, +}; + +struct trace_eval_map { + const char *system; + const char *eval_string; + unsigned long eval_value; +}; + +struct ldt_struct { + struct desc_struct *entries; + unsigned int nr_entries; + int slot; +}; + +struct wait_queue_entry; + +typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); + +struct wait_queue_entry { + unsigned int flags; + void *private; + wait_queue_func_t func; + struct list_head entry; +}; + +typedef void (*task_work_func_t)(struct callback_head *); + +enum perf_event_state { + PERF_EVENT_STATE_DEAD = -4, + PERF_EVENT_STATE_EXIT = -3, + PERF_EVENT_STATE_ERROR = -2, + PERF_EVENT_STATE_OFF = -1, + PERF_EVENT_STATE_INACTIVE = 0, + PERF_EVENT_STATE_ACTIVE = 1, +}; + +struct perf_event_attr { + __u32 type; + __u32 size; + __u64 config; + union { + __u64 sample_period; + __u64 sample_freq; + }; + __u64 sample_type; + __u64 read_format; + __u64 disabled: 1; + __u64 inherit: 1; + __u64 pinned: 1; + __u64 exclusive: 1; + __u64 exclude_user: 1; + __u64 exclude_kernel: 1; + __u64 exclude_hv: 1; + __u64 exclude_idle: 1; + __u64 mmap: 1; + __u64 comm: 1; + __u64 freq: 1; + __u64 inherit_stat: 1; + __u64 enable_on_exec: 1; + __u64 task: 1; + __u64 watermark: 1; + __u64 precise_ip: 2; + __u64 mmap_data: 1; + __u64 sample_id_all: 1; + __u64 exclude_host: 1; + __u64 exclude_guest: 1; + __u64 exclude_callchain_kernel: 1; + __u64 exclude_callchain_user: 1; + __u64 mmap2: 1; + __u64 comm_exec: 1; + __u64 use_clockid: 1; + __u64 context_switch: 1; + __u64 write_backward: 1; + __u64 namespaces: 1; + __u64 ksymbol: 1; + __u64 bpf_event: 1; + __u64 aux_output: 1; + __u64 cgroup: 1; + __u64 text_poke: 1; + __u64 build_id: 1; + __u64 inherit_thread: 1; + __u64 remove_on_exec: 1; + __u64 sigtrap: 1; + __u64 __reserved_1: 26; + union { + __u32 wakeup_events; + __u32 wakeup_watermark; + }; + __u32 bp_type; + union { + __u64 bp_addr; + __u64 kprobe_func; + __u64 uprobe_path; + __u64 config1; + }; + union { + __u64 bp_len; + __u64 kprobe_addr; + __u64 probe_offset; + __u64 config2; + }; + __u64 branch_sample_type; + __u64 sample_regs_user; + __u32 sample_stack_user; + __s32 clockid; + __u64 sample_regs_intr; + __u32 aux_watermark; + __u16 sample_max_stack; + __u16 __reserved_2; + __u32 aux_sample_size; + __u32 __reserved_3; + __u64 sig_data; + __u64 config3; +}; + +struct hw_perf_event_extra { + u64 config; + unsigned int reg; + int alloc; + int idx; +}; + +struct arch_hw_breakpoint { + unsigned long address; + unsigned long mask; + u8 len; + u8 type; +}; + +struct rhlist_head { + struct rhash_head rhead; + struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; +}; + +struct hw_perf_event { + union { + struct { + u64 config; + u64 last_tag; + unsigned long config_base; + unsigned long event_base; + int event_base_rdpmc; + int idx; + int last_cpu; + int flags; + struct hw_perf_event_extra extra_reg; + struct hw_perf_event_extra branch_reg; + }; + struct { + struct hrtimer hrtimer; + }; + struct { + struct list_head tp_list; + }; + struct { + u64 pwr_acc; + u64 ptsc; + }; + struct { + struct arch_hw_breakpoint info; + struct rhlist_head bp_list; + }; + struct { + u8 iommu_bank; + u8 iommu_cntr; + u16 padding; + u64 conf; + u64 conf1; + }; + }; + struct task_struct *target; + void *addr_filters; + unsigned long addr_filters_gen; + int state; + local64_t prev_count; + u64 sample_period; + union { + struct { + u64 last_period; + local64_t period_left; + }; + struct { + u64 saved_metric; + u64 saved_slots; + }; + }; + u64 interrupts_seq; + u64 interrupts; + u64 freq_time_stamp; + u64 freq_count_stamp; +}; + +struct irq_work { + struct __call_single_node node; + void (*func)(struct irq_work *); + struct rcuwait irqwait; +}; + +struct perf_addr_filters_head { + struct list_head list; + raw_spinlock_t lock; + unsigned int nr_file_filters; +}; + +struct perf_sample_data; + +typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); + +struct ftrace_regs; + +typedef void (*ftrace_func_t)(unsigned long, unsigned long, struct ftrace_ops *, struct ftrace_regs *); + +struct ftrace_hash; + +struct ftrace_ops_hash { + struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *notrace_hash; + struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *filter_hash; + struct mutex regex_lock; +}; + +enum ftrace_ops_cmd { + FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF = 0, + FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER = 1, + FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2, +}; + +typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); + +struct ftrace_ops { + ftrace_func_t func; + struct ftrace_ops __attribute__((btf_type_tag("rcu"))) *next; + unsigned long flags; + void *private; + ftrace_func_t saved_func; + struct ftrace_ops_hash local_hash; + struct ftrace_ops_hash *func_hash; + struct ftrace_ops_hash old_hash; + unsigned long trampoline; + unsigned long trampoline_size; + struct list_head list; + ftrace_ops_func_t ops_func; + unsigned long direct_call; +}; + +struct pmu; + +struct perf_event_pmu_context; + +struct perf_buffer; + +struct fasync_struct; + +struct perf_addr_filter_range; + +struct event_filter; + +struct perf_cgroup; + +struct perf_event { + struct list_head event_entry; + struct list_head sibling_list; + struct list_head active_list; + struct rb_node group_node; + u64 group_index; + struct list_head migrate_entry; + struct hlist_node hlist_entry; + struct list_head active_entry; + int nr_siblings; + int event_caps; + int group_caps; + unsigned int group_generation; + struct perf_event *group_leader; + struct pmu *pmu; + void *pmu_private; + enum perf_event_state state; + unsigned int attach_state; + local64_t count; + atomic64_t child_count; + u64 total_time_enabled; + u64 total_time_running; + u64 tstamp; + struct perf_event_attr attr; + u16 header_size; + u16 id_header_size; + u16 read_size; + struct hw_perf_event hw; + struct perf_event_context *ctx; + struct perf_event_pmu_context *pmu_ctx; + atomic_long_t refcount; + atomic64_t child_total_time_enabled; + atomic64_t child_total_time_running; + struct mutex child_mutex; + struct list_head child_list; + struct perf_event *parent; + int oncpu; + int cpu; + struct list_head owner_entry; + struct task_struct *owner; + struct mutex mmap_mutex; + atomic_t mmap_count; + struct perf_buffer *rb; + struct list_head rb_entry; + unsigned long rcu_batches; + int rcu_pending; + wait_queue_head_t waitq; + struct fasync_struct *fasync; + unsigned int pending_wakeup; + unsigned int pending_kill; + unsigned int pending_disable; + unsigned int pending_sigtrap; + unsigned long pending_addr; + struct irq_work pending_irq; + struct callback_head pending_task; + unsigned int pending_work; + atomic_t event_limit; + struct perf_addr_filters_head addr_filters; + struct perf_addr_filter_range *addr_filter_ranges; + unsigned long addr_filters_gen; + struct perf_event *aux_event; + void (*destroy)(struct perf_event *); + struct callback_head callback_head; + struct pid_namespace *ns; + u64 id; + atomic64_t lost_samples; + u64 (*clock)(); + perf_overflow_handler_t overflow_handler; + void *overflow_handler_context; + perf_overflow_handler_t orig_overflow_handler; + struct bpf_prog *prog; + u64 bpf_cookie; + struct trace_event_call *tp_event; + struct event_filter *filter; + struct ftrace_ops ftrace_ops; + struct perf_cgroup *cgrp; + struct list_head sb_list; + __u32 orig_type; +}; + +struct perf_cpu_pmu_context; + +struct perf_output_handle; + +struct pmu { + struct list_head entry; + struct module *module; + struct device *dev; + struct device *parent; + const struct attribute_group **attr_groups; + const struct attribute_group **attr_update; + const char *name; + int type; + int capabilities; + int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; + struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; + atomic_t exclusive_cnt; + int task_ctx_nr; + int hrtimer_interval_ms; + unsigned int nr_addr_filters; + void (*pmu_enable)(struct pmu *); + void (*pmu_disable)(struct pmu *); + int (*event_init)(struct perf_event *); + void (*event_mapped)(struct perf_event *, struct mm_struct *); + void (*event_unmapped)(struct perf_event *, struct mm_struct *); + int (*add)(struct perf_event *, int); + void (*del)(struct perf_event *, int); + void (*start)(struct perf_event *, int); + void (*stop)(struct perf_event *, int); + void (*read)(struct perf_event *); + void (*start_txn)(struct pmu *, unsigned int); + int (*commit_txn)(struct pmu *); + void (*cancel_txn)(struct pmu *); + int (*event_idx)(struct perf_event *); + void (*sched_task)(struct perf_event_pmu_context *, bool); + struct kmem_cache *task_ctx_cache; + void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); + void * (*setup_aux)(struct perf_event *, void **, int, bool); + void (*free_aux)(void *); + long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); + int (*addr_filters_validate)(struct list_head *); + void (*addr_filters_sync)(struct perf_event *); + int (*aux_output_match)(struct perf_event *); + bool (*filter)(struct pmu *, int); + int (*check_period)(struct perf_event *, u64); +}; + +struct fs_pin; + +struct pid_namespace { + struct idr idr; + struct callback_head rcu; + unsigned int pid_allocated; + struct task_struct *child_reaper; + struct kmem_cache *pid_cachep; + unsigned int level; + struct pid_namespace *parent; + struct fs_pin *bacct; + struct user_namespace *user_ns; + struct ucounts *ucounts; + int reboot; + struct ns_common ns; + int memfd_noexec_scope; +}; + +struct ftrace_regs { + struct pt_regs regs; +}; + +struct ftrace_hash { + unsigned long size_bits; + struct hlist_head *buckets; + unsigned long count; + unsigned long flags; + struct callback_head rcu; +}; + +struct perf_event_groups { + struct rb_root tree; + u64 index; +}; + +struct perf_event_context { + raw_spinlock_t lock; + struct mutex mutex; + struct list_head pmu_ctx_list; + struct perf_event_groups pinned_groups; + struct perf_event_groups flexible_groups; + struct list_head event_list; + int nr_events; + int nr_user; + int is_active; + int nr_task_data; + int nr_stat; + int nr_freq; + int rotate_disable; + refcount_t refcount; + struct task_struct *task; + u64 time; + u64 timestamp; + u64 timeoffset; + struct perf_event_context *parent_ctx; + u64 parent_gen; + u64 generation; + int pin_count; + int nr_cgroups; + struct callback_head callback_head; + local_t nr_pending; +}; + +struct ftrace_ret_stack { + unsigned long ret; + unsigned long func; + unsigned long long calltime; + unsigned long *retp; +}; + +struct perf_event_pmu_context { + struct pmu *pmu; + struct perf_event_context *ctx; + struct list_head pmu_ctx_entry; + struct list_head pinned_active; + struct list_head flexible_active; + unsigned int embedded: 1; + unsigned int nr_events; + unsigned int nr_cgroups; + atomic_t refcount; + struct callback_head callback_head; + void *task_ctx_data; + int rotate_necessary; +}; + +struct perf_cpu_pmu_context { + struct perf_event_pmu_context epc; + struct perf_event_pmu_context *task_epc; + struct list_head sched_cb_entry; + int sched_cb_usage; + int active_oncpu; + int exclusive; + raw_spinlock_t hrtimer_lock; + struct hrtimer hrtimer; + ktime_t hrtimer_interval; + unsigned int hrtimer_active; +}; + +struct perf_output_handle { + struct perf_event *event; + struct perf_buffer *rb; + unsigned long wakeup; + unsigned long size; + u64 aux_flags; + union { + void *addr; + unsigned long head; + }; + int page; +}; + +struct fasync_struct { + rwlock_t fa_lock; + int magic; + int fa_fd; + struct fasync_struct *fa_next; + struct file *fa_file; + struct callback_head fa_rcu; +}; + +struct perf_addr_filter_range { + unsigned long start; + unsigned long size; +}; + +union perf_sample_weight { + __u64 full; + struct { + __u32 var1_dw; + __u16 var2_w; + __u16 var3_w; + }; +}; + +union perf_mem_data_src { + __u64 val; + struct { + __u64 mem_op: 5; + __u64 mem_lvl: 14; + __u64 mem_snoop: 5; + __u64 mem_lock: 2; + __u64 mem_dtlb: 7; + __u64 mem_lvl_num: 4; + __u64 mem_remote: 1; + __u64 mem_snoopx: 2; + __u64 mem_blk: 3; + __u64 mem_hops: 3; + __u64 mem_rsvd: 18; + }; +}; + +struct perf_regs { + __u64 abi; + struct pt_regs *regs; +}; + +struct perf_callchain_entry; + +struct perf_raw_record; + +struct perf_branch_stack; + +struct perf_sample_data { + u64 sample_flags; + u64 period; + u64 dyn_size; + u64 type; + struct { + u32 pid; + u32 tid; + } tid_entry; + u64 time; + u64 id; + struct { + u32 cpu; + u32 reserved; + } cpu_entry; + u64 ip; + struct perf_callchain_entry *callchain; + struct perf_raw_record *raw; + struct perf_branch_stack *br_stack; + u64 *br_stack_cntr; + union perf_sample_weight weight; + union perf_mem_data_src data_src; + u64 txn; + struct perf_regs regs_user; + struct perf_regs regs_intr; + u64 stack_user_size; + u64 stream_id; + u64 cgroup; + u64 addr; + u64 phys_addr; + u64 data_page_size; + u64 code_page_size; + u64 aux_size; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct perf_callchain_entry { + __u64 nr; + __u64 ip[0]; +}; + +typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long); + +struct perf_raw_frag { + union { + struct perf_raw_frag *next; + unsigned long pad; + }; + perf_copy_f copy; + void *data; + u32 size; +} __attribute__((packed)); + +struct perf_raw_record { + struct perf_raw_frag frag; + u32 size; +}; + +struct perf_branch_entry { + __u64 from; + __u64 to; + __u64 mispred: 1; + __u64 predicted: 1; + __u64 in_tx: 1; + __u64 abort: 1; + __u64 cycles: 16; + __u64 type: 4; + __u64 spec: 2; + __u64 new_type: 4; + __u64 priv: 3; + __u64 reserved: 31; +}; + +struct perf_branch_stack { + __u64 nr; + __u64 hw_idx; + struct perf_branch_entry entries[0]; +}; + +struct perf_cgroup_info; + +struct perf_cgroup { + struct cgroup_subsys_state css; + struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; +}; + +struct perf_cgroup_info { + u64 time; + u64 timestamp; + u64 timeoffset; + int active; +}; + +typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); + +struct btf_kfunc_hook_filter { + btf_kfunc_filter_t filters[16]; + u32 nr_filters; +}; + +struct btf_id_set8; + +struct btf_kfunc_set_tab { + struct btf_id_set8 *sets[13]; + struct btf_kfunc_hook_filter hook_filters[13]; +}; + +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[0]; +}; + +struct btf_id_dtor_kfunc { + u32 btf_id; + u32 kfunc_btf_id; +}; + +struct btf_id_dtor_kfunc_tab { + u32 cnt; + struct btf_id_dtor_kfunc dtors[0]; +}; + +struct btf_struct_meta { + u32 btf_id; + struct btf_record *record; +}; + +struct btf_struct_metas { + u32 cnt; + struct btf_struct_meta types[0]; +}; + +struct bpf_struct_ops; + +struct bpf_struct_ops_arg_info; + +struct bpf_struct_ops_desc { + struct bpf_struct_ops *st_ops; + const struct btf_type *type; + const struct btf_type *value_type; + u32 type_id; + u32 value_id; + struct bpf_struct_ops_arg_info *arg_info; +}; + +struct btf_struct_ops_tab { + u32 cnt; + u32 capacity; + struct bpf_struct_ops_desc ops[0]; +}; + +struct bpf_verifier_ops; + +struct btf_member; + +struct bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *); + void (*unreg)(void *); + int (*update)(void *, void *); + int (*validate)(void *); + void *cfi_stubs; + struct module *owner; + const char *name; + struct btf_func_model func_models[64]; +}; + +enum bpf_func_id { + BPF_FUNC_unspec = 0, + BPF_FUNC_map_lookup_elem = 1, + BPF_FUNC_map_update_elem = 2, + BPF_FUNC_map_delete_elem = 3, + BPF_FUNC_probe_read = 4, + BPF_FUNC_ktime_get_ns = 5, + BPF_FUNC_trace_printk = 6, + BPF_FUNC_get_prandom_u32 = 7, + BPF_FUNC_get_smp_processor_id = 8, + BPF_FUNC_skb_store_bytes = 9, + BPF_FUNC_l3_csum_replace = 10, + BPF_FUNC_l4_csum_replace = 11, + BPF_FUNC_tail_call = 12, + BPF_FUNC_clone_redirect = 13, + BPF_FUNC_get_current_pid_tgid = 14, + BPF_FUNC_get_current_uid_gid = 15, + BPF_FUNC_get_current_comm = 16, + BPF_FUNC_get_cgroup_classid = 17, + BPF_FUNC_skb_vlan_push = 18, + BPF_FUNC_skb_vlan_pop = 19, + BPF_FUNC_skb_get_tunnel_key = 20, + BPF_FUNC_skb_set_tunnel_key = 21, + BPF_FUNC_perf_event_read = 22, + BPF_FUNC_redirect = 23, + BPF_FUNC_get_route_realm = 24, + BPF_FUNC_perf_event_output = 25, + BPF_FUNC_skb_load_bytes = 26, + BPF_FUNC_get_stackid = 27, + BPF_FUNC_csum_diff = 28, + BPF_FUNC_skb_get_tunnel_opt = 29, + BPF_FUNC_skb_set_tunnel_opt = 30, + BPF_FUNC_skb_change_proto = 31, + BPF_FUNC_skb_change_type = 32, + BPF_FUNC_skb_under_cgroup = 33, + BPF_FUNC_get_hash_recalc = 34, + BPF_FUNC_get_current_task = 35, + BPF_FUNC_probe_write_user = 36, + BPF_FUNC_current_task_under_cgroup = 37, + BPF_FUNC_skb_change_tail = 38, + BPF_FUNC_skb_pull_data = 39, + BPF_FUNC_csum_update = 40, + BPF_FUNC_set_hash_invalid = 41, + BPF_FUNC_get_numa_node_id = 42, + BPF_FUNC_skb_change_head = 43, + BPF_FUNC_xdp_adjust_head = 44, + BPF_FUNC_probe_read_str = 45, + BPF_FUNC_get_socket_cookie = 46, + BPF_FUNC_get_socket_uid = 47, + BPF_FUNC_set_hash = 48, + BPF_FUNC_setsockopt = 49, + BPF_FUNC_skb_adjust_room = 50, + BPF_FUNC_redirect_map = 51, + BPF_FUNC_sk_redirect_map = 52, + BPF_FUNC_sock_map_update = 53, + BPF_FUNC_xdp_adjust_meta = 54, + BPF_FUNC_perf_event_read_value = 55, + BPF_FUNC_perf_prog_read_value = 56, + BPF_FUNC_getsockopt = 57, + BPF_FUNC_override_return = 58, + BPF_FUNC_sock_ops_cb_flags_set = 59, + BPF_FUNC_msg_redirect_map = 60, + BPF_FUNC_msg_apply_bytes = 61, + BPF_FUNC_msg_cork_bytes = 62, + BPF_FUNC_msg_pull_data = 63, + BPF_FUNC_bind = 64, + BPF_FUNC_xdp_adjust_tail = 65, + BPF_FUNC_skb_get_xfrm_state = 66, + BPF_FUNC_get_stack = 67, + BPF_FUNC_skb_load_bytes_relative = 68, + BPF_FUNC_fib_lookup = 69, + BPF_FUNC_sock_hash_update = 70, + BPF_FUNC_msg_redirect_hash = 71, + BPF_FUNC_sk_redirect_hash = 72, + BPF_FUNC_lwt_push_encap = 73, + BPF_FUNC_lwt_seg6_store_bytes = 74, + BPF_FUNC_lwt_seg6_adjust_srh = 75, + BPF_FUNC_lwt_seg6_action = 76, + BPF_FUNC_rc_repeat = 77, + BPF_FUNC_rc_keydown = 78, + BPF_FUNC_skb_cgroup_id = 79, + BPF_FUNC_get_current_cgroup_id = 80, + BPF_FUNC_get_local_storage = 81, + BPF_FUNC_sk_select_reuseport = 82, + BPF_FUNC_skb_ancestor_cgroup_id = 83, + BPF_FUNC_sk_lookup_tcp = 84, + BPF_FUNC_sk_lookup_udp = 85, + BPF_FUNC_sk_release = 86, + BPF_FUNC_map_push_elem = 87, + BPF_FUNC_map_pop_elem = 88, + BPF_FUNC_map_peek_elem = 89, + BPF_FUNC_msg_push_data = 90, + BPF_FUNC_msg_pop_data = 91, + BPF_FUNC_rc_pointer_rel = 92, + BPF_FUNC_spin_lock = 93, + BPF_FUNC_spin_unlock = 94, + BPF_FUNC_sk_fullsock = 95, + BPF_FUNC_tcp_sock = 96, + BPF_FUNC_skb_ecn_set_ce = 97, + BPF_FUNC_get_listener_sock = 98, + BPF_FUNC_skc_lookup_tcp = 99, + BPF_FUNC_tcp_check_syncookie = 100, + BPF_FUNC_sysctl_get_name = 101, + BPF_FUNC_sysctl_get_current_value = 102, + BPF_FUNC_sysctl_get_new_value = 103, + BPF_FUNC_sysctl_set_new_value = 104, + BPF_FUNC_strtol = 105, + BPF_FUNC_strtoul = 106, + BPF_FUNC_sk_storage_get = 107, + BPF_FUNC_sk_storage_delete = 108, + BPF_FUNC_send_signal = 109, + BPF_FUNC_tcp_gen_syncookie = 110, + BPF_FUNC_skb_output = 111, + BPF_FUNC_probe_read_user = 112, + BPF_FUNC_probe_read_kernel = 113, + BPF_FUNC_probe_read_user_str = 114, + BPF_FUNC_probe_read_kernel_str = 115, + BPF_FUNC_tcp_send_ack = 116, + BPF_FUNC_send_signal_thread = 117, + BPF_FUNC_jiffies64 = 118, + BPF_FUNC_read_branch_records = 119, + BPF_FUNC_get_ns_current_pid_tgid = 120, + BPF_FUNC_xdp_output = 121, + BPF_FUNC_get_netns_cookie = 122, + BPF_FUNC_get_current_ancestor_cgroup_id = 123, + BPF_FUNC_sk_assign = 124, + BPF_FUNC_ktime_get_boot_ns = 125, + BPF_FUNC_seq_printf = 126, + BPF_FUNC_seq_write = 127, + BPF_FUNC_sk_cgroup_id = 128, + BPF_FUNC_sk_ancestor_cgroup_id = 129, + BPF_FUNC_ringbuf_output = 130, + BPF_FUNC_ringbuf_reserve = 131, + BPF_FUNC_ringbuf_submit = 132, + BPF_FUNC_ringbuf_discard = 133, + BPF_FUNC_ringbuf_query = 134, + BPF_FUNC_csum_level = 135, + BPF_FUNC_skc_to_tcp6_sock = 136, + BPF_FUNC_skc_to_tcp_sock = 137, + BPF_FUNC_skc_to_tcp_timewait_sock = 138, + BPF_FUNC_skc_to_tcp_request_sock = 139, + BPF_FUNC_skc_to_udp6_sock = 140, + BPF_FUNC_get_task_stack = 141, + BPF_FUNC_load_hdr_opt = 142, + BPF_FUNC_store_hdr_opt = 143, + BPF_FUNC_reserve_hdr_opt = 144, + BPF_FUNC_inode_storage_get = 145, + BPF_FUNC_inode_storage_delete = 146, + BPF_FUNC_d_path = 147, + BPF_FUNC_copy_from_user = 148, + BPF_FUNC_snprintf_btf = 149, + BPF_FUNC_seq_printf_btf = 150, + BPF_FUNC_skb_cgroup_classid = 151, + BPF_FUNC_redirect_neigh = 152, + BPF_FUNC_per_cpu_ptr = 153, + BPF_FUNC_this_cpu_ptr = 154, + BPF_FUNC_redirect_peer = 155, + BPF_FUNC_task_storage_get = 156, + BPF_FUNC_task_storage_delete = 157, + BPF_FUNC_get_current_task_btf = 158, + BPF_FUNC_bprm_opts_set = 159, + BPF_FUNC_ktime_get_coarse_ns = 160, + BPF_FUNC_ima_inode_hash = 161, + BPF_FUNC_sock_from_file = 162, + BPF_FUNC_check_mtu = 163, + BPF_FUNC_for_each_map_elem = 164, + BPF_FUNC_snprintf = 165, + BPF_FUNC_sys_bpf = 166, + BPF_FUNC_btf_find_by_name_kind = 167, + BPF_FUNC_sys_close = 168, + BPF_FUNC_timer_init = 169, + BPF_FUNC_timer_set_callback = 170, + BPF_FUNC_timer_start = 171, + BPF_FUNC_timer_cancel = 172, + BPF_FUNC_get_func_ip = 173, + BPF_FUNC_get_attach_cookie = 174, + BPF_FUNC_task_pt_regs = 175, + BPF_FUNC_get_branch_snapshot = 176, + BPF_FUNC_trace_vprintk = 177, + BPF_FUNC_skc_to_unix_sock = 178, + BPF_FUNC_kallsyms_lookup_name = 179, + BPF_FUNC_find_vma = 180, + BPF_FUNC_loop = 181, + BPF_FUNC_strncmp = 182, + BPF_FUNC_get_func_arg = 183, + BPF_FUNC_get_func_ret = 184, + BPF_FUNC_get_func_arg_cnt = 185, + BPF_FUNC_get_retval = 186, + BPF_FUNC_set_retval = 187, + BPF_FUNC_xdp_get_buff_len = 188, + BPF_FUNC_xdp_load_bytes = 189, + BPF_FUNC_xdp_store_bytes = 190, + BPF_FUNC_copy_from_user_task = 191, + BPF_FUNC_skb_set_tstamp = 192, + BPF_FUNC_ima_file_hash = 193, + BPF_FUNC_kptr_xchg = 194, + BPF_FUNC_map_lookup_percpu_elem = 195, + BPF_FUNC_skc_to_mptcp_sock = 196, + BPF_FUNC_dynptr_from_mem = 197, + BPF_FUNC_ringbuf_reserve_dynptr = 198, + BPF_FUNC_ringbuf_submit_dynptr = 199, + BPF_FUNC_ringbuf_discard_dynptr = 200, + BPF_FUNC_dynptr_read = 201, + BPF_FUNC_dynptr_write = 202, + BPF_FUNC_dynptr_data = 203, + BPF_FUNC_tcp_raw_gen_syncookie_ipv4 = 204, + BPF_FUNC_tcp_raw_gen_syncookie_ipv6 = 205, + BPF_FUNC_tcp_raw_check_syncookie_ipv4 = 206, + BPF_FUNC_tcp_raw_check_syncookie_ipv6 = 207, + BPF_FUNC_ktime_get_tai_ns = 208, + BPF_FUNC_user_ringbuf_drain = 209, + BPF_FUNC_cgrp_storage_get = 210, + BPF_FUNC_cgrp_storage_delete = 211, + __BPF_FUNC_MAX_ID = 212, +}; + +enum bpf_access_type { + BPF_READ = 1, + BPF_WRITE = 2, +}; + +struct bpf_func_proto; + +struct bpf_insn_access_aux; + +struct bpf_verifier_log; + +struct bpf_reg_state; + +struct bpf_verifier_ops { + const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); + bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); + int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); + int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); + u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); +}; + +enum bpf_return_type { + RET_INTEGER = 0, + RET_VOID = 1, + RET_PTR_TO_MAP_VALUE = 2, + RET_PTR_TO_SOCKET = 3, + RET_PTR_TO_TCP_SOCK = 4, + RET_PTR_TO_SOCK_COMMON = 5, + RET_PTR_TO_MEM = 6, + RET_PTR_TO_MEM_OR_BTF_ID = 7, + RET_PTR_TO_BTF_ID = 8, + __BPF_RET_TYPE_MAX = 9, + RET_PTR_TO_MAP_VALUE_OR_NULL = 258, + RET_PTR_TO_SOCKET_OR_NULL = 259, + RET_PTR_TO_TCP_SOCK_OR_NULL = 260, + RET_PTR_TO_SOCK_COMMON_OR_NULL = 261, + RET_PTR_TO_RINGBUF_MEM_OR_NULL = 1286, + RET_PTR_TO_DYNPTR_MEM_OR_NULL = 262, + RET_PTR_TO_BTF_ID_OR_NULL = 264, + RET_PTR_TO_BTF_ID_TRUSTED = 1048584, + __BPF_RET_TYPE_LIMIT = 33554431, +}; + +enum bpf_arg_type { + ARG_DONTCARE = 0, + ARG_CONST_MAP_PTR = 1, + ARG_PTR_TO_MAP_KEY = 2, + ARG_PTR_TO_MAP_VALUE = 3, + ARG_PTR_TO_MEM = 4, + ARG_PTR_TO_ARENA = 5, + ARG_CONST_SIZE = 6, + ARG_CONST_SIZE_OR_ZERO = 7, + ARG_PTR_TO_CTX = 8, + ARG_ANYTHING = 9, + ARG_PTR_TO_SPIN_LOCK = 10, + ARG_PTR_TO_SOCK_COMMON = 11, + ARG_PTR_TO_INT = 12, + ARG_PTR_TO_LONG = 13, + ARG_PTR_TO_SOCKET = 14, + ARG_PTR_TO_BTF_ID = 15, + ARG_PTR_TO_RINGBUF_MEM = 16, + ARG_CONST_ALLOC_SIZE_OR_ZERO = 17, + ARG_PTR_TO_BTF_ID_SOCK_COMMON = 18, + ARG_PTR_TO_PERCPU_BTF_ID = 19, + ARG_PTR_TO_FUNC = 20, + ARG_PTR_TO_STACK = 21, + ARG_PTR_TO_CONST_STR = 22, + ARG_PTR_TO_TIMER = 23, + ARG_PTR_TO_KPTR = 24, + ARG_PTR_TO_DYNPTR = 25, + __BPF_ARG_TYPE_MAX = 26, + ARG_PTR_TO_MAP_VALUE_OR_NULL = 259, + ARG_PTR_TO_MEM_OR_NULL = 260, + ARG_PTR_TO_CTX_OR_NULL = 264, + ARG_PTR_TO_SOCKET_OR_NULL = 270, + ARG_PTR_TO_STACK_OR_NULL = 277, + ARG_PTR_TO_BTF_ID_OR_NULL = 271, + ARG_PTR_TO_UNINIT_MEM = 32772, + ARG_PTR_TO_FIXED_SIZE_MEM = 262148, + __BPF_ARG_TYPE_LIMIT = 33554431, +}; + +struct bpf_func_proto { + u64 (*func)(u64, u64, u64, u64, u64); + bool gpl_only; + bool pkt_access; + bool might_sleep; + enum bpf_return_type ret_type; + union { + struct { + enum bpf_arg_type arg1_type; + enum bpf_arg_type arg2_type; + enum bpf_arg_type arg3_type; + enum bpf_arg_type arg4_type; + enum bpf_arg_type arg5_type; + }; + enum bpf_arg_type arg_type[5]; + }; + union { + struct { + u32 *arg1_btf_id; + u32 *arg2_btf_id; + u32 *arg3_btf_id; + u32 *arg4_btf_id; + u32 *arg5_btf_id; + }; + u32 *arg_btf_id[5]; + struct { + size_t arg1_size; + size_t arg2_size; + size_t arg3_size; + size_t arg4_size; + size_t arg5_size; + }; + size_t arg_size[5]; + }; + int *ret_btf_id; + bool (*allowed)(const struct bpf_prog *); +}; + +struct bpf_insn_access_aux { + enum bpf_reg_type reg_type; + union { + int ctx_field_size; + struct { + struct btf *btf; + u32 btf_id; + }; + }; + struct bpf_verifier_log *log; +}; + +struct bpf_verifier_log { + u64 start_pos; + u64 end_pos; + char __attribute__((btf_type_tag("user"))) *ubuf; + u32 level; + u32 len_total; + u32 len_max; + char kbuf[1024]; +}; + +enum bpf_dynptr_type { + BPF_DYNPTR_TYPE_INVALID = 0, + BPF_DYNPTR_TYPE_LOCAL = 1, + BPF_DYNPTR_TYPE_RINGBUF = 2, + BPF_DYNPTR_TYPE_SKB = 3, + BPF_DYNPTR_TYPE_XDP = 4, +}; + +enum bpf_iter_state { + BPF_ITER_STATE_INVALID = 0, + BPF_ITER_STATE_ACTIVE = 1, + BPF_ITER_STATE_DRAINED = 2, +}; + +struct tnum { + u64 value; + u64 mask; +}; + +enum bpf_reg_liveness { + REG_LIVE_NONE = 0, + REG_LIVE_READ32 = 1, + REG_LIVE_READ64 = 2, + REG_LIVE_READ = 3, + REG_LIVE_WRITTEN = 4, + REG_LIVE_DONE = 8, +}; + +struct bpf_reg_state { + enum bpf_reg_type type; + s32 off; + union { + int range; + struct { + struct bpf_map *map_ptr; + u32 map_uid; + }; + struct { + struct btf *btf; + u32 btf_id; + }; + struct { + u32 mem_size; + u32 dynptr_id; + }; + struct { + enum bpf_dynptr_type type; + bool first_slot; + } dynptr; + struct { + struct btf *btf; + u32 btf_id; + enum bpf_iter_state state: 2; + int depth: 30; + } iter; + struct { + unsigned long raw1; + unsigned long raw2; + } raw; + u32 subprogno; + }; + struct tnum var_off; + s64 smin_value; + s64 smax_value; + u64 umin_value; + u64 umax_value; + s32 s32_min_value; + s32 s32_max_value; + u32 u32_min_value; + u32 u32_max_value; + u32 id; + u32 ref_obj_id; + struct bpf_reg_state *parent; + u32 frameno; + s32 subreg_def; + enum bpf_reg_liveness live; + bool precise; +}; + +struct bpf_id_pair { + u32 old; + u32 cur; +}; + +struct bpf_idmap { + u32 tmp_id_gen; + struct bpf_id_pair map[600]; +}; + +struct bpf_idset { + u32 count; + u32 ids[600]; +}; + +struct bpf_subprog_arg_info { + enum bpf_arg_type arg_type; + union { + u32 mem_size; + u32 btf_id; + }; +}; + +struct bpf_subprog_info { + u32 start; + u32 linfo_idx; + u16 stack_depth; + u16 stack_extra; + bool has_tail_call: 1; + bool tail_call_reachable: 1; + bool has_ld_abs: 1; + bool is_cb: 1; + bool is_async_cb: 1; + bool is_exception_cb: 1; + bool args_cached: 1; + u8 arg_cnt; + struct bpf_subprog_arg_info args[5]; +}; + +struct backtrack_state { + struct bpf_verifier_env *env; + u32 frame; + u32 reg_masks[8]; + u64 stack_masks[8]; +}; + +typedef struct { + union { + void *kernel; + void __attribute__((btf_type_tag("user"))) *user; + }; + bool is_kernel: 1; +} sockptr_t; + +typedef sockptr_t bpfptr_t; + +struct bpf_verifier_stack_elem; + +struct bpf_verifier_state; + +struct bpf_verifier_state_list; + +struct bpf_insn_aux_data; + +struct bpf_jmp_history_entry; + +struct bpf_verifier_env { + u32 insn_idx; + u32 prev_insn_idx; + struct bpf_prog *prog; + const struct bpf_verifier_ops *ops; + struct module *attach_btf_mod; + struct bpf_verifier_stack_elem *head; + int stack_size; + bool strict_alignment; + bool test_state_freq; + bool test_reg_invariants; + struct bpf_verifier_state *cur_state; + struct bpf_verifier_state_list **explored_states; + struct bpf_verifier_state_list *free_list; + struct bpf_map *used_maps[64]; + struct btf_mod_pair used_btfs[64]; + u32 used_map_cnt; + u32 used_btf_cnt; + u32 id_gen; + u32 hidden_subprog_cnt; + int exception_callback_subprog; + bool explore_alu_limits; + bool allow_ptr_leaks; + bool allow_uninit_stack; + bool bpf_capable; + bool bypass_spec_v1; + bool bypass_spec_v4; + bool seen_direct_write; + bool seen_exception; + struct bpf_insn_aux_data *insn_aux_data; + const struct bpf_line_info *prev_linfo; + struct bpf_verifier_log log; + struct bpf_subprog_info subprog_info[258]; + union { + struct bpf_idmap idmap_scratch; + struct bpf_idset idset_scratch; + }; + struct { + int *insn_state; + int *insn_stack; + int cur_stack; + } cfg; + struct backtrack_state bt; + struct bpf_jmp_history_entry *cur_hist_ent; + u32 pass_cnt; + u32 subprog_cnt; + u32 prev_insn_processed; + u32 insn_processed; + u32 prev_jmps_processed; + u32 jmps_processed; + u64 verification_time; + u32 max_states_per_insn; + u32 total_states; + u32 peak_states; + u32 longest_mark_read_walk; + bpfptr_t fd_array; + u32 scratched_regs; + u64 scratched_stack_slots; + u64 prev_log_pos; + u64 prev_insn_print_pos; + char tmp_str_buf[320]; +}; + +struct bpf_active_lock { + void *ptr; + u32 id; +}; + +struct bpf_verifier_state { + struct bpf_func_state *frame[8]; + struct bpf_verifier_state *parent; + u32 branches; + u32 insn_idx; + u32 curframe; + struct bpf_active_lock active_lock; + bool speculative; + bool active_rcu_lock; + u32 active_preempt_lock; + bool used_as_loop_entry; + bool in_sleepable; + u32 first_insn_idx; + u32 last_insn_idx; + struct bpf_verifier_state *loop_entry; + struct bpf_jmp_history_entry *jmp_history; + u32 jmp_history_cnt; + u32 dfs_depth; + u32 callback_unroll_depth; + u32 may_goto_depth; +}; + +struct bpf_retval_range { + s32 minval; + s32 maxval; +}; + +struct bpf_reference_state; + +struct bpf_stack_state; + +struct bpf_func_state { + struct bpf_reg_state regs[11]; + int callsite; + u32 frameno; + u32 subprogno; + u32 async_entry_cnt; + struct bpf_retval_range callback_ret_range; + bool in_callback_fn; + bool in_async_callback_fn; + bool in_exception_callback_fn; + u32 callback_depth; + int acquired_refs; + struct bpf_reference_state *refs; + struct bpf_stack_state *stack; + int allocated_stack; +}; + +struct bpf_reference_state { + int id; + int insn_idx; + int callback_ref; +}; + +struct bpf_stack_state { + struct bpf_reg_state spilled_ptr; + u8 slot_type[8]; +}; + +struct bpf_jmp_history_entry { + u32 idx; + u32 prev_idx: 22; + u32 flags: 10; +}; + +struct bpf_verifier_state_list { + struct bpf_verifier_state state; + struct bpf_verifier_state_list *next; + int miss_cnt; + int hit_cnt; +}; + +struct bpf_map_ptr_state { + struct bpf_map *map_ptr; + bool poison; + bool unpriv; +}; + +struct bpf_loop_inline_state { + unsigned int initialized: 1; + unsigned int fit_for_inline: 1; + u32 callback_subprogno; +}; + +struct bpf_insn_aux_data { + union { + enum bpf_reg_type ptr_type; + struct bpf_map_ptr_state map_ptr_state; + s32 call_imm; + u32 alu_limit; + struct { + u32 map_index; + u32 map_off; + }; + struct { + enum bpf_reg_type reg_type; + union { + struct { + struct btf *btf; + u32 btf_id; + }; + u32 mem_size; + }; + } btf_var; + struct bpf_loop_inline_state loop_inline_state; + }; + union { + u64 obj_new_size; + u64 insert_off; + }; + struct btf_struct_meta *kptr_struct_meta; + u64 map_key_state; + int ctx_field_size; + u32 seen; + bool sanitize_stack_spill; + bool zext_dst; + bool needs_zext; + bool storage_get_func_atomic; + bool is_iter_next; + bool call_with_percpu_alloc_ptr; + u8 alu_state; + unsigned int orig_idx; + bool jmp_point; + bool prune_point; + bool force_checkpoint; + bool calls_callback; +}; + +struct btf_member { + __u32 name_off; + __u32 type; + __u32 offset; +}; + +struct bpf_struct_ops_arg_info { + struct bpf_ctx_arg_aux *info; + u32 cnt; +}; + +typedef u64 netdev_features_t; + +struct netdev_tc_txq { + u16 count; + u16 offset; +}; + +enum rx_handler_result { + RX_HANDLER_CONSUMED = 0, + RX_HANDLER_ANOTHER = 1, + RX_HANDLER_EXACT = 2, + RX_HANDLER_PASS = 3, +}; + +typedef enum rx_handler_result rx_handler_result_t; + +struct sk_buff; + +typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); + +typedef struct { + struct net __attribute__((btf_type_tag("rcu"))) *net; +} possible_net_t; + +typedef u32 xdp_features_t; + +struct net_device_stats { + union { + unsigned long rx_packets; + atomic_long_t __rx_packets; + }; + union { + unsigned long tx_packets; + atomic_long_t __tx_packets; + }; + union { + unsigned long rx_bytes; + atomic_long_t __rx_bytes; + }; + union { + unsigned long tx_bytes; + atomic_long_t __tx_bytes; + }; + union { + unsigned long rx_errors; + atomic_long_t __rx_errors; + }; + union { + unsigned long tx_errors; + atomic_long_t __tx_errors; + }; + union { + unsigned long rx_dropped; + atomic_long_t __rx_dropped; + }; + union { + unsigned long tx_dropped; + atomic_long_t __tx_dropped; + }; + union { + unsigned long multicast; + atomic_long_t __multicast; + }; + union { + unsigned long collisions; + atomic_long_t __collisions; + }; + union { + unsigned long rx_length_errors; + atomic_long_t __rx_length_errors; + }; + union { + unsigned long rx_over_errors; + atomic_long_t __rx_over_errors; + }; + union { + unsigned long rx_crc_errors; + atomic_long_t __rx_crc_errors; + }; + union { + unsigned long rx_frame_errors; + atomic_long_t __rx_frame_errors; + }; + union { + unsigned long rx_fifo_errors; + atomic_long_t __rx_fifo_errors; + }; + union { + unsigned long rx_missed_errors; + atomic_long_t __rx_missed_errors; + }; + union { + unsigned long tx_aborted_errors; + atomic_long_t __tx_aborted_errors; + }; + union { + unsigned long tx_carrier_errors; + atomic_long_t __tx_carrier_errors; + }; + union { + unsigned long tx_fifo_errors; + atomic_long_t __tx_fifo_errors; + }; + union { + unsigned long tx_heartbeat_errors; + atomic_long_t __tx_heartbeat_errors; + }; + union { + unsigned long tx_window_errors; + atomic_long_t __tx_window_errors; + }; + union { + unsigned long rx_compressed; + atomic_long_t __rx_compressed; + }; + union { + unsigned long tx_compressed; + atomic_long_t __tx_compressed; + }; +}; + +struct netdev_hw_addr_list { + struct list_head list; + int count; + struct rb_root tree; +}; + +struct ref_tracker_dir {}; + +enum netdev_ml_priv_type { + ML_PRIV_NONE = 0, + ML_PRIV_CAN = 1, +}; + +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE = 0, + NETDEV_PCPU_STAT_LSTATS = 1, + NETDEV_PCPU_STAT_TSTATS = 2, + NETDEV_PCPU_STAT_DSTATS = 3, +}; + +struct sfp_bus; + +struct udp_tunnel_nic; + +struct bpf_xdp_link; + +struct bpf_xdp_entity { + struct bpf_prog *prog; + struct bpf_xdp_link *link; +}; + +typedef struct {} netdevice_tracker; + +struct net_device_ops; + +struct header_ops; + +struct netdev_queue; + +struct xps_dev_maps; + +struct nf_hook_entries; + +struct bpf_mprog_entry; + +struct pcpu_lstats; + +struct pcpu_sw_netstats; + +struct pcpu_dstats; + +struct inet6_dev; + +struct netdev_rx_queue; + +struct netdev_name_node; + +struct dev_ifalias; + +struct xdp_metadata_ops; + +struct xsk_tx_metadata_ops; + +struct net_device_core_stats; + +struct ethtool_ops; + +struct ndisc_ops; + +struct in_device; + +struct wireless_dev; + +struct cpu_rmap; + +struct Qdisc; + +struct xdp_dev_bulk_queue; + +struct rtnl_link_ops; + +struct netdev_stat_ops; + +struct phy_device; + +struct udp_tunnel_nic_info; + +struct rtnl_hw_stats64; + +struct devlink_port; + +struct net_device { + __u8 __cacheline_group_begin__net_device_read_tx[0]; + unsigned long long priv_flags; + const struct net_device_ops *netdev_ops; + const struct header_ops *header_ops; + struct netdev_queue *_tx; + netdev_features_t gso_partial_features; + unsigned int real_num_tx_queues; + unsigned int gso_max_size; + unsigned int gso_ipv4_max_size; + u16 gso_max_segs; + s16 num_tc; + unsigned int mtu; + unsigned short needed_headroom; + struct netdev_tc_txq tc_to_txq[16]; + struct xps_dev_maps __attribute__((btf_type_tag("rcu"))) *xps_maps[2]; + struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_egress; + struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_egress; + __u8 __cacheline_group_end__net_device_read_tx[0]; + __u8 __cacheline_group_begin__net_device_read_txrx[0]; + union { + struct pcpu_lstats __attribute__((btf_type_tag("percpu"))) *lstats; + struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *tstats; + struct pcpu_dstats __attribute__((btf_type_tag("percpu"))) *dstats; + }; + unsigned long state; + unsigned int flags; + unsigned short hard_header_len; + netdev_features_t features; + struct inet6_dev __attribute__((btf_type_tag("rcu"))) *ip6_ptr; + __u8 __cacheline_group_end__net_device_read_txrx[0]; + __u8 __cacheline_group_begin__net_device_read_rx[0]; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; + struct list_head ptype_specific; + int ifindex; + unsigned int real_num_rx_queues; + struct netdev_rx_queue *_rx; + unsigned long gro_flush_timeout; + int napi_defer_hard_irqs; + unsigned int gro_max_size; + unsigned int gro_ipv4_max_size; + rx_handler_func_t __attribute__((btf_type_tag("rcu"))) *rx_handler; + void __attribute__((btf_type_tag("rcu"))) *rx_handler_data; + possible_net_t nd_net; + struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_ingress; + __u8 __cacheline_group_end__net_device_read_rx[0]; + char name[16]; + struct netdev_name_node *name_node; + struct dev_ifalias __attribute__((btf_type_tag("rcu"))) *ifalias; + unsigned long mem_end; + unsigned long mem_start; + unsigned long base_addr; + struct list_head dev_list; + struct list_head napi_list; + struct list_head unreg_list; + struct list_head close_list; + struct list_head ptype_all; + struct { + struct list_head upper; + struct list_head lower; + } adj_list; + xdp_features_t xdp_features; + const struct xdp_metadata_ops *xdp_metadata_ops; + const struct xsk_tx_metadata_ops *xsk_tx_metadata_ops; + unsigned short gflags; + unsigned short needed_tailroom; + netdev_features_t hw_features; + netdev_features_t wanted_features; + netdev_features_t vlan_features; + netdev_features_t hw_enc_features; + netdev_features_t mpls_features; + unsigned int min_mtu; + unsigned int max_mtu; + unsigned short type; + unsigned char min_header_len; + unsigned char name_assign_type; + int group; + struct net_device_stats stats; + struct net_device_core_stats __attribute__((btf_type_tag("percpu"))) *core_stats; + atomic_t carrier_up_count; + atomic_t carrier_down_count; + const struct ethtool_ops *ethtool_ops; + const struct ndisc_ops *ndisc_ops; + unsigned int operstate; + unsigned char link_mode; + unsigned char if_port; + unsigned char dma; + unsigned char perm_addr[32]; + unsigned char addr_assign_type; + unsigned char addr_len; + unsigned char upper_level; + unsigned char lower_level; + unsigned short neigh_priv_len; + unsigned short dev_id; + unsigned short dev_port; + unsigned short padded; + spinlock_t addr_list_lock; + int irq; + struct netdev_hw_addr_list uc; + struct netdev_hw_addr_list mc; + struct netdev_hw_addr_list dev_addrs; + struct kset *queues_kset; + struct list_head unlink_list; + unsigned int promiscuity; + unsigned int allmulti; + bool uc_promisc; + unsigned char nested_level; + struct in_device __attribute__((btf_type_tag("rcu"))) *ip_ptr; + struct wireless_dev *ieee80211_ptr; + const unsigned char *dev_addr; + unsigned int num_rx_queues; + unsigned int xdp_zc_max_segs; + struct netdev_queue __attribute__((btf_type_tag("rcu"))) *ingress_queue; + struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_ingress; + unsigned char broadcast[32]; + struct cpu_rmap *rx_cpu_rmap; + struct hlist_node index_hlist; + unsigned int num_tx_queues; + struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; + unsigned int tx_queue_len; + spinlock_t tx_global_lock; + struct xdp_dev_bulk_queue __attribute__((btf_type_tag("percpu"))) *xdp_bulkq; + struct timer_list watchdog_timer; + int watchdog_timeo; + u32 proto_down_reason; + struct list_head todo_list; + int __attribute__((btf_type_tag("percpu"))) *pcpu_refcnt; + struct ref_tracker_dir refcnt_tracker; + struct list_head link_watch_list; + u8 reg_state; + bool dismantle; + enum { + RTNL_LINK_INITIALIZED = 0, + RTNL_LINK_INITIALIZING = 1, + } rtnl_link_state: 16; + bool needs_free_netdev; + void (*priv_destructor)(struct net_device *); + void *ml_priv; + enum netdev_ml_priv_type ml_priv_type; + enum netdev_stat_type pcpu_stat_type: 8; + struct device dev; + const struct attribute_group *sysfs_groups[4]; + const struct attribute_group *sysfs_rx_queue_group; + const struct rtnl_link_ops *rtnl_link_ops; + const struct netdev_stat_ops *stat_ops; + unsigned int tso_max_size; + u16 tso_max_segs; + u8 prio_tc_map[16]; + struct phy_device *phydev; + struct sfp_bus *sfp_bus; + struct lock_class_key *qdisc_tx_busylock; + bool proto_down; + unsigned int wol_enabled: 1; + unsigned int threaded: 1; + struct list_head net_notifier_list; + const struct udp_tunnel_nic_info *udp_tunnel_nic_info; + struct udp_tunnel_nic *udp_tunnel_nic; + struct bpf_xdp_entity xdp_state[3]; + u8 dev_addr_shadow[32]; + netdevice_tracker linkwatch_dev_tracker; + netdevice_tracker watchdog_dev_tracker; + netdevice_tracker dev_registered_tracker; + struct rtnl_hw_stats64 *offload_xstats_l3; + struct devlink_port *devlink_port; + struct hlist_head page_pools; +}; + +enum netdev_tx { + __NETDEV_TX_MIN = -2147483648, + NETDEV_TX_OK = 0, + NETDEV_TX_BUSY = 16, +}; + +typedef enum netdev_tx netdev_tx_t; + +typedef __u16 __be16; + +enum tc_setup_type { + TC_QUERY_CAPS = 0, + TC_SETUP_QDISC_MQPRIO = 1, + TC_SETUP_CLSU32 = 2, + TC_SETUP_CLSFLOWER = 3, + TC_SETUP_CLSMATCHALL = 4, + TC_SETUP_CLSBPF = 5, + TC_SETUP_BLOCK = 6, + TC_SETUP_QDISC_CBS = 7, + TC_SETUP_QDISC_RED = 8, + TC_SETUP_QDISC_PRIO = 9, + TC_SETUP_QDISC_MQ = 10, + TC_SETUP_QDISC_ETF = 11, + TC_SETUP_ROOT_QDISC = 12, + TC_SETUP_QDISC_GRED = 13, + TC_SETUP_QDISC_TAPRIO = 14, + TC_SETUP_FT = 15, + TC_SETUP_QDISC_ETS = 16, + TC_SETUP_QDISC_TBF = 17, + TC_SETUP_QDISC_FIFO = 18, + TC_SETUP_QDISC_HTB = 19, + TC_SETUP_ACT = 20, +}; + +struct ifreq; + +struct if_settings; + +struct ifmap; + +struct neigh_parms; + +struct rtnl_link_stats64; + +struct ifla_vf_info; + +struct ifla_vf_stats; + +struct nlattr; + +struct ifla_vf_guid; + +struct netlink_ext_ack; + +struct neighbour; + +struct ndmsg; + +struct nlmsghdr; + +struct netlink_callback; + +struct netdev_phys_item_id; + +struct netdev_bpf; + +struct xdp_frame; + +struct xdp_buff; + +struct ip_tunnel_parm; + +struct net_device_path_ctx; + +struct net_device_path; + +struct skb_shared_hwtstamps; + +struct kernel_hwtstamp_config; + +struct net_device_ops { + int (*ndo_init)(struct net_device *); + void (*ndo_uninit)(struct net_device *); + int (*ndo_open)(struct net_device *); + int (*ndo_stop)(struct net_device *); + netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *); + netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t); + u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *); + void (*ndo_change_rx_flags)(struct net_device *, int); + void (*ndo_set_rx_mode)(struct net_device *); + int (*ndo_set_mac_address)(struct net_device *, void *); + int (*ndo_validate_addr)(struct net_device *); + int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_siocbond)(struct net_device *, struct ifreq *, int); + int (*ndo_siocwandev)(struct net_device *, struct if_settings *); + int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int); + int (*ndo_set_config)(struct net_device *, struct ifmap *); + int (*ndo_change_mtu)(struct net_device *, int); + int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *); + void (*ndo_tx_timeout)(struct net_device *, unsigned int); + void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *); + bool (*ndo_has_offload_stats)(const struct net_device *, int); + int (*ndo_get_offload_stats)(int, const struct net_device *, void *); + struct net_device_stats * (*ndo_get_stats)(struct net_device *); + int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16); + int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16); + int (*ndo_set_vf_mac)(struct net_device *, int, u8 *); + int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16); + int (*ndo_set_vf_rate)(struct net_device *, int, int, int); + int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool); + int (*ndo_set_vf_trust)(struct net_device *, int, bool); + int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *); + int (*ndo_set_vf_link_state)(struct net_device *, int, int); + int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *); + int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **); + int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *); + int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *); + int (*ndo_set_vf_guid)(struct net_device *, int, u64, int); + int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool); + int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *); + int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32); + int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_del_slave)(struct net_device *, struct net_device *); + struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool); + struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *); + netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t); + int (*ndo_set_features)(struct net_device *, netdev_features_t); + int (*ndo_neigh_construct)(struct net_device *, struct neighbour *); + void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *); + int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *); + int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *); + int (*ndo_fdb_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); + int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); + int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); + int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_del_bulk)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); + int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); + int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); + int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); + int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); + int (*ndo_change_carrier)(struct net_device *, bool); + int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); + void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); + void (*ndo_dfwd_del_station)(struct net_device *, void *); + int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); + int (*ndo_get_iflink)(const struct net_device *); + int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *); + void (*ndo_set_rx_headroom)(struct net_device *, int); + int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); + int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); + struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); + int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); + int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int); + struct net_device * (*ndo_get_peer_dev)(struct net_device *); + int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); + ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); + int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); + int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +}; + +typedef __u32 __wsum; + +typedef unsigned int sk_buff_data_t; + +struct skb_ext; + +struct sk_buff { + union { + struct { + struct sk_buff *next; + struct sk_buff *prev; + union { + struct net_device *dev; + unsigned long dev_scratch; + }; + }; + struct rb_node rbnode; + struct list_head list; + struct llist_node ll_node; + }; + struct sock *sk; + union { + ktime_t tstamp; + u64 skb_mstamp_ns; + }; + char cb[48]; + union { + struct { + unsigned long _skb_refdst; + void (*destructor)(struct sk_buff *); + }; + struct list_head tcp_tsorted_anchor; + unsigned long _sk_redir; + }; + unsigned long _nfct; + unsigned int len; + unsigned int data_len; + __u16 mac_len; + __u16 hdr_len; + __u16 queue_mapping; + __u8 __cloned_offset[0]; + __u8 cloned: 1; + __u8 nohdr: 1; + __u8 fclone: 2; + __u8 peeked: 1; + __u8 head_frag: 1; + __u8 pfmemalloc: 1; + __u8 pp_recycle: 1; + __u8 active_extensions; + union { + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 nf_trace: 1; + __u8 redirected: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + }; + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 nf_trace: 1; + __u8 redirected: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + } headers; + }; + sk_buff_data_t tail; + sk_buff_data_t end; + unsigned char *head; + unsigned char *data; + unsigned int truesize; + refcount_t users; + struct skb_ext *extensions; +}; + +typedef __u64 __addrpair; + +typedef __u32 __be32; + +typedef __u32 __portpair; + +struct in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; +}; + +struct hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; +}; + +struct proto; + +struct inet_timewait_death_row; + +struct sock_common { + union { + __addrpair skc_addrpair; + struct { + __be32 skc_daddr; + __be32 skc_rcv_saddr; + }; + }; + union { + unsigned int skc_hash; + __u16 skc_u16hashes[2]; + }; + union { + __portpair skc_portpair; + struct { + __be16 skc_dport; + __u16 skc_num; + }; + }; + unsigned short skc_family; + volatile unsigned char skc_state; + unsigned char skc_reuse: 4; + unsigned char skc_reuseport: 1; + unsigned char skc_ipv6only: 1; + unsigned char skc_net_refcnt: 1; + int skc_bound_dev_if; + union { + struct hlist_node skc_bind_node; + struct hlist_node skc_portaddr_node; + }; + struct proto *skc_prot; + possible_net_t skc_net; + struct in6_addr skc_v6_daddr; + struct in6_addr skc_v6_rcv_saddr; + atomic64_t skc_cookie; + union { + unsigned long skc_flags; + struct sock *skc_listener; + struct inet_timewait_death_row *skc_tw_dr; + }; + int skc_dontcopy_begin[0]; + union { + struct hlist_node skc_node; + struct hlist_nulls_node skc_nulls_node; + }; + unsigned short skc_tx_queue_mapping; + unsigned short skc_rx_queue_mapping; + union { + int skc_incoming_cpu; + u32 skc_rcv_wnd; + u32 skc_tw_rcv_nxt; + }; + refcount_t skc_refcnt; + int skc_dontcopy_end[0]; + union { + u32 skc_rxhash; + u32 skc_window_clamp; + u32 skc_tw_snd_nxt; + }; +}; + +struct sk_buff_list { + struct sk_buff *next; + struct sk_buff *prev; +}; + +struct sk_buff_head { + union { + struct { + struct sk_buff *next; + struct sk_buff *prev; + }; + struct sk_buff_list list; + }; + __u32 qlen; + spinlock_t lock; +}; + +typedef struct { + spinlock_t slock; + int owned; + wait_queue_head_t wq; + struct lockdep_map dep_map; +} socket_lock_t; + +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; +}; + +typedef struct {} netns_tracker; + +struct dst_entry; + +struct sk_filter; + +struct socket_wq; + +struct socket; + +struct sock_reuseport; + +struct sock { + struct sock_common __sk_common; + __u8 __cacheline_group_begin__sock_write_rx[0]; + atomic_t sk_drops; + __s32 sk_peek_off; + struct sk_buff_head sk_error_queue; + struct sk_buff_head sk_receive_queue; + struct { + atomic_t rmem_alloc; + int len; + struct sk_buff *head; + struct sk_buff *tail; + } sk_backlog; + __u8 __cacheline_group_end__sock_write_rx[0]; + __u8 __cacheline_group_begin__sock_read_rx[0]; + struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_rx_dst; + int sk_rx_dst_ifindex; + u32 sk_rx_dst_cookie; + unsigned int sk_ll_usec; + unsigned int sk_napi_id; + u16 sk_busy_poll_budget; + u8 sk_prefer_busy_poll; + u8 sk_userlocks; + int sk_rcvbuf; + struct sk_filter __attribute__((btf_type_tag("rcu"))) *sk_filter; + union { + struct socket_wq __attribute__((btf_type_tag("rcu"))) *sk_wq; + struct socket_wq *sk_wq_raw; + }; + void (*sk_data_ready)(struct sock *); + long sk_rcvtimeo; + int sk_rcvlowat; + __u8 __cacheline_group_end__sock_read_rx[0]; + __u8 __cacheline_group_begin__sock_read_rxtx[0]; + int sk_err; + struct socket *sk_socket; + struct mem_cgroup *sk_memcg; + __u8 __cacheline_group_end__sock_read_rxtx[0]; + __u8 __cacheline_group_begin__sock_write_rxtx[0]; + socket_lock_t sk_lock; + u32 sk_reserved_mem; + int sk_forward_alloc; + u32 sk_tsflags; + __u8 __cacheline_group_end__sock_write_rxtx[0]; + __u8 __cacheline_group_begin__sock_write_tx[0]; + int sk_write_pending; + atomic_t sk_omem_alloc; + int sk_sndbuf; + int sk_wmem_queued; + refcount_t sk_wmem_alloc; + unsigned long sk_tsq_flags; + union { + struct sk_buff *sk_send_head; + struct rb_root tcp_rtx_queue; + }; + struct sk_buff_head sk_write_queue; + u32 sk_dst_pending_confirm; + u32 sk_pacing_status; + struct page_frag sk_frag; + struct timer_list sk_timer; + unsigned long sk_pacing_rate; + atomic_t sk_zckey; + atomic_t sk_tskey; + __u8 __cacheline_group_end__sock_write_tx[0]; + __u8 __cacheline_group_begin__sock_read_tx[0]; + unsigned long sk_max_pacing_rate; + long sk_sndtimeo; + u32 sk_priority; + u32 sk_mark; + struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_dst_cache; + netdev_features_t sk_route_caps; + u16 sk_gso_type; + u16 sk_gso_max_segs; + unsigned int sk_gso_max_size; + gfp_t sk_allocation; + u32 sk_txhash; + u8 sk_pacing_shift; + bool sk_use_task_frag; + __u8 __cacheline_group_end__sock_read_tx[0]; + u8 sk_gso_disabled: 1; + u8 sk_kern_sock: 1; + u8 sk_no_check_tx: 1; + u8 sk_no_check_rx: 1; + u8 sk_shutdown; + u16 sk_type; + u16 sk_protocol; + unsigned long sk_lingertime; + struct proto *sk_prot_creator; + rwlock_t sk_callback_lock; + int sk_err_soft; + u32 sk_ack_backlog; + u32 sk_max_ack_backlog; + kuid_t sk_uid; + spinlock_t sk_peer_lock; + int sk_bind_phc; + struct pid *sk_peer_pid; + const struct cred *sk_peer_cred; + ktime_t sk_stamp; + int sk_disconnects; + u8 sk_txrehash; + u8 sk_clockid; + u8 sk_txtime_deadline_mode: 1; + u8 sk_txtime_report_errors: 1; + u8 sk_txtime_unused: 6; + void *sk_user_data; + struct sock_cgroup_data sk_cgrp_data; + void (*sk_state_change)(struct sock *); + void (*sk_write_space)(struct sock *); + void (*sk_error_report)(struct sock *); + int (*sk_backlog_rcv)(struct sock *, struct sk_buff *); + void (*sk_destruct)(struct sock *); + struct sock_reuseport __attribute__((btf_type_tag("rcu"))) *sk_reuseport_cb; + struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *sk_bpf_storage; + struct callback_head sk_rcu; + netns_tracker ns_tracker; +}; + +struct smc_hashinfo; + +typedef unsigned int slab_flags_t; + +struct sockaddr; + +struct msghdr; + +struct sk_psock; + +struct request_sock_ops; + +struct timewait_sock_ops; + +struct inet_hashinfo; + +struct udp_table; + +struct raw_hashinfo; + +struct proto { + void (*close)(struct sock *, long); + int (*pre_connect)(struct sock *, struct sockaddr *, int); + int (*connect)(struct sock *, struct sockaddr *, int); + int (*disconnect)(struct sock *, int); + struct sock * (*accept)(struct sock *, int, int *, bool); + int (*ioctl)(struct sock *, int, int *); + int (*init)(struct sock *); + void (*destroy)(struct sock *); + void (*shutdown)(struct sock *, int); + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*keepalive)(struct sock *, int); + int (*sendmsg)(struct sock *, struct msghdr *, size_t); + int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *); + void (*splice_eof)(struct socket *); + int (*bind)(struct sock *, struct sockaddr *, int); + int (*bind_add)(struct sock *, struct sockaddr *, int); + int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); + void (*release_cb)(struct sock *); + int (*hash)(struct sock *); + void (*unhash)(struct sock *); + void (*rehash)(struct sock *); + int (*get_port)(struct sock *, unsigned short); + void (*put_port)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + unsigned int inuse_idx; + bool (*stream_memory_free)(const struct sock *, int); + bool (*sock_is_readable)(struct sock *); + void (*enter_memory_pressure)(struct sock *); + void (*leave_memory_pressure)(struct sock *); + atomic_long_t *memory_allocated; + int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; + struct percpu_counter *sockets_allocated; + unsigned long *memory_pressure; + long *sysctl_mem; + int *sysctl_wmem; + int *sysctl_rmem; + u32 sysctl_wmem_offset; + u32 sysctl_rmem_offset; + int max_header; + bool no_autobind; + struct kmem_cache *slab; + unsigned int obj_size; + unsigned int ipv6_pinfo_offset; + slab_flags_t slab_flags; + unsigned int useroffset; + unsigned int usersize; + unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; + struct request_sock_ops *rsk_prot; + struct timewait_sock_ops *twsk_prot; + union { + struct inet_hashinfo *hashinfo; + struct udp_table *udp_table; + struct raw_hashinfo *raw_hash; + struct smc_hashinfo *smc_hash; + } h; + struct module *owner; + char name[32]; + struct list_head node; + int (*diag_destroy)(struct sock *, int); +}; + +typedef unsigned short __kernel_sa_family_t; + +typedef __kernel_sa_family_t sa_family_t; + +struct sockaddr { + sa_family_t sa_family; + union { + char sa_data_min[14]; + struct { + struct {} __empty_sa_data; + char sa_data[0]; + }; + }; +}; + +struct ubuf_info; + +struct msghdr { + void *msg_name; + int msg_namelen; + int msg_inq; + struct iov_iter msg_iter; + union { + void *msg_control; + void __attribute__((btf_type_tag("user"))) *msg_control_user; + }; + bool msg_control_is_user: 1; + bool msg_get_inq: 1; + unsigned int msg_flags; + __kernel_size_t msg_controllen; + struct kiocb *msg_iocb; + struct ubuf_info *msg_ubuf; + int (*sg_from_iter)(struct sock *, struct sk_buff *, struct iov_iter *, size_t); +}; + +struct ubuf_info { + void (*callback)(struct sk_buff *, struct ubuf_info *, bool); + refcount_t refcnt; + u8 flags; +}; + +typedef enum { + SS_FREE = 0, + SS_UNCONNECTED = 1, + SS_CONNECTING = 2, + SS_CONNECTED = 3, + SS_DISCONNECTING = 4, +} socket_state; + +struct socket_wq { + wait_queue_head_t wait; + struct fasync_struct *fasync_list; + unsigned long flags; + struct callback_head rcu; + long: 64; + long: 64; +}; + +struct proto_ops; + +struct socket { + socket_state state; + short type; + unsigned long flags; + struct file *file; + struct sock *sk; + const struct proto_ops *ops; + long: 64; + long: 64; + long: 64; + struct socket_wq wq; +}; + +typedef struct { + size_t written; + size_t count; + union { + char __attribute__((btf_type_tag("user"))) *buf; + void *data; + } arg; + int error; +} read_descriptor_t; + +typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); + +typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); + +struct proto_ops { + int family; + struct module *owner; + int (*release)(struct socket *); + int (*bind)(struct socket *, struct sockaddr *, int); + int (*connect)(struct socket *, struct sockaddr *, int, int); + int (*socketpair)(struct socket *, struct socket *); + int (*accept)(struct socket *, struct socket *, int, bool); + int (*getname)(struct socket *, struct sockaddr *, int); + __poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *); + int (*ioctl)(struct socket *, unsigned int, unsigned long); + int (*gettstamp)(struct socket *, void __attribute__((btf_type_tag("user"))) *, bool, bool); + int (*listen)(struct socket *, int); + int (*shutdown)(struct socket *, int); + int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct socket *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*show_fdinfo)(struct seq_file *, struct socket *); + int (*sendmsg)(struct socket *, struct msghdr *, size_t); + int (*recvmsg)(struct socket *, struct msghdr *, size_t, int); + int (*mmap)(struct file *, struct socket *, struct vm_area_struct *); + ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct socket *); + int (*set_peek_off)(struct sock *, int); + int (*peek_len)(struct socket *); + int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); + int (*read_skb)(struct sock *, skb_read_actor_t); + int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); + int (*set_rcvlowat)(struct sock *, int); +}; + +struct bpf_link; + +struct sk_psock_progs { + struct bpf_prog *msg_parser; + struct bpf_prog *stream_parser; + struct bpf_prog *stream_verdict; + struct bpf_prog *skb_verdict; + struct bpf_link *msg_parser_link; + struct bpf_link *stream_parser_link; + struct bpf_link *stream_verdict_link; + struct bpf_link *skb_verdict_link; +}; + +struct sk_psock_work_state { + u32 len; + u32 off; +}; + +struct sk_msg; + +struct sk_psock { + struct sock *sk; + struct sock *sk_redir; + u32 apply_bytes; + u32 cork_bytes; + u32 eval; + bool redir_ingress; + struct sk_msg *cork; + struct sk_psock_progs progs; + struct sk_buff_head ingress_skb; + struct list_head ingress_msg; + spinlock_t ingress_lock; + unsigned long state; + struct list_head link; + spinlock_t link_lock; + refcount_t refcnt; + void (*saved_unhash)(struct sock *); + void (*saved_destroy)(struct sock *); + void (*saved_close)(struct sock *, long); + void (*saved_write_space)(struct sock *); + void (*saved_data_ready)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + struct proto *sk_proto; + struct mutex work_mutex; + struct sk_psock_work_state work_state; + struct delayed_work work; + struct sock *sk_pair; + struct rcu_work rwork; +}; + +struct scatterlist { + unsigned long page_link; + unsigned int offset; + unsigned int length; + dma_addr_t dma_address; + unsigned int dma_length; +}; + +struct sk_msg_sg { + u32 start; + u32 curr; + u32 end; + u32 size; + u32 copybreak; + unsigned long copy[1]; + struct scatterlist data[19]; +}; + +struct sk_msg { + struct sk_msg_sg sg; + void *data; + void *data_end; + u32 apply_bytes; + u32 cork_bytes; + u32 flags; + struct sk_buff *skb; + struct sock *sk_redir; + struct sock *sk; + struct list_head list; +}; + +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + BPF_LINK_TYPE_XDP = 6, + BPF_LINK_TYPE_PERF_EVENT = 7, + BPF_LINK_TYPE_KPROBE_MULTI = 8, + BPF_LINK_TYPE_STRUCT_OPS = 9, + BPF_LINK_TYPE_NETFILTER = 10, + BPF_LINK_TYPE_TCX = 11, + BPF_LINK_TYPE_UPROBE_MULTI = 12, + BPF_LINK_TYPE_NETKIT = 13, + BPF_LINK_TYPE_SOCKMAP = 14, + __MAX_BPF_LINK_TYPE = 15, +}; + +struct bpf_link_ops; + +struct bpf_link { + atomic64_t refcnt; + u32 id; + enum bpf_link_type type; + const struct bpf_link_ops *ops; + struct bpf_prog *prog; + struct work_struct work; +}; + +struct bpf_link_info; + +struct bpf_link_ops { + void (*release)(struct bpf_link *); + void (*dealloc)(struct bpf_link *); + int (*detach)(struct bpf_link *); + int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); + void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); + int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); + int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); +}; + +struct bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; + union { + struct { + __u64 tp_name; + __u32 tp_name_len; + } raw_tracepoint; + struct { + __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + } cgroup; + struct { + __u64 target_name; + __u32 target_name_len; + union { + struct { + __u32 map_id; + } map; + }; + union { + struct { + __u64 cgroup_id; + __u32 order; + } cgroup; + struct { + __u32 tid; + __u32 pid; + } task; + }; + } iter; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + struct { + __u32 ifindex; + } xdp; + struct { + __u32 map_id; + } struct_ops; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + __u64 addrs; + __u32 count; + __u32 flags; + __u64 missed; + __u64 cookies; + } kprobe_multi; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 path_size; + __u32 count; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + __u32 type; + union { + struct { + __u64 file_name; + __u32 name_len; + __u32 offset; + __u64 cookie; + } uprobe; + struct { + __u64 func_name; + __u32 name_len; + __u32 offset; + __u64 addr; + __u64 missed; + __u64 cookie; + } kprobe; + struct { + __u64 tp_name; + __u32 name_len; + __u64 cookie; + } tracepoint; + struct { + __u64 config; + __u32 type; + __u64 cookie; + } event; + }; + } perf_event; + struct { + __u32 ifindex; + __u32 attach_type; + } tcx; + struct { + __u32 ifindex; + __u32 attach_type; + } netkit; + struct { + __u32 map_id; + __u32 attach_type; + } sockmap; + }; +}; + +struct request_sock; + +struct request_sock_ops { + int family; + unsigned int obj_size; + struct kmem_cache *slab; + char *slab_name; + int (*rtx_syn_ack)(const struct sock *, struct request_sock *); + void (*send_ack)(const struct sock *, struct sk_buff *, struct request_sock *); + void (*send_reset)(const struct sock *, struct sk_buff *); + void (*destructor)(struct request_sock *); + void (*syn_ack_timeout)(const struct request_sock *); +}; + +struct saved_syn; + +struct request_sock { + struct sock_common __req_common; + struct request_sock *dl_next; + u16 mss; + u8 num_retrans; + u8 syncookie: 1; + u8 num_timeout: 7; + u32 ts_recent; + struct timer_list rsk_timer; + const struct request_sock_ops *rsk_ops; + struct sock *sk; + struct saved_syn *saved_syn; + u32 secid; + u32 peer_secid; + u32 timeout; +}; + +struct saved_syn { + u32 mac_hdrlen; + u32 network_hdrlen; + u32 tcp_hdrlen; + u8 data[0]; +}; + +struct timewait_sock_ops { + struct kmem_cache *twsk_slab; + char *twsk_slab_name; + unsigned int twsk_obj_size; + int (*twsk_unique)(struct sock *, struct sock *, void *); + void (*twsk_destructor)(struct sock *); +}; + +struct inet_ehash_bucket; + +struct inet_bind_hashbucket; + +struct inet_listen_hashbucket; + +struct inet_hashinfo { + struct inet_ehash_bucket *ehash; + spinlock_t *ehash_locks; + unsigned int ehash_mask; + unsigned int ehash_locks_mask; + struct kmem_cache *bind_bucket_cachep; + struct inet_bind_hashbucket *bhash; + struct kmem_cache *bind2_bucket_cachep; + struct inet_bind_hashbucket *bhash2; + unsigned int bhash_size; + unsigned int lhash2_mask; + struct inet_listen_hashbucket *lhash2; + bool pernet; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct hlist_nulls_head { + struct hlist_nulls_node *first; +}; + +struct inet_ehash_bucket { + struct hlist_nulls_head chain; +}; + +struct inet_bind_hashbucket { + spinlock_t lock; + struct hlist_head chain; +}; + +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; +}; + struct notifier_block; struct raw_notifier_head { @@ -8555,8 +11234,6 @@ struct netns_nexthop { struct blocking_notifier_head notifier_chain; }; -struct inet_hashinfo; - struct inet_timewait_death_row { refcount_t tw_refcount; long: 64; @@ -8590,8 +11267,6 @@ typedef struct { u64 key[2]; } siphash_key_t; -struct udp_table; - struct ipv4_devconf; struct ip_ra_chain; @@ -8754,8 +11429,6 @@ struct netns_ipv4 { siphash_key_t ip_id_key; }; -struct dst_entry; - struct dst_ops { unsigned short family; unsigned int gc_thresh; @@ -9064,6 +11737,12 @@ struct ip_ra_chain { struct callback_head rcu; }; +struct inet_peer_base { + struct rb_root rb_root; + seqlock_t lock; + int total; +}; + typedef u32 (*rht_hashfn_t)(const void *, u32, u32); typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32); @@ -9140,8 +11819,6 @@ struct inet_frags { struct completion completion; }; -typedef __u32 __be32; - struct frag_v4_compare_key { __be32 saddr; __be32 daddr; @@ -9151,14 +11828,6 @@ struct frag_v4_compare_key { u16 protocol; }; -struct in6_addr { - union { - __u8 u6_addr8[16]; - __be16 u6_addr16[8]; - __be32 u6_addr32[4]; - } in6_u; -}; - struct frag_v6_compare_key { struct in6_addr saddr; struct in6_addr daddr; @@ -9254,12 +11923,98 @@ struct tcp_congestion_ops { long: 64; }; +struct ack_sample { + u32 pkts_acked; + s32 rtt_us; + u32 in_flight; +}; + +struct rate_sample { + u64 prior_mstamp; + u32 prior_delivered; + u32 prior_delivered_ce; + s32 delivered; + s32 delivered_ce; + long interval_us; + u32 snd_interval_us; + u32 rcv_interval_us; + long rtt_us; + int losses; + u32 acked_sacked; + u32 prior_in_flight; + u32 last_end_seq; + bool is_app_limited; + bool is_retrans; + bool is_ack_delayed; +}; + struct tcp_fastopen_context { siphash_key_t key[2]; int num; struct callback_head rcu; }; +struct fib_notifier_ops { + int family; + struct list_head list; + unsigned int (*fib_seq_read)(struct net *); + int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *); + struct module *owner; + struct callback_head rcu; +}; + +struct nla_policy; + +struct netlink_ext_ack { + const char *_msg; + const struct nlattr *bad_attr; + const struct nla_policy *policy; + const struct nlattr *miss_nest; + u16 miss_type; + u8 cookie[20]; + u8 cookie_len; + char _msg_buf[80]; +}; + +struct nlattr { + __u16 nla_len; + __u16 nla_type; +}; + +struct netlink_range_validation; + +struct netlink_range_validation_signed; + +struct nla_policy { + u8 type; + u8 validation_type; + u16 len; + union { + u16 strict_start_type; + const u32 bitfield32_valid; + const u32 mask; + const char *reject_message; + const struct nla_policy *nested_policy; + const struct netlink_range_validation *range; + const struct netlink_range_validation_signed *range_signed; + struct { + s16 min; + s16 max; + }; + int (*validate)(const struct nlattr *, struct netlink_ext_ack *); + }; +}; + +struct netlink_range_validation { + u64 min; + u64 max; +}; + +struct netlink_range_validation_signed { + s64 min; + s64 max; +}; + typedef struct { atomic_t refcnt; } rcuref_t; @@ -9293,6 +12048,221 @@ struct dst_entry { struct lwtunnel_state *lwtstate; }; +struct lwtunnel_state { + __u16 type; + __u16 flags; + __u16 headroom; + atomic_t refcnt; + int (*orig_output)(struct net *, struct sock *, struct sk_buff *); + int (*orig_input)(struct sk_buff *); + struct callback_head rcu; + __u8 data[0]; +}; + +struct hh_cache { + unsigned int hh_len; + seqlock_t hh_lock; + unsigned long hh_data[12]; +}; + +struct neigh_table; + +struct neigh_ops; + +struct neighbour { + struct neighbour __attribute__((btf_type_tag("rcu"))) *next; + struct neigh_table *tbl; + struct neigh_parms *parms; + unsigned long confirmed; + unsigned long updated; + rwlock_t lock; + refcount_t refcnt; + unsigned int arp_queue_len_bytes; + struct sk_buff_head arp_queue; + struct timer_list timer; + unsigned long used; + atomic_t probes; + u8 nud_state; + u8 type; + u8 dead; + u8 protocol; + u32 flags; + seqlock_t ha_lock; + unsigned char ha[32]; + struct hh_cache hh; + int (*output)(struct neighbour *, struct sk_buff *); + const struct neigh_ops *ops; + struct list_head gc_list; + struct list_head managed_list; + struct callback_head rcu; + struct net_device *dev; + netdevice_tracker dev_tracker; + u8 primary_key[0]; +}; + +struct neigh_parms { + possible_net_t net; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct list_head list; + int (*neigh_setup)(struct neighbour *); + struct neigh_table *tbl; + void *sysctl_table; + int dead; + refcount_t refcnt; + struct callback_head callback_head; + int reachable_time; + u32 qlen; + int data[14]; + unsigned long data_state[1]; +}; + +struct pneigh_entry; + +struct neigh_statistics; + +struct neigh_hash_table; + +struct neigh_table { + int family; + unsigned int entry_size; + unsigned int key_len; + __be16 protocol; + __u32 (*hash)(const void *, const struct net_device *, __u32 *); + bool (*key_eq)(const struct neighbour *, const void *); + int (*constructor)(struct neighbour *); + int (*pconstructor)(struct pneigh_entry *); + void (*pdestructor)(struct pneigh_entry *); + void (*proxy_redo)(struct sk_buff *); + int (*is_multicast)(const void *); + bool (*allow_add)(const struct net_device *, struct netlink_ext_ack *); + char *id; + struct neigh_parms parms; + struct list_head parms_list; + int gc_interval; + int gc_thresh1; + int gc_thresh2; + int gc_thresh3; + unsigned long last_flush; + struct delayed_work gc_work; + struct delayed_work managed_work; + struct timer_list proxy_timer; + struct sk_buff_head proxy_queue; + atomic_t entries; + atomic_t gc_entries; + struct list_head gc_list; + struct list_head managed_list; + rwlock_t lock; + unsigned long last_rand; + struct neigh_statistics __attribute__((btf_type_tag("percpu"))) *stats; + struct neigh_hash_table __attribute__((btf_type_tag("rcu"))) *nht; + struct pneigh_entry **phash_buckets; +}; + +struct pneigh_entry { + struct pneigh_entry *next; + possible_net_t net; + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; + u8 protocol; + u32 key[0]; +}; + +struct neigh_statistics { + unsigned long allocs; + unsigned long destroys; + unsigned long hash_grows; + unsigned long res_failed; + unsigned long lookups; + unsigned long hits; + unsigned long rcv_probes_mcast; + unsigned long rcv_probes_ucast; + unsigned long periodic_gc_runs; + unsigned long forced_gc_runs; + unsigned long unres_discards; + unsigned long table_fulls; +}; + +struct neigh_hash_table { + struct neighbour __attribute__((btf_type_tag("rcu"))) **hash_buckets; + unsigned int hash_shift; + __u32 hash_rnd[4]; + struct callback_head rcu; +}; + +struct neigh_ops { + int family; + void (*solicit)(struct neighbour *, struct sk_buff *); + void (*error_report)(struct neighbour *, struct sk_buff *); + int (*output)(struct neighbour *, struct sk_buff *); + int (*connected_output)(struct neighbour *, struct sk_buff *); +}; + +struct ipv6_stable_secret { + bool initialized; + struct in6_addr secret; +}; + +struct ipv6_devconf { + __u8 __cacheline_group_begin__ipv6_devconf_read_txrx[0]; + __s32 disable_ipv6; + __s32 hop_limit; + __s32 mtu6; + __s32 forwarding; + __s32 disable_policy; + __s32 proxy_ndp; + __u8 __cacheline_group_end__ipv6_devconf_read_txrx[0]; + __s32 accept_ra; + __s32 accept_redirects; + __s32 autoconf; + __s32 dad_transmits; + __s32 rtr_solicits; + __s32 rtr_solicit_interval; + __s32 rtr_solicit_max_interval; + __s32 rtr_solicit_delay; + __s32 force_mld_version; + __s32 mldv1_unsolicited_report_interval; + __s32 mldv2_unsolicited_report_interval; + __s32 use_tempaddr; + __s32 temp_valid_lft; + __s32 temp_prefered_lft; + __s32 regen_min_advance; + __s32 regen_max_retry; + __s32 max_desync_factor; + __s32 max_addresses; + __s32 accept_ra_defrtr; + __u32 ra_defrtr_metric; + __s32 accept_ra_min_hop_limit; + __s32 accept_ra_min_lft; + __s32 accept_ra_pinfo; + __s32 ignore_routes_with_linkdown; + __s32 accept_source_route; + __s32 accept_ra_from_local; + __s32 drop_unicast_in_l2_multicast; + __s32 accept_dad; + __s32 force_tllao; + __s32 ndisc_notify; + __s32 suppress_frag_ndisc; + __s32 accept_ra_mtu; + __s32 drop_unsolicited_na; + __s32 accept_untracked_na; + struct ipv6_stable_secret stable_secret; + __s32 use_oif_addrs_only; + __s32 keep_addr_on_down; + __s32 seg6_enabled; + __u32 enhanced_dad; + __u32 addr_gen_mode; + __s32 ndisc_tclass; + __s32 rpl_seg_enabled; + __u32 ioam6_id; + __u32 ioam6_id_wide; + __u8 ioam6_enabled; + __u8 ndisc_evict_nocarrier; + __u8 ra_honor_pio_life; + struct ctl_table_header *sysctl_header; +}; + enum nf_log_type { NF_LOG_TYPE_LOG = 0, NF_LOG_TYPE_ULOG = 1, @@ -9355,367 +12325,240 @@ struct net_generic { }; }; -struct cgroup_namespace { - struct ns_common ns; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct css_set *root_cset; +struct sk_filter { + refcount_t refcnt; + struct callback_head rcu; + struct bpf_prog *prog; }; -struct taskstats { - __u16 version; - __u32 ac_exitcode; - __u8 ac_flag; - __u8 ac_nice; - __u64 cpu_count; - __u64 cpu_delay_total; - __u64 blkio_count; - __u64 blkio_delay_total; - __u64 swapin_count; - __u64 swapin_delay_total; - __u64 cpu_run_real_total; - __u64 cpu_run_virtual_total; - char ac_comm[32]; - __u8 ac_sched; - __u8 ac_pad[3]; +struct sock_reuseport { + struct callback_head rcu; + u16 max_socks; + u16 num_socks; + u16 num_closed_socks; + u16 incoming_cpu; + unsigned int synq_overflow_ts; + unsigned int reuseport_id; + unsigned int bind_inany: 1; + unsigned int has_conns: 1; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *prog; + struct sock *socks[0]; +}; + +struct skb_ext { + refcount_t refcnt; + u8 offset[1]; + u8 chunks; long: 0; - __u32 ac_uid; - __u32 ac_gid; - __u32 ac_pid; - __u32 ac_ppid; - __u32 ac_btime; - __u64 ac_etime; - __u64 ac_utime; - __u64 ac_stime; - __u64 ac_minflt; - __u64 ac_majflt; - __u64 coremem; - __u64 virtmem; - __u64 hiwater_rss; - __u64 hiwater_vm; - __u64 read_char; - __u64 write_char; - __u64 read_syscalls; - __u64 write_syscalls; - __u64 read_bytes; - __u64 write_bytes; - __u64 cancelled_write_bytes; - __u64 nvcsw; - __u64 nivcsw; - __u64 ac_utimescaled; - __u64 ac_stimescaled; - __u64 cpu_scaled_run_real_total; - __u64 freepages_count; - __u64 freepages_delay_total; - __u64 thrashing_count; - __u64 thrashing_delay_total; - __u64 ac_btime64; - __u64 compact_count; - __u64 compact_delay_total; - __u32 ac_tgid; - __u64 ac_tgetime; - __u64 ac_exe_dev; - __u64 ac_exe_inode; - __u64 wpcopy_count; - __u64 wpcopy_delay_total; - __u64 irq_count; - __u64 irq_delay_total; + char data[0]; }; -struct bio; - -struct bio_list { - struct bio *head; - struct bio *tail; +struct ifmap { + unsigned long mem_start; + unsigned long mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; }; -typedef __u32 blk_opf_t; +typedef struct { + unsigned short encoding; + unsigned short parity; +} raw_hdlc_proto; -typedef u8 blk_status_t; +typedef struct { + unsigned int interval; + unsigned int timeout; +} cisco_proto; -struct bvec_iter { - sector_t bi_sector; - unsigned int bi_size; - unsigned int bi_idx; - unsigned int bi_bvec_done; -} __attribute__((packed)); +typedef struct { + unsigned int t391; + unsigned int t392; + unsigned int n391; + unsigned int n392; + unsigned int n393; + unsigned short lmi; + unsigned short dce; +} fr_proto; -typedef unsigned int blk_qc_t; +typedef struct { + unsigned int dlci; +} fr_proto_pvc; -typedef void bio_end_io_t(struct bio *); +typedef struct { + unsigned int dlci; + char master[16]; +} fr_proto_pvc_info; -struct bio_issue { - u64 value; -}; +typedef struct { + unsigned short dce; + unsigned int modulo; + unsigned int window; + unsigned int t1; + unsigned int t2; + unsigned int n2; +} x25_hdlc_proto; -struct bio_vec { - struct page *bv_page; - unsigned int bv_len; - unsigned int bv_offset; -}; +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + unsigned short loopback; +} sync_serial_settings; -struct blkcg_gq; +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + unsigned short loopback; + unsigned int slot_map; +} te1_settings; -struct bio_set; - -struct bio { - struct bio *bi_next; - struct block_device *bi_bdev; - blk_opf_t bi_opf; - unsigned short bi_flags; - unsigned short bi_ioprio; - enum rw_hint bi_write_hint; - blk_status_t bi_status; - atomic_t __bi_remaining; - struct bvec_iter bi_iter; - blk_qc_t bi_cookie; - bio_end_io_t *bi_end_io; - void *bi_private; - struct blkcg_gq *bi_blkg; - struct bio_issue bi_issue; - u64 bi_iocost_cost; - union {}; - unsigned short bi_vcnt; - unsigned short bi_max_vecs; - atomic_t __bi_cnt; - struct bio_vec *bi_io_vec; - struct bio_set *bi_pool; - struct bio_vec bi_inline_vecs[0]; -}; - -struct disk_stats; - -struct blk_holder_ops; - -struct partition_meta_info; - -struct block_device { - sector_t bd_start_sect; - sector_t bd_nr_sectors; - struct gendisk *bd_disk; - struct request_queue *bd_queue; - struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; - unsigned long bd_stamp; - bool bd_read_only; - u8 bd_partno; - bool bd_write_holder; - bool bd_has_submit_bio; - dev_t bd_dev; - struct inode *bd_inode; - atomic_t bd_openers; - spinlock_t bd_size_lock; - void *bd_claiming; - void *bd_holder; - const struct blk_holder_ops *bd_holder_ops; - struct mutex bd_holder_lock; - int bd_holders; - struct kobject *bd_holder_dir; - atomic_t bd_fsfreeze_count; - struct mutex bd_fsfreeze_mutex; - struct partition_meta_info *bd_meta_info; - bool bd_ro_warned; - int bd_writers; - struct device bd_device; -}; - -struct disk_stats { - u64 nsecs[4]; - unsigned long sectors[4]; - unsigned long ios[4]; - unsigned long merges[4]; - unsigned long io_ticks; - local_t in_flight[2]; -}; - -struct blk_holder_ops { - void (*mark_dead)(struct block_device *, bool); - void (*sync)(struct block_device *); - int (*freeze)(struct block_device *); - int (*thaw)(struct block_device *); - void (*get_holder)(void *); - void (*put_holder)(void *); -}; - -typedef void *mempool_alloc_t(gfp_t, void *); - -typedef void mempool_free_t(void *, void *); - -struct mempool_s { - spinlock_t lock; - int min_nr; - int curr_nr; - void **elements; - void *pool_data; - mempool_alloc_t *alloc; - mempool_free_t *free; - wait_queue_head_t wait; -}; - -typedef struct mempool_s mempool_t; - -struct bio_alloc_cache; - -struct bio_set { - struct kmem_cache *bio_slab; - unsigned int front_pad; - struct bio_alloc_cache __attribute__((btf_type_tag("percpu"))) *cache; - mempool_t bio_pool; - mempool_t bvec_pool; - unsigned int back_pad; - spinlock_t rescue_lock; - struct bio_list rescue_list; - struct work_struct rescue_work; - struct workqueue_struct *rescue_workqueue; - struct hlist_node cpuhp_dead; -}; - -struct bio_alloc_cache { - struct bio *free_list; - struct bio *free_list_irq; - unsigned int nr; - unsigned int nr_irq; -}; - -struct ftrace_ret_stack { - unsigned long ret; - unsigned long func; - unsigned long long calltime; - unsigned long *retp; -}; - -struct bpf_run_ctx {}; - -struct iovec { - void __attribute__((btf_type_tag("user"))) *iov_base; - __kernel_size_t iov_len; -}; - -struct kvec; - -struct iov_iter { - u8 iter_type; - bool nofault; - bool data_source; - size_t iov_offset; +struct if_settings { + unsigned int type; + unsigned int size; union { - struct iovec __ubuf_iovec; - struct { - union { - const struct iovec *__iov; - const struct kvec *kvec; - const struct bio_vec *bvec; - struct xarray *xarray; - void __attribute__((btf_type_tag("user"))) *ubuf; - }; - size_t count; - }; - }; + raw_hdlc_proto __attribute__((btf_type_tag("user"))) *raw_hdlc; + cisco_proto __attribute__((btf_type_tag("user"))) *cisco; + fr_proto __attribute__((btf_type_tag("user"))) *fr; + fr_proto_pvc __attribute__((btf_type_tag("user"))) *fr_pvc; + fr_proto_pvc_info __attribute__((btf_type_tag("user"))) *fr_pvc_info; + x25_hdlc_proto __attribute__((btf_type_tag("user"))) *x25; + sync_serial_settings __attribute__((btf_type_tag("user"))) *sync; + te1_settings __attribute__((btf_type_tag("user"))) *te1; + } ifs_ifsu; +}; + +struct ifreq { union { - unsigned long nr_segs; - loff_t xarray_start; - }; -}; - -struct kvec { - void *iov_base; - size_t iov_len; -}; - -struct fprop_local_percpu { - struct percpu_counter events; - unsigned int period; - raw_spinlock_t lock; -}; - -enum wb_reason { - WB_REASON_BACKGROUND = 0, - WB_REASON_VMSCAN = 1, - WB_REASON_SYNC = 2, - WB_REASON_PERIODIC = 3, - WB_REASON_LAPTOP_TIMER = 4, - WB_REASON_FS_FREE_SPACE = 5, - WB_REASON_FORKER_THREAD = 6, - WB_REASON_FOREIGN_FLUSH = 7, - WB_REASON_MAX = 8, -}; - -struct bdi_writeback { - struct backing_dev_info *bdi; - unsigned long state; - unsigned long last_old_flush; - struct list_head b_dirty; - struct list_head b_io; - struct list_head b_more_io; - struct list_head b_dirty_time; - spinlock_t list_lock; - atomic_t writeback_inodes; - struct percpu_counter stat[4]; - unsigned long bw_time_stamp; - unsigned long dirtied_stamp; - unsigned long written_stamp; - unsigned long write_bandwidth; - unsigned long avg_write_bandwidth; - unsigned long dirty_ratelimit; - unsigned long balanced_dirty_ratelimit; - struct fprop_local_percpu completions; - int dirty_exceeded; - enum wb_reason start_all_reason; - spinlock_t work_lock; - struct list_head work_list; - struct delayed_work dwork; - struct delayed_work bw_dwork; - struct list_head bdi_node; - struct percpu_ref refcnt; - struct fprop_local_percpu memcg_completions; - struct cgroup_subsys_state *memcg_css; - struct cgroup_subsys_state *blkcg_css; - struct list_head memcg_node; - struct list_head blkcg_node; - struct list_head b_attached; - struct list_head offline_node; + char ifrn_name[16]; + } ifr_ifrn; union { - struct work_struct release_work; - struct callback_head rcu; + struct sockaddr ifru_addr; + struct sockaddr ifru_dstaddr; + struct sockaddr ifru_broadaddr; + struct sockaddr ifru_netmask; + struct sockaddr ifru_hwaddr; + short ifru_flags; + int ifru_ivalue; + int ifru_mtu; + struct ifmap ifru_map; + char ifru_slave[16]; + char ifru_newname[16]; + void __attribute__((btf_type_tag("user"))) *ifru_data; + struct if_settings ifru_settings; + } ifr_ifru; +}; + +struct rtnl_link_stats64 { + __u64 rx_packets; + __u64 tx_packets; + __u64 rx_bytes; + __u64 tx_bytes; + __u64 rx_errors; + __u64 tx_errors; + __u64 rx_dropped; + __u64 tx_dropped; + __u64 multicast; + __u64 collisions; + __u64 rx_length_errors; + __u64 rx_over_errors; + __u64 rx_crc_errors; + __u64 rx_frame_errors; + __u64 rx_fifo_errors; + __u64 rx_missed_errors; + __u64 tx_aborted_errors; + __u64 tx_carrier_errors; + __u64 tx_fifo_errors; + __u64 tx_heartbeat_errors; + __u64 tx_window_errors; + __u64 rx_compressed; + __u64 tx_compressed; + __u64 rx_nohandler; + __u64 rx_otherhost_dropped; +}; + +struct ifla_vf_info { + __u32 vf; + __u8 mac[32]; + __u32 vlan; + __u32 qos; + __u32 spoofchk; + __u32 linkstate; + __u32 min_tx_rate; + __u32 max_tx_rate; + __u32 rss_query_en; + __u32 trusted; + __be16 vlan_proto; +}; + +struct ifla_vf_stats { + __u64 rx_packets; + __u64 tx_packets; + __u64 rx_bytes; + __u64 tx_bytes; + __u64 broadcast; + __u64 multicast; + __u64 rx_dropped; + __u64 tx_dropped; +}; + +struct ifla_vf_guid { + __u32 vf; + __u64 guid; +}; + +struct ndmsg { + __u8 ndm_family; + __u8 ndm_pad1; + __u16 ndm_pad2; + __s32 ndm_ifindex; + __u16 ndm_state; + __u8 ndm_flags; + __u8 ndm_type; +}; + +struct nlmsghdr { + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; +}; + +struct netlink_callback { + struct sk_buff *skb; + const struct nlmsghdr *nlh; + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + void *data; + struct module *module; + struct netlink_ext_ack *extack; + u16 family; + u16 answer_flags; + u32 min_dump_alloc; + unsigned int prev_seq; + unsigned int seq; + int flags; + bool strict_check; + union { + u8 ctx[48]; + long args[6]; }; }; -struct backing_dev_info { - u64 id; - struct rb_node rb_node; - struct list_head bdi_list; - unsigned long ra_pages; - unsigned long io_pages; - struct kref refcnt; - unsigned int capabilities; - unsigned int min_ratio; - unsigned int max_ratio; - unsigned int max_prop_frac; - atomic_long_t tot_write_bandwidth; - unsigned long last_bdp_sleep; - struct bdi_writeback wb; - struct list_head wb_list; - struct xarray cgwb_tree; - struct mutex cgwb_release_mutex; - struct rw_semaphore wb_switch_rwsem; - wait_queue_head_t wb_waitq; - struct device *dev; - char dev_name[64]; - struct device *owner; - struct timer_list laptop_mode_wb_timer; - struct dentry *debug_dir; -}; - -struct static_call_mod { - struct static_call_mod *next; - struct module *mod; - struct static_call_site *sites; -}; - struct netdev_phys_item_id { unsigned char id[32]; unsigned char id_len; }; +enum bpf_netdev_command { + XDP_SETUP_PROG = 0, + XDP_SETUP_PROG_HW = 1, + BPF_OFFLOAD_MAP_ALLOC = 2, + BPF_OFFLOAD_MAP_FREE = 3, + XDP_SETUP_XSK_POOL = 4, +}; + struct bpf_offloaded_map; struct xsk_buff_pool; @@ -9755,6 +12598,54 @@ struct bpf_map_dev_ops { int (*map_delete_elem)(struct bpf_offloaded_map *, void *); }; +struct xdp_mem_info { + u32 type; + u32 id; +}; + +struct xdp_frame { + void *data; + u16 len; + u16 headroom; + u32 metasize; + struct xdp_mem_info mem; + struct net_device *dev_rx; + u32 frame_sz; + u32 flags; +}; + +struct xdp_rxq_info; + +struct xdp_txq_info; + +struct xdp_buff { + void *data; + void *data_end; + void *data_meta; + void *data_hard_start; + struct xdp_rxq_info *rxq; + struct xdp_txq_info *txq; + u32 frame_sz; + u32 flags; +}; + +struct xdp_rxq_info { + struct net_device *dev; + u32 queue_index; + u32 reg_state; + struct xdp_mem_info mem; + unsigned int napi_id; + u32 frag_size; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct xdp_txq_info { + struct net_device *dev; +}; + struct net_device_path_ctx { const struct net_device *dev; u8 daddr[6]; @@ -9765,6 +12656,48 @@ struct net_device_path_ctx { } vlan[2]; }; +enum net_device_path_type { + DEV_PATH_ETHERNET = 0, + DEV_PATH_VLAN = 1, + DEV_PATH_BRIDGE = 2, + DEV_PATH_PPPOE = 3, + DEV_PATH_DSA = 4, + DEV_PATH_MTK_WDMA = 5, +}; + +struct net_device_path { + enum net_device_path_type type; + const struct net_device *dev; + union { + struct { + u16 id; + __be16 proto; + u8 h_dest[6]; + } encap; + struct { + enum { + DEV_PATH_BR_VLAN_KEEP = 0, + DEV_PATH_BR_VLAN_TAG = 1, + DEV_PATH_BR_VLAN_UNTAG = 2, + DEV_PATH_BR_VLAN_UNTAG_HW = 3, + } vlan_mode; + u16 vlan_id; + __be16 vlan_proto; + } bridge; + struct { + int port; + u16 proto; + } dsa; + struct { + u8 wdma_idx; + u8 queue; + u16 wcid; + u8 bss; + u8 amsdu; + } mtk_wdma; + }; +}; + struct skb_shared_hwtstamps { union { ktime_t hwtstamp; @@ -9772,7 +12705,19 @@ struct skb_shared_hwtstamps { }; }; -struct hh_cache; +enum hwtstamp_source { + HWTSTAMP_SOURCE_NETDEV = 0, + HWTSTAMP_SOURCE_PHYLIB = 1, +}; + +struct kernel_hwtstamp_config { + int flags; + int tx_type; + int rx_filter; + struct ifreq *ifr; + bool copied_to_user; + enum hwtstamp_source source; +}; struct header_ops { int (*create)(struct sk_buff *, struct net_device *, unsigned short, const void *, const void *, unsigned int); @@ -9783,64 +12728,6 @@ struct header_ops { __be16 (*parse_protocol)(const struct sk_buff *); }; -struct sk_buff_list { - struct sk_buff *next; - struct sk_buff *prev; -}; - -struct sk_buff_head { - union { - struct { - struct sk_buff *next; - struct sk_buff *prev; - }; - struct sk_buff_list list; - }; - __u32 qlen; - spinlock_t lock; -}; - -struct hh_cache { - unsigned int hh_len; - seqlock_t hh_lock; - unsigned long hh_data[12]; -}; - -struct neigh_table; - -struct neigh_ops; - -struct neighbour { - struct neighbour __attribute__((btf_type_tag("rcu"))) *next; - struct neigh_table *tbl; - struct neigh_parms *parms; - unsigned long confirmed; - unsigned long updated; - rwlock_t lock; - refcount_t refcnt; - unsigned int arp_queue_len_bytes; - struct sk_buff_head arp_queue; - struct timer_list timer; - unsigned long used; - atomic_t probes; - u8 nud_state; - u8 type; - u8 dead; - u8 protocol; - u32 flags; - seqlock_t ha_lock; - unsigned char ha[32]; - struct hh_cache hh; - int (*output)(struct neighbour *, struct sk_buff *); - const struct neigh_ops *ops; - struct list_head gc_list; - struct list_head managed_list; - struct callback_head rcu; - struct net_device *dev; - netdevice_tracker dev_tracker; - u8 primary_key[0]; -}; - struct dql { unsigned int num_queued; unsigned int adj_limit; @@ -10274,70 +13161,6 @@ struct pcpu_dstats { long: 64; }; -struct ipv6_stable_secret { - bool initialized; - struct in6_addr secret; -}; - -struct ipv6_devconf { - __u8 __cacheline_group_begin__ipv6_devconf_read_txrx[0]; - __s32 disable_ipv6; - __s32 hop_limit; - __s32 mtu6; - __s32 forwarding; - __s32 disable_policy; - __s32 proxy_ndp; - __u8 __cacheline_group_end__ipv6_devconf_read_txrx[0]; - __s32 accept_ra; - __s32 accept_redirects; - __s32 autoconf; - __s32 dad_transmits; - __s32 rtr_solicits; - __s32 rtr_solicit_interval; - __s32 rtr_solicit_max_interval; - __s32 rtr_solicit_delay; - __s32 force_mld_version; - __s32 mldv1_unsolicited_report_interval; - __s32 mldv2_unsolicited_report_interval; - __s32 use_tempaddr; - __s32 temp_valid_lft; - __s32 temp_prefered_lft; - __s32 regen_min_advance; - __s32 regen_max_retry; - __s32 max_desync_factor; - __s32 max_addresses; - __s32 accept_ra_defrtr; - __u32 ra_defrtr_metric; - __s32 accept_ra_min_hop_limit; - __s32 accept_ra_min_lft; - __s32 accept_ra_pinfo; - __s32 ignore_routes_with_linkdown; - __s32 accept_source_route; - __s32 accept_ra_from_local; - __s32 drop_unicast_in_l2_multicast; - __s32 accept_dad; - __s32 force_tllao; - __s32 ndisc_notify; - __s32 suppress_frag_ndisc; - __s32 accept_ra_mtu; - __s32 drop_unsolicited_na; - __s32 accept_untracked_na; - struct ipv6_stable_secret stable_secret; - __s32 use_oif_addrs_only; - __s32 keep_addr_on_down; - __s32 seg6_enabled; - __u32 enhanced_dad; - __u32 addr_gen_mode; - __s32 ndisc_tclass; - __s32 rpl_seg_enabled; - __u32 ioam6_id; - __u32 ioam6_id_wide; - __u8 ioam6_enabled; - __u8 ndisc_evict_nocarrier; - __u8 ra_honor_pio_life; - struct ctl_table_header *sysctl_header; -}; - struct icmpv6_mib_device; struct icmpv6msg_mib_device; @@ -10396,6 +13219,56 @@ struct inet6_dev { unsigned int ra_mtu; }; +struct ip6_sf_list; + +struct ifmcaddr6 { + struct in6_addr mca_addr; + struct inet6_dev *idev; + struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *next; + struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_sources; + struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_tomb; + unsigned int mca_sfmode; + unsigned char mca_crcount; + unsigned long mca_sfcount[2]; + struct delayed_work mca_work; + unsigned int mca_flags; + int mca_users; + refcount_t mca_refcnt; + unsigned long mca_cstamp; + unsigned long mca_tstamp; + struct callback_head rcu; +}; + +struct ip6_sf_list { + struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *sf_next; + struct in6_addr sf_addr; + unsigned long sf_count[2]; + unsigned char sf_gsresp; + unsigned char sf_oldin; + unsigned char sf_crcount; + struct callback_head rcu; +}; + +struct ifacaddr6 { + struct in6_addr aca_addr; + struct fib6_info *aca_rt; + struct ifacaddr6 __attribute__((btf_type_tag("rcu"))) *aca_next; + struct hlist_node aca_addr_lst; + int aca_users; + refcount_t aca_refcnt; + unsigned long aca_cstamp; + unsigned long aca_tstamp; + struct callback_head rcu; +}; + +struct icmpv6_mib_device { + atomic_long_t mibs[7]; +}; + +struct icmpv6msg_mib_device { + atomic_long_t mibs[512]; +}; + struct dev_ifalias { struct callback_head rcuhead; char ifalias[0]; @@ -10441,6 +13314,15 @@ struct xdp_metadata_ops { int (*xmo_rx_vlan_tag)(const struct xdp_md *, __be16 *, u16 *); }; +struct xdp_md { + __u32 data; + __u32 data_end; + __u32 data_meta; + __u32 ingress_ifindex; + __u32 rx_queue_index; + __u32 egress_ifindex; +}; + struct xsk_tx_metadata_ops { void (*tmo_request_timestamp)(void *); u64 (*tmo_fill_timestamp)(void *); @@ -10626,6 +13508,35 @@ struct ndisc_ops { void (*prefix_rcv_add_addr)(struct net *, struct net_device *, const struct prefix_info *, struct inet6_dev *, struct in6_addr *, int, u32, bool, bool, __u32, u32, bool); }; +struct nd_opt_hdr { + __u8 nd_opt_type; + __u8 nd_opt_len; +}; + +struct ndisc_options { + struct nd_opt_hdr *nd_opt_array[15]; + struct nd_opt_hdr *nd_useropts; + struct nd_opt_hdr *nd_useropts_end; +}; + +struct prefix_info { + __u8 type; + __u8 length; + __u8 prefix_len; + union { + __u8 flags; + struct { + __u8 reserved: 6; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; + __be32 valid; + __be32 prefered; + __be32 reserved2; + struct in6_addr prefix; +}; + struct ipv4_devconf { void *sysctl; int data[33]; @@ -10740,941 +13651,9 @@ struct rtnl_hw_stats64 { __u64 multicast; }; -enum { - ___GFP_DMA_BIT = 0, - ___GFP_HIGHMEM_BIT = 1, - ___GFP_DMA32_BIT = 2, - ___GFP_MOVABLE_BIT = 3, - ___GFP_RECLAIMABLE_BIT = 4, - ___GFP_HIGH_BIT = 5, - ___GFP_IO_BIT = 6, - ___GFP_FS_BIT = 7, - ___GFP_ZERO_BIT = 8, - ___GFP_UNUSED_BIT = 9, - ___GFP_DIRECT_RECLAIM_BIT = 10, - ___GFP_KSWAPD_RECLAIM_BIT = 11, - ___GFP_WRITE_BIT = 12, - ___GFP_NOWARN_BIT = 13, - ___GFP_RETRY_MAYFAIL_BIT = 14, - ___GFP_NOFAIL_BIT = 15, - ___GFP_NORETRY_BIT = 16, - ___GFP_MEMALLOC_BIT = 17, - ___GFP_COMP_BIT = 18, - ___GFP_NOMEMALLOC_BIT = 19, - ___GFP_HARDWALL_BIT = 20, - ___GFP_THISNODE_BIT = 21, - ___GFP_ACCOUNT_BIT = 22, - ___GFP_ZEROTAGS_BIT = 23, - ___GFP_NOLOCKDEP_BIT = 24, - ___GFP_LAST_BIT = 25, -}; - -enum bpf_tramp_prog_type { - BPF_TRAMP_FENTRY = 0, - BPF_TRAMP_FEXIT = 1, - BPF_TRAMP_MODIFY_RETURN = 2, - BPF_TRAMP_MAX = 3, - BPF_TRAMP_REPLACE = 4, -}; - -enum { - BPF_REG_0 = 0, - BPF_REG_1 = 1, - BPF_REG_2 = 2, - BPF_REG_3 = 3, - BPF_REG_4 = 4, - BPF_REG_5 = 5, - BPF_REG_6 = 6, - BPF_REG_7 = 7, - BPF_REG_8 = 8, - BPF_REG_9 = 9, - BPF_REG_10 = 10, - __MAX_BPF_REG = 11, -}; - -enum cfi_mode { - CFI_DEFAULT = 0, - CFI_OFF = 1, - CFI_KCFI = 2, - CFI_FINEIBT = 3, -}; - -enum kmalloc_cache_type { - KMALLOC_NORMAL = 0, - KMALLOC_RANDOM_START = 0, - KMALLOC_RANDOM_END = 0, - KMALLOC_RECLAIM = 1, - KMALLOC_DMA = 2, - KMALLOC_CGROUP = 3, - NR_KMALLOC_TYPES = 4, -}; - -enum bpf_addr_space_cast { - BPF_ADDR_SPACE_CAST = 1, -}; - -enum { - DUMP_PREFIX_NONE = 0, - DUMP_PREFIX_ADDRESS = 1, - DUMP_PREFIX_OFFSET = 2, -}; - -enum bpf_jit_poke_reason { - BPF_POKE_REASON_TAIL_CALL = 0, -}; - -struct bpf_array_aux; - -struct bpf_array { - struct bpf_map map; - u32 elem_size; - u32 index_mask; - struct bpf_array_aux *aux; - union { - struct { - struct {} __empty_value; - char value[0]; - }; - struct { - struct {} __empty_ptrs; - void *ptrs[0]; - }; - struct { - struct {} __empty_pptrs; - void __attribute__((btf_type_tag("percpu"))) *pptrs[0]; - }; - }; -}; - -struct bpf_array_aux { - struct list_head poke_progs; - struct bpf_map *map; - struct mutex poke_mutex; - struct work_struct work; -}; - -typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int); - -struct bpf_tramp_link; - -struct bpf_tramp_links { - struct bpf_tramp_link *links[38]; - int nr_links; -}; - -struct bpf_link_ops; - -struct bpf_link { - atomic64_t refcnt; - u32 id; - enum bpf_link_type type; - const struct bpf_link_ops *ops; - struct bpf_prog *prog; - struct work_struct work; -}; - -struct bpf_tramp_link { - struct bpf_link link; - struct hlist_node tramp_hlist; - u64 cookie; -}; - -struct bpf_link_info; - -struct bpf_link_ops { - void (*release)(struct bpf_link *); - void (*dealloc)(struct bpf_link *); - int (*detach)(struct bpf_link *); - int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); - void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); - int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); - int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); -}; - -struct bpf_link_info { - __u32 type; - __u32 id; - __u32 prog_id; - union { - struct { - __u64 tp_name; - __u32 tp_name_len; - } raw_tracepoint; - struct { - __u32 attach_type; - __u32 target_obj_id; - __u32 target_btf_id; - } tracing; - struct { - __u64 cgroup_id; - __u32 attach_type; - } cgroup; - struct { - __u64 target_name; - __u32 target_name_len; - union { - struct { - __u32 map_id; - } map; - }; - union { - struct { - __u64 cgroup_id; - __u32 order; - } cgroup; - struct { - __u32 tid; - __u32 pid; - } task; - }; - } iter; - struct { - __u32 netns_ino; - __u32 attach_type; - } netns; - struct { - __u32 ifindex; - } xdp; - struct { - __u32 map_id; - } struct_ops; - struct { - __u32 pf; - __u32 hooknum; - __s32 priority; - __u32 flags; - } netfilter; - struct { - __u64 addrs; - __u32 count; - __u32 flags; - __u64 missed; - __u64 cookies; - } kprobe_multi; - struct { - __u64 path; - __u64 offsets; - __u64 ref_ctr_offsets; - __u64 cookies; - __u32 path_size; - __u32 count; - __u32 flags; - __u32 pid; - } uprobe_multi; - struct { - __u32 type; - union { - struct { - __u64 file_name; - __u32 name_len; - __u32 offset; - __u64 cookie; - } uprobe; - struct { - __u64 func_name; - __u32 name_len; - __u32 offset; - __u64 addr; - __u64 missed; - __u64 cookie; - } kprobe; - struct { - __u64 tp_name; - __u32 name_len; - __u64 cookie; - } tracepoint; - struct { - __u64 config; - __u32 type; - __u64 cookie; - } event; - }; - } perf_event; - struct { - __u32 ifindex; - __u32 attach_type; - } tcx; - struct { - __u32 ifindex; - __u32 attach_type; - } netkit; - }; -}; - -typedef int (*cmp_func_t)(const void *, const void *); - -typedef void (*swap_func_t)(void *, void *, int); - -struct jit_context { - int cleanup_addr; - int tail_call_direct_label; - int tail_call_indirect_label; -}; - -struct bpf_binary_header { - u32 size; - long: 0; - u8 image[0]; -}; - -struct bpf_tramp_run_ctx; - -typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *); - -struct bpf_tramp_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; - struct bpf_run_ctx *saved_run_ctx; -}; - -typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *); - -struct x64_jit_data { - struct bpf_binary_header *rw_header; - struct bpf_binary_header *header; - int *addrs; - u8 *image; - int proglen; - struct jit_context ctx; -}; - -enum { - MM_FILEPAGES = 0, - MM_ANONPAGES = 1, - MM_SWAPENTS = 2, - MM_SHMEMPAGES = 3, - NR_MM_COUNTERS = 4, -}; - -typedef u64 uint64_t; - -typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); - -struct poll_table_struct { - poll_queue_proc _qproc; - __poll_t _key; -}; - -typedef __u64 __addrpair; - -typedef __u32 __portpair; - -struct hlist_nulls_node { - struct hlist_nulls_node *next; - struct hlist_nulls_node **pprev; -}; - -struct proto; - -struct sock_common { - union { - __addrpair skc_addrpair; - struct { - __be32 skc_daddr; - __be32 skc_rcv_saddr; - }; - }; - union { - unsigned int skc_hash; - __u16 skc_u16hashes[2]; - }; - union { - __portpair skc_portpair; - struct { - __be16 skc_dport; - __u16 skc_num; - }; - }; - unsigned short skc_family; - volatile unsigned char skc_state; - unsigned char skc_reuse: 4; - unsigned char skc_reuseport: 1; - unsigned char skc_ipv6only: 1; - unsigned char skc_net_refcnt: 1; - int skc_bound_dev_if; - union { - struct hlist_node skc_bind_node; - struct hlist_node skc_portaddr_node; - }; - struct proto *skc_prot; - possible_net_t skc_net; - struct in6_addr skc_v6_daddr; - struct in6_addr skc_v6_rcv_saddr; - atomic64_t skc_cookie; - union { - unsigned long skc_flags; - struct sock *skc_listener; - struct inet_timewait_death_row *skc_tw_dr; - }; - int skc_dontcopy_begin[0]; - union { - struct hlist_node skc_node; - struct hlist_nulls_node skc_nulls_node; - }; - unsigned short skc_tx_queue_mapping; - unsigned short skc_rx_queue_mapping; - union { - int skc_incoming_cpu; - u32 skc_rcv_wnd; - u32 skc_tw_rcv_nxt; - }; - refcount_t skc_refcnt; - int skc_dontcopy_end[0]; - union { - u32 skc_rxhash; - u32 skc_window_clamp; - u32 skc_tw_snd_nxt; - }; -}; - -typedef struct { - spinlock_t slock; - int owned; - wait_queue_head_t wq; - struct lockdep_map dep_map; -} socket_lock_t; - -struct sock_cgroup_data { - struct cgroup *cgroup; - u32 classid; -}; - -typedef struct {} netns_tracker; - -struct sk_filter; - -struct socket_wq; - -struct socket; - -struct sock_reuseport; - -struct sock { - struct sock_common __sk_common; - __u8 __cacheline_group_begin__sock_write_rx[0]; - atomic_t sk_drops; - __s32 sk_peek_off; - struct sk_buff_head sk_error_queue; - struct sk_buff_head sk_receive_queue; - struct { - atomic_t rmem_alloc; - int len; - struct sk_buff *head; - struct sk_buff *tail; - } sk_backlog; - __u8 __cacheline_group_end__sock_write_rx[0]; - __u8 __cacheline_group_begin__sock_read_rx[0]; - struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_rx_dst; - int sk_rx_dst_ifindex; - u32 sk_rx_dst_cookie; - unsigned int sk_ll_usec; - unsigned int sk_napi_id; - u16 sk_busy_poll_budget; - u8 sk_prefer_busy_poll; - u8 sk_userlocks; - int sk_rcvbuf; - struct sk_filter __attribute__((btf_type_tag("rcu"))) *sk_filter; - union { - struct socket_wq __attribute__((btf_type_tag("rcu"))) *sk_wq; - struct socket_wq *sk_wq_raw; - }; - void (*sk_data_ready)(struct sock *); - long sk_rcvtimeo; - int sk_rcvlowat; - __u8 __cacheline_group_end__sock_read_rx[0]; - __u8 __cacheline_group_begin__sock_read_rxtx[0]; - int sk_err; - struct socket *sk_socket; - struct mem_cgroup *sk_memcg; - __u8 __cacheline_group_end__sock_read_rxtx[0]; - __u8 __cacheline_group_begin__sock_write_rxtx[0]; - socket_lock_t sk_lock; - u32 sk_reserved_mem; - int sk_forward_alloc; - u32 sk_tsflags; - __u8 __cacheline_group_end__sock_write_rxtx[0]; - __u8 __cacheline_group_begin__sock_write_tx[0]; - int sk_write_pending; - atomic_t sk_omem_alloc; - int sk_sndbuf; - int sk_wmem_queued; - refcount_t sk_wmem_alloc; - unsigned long sk_tsq_flags; - union { - struct sk_buff *sk_send_head; - struct rb_root tcp_rtx_queue; - }; - struct sk_buff_head sk_write_queue; - u32 sk_dst_pending_confirm; - u32 sk_pacing_status; - struct page_frag sk_frag; - struct timer_list sk_timer; - unsigned long sk_pacing_rate; - atomic_t sk_zckey; - atomic_t sk_tskey; - __u8 __cacheline_group_end__sock_write_tx[0]; - __u8 __cacheline_group_begin__sock_read_tx[0]; - unsigned long sk_max_pacing_rate; - long sk_sndtimeo; - u32 sk_priority; - u32 sk_mark; - struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_dst_cache; - netdev_features_t sk_route_caps; - u16 sk_gso_type; - u16 sk_gso_max_segs; - unsigned int sk_gso_max_size; - gfp_t sk_allocation; - u32 sk_txhash; - u8 sk_pacing_shift; - bool sk_use_task_frag; - __u8 __cacheline_group_end__sock_read_tx[0]; - u8 sk_gso_disabled: 1; - u8 sk_kern_sock: 1; - u8 sk_no_check_tx: 1; - u8 sk_no_check_rx: 1; - u8 sk_shutdown; - u16 sk_type; - u16 sk_protocol; - unsigned long sk_lingertime; - struct proto *sk_prot_creator; - rwlock_t sk_callback_lock; - int sk_err_soft; - u32 sk_ack_backlog; - u32 sk_max_ack_backlog; - kuid_t sk_uid; - spinlock_t sk_peer_lock; - int sk_bind_phc; - struct pid *sk_peer_pid; - const struct cred *sk_peer_cred; - ktime_t sk_stamp; - int sk_disconnects; - u8 sk_txrehash; - u8 sk_clockid; - u8 sk_txtime_deadline_mode: 1; - u8 sk_txtime_report_errors: 1; - u8 sk_txtime_unused: 6; - void *sk_user_data; - struct sock_cgroup_data sk_cgrp_data; - void (*sk_state_change)(struct sock *); - void (*sk_write_space)(struct sock *); - void (*sk_error_report)(struct sock *); - int (*sk_backlog_rcv)(struct sock *, struct sk_buff *); - void (*sk_destruct)(struct sock *); - struct sock_reuseport __attribute__((btf_type_tag("rcu"))) *sk_reuseport_cb; - struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *sk_bpf_storage; - struct callback_head sk_rcu; - netns_tracker ns_tracker; -}; - -struct smc_hashinfo; - -typedef struct { - union { - void *kernel; - void __attribute__((btf_type_tag("user"))) *user; - }; - bool is_kernel: 1; -} sockptr_t; - -typedef unsigned int slab_flags_t; - -struct msghdr; - -struct sk_psock; - -struct request_sock_ops; - -struct timewait_sock_ops; - -struct raw_hashinfo; - -struct proto { - void (*close)(struct sock *, long); - int (*pre_connect)(struct sock *, struct sockaddr *, int); - int (*connect)(struct sock *, struct sockaddr *, int); - int (*disconnect)(struct sock *, int); - struct sock * (*accept)(struct sock *, int, int *, bool); - int (*ioctl)(struct sock *, int, int *); - int (*init)(struct sock *); - void (*destroy)(struct sock *); - void (*shutdown)(struct sock *, int); - int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*keepalive)(struct sock *, int); - int (*sendmsg)(struct sock *, struct msghdr *, size_t); - int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *); - void (*splice_eof)(struct socket *); - int (*bind)(struct sock *, struct sockaddr *, int); - int (*bind_add)(struct sock *, struct sockaddr *, int); - int (*backlog_rcv)(struct sock *, struct sk_buff *); - bool (*bpf_bypass_getsockopt)(int, int); - void (*release_cb)(struct sock *); - int (*hash)(struct sock *); - void (*unhash)(struct sock *); - void (*rehash)(struct sock *); - int (*get_port)(struct sock *, unsigned short); - void (*put_port)(struct sock *); - int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); - unsigned int inuse_idx; - bool (*stream_memory_free)(const struct sock *, int); - bool (*sock_is_readable)(struct sock *); - void (*enter_memory_pressure)(struct sock *); - void (*leave_memory_pressure)(struct sock *); - atomic_long_t *memory_allocated; - int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; - struct percpu_counter *sockets_allocated; - unsigned long *memory_pressure; - long *sysctl_mem; - int *sysctl_wmem; - int *sysctl_rmem; - u32 sysctl_wmem_offset; - u32 sysctl_rmem_offset; - int max_header; - bool no_autobind; - struct kmem_cache *slab; - unsigned int obj_size; - unsigned int ipv6_pinfo_offset; - slab_flags_t slab_flags; - unsigned int useroffset; - unsigned int usersize; - unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; - struct request_sock_ops *rsk_prot; - struct timewait_sock_ops *twsk_prot; - union { - struct inet_hashinfo *hashinfo; - struct udp_table *udp_table; - struct raw_hashinfo *raw_hash; - struct smc_hashinfo *smc_hash; - } h; - struct module *owner; - char name[32]; - struct list_head node; - int (*diag_destroy)(struct sock *, int); -}; - -struct ubuf_info; - -struct msghdr { - void *msg_name; - int msg_namelen; - int msg_inq; - struct iov_iter msg_iter; - union { - void *msg_control; - void __attribute__((btf_type_tag("user"))) *msg_control_user; - }; - bool msg_control_is_user: 1; - bool msg_get_inq: 1; - unsigned int msg_flags; - __kernel_size_t msg_controllen; - struct kiocb *msg_iocb; - struct ubuf_info *msg_ubuf; - int (*sg_from_iter)(struct sock *, struct sk_buff *, struct iov_iter *, size_t); -}; - -struct ubuf_info { - void (*callback)(struct sk_buff *, struct ubuf_info *, bool); - refcount_t refcnt; - u8 flags; -}; - -typedef enum { - SS_FREE = 0, - SS_UNCONNECTED = 1, - SS_CONNECTING = 2, - SS_CONNECTED = 3, - SS_DISCONNECTING = 4, -} socket_state; - -struct fasync_struct; - -struct socket_wq { - wait_queue_head_t wait; - struct fasync_struct *fasync_list; - unsigned long flags; - struct callback_head rcu; - long: 64; - long: 64; -}; - -struct proto_ops; - -struct socket { - socket_state state; - short type; - unsigned long flags; - struct file *file; - struct sock *sk; - const struct proto_ops *ops; - long: 64; - long: 64; - long: 64; - struct socket_wq wq; -}; - -typedef struct { - size_t written; - size_t count; - union { - char __attribute__((btf_type_tag("user"))) *buf; - void *data; - } arg; - int error; -} read_descriptor_t; - -typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); - -typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); - -struct proto_ops { - int family; - struct module *owner; - int (*release)(struct socket *); - int (*bind)(struct socket *, struct sockaddr *, int); - int (*connect)(struct socket *, struct sockaddr *, int, int); - int (*socketpair)(struct socket *, struct socket *); - int (*accept)(struct socket *, struct socket *, int, bool); - int (*getname)(struct socket *, struct sockaddr *, int); - __poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *); - int (*ioctl)(struct socket *, unsigned int, unsigned long); - int (*gettstamp)(struct socket *, void __attribute__((btf_type_tag("user"))) *, bool, bool); - int (*listen)(struct socket *, int); - int (*shutdown)(struct socket *, int); - int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct socket *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*show_fdinfo)(struct seq_file *, struct socket *); - int (*sendmsg)(struct socket *, struct msghdr *, size_t); - int (*recvmsg)(struct socket *, struct msghdr *, size_t, int); - int (*mmap)(struct file *, struct socket *, struct vm_area_struct *); - ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct socket *); - int (*set_peek_off)(struct sock *, int); - int (*peek_len)(struct socket *); - int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); - int (*read_skb)(struct sock *, skb_read_actor_t); - int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); - int (*set_rcvlowat)(struct sock *, int); -}; - -struct fasync_struct { - rwlock_t fa_lock; - int magic; - int fa_fd; - struct fasync_struct *fa_next; - struct file *fa_file; - struct callback_head fa_rcu; -}; - -struct fib_notifier_ops { - int family; - struct list_head list; - unsigned int (*fib_seq_read)(struct net *); - int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *); - struct module *owner; - struct callback_head rcu; -}; - -struct neigh_parms { - possible_net_t net; - struct net_device *dev; - netdevice_tracker dev_tracker; - struct list_head list; - int (*neigh_setup)(struct neighbour *); - struct neigh_table *tbl; - void *sysctl_table; - int dead; - refcount_t refcnt; - struct callback_head callback_head; - int reachable_time; - u32 qlen; - int data[14]; - unsigned long data_state[1]; -}; - -struct pneigh_entry; - -struct neigh_statistics; - -struct neigh_hash_table; - -struct neigh_table { - int family; - unsigned int entry_size; - unsigned int key_len; - __be16 protocol; - __u32 (*hash)(const void *, const struct net_device *, __u32 *); - bool (*key_eq)(const struct neighbour *, const void *); - int (*constructor)(struct neighbour *); - int (*pconstructor)(struct pneigh_entry *); - void (*pdestructor)(struct pneigh_entry *); - void (*proxy_redo)(struct sk_buff *); - int (*is_multicast)(const void *); - bool (*allow_add)(const struct net_device *, struct netlink_ext_ack *); - char *id; - struct neigh_parms parms; - struct list_head parms_list; - int gc_interval; - int gc_thresh1; - int gc_thresh2; - int gc_thresh3; - unsigned long last_flush; - struct delayed_work gc_work; - struct delayed_work managed_work; - struct timer_list proxy_timer; - struct sk_buff_head proxy_queue; - atomic_t entries; - atomic_t gc_entries; - struct list_head gc_list; - struct list_head managed_list; - rwlock_t lock; - unsigned long last_rand; - struct neigh_statistics __attribute__((btf_type_tag("percpu"))) *stats; - struct neigh_hash_table __attribute__((btf_type_tag("rcu"))) *nht; - struct pneigh_entry **phash_buckets; -}; - -struct pneigh_entry { - struct pneigh_entry *next; - possible_net_t net; - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; - u8 protocol; - u32 key[0]; -}; - -struct neigh_statistics { - unsigned long allocs; - unsigned long destroys; - unsigned long hash_grows; - unsigned long res_failed; - unsigned long lookups; - unsigned long hits; - unsigned long rcv_probes_mcast; - unsigned long rcv_probes_ucast; - unsigned long periodic_gc_runs; - unsigned long forced_gc_runs; - unsigned long unres_discards; - unsigned long table_fulls; -}; - -struct neigh_hash_table { - struct neighbour __attribute__((btf_type_tag("rcu"))) **hash_buckets; - unsigned int hash_shift; - __u32 hash_rnd[4]; - struct callback_head rcu; -}; - -struct neigh_ops { - int family; - void (*solicit)(struct neighbour *, struct sk_buff *); - void (*error_report)(struct neighbour *, struct sk_buff *); - int (*output)(struct neighbour *, struct sk_buff *); - int (*connected_output)(struct neighbour *, struct sk_buff *); -}; - -struct sk_filter { - refcount_t refcnt; - struct callback_head rcu; - struct bpf_prog *prog; -}; - -struct sock_reuseport { - struct callback_head rcu; - u16 max_socks; - u16 num_socks; - u16 num_closed_socks; - u16 incoming_cpu; - unsigned int synq_overflow_ts; - unsigned int reuseport_id; - unsigned int bind_inany: 1; - unsigned int has_conns: 1; - struct bpf_prog __attribute__((btf_type_tag("rcu"))) *prog; - struct sock *socks[0]; -}; - -struct xdp_mem_info { - u32 type; - u32 id; -}; - -struct xdp_frame { - void *data; +struct sock_fprog_kern { u16 len; - u16 headroom; - u32 metasize; - struct xdp_mem_info mem; - struct net_device *dev_rx; - u32 frame_sz; - u32 flags; -}; - -struct xdp_rxq_info; - -struct xdp_txq_info; - -struct xdp_buff { - void *data; - void *data_end; - void *data_meta; - void *data_hard_start; - struct xdp_rxq_info *rxq; - struct xdp_txq_info *txq; - u32 frame_sz; - u32 flags; -}; - -struct xdp_rxq_info { - struct net_device *dev; - u32 queue_index; - u32 reg_state; - struct xdp_mem_info mem; - unsigned int napi_id; - u32 frag_size; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct xdp_txq_info { - struct net_device *dev; -}; - -enum hwtstamp_source { - HWTSTAMP_SOURCE_NETDEV = 0, - HWTSTAMP_SOURCE_PHYLIB = 1, -}; - -struct kernel_hwtstamp_config { - int flags; - int tx_type; - int rx_filter; - struct ifreq *ifr; - bool copied_to_user; - enum hwtstamp_source source; -}; - -struct bpf_mprog_cp { - struct bpf_link *link; -}; - -struct bpf_mprog_bundle { - struct bpf_mprog_entry a; - struct bpf_mprog_entry b; - struct bpf_mprog_cp cp_items[64]; - struct bpf_prog *ref; - atomic64_t revision; - u32 count; -}; - -struct xdp_md { - __u32 data; - __u32 data_end; - __u32 data_meta; - __u32 ingress_ifindex; - __u32 rx_queue_index; - __u32 egress_ifindex; + struct sock_filter *filter; }; struct bpf_cgroup_storage_key { @@ -11704,554 +13683,818 @@ struct bpf_storage_buffer { char data[0]; }; -struct fdtable { - unsigned int max_fds; - struct file __attribute__((btf_type_tag("rcu"))) **fd; - unsigned long *close_on_exec; - unsigned long *open_fds; - unsigned long *full_fds_bits; - struct callback_head rcu; +struct bpf_flow_keys; + +struct bpf_sock; + +struct __sk_buff { + __u32 len; + __u32 pkt_type; + __u32 mark; + __u32 queue_mapping; + __u32 protocol; + __u32 vlan_present; + __u32 vlan_tci; + __u32 vlan_proto; + __u32 priority; + __u32 ingress_ifindex; + __u32 ifindex; + __u32 tc_index; + __u32 cb[5]; + __u32 hash; + __u32 tc_classid; + __u32 data; + __u32 data_end; + __u32 napi_id; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 data_meta; + union { + struct bpf_flow_keys *flow_keys; + }; + __u64 tstamp; + __u32 wire_len; + __u32 gso_segs; + union { + struct bpf_sock *sk; + }; + __u32 gso_size; + __u8 tstamp_type; + __u64 hwtstamp; }; -struct files_struct { - atomic_t count; - bool resize_in_progress; - wait_queue_head_t resize_wait; - struct fdtable __attribute__((btf_type_tag("rcu"))) *fdt; - struct fdtable fdtab; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - spinlock_t file_lock; - unsigned int next_fd; - unsigned long close_on_exec_init[1]; - unsigned long open_fds_init[1]; - unsigned long full_fds_bits_init[1]; - struct file __attribute__((btf_type_tag("rcu"))) *fd_array[64]; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct perf_event_groups { - struct rb_root tree; - u64 index; -}; - -struct perf_event_context { - raw_spinlock_t lock; - struct mutex mutex; - struct list_head pmu_ctx_list; - struct perf_event_groups pinned_groups; - struct perf_event_groups flexible_groups; - struct list_head event_list; - int nr_events; - int nr_user; - int is_active; - int nr_task_data; - int nr_stat; - int nr_freq; - int rotate_disable; - refcount_t refcount; - struct task_struct *task; - u64 time; - u64 timestamp; - u64 timeoffset; - struct perf_event_context *parent_ctx; - u64 parent_gen; - u64 generation; - int pin_count; - int nr_cgroups; - struct callback_head callback_head; - local_t nr_pending; -}; - -enum perf_event_state { - PERF_EVENT_STATE_DEAD = -4, - PERF_EVENT_STATE_EXIT = -3, - PERF_EVENT_STATE_ERROR = -2, - PERF_EVENT_STATE_OFF = -1, - PERF_EVENT_STATE_INACTIVE = 0, - PERF_EVENT_STATE_ACTIVE = 1, -}; - -struct perf_event_attr { +struct bpf_sock { + __u32 bound_dev_if; + __u32 family; __u32 type; + __u32 protocol; + __u32 mark; + __u32 priority; + __u32 src_ip4; + __u32 src_ip6[4]; + __u32 src_port; + __be16 dst_port; + __u32 dst_ip4; + __u32 dst_ip6[4]; + __u32 state; + __s32 rx_queue_mapping; +}; + +struct bpf_sock_addr { + __u32 user_family; + __u32 user_ip4; + __u32 user_ip6[4]; + __u32 user_port; + __u32 family; + __u32 type; + __u32 protocol; + __u32 msg_src_ip4; + __u32 msg_src_ip6[4]; + union { + struct bpf_sock *sk; + }; +}; + +struct bpf_sock_addr_kern { + struct sock *sk; + struct sockaddr *uaddr; + u64 tmp_reg; + void *t_ctx; + u32 uaddrlen; +}; + +struct bpf_sock_ops { + __u32 op; + union { + __u32 args[4]; + __u32 reply; + __u32 replylong[4]; + }; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 is_fullsock; + __u32 snd_cwnd; + __u32 srtt_us; + __u32 bpf_sock_ops_cb_flags; + __u32 state; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u32 sk_txhash; + __u64 bytes_received; + __u64 bytes_acked; + union { + struct bpf_sock *sk; + }; + union { + void *skb_data; + }; + union { + void *skb_data_end; + }; + __u32 skb_len; + __u32 skb_tcp_flags; + __u64 skb_hwtstamp; +}; + +struct bpf_sock_ops_kern { + struct sock *sk; + union { + u32 args[4]; + u32 reply; + u32 replylong[4]; + }; + struct sk_buff *syn_skb; + struct sk_buff *skb; + void *skb_data_end; + u8 op; + u8 is_fullsock; + u8 remaining_opt_len; + u64 temp; +}; + +struct sk_msg_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; __u32 size; - __u64 config; union { - __u64 sample_period; - __u64 sample_freq; + struct bpf_sock *sk; }; - __u64 sample_type; - __u64 read_format; - __u64 disabled: 1; - __u64 inherit: 1; - __u64 pinned: 1; - __u64 exclusive: 1; - __u64 exclude_user: 1; - __u64 exclude_kernel: 1; - __u64 exclude_hv: 1; - __u64 exclude_idle: 1; - __u64 mmap: 1; - __u64 comm: 1; - __u64 freq: 1; - __u64 inherit_stat: 1; - __u64 enable_on_exec: 1; - __u64 task: 1; - __u64 watermark: 1; - __u64 precise_ip: 2; - __u64 mmap_data: 1; - __u64 sample_id_all: 1; - __u64 exclude_host: 1; - __u64 exclude_guest: 1; - __u64 exclude_callchain_kernel: 1; - __u64 exclude_callchain_user: 1; - __u64 mmap2: 1; - __u64 comm_exec: 1; - __u64 use_clockid: 1; - __u64 context_switch: 1; - __u64 write_backward: 1; - __u64 namespaces: 1; - __u64 ksymbol: 1; - __u64 bpf_event: 1; - __u64 aux_output: 1; - __u64 cgroup: 1; - __u64 text_poke: 1; - __u64 build_id: 1; - __u64 inherit_thread: 1; - __u64 remove_on_exec: 1; - __u64 sigtrap: 1; - __u64 __reserved_1: 26; - union { - __u32 wakeup_events; - __u32 wakeup_watermark; - }; - __u32 bp_type; - union { - __u64 bp_addr; - __u64 kprobe_func; - __u64 uprobe_path; - __u64 config1; - }; - union { - __u64 bp_len; - __u64 kprobe_addr; - __u64 probe_offset; - __u64 config2; - }; - __u64 branch_sample_type; - __u64 sample_regs_user; - __u32 sample_stack_user; - __s32 clockid; - __u64 sample_regs_intr; - __u32 aux_watermark; - __u16 sample_max_stack; - __u16 __reserved_2; - __u32 aux_sample_size; - __u32 __reserved_3; - __u64 sig_data; - __u64 config3; }; -struct hw_perf_event_extra { - u64 config; - unsigned int reg; - int alloc; - int idx; +struct bpf_flow_dissector { + struct bpf_flow_keys *flow_keys; + const struct sk_buff *skb; + const void *data; + const void *data_end; }; -struct arch_hw_breakpoint { - unsigned long address; - unsigned long mask; - u8 len; - u8 type; +typedef struct pt_regs bpf_user_pt_regs_t; + +struct bpf_perf_event_data { + bpf_user_pt_regs_t regs; + __u64 sample_period; + __u64 addr; }; -struct rhlist_head { - struct rhash_head rhead; - struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; -}; - -struct hw_perf_event { - union { - struct { - u64 config; - u64 last_tag; - unsigned long config_base; - unsigned long event_base; - int event_base_rdpmc; - int idx; - int last_cpu; - int flags; - struct hw_perf_event_extra extra_reg; - struct hw_perf_event_extra branch_reg; - }; - struct { - struct hrtimer hrtimer; - }; - struct { - struct list_head tp_list; - }; - struct { - u64 pwr_acc; - u64 ptsc; - }; - struct { - struct arch_hw_breakpoint info; - struct rhlist_head bp_list; - }; - struct { - u8 iommu_bank; - u8 iommu_cntr; - u16 padding; - u64 conf; - u64 conf1; - }; - }; - struct task_struct *target; - void *addr_filters; - unsigned long addr_filters_gen; - int state; - local64_t prev_count; - u64 sample_period; - union { - struct { - u64 last_period; - local64_t period_left; - }; - struct { - u64 saved_metric; - u64 saved_slots; - }; - }; - u64 interrupts_seq; - u64 interrupts; - u64 freq_time_stamp; - u64 freq_count_stamp; -}; - -struct irq_work { - struct __call_single_node node; - void (*func)(struct irq_work *); - struct rcuwait irqwait; -}; - -struct perf_addr_filters_head { - struct list_head list; - raw_spinlock_t lock; - unsigned int nr_file_filters; -}; - -struct perf_sample_data; - -typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); - -struct pmu; - -struct perf_event_pmu_context; - -struct perf_buffer; - -struct perf_addr_filter_range; - -struct event_filter; - -struct perf_cgroup; - -struct perf_event { - struct list_head event_entry; - struct list_head sibling_list; - struct list_head active_list; - struct rb_node group_node; - u64 group_index; - struct list_head migrate_entry; - struct hlist_node hlist_entry; - struct list_head active_entry; - int nr_siblings; - int event_caps; - int group_caps; - unsigned int group_generation; - struct perf_event *group_leader; - struct pmu *pmu; - void *pmu_private; - enum perf_event_state state; - unsigned int attach_state; - local64_t count; - atomic64_t child_count; - u64 total_time_enabled; - u64 total_time_running; - u64 tstamp; - struct perf_event_attr attr; - u16 header_size; - u16 id_header_size; - u16 read_size; - struct hw_perf_event hw; - struct perf_event_context *ctx; - struct perf_event_pmu_context *pmu_ctx; - atomic_long_t refcount; - atomic64_t child_total_time_enabled; - atomic64_t child_total_time_running; - struct mutex child_mutex; - struct list_head child_list; - struct perf_event *parent; - int oncpu; - int cpu; - struct list_head owner_entry; - struct task_struct *owner; - struct mutex mmap_mutex; - atomic_t mmap_count; - struct perf_buffer *rb; - struct list_head rb_entry; - unsigned long rcu_batches; - int rcu_pending; - wait_queue_head_t waitq; - struct fasync_struct *fasync; - unsigned int pending_wakeup; - unsigned int pending_kill; - unsigned int pending_disable; - unsigned int pending_sigtrap; - unsigned long pending_addr; - struct irq_work pending_irq; - struct callback_head pending_task; - unsigned int pending_work; - atomic_t event_limit; - struct perf_addr_filters_head addr_filters; - struct perf_addr_filter_range *addr_filter_ranges; - unsigned long addr_filters_gen; - struct perf_event *aux_event; - void (*destroy)(struct perf_event *); - struct callback_head callback_head; - struct pid_namespace *ns; - u64 id; - atomic64_t lost_samples; - u64 (*clock)(); - perf_overflow_handler_t overflow_handler; - void *overflow_handler_context; - perf_overflow_handler_t orig_overflow_handler; - struct bpf_prog *prog; - u64 bpf_cookie; - struct trace_event_call *tp_event; - struct event_filter *filter; - struct ftrace_ops ftrace_ops; - struct perf_cgroup *cgrp; - struct list_head sb_list; - __u32 orig_type; -}; - -struct perf_cpu_pmu_context; - -struct perf_output_handle; - -struct pmu { - struct list_head entry; - struct module *module; - struct device *dev; - struct device *parent; - const struct attribute_group **attr_groups; - const struct attribute_group **attr_update; - const char *name; - int type; - int capabilities; - int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; - struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; - atomic_t exclusive_cnt; - int task_ctx_nr; - int hrtimer_interval_ms; - unsigned int nr_addr_filters; - void (*pmu_enable)(struct pmu *); - void (*pmu_disable)(struct pmu *); - int (*event_init)(struct perf_event *); - void (*event_mapped)(struct perf_event *, struct mm_struct *); - void (*event_unmapped)(struct perf_event *, struct mm_struct *); - int (*add)(struct perf_event *, int); - void (*del)(struct perf_event *, int); - void (*start)(struct perf_event *, int); - void (*stop)(struct perf_event *, int); - void (*read)(struct perf_event *); - void (*start_txn)(struct pmu *, unsigned int); - int (*commit_txn)(struct pmu *); - void (*cancel_txn)(struct pmu *); - int (*event_idx)(struct perf_event *); - void (*sched_task)(struct perf_event_pmu_context *, bool); - struct kmem_cache *task_ctx_cache; - void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); - void * (*setup_aux)(struct perf_event *, void **, int, bool); - void (*free_aux)(void *); - long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); - int (*addr_filters_validate)(struct list_head *); - void (*addr_filters_sync)(struct perf_event *); - int (*aux_output_match)(struct perf_event *); - bool (*filter)(struct pmu *, int); - int (*check_period)(struct perf_event *, u64); -}; - -struct perf_event_pmu_context { - struct pmu *pmu; - struct perf_event_context *ctx; - struct list_head pmu_ctx_entry; - struct list_head pinned_active; - struct list_head flexible_active; - unsigned int embedded: 1; - unsigned int nr_events; - unsigned int nr_cgroups; - atomic_t refcount; - struct callback_head callback_head; - void *task_ctx_data; - int rotate_necessary; -}; - -struct perf_cpu_pmu_context { - struct perf_event_pmu_context epc; - struct perf_event_pmu_context *task_epc; - struct list_head sched_cb_entry; - int sched_cb_usage; - int active_oncpu; - int exclusive; - raw_spinlock_t hrtimer_lock; - struct hrtimer hrtimer; - ktime_t hrtimer_interval; - unsigned int hrtimer_active; -}; - -struct perf_output_handle { +struct bpf_perf_event_data_kern { + bpf_user_pt_regs_t *regs; + struct perf_sample_data *data; struct perf_event *event; - struct perf_buffer *rb; - unsigned long wakeup; - unsigned long size; - u64 aux_flags; +}; + +struct bpf_raw_tracepoint_args { + __u64 args[0]; +}; + +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; +}; + +struct bpf_sysctl { + __u32 write; + __u32 file_pos; +}; + +struct bpf_sysctl_kern { + struct ctl_table_header *head; + struct ctl_table *table; + void *cur_val; + size_t cur_len; + void *new_val; + size_t new_len; + int new_updated; + int write; + loff_t *ppos; + u64 tmp_reg; +}; + +struct bpf_sockopt { union { - void *addr; - unsigned long head; + struct bpf_sock *sk; }; - int page; -}; - -struct perf_addr_filter_range { - unsigned long start; - unsigned long size; -}; - -union perf_sample_weight { - __u64 full; - struct { - __u32 var1_dw; - __u16 var2_w; - __u16 var3_w; - }; -}; - -union perf_mem_data_src { - __u64 val; - struct { - __u64 mem_op: 5; - __u64 mem_lvl: 14; - __u64 mem_snoop: 5; - __u64 mem_lock: 2; - __u64 mem_dtlb: 7; - __u64 mem_lvl_num: 4; - __u64 mem_remote: 1; - __u64 mem_snoopx: 2; - __u64 mem_blk: 3; - __u64 mem_hops: 3; - __u64 mem_rsvd: 18; - }; -}; - -struct perf_regs { - __u64 abi; - struct pt_regs *regs; -}; - -struct perf_callchain_entry; - -struct perf_raw_record; - -struct perf_branch_stack; - -struct perf_sample_data { - u64 sample_flags; - u64 period; - u64 dyn_size; - u64 type; - struct { - u32 pid; - u32 tid; - } tid_entry; - u64 time; - u64 id; - struct { - u32 cpu; - u32 reserved; - } cpu_entry; - u64 ip; - struct perf_callchain_entry *callchain; - struct perf_raw_record *raw; - struct perf_branch_stack *br_stack; - u64 *br_stack_cntr; - union perf_sample_weight weight; - union perf_mem_data_src data_src; - u64 txn; - struct perf_regs regs_user; - struct perf_regs regs_intr; - u64 stack_user_size; - u64 stream_id; - u64 cgroup; - u64 addr; - u64 phys_addr; - u64 data_page_size; - u64 code_page_size; - u64 aux_size; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct perf_callchain_entry { - __u64 nr; - __u64 ip[0]; -}; - -typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long); - -struct perf_raw_frag { union { - struct perf_raw_frag *next; - unsigned long pad; + void *optval; }; - perf_copy_f copy; - void *data; - u32 size; -} __attribute__((packed)); - -struct perf_raw_record { - struct perf_raw_frag frag; - u32 size; + union { + void *optval_end; + }; + __s32 level; + __s32 optname; + __s32 optlen; + __s32 retval; }; -struct perf_branch_entry { - __u64 from; - __u64 to; - __u64 mispred: 1; - __u64 predicted: 1; - __u64 in_tx: 1; - __u64 abort: 1; - __u64 cycles: 16; - __u64 type: 4; - __u64 spec: 2; - __u64 new_type: 4; - __u64 priv: 3; - __u64 reserved: 31; +struct bpf_sockopt_kern { + struct sock *sk; + u8 *optval; + u8 *optval_end; + s32 level; + s32 optname; + s32 optlen; + struct task_struct *current_task; + u64 tmp_reg; }; -struct perf_branch_stack { - __u64 nr; - __u64 hw_idx; - struct perf_branch_entry entries[0]; +struct sk_reuseport_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 len; + __u32 eth_protocol; + __u32 ip_protocol; + __u32 bind_inany; + __u32 hash; + union { + struct bpf_sock *sk; + }; + union { + struct bpf_sock *migrating_sk; + }; +}; + +struct sk_reuseport_kern { + struct sk_buff *skb; + struct sock *sk; + struct sock *selected_sk; + struct sock *migrating_sk; + void *data_end; + u32 hash; + u32 reuseport_id; + bool bind_inany; +}; + +struct bpf_sk_lookup { + union { + union { + struct bpf_sock *sk; + }; + __u64 cookie; + }; + __u32 family; + __u32 protocol; + __u32 remote_ip4; + __u32 remote_ip6[4]; + __be16 remote_port; + __u32 local_ip4; + __u32 local_ip6[4]; + __u32 local_port; + __u32 ingress_ifindex; +}; + +struct bpf_sk_lookup_kern { + u16 family; + u16 protocol; + __be16 sport; + u16 dport; + struct { + __be32 saddr; + __be32 daddr; + } v4; + struct { + const struct in6_addr *saddr; + const struct in6_addr *daddr; + } v6; + struct sock *selected_sk; + u32 ingress_ifindex; + bool no_reuseport; +}; + +struct bpf_nf_ctx { + const struct nf_hook_state *state; + struct sk_buff *skb; +}; + +struct bpf_ctx_convert { + struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; + struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; + struct xdp_md BPF_PROG_TYPE_XDP_prog; + struct xdp_buff BPF_PROG_TYPE_XDP_kern; + struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; + struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; + struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; + struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; + struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; + struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; + struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; + struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; + struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; + struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; + struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; + struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; + struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; + struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; + struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; + struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; + bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; + struct pt_regs BPF_PROG_TYPE_KPROBE_kern; + __u64 BPF_PROG_TYPE_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_TRACEPOINT_kern; + struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; + struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; + void *BPF_PROG_TYPE_TRACING_prog; + void *BPF_PROG_TYPE_TRACING_kern; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; + struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; + struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; + struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; + struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; + struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; + struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; + struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; + struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; + void *BPF_PROG_TYPE_STRUCT_OPS_prog; + void *BPF_PROG_TYPE_STRUCT_OPS_kern; + void *BPF_PROG_TYPE_EXT_prog; + void *BPF_PROG_TYPE_EXT_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; +}; + +struct bpf_flow_keys { + __u16 nhoff; + __u16 thoff; + __u16 addr_proto; + __u8 is_frag; + __u8 is_first_frag; + __u8 is_encap; + __u8 ip_proto; + __be16 n_proto; + __be16 sport; + __be16 dport; + union { + struct { + __be32 ipv4_src; + __be32 ipv4_dst; + }; + struct { + __u32 ipv6_src[4]; + __u32 ipv6_dst[4]; + }; + }; + __u32 flags; + __be32 flow_label; +}; + +struct nf_hook_state { + u8 hook; + u8 pf; + struct net_device *in; + struct net_device *out; + struct sock *sk; + struct net *net; + int (*okfn)(struct net *, struct sock *, struct sk_buff *); +}; + +struct btf_verifier_env; + +struct resolve_vertex; + +struct btf_show; + +struct btf_kind_operations { + s32 (*check_meta)(struct btf_verifier_env *, const struct btf_type *, u32); + int (*resolve)(struct btf_verifier_env *, const struct resolve_vertex *); + int (*check_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *); + int (*check_kflag_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *); + void (*log_details)(struct btf_verifier_env *, const struct btf_type *); + void (*show)(const struct btf *, const struct btf_type *, u32, void *, u8, struct btf_show *); +}; + +struct resolve_vertex { + const struct btf_type *t; + u32 type_id; + u16 next_member; +}; + +enum verifier_phase { + CHECK_META = 0, + CHECK_TYPE = 1, +}; + +enum resolve_mode { + RESOLVE_TBD = 0, + RESOLVE_PTR = 1, + RESOLVE_STRUCT_OR_ARRAY = 2, +}; + +struct btf_verifier_env { + struct btf *btf; + u8 *visit_states; + struct resolve_vertex stack[32]; + struct bpf_verifier_log log; + u32 log_type_id; + u32 top_stack; + enum verifier_phase phase; + enum resolve_mode resolve_mode; +}; + +struct __va_list_tag; + +struct btf_show { + u64 flags; + void *target; + void (*showfn)(struct btf_show *, const char *, struct __va_list_tag *); + const struct btf *btf; + struct { + u8 depth; + u8 depth_to_show; + u8 depth_check; + u8 array_member: 1; + u8 array_terminated: 1; + u16 array_encoding; + u32 type_id; + int status; + const struct btf_type *type; + const struct btf_member *member; + char name[80]; + } state; + struct { + u32 size; + void *head; + void *data; + u8 safe[32]; + } obj; +}; + +struct __va_list_tag { + unsigned int gp_offset; + unsigned int fp_offset; + void *overflow_arg_area; + void *reg_save_area; +}; + +struct bpf_cand_cache { + const char *name; + u32 name_len; + u16 kind; + u16 cnt; + struct { + const struct btf *btf; + u32 id; + } cands[0]; +}; + +enum bpf_type_flag { + PTR_MAYBE_NULL = 256, + MEM_RDONLY = 512, + MEM_RINGBUF = 1024, + MEM_USER = 2048, + MEM_PERCPU = 4096, + OBJ_RELEASE = 8192, + PTR_UNTRUSTED = 16384, + MEM_UNINIT = 32768, + DYNPTR_TYPE_LOCAL = 65536, + DYNPTR_TYPE_RINGBUF = 131072, + MEM_FIXED_SIZE = 262144, + MEM_ALLOC = 524288, + PTR_TRUSTED = 1048576, + MEM_RCU = 2097152, + NON_OWN_REF = 4194304, + DYNPTR_TYPE_SKB = 8388608, + DYNPTR_TYPE_XDP = 16777216, + __BPF_TYPE_FLAG_MAX = 16777217, + __BPF_TYPE_LAST_FLAG = 16777216, +}; + +enum bpf_struct_walk_result { + WALK_SCALAR = 0, + WALK_PTR = 1, + WALK_STRUCT = 2, +}; + +enum btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, +}; + +enum btf_arg_tag { + ARG_TAG_CTX = 1, + ARG_TAG_NONNULL = 2, + ARG_TAG_TRUSTED = 4, + ARG_TAG_NULLABLE = 8, + ARG_TAG_ARENA = 16, +}; + +enum { + BTF_F_COMPACT = 1, + BTF_F_NONAME = 2, + BTF_F_PTR_RAW = 4, + BTF_F_ZERO = 8, +}; + +enum { + BTF_MODULE_F_LIVE = 1, +}; + +enum btf_kfunc_hook { + BTF_KFUNC_HOOK_COMMON = 0, + BTF_KFUNC_HOOK_XDP = 1, + BTF_KFUNC_HOOK_TC = 2, + BTF_KFUNC_HOOK_STRUCT_OPS = 3, + BTF_KFUNC_HOOK_TRACING = 4, + BTF_KFUNC_HOOK_SYSCALL = 5, + BTF_KFUNC_HOOK_FMODRET = 6, + BTF_KFUNC_HOOK_CGROUP_SKB = 7, + BTF_KFUNC_HOOK_SCHED_ACT = 8, + BTF_KFUNC_HOOK_SK_SKB = 9, + BTF_KFUNC_HOOK_SOCKET_FILTER = 10, + BTF_KFUNC_HOOK_LWT = 11, + BTF_KFUNC_HOOK_NETFILTER = 12, + BTF_KFUNC_HOOK_MAX = 13, +}; + +enum { + BTF_KFUNC_SET_MAX_CNT = 256, + BTF_DTOR_KFUNC_MAX_CNT = 256, + BTF_KFUNC_FILTER_MAX_CNT = 16, +}; + +enum bpf_core_relo_kind { + BPF_CORE_FIELD_BYTE_OFFSET = 0, + BPF_CORE_FIELD_BYTE_SIZE = 1, + BPF_CORE_FIELD_EXISTS = 2, + BPF_CORE_FIELD_SIGNED = 3, + BPF_CORE_FIELD_LSHIFT_U64 = 4, + BPF_CORE_FIELD_RSHIFT_U64 = 5, + BPF_CORE_TYPE_ID_LOCAL = 6, + BPF_CORE_TYPE_ID_TARGET = 7, + BPF_CORE_TYPE_EXISTS = 8, + BPF_CORE_TYPE_SIZE = 9, + BPF_CORE_ENUMVAL_EXISTS = 10, + BPF_CORE_ENUMVAL_VALUE = 11, + BPF_CORE_TYPE_MATCHES = 12, +}; + +enum { + BTF_KIND_UNKN = 0, + BTF_KIND_INT = 1, + BTF_KIND_PTR = 2, + BTF_KIND_ARRAY = 3, + BTF_KIND_STRUCT = 4, + BTF_KIND_UNION = 5, + BTF_KIND_ENUM = 6, + BTF_KIND_FWD = 7, + BTF_KIND_TYPEDEF = 8, + BTF_KIND_VOLATILE = 9, + BTF_KIND_CONST = 10, + BTF_KIND_RESTRICT = 11, + BTF_KIND_FUNC = 12, + BTF_KIND_FUNC_PROTO = 13, + BTF_KIND_VAR = 14, + BTF_KIND_DATASEC = 15, + BTF_KIND_FLOAT = 16, + BTF_KIND_DECL_TAG = 17, + BTF_KIND_TYPE_TAG = 18, + BTF_KIND_ENUM64 = 19, + NR_BTF_KINDS = 20, + BTF_KIND_MAX = 19, +}; + +enum { + BTF_FIELD_IGNORE = 0, + BTF_FIELD_FOUND = 1, +}; + +enum visit_state { + NOT_VISITED = 0, + VISITED = 1, + RESOLVED = 2, +}; + +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED = 1, + BTF_VAR_GLOBAL_EXTERN = 2, +}; + +struct btf_param { + __u32 name_off; + __u32 type; +}; + +struct btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; +}; + +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); + +struct btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; +}; + +struct btf_decl_tag { + __s32 component_idx; +}; + +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; +}; + +struct btf_sec_info { + u32 off; + u32 len; +}; + +struct btf_enum { + __u32 name_off; + __s32 val; +}; + +struct btf_var { + __u32 linkage; +}; + +struct btf_enum64 { + __u32 name_off; + __u32 val_lo32; + __u32 val_hi32; +}; + +typedef struct { + struct lockdep_map dep_map; + struct task_struct *owner; +} local_lock_t; + +struct btf_show_snprintf { + struct btf_show show; + int len_left; + int len; +}; + +struct __una_u32 { + u32 x; +}; + +typedef void (*rcu_callback_t)(struct callback_head *); + +struct btf_field_info { + enum btf_field_type type; + u32 off; + union { + struct { + u32 type_id; + } kptr; + struct { + const char *node_name; + u32 value_btf_id; + } graph_root; + }; +}; + +typedef int (*cmp_func_t)(const void *, const void *); + +typedef int (*cmp_r_func_t)(const void *, const void *, const void *); + +typedef void (*swap_r_func_t)(void *, void *, int, const void *); + +struct btf_id_set { + u32 cnt; + u32 ids[0]; +}; + +struct fd { + struct file *file; + unsigned int flags; +}; + +struct btf_kfunc_id_set { + struct module *owner; + struct btf_id_set8 *set; + btf_kfunc_filter_t filter; +}; + +typedef void (*swap_func_t)(void *, void *, int); + +struct bpf_core_relo { + __u32 insn_off; + __u32 type_id; + __u32 access_str_off; + enum bpf_core_relo_kind kind; +}; + +struct bpf_core_cand; + +struct bpf_core_cand_list { + struct bpf_core_cand *cands; + int len; +}; + +struct bpf_core_cand { + const struct btf *btf; + __u32 id; +}; + +struct bpf_core_accessor { + __u32 type_id; + __u32 idx; + const char *name; +}; + +struct bpf_core_spec { + const struct btf *btf; + struct bpf_core_accessor spec[64]; + __u32 root_type_id; + enum bpf_core_relo_kind relo_kind; + int len; + int raw_spec[64]; + int raw_len; + __u32 bit_offset; +}; + +struct bpf_core_relo_res { + __u64 orig_val; + __u64 new_val; + bool poison; + bool validate; + bool fail_memsz_adjust; + __u32 orig_sz; + __u32 orig_type_id; + __u32 new_sz; + __u32 new_type_id; +}; + +typedef __builtin_va_list va_list; + +struct bpf_core_ctx { + struct bpf_verifier_log *log; + const struct btf *btf; +}; + +struct bpf_btf_info { + __u64 btf; + __u32 btf_size; + __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; }; struct trace_event_functions; @@ -12402,717 +14645,6 @@ struct trace_entry { int pid; }; -struct perf_cgroup_info; - -struct perf_cgroup { - struct cgroup_subsys_state css; - struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; -}; - -struct perf_cgroup_info { - u64 time; - u64 timestamp; - u64 timeoffset; - int active; -}; - -struct trace_eval_map { - const char *system; - const char *eval_string; - unsigned long eval_value; -}; - -struct bpf_id_pair { - u32 old; - u32 cur; -}; - -struct bpf_idmap { - u32 tmp_id_gen; - struct bpf_id_pair map[600]; -}; - -struct bpf_idset { - u32 count; - u32 ids[600]; -}; - -struct bpf_verifier_log { - u64 start_pos; - u64 end_pos; - char __attribute__((btf_type_tag("user"))) *ubuf; - u32 level; - u32 len_total; - u32 len_max; - char kbuf[1024]; -}; - -enum bpf_arg_type { - ARG_DONTCARE = 0, - ARG_CONST_MAP_PTR = 1, - ARG_PTR_TO_MAP_KEY = 2, - ARG_PTR_TO_MAP_VALUE = 3, - ARG_PTR_TO_MEM = 4, - ARG_PTR_TO_ARENA = 5, - ARG_CONST_SIZE = 6, - ARG_CONST_SIZE_OR_ZERO = 7, - ARG_PTR_TO_CTX = 8, - ARG_ANYTHING = 9, - ARG_PTR_TO_SPIN_LOCK = 10, - ARG_PTR_TO_SOCK_COMMON = 11, - ARG_PTR_TO_INT = 12, - ARG_PTR_TO_LONG = 13, - ARG_PTR_TO_SOCKET = 14, - ARG_PTR_TO_BTF_ID = 15, - ARG_PTR_TO_RINGBUF_MEM = 16, - ARG_CONST_ALLOC_SIZE_OR_ZERO = 17, - ARG_PTR_TO_BTF_ID_SOCK_COMMON = 18, - ARG_PTR_TO_PERCPU_BTF_ID = 19, - ARG_PTR_TO_FUNC = 20, - ARG_PTR_TO_STACK = 21, - ARG_PTR_TO_CONST_STR = 22, - ARG_PTR_TO_TIMER = 23, - ARG_PTR_TO_KPTR = 24, - ARG_PTR_TO_DYNPTR = 25, - __BPF_ARG_TYPE_MAX = 26, - ARG_PTR_TO_MAP_VALUE_OR_NULL = 259, - ARG_PTR_TO_MEM_OR_NULL = 260, - ARG_PTR_TO_CTX_OR_NULL = 264, - ARG_PTR_TO_SOCKET_OR_NULL = 270, - ARG_PTR_TO_STACK_OR_NULL = 277, - ARG_PTR_TO_BTF_ID_OR_NULL = 271, - ARG_PTR_TO_UNINIT_MEM = 32772, - ARG_PTR_TO_FIXED_SIZE_MEM = 262148, - __BPF_ARG_TYPE_LIMIT = 33554431, -}; - -struct bpf_subprog_arg_info { - enum bpf_arg_type arg_type; - union { - u32 mem_size; - u32 btf_id; - }; -}; - -struct bpf_subprog_info { - u32 start; - u32 linfo_idx; - u16 stack_depth; - u16 stack_extra; - bool has_tail_call: 1; - bool tail_call_reachable: 1; - bool has_ld_abs: 1; - bool is_cb: 1; - bool is_async_cb: 1; - bool is_exception_cb: 1; - bool args_cached: 1; - u8 arg_cnt; - struct bpf_subprog_arg_info args[5]; -}; - -struct backtrack_state { - struct bpf_verifier_env *env; - u32 frame; - u32 reg_masks[8]; - u64 stack_masks[8]; -}; - -typedef sockptr_t bpfptr_t; - -struct bpf_verifier_ops; - -struct bpf_verifier_stack_elem; - -struct bpf_verifier_state; - -struct bpf_verifier_state_list; - -struct bpf_insn_aux_data; - -struct bpf_jmp_history_entry; - -struct bpf_verifier_env { - u32 insn_idx; - u32 prev_insn_idx; - struct bpf_prog *prog; - const struct bpf_verifier_ops *ops; - struct module *attach_btf_mod; - struct bpf_verifier_stack_elem *head; - int stack_size; - bool strict_alignment; - bool test_state_freq; - bool test_reg_invariants; - struct bpf_verifier_state *cur_state; - struct bpf_verifier_state_list **explored_states; - struct bpf_verifier_state_list *free_list; - struct bpf_map *used_maps[64]; - struct btf_mod_pair used_btfs[64]; - u32 used_map_cnt; - u32 used_btf_cnt; - u32 id_gen; - u32 hidden_subprog_cnt; - int exception_callback_subprog; - bool explore_alu_limits; - bool allow_ptr_leaks; - bool allow_uninit_stack; - bool bpf_capable; - bool bypass_spec_v1; - bool bypass_spec_v4; - bool seen_direct_write; - bool seen_exception; - struct bpf_insn_aux_data *insn_aux_data; - const struct bpf_line_info *prev_linfo; - struct bpf_verifier_log log; - struct bpf_subprog_info subprog_info[258]; - union { - struct bpf_idmap idmap_scratch; - struct bpf_idset idset_scratch; - }; - struct { - int *insn_state; - int *insn_stack; - int cur_stack; - } cfg; - struct backtrack_state bt; - struct bpf_jmp_history_entry *cur_hist_ent; - u32 pass_cnt; - u32 subprog_cnt; - u32 prev_insn_processed; - u32 insn_processed; - u32 prev_jmps_processed; - u32 jmps_processed; - u64 verification_time; - u32 max_states_per_insn; - u32 total_states; - u32 peak_states; - u32 longest_mark_read_walk; - bpfptr_t fd_array; - u32 scratched_regs; - u64 scratched_stack_slots; - u64 prev_log_pos; - u64 prev_insn_print_pos; - char tmp_str_buf[320]; -}; - -enum bpf_func_id { - BPF_FUNC_unspec = 0, - BPF_FUNC_map_lookup_elem = 1, - BPF_FUNC_map_update_elem = 2, - BPF_FUNC_map_delete_elem = 3, - BPF_FUNC_probe_read = 4, - BPF_FUNC_ktime_get_ns = 5, - BPF_FUNC_trace_printk = 6, - BPF_FUNC_get_prandom_u32 = 7, - BPF_FUNC_get_smp_processor_id = 8, - BPF_FUNC_skb_store_bytes = 9, - BPF_FUNC_l3_csum_replace = 10, - BPF_FUNC_l4_csum_replace = 11, - BPF_FUNC_tail_call = 12, - BPF_FUNC_clone_redirect = 13, - BPF_FUNC_get_current_pid_tgid = 14, - BPF_FUNC_get_current_uid_gid = 15, - BPF_FUNC_get_current_comm = 16, - BPF_FUNC_get_cgroup_classid = 17, - BPF_FUNC_skb_vlan_push = 18, - BPF_FUNC_skb_vlan_pop = 19, - BPF_FUNC_skb_get_tunnel_key = 20, - BPF_FUNC_skb_set_tunnel_key = 21, - BPF_FUNC_perf_event_read = 22, - BPF_FUNC_redirect = 23, - BPF_FUNC_get_route_realm = 24, - BPF_FUNC_perf_event_output = 25, - BPF_FUNC_skb_load_bytes = 26, - BPF_FUNC_get_stackid = 27, - BPF_FUNC_csum_diff = 28, - BPF_FUNC_skb_get_tunnel_opt = 29, - BPF_FUNC_skb_set_tunnel_opt = 30, - BPF_FUNC_skb_change_proto = 31, - BPF_FUNC_skb_change_type = 32, - BPF_FUNC_skb_under_cgroup = 33, - BPF_FUNC_get_hash_recalc = 34, - BPF_FUNC_get_current_task = 35, - BPF_FUNC_probe_write_user = 36, - BPF_FUNC_current_task_under_cgroup = 37, - BPF_FUNC_skb_change_tail = 38, - BPF_FUNC_skb_pull_data = 39, - BPF_FUNC_csum_update = 40, - BPF_FUNC_set_hash_invalid = 41, - BPF_FUNC_get_numa_node_id = 42, - BPF_FUNC_skb_change_head = 43, - BPF_FUNC_xdp_adjust_head = 44, - BPF_FUNC_probe_read_str = 45, - BPF_FUNC_get_socket_cookie = 46, - BPF_FUNC_get_socket_uid = 47, - BPF_FUNC_set_hash = 48, - BPF_FUNC_setsockopt = 49, - BPF_FUNC_skb_adjust_room = 50, - BPF_FUNC_redirect_map = 51, - BPF_FUNC_sk_redirect_map = 52, - BPF_FUNC_sock_map_update = 53, - BPF_FUNC_xdp_adjust_meta = 54, - BPF_FUNC_perf_event_read_value = 55, - BPF_FUNC_perf_prog_read_value = 56, - BPF_FUNC_getsockopt = 57, - BPF_FUNC_override_return = 58, - BPF_FUNC_sock_ops_cb_flags_set = 59, - BPF_FUNC_msg_redirect_map = 60, - BPF_FUNC_msg_apply_bytes = 61, - BPF_FUNC_msg_cork_bytes = 62, - BPF_FUNC_msg_pull_data = 63, - BPF_FUNC_bind = 64, - BPF_FUNC_xdp_adjust_tail = 65, - BPF_FUNC_skb_get_xfrm_state = 66, - BPF_FUNC_get_stack = 67, - BPF_FUNC_skb_load_bytes_relative = 68, - BPF_FUNC_fib_lookup = 69, - BPF_FUNC_sock_hash_update = 70, - BPF_FUNC_msg_redirect_hash = 71, - BPF_FUNC_sk_redirect_hash = 72, - BPF_FUNC_lwt_push_encap = 73, - BPF_FUNC_lwt_seg6_store_bytes = 74, - BPF_FUNC_lwt_seg6_adjust_srh = 75, - BPF_FUNC_lwt_seg6_action = 76, - BPF_FUNC_rc_repeat = 77, - BPF_FUNC_rc_keydown = 78, - BPF_FUNC_skb_cgroup_id = 79, - BPF_FUNC_get_current_cgroup_id = 80, - BPF_FUNC_get_local_storage = 81, - BPF_FUNC_sk_select_reuseport = 82, - BPF_FUNC_skb_ancestor_cgroup_id = 83, - BPF_FUNC_sk_lookup_tcp = 84, - BPF_FUNC_sk_lookup_udp = 85, - BPF_FUNC_sk_release = 86, - BPF_FUNC_map_push_elem = 87, - BPF_FUNC_map_pop_elem = 88, - BPF_FUNC_map_peek_elem = 89, - BPF_FUNC_msg_push_data = 90, - BPF_FUNC_msg_pop_data = 91, - BPF_FUNC_rc_pointer_rel = 92, - BPF_FUNC_spin_lock = 93, - BPF_FUNC_spin_unlock = 94, - BPF_FUNC_sk_fullsock = 95, - BPF_FUNC_tcp_sock = 96, - BPF_FUNC_skb_ecn_set_ce = 97, - BPF_FUNC_get_listener_sock = 98, - BPF_FUNC_skc_lookup_tcp = 99, - BPF_FUNC_tcp_check_syncookie = 100, - BPF_FUNC_sysctl_get_name = 101, - BPF_FUNC_sysctl_get_current_value = 102, - BPF_FUNC_sysctl_get_new_value = 103, - BPF_FUNC_sysctl_set_new_value = 104, - BPF_FUNC_strtol = 105, - BPF_FUNC_strtoul = 106, - BPF_FUNC_sk_storage_get = 107, - BPF_FUNC_sk_storage_delete = 108, - BPF_FUNC_send_signal = 109, - BPF_FUNC_tcp_gen_syncookie = 110, - BPF_FUNC_skb_output = 111, - BPF_FUNC_probe_read_user = 112, - BPF_FUNC_probe_read_kernel = 113, - BPF_FUNC_probe_read_user_str = 114, - BPF_FUNC_probe_read_kernel_str = 115, - BPF_FUNC_tcp_send_ack = 116, - BPF_FUNC_send_signal_thread = 117, - BPF_FUNC_jiffies64 = 118, - BPF_FUNC_read_branch_records = 119, - BPF_FUNC_get_ns_current_pid_tgid = 120, - BPF_FUNC_xdp_output = 121, - BPF_FUNC_get_netns_cookie = 122, - BPF_FUNC_get_current_ancestor_cgroup_id = 123, - BPF_FUNC_sk_assign = 124, - BPF_FUNC_ktime_get_boot_ns = 125, - BPF_FUNC_seq_printf = 126, - BPF_FUNC_seq_write = 127, - BPF_FUNC_sk_cgroup_id = 128, - BPF_FUNC_sk_ancestor_cgroup_id = 129, - BPF_FUNC_ringbuf_output = 130, - BPF_FUNC_ringbuf_reserve = 131, - BPF_FUNC_ringbuf_submit = 132, - BPF_FUNC_ringbuf_discard = 133, - BPF_FUNC_ringbuf_query = 134, - BPF_FUNC_csum_level = 135, - BPF_FUNC_skc_to_tcp6_sock = 136, - BPF_FUNC_skc_to_tcp_sock = 137, - BPF_FUNC_skc_to_tcp_timewait_sock = 138, - BPF_FUNC_skc_to_tcp_request_sock = 139, - BPF_FUNC_skc_to_udp6_sock = 140, - BPF_FUNC_get_task_stack = 141, - BPF_FUNC_load_hdr_opt = 142, - BPF_FUNC_store_hdr_opt = 143, - BPF_FUNC_reserve_hdr_opt = 144, - BPF_FUNC_inode_storage_get = 145, - BPF_FUNC_inode_storage_delete = 146, - BPF_FUNC_d_path = 147, - BPF_FUNC_copy_from_user = 148, - BPF_FUNC_snprintf_btf = 149, - BPF_FUNC_seq_printf_btf = 150, - BPF_FUNC_skb_cgroup_classid = 151, - BPF_FUNC_redirect_neigh = 152, - BPF_FUNC_per_cpu_ptr = 153, - BPF_FUNC_this_cpu_ptr = 154, - BPF_FUNC_redirect_peer = 155, - BPF_FUNC_task_storage_get = 156, - BPF_FUNC_task_storage_delete = 157, - BPF_FUNC_get_current_task_btf = 158, - BPF_FUNC_bprm_opts_set = 159, - BPF_FUNC_ktime_get_coarse_ns = 160, - BPF_FUNC_ima_inode_hash = 161, - BPF_FUNC_sock_from_file = 162, - BPF_FUNC_check_mtu = 163, - BPF_FUNC_for_each_map_elem = 164, - BPF_FUNC_snprintf = 165, - BPF_FUNC_sys_bpf = 166, - BPF_FUNC_btf_find_by_name_kind = 167, - BPF_FUNC_sys_close = 168, - BPF_FUNC_timer_init = 169, - BPF_FUNC_timer_set_callback = 170, - BPF_FUNC_timer_start = 171, - BPF_FUNC_timer_cancel = 172, - BPF_FUNC_get_func_ip = 173, - BPF_FUNC_get_attach_cookie = 174, - BPF_FUNC_task_pt_regs = 175, - BPF_FUNC_get_branch_snapshot = 176, - BPF_FUNC_trace_vprintk = 177, - BPF_FUNC_skc_to_unix_sock = 178, - BPF_FUNC_kallsyms_lookup_name = 179, - BPF_FUNC_find_vma = 180, - BPF_FUNC_loop = 181, - BPF_FUNC_strncmp = 182, - BPF_FUNC_get_func_arg = 183, - BPF_FUNC_get_func_ret = 184, - BPF_FUNC_get_func_arg_cnt = 185, - BPF_FUNC_get_retval = 186, - BPF_FUNC_set_retval = 187, - BPF_FUNC_xdp_get_buff_len = 188, - BPF_FUNC_xdp_load_bytes = 189, - BPF_FUNC_xdp_store_bytes = 190, - BPF_FUNC_copy_from_user_task = 191, - BPF_FUNC_skb_set_tstamp = 192, - BPF_FUNC_ima_file_hash = 193, - BPF_FUNC_kptr_xchg = 194, - BPF_FUNC_map_lookup_percpu_elem = 195, - BPF_FUNC_skc_to_mptcp_sock = 196, - BPF_FUNC_dynptr_from_mem = 197, - BPF_FUNC_ringbuf_reserve_dynptr = 198, - BPF_FUNC_ringbuf_submit_dynptr = 199, - BPF_FUNC_ringbuf_discard_dynptr = 200, - BPF_FUNC_dynptr_read = 201, - BPF_FUNC_dynptr_write = 202, - BPF_FUNC_dynptr_data = 203, - BPF_FUNC_tcp_raw_gen_syncookie_ipv4 = 204, - BPF_FUNC_tcp_raw_gen_syncookie_ipv6 = 205, - BPF_FUNC_tcp_raw_check_syncookie_ipv4 = 206, - BPF_FUNC_tcp_raw_check_syncookie_ipv6 = 207, - BPF_FUNC_ktime_get_tai_ns = 208, - BPF_FUNC_user_ringbuf_drain = 209, - BPF_FUNC_cgrp_storage_get = 210, - BPF_FUNC_cgrp_storage_delete = 211, - __BPF_FUNC_MAX_ID = 212, -}; - -enum bpf_access_type { - BPF_READ = 1, - BPF_WRITE = 2, -}; - -struct bpf_func_proto; - -struct bpf_insn_access_aux; - -struct bpf_reg_state; - -struct bpf_verifier_ops { - const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); - bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); - int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); - int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); - u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); - int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); -}; - -enum bpf_return_type { - RET_INTEGER = 0, - RET_VOID = 1, - RET_PTR_TO_MAP_VALUE = 2, - RET_PTR_TO_SOCKET = 3, - RET_PTR_TO_TCP_SOCK = 4, - RET_PTR_TO_SOCK_COMMON = 5, - RET_PTR_TO_MEM = 6, - RET_PTR_TO_MEM_OR_BTF_ID = 7, - RET_PTR_TO_BTF_ID = 8, - __BPF_RET_TYPE_MAX = 9, - RET_PTR_TO_MAP_VALUE_OR_NULL = 258, - RET_PTR_TO_SOCKET_OR_NULL = 259, - RET_PTR_TO_TCP_SOCK_OR_NULL = 260, - RET_PTR_TO_SOCK_COMMON_OR_NULL = 261, - RET_PTR_TO_RINGBUF_MEM_OR_NULL = 1286, - RET_PTR_TO_DYNPTR_MEM_OR_NULL = 262, - RET_PTR_TO_BTF_ID_OR_NULL = 264, - RET_PTR_TO_BTF_ID_TRUSTED = 1048584, - __BPF_RET_TYPE_LIMIT = 33554431, -}; - -struct bpf_func_proto { - u64 (*func)(u64, u64, u64, u64, u64); - bool gpl_only; - bool pkt_access; - bool might_sleep; - enum bpf_return_type ret_type; - union { - struct { - enum bpf_arg_type arg1_type; - enum bpf_arg_type arg2_type; - enum bpf_arg_type arg3_type; - enum bpf_arg_type arg4_type; - enum bpf_arg_type arg5_type; - }; - enum bpf_arg_type arg_type[5]; - }; - union { - struct { - u32 *arg1_btf_id; - u32 *arg2_btf_id; - u32 *arg3_btf_id; - u32 *arg4_btf_id; - u32 *arg5_btf_id; - }; - u32 *arg_btf_id[5]; - struct { - size_t arg1_size; - size_t arg2_size; - size_t arg3_size; - size_t arg4_size; - size_t arg5_size; - }; - size_t arg_size[5]; - }; - int *ret_btf_id; - bool (*allowed)(const struct bpf_prog *); -}; - -struct bpf_insn_access_aux { - enum bpf_reg_type reg_type; - union { - int ctx_field_size; - struct { - struct btf *btf; - u32 btf_id; - }; - }; - struct bpf_verifier_log *log; -}; - -enum bpf_dynptr_type { - BPF_DYNPTR_TYPE_INVALID = 0, - BPF_DYNPTR_TYPE_LOCAL = 1, - BPF_DYNPTR_TYPE_RINGBUF = 2, - BPF_DYNPTR_TYPE_SKB = 3, - BPF_DYNPTR_TYPE_XDP = 4, -}; - -enum bpf_iter_state { - BPF_ITER_STATE_INVALID = 0, - BPF_ITER_STATE_ACTIVE = 1, - BPF_ITER_STATE_DRAINED = 2, -}; - -struct tnum { - u64 value; - u64 mask; -}; - -enum bpf_reg_liveness { - REG_LIVE_NONE = 0, - REG_LIVE_READ32 = 1, - REG_LIVE_READ64 = 2, - REG_LIVE_READ = 3, - REG_LIVE_WRITTEN = 4, - REG_LIVE_DONE = 8, -}; - -struct bpf_reg_state { - enum bpf_reg_type type; - s32 off; - union { - int range; - struct { - struct bpf_map *map_ptr; - u32 map_uid; - }; - struct { - struct btf *btf; - u32 btf_id; - }; - struct { - u32 mem_size; - u32 dynptr_id; - }; - struct { - enum bpf_dynptr_type type; - bool first_slot; - } dynptr; - struct { - struct btf *btf; - u32 btf_id; - enum bpf_iter_state state: 2; - int depth: 30; - } iter; - struct { - unsigned long raw1; - unsigned long raw2; - } raw; - u32 subprogno; - }; - struct tnum var_off; - s64 smin_value; - s64 smax_value; - u64 umin_value; - u64 umax_value; - s32 s32_min_value; - s32 s32_max_value; - u32 u32_min_value; - u32 u32_max_value; - u32 id; - u32 ref_obj_id; - struct bpf_reg_state *parent; - u32 frameno; - s32 subreg_def; - enum bpf_reg_liveness live; - bool precise; -}; - -struct bpf_active_lock { - void *ptr; - u32 id; -}; - -struct bpf_verifier_state { - struct bpf_func_state *frame[8]; - struct bpf_verifier_state *parent; - u32 branches; - u32 insn_idx; - u32 curframe; - struct bpf_active_lock active_lock; - bool speculative; - bool active_rcu_lock; - bool used_as_loop_entry; - u32 first_insn_idx; - u32 last_insn_idx; - struct bpf_verifier_state *loop_entry; - struct bpf_jmp_history_entry *jmp_history; - u32 jmp_history_cnt; - u32 dfs_depth; - u32 callback_unroll_depth; - u32 may_goto_depth; -}; - -struct bpf_retval_range { - s32 minval; - s32 maxval; -}; - -struct bpf_reference_state; - -struct bpf_stack_state; - -struct bpf_func_state { - struct bpf_reg_state regs[11]; - int callsite; - u32 frameno; - u32 subprogno; - u32 async_entry_cnt; - struct bpf_retval_range callback_ret_range; - bool in_callback_fn; - bool in_async_callback_fn; - bool in_exception_callback_fn; - u32 callback_depth; - int acquired_refs; - struct bpf_reference_state *refs; - struct bpf_stack_state *stack; - int allocated_stack; -}; - -struct bpf_reference_state { - int id; - int insn_idx; - int callback_ref; -}; - -struct bpf_stack_state { - struct bpf_reg_state spilled_ptr; - u8 slot_type[8]; -}; - -struct bpf_jmp_history_entry { - u32 idx; - u32 prev_idx: 22; - u32 flags: 10; -}; - -struct bpf_verifier_state_list { - struct bpf_verifier_state state; - struct bpf_verifier_state_list *next; - int miss_cnt; - int hit_cnt; -}; - -struct bpf_loop_inline_state { - unsigned int initialized: 1; - unsigned int fit_for_inline: 1; - u32 callback_subprogno; -}; - -struct btf_struct_meta; - -struct bpf_insn_aux_data { - union { - enum bpf_reg_type ptr_type; - unsigned long map_ptr_state; - s32 call_imm; - u32 alu_limit; - struct { - u32 map_index; - u32 map_off; - }; - struct { - enum bpf_reg_type reg_type; - union { - struct { - struct btf *btf; - u32 btf_id; - }; - u32 mem_size; - }; - } btf_var; - struct bpf_loop_inline_state loop_inline_state; - }; - union { - u64 obj_new_size; - u64 insert_off; - }; - struct btf_struct_meta *kptr_struct_meta; - u64 map_key_state; - int ctx_field_size; - u32 seen; - bool sanitize_stack_spill; - bool zext_dst; - bool needs_zext; - bool storage_get_func_atomic; - bool is_iter_next; - bool call_with_percpu_alloc_ptr; - u8 alu_state; - unsigned int orig_idx; - bool jmp_point; - bool prune_point; - bool force_checkpoint; - bool calls_callback; -}; - -struct btf_struct_meta { - u32 btf_id; - struct btf_record *record; -}; - struct syscall_metadata { const char *name; int syscall_nr; @@ -13124,331 +14656,113 @@ struct syscall_metadata { struct trace_event_call *exit_event; }; +enum siginfo_layout { + SIL_KILL = 0, + SIL_TIMER = 1, + SIL_POLL = 2, + SIL_FAULT = 3, + SIL_FAULT_TRAPNO = 4, + SIL_FAULT_MCEERR = 5, + SIL_FAULT_BNDERR = 6, + SIL_FAULT_PKUERR = 7, + SIL_FAULT_PERF_EVENT = 8, + SIL_CHLD = 9, + SIL_RT = 10, + SIL_SYS = 11, +}; + +struct signalfd_siginfo { + __u32 ssi_signo; + __s32 ssi_errno; + __s32 ssi_code; + __u32 ssi_pid; + __u32 ssi_uid; + __s32 ssi_fd; + __u32 ssi_tid; + __u32 ssi_band; + __u32 ssi_overrun; + __u32 ssi_trapno; + __s32 ssi_status; + __s32 ssi_int; + __u64 ssi_ptr; + __u64 ssi_utime; + __u64 ssi_stime; + __u64 ssi_addr; + __u16 ssi_addr_lsb; + __u16 __pad2; + __s32 ssi_syscall; + __u64 ssi_call_addr; + __u32 ssi_arch; + __u8 __pad[28]; +}; + +struct signalfd_ctx { + sigset_t sigmask; +}; + +typedef struct poll_table_struct poll_table; + enum { - BPF_F_NO_PREALLOC = 1, - BPF_F_NO_COMMON_LRU = 2, - BPF_F_NUMA_NODE = 4, - BPF_F_RDONLY = 8, - BPF_F_WRONLY = 16, - BPF_F_STACK_BUILD_ID = 32, - BPF_F_ZERO_SEED = 64, - BPF_F_RDONLY_PROG = 128, - BPF_F_WRONLY_PROG = 256, - BPF_F_CLONE = 512, - BPF_F_MMAPABLE = 1024, - BPF_F_PRESERVE_ELEMS = 2048, - BPF_F_INNER_MAP = 4096, - BPF_F_LINK = 8192, - BPF_F_PATH_FD = 16384, - BPF_F_VTYPE_BTF_OBJ_FD = 32768, - BPF_F_TOKEN_FD = 65536, - BPF_F_SEGV_ON_FAULT = 131072, - BPF_F_NO_USER_CONV = 262144, + HI_SOFTIRQ = 0, + TIMER_SOFTIRQ = 1, + NET_TX_SOFTIRQ = 2, + NET_RX_SOFTIRQ = 3, + BLOCK_SOFTIRQ = 4, + IRQ_POLL_SOFTIRQ = 5, + TASKLET_SOFTIRQ = 6, + SCHED_SOFTIRQ = 7, + HRTIMER_SOFTIRQ = 8, + RCU_SOFTIRQ = 9, + NR_SOFTIRQS = 10, }; enum { - BPF_ANY = 0, - BPF_NOEXIST = 1, - BPF_EXIST = 2, - BPF_F_LOCK = 4, + PROC_ENTRY_PERMANENT = 1, }; -enum work_bits { - WORK_STRUCT_PENDING_BIT = 0, - WORK_STRUCT_INACTIVE_BIT = 1, - WORK_STRUCT_PWQ_BIT = 2, - WORK_STRUCT_LINKED_BIT = 3, - WORK_STRUCT_FLAG_BITS = 4, - WORK_STRUCT_COLOR_SHIFT = 4, - WORK_STRUCT_COLOR_BITS = 4, - WORK_STRUCT_PWQ_SHIFT = 8, - WORK_OFFQ_FLAG_SHIFT = 4, - WORK_OFFQ_CANCELING_BIT = 4, - WORK_OFFQ_FLAG_END = 5, - WORK_OFFQ_FLAG_BITS = 1, - WORK_OFFQ_POOL_SHIFT = 5, - WORK_OFFQ_LEFT = 59, - WORK_OFFQ_POOL_BITS = 31, +struct kernel_stat { + unsigned long irqs_sum; + unsigned int softirqs[10]; }; -enum bpf_cmd { - BPF_MAP_CREATE = 0, - BPF_MAP_LOOKUP_ELEM = 1, - BPF_MAP_UPDATE_ELEM = 2, - BPF_MAP_DELETE_ELEM = 3, - BPF_MAP_GET_NEXT_KEY = 4, - BPF_PROG_LOAD = 5, - BPF_OBJ_PIN = 6, - BPF_OBJ_GET = 7, - BPF_PROG_ATTACH = 8, - BPF_PROG_DETACH = 9, - BPF_PROG_TEST_RUN = 10, - BPF_PROG_RUN = 10, - BPF_PROG_GET_NEXT_ID = 11, - BPF_MAP_GET_NEXT_ID = 12, - BPF_PROG_GET_FD_BY_ID = 13, - BPF_MAP_GET_FD_BY_ID = 14, - BPF_OBJ_GET_INFO_BY_FD = 15, - BPF_PROG_QUERY = 16, - BPF_RAW_TRACEPOINT_OPEN = 17, - BPF_BTF_LOAD = 18, - BPF_BTF_GET_FD_BY_ID = 19, - BPF_TASK_FD_QUERY = 20, - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21, - BPF_MAP_FREEZE = 22, - BPF_BTF_GET_NEXT_ID = 23, - BPF_MAP_LOOKUP_BATCH = 24, - BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25, - BPF_MAP_UPDATE_BATCH = 26, - BPF_MAP_DELETE_BATCH = 27, - BPF_LINK_CREATE = 28, - BPF_LINK_UPDATE = 29, - BPF_LINK_GET_FD_BY_ID = 30, - BPF_LINK_GET_NEXT_ID = 31, - BPF_ENABLE_STATS = 32, - BPF_ITER_CREATE = 33, - BPF_LINK_DETACH = 34, - BPF_PROG_BIND_MAP = 35, - BPF_TOKEN_CREATE = 36, - __MAX_BPF_CMD = 37, -}; +typedef int (*proc_write_t)(struct file *, char *, size_t); -enum { - CSS_NO_REF = 1, - CSS_ONLINE = 2, - CSS_RELEASED = 4, - CSS_VISIBLE = 8, - CSS_DYING = 16, -}; +typedef u32 nlink_t; -enum { - __PERCPU_REF_ATOMIC = 1, - __PERCPU_REF_DEAD = 2, - __PERCPU_REF_ATOMIC_DEAD = 3, - __PERCPU_REF_FLAG_BITS = 2, -}; +struct proc_ops; -enum wq_misc_consts { - WORK_NR_COLORS = 16, - WORK_CPU_UNBOUND = 8192, - WORK_BUSY_PENDING = 1, - WORK_BUSY_RUNNING = 2, - WORKER_DESC_LEN = 24, -}; - -enum perf_bpf_event_type { - PERF_BPF_EVENT_UNKNOWN = 0, - PERF_BPF_EVENT_PROG_LOAD = 1, - PERF_BPF_EVENT_PROG_UNLOAD = 2, - PERF_BPF_EVENT_MAX = 3, -}; - -enum bpf_audit { - BPF_AUDIT_LOAD = 0, - BPF_AUDIT_UNLOAD = 1, - BPF_AUDIT_MAX = 2, -}; - -enum lockdep_wait_type { - LD_WAIT_INV = 0, - LD_WAIT_FREE = 1, - LD_WAIT_SPIN = 2, - LD_WAIT_CONFIG = 2, - LD_WAIT_SLEEP = 3, - LD_WAIT_MAX = 4, -}; - -enum lockdep_lock_type { - LD_LOCK_NORMAL = 0, - LD_LOCK_PERCPU = 1, - LD_LOCK_WAIT_OVERRIDE = 2, - LD_LOCK_MAX = 3, -}; - -enum refcount_saturation_type { - REFCOUNT_ADD_NOT_ZERO_OVF = 0, - REFCOUNT_ADD_OVF = 1, - REFCOUNT_ADD_UAF = 2, - REFCOUNT_SUB_UAF = 3, - REFCOUNT_DEC_LEAK = 4, -}; - -enum tk_offsets { - TK_OFFS_REAL = 0, - TK_OFFS_BOOT = 1, - TK_OFFS_TAI = 2, - TK_OFFS_MAX = 3, -}; - -enum bpf_task_fd_type { - BPF_FD_TYPE_RAW_TRACEPOINT = 0, - BPF_FD_TYPE_TRACEPOINT = 1, - BPF_FD_TYPE_KPROBE = 2, - BPF_FD_TYPE_KRETPROBE = 3, - BPF_FD_TYPE_UPROBE = 4, - BPF_FD_TYPE_URETPROBE = 5, -}; - -enum bpf_perf_event_type { - BPF_PERF_EVENT_UNSPEC = 0, - BPF_PERF_EVENT_UPROBE = 1, - BPF_PERF_EVENT_URETPROBE = 2, - BPF_PERF_EVENT_KPROBE = 3, - BPF_PERF_EVENT_KRETPROBE = 4, - BPF_PERF_EVENT_TRACEPOINT = 5, - BPF_PERF_EVENT_EVENT = 6, -}; - -enum { - TRACE_EVENT_FL_FILTERED = 1, - TRACE_EVENT_FL_CAP_ANY = 2, - TRACE_EVENT_FL_NO_SET_FILTER = 4, - TRACE_EVENT_FL_IGNORE_ENABLE = 8, - TRACE_EVENT_FL_TRACEPOINT = 16, - TRACE_EVENT_FL_DYNAMIC = 32, - TRACE_EVENT_FL_KPROBE = 64, - TRACE_EVENT_FL_UPROBE = 128, - TRACE_EVENT_FL_EPROBE = 256, - TRACE_EVENT_FL_FPROBE = 512, - TRACE_EVENT_FL_CUSTOM = 1024, -}; - -enum bpf_stats_type { - BPF_STATS_RUN_TIME = 0, -}; - -typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32); - -typedef u64 (*btf_bpf_sys_close)(u32); - -typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *); - -typedef struct { - struct lockdep_map dep_map; - struct task_struct *owner; -} local_lock_t; - -struct bpf_tracing_link { - struct bpf_tramp_link link; - enum bpf_attach_type attach_type; - struct bpf_trampoline *trampoline; - struct bpf_prog *tgt_prog; -}; - -struct bpf_raw_tp_link { - struct bpf_link link; - struct bpf_raw_event_map *btp; - u64 cookie; -}; - -struct bpf_perf_link { - struct bpf_link link; - struct file *perf_file; -}; - -struct bpf_spin_lock { - __u32 val; -}; - -typedef void (*rcu_callback_t)(struct callback_head *); - -struct fd { - struct file *file; - unsigned int flags; -}; - -struct bpf_prog_kstats { - u64 nsecs; - u64 cnt; - u64 misses; -}; - -typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); - -typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *); - -struct bpf_prog_info { - __u32 type; - __u32 id; - __u8 tag[8]; - __u32 jited_prog_len; - __u32 xlated_prog_len; - __u64 jited_prog_insns; - __u64 xlated_prog_insns; - __u64 load_time; - __u32 created_by_uid; - __u32 nr_map_ids; - __u64 map_ids; - char name[16]; - __u32 ifindex; - __u32 gpl_compatible: 1; - __u64 netns_dev; - __u64 netns_ino; - __u32 nr_jited_ksyms; - __u32 nr_jited_func_lens; - __u64 jited_ksyms; - __u64 jited_func_lens; - __u32 btf_id; - __u32 func_info_rec_size; - __u64 func_info; - __u32 nr_func_info; - __u32 nr_line_info; - __u64 line_info; - __u64 jited_line_info; - __u32 nr_jited_line_info; - __u32 line_info_rec_size; - __u32 jited_line_info_rec_size; - __u32 nr_prog_tags; - __u64 prog_tags; - __u64 run_time_ns; - __u64 run_cnt; - __u64 recursion_misses; - __u32 verified_insns; - __u32 attach_btf_obj_id; - __u32 attach_btf_id; -}; - -struct bpf_map_info { - __u32 type; - __u32 id; - __u32 key_size; - __u32 value_size; - __u32 max_entries; - __u32 map_flags; - char name[16]; - __u32 ifindex; - __u32 btf_vmlinux_value_type_id; - __u64 netns_dev; - __u64 netns_ino; - __u32 btf_id; - __u32 btf_key_type_id; - __u32 btf_value_type_id; - __u32 btf_vmlinux_id; - __u64 map_extra; -}; - -struct bpf_btf_info { - __u64 btf; - __u32 btf_size; - __u32 id; - __u64 name; - __u32 name_len; - __u32 kernel_btf; -}; - -struct bpf_link_primer { - struct bpf_link *link; - struct file *file; - int fd; - u32 id; -}; - -struct bpf_attach_target_info { - struct btf_func_model fmodel; - long tgt_addr; - struct module *tgt_mod; - const char *tgt_name; - const struct btf_type *tgt_type; +struct proc_dir_entry { + atomic_t in_use; + refcount_t refcnt; + struct list_head pde_openers; + spinlock_t pde_unload_lock; + struct completion *pde_unload_completion; + const struct inode_operations *proc_iops; + union { + const struct proc_ops *proc_ops; + const struct file_operations *proc_dir_ops; + }; + const struct dentry_operations *proc_dops; + union { + const struct seq_operations *seq_ops; + int (*single_show)(struct seq_file *, void *); + }; + proc_write_t write; + void *data; + unsigned int state_size; + unsigned int low_ino; + nlink_t nlink; + kuid_t uid; + kgid_t gid; + loff_t size; + struct proc_dir_entry *parent; + struct rb_root subdir; + struct rb_node subdir_node; + char *name; + umode_t mode; + u8 flags; + u8 namelen; + char inline_name[0]; }; struct linux_binprm; @@ -13493,10 +14807,6 @@ struct linux_binprm { char buf[256]; }; -struct ida { - struct xarray xa; -}; - struct proc_ops { unsigned int proc_flags; int (*proc_open)(struct inode *, struct file *); @@ -13511,104 +14821,224 @@ struct proc_ops { unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); }; -enum proc_hidepid { - HIDEPID_OFF = 0, - HIDEPID_NO_ACCESS = 1, - HIDEPID_INVISIBLE = 2, - HIDEPID_NOT_PTRACEABLE = 4, +enum blk_unique_id { + BLK_UID_T10 = 1, + BLK_UID_EUI64 = 2, + BLK_UID_NAA = 3, }; -enum proc_pidonly { - PROC_PIDONLY_OFF = 0, - PROC_PIDONLY_ON = 1, +enum blk_bounce { + BLK_BOUNCE_NONE = 0, + BLK_BOUNCE_HIGH = 1, }; -enum { - PROC_ENTRY_PERMANENT = 1, +typedef unsigned int tid_t; + +struct transaction_chp_stats_s { + unsigned long cs_chp_time; + __u32 cs_forced_to_close; + __u32 cs_written; + __u32 cs_dropped; }; -typedef int (*proc_write_t)(struct file *, char *, size_t); +struct journal_s; -typedef u32 nlink_t; +typedef struct journal_s journal_t; -struct proc_dir_entry { - atomic_t in_use; - refcount_t refcnt; - struct list_head pde_openers; - spinlock_t pde_unload_lock; - struct completion *pde_unload_completion; - const struct inode_operations *proc_iops; +struct journal_head; + +struct transaction_s; + +typedef struct transaction_s transaction_t; + +struct transaction_s { + journal_t *t_journal; + tid_t t_tid; + enum { + T_RUNNING = 0, + T_LOCKED = 1, + T_SWITCH = 2, + T_FLUSH = 3, + T_COMMIT = 4, + T_COMMIT_DFLUSH = 5, + T_COMMIT_JFLUSH = 6, + T_COMMIT_CALLBACK = 7, + T_FINISHED = 8, + } t_state; + unsigned long t_log_start; + int t_nr_buffers; + struct journal_head *t_reserved_list; + struct journal_head *t_buffers; + struct journal_head *t_forget; + struct journal_head *t_checkpoint_list; + struct journal_head *t_shadow_list; + struct list_head t_inode_list; + unsigned long t_max_wait; + unsigned long t_start; + unsigned long t_requested; + struct transaction_chp_stats_s t_chp_stats; + atomic_t t_updates; + atomic_t t_outstanding_credits; + atomic_t t_outstanding_revokes; + atomic_t t_handle_count; + transaction_t *t_cpnext; + transaction_t *t_cpprev; + unsigned long t_expires; + ktime_t t_start_time; + unsigned int t_synchronous_commit: 1; + int t_need_data_flush; + struct list_head t_private_list; +}; + +struct transaction_run_stats_s { + unsigned long rs_wait; + unsigned long rs_request_delay; + unsigned long rs_running; + unsigned long rs_locked; + unsigned long rs_flushing; + unsigned long rs_logging; + __u32 rs_handle_count; + __u32 rs_blocks; + __u32 rs_blocks_logged; +}; + +struct transaction_stats_s { + unsigned long ts_tid; + unsigned long ts_requested; + struct transaction_run_stats_s run; +}; + +enum passtype { + PASS_SCAN = 0, + PASS_REVOKE = 1, + PASS_REPLAY = 2, +}; + +struct buffer_head; + +struct journal_superblock_s; + +typedef struct journal_superblock_s journal_superblock_t; + +struct jbd2_revoke_table_s; + +struct jbd2_inode; + +struct crypto_shash; + +struct journal_s { + unsigned long j_flags; + int j_errno; + struct mutex j_abort_mutex; + struct buffer_head *j_sb_buffer; + journal_superblock_t *j_superblock; + rwlock_t j_state_lock; + int j_barrier_count; + struct mutex j_barrier; + transaction_t *j_running_transaction; + transaction_t *j_committing_transaction; + transaction_t *j_checkpoint_transactions; + wait_queue_head_t j_wait_transaction_locked; + wait_queue_head_t j_wait_done_commit; + wait_queue_head_t j_wait_commit; + wait_queue_head_t j_wait_updates; + wait_queue_head_t j_wait_reserved; + wait_queue_head_t j_fc_wait; + struct mutex j_checkpoint_mutex; + struct buffer_head *j_chkpt_bhs[64]; + struct shrinker *j_shrinker; + struct percpu_counter j_checkpoint_jh_count; + transaction_t *j_shrink_transaction; + unsigned long j_head; + unsigned long j_tail; + unsigned long j_free; + unsigned long j_first; + unsigned long j_last; + unsigned long j_fc_first; + unsigned long j_fc_off; + unsigned long j_fc_last; + struct block_device *j_dev; + int j_blocksize; + unsigned long long j_blk_offset; + char j_devname[56]; + struct block_device *j_fs_dev; + errseq_t j_fs_dev_wb_err; + unsigned int j_total_len; + atomic_t j_reserved_credits; + spinlock_t j_list_lock; + struct inode *j_inode; + tid_t j_tail_sequence; + tid_t j_transaction_sequence; + tid_t j_commit_sequence; + tid_t j_commit_request; + __u8 j_uuid[16]; + struct task_struct *j_task; + int j_max_transaction_buffers; + int j_revoke_records_per_block; + unsigned long j_commit_interval; + struct timer_list j_commit_timer; + spinlock_t j_revoke_lock; + struct jbd2_revoke_table_s *j_revoke; + struct jbd2_revoke_table_s *j_revoke_table[2]; + struct buffer_head **j_wbuf; + struct buffer_head **j_fc_wbuf; + int j_wbufsize; + int j_fc_wbufsize; + pid_t j_last_sync_writer; + u64 j_average_commit_time; + u32 j_min_batch_time; + u32 j_max_batch_time; + void (*j_commit_callback)(journal_t *, transaction_t *); + int (*j_submit_inode_data_buffers)(struct jbd2_inode *); + int (*j_finish_inode_data_buffers)(struct jbd2_inode *); + spinlock_t j_history_lock; + struct proc_dir_entry *j_proc_entry; + struct transaction_stats_s j_stats; + unsigned int j_failed_commit; + void *j_private; + struct crypto_shash *j_chksum_driver; + __u32 j_csum_seed; + struct lockdep_map j_trans_commit_map; + void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t); + int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t); + int (*j_bmap)(struct journal_s *, sector_t *); +}; + +typedef void bh_end_io_t(struct buffer_head *, int); + +struct buffer_head { + unsigned long b_state; + struct buffer_head *b_this_page; union { - const struct proc_ops *proc_ops; - const struct file_operations *proc_dir_ops; + struct page *b_page; + struct folio *b_folio; }; - const struct dentry_operations *proc_dops; - union { - const struct seq_operations *seq_ops; - int (*single_show)(struct seq_file *, void *); - }; - proc_write_t write; - void *data; - unsigned int state_size; - unsigned int low_ino; - nlink_t nlink; - kuid_t uid; - kgid_t gid; - loff_t size; - struct proc_dir_entry *parent; - struct rb_root subdir; - struct rb_node subdir_node; - char *name; - umode_t mode; - u8 flags; - u8 namelen; - char inline_name[0]; + sector_t b_blocknr; + size_t b_size; + char *b_data; + struct block_device *b_bdev; + bh_end_io_t *b_end_io; + void *b_private; + struct list_head b_assoc_buffers; + struct address_space *b_assoc_map; + atomic_t b_count; + spinlock_t b_uptodate_lock; }; -union proc_op { - int (*proc_get_link)(struct dentry *, struct path *); - int (*proc_show)(struct seq_file *, struct pid_namespace *, struct pid *, struct task_struct *); - int lsmid; +typedef struct wait_queue_entry wait_queue_entry_t; + +struct wait_page_queue { + struct folio *folio; + int bit_nr; + wait_queue_entry_t wait; }; -struct proc_inode { - struct pid *pid; - unsigned int fd; - union proc_op op; - struct proc_dir_entry *pde; - struct ctl_table_header *sysctl; - struct ctl_table *sysctl_entry; - struct hlist_node sibling_inodes; - const struct proc_ns_operations *ns_ops; - struct inode vfs_inode; -}; +struct request; -struct proc_fs_info { - struct pid_namespace *pid_ns; - struct dentry *proc_self; - struct dentry *proc_thread_self; - kgid_t pid_gid; - enum proc_hidepid hide_pid; - enum proc_pidonly pidonly; - struct callback_head rcu; -}; - -typedef __kernel_ulong_t ino_t; - -struct posix_acl_entry { - short e_tag; - unsigned short e_perm; - union { - kuid_t e_uid; - kgid_t e_gid; - }; -}; - -struct posix_acl { - refcount_t a_refcount; - struct callback_head a_rcu; - unsigned int a_count; - struct posix_acl_entry a_entries[0]; +struct io_comp_batch { + struct request *req_list; + bool need_ts; + void (*complete)(struct io_comp_batch *); }; typedef unsigned int blk_mode_t; @@ -13659,12 +15089,6 @@ struct blk_zone; typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); -enum blk_unique_id { - BLK_UID_T10 = 1, - BLK_UID_EUI64 = 2, - BLK_UID_NAA = 3, -}; - struct hd_geometry; struct pr_ops; @@ -13690,14 +15114,6 @@ struct block_device_operations { int (*alternative_gpt_sector)(struct gendisk *, sector_t *); }; -struct request; - -struct io_comp_batch { - struct request *req_list; - bool need_ts; - void (*complete)(struct io_comp_batch *); -}; - struct blk_zone { __u64 start; __u64 len; @@ -13734,11 +15150,6 @@ struct pr_ops { int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); }; -enum blk_bounce { - BLK_BOUNCE_NONE = 0, - BLK_BOUNCE_HIGH = 1, -}; - struct queue_limits { enum blk_bounce bounce; unsigned long seg_boundary_mask; @@ -13963,236 +15374,6 @@ struct readahead_control { unsigned long _pflags; }; -struct wait_queue_entry; - -typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); - -struct wait_queue_entry { - unsigned int flags; - void *private; - wait_queue_func_t func; - struct list_head entry; -}; - -typedef struct wait_queue_entry wait_queue_entry_t; - -struct wait_page_queue { - struct folio *folio; - int bit_nr; - wait_queue_entry_t wait; -}; - -struct fiemap_extent; - -struct fiemap_extent_info { - unsigned int fi_flags; - unsigned int fi_extents_mapped; - unsigned int fi_extents_max; - struct fiemap_extent __attribute__((btf_type_tag("user"))) *fi_extents_start; -}; - -struct fiemap_extent { - __u64 fe_logical; - __u64 fe_physical; - __u64 fe_length; - __u64 fe_reserved64[2]; - __u32 fe_flags; - __u32 fe_reserved[3]; -}; - -enum passtype { - PASS_SCAN = 0, - PASS_REVOKE = 1, - PASS_REPLAY = 2, -}; - -typedef unsigned int tid_t; - -struct transaction_chp_stats_s { - unsigned long cs_chp_time; - __u32 cs_forced_to_close; - __u32 cs_written; - __u32 cs_dropped; -}; - -struct journal_s; - -typedef struct journal_s journal_t; - -struct journal_head; - -struct transaction_s; - -typedef struct transaction_s transaction_t; - -struct transaction_s { - journal_t *t_journal; - tid_t t_tid; - enum { - T_RUNNING = 0, - T_LOCKED = 1, - T_SWITCH = 2, - T_FLUSH = 3, - T_COMMIT = 4, - T_COMMIT_DFLUSH = 5, - T_COMMIT_JFLUSH = 6, - T_COMMIT_CALLBACK = 7, - T_FINISHED = 8, - } t_state; - unsigned long t_log_start; - int t_nr_buffers; - struct journal_head *t_reserved_list; - struct journal_head *t_buffers; - struct journal_head *t_forget; - struct journal_head *t_checkpoint_list; - struct journal_head *t_shadow_list; - struct list_head t_inode_list; - unsigned long t_max_wait; - unsigned long t_start; - unsigned long t_requested; - struct transaction_chp_stats_s t_chp_stats; - atomic_t t_updates; - atomic_t t_outstanding_credits; - atomic_t t_outstanding_revokes; - atomic_t t_handle_count; - transaction_t *t_cpnext; - transaction_t *t_cpprev; - unsigned long t_expires; - ktime_t t_start_time; - unsigned int t_synchronous_commit: 1; - int t_need_data_flush; - struct list_head t_private_list; -}; - -struct transaction_run_stats_s { - unsigned long rs_wait; - unsigned long rs_request_delay; - unsigned long rs_running; - unsigned long rs_locked; - unsigned long rs_flushing; - unsigned long rs_logging; - __u32 rs_handle_count; - __u32 rs_blocks; - __u32 rs_blocks_logged; -}; - -struct transaction_stats_s { - unsigned long ts_tid; - unsigned long ts_requested; - struct transaction_run_stats_s run; -}; - -struct buffer_head; - -struct journal_superblock_s; - -typedef struct journal_superblock_s journal_superblock_t; - -struct jbd2_revoke_table_s; - -struct jbd2_inode; - -struct crypto_shash; - -struct journal_s { - unsigned long j_flags; - int j_errno; - struct mutex j_abort_mutex; - struct buffer_head *j_sb_buffer; - journal_superblock_t *j_superblock; - rwlock_t j_state_lock; - int j_barrier_count; - struct mutex j_barrier; - transaction_t *j_running_transaction; - transaction_t *j_committing_transaction; - transaction_t *j_checkpoint_transactions; - wait_queue_head_t j_wait_transaction_locked; - wait_queue_head_t j_wait_done_commit; - wait_queue_head_t j_wait_commit; - wait_queue_head_t j_wait_updates; - wait_queue_head_t j_wait_reserved; - wait_queue_head_t j_fc_wait; - struct mutex j_checkpoint_mutex; - struct buffer_head *j_chkpt_bhs[64]; - struct shrinker *j_shrinker; - struct percpu_counter j_checkpoint_jh_count; - transaction_t *j_shrink_transaction; - unsigned long j_head; - unsigned long j_tail; - unsigned long j_free; - unsigned long j_first; - unsigned long j_last; - unsigned long j_fc_first; - unsigned long j_fc_off; - unsigned long j_fc_last; - struct block_device *j_dev; - int j_blocksize; - unsigned long long j_blk_offset; - char j_devname[56]; - struct block_device *j_fs_dev; - errseq_t j_fs_dev_wb_err; - unsigned int j_total_len; - atomic_t j_reserved_credits; - spinlock_t j_list_lock; - struct inode *j_inode; - tid_t j_tail_sequence; - tid_t j_transaction_sequence; - tid_t j_commit_sequence; - tid_t j_commit_request; - __u8 j_uuid[16]; - struct task_struct *j_task; - int j_max_transaction_buffers; - int j_revoke_records_per_block; - unsigned long j_commit_interval; - struct timer_list j_commit_timer; - spinlock_t j_revoke_lock; - struct jbd2_revoke_table_s *j_revoke; - struct jbd2_revoke_table_s *j_revoke_table[2]; - struct buffer_head **j_wbuf; - struct buffer_head **j_fc_wbuf; - int j_wbufsize; - int j_fc_wbufsize; - pid_t j_last_sync_writer; - u64 j_average_commit_time; - u32 j_min_batch_time; - u32 j_max_batch_time; - void (*j_commit_callback)(journal_t *, transaction_t *); - int (*j_submit_inode_data_buffers)(struct jbd2_inode *); - int (*j_finish_inode_data_buffers)(struct jbd2_inode *); - spinlock_t j_history_lock; - struct proc_dir_entry *j_proc_entry; - struct transaction_stats_s j_stats; - unsigned int j_failed_commit; - void *j_private; - struct crypto_shash *j_chksum_driver; - __u32 j_csum_seed; - struct lockdep_map j_trans_commit_map; - void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t); - int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t); - int (*j_bmap)(struct journal_s *, sector_t *); -}; - -typedef void bh_end_io_t(struct buffer_head *, int); - -struct buffer_head { - unsigned long b_state; - struct buffer_head *b_this_page; - union { - struct page *b_page; - struct folio *b_folio; - }; - sector_t b_blocknr; - size_t b_size; - char *b_data; - struct block_device *b_bdev; - bh_end_io_t *b_end_io; - void *b_private; - struct list_head b_assoc_buffers; - struct address_space *b_assoc_map; - atomic_t b_count; - spinlock_t b_uptodate_lock; -}; - struct journal_header_s { __be32 h_magic; __be32 h_blocktype; @@ -14330,89 +15511,6 @@ struct jbd2_buffer_trigger_type { void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *); }; -enum { - I_DATA_SEM_NORMAL = 0, - I_DATA_SEM_OTHER = 1, - I_DATA_SEM_QUOTA = 2, - I_DATA_SEM_EA = 3, -}; - -enum ext4_li_mode { - EXT4_LI_MODE_PREFETCH_BBITMAP = 0, - EXT4_LI_MODE_ITABLE = 1, -}; - -enum { - EXT4_STATE_NEW = 0, - EXT4_STATE_XATTR = 1, - EXT4_STATE_NO_EXPAND = 2, - EXT4_STATE_DA_ALLOC_CLOSE = 3, - EXT4_STATE_EXT_MIGRATE = 4, - EXT4_STATE_NEWENTRY = 5, - EXT4_STATE_MAY_INLINE_DATA = 6, - EXT4_STATE_EXT_PRECACHED = 7, - EXT4_STATE_LUSTRE_EA_INODE = 8, - EXT4_STATE_VERITY_IN_PROGRESS = 9, - EXT4_STATE_FC_COMMITTING = 10, - EXT4_STATE_ORPHAN_FILE = 11, -}; - -enum req_flag_bits { - __REQ_FAILFAST_DEV = 8, - __REQ_FAILFAST_TRANSPORT = 9, - __REQ_FAILFAST_DRIVER = 10, - __REQ_SYNC = 11, - __REQ_META = 12, - __REQ_PRIO = 13, - __REQ_NOMERGE = 14, - __REQ_IDLE = 15, - __REQ_INTEGRITY = 16, - __REQ_FUA = 17, - __REQ_PREFLUSH = 18, - __REQ_RAHEAD = 19, - __REQ_BACKGROUND = 20, - __REQ_NOWAIT = 21, - __REQ_POLLED = 22, - __REQ_ALLOC_CACHE = 23, - __REQ_SWAP = 24, - __REQ_DRV = 25, - __REQ_FS_PRIVATE = 26, - __REQ_NOUNMAP = 27, - __REQ_NR_BITS = 28, -}; - -enum { - EXT4_FC_REASON_XATTR = 0, - EXT4_FC_REASON_CROSS_RENAME = 1, - EXT4_FC_REASON_JOURNAL_FLAG_CHANGE = 2, - EXT4_FC_REASON_NOMEM = 3, - EXT4_FC_REASON_SWAP_BOOT = 4, - EXT4_FC_REASON_RESIZE = 5, - EXT4_FC_REASON_RENAME_DIR = 6, - EXT4_FC_REASON_FALLOC_RANGE = 7, - EXT4_FC_REASON_INODE_JOURNAL_DATA = 8, - EXT4_FC_REASON_ENCRYPTED_FILENAME = 9, - EXT4_FC_REASON_MAX = 10, -}; - -enum ext4_journal_trigger_type { - EXT4_JTR_ORPHAN_FILE = 0, - EXT4_JTR_NONE = 1, -}; - -enum jbd_state_bits { - BH_JBD = 16, - BH_JWrite = 17, - BH_Freed = 18, - BH_Revoked = 19, - BH_RevokeValid = 20, - BH_JBDDirty = 21, - BH_JournalHead = 22, - BH_Shadow = 23, - BH_Verified = 24, - BH_JBDPrivateStart = 25, -}; - enum bh_state_bits { BH_Uptodate = 0, BH_Dirty = 1, @@ -14433,852 +15531,61 @@ enum bh_state_bits { BH_PrivateStart = 16, }; -enum { - EXT4_INODE_SECRM = 0, - EXT4_INODE_UNRM = 1, - EXT4_INODE_COMPR = 2, - EXT4_INODE_SYNC = 3, - EXT4_INODE_IMMUTABLE = 4, - EXT4_INODE_APPEND = 5, - EXT4_INODE_NODUMP = 6, - EXT4_INODE_NOATIME = 7, - EXT4_INODE_DIRTY = 8, - EXT4_INODE_COMPRBLK = 9, - EXT4_INODE_NOCOMPR = 10, - EXT4_INODE_ENCRYPT = 11, - EXT4_INODE_INDEX = 12, - EXT4_INODE_IMAGIC = 13, - EXT4_INODE_JOURNAL_DATA = 14, - EXT4_INODE_NOTAIL = 15, - EXT4_INODE_DIRSYNC = 16, - EXT4_INODE_TOPDIR = 17, - EXT4_INODE_HUGE_FILE = 18, - EXT4_INODE_EXTENTS = 19, - EXT4_INODE_VERITY = 20, - EXT4_INODE_EA_INODE = 21, - EXT4_INODE_DAX = 25, - EXT4_INODE_INLINE_DATA = 28, - EXT4_INODE_PROJINHERIT = 29, - EXT4_INODE_CASEFOLD = 30, - EXT4_INODE_RESERVED = 31, +struct journal_block_tag3_s { + __be32 t_blocknr; + __be32 t_flags; + __be32 t_blocknr_high; + __be32 t_checksum; }; -enum { - MBE_REFERENCED_B = 0, - MBE_REUSABLE_B = 1, +typedef struct journal_block_tag3_s journal_block_tag3_t; + +typedef __u64 __be64; + +struct commit_header { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; + unsigned char h_chksum_type; + unsigned char h_chksum_size; + unsigned char h_padding[2]; + __be32 h_chksum[8]; + __be64 h_commit_sec; + __be32 h_commit_nsec; }; -typedef unsigned int ext4_group_t; - -typedef unsigned long long ext4_fsblk_t; - -struct ext4_orphan_block; - -struct ext4_orphan_info { - int of_blocks; - __u32 of_csum_seed; - struct ext4_orphan_block *of_binfo; +struct jbd2_journal_block_tail { + __be32 t_checksum; }; -struct ext4_es_stats { - unsigned long es_stats_shrunk; - struct percpu_counter es_stats_cache_hits; - struct percpu_counter es_stats_cache_misses; - u64 es_stats_scan_time; - u64 es_stats_max_scan_time; - struct percpu_counter es_stats_all_cnt; - struct percpu_counter es_stats_shk_cnt; +struct jbd2_journal_revoke_header_s { + journal_header_t r_header; + __be32 r_count; }; -struct ext4_journal_trigger { - struct jbd2_buffer_trigger_type tr_triggers; - struct super_block *sb; +typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; + +struct journal_block_tag_s { + __be32 t_blocknr; + __be16 t_checksum; + __be16 t_flags; + __be32 t_blocknr_high; }; -struct fscrypt_dummy_policy {}; - -struct dax_device; - -struct ext4_fc_stats { - unsigned int fc_ineligible_reason_count[10]; - unsigned long fc_num_commits; - unsigned long fc_ineligible_commits; - unsigned long fc_failed_commits; - unsigned long fc_skipped_commits; - unsigned long fc_numblks; - u64 s_fc_avg_commit_time; -}; - -struct ext4_fc_alloc_region; - -struct ext4_fc_replay_state { - int fc_replay_num_tags; - int fc_replay_expected_off; - int fc_current_pass; - int fc_cur_tag; - int fc_crc; - struct ext4_fc_alloc_region *fc_regions; - int fc_regions_size; - int fc_regions_used; - int fc_regions_valid; - int *fc_modified_inodes; - int fc_modified_inodes_used; - int fc_modified_inodes_size; -}; - -struct ext4_super_block; - -struct blockgroup_lock; - -struct ext4_system_blocks; - -struct ext4_group_info; - -struct ext4_locality_group; - -struct flex_groups; - -struct ext4_li_request; - -struct mb_cache; - -struct ext4_sb_info { - unsigned long s_desc_size; - unsigned long s_inodes_per_block; - unsigned long s_blocks_per_group; - unsigned long s_clusters_per_group; - unsigned long s_inodes_per_group; - unsigned long s_itb_per_group; - unsigned long s_gdb_count; - unsigned long s_desc_per_block; - ext4_group_t s_groups_count; - ext4_group_t s_blockfile_groups; - unsigned long s_overhead; - unsigned int s_cluster_ratio; - unsigned int s_cluster_bits; - loff_t s_bitmap_maxbytes; - struct buffer_head *s_sbh; - struct ext4_super_block *s_es; - struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc; - unsigned int s_mount_opt; - unsigned int s_mount_opt2; - unsigned long s_mount_flags; - unsigned int s_def_mount_opt; - unsigned int s_def_mount_opt2; - ext4_fsblk_t s_sb_block; - atomic64_t s_resv_clusters; - kuid_t s_resuid; - kgid_t s_resgid; - unsigned short s_mount_state; - unsigned short s_pad; - int s_addr_per_block_bits; - int s_desc_per_block_bits; - int s_inode_size; - int s_first_ino; - unsigned int s_inode_readahead_blks; - unsigned int s_inode_goal; - u32 s_hash_seed[4]; - int s_def_hash_version; - int s_hash_unsigned; - struct percpu_counter s_freeclusters_counter; - struct percpu_counter s_freeinodes_counter; - struct percpu_counter s_dirs_counter; - struct percpu_counter s_dirtyclusters_counter; - struct percpu_counter s_sra_exceeded_retry_limit; - struct blockgroup_lock *s_blockgroup_lock; - struct proc_dir_entry *s_proc; - struct kobject s_kobj; - struct completion s_kobj_unregister; - struct super_block *s_sb; - struct buffer_head *s_mmp_bh; - struct journal_s *s_journal; - unsigned long s_ext4_flags; - struct mutex s_orphan_lock; - struct list_head s_orphan; - struct ext4_orphan_info s_orphan_info; - unsigned long s_commit_interval; - u32 s_max_batch_time; - u32 s_min_batch_time; - struct file *s_journal_bdev_file; - unsigned int s_want_extra_isize; - struct ext4_system_blocks __attribute__((btf_type_tag("rcu"))) *s_system_blks; - struct ext4_group_info ** __attribute__((btf_type_tag("rcu"))) *s_group_info; - struct inode *s_buddy_cache; - spinlock_t s_md_lock; - unsigned short *s_mb_offsets; - unsigned int *s_mb_maxs; - unsigned int s_group_info_size; - unsigned int s_mb_free_pending; - struct list_head s_freed_data_list[2]; - struct list_head s_discard_list; - struct work_struct s_discard_work; - atomic_t s_retry_alloc_pending; - struct list_head *s_mb_avg_fragment_size; - rwlock_t *s_mb_avg_fragment_size_locks; - struct list_head *s_mb_largest_free_orders; - rwlock_t *s_mb_largest_free_orders_locks; - unsigned long s_stripe; - unsigned int s_mb_max_linear_groups; - unsigned int s_mb_stream_request; - unsigned int s_mb_max_to_scan; - unsigned int s_mb_min_to_scan; - unsigned int s_mb_stats; - unsigned int s_mb_order2_reqs; - unsigned int s_mb_group_prealloc; - unsigned int s_max_dir_size_kb; - unsigned long s_mb_last_group; - unsigned long s_mb_last_start; - unsigned int s_mb_prefetch; - unsigned int s_mb_prefetch_limit; - unsigned int s_mb_best_avail_max_trim_order; - atomic_t s_bal_reqs; - atomic_t s_bal_success; - atomic_t s_bal_allocated; - atomic_t s_bal_ex_scanned; - atomic_t s_bal_cX_ex_scanned[5]; - atomic_t s_bal_groups_scanned; - atomic_t s_bal_goals; - atomic_t s_bal_len_goals; - atomic_t s_bal_breaks; - atomic_t s_bal_2orders; - atomic_t s_bal_p2_aligned_bad_suggestions; - atomic_t s_bal_goal_fast_bad_suggestions; - atomic_t s_bal_best_avail_bad_suggestions; - atomic64_t s_bal_cX_groups_considered[5]; - atomic64_t s_bal_cX_hits[5]; - atomic64_t s_bal_cX_failed[5]; - atomic_t s_mb_buddies_generated; - atomic64_t s_mb_generation_time; - atomic_t s_mb_lost_chunks; - atomic_t s_mb_preallocated; - atomic_t s_mb_discarded; - atomic_t s_lock_busy; - struct ext4_locality_group __attribute__((btf_type_tag("percpu"))) *s_locality_groups; - unsigned long s_sectors_written_start; - u64 s_kbytes_written; - unsigned int s_extent_max_zeroout_kb; - unsigned int s_log_groups_per_flex; - struct flex_groups * __attribute__((btf_type_tag("rcu"))) *s_flex_groups; - ext4_group_t s_flex_groups_allocated; - struct workqueue_struct *rsv_conversion_wq; - struct timer_list s_err_report; - struct ext4_li_request *s_li_request; - unsigned int s_li_wait_mult; - struct task_struct *s_mmp_tsk; - unsigned long s_last_trim_minblks; - struct crypto_shash *s_chksum_driver; - __u32 s_csum_seed; - struct shrinker *s_es_shrinker; - struct list_head s_es_list; - long s_es_nr_inode; - struct ext4_es_stats s_es_stats; - struct mb_cache *s_ea_block_cache; - struct mb_cache *s_ea_inode_cache; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - spinlock_t s_es_lock; - struct ext4_journal_trigger s_journal_triggers[1]; - struct ratelimit_state s_err_ratelimit_state; - struct ratelimit_state s_warning_ratelimit_state; - struct ratelimit_state s_msg_ratelimit_state; - atomic_t s_warning_count; - atomic_t s_msg_count; - struct fscrypt_dummy_policy s_dummy_enc_policy; - struct percpu_rw_semaphore s_writepages_rwsem; - struct dax_device *s_daxdev; - u64 s_dax_part_off; - errseq_t s_bdev_wb_err; - spinlock_t s_bdev_wb_lock; - spinlock_t s_error_lock; - int s_add_error_count; - int s_first_error_code; - __u32 s_first_error_line; - __u32 s_first_error_ino; - __u64 s_first_error_block; - const char *s_first_error_func; - time64_t s_first_error_time; - int s_last_error_code; - __u32 s_last_error_line; - __u32 s_last_error_ino; - __u64 s_last_error_block; - const char *s_last_error_func; - time64_t s_last_error_time; - struct work_struct s_sb_upd_work; - atomic_t s_fc_subtid; - struct list_head s_fc_q[2]; - struct list_head s_fc_dentry_q[2]; - unsigned int s_fc_bytes; - spinlock_t s_fc_lock; - struct buffer_head *s_fc_bh; - struct ext4_fc_stats s_fc_stats; - tid_t s_fc_ineligible_tid; - struct ext4_fc_replay_state s_fc_replay_state; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -typedef __u32 __le32; - -typedef __u16 __le16; - -typedef __u64 __le64; - -struct ext4_super_block { - __le32 s_inodes_count; - __le32 s_blocks_count_lo; - __le32 s_r_blocks_count_lo; - __le32 s_free_blocks_count_lo; - __le32 s_free_inodes_count; - __le32 s_first_data_block; - __le32 s_log_block_size; - __le32 s_log_cluster_size; - __le32 s_blocks_per_group; - __le32 s_clusters_per_group; - __le32 s_inodes_per_group; - __le32 s_mtime; - __le32 s_wtime; - __le16 s_mnt_count; - __le16 s_max_mnt_count; - __le16 s_magic; - __le16 s_state; - __le16 s_errors; - __le16 s_minor_rev_level; - __le32 s_lastcheck; - __le32 s_checkinterval; - __le32 s_creator_os; - __le32 s_rev_level; - __le16 s_def_resuid; - __le16 s_def_resgid; - __le32 s_first_ino; - __le16 s_inode_size; - __le16 s_block_group_nr; - __le32 s_feature_compat; - __le32 s_feature_incompat; - __le32 s_feature_ro_compat; - __u8 s_uuid[16]; - char s_volume_name[16]; - char s_last_mounted[64]; - __le32 s_algorithm_usage_bitmap; - __u8 s_prealloc_blocks; - __u8 s_prealloc_dir_blocks; - __le16 s_reserved_gdt_blocks; - __u8 s_journal_uuid[16]; - __le32 s_journal_inum; - __le32 s_journal_dev; - __le32 s_last_orphan; - __le32 s_hash_seed[4]; - __u8 s_def_hash_version; - __u8 s_jnl_backup_type; - __le16 s_desc_size; - __le32 s_default_mount_opts; - __le32 s_first_meta_bg; - __le32 s_mkfs_time; - __le32 s_jnl_blocks[17]; - __le32 s_blocks_count_hi; - __le32 s_r_blocks_count_hi; - __le32 s_free_blocks_count_hi; - __le16 s_min_extra_isize; - __le16 s_want_extra_isize; - __le32 s_flags; - __le16 s_raid_stride; - __le16 s_mmp_update_interval; - __le64 s_mmp_block; - __le32 s_raid_stripe_width; - __u8 s_log_groups_per_flex; - __u8 s_checksum_type; - __u8 s_encryption_level; - __u8 s_reserved_pad; - __le64 s_kbytes_written; - __le32 s_snapshot_inum; - __le32 s_snapshot_id; - __le64 s_snapshot_r_blocks_count; - __le32 s_snapshot_list; - __le32 s_error_count; - __le32 s_first_error_time; - __le32 s_first_error_ino; - __le64 s_first_error_block; - __u8 s_first_error_func[32]; - __le32 s_first_error_line; - __le32 s_last_error_time; - __le32 s_last_error_ino; - __le32 s_last_error_line; - __le64 s_last_error_block; - __u8 s_last_error_func[32]; - __u8 s_mount_opts[64]; - __le32 s_usr_quota_inum; - __le32 s_grp_quota_inum; - __le32 s_overhead_clusters; - __le32 s_backup_bgs[2]; - __u8 s_encrypt_algos[4]; - __u8 s_encrypt_pw_salt[16]; - __le32 s_lpf_ino; - __le32 s_prj_quota_inum; - __le32 s_checksum_seed; - __u8 s_wtime_hi; - __u8 s_mtime_hi; - __u8 s_mkfs_time_hi; - __u8 s_lastcheck_hi; - __u8 s_first_error_time_hi; - __u8 s_last_error_time_hi; - __u8 s_first_error_errcode; - __u8 s_last_error_errcode; - __le16 s_encoding; - __le16 s_encoding_flags; - __le32 s_orphan_file_inum; - __le32 s_reserved[94]; - __le32 s_checksum; -}; - -struct bgl_lock { - spinlock_t lock; -}; - -struct blockgroup_lock { - struct bgl_lock locks[128]; -}; - -struct ext4_orphan_block { - atomic_t ob_free_entries; - struct buffer_head *ob_bh; -}; - -struct ext4_system_blocks { - struct rb_root root; - struct callback_head rcu; -}; - -typedef int ext4_grpblk_t; - -struct ext4_group_info { - unsigned long bb_state; - struct rb_root bb_free_root; - ext4_grpblk_t bb_first_free; - ext4_grpblk_t bb_free; - ext4_grpblk_t bb_fragments; - int bb_avg_fragment_size_order; - ext4_grpblk_t bb_largest_free_order; - ext4_group_t bb_group; - struct list_head bb_prealloc_list; - struct rw_semaphore alloc_sem; - struct list_head bb_avg_fragment_size_node; - struct list_head bb_largest_free_order_node; - ext4_grpblk_t bb_counters[0]; -}; - -struct ext4_locality_group { - struct mutex lg_mutex; - struct list_head lg_prealloc_list[10]; - spinlock_t lg_prealloc_lock; -}; - -struct flex_groups { - atomic64_t free_clusters; - atomic_t free_inodes; - atomic_t used_dirs; -}; - -struct ext4_li_request { - struct super_block *lr_super; - enum ext4_li_mode lr_mode; - ext4_group_t lr_first_not_zeroed; - ext4_group_t lr_next_group; - struct list_head lr_request; - unsigned long lr_next_sched; - unsigned long lr_timeout; -}; - -typedef __u32 ext4_lblk_t; - -struct ext4_fc_alloc_region { - ext4_lblk_t lblk; - ext4_fsblk_t pblk; - int ino; - int len; -}; - -struct ext4_xattr_ibody_header { - __le32 h_magic; -}; - -struct ext4_xattr_entry { - __u8 e_name_len; - __u8 e_name_index; - __le16 e_value_offs; - __le32 e_value_inum; - __le32 e_value_size; - __le32 e_hash; - char e_name[0]; -}; - -struct ext4_xattr_header { - __le32 h_magic; - __le32 h_refcount; - __le32 h_blocks; - __le32 h_hash; - __le32 h_checksum; - __u32 h_reserved[3]; -}; - -struct extent_status; - -struct ext4_es_tree { - struct rb_root root; - struct extent_status *cache_es; -}; - -struct ext4_pending_tree { - struct rb_root root; -}; - -struct ext4_inode_info { - __le32 i_data[15]; - __u32 i_dtime; - ext4_fsblk_t i_file_acl; - ext4_group_t i_block_group; - ext4_lblk_t i_dir_start_lookup; - unsigned long i_flags; - struct rw_semaphore xattr_sem; - union { - struct list_head i_orphan; - unsigned int i_orphan_idx; - }; - struct list_head i_fc_dilist; - struct list_head i_fc_list; - ext4_lblk_t i_fc_lblk_start; - ext4_lblk_t i_fc_lblk_len; - atomic_t i_fc_updates; - wait_queue_head_t i_fc_wait; - struct mutex i_fc_lock; - loff_t i_disksize; - struct rw_semaphore i_data_sem; - struct inode vfs_inode; - struct jbd2_inode *jinode; - spinlock_t i_raw_lock; - struct timespec64 i_crtime; - atomic_t i_prealloc_active; - struct rb_root i_prealloc_node; - rwlock_t i_prealloc_lock; - struct ext4_es_tree i_es_tree; - rwlock_t i_es_lock; - struct list_head i_es_list; - unsigned int i_es_all_nr; - unsigned int i_es_shk_nr; - ext4_lblk_t i_es_shrink_lblk; - ext4_group_t i_last_alloc_group; - unsigned int i_reserved_data_blocks; - struct ext4_pending_tree i_pending_tree; - __u16 i_extra_isize; - u16 i_inline_off; - u16 i_inline_size; - spinlock_t i_completed_io_lock; - struct list_head i_rsv_conversion_list; - struct work_struct i_rsv_conversion_work; - atomic_t i_unwritten; - spinlock_t i_block_reservation_lock; - tid_t i_sync_tid; - tid_t i_datasync_tid; - __u32 i_csum_seed; - kprojid_t i_projid; -}; - -struct extent_status { - struct rb_node rb_node; - ext4_lblk_t es_lblk; - ext4_lblk_t es_len; - ext4_fsblk_t es_pblk; -}; - -struct ext4_inode { - __le16 i_mode; - __le16 i_uid; - __le32 i_size_lo; - __le32 i_atime; - __le32 i_ctime; - __le32 i_mtime; - __le32 i_dtime; - __le16 i_gid; - __le16 i_links_count; - __le32 i_blocks_lo; - __le32 i_flags; - union { - struct { - __le32 l_i_version; - } linux1; - struct { - __u32 h_i_translator; - } hurd1; - struct { - __u32 m_i_reserved1; - } masix1; - } osd1; - __le32 i_block[15]; - __le32 i_generation; - __le32 i_file_acl_lo; - __le32 i_size_high; - __le32 i_obso_faddr; - union { - struct { - __le16 l_i_blocks_high; - __le16 l_i_file_acl_high; - __le16 l_i_uid_high; - __le16 l_i_gid_high; - __le16 l_i_checksum_lo; - __le16 l_i_reserved; - } linux2; - struct { - __le16 h_i_reserved1; - __u16 h_i_mode_high; - __u16 h_i_uid_high; - __u16 h_i_gid_high; - __u32 h_i_author; - } hurd2; - struct { - __le16 h_i_reserved1; - __le16 m_i_file_acl_high; - __u32 m_i_reserved2[2]; - } masix2; - } osd2; - __le16 i_extra_isize; - __le16 i_checksum_hi; - __le32 i_ctime_extra; - __le32 i_mtime_extra; - __le32 i_atime_extra; - __le32 i_crtime; - __le32 i_crtime_extra; - __le32 i_version_hi; - __le32 i_projid; -}; - -struct mb_cache_entry { - struct list_head e_list; - struct hlist_bl_node e_hash_list; - atomic_t e_refcnt; - u32 e_key; - unsigned long e_flags; - u64 e_value; -}; - -struct ext4_iloc { - struct buffer_head *bh; - unsigned long offset; - ext4_group_t block_group; -}; - -struct jbd2_journal_handle; - -typedef struct jbd2_journal_handle handle_t; - -struct jbd2_journal_handle { - union { - transaction_t *h_transaction; - journal_t *h_journal; - }; - handle_t *h_rsv_handle; - int h_total_credits; - int h_revoke_credits; - int h_revoke_credits_requested; - int h_ref; - int h_err; - unsigned int h_sync: 1; - unsigned int h_jdata: 1; - unsigned int h_reserved: 1; - unsigned int h_aborted: 1; - unsigned int h_type: 8; - unsigned int h_line_no: 16; - unsigned long h_start_jiffies; - unsigned int h_requested_credits; - unsigned int saved_alloc_context; -}; +typedef struct journal_block_tag_s journal_block_tag_t; struct shash_desc { struct crypto_shash *tfm; void *__ctx[0]; }; -struct ext4_map_blocks { - ext4_fsblk_t m_pblk; - ext4_lblk_t m_lblk; - unsigned int m_len; - unsigned int m_flags; -}; - -typedef enum { - EXT4_IGET_NORMAL = 0, - EXT4_IGET_SPECIAL = 1, - EXT4_IGET_HANDLE = 2, - EXT4_IGET_BAD = 4, - EXT4_IGET_EA_INODE = 8, -} ext4_iget_flags; - -struct ext4_xattr_inode_array { - unsigned int count; - struct inode *inodes[0]; -}; - -struct ext4_xattr_info { - const char *name; - const void *value; - size_t value_len; - int name_index; - int in_inode; -}; - -struct ext4_xattr_search { - struct ext4_xattr_entry *first; - void *base; - void *end; - struct ext4_xattr_entry *here; - int not_found; -}; - -struct ext4_xattr_ibody_find { - struct ext4_xattr_search s; - struct ext4_iloc iloc; -}; - -struct ext4_xattr_block_find { - struct ext4_xattr_search s; - struct buffer_head *bh; -}; - -struct btrfs_free_space_ctl; - -struct btrfs_free_space; - -struct btrfs_free_space_op { - bool (*use_bitmap)(struct btrfs_free_space_ctl *, struct btrfs_free_space *); -}; - -struct btrfs_block_group; - -struct btrfs_free_space_ctl { - spinlock_t tree_lock; - struct rb_root free_space_offset; - struct rb_root_cached free_space_bytes; - u64 free_space; - int extents_thresh; - int free_extents; - int total_bitmaps; - int unit; - u64 start; - s32 discardable_extents[2]; - s64 discardable_bytes[2]; - const struct btrfs_free_space_op *op; - struct btrfs_block_group *block_group; - struct mutex cache_writeout_mutex; - struct list_head trimming_ranges; -}; - -enum btrfs_discard_state { - BTRFS_DISCARD_EXTENTS = 0, - BTRFS_DISCARD_BITMAPS = 1, - BTRFS_DISCARD_RESET_CURSOR = 2, -}; - -struct btrfs_fs_info; - -struct btrfs_io_ctl { - void *cur; - void *orig; - struct page *page; - struct page **pages; - struct btrfs_fs_info *fs_info; - struct inode *inode; - unsigned long size; - int index; - int num_pages; - int entries; - int bitmaps; -}; - -enum btrfs_block_group_size_class { - BTRFS_BG_SZ_NONE = 0, - BTRFS_BG_SZ_SMALL = 1, - BTRFS_BG_SZ_MEDIUM = 2, - BTRFS_BG_SZ_LARGE = 3, -}; - -struct btrfs_caching_control; - -struct btrfs_space_info; - -struct btrfs_chunk_map; - -struct extent_buffer; - -struct btrfs_block_group { - struct btrfs_fs_info *fs_info; - struct inode *inode; - spinlock_t lock; - u64 start; - u64 length; - u64 pinned; - u64 reserved; - u64 used; - u64 delalloc_bytes; - u64 bytes_super; - u64 flags; - u64 cache_generation; - u64 global_root_id; - u64 commit_used; - u32 bitmap_high_thresh; - u32 bitmap_low_thresh; - struct rw_semaphore data_rwsem; - unsigned long full_stripe_len; - unsigned long runtime_flags; - unsigned int ro; - int disk_cache_state; - int cached; - struct btrfs_caching_control *caching_ctl; - struct btrfs_space_info *space_info; - struct btrfs_free_space_ctl *free_space_ctl; - struct rb_node cache_node; - struct list_head list; - refcount_t refs; - struct list_head cluster_list; - struct list_head bg_list; - struct list_head ro_list; - atomic_t frozen; - struct list_head discard_list; - int discard_index; - u64 discard_eligible_time; - u64 discard_cursor; - enum btrfs_discard_state discard_state; - struct list_head dirty_list; - struct list_head io_list; - struct btrfs_io_ctl io_ctl; - atomic_t reservations; - atomic_t nocow_writers; - struct mutex free_space_lock; - int swap_extents; - u64 alloc_offset; - u64 zone_unusable; - u64 zone_capacity; - u64 meta_write_pointer; - struct btrfs_chunk_map *physical_map; - struct list_head active_bg_list; - struct work_struct zone_finish_work; - struct extent_buffer *last_eb; - enum btrfs_block_group_size_class size_class; -}; - -struct btrfs_inode; - -struct extent_io_tree { - struct rb_root state; - union { - struct btrfs_fs_info *fs_info; - struct btrfs_inode *inode; - }; - u8 owner; - spinlock_t lock; +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + unsigned long head_block; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; }; enum btrfs_rsv_type { @@ -15292,6 +15599,159 @@ enum btrfs_rsv_type { BTRFS_BLOCK_RSV_TEMP = 7, }; +enum btrfs_exclusive_operation { + BTRFS_EXCLOP_NONE = 0, + BTRFS_EXCLOP_BALANCE_PAUSED = 1, + BTRFS_EXCLOP_BALANCE = 2, + BTRFS_EXCLOP_DEV_ADD = 3, + BTRFS_EXCLOP_DEV_REMOVE = 4, + BTRFS_EXCLOP_DEV_REPLACE = 5, + BTRFS_EXCLOP_RESIZE = 6, + BTRFS_EXCLOP_SWAP_ACTIVATE = 7, +}; + +enum { + __EXTENT_FLAG_PINNED_BIT = 0, + EXTENT_FLAG_PINNED = 1, + __EXTENT_FLAG_PINNED_SEQ = 0, + __EXTENT_FLAG_COMPRESS_ZLIB_BIT = 1, + EXTENT_FLAG_COMPRESS_ZLIB = 2, + __EXTENT_FLAG_COMPRESS_ZLIB_SEQ = 1, + __EXTENT_FLAG_COMPRESS_LZO_BIT = 2, + EXTENT_FLAG_COMPRESS_LZO = 4, + __EXTENT_FLAG_COMPRESS_LZO_SEQ = 2, + __EXTENT_FLAG_COMPRESS_ZSTD_BIT = 3, + EXTENT_FLAG_COMPRESS_ZSTD = 8, + __EXTENT_FLAG_COMPRESS_ZSTD_SEQ = 3, + __EXTENT_FLAG_PREALLOC_BIT = 4, + EXTENT_FLAG_PREALLOC = 16, + __EXTENT_FLAG_PREALLOC_SEQ = 4, + __EXTENT_FLAG_LOGGING_BIT = 5, + EXTENT_FLAG_LOGGING = 32, + __EXTENT_FLAG_LOGGING_SEQ = 5, + __EXTENT_FLAG_FILLING_BIT = 6, + EXTENT_FLAG_FILLING = 64, + __EXTENT_FLAG_FILLING_SEQ = 6, + __EXTENT_FLAG_MERGED_BIT = 7, + EXTENT_FLAG_MERGED = 128, + __EXTENT_FLAG_MERGED_SEQ = 7, +}; + +enum { + BTRFS_INODE_FLUSH_ON_CLOSE = 0, + BTRFS_INODE_DUMMY = 1, + BTRFS_INODE_IN_DEFRAG = 2, + BTRFS_INODE_HAS_ASYNC_EXTENT = 3, + BTRFS_INODE_NEEDS_FULL_SYNC = 4, + BTRFS_INODE_COPY_EVERYTHING = 5, + BTRFS_INODE_HAS_PROPS = 6, + BTRFS_INODE_SNAPSHOT_FLUSH = 7, + BTRFS_INODE_NO_XATTRS = 8, + BTRFS_INODE_NO_DELALLOC_FLUSH = 9, + BTRFS_INODE_VERITY_IN_PROGRESS = 10, + BTRFS_INODE_FREE_SPACE_INODE = 11, + BTRFS_INODE_NO_CAP_XATTR = 12, +}; + +enum { + __EXTENT_DIRTY_BIT = 0, + EXTENT_DIRTY = 1, + __EXTENT_DIRTY_SEQ = 0, + __EXTENT_UPTODATE_BIT = 1, + EXTENT_UPTODATE = 2, + __EXTENT_UPTODATE_SEQ = 1, + __EXTENT_LOCKED_BIT = 2, + EXTENT_LOCKED = 4, + __EXTENT_LOCKED_SEQ = 2, + __EXTENT_NEW_BIT = 3, + EXTENT_NEW = 8, + __EXTENT_NEW_SEQ = 3, + __EXTENT_DELALLOC_BIT = 4, + EXTENT_DELALLOC = 16, + __EXTENT_DELALLOC_SEQ = 4, + __EXTENT_DEFRAG_BIT = 5, + EXTENT_DEFRAG = 32, + __EXTENT_DEFRAG_SEQ = 5, + __EXTENT_BOUNDARY_BIT = 6, + EXTENT_BOUNDARY = 64, + __EXTENT_BOUNDARY_SEQ = 6, + __EXTENT_NODATASUM_BIT = 7, + EXTENT_NODATASUM = 128, + __EXTENT_NODATASUM_SEQ = 7, + __EXTENT_CLEAR_META_RESV_BIT = 8, + EXTENT_CLEAR_META_RESV = 256, + __EXTENT_CLEAR_META_RESV_SEQ = 8, + __EXTENT_NEED_WAIT_BIT = 9, + EXTENT_NEED_WAIT = 512, + __EXTENT_NEED_WAIT_SEQ = 9, + __EXTENT_NORESERVE_BIT = 10, + EXTENT_NORESERVE = 1024, + __EXTENT_NORESERVE_SEQ = 10, + __EXTENT_QGROUP_RESERVED_BIT = 11, + EXTENT_QGROUP_RESERVED = 2048, + __EXTENT_QGROUP_RESERVED_SEQ = 11, + __EXTENT_CLEAR_DATA_RESV_BIT = 12, + EXTENT_CLEAR_DATA_RESV = 4096, + __EXTENT_CLEAR_DATA_RESV_SEQ = 12, + __EXTENT_DELALLOC_NEW_BIT = 13, + EXTENT_DELALLOC_NEW = 8192, + __EXTENT_DELALLOC_NEW_SEQ = 13, + __EXTENT_ADD_INODE_BYTES_BIT = 14, + EXTENT_ADD_INODE_BYTES = 16384, + __EXTENT_ADD_INODE_BYTES_SEQ = 14, + __EXTENT_CLEAR_ALL_BITS_BIT = 15, + EXTENT_CLEAR_ALL_BITS = 32768, + __EXTENT_CLEAR_ALL_BITS_SEQ = 15, + __EXTENT_NOWAIT_BIT = 16, + EXTENT_NOWAIT = 65536, + __EXTENT_NOWAIT_SEQ = 16, +}; + +struct extent_map { + struct rb_node rb_node; + u64 start; + u64 len; + u64 mod_start; + u64 mod_len; + u64 orig_start; + u64 orig_block_len; + u64 ram_bytes; + u64 block_start; + u64 block_len; + u64 generation; + u32 flags; + refcount_t refs; + struct list_head list; +}; + +struct extent_map_tree { + struct rb_root_cached map; + struct list_head modified_extents; + rwlock_t lock; +}; + +struct btrfs_key { + __u64 objectid; + __u8 type; + __u64 offset; +} __attribute__((packed)); + +struct btrfs_fs_info; + +struct btrfs_inode; + +struct extent_io_tree { + struct rb_root state; + union { + struct btrfs_fs_info *fs_info; + struct btrfs_inode *inode; + }; + u8 owner; + spinlock_t lock; +}; + +struct btrfs_space_info; + struct btrfs_block_rsv { u64 size; u64 reserved; @@ -15304,6 +15764,217 @@ struct btrfs_block_rsv { u64 qgroup_rsv_reserved; }; +struct btrfs_root; + +struct btrfs_delayed_node; + +struct btrfs_inode { + struct btrfs_root *root; + struct btrfs_key location; + u8 prop_compress; + u8 defrag_compress; + spinlock_t lock; + struct extent_map_tree extent_tree; + struct extent_io_tree io_tree; + struct extent_io_tree *file_extent_tree; + struct mutex log_mutex; + unsigned int outstanding_extents; + spinlock_t ordered_tree_lock; + struct rb_root ordered_tree; + struct rb_node *ordered_tree_last; + struct list_head delalloc_inodes; + struct rb_node rb_node; + unsigned long runtime_flags; + u64 generation; + u64 last_trans; + u64 logged_trans; + int last_sub_trans; + int last_log_commit; + union { + u64 delalloc_bytes; + u64 first_dir_index_to_log; + }; + union { + u64 new_delalloc_bytes; + u64 last_dir_index_offset; + }; + u64 defrag_bytes; + u64 disk_i_size; + u64 index_cnt; + u64 dir_index; + u64 last_unlink_trans; + u64 last_reflink_trans; + u64 csum_bytes; + u32 flags; + u32 ro_flags; + struct btrfs_block_rsv block_rsv; + struct btrfs_delayed_node *delayed_node; + u64 i_otime_sec; + u32 i_otime_nsec; + struct list_head delayed_iput; + struct rw_semaphore i_mmap_lock; + struct inode vfs_inode; +}; + +typedef __u64 __le64; + +typedef __u32 __le32; + +struct btrfs_timespec { + __le64 sec; + __le32 nsec; +} __attribute__((packed)); + +struct btrfs_inode_item { + __le64 generation; + __le64 transid; + __le64 size; + __le64 nbytes; + __le64 block_group; + __le32 nlink; + __le32 uid; + __le32 gid; + __le32 mode; + __le64 rdev; + __le64 flags; + __le64 sequence; + __le64 reserved[4]; + struct btrfs_timespec atime; + struct btrfs_timespec ctime; + struct btrfs_timespec mtime; + struct btrfs_timespec otime; +}; + +struct btrfs_disk_key { + __le64 objectid; + __u8 type; + __le64 offset; +} __attribute__((packed)); + +struct btrfs_root_item { + struct btrfs_inode_item inode; + __le64 generation; + __le64 root_dirid; + __le64 bytenr; + __le64 byte_limit; + __le64 bytes_used; + __le64 last_snapshot; + __le64 flags; + __le32 refs; + struct btrfs_disk_key drop_progress; + __u8 drop_level; + __u8 level; + __le64 generation_v2; + __u8 uuid[16]; + __u8 parent_uuid[16]; + __u8 received_uuid[16]; + __le64 ctransid; + __le64 otransid; + __le64 stransid; + __le64 rtransid; + struct btrfs_timespec ctime; + struct btrfs_timespec otime; + struct btrfs_timespec stime; + struct btrfs_timespec rtime; + __le64 reserved[8]; +} __attribute__((packed)); + +struct btrfs_drew_lock { + atomic_t readers; + atomic_t writers; + wait_queue_head_t pending_writers; + wait_queue_head_t pending_readers; +}; + +struct btrfs_qgroup_swapped_blocks { + spinlock_t lock; + bool swapped; + struct rb_root blocks[8]; +}; + +struct extent_buffer; + +struct btrfs_root { + struct rb_node rb_node; + struct extent_buffer *node; + struct extent_buffer *commit_root; + struct btrfs_root *log_root; + struct btrfs_root *reloc_root; + unsigned long state; + struct btrfs_root_item root_item; + struct btrfs_key root_key; + struct btrfs_fs_info *fs_info; + struct extent_io_tree dirty_log_pages; + struct mutex objectid_mutex; + spinlock_t accounting_lock; + struct btrfs_block_rsv *block_rsv; + struct mutex log_mutex; + wait_queue_head_t log_writer_wait; + wait_queue_head_t log_commit_wait[2]; + struct list_head log_ctxs[2]; + atomic_t log_writers; + atomic_t log_commit[2]; + atomic_t log_batch; + int log_transid; + int log_transid_committed; + int last_log_commit; + pid_t log_start_pid; + u64 last_trans; + u64 free_objectid; + struct btrfs_key defrag_progress; + struct btrfs_key defrag_max; + struct list_head dirty_list; + struct list_head root_list; + spinlock_t inode_lock; + struct rb_root inode_tree; + struct xarray delayed_nodes; + dev_t anon_dev; + spinlock_t root_item_lock; + refcount_t refs; + struct mutex delalloc_mutex; + spinlock_t delalloc_lock; + struct list_head delalloc_inodes; + struct list_head delalloc_root; + u64 nr_delalloc_inodes; + struct mutex ordered_extent_mutex; + spinlock_t ordered_extent_lock; + struct list_head ordered_extents; + struct list_head ordered_root; + u64 nr_ordered_extents; + struct list_head reloc_dirty_list; + int send_in_progress; + int dedupe_in_progress; + struct btrfs_drew_lock snapshot_lock; + atomic_t snapshot_force_cow; + spinlock_t qgroup_meta_rsv_lock; + u64 qgroup_meta_rsv_pertrans; + u64 qgroup_meta_rsv_prealloc; + wait_queue_head_t qgroup_flush_wait; + atomic_t nr_swapfiles; + struct btrfs_qgroup_swapped_blocks swapped_blocks; + struct extent_io_tree log_csum_range; + u64 relocation_src_root; +}; + +struct extent_buffer { + u64 start; + u32 len; + u32 folio_size; + unsigned long bflags; + struct btrfs_fs_info *fs_info; + void *addr; + spinlock_t refs_lock; + atomic_t refs; + int read_mirror; + s8 log_index; + u8 folio_shift; + struct callback_head callback_head; + struct rw_semaphore lock; + struct folio *folios[16]; +}; + +struct btrfs_block_group; + struct btrfs_free_cluster { spinlock_t lock; spinlock_t refill_lock; @@ -15334,12 +16005,6 @@ struct btrfs_discard_ctl { atomic64_t discard_bytes_saved; }; -struct btrfs_key { - __u64 objectid; - __u8 type; - __u64 offset; -} __attribute__((packed)); - struct btrfs_work; typedef void (*btrfs_func_t)(struct btrfs_work *); @@ -15405,17 +16070,6 @@ struct semaphore { struct list_head wait_list; }; -enum btrfs_exclusive_operation { - BTRFS_EXCLOP_NONE = 0, - BTRFS_EXCLOP_BALANCE_PAUSED = 1, - BTRFS_EXCLOP_BALANCE = 2, - BTRFS_EXCLOP_DEV_ADD = 3, - BTRFS_EXCLOP_DEV_REMOVE = 4, - BTRFS_EXCLOP_DEV_REPLACE = 5, - BTRFS_EXCLOP_RESIZE = 6, - BTRFS_EXCLOP_SWAP_ACTIVATE = 7, -}; - struct btrfs_commit_stats { u64 commit_count; u64 max_commit_dur; @@ -15423,8 +16077,6 @@ struct btrfs_commit_stats { u64 total_commit_dur; }; -struct btrfs_root; - struct btrfs_transaction; struct btrfs_super_block; @@ -15644,316 +16296,7 @@ struct btrfs_fs_info { struct lockdep_map btrfs_ordered_extent_map; }; -struct btrfs_timespec { - __le64 sec; - __le32 nsec; -} __attribute__((packed)); - -struct btrfs_inode_item { - __le64 generation; - __le64 transid; - __le64 size; - __le64 nbytes; - __le64 block_group; - __le32 nlink; - __le32 uid; - __le32 gid; - __le32 mode; - __le64 rdev; - __le64 flags; - __le64 sequence; - __le64 reserved[4]; - struct btrfs_timespec atime; - struct btrfs_timespec ctime; - struct btrfs_timespec mtime; - struct btrfs_timespec otime; -}; - -struct btrfs_disk_key { - __le64 objectid; - __u8 type; - __le64 offset; -} __attribute__((packed)); - -struct btrfs_root_item { - struct btrfs_inode_item inode; - __le64 generation; - __le64 root_dirid; - __le64 bytenr; - __le64 byte_limit; - __le64 bytes_used; - __le64 last_snapshot; - __le64 flags; - __le32 refs; - struct btrfs_disk_key drop_progress; - __u8 drop_level; - __u8 level; - __le64 generation_v2; - __u8 uuid[16]; - __u8 parent_uuid[16]; - __u8 received_uuid[16]; - __le64 ctransid; - __le64 otransid; - __le64 stransid; - __le64 rtransid; - struct btrfs_timespec ctime; - struct btrfs_timespec otime; - struct btrfs_timespec stime; - struct btrfs_timespec rtime; - __le64 reserved[8]; -} __attribute__((packed)); - -struct btrfs_drew_lock { - atomic_t readers; - atomic_t writers; - wait_queue_head_t pending_writers; - wait_queue_head_t pending_readers; -}; - -struct btrfs_qgroup_swapped_blocks { - spinlock_t lock; - bool swapped; - struct rb_root blocks[8]; -}; - -struct btrfs_root { - struct rb_node rb_node; - struct extent_buffer *node; - struct extent_buffer *commit_root; - struct btrfs_root *log_root; - struct btrfs_root *reloc_root; - unsigned long state; - struct btrfs_root_item root_item; - struct btrfs_key root_key; - struct btrfs_fs_info *fs_info; - struct extent_io_tree dirty_log_pages; - struct mutex objectid_mutex; - spinlock_t accounting_lock; - struct btrfs_block_rsv *block_rsv; - struct mutex log_mutex; - wait_queue_head_t log_writer_wait; - wait_queue_head_t log_commit_wait[2]; - struct list_head log_ctxs[2]; - atomic_t log_writers; - atomic_t log_commit[2]; - atomic_t log_batch; - int log_transid; - int log_transid_committed; - int last_log_commit; - pid_t log_start_pid; - u64 last_trans; - u64 free_objectid; - struct btrfs_key defrag_progress; - struct btrfs_key defrag_max; - struct list_head dirty_list; - struct list_head root_list; - spinlock_t inode_lock; - struct rb_root inode_tree; - struct xarray delayed_nodes; - dev_t anon_dev; - spinlock_t root_item_lock; - refcount_t refs; - struct mutex delalloc_mutex; - spinlock_t delalloc_lock; - struct list_head delalloc_inodes; - struct list_head delalloc_root; - u64 nr_delalloc_inodes; - struct mutex ordered_extent_mutex; - spinlock_t ordered_extent_lock; - struct list_head ordered_extents; - struct list_head ordered_root; - u64 nr_ordered_extents; - struct list_head reloc_dirty_list; - int send_in_progress; - int dedupe_in_progress; - struct btrfs_drew_lock snapshot_lock; - atomic_t snapshot_force_cow; - spinlock_t qgroup_meta_rsv_lock; - u64 qgroup_meta_rsv_pertrans; - u64 qgroup_meta_rsv_prealloc; - wait_queue_head_t qgroup_flush_wait; - atomic_t nr_swapfiles; - struct btrfs_qgroup_swapped_blocks swapped_blocks; - struct extent_io_tree log_csum_range; - u64 relocation_src_root; -}; - -struct extent_buffer { - u64 start; - u32 len; - u32 folio_size; - unsigned long bflags; - struct btrfs_fs_info *fs_info; - void *addr; - spinlock_t refs_lock; - atomic_t refs; - int read_mirror; - s8 log_index; - u8 folio_shift; - struct callback_head callback_head; - struct rw_semaphore lock; - struct folio *folios[16]; -}; - -struct extent_map_tree { - struct rb_root_cached map; - struct list_head modified_extents; - rwlock_t lock; -}; - -struct btrfs_delayed_node; - -struct btrfs_inode { - struct btrfs_root *root; - struct btrfs_key location; - u8 prop_compress; - u8 defrag_compress; - spinlock_t lock; - struct extent_map_tree extent_tree; - struct extent_io_tree io_tree; - struct extent_io_tree *file_extent_tree; - struct mutex log_mutex; - unsigned int outstanding_extents; - spinlock_t ordered_tree_lock; - struct rb_root ordered_tree; - struct rb_node *ordered_tree_last; - struct list_head delalloc_inodes; - struct rb_node rb_node; - unsigned long runtime_flags; - u64 generation; - u64 last_trans; - u64 logged_trans; - int last_sub_trans; - int last_log_commit; - union { - u64 delalloc_bytes; - u64 first_dir_index_to_log; - }; - union { - u64 new_delalloc_bytes; - u64 last_dir_index_offset; - }; - u64 defrag_bytes; - u64 disk_i_size; - u64 index_cnt; - u64 dir_index; - u64 last_unlink_trans; - u64 last_reflink_trans; - u64 csum_bytes; - u32 flags; - u32 ro_flags; - struct btrfs_block_rsv block_rsv; - struct btrfs_delayed_node *delayed_node; - u64 i_otime_sec; - u32 i_otime_nsec; - struct list_head delayed_iput; - struct rw_semaphore i_mmap_lock; - struct inode vfs_inode; -}; - -struct btrfs_space_info { - spinlock_t lock; - u64 total_bytes; - u64 bytes_used; - u64 bytes_pinned; - u64 bytes_reserved; - u64 bytes_may_use; - u64 bytes_readonly; - u64 bytes_zone_unusable; - u64 max_extent_size; - u64 chunk_size; - int bg_reclaim_threshold; - int clamp; - unsigned int full: 1; - unsigned int chunk_alloc: 1; - unsigned int flush: 1; - unsigned int force_alloc; - u64 disk_used; - u64 disk_total; - u64 flags; - struct list_head list; - struct list_head ro_bgs; - struct list_head priority_tickets; - struct list_head tickets; - u64 reclaim_size; - u64 tickets_id; - struct rw_semaphore groups_sem; - struct list_head block_groups[9]; - struct kobject kobj; - struct kobject *block_group_kobjs[9]; -}; - -struct btrfs_delayed_node { - u64 inode_id; - u64 bytes_reserved; - struct btrfs_root *root; - struct list_head n_list; - struct list_head p_list; - struct rb_root_cached ins_root; - struct rb_root_cached del_root; - struct mutex mutex; - struct btrfs_inode_item inode_item; - refcount_t refs; - u64 index_cnt; - unsigned long flags; - int count; - u32 curr_index_batch_size; - u32 index_item_leaves; -}; - -enum btrfs_trans_state { - TRANS_STATE_RUNNING = 0, - TRANS_STATE_COMMIT_PREP = 1, - TRANS_STATE_COMMIT_START = 2, - TRANS_STATE_COMMIT_DOING = 3, - TRANS_STATE_UNBLOCKED = 4, - TRANS_STATE_SUPER_COMMITTED = 5, - TRANS_STATE_COMPLETED = 6, - TRANS_STATE_MAX = 7, -}; - -struct btrfs_delayed_ref_root { - struct rb_root_cached href_root; - struct rb_root dirty_extent_root; - spinlock_t lock; - atomic_t num_entries; - unsigned long num_heads; - unsigned long num_heads_ready; - u64 pending_csums; - unsigned long flags; - u64 run_delayed_start; - u64 qgroup_to_skip; -}; - -struct btrfs_transaction { - u64 transid; - atomic_t num_extwriters; - atomic_t num_writers; - refcount_t use_count; - unsigned long flags; - enum btrfs_trans_state state; - int aborted; - struct list_head list; - struct extent_io_tree dirty_pages; - time64_t start_time; - wait_queue_head_t writer_wait; - wait_queue_head_t commit_wait; - struct list_head pending_snapshots; - struct list_head dev_update_list; - struct list_head switch_commits; - struct list_head dirty_bgs; - struct list_head io_bgs; - struct list_head dropped_roots; - struct extent_io_tree pinned_extents; - struct mutex cache_write_mutex; - spinlock_t dirty_bgs_lock; - struct list_head deleted_bgs; - spinlock_t dropped_roots_lock; - struct btrfs_delayed_ref_root delayed_refs; - struct btrfs_fs_info *fs_info; - atomic_t pending_ordered; - wait_queue_head_t pending_wait; -}; +typedef __u16 __le16; struct btrfs_dev_item { __le64 devid; @@ -16038,145 +16381,22 @@ struct btrfs_super_block { __u8 padding[565]; } __attribute__((packed)); -enum btrfs_chunk_allocation_policy { - BTRFS_CHUNK_ALLOC_REGULAR = 0, - BTRFS_CHUNK_ALLOC_ZONED = 1, +struct fiemap_extent; + +struct fiemap_extent_info { + unsigned int fi_flags; + unsigned int fi_extents_mapped; + unsigned int fi_extents_max; + struct fiemap_extent __attribute__((btf_type_tag("user"))) *fi_extents_start; }; -enum btrfs_read_policy { - BTRFS_READ_POLICY_PID = 0, - BTRFS_NR_READ_POLICY = 1, -}; - -struct btrfs_fs_devices { - u8 fsid[16]; - u8 metadata_uuid[16]; - struct list_head fs_list; - u64 num_devices; - u64 open_devices; - u64 rw_devices; - u64 missing_devices; - u64 total_rw_bytes; - u64 total_devices; - u64 latest_generation; - struct btrfs_device *latest_dev; - struct mutex device_list_mutex; - struct list_head devices; - struct list_head alloc_list; - struct list_head seed_list; - int opened; - bool rotating; - bool discardable; - bool seeding; - bool temp_fsid; - struct btrfs_fs_info *fs_info; - struct kobject fsid_kobj; - struct kobject *devices_kobj; - struct kobject *devinfo_kobj; - struct completion kobj_unregister; - enum btrfs_chunk_allocation_policy chunk_alloc_policy; - enum btrfs_read_policy read_policy; -}; - -struct rcu_string; - -struct btrfs_zoned_device_info; - -struct scrub_ctx; - -struct btrfs_device { - struct list_head dev_list; - struct list_head dev_alloc_list; - struct list_head post_commit_list; - struct btrfs_fs_devices *fs_devices; - struct btrfs_fs_info *fs_info; - struct rcu_string __attribute__((btf_type_tag("rcu"))) *name; - u64 generation; - struct file *bdev_file; - struct block_device *bdev; - struct btrfs_zoned_device_info *zone_info; - dev_t devt; - unsigned long dev_state; - blk_status_t last_flush_error; - u64 devid; - u64 total_bytes; - u64 disk_total_bytes; - u64 bytes_used; - u32 io_align; - u32 io_width; - u64 type; - u32 sector_size; - u8 uuid[16]; - u64 commit_total_bytes; - u64 commit_bytes_used; - struct bio flush_bio; - struct completion flush_wait; - struct scrub_ctx *scrub_ctx; - int dev_stats_valid; - atomic_t dev_stats_ccnt; - atomic_t dev_stat_values[5]; - struct extent_io_tree alloc_state; - struct completion kobj_unregister; - struct kobject devid_kobj; - u64 scrub_speed_max; -}; - -struct rcu_string { - struct callback_head rcu; - char str[0]; -}; - -struct btrfs_balance_args { - __u64 profiles; - union { - __u64 usage; - struct { - __u32 usage_min; - __u32 usage_max; - }; - }; - __u64 devid; - __u64 pstart; - __u64 pend; - __u64 vstart; - __u64 vend; - __u64 target; - __u64 flags; - union { - __u64 limit; - struct { - __u32 limit_min; - __u32 limit_max; - }; - }; - __u32 stripes_min; - __u32 stripes_max; - __u64 unused[6]; -}; - -struct btrfs_balance_progress { - __u64 expected; - __u64 considered; - __u64 completed; -}; - -struct btrfs_balance_control { - struct btrfs_balance_args data; - struct btrfs_balance_args meta; - struct btrfs_balance_args sys; - u64 flags; - struct btrfs_balance_progress stat; -}; - -struct btrfs_subpage_info { - unsigned int bitmap_nr_bits; - unsigned int total_nr_bits; - unsigned int uptodate_offset; - unsigned int dirty_offset; - unsigned int writeback_offset; - unsigned int ordered_offset; - unsigned int checked_offset; - unsigned int locked_offset; +struct fiemap_extent { + __u64 fe_logical; + __u64 fe_physical; + __u64 fe_length; + __u64 fe_reserved64[2]; + __u32 fe_flags; + __u32 fe_reserved[3]; }; struct ulist { @@ -16195,375 +16415,22 @@ struct btrfs_delayed_root { wait_queue_head_t wait; }; -struct btrfs_caching_control { - struct list_head list; - struct mutex mutex; - wait_queue_head_t wait; - struct btrfs_work work; - struct btrfs_block_group *block_group; - atomic_t progress; - refcount_t count; -}; - -struct btrfs_io_context; - -struct btrfs_io_stripe { - struct btrfs_device *dev; - u64 physical; - u64 length; - bool is_scrub; - struct btrfs_io_context *bioc; -}; - -struct btrfs_chunk_map { - struct rb_node rb_node; - int verified_stripes; - refcount_t refs; - u64 start; - u64 chunk_len; - u64 stripe_size; - u64 type; - int io_align; - int io_width; - int num_stripes; - int sub_stripes; - struct btrfs_io_stripe stripes[0]; -}; - -struct btrfs_io_context { - refcount_t refs; - struct btrfs_fs_info *fs_info; - u64 map_type; - struct bio *orig_bio; - atomic_t error; - u16 max_errors; - u64 logical; - u64 size; - struct list_head rst_ordered_entry; - u16 num_stripes; - u16 mirror_num; - u16 replace_nr_stripes; - s16 replace_stripe_src; - u64 full_stripe_logical; - struct btrfs_io_stripe stripes[0]; -}; - -enum btrfs_trim_state { - BTRFS_TRIM_STATE_UNTRIMMED = 0, - BTRFS_TRIM_STATE_TRIMMED = 1, - BTRFS_TRIM_STATE_TRIMMING = 2, -}; - -struct btrfs_free_space { - struct rb_node offset_index; - struct rb_node bytes_index; - u64 offset; - u64 bytes; - u64 max_extent_size; - unsigned long *bitmap; - struct list_head list; - enum btrfs_trim_state trim_state; - s32 bitmap_extents; -}; - -enum btrfs_disk_cache_state { - BTRFS_DC_WRITTEN = 0, - BTRFS_DC_ERROR = 1, - BTRFS_DC_CLEAR = 2, - BTRFS_DC_SETUP = 3, -}; - -enum btrfs_block_group_flags { - BLOCK_GROUP_FLAG_IREF = 0, - BLOCK_GROUP_FLAG_REMOVED = 1, - BLOCK_GROUP_FLAG_TO_COPY = 2, - BLOCK_GROUP_FLAG_RELOCATING_REPAIR = 3, - BLOCK_GROUP_FLAG_CHUNK_ITEM_INSERTED = 4, - BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE = 5, - BLOCK_GROUP_FLAG_ZONED_DATA_RELOC = 6, - BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE = 7, - BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE = 8, - BLOCK_GROUP_FLAG_NEW = 9, -}; - -enum { - BTRFS_FS_STATE_REMOUNTING = 0, - BTRFS_FS_STATE_RO = 1, - BTRFS_FS_STATE_TRANS_ABORTED = 2, - BTRFS_FS_STATE_DEV_REPLACING = 3, - BTRFS_FS_STATE_DUMMY_FS_INFO = 4, - BTRFS_FS_STATE_NO_CSUMS = 5, - BTRFS_FS_STATE_LOG_CLEANUP_ERROR = 6, - BTRFS_FS_STATE_COUNT = 7, -}; - -enum { - BTRFS_MOUNT_NODATASUM = 1, - BTRFS_MOUNT_NODATACOW = 2, - BTRFS_MOUNT_NOBARRIER = 4, - BTRFS_MOUNT_SSD = 8, - BTRFS_MOUNT_DEGRADED = 16, - BTRFS_MOUNT_COMPRESS = 32, - BTRFS_MOUNT_NOTREELOG = 64, - BTRFS_MOUNT_FLUSHONCOMMIT = 128, - BTRFS_MOUNT_SSD_SPREAD = 256, - BTRFS_MOUNT_NOSSD = 512, - BTRFS_MOUNT_DISCARD_SYNC = 1024, - BTRFS_MOUNT_FORCE_COMPRESS = 2048, - BTRFS_MOUNT_SPACE_CACHE = 4096, - BTRFS_MOUNT_CLEAR_CACHE = 8192, - BTRFS_MOUNT_USER_SUBVOL_RM_ALLOWED = 16384, - BTRFS_MOUNT_ENOSPC_DEBUG = 32768, - BTRFS_MOUNT_AUTO_DEFRAG = 65536, - BTRFS_MOUNT_USEBACKUPROOT = 131072, - BTRFS_MOUNT_SKIP_BALANCE = 262144, - BTRFS_MOUNT_PANIC_ON_FATAL_ERROR = 524288, - BTRFS_MOUNT_RESCAN_UUID_TREE = 1048576, - BTRFS_MOUNT_FRAGMENT_DATA = 2097152, - BTRFS_MOUNT_FRAGMENT_METADATA = 4194304, - BTRFS_MOUNT_FREE_SPACE_TREE = 8388608, - BTRFS_MOUNT_NOLOGREPLAY = 16777216, - BTRFS_MOUNT_REF_VERIFY = 33554432, - BTRFS_MOUNT_DISCARD_ASYNC = 67108864, - BTRFS_MOUNT_IGNOREBADROOTS = 134217728, - BTRFS_MOUNT_IGNOREDATACSUMS = 268435456, - BTRFS_MOUNT_NODISCARD = 536870912, - BTRFS_MOUNT_NOSPACECACHE = 1073741824, -}; - -enum { - BTRFS_STAT_CURR = 0, - BTRFS_STAT_PREV = 1, - BTRFS_STAT_NR_ENTRIES = 2, -}; - -enum { - BTRFS_FS_CLOSING_START = 0, - BTRFS_FS_CLOSING_DONE = 1, - BTRFS_FS_LOG_RECOVERING = 2, - BTRFS_FS_OPEN = 3, - BTRFS_FS_QUOTA_ENABLED = 4, - BTRFS_FS_UPDATE_UUID_TREE_GEN = 5, - BTRFS_FS_CREATING_FREE_SPACE_TREE = 6, - BTRFS_FS_BTREE_ERR = 7, - BTRFS_FS_LOG1_ERR = 8, - BTRFS_FS_LOG2_ERR = 9, - BTRFS_FS_QUOTA_OVERRIDE = 10, - BTRFS_FS_FROZEN = 11, - BTRFS_FS_BALANCE_RUNNING = 12, - BTRFS_FS_RELOC_RUNNING = 13, - BTRFS_FS_CLEANER_RUNNING = 14, - BTRFS_FS_CSUM_IMPL_FAST = 15, - BTRFS_FS_DISCARD_RUNNING = 16, - BTRFS_FS_CLEANUP_SPACE_CACHE_V1 = 17, - BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED = 18, - BTRFS_FS_TREE_MOD_LOG_USERS = 19, - BTRFS_FS_COMMIT_TRANS = 20, - BTRFS_FS_UNFINISHED_DROPS = 21, - BTRFS_FS_NEED_ZONE_FINISH = 22, - BTRFS_FS_NEED_TRANS_COMMIT = 23, - BTRFS_FS_ACTIVE_ZONE_TRACKING = 24, - BTRFS_FS_FEATURE_CHANGED = 25, - BTRFS_FS_UNALIGNED_TREE_BLOCK = 26, -}; - -enum { - __EXTENT_DIRTY_BIT = 0, - EXTENT_DIRTY = 1, - __EXTENT_DIRTY_SEQ = 0, - __EXTENT_UPTODATE_BIT = 1, - EXTENT_UPTODATE = 2, - __EXTENT_UPTODATE_SEQ = 1, - __EXTENT_LOCKED_BIT = 2, - EXTENT_LOCKED = 4, - __EXTENT_LOCKED_SEQ = 2, - __EXTENT_NEW_BIT = 3, - EXTENT_NEW = 8, - __EXTENT_NEW_SEQ = 3, - __EXTENT_DELALLOC_BIT = 4, - EXTENT_DELALLOC = 16, - __EXTENT_DELALLOC_SEQ = 4, - __EXTENT_DEFRAG_BIT = 5, - EXTENT_DEFRAG = 32, - __EXTENT_DEFRAG_SEQ = 5, - __EXTENT_BOUNDARY_BIT = 6, - EXTENT_BOUNDARY = 64, - __EXTENT_BOUNDARY_SEQ = 6, - __EXTENT_NODATASUM_BIT = 7, - EXTENT_NODATASUM = 128, - __EXTENT_NODATASUM_SEQ = 7, - __EXTENT_CLEAR_META_RESV_BIT = 8, - EXTENT_CLEAR_META_RESV = 256, - __EXTENT_CLEAR_META_RESV_SEQ = 8, - __EXTENT_NEED_WAIT_BIT = 9, - EXTENT_NEED_WAIT = 512, - __EXTENT_NEED_WAIT_SEQ = 9, - __EXTENT_NORESERVE_BIT = 10, - EXTENT_NORESERVE = 1024, - __EXTENT_NORESERVE_SEQ = 10, - __EXTENT_QGROUP_RESERVED_BIT = 11, - EXTENT_QGROUP_RESERVED = 2048, - __EXTENT_QGROUP_RESERVED_SEQ = 11, - __EXTENT_CLEAR_DATA_RESV_BIT = 12, - EXTENT_CLEAR_DATA_RESV = 4096, - __EXTENT_CLEAR_DATA_RESV_SEQ = 12, - __EXTENT_DELALLOC_NEW_BIT = 13, - EXTENT_DELALLOC_NEW = 8192, - __EXTENT_DELALLOC_NEW_SEQ = 13, - __EXTENT_ADD_INODE_BYTES_BIT = 14, - EXTENT_ADD_INODE_BYTES = 16384, - __EXTENT_ADD_INODE_BYTES_SEQ = 14, - __EXTENT_CLEAR_ALL_BITS_BIT = 15, - EXTENT_CLEAR_ALL_BITS = 32768, - __EXTENT_CLEAR_ALL_BITS_SEQ = 15, - __EXTENT_NOWAIT_BIT = 16, - EXTENT_NOWAIT = 65536, - __EXTENT_NOWAIT_SEQ = 16, -}; - -enum pageflags { - PG_locked = 0, - PG_writeback = 1, - PG_referenced = 2, - PG_uptodate = 3, - PG_dirty = 4, - PG_lru = 5, - PG_head = 6, - PG_waiters = 7, - PG_active = 8, - PG_workingset = 9, - PG_error = 10, - PG_slab = 11, - PG_owner_priv_1 = 12, - PG_arch_1 = 13, - PG_reserved = 14, - PG_private = 15, - PG_private_2 = 16, - PG_mappedtodisk = 17, - PG_reclaim = 18, - PG_swapbacked = 19, - PG_unevictable = 20, - PG_mlocked = 21, - PG_uncached = 22, - __NR_PAGEFLAGS = 23, - PG_readahead = 18, - PG_anon_exclusive = 17, - PG_checked = 12, - PG_swapcache = 12, - PG_fscache = 16, - PG_pinned = 12, - PG_savepinned = 4, - PG_foreign = 12, - PG_xen_remapped = 12, - PG_isolated = 18, - PG_reported = 3, - PG_has_hwpoisoned = 10, - PG_hugetlb = 8, - PG_large_rmappable = 9, -}; - -struct btrfs_free_space_header { - struct btrfs_disk_key location; - __le64 generation; - __le64 num_entries; - __le64 num_bitmaps; -} __attribute__((packed)); - -struct btrfs_item { - struct btrfs_disk_key key; - __le32 offset; - __le32 size; -} __attribute__((packed)); - -typedef unsigned int fgf_t; - -struct btrfs_trim_range { - u64 start; - u64 bytes; - struct list_head list; -}; - -struct btrfs_path { - struct extent_buffer *nodes[8]; - int slots[8]; - u8 locks[8]; - u8 reada; - u8 lowest_level; - unsigned int search_for_split: 1; - unsigned int keep_locks: 1; - unsigned int skip_locking: 1; - unsigned int search_commit_root: 1; - unsigned int need_commit_sem: 1; - unsigned int skip_release_on_error: 1; - unsigned int search_for_extension: 1; - unsigned int nowait: 1; -}; - -struct btrfs_pending_snapshot; - -struct btrfs_trans_handle { - u64 transid; +struct btrfs_delayed_node { + u64 inode_id; u64 bytes_reserved; - u64 delayed_refs_bytes_reserved; - u64 chunk_bytes_reserved; - unsigned long delayed_ref_updates; - unsigned long delayed_ref_csum_deletions; - struct btrfs_transaction *transaction; - struct btrfs_block_rsv *block_rsv; - struct btrfs_block_rsv *orig_rsv; - struct btrfs_pending_snapshot *pending_snapshot; - refcount_t use_count; - unsigned int type; - short aborted; - bool adding_csums; - bool allocating_chunk; - bool removing_chunk; - bool reloc_reserved; - bool in_fsync; - struct btrfs_fs_info *fs_info; - struct list_head new_bgs; - struct btrfs_block_rsv delayed_rsv; -}; - -struct btrfs_qgroup_inherit; - -struct btrfs_pending_snapshot { - struct dentry *dentry; - struct inode *dir; struct btrfs_root *root; - struct btrfs_root_item *root_item; - struct btrfs_root *snap; - struct btrfs_qgroup_inherit *inherit; - struct btrfs_path *path; - struct btrfs_block_rsv block_rsv; - int error; - dev_t anon_dev; - bool readonly; - struct list_head list; -}; - -struct btrfs_qgroup_limit { - __u64 flags; - __u64 max_rfer; - __u64 max_excl; - __u64 rsv_rfer; - __u64 rsv_excl; -}; - -struct btrfs_qgroup_inherit { - __u64 flags; - __u64 num_qgroups; - __u64 num_ref_copies; - __u64 num_excl_copies; - struct btrfs_qgroup_limit lim; - __u64 qgroups[0]; -}; - -struct btrfs_item_batch { - const struct btrfs_key *keys; - const u32 *data_sizes; - u32 total_data_size; - int nr; + struct list_head n_list; + struct list_head p_list; + struct rb_root_cached ins_root; + struct rb_root_cached del_root; + struct mutex mutex; + struct btrfs_inode_item inode_item; + refcount_t refs; + u64 index_cnt; + unsigned long flags; + int count; + u32 curr_index_batch_size; + u32 index_item_leaves; }; struct extent_state { @@ -16575,248 +16442,265 @@ struct extent_state { u32 state; }; -struct btrfs_truncate_control { - struct btrfs_inode *inode; - u64 new_size; - u64 extents_found; - u64 last_size; - u64 sub_bytes; - u64 ino; - u32 min_type; - bool skip_ref_updates; - bool clear_extent_range; -}; - struct extent_changeset { u64 bytes_changed; struct ulist range_changed; }; -struct btrfs_free_space_entry { - __le64 offset; - __le64 bytes; - __u8 type; -} __attribute__((packed)); +typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); -typedef void (*exitcall_t)(); - -struct hash_alg_common { - unsigned int digestsize; - unsigned int statesize; - struct crypto_alg base; +struct asn1_decoder { + const unsigned char *machine; + size_t machlen; + const asn1_action_t *actions; }; -struct shash_alg { - int (*init)(struct shash_desc *); - int (*update)(struct shash_desc *, const u8 *, unsigned int); - int (*final)(struct shash_desc *, u8 *); - int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*export)(struct shash_desc *, void *); - int (*import)(struct shash_desc *, const void *); - int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_shash *); - void (*exit_tfm)(struct crypto_shash *); - int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); - unsigned int descsize; +enum OID { + OID_id_dsa_with_sha1 = 0, + OID_id_dsa = 1, + OID_id_ecPublicKey = 2, + OID_id_prime192v1 = 3, + OID_id_prime256v1 = 4, + OID_id_ecdsa_with_sha1 = 5, + OID_id_ecdsa_with_sha224 = 6, + OID_id_ecdsa_with_sha256 = 7, + OID_id_ecdsa_with_sha384 = 8, + OID_id_ecdsa_with_sha512 = 9, + OID_rsaEncryption = 10, + OID_sha1WithRSAEncryption = 11, + OID_sha256WithRSAEncryption = 12, + OID_sha384WithRSAEncryption = 13, + OID_sha512WithRSAEncryption = 14, + OID_sha224WithRSAEncryption = 15, + OID_data = 16, + OID_signed_data = 17, + OID_email_address = 18, + OID_contentType = 19, + OID_messageDigest = 20, + OID_signingTime = 21, + OID_smimeCapabilites = 22, + OID_smimeAuthenticatedAttrs = 23, + OID_mskrb5 = 24, + OID_krb5 = 25, + OID_krb5u2u = 26, + OID_msIndirectData = 27, + OID_msStatementType = 28, + OID_msSpOpusInfo = 29, + OID_msPeImageDataObjId = 30, + OID_msIndividualSPKeyPurpose = 31, + OID_msOutlookExpress = 32, + OID_ntlmssp = 33, + OID_negoex = 34, + OID_spnego = 35, + OID_IAKerb = 36, + OID_PKU2U = 37, + OID_Scram = 38, + OID_certAuthInfoAccess = 39, + OID_sha1 = 40, + OID_id_ansip384r1 = 41, + OID_sha256 = 42, + OID_sha384 = 43, + OID_sha512 = 44, + OID_sha224 = 45, + OID_commonName = 46, + OID_surname = 47, + OID_countryName = 48, + OID_locality = 49, + OID_stateOrProvinceName = 50, + OID_organizationName = 51, + OID_organizationUnitName = 52, + OID_title = 53, + OID_description = 54, + OID_name = 55, + OID_givenName = 56, + OID_initials = 57, + OID_generationalQualifier = 58, + OID_subjectKeyIdentifier = 59, + OID_keyUsage = 60, + OID_subjectAltName = 61, + OID_issuerAltName = 62, + OID_basicConstraints = 63, + OID_crlDistributionPoints = 64, + OID_certPolicies = 65, + OID_authorityKeyIdentifier = 66, + OID_extKeyUsage = 67, + OID_NetlogonMechanism = 68, + OID_appleLocalKdcSupported = 69, + OID_gostCPSignA = 70, + OID_gostCPSignB = 71, + OID_gostCPSignC = 72, + OID_gost2012PKey256 = 73, + OID_gost2012PKey512 = 74, + OID_gost2012Digest256 = 75, + OID_gost2012Digest512 = 76, + OID_gost2012Signature256 = 77, + OID_gost2012Signature512 = 78, + OID_gostTC26Sign256A = 79, + OID_gostTC26Sign256B = 80, + OID_gostTC26Sign256C = 81, + OID_gostTC26Sign256D = 82, + OID_gostTC26Sign512A = 83, + OID_gostTC26Sign512B = 84, + OID_gostTC26Sign512C = 85, + OID_sm2 = 86, + OID_sm3 = 87, + OID_SM2_with_SM3 = 88, + OID_sm3WithRSAEncryption = 89, + OID_TPMLoadableKey = 90, + OID_TPMImportableKey = 91, + OID_TPMSealedData = 92, + OID_sha3_256 = 93, + OID_sha3_384 = 94, + OID_sha3_512 = 95, + OID_id_ecdsa_with_sha3_256 = 96, + OID_id_ecdsa_with_sha3_384 = 97, + OID_id_ecdsa_with_sha3_512 = 98, + OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 99, + OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 100, + OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 101, + OID__NR = 102, +}; + +enum kernel_pkey_operation { + kernel_pkey_encrypt = 0, + kernel_pkey_decrypt = 1, + kernel_pkey_sign = 2, + kernel_pkey_verify = 3, +}; + +struct x509_certificate; + +struct pkcs7_signed_info; + +struct pkcs7_message { + struct x509_certificate *certs; + struct x509_certificate *crl; + struct pkcs7_signed_info *signed_infos; + u8 version; + bool have_authattrs; + enum OID data_type; + size_t data_len; + size_t data_hdrlen; + const void *data; +}; + +struct public_key; + +struct public_key_signature; + +struct asymmetric_key_id; + +struct x509_certificate { + struct x509_certificate *next; + struct x509_certificate *signer; + struct public_key *pub; + struct public_key_signature *sig; + char *issuer; + char *subject; + struct asymmetric_key_id *id; + struct asymmetric_key_id *skid; + time64_t valid_from; + time64_t valid_to; + const void *tbs; + unsigned int tbs_size; + unsigned int raw_sig_size; + const void *raw_sig; + const void *raw_serial; + unsigned int raw_serial_size; + unsigned int raw_issuer_size; + const void *raw_issuer; + const void *raw_subject; + unsigned int raw_subject_size; + unsigned int raw_skid_size; + const void *raw_skid; + unsigned int index; + bool seen; + bool verified; + bool self_signed; + bool unsupported_sig; + bool blacklisted; +}; + +struct public_key { + void *key; + u32 keylen; + enum OID algo; + void *params; + u32 paramlen; + bool key_is_private; + const char *id_type; + const char *pkey_algo; + unsigned long key_eflags; +}; + +struct public_key_signature { + struct asymmetric_key_id *auth_ids[3]; + u8 *s; + u8 *digest; + u32 s_size; + u32 digest_size; + const char *pkey_algo; + const char *hash_algo; + const char *encoding; +}; + +struct asymmetric_key_id { + unsigned short len; + unsigned char data[0]; +}; + +struct pkcs7_signed_info { + struct pkcs7_signed_info *next; + struct x509_certificate *signer; + unsigned int index; + bool unsupported_crypto; + bool blacklisted; + const void *msgdigest; + unsigned int msgdigest_len; + unsigned int authattrs_len; + const void *authattrs; + unsigned long aa_set; + time64_t signing_time; + struct public_key_signature *sig; +}; + +struct key_preparsed_payload { + const char *orig_description; + char *description; + union key_payload payload; + const void *data; + size_t datalen; + size_t quotalen; + time64_t expiry; +}; + +struct key_match_data { + bool (*cmp)(const struct key *, const struct key_match_data *); + const void *raw_data; + void *preparsed; + unsigned int lookup_type; +}; + +struct kernel_pkey_params { + struct key *key; + const char *encoding; + const char *hash_algo; + char *info; + __u32 in_len; union { - struct { - unsigned int digestsize; - unsigned int statesize; - struct crypto_alg base; - }; - struct hash_alg_common halg; + __u32 out_len; + __u32 in2_len; }; + enum kernel_pkey_operation op: 8; }; -struct crypto_template; - -struct crypto_spawn; - -struct crypto_instance { - struct crypto_alg alg; - struct crypto_template *tmpl; - union { - struct hlist_node list; - struct crypto_spawn *spawns; - }; - struct work_struct free_work; - void *__ctx[0]; -}; - -struct rtattr; - -struct crypto_template { - struct list_head list; - struct hlist_head instances; - struct module *module; - int (*create)(struct crypto_template *, struct rtattr **); - char name[128]; -}; - -struct crypto_spawn { - struct list_head list; - struct crypto_alg *alg; - union { - struct crypto_instance *inst; - struct crypto_spawn *next; - }; - const struct crypto_type *frontend; - u32 mask; - bool dead; - bool registered; -}; - -struct sha3_state { - u64 st[25]; - unsigned int rsiz; - unsigned int rsizw; - unsigned int partial; - u8 buf[144]; -}; - -struct crypto_skcipher { - unsigned int reqsize; - struct crypto_tfm base; -}; - -struct skcipher_alg_common { - unsigned int min_keysize; - unsigned int max_keysize; - unsigned int ivsize; - unsigned int chunksize; - unsigned int statesize; - struct crypto_alg base; -}; - -struct skcipher_request; - -struct skcipher_alg { - int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int); - int (*encrypt)(struct skcipher_request *); - int (*decrypt)(struct skcipher_request *); - int (*export)(struct skcipher_request *, void *); - int (*import)(struct skcipher_request *, const void *); - int (*init)(struct crypto_skcipher *); - void (*exit)(struct crypto_skcipher *); - unsigned int walksize; - union { - struct { - unsigned int min_keysize; - unsigned int max_keysize; - unsigned int ivsize; - unsigned int chunksize; - unsigned int statesize; - struct crypto_alg base; - }; - struct skcipher_alg_common co; - }; -}; - -struct skcipher_instance { - void (*free)(struct skcipher_instance *); - union { - struct { - char head[88]; - struct crypto_instance base; - } s; - struct skcipher_alg alg; - }; -}; - -typedef void (*crypto_completion_t)(void *, int); - -struct crypto_async_request { - struct list_head list; - crypto_completion_t complete; - void *data; - struct crypto_tfm *tfm; - u32 flags; -}; - -struct scatterlist; - -struct skcipher_request { - unsigned int cryptlen; - u8 *iv; - struct scatterlist *src; - struct scatterlist *dst; - struct crypto_async_request base; - void *__ctx[0]; -}; - -struct crypto_cipher_spawn { - struct crypto_spawn base; -}; - -struct crypto_skcipher_spawn { - struct crypto_spawn base; -}; - -struct crypto_cipher { - struct crypto_tfm base; -}; - -struct skcipher_ctx_simple { - struct crypto_cipher *cipher; -}; - -struct scatter_walk { - struct scatterlist *sg; - unsigned int offset; -}; - -struct skcipher_walk { - union { - struct { - struct page *page; - unsigned long offset; - } phys; - struct { - u8 *page; - void *addr; - } virt; - } src; - union { - struct { - struct page *page; - unsigned long offset; - } phys; - struct { - u8 *page; - void *addr; - } virt; - } dst; - struct scatter_walk in; - unsigned int nbytes; - struct scatter_walk out; - unsigned int total; - struct list_head buffers; - u8 *page; - u8 *buffer; - u8 *oiv; - void *iv; - unsigned int ivsize; - int flags; - unsigned int blocksize; - unsigned int stride; - unsigned int alignmask; -}; - -struct crypto_rfc3686_ctx { - struct crypto_skcipher *child; - u8 nonce[4]; -}; - -struct crypto_rfc3686_req_ctx { - u8 iv[16]; - struct skcipher_request subreq; -}; - -struct obs_kernel_param { - const char *str; - int (*setup_func)(char *); - int early; +struct kernel_pkey_query { + __u32 supported_ops; + __u32 key_size; + __u16 max_data_size; + __u16 max_sig_size; + __u16 max_enc_size; + __u16 max_dec_size; }; struct blkg_iostat { @@ -17284,6 +17168,30 @@ enum req_op { REQ_OP_LAST = 36, }; +enum req_flag_bits { + __REQ_FAILFAST_DEV = 8, + __REQ_FAILFAST_TRANSPORT = 9, + __REQ_FAILFAST_DRIVER = 10, + __REQ_SYNC = 11, + __REQ_META = 12, + __REQ_PRIO = 13, + __REQ_NOMERGE = 14, + __REQ_IDLE = 15, + __REQ_INTEGRITY = 16, + __REQ_FUA = 17, + __REQ_PREFLUSH = 18, + __REQ_RAHEAD = 19, + __REQ_BACKGROUND = 20, + __REQ_NOWAIT = 21, + __REQ_POLLED = 22, + __REQ_ALLOC_CACHE = 23, + __REQ_SWAP = 24, + __REQ_DRV = 25, + __REQ_FS_PRIVATE = 26, + __REQ_NOUNMAP = 27, + __REQ_NR_BITS = 28, +}; + enum { BLK_MQ_F_SHOULD_MERGE = 1, BLK_MQ_F_TAG_QUEUE_SHARED = 2, @@ -17302,92 +17210,1807 @@ enum { BLK_MQ_CPU_WORK_BATCH = 8, }; -enum pci_bar_type { - pci_bar_unknown = 0, - pci_bar_io = 1, - pci_bar_mem32 = 2, - pci_bar_mem64 = 3, +struct __kfifo { + unsigned int in; + unsigned int out; + unsigned int mask; + unsigned int esize; + void *data; +}; + +enum vc_intensity { + VCI_HALF_BRIGHT = 0, + VCI_NORMAL = 1, + VCI_BOLD = 2, + VCI_MASK = 3, +}; + +struct fb_cmap { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; +}; + +struct fb_image { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 fg_color; + __u32 bg_color; + __u8 depth; + const char *data; + struct fb_cmap cmap; +}; + +struct fb_bitfield { + __u32 offset; + __u32 length; + __u32 msb_right; +}; + +struct fb_var_screeninfo { + __u32 xres; + __u32 yres; + __u32 xres_virtual; + __u32 yres_virtual; + __u32 xoffset; + __u32 yoffset; + __u32 bits_per_pixel; + __u32 grayscale; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + __u32 nonstd; + __u32 activate; + __u32 height; + __u32 width; + __u32 accel_flags; + __u32 pixclock; + __u32 left_margin; + __u32 right_margin; + __u32 upper_margin; + __u32 lower_margin; + __u32 hsync_len; + __u32 vsync_len; + __u32 sync; + __u32 vmode; + __u32 rotate; + __u32 colorspace; + __u32 reserved[4]; +}; + +struct fb_fix_screeninfo { + char id[16]; + unsigned long smem_start; + __u32 smem_len; + __u32 type; + __u32 type_aux; + __u32 visual; + __u16 xpanstep; + __u16 ypanstep; + __u16 ywrapstep; + __u32 line_length; + unsigned long mmio_start; + __u32 mmio_len; + __u32 accel; + __u16 capabilities; + __u16 reserved[2]; +}; + +struct fb_chroma { + __u32 redx; + __u32 greenx; + __u32 bluex; + __u32 whitex; + __u32 redy; + __u32 greeny; + __u32 bluey; + __u32 whitey; +}; + +struct fb_videomode; + +struct fb_monspecs { + struct fb_chroma chroma; + struct fb_videomode *modedb; + __u8 manufacturer[4]; + __u8 monitor[14]; + __u8 serial_no[14]; + __u8 ascii[14]; + __u32 modedb_len; + __u32 model; + __u32 serial; + __u32 year; + __u32 week; + __u32 hfmin; + __u32 hfmax; + __u32 dclkmin; + __u32 dclkmax; + __u16 input; + __u16 dpms; + __u16 signal; + __u16 vfmin; + __u16 vfmax; + __u16 gamma; + __u16 gtf: 1; + __u16 misc; + __u8 version; + __u8 revision; + __u8 max_x; + __u8 max_y; +}; + +struct fb_info; + +struct fb_pixmap { + u8 *addr; + u32 size; + u32 offset; + u32 buf_align; + u32 scan_align; + u32 access_align; + u32 flags; + unsigned long blit_x[1]; + unsigned long blit_y[2]; + void (*writeio)(struct fb_info *, void *, void *, unsigned int); + void (*readio)(struct fb_info *, void *, void *, unsigned int); +}; + +struct fb_ops; + +struct fb_info { + refcount_t count; + int node; + int flags; + int fbcon_rotate_hint; + struct mutex lock; + struct mutex mm_lock; + struct fb_var_screeninfo var; + struct fb_fix_screeninfo fix; + struct fb_monspecs monspecs; + struct fb_pixmap pixmap; + struct fb_pixmap sprite; + struct fb_cmap cmap; + struct list_head modelist; + struct fb_videomode *mode; + const struct fb_ops *fbops; + struct device *device; + struct device *dev; + int class_flag; + union { + char *screen_base; + char *screen_buffer; + }; + unsigned long screen_size; + void *pseudo_palette; + u32 state; + void *fbcon_par; + void *par; + bool skip_vt_switch; +}; + +struct fb_videomode { + const char *name; + u32 refresh; + u32 xres; + u32 yres; + u32 pixclock; + u32 left_margin; + u32 right_margin; + u32 upper_margin; + u32 lower_margin; + u32 hsync_len; + u32 vsync_len; + u32 sync; + u32 vmode; + u32 flag; +}; + +struct fb_fillrect; + +struct fb_copyarea; + +struct fb_cursor; + +struct fb_blit_caps; + +struct fb_ops { + struct module *owner; + int (*fb_open)(struct fb_info *, int); + int (*fb_release)(struct fb_info *, int); + ssize_t (*fb_read)(struct fb_info *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*fb_write)(struct fb_info *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + int (*fb_check_var)(struct fb_var_screeninfo *, struct fb_info *); + int (*fb_set_par)(struct fb_info *); + int (*fb_setcolreg)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, struct fb_info *); + int (*fb_setcmap)(struct fb_cmap *, struct fb_info *); + int (*fb_blank)(int, struct fb_info *); + int (*fb_pan_display)(struct fb_var_screeninfo *, struct fb_info *); + void (*fb_fillrect)(struct fb_info *, const struct fb_fillrect *); + void (*fb_copyarea)(struct fb_info *, const struct fb_copyarea *); + void (*fb_imageblit)(struct fb_info *, const struct fb_image *); + int (*fb_cursor)(struct fb_info *, struct fb_cursor *); + int (*fb_sync)(struct fb_info *); + int (*fb_ioctl)(struct fb_info *, unsigned int, unsigned long); + int (*fb_compat_ioctl)(struct fb_info *, unsigned int, unsigned long); + int (*fb_mmap)(struct fb_info *, struct vm_area_struct *); + void (*fb_get_caps)(struct fb_info *, struct fb_blit_caps *, struct fb_var_screeninfo *); + void (*fb_destroy)(struct fb_info *); + int (*fb_debug_enter)(struct fb_info *); + int (*fb_debug_leave)(struct fb_info *); +}; + +struct ld_semaphore { + atomic_long_t count; + raw_spinlock_t wait_lock; + unsigned int wait_readers; + struct list_head read_wait; + struct list_head write_wait; + struct lockdep_map dep_map; +}; + +typedef unsigned int tcflag_t; + +typedef unsigned char cc_t; + +typedef unsigned int speed_t; + +struct ktermios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + cc_t c_line; + cc_t c_cc[19]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; +}; + +struct tty_driver; + +struct tty_port; + +struct tty_operations; + +struct tty_ldisc; + +struct tty_struct { + struct kref kref; + int index; + struct device *dev; + struct tty_driver *driver; + struct tty_port *port; + const struct tty_operations *ops; + struct tty_ldisc *ldisc; + struct ld_semaphore ldisc_sem; + struct mutex atomic_write_lock; + struct mutex legacy_mutex; + struct mutex throttle_mutex; + struct rw_semaphore termios_rwsem; + struct mutex winsize_mutex; + struct ktermios termios; + struct ktermios termios_locked; + char name[64]; + unsigned long flags; + int count; + unsigned int receive_room; + struct winsize winsize; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + unsigned long unused[0]; + } flow; + struct { + struct pid *pgrp; + struct pid *session; + spinlock_t lock; + unsigned char pktstatus; + bool packet; + unsigned long unused[0]; + } ctrl; + bool hw_stopped; + bool closing; + int flow_change; + struct tty_struct *link; + struct fasync_struct *fasync; + wait_queue_head_t write_wait; + wait_queue_head_t read_wait; + struct work_struct hangup_work; + void *disc_data; + void *driver_data; + spinlock_t files_lock; + int write_cnt; + u8 *write_buf; + struct list_head tty_files; + struct work_struct SAK_work; +}; + +struct tty_driver { + struct kref kref; + struct cdev **cdevs; + struct module *owner; + const char *driver_name; + const char *name; + int name_base; + int major; + int minor_start; + unsigned int num; + short type; + short subtype; + struct ktermios init_termios; + unsigned long flags; + struct proc_dir_entry *proc_entry; + struct tty_driver *other; + struct tty_struct **ttys; + struct tty_port **ports; + struct ktermios **termios; + void *driver_state; + const struct tty_operations *ops; + struct list_head tty_drivers; +}; + +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; + struct list_head list; + dev_t dev; + unsigned int count; +}; + +struct tty_buffer { + union { + struct tty_buffer *next; + struct llist_node free; + }; + unsigned int used; + unsigned int size; + unsigned int commit; + unsigned int lookahead; + unsigned int read; + bool flags; + long: 0; + u8 data[0]; +}; + +struct tty_bufhead { + struct tty_buffer *head; + struct work_struct work; + struct mutex lock; + atomic_t priority; + struct tty_buffer sentinel; + struct llist_head free; + atomic_t mem_used; + int mem_limit; + struct tty_buffer *tail; +}; + +struct tty_port_operations; + +struct tty_port_client_operations; + +struct tty_port { + struct tty_bufhead buf; + struct tty_struct *tty; + struct tty_struct *itty; + const struct tty_port_operations *ops; + const struct tty_port_client_operations *client_ops; + spinlock_t lock; + int blocked_open; + int count; + wait_queue_head_t open_wait; + wait_queue_head_t delta_msr_wait; + unsigned long flags; + unsigned long iflags; + unsigned char console: 1; + struct mutex mutex; + struct mutex buf_mutex; + u8 *xmit_buf; + struct { + union { + struct __kfifo kfifo; + u8 *type; + const u8 *const_type; + char (*rectype)[0]; + u8 *ptr; + const u8 *ptr_const; + }; + u8 buf[0]; + } xmit_fifo; + unsigned int close_delay; + unsigned int closing_wait; + int drain_delay; + struct kref kref; + void *client_data; +}; + +struct tty_port_operations { + bool (*carrier_raised)(struct tty_port *); + void (*dtr_rts)(struct tty_port *, bool); + void (*shutdown)(struct tty_port *); + int (*activate)(struct tty_port *, struct tty_struct *); + void (*destruct)(struct tty_port *); +}; + +struct tty_port_client_operations { + size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_port *); +}; + +struct serial_icounter_struct; + +struct serial_struct; + +struct tty_operations { + struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); + int (*install)(struct tty_driver *, struct tty_struct *); + void (*remove)(struct tty_driver *, struct tty_struct *); + int (*open)(struct tty_struct *, struct file *); + void (*close)(struct tty_struct *, struct file *); + void (*shutdown)(struct tty_struct *); + void (*cleanup)(struct tty_struct *); + ssize_t (*write)(struct tty_struct *, const u8 *, size_t); + int (*put_char)(struct tty_struct *, u8); + void (*flush_chars)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + void (*throttle)(struct tty_struct *); + void (*unthrottle)(struct tty_struct *); + void (*stop)(struct tty_struct *); + void (*start)(struct tty_struct *); + void (*hangup)(struct tty_struct *); + int (*break_ctl)(struct tty_struct *, int); + void (*flush_buffer)(struct tty_struct *); + void (*set_ldisc)(struct tty_struct *); + void (*wait_until_sent)(struct tty_struct *, int); + void (*send_xchar)(struct tty_struct *, u8); + int (*tiocmget)(struct tty_struct *); + int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int); + int (*resize)(struct tty_struct *, struct winsize *); + int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *); + int (*get_serial)(struct tty_struct *, struct serial_struct *); + int (*set_serial)(struct tty_struct *, struct serial_struct *); + void (*show_fdinfo)(struct tty_struct *, struct seq_file *); + int (*proc_show)(struct seq_file *, void *); +}; + +struct tty_ldisc_ops; + +struct tty_ldisc { + struct tty_ldisc_ops *ops; + struct tty_struct *tty; +}; + +struct tty_ldisc_ops { + char *name; + int num; + int (*open)(struct tty_struct *); + void (*close)(struct tty_struct *); + void (*flush_buffer)(struct tty_struct *); + ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, unsigned long); + ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); + void (*hangup)(struct tty_struct *); + void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_struct *); + void (*dcd_change)(struct tty_struct *, bool); + size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + struct module *owner; +}; + +struct reclaim_state { + unsigned long reclaimed; +}; + +struct swap_cluster_info { + spinlock_t lock; + unsigned int data: 24; + unsigned int flags: 8; +}; + +struct swap_cluster_list { + struct swap_cluster_info head; + struct swap_cluster_info tail; +}; + +struct percpu_cluster; + +struct swap_info_struct { + struct percpu_ref users; + unsigned long flags; + short prio; + struct plist_node list; + signed char type; + unsigned int max; + unsigned char *swap_map; + struct swap_cluster_info *cluster_info; + struct swap_cluster_list free_clusters; + unsigned int lowest_bit; + unsigned int highest_bit; + unsigned int pages; + unsigned int inuse_pages; + unsigned int cluster_next; + unsigned int cluster_nr; + unsigned int __attribute__((btf_type_tag("percpu"))) *cluster_next_cpu; + struct percpu_cluster __attribute__((btf_type_tag("percpu"))) *percpu_cluster; + struct rb_root swap_extent_root; + struct file *bdev_file; + struct block_device *bdev; + struct file *swap_file; + unsigned int old_block_size; + struct completion comp; + spinlock_t lock; + spinlock_t cont_lock; + struct work_struct discard_work; + struct swap_cluster_list discard_clusters; + struct plist_node avail_lists[0]; +}; + +struct percpu_cluster { + struct swap_cluster_info index; + unsigned int next; +}; + +struct fb_fillrect { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 color; + __u32 rop; +}; + +struct fb_copyarea { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 sx; + __u32 sy; +}; + +struct fbcurpos { + __u16 x; + __u16 y; +}; + +struct fb_cursor { + __u16 set; + __u16 enable; + __u16 rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; +}; + +struct fb_blit_caps { + unsigned long x[1]; + unsigned long y[2]; + u32 len; + u32 flags; +}; + +struct vc_data; + +struct fbcon_display; + +struct fbcon_ops { + void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); + void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); + void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); + void (*cursor)(struct vc_data *, struct fb_info *, bool, int, int); + int (*update_start)(struct fb_info *); + int (*rotate_font)(struct fb_info *, struct vc_data *); + struct fb_var_screeninfo var; + struct delayed_work cursor_work; + struct fb_cursor cursor_state; + struct fbcon_display *p; + struct fb_info *info; + int currcon; + int cur_blink_jiffies; + int cursor_flash; + int cursor_reset; + int blank_state; + int graphics; + int save_graphics; + bool initialized; + int rotate; + int cur_rotate; + char *cursor_data; + u8 *fontbuffer; + u8 *fontdata; + u8 *cursor_src; + u32 cursor_size; + u32 fd_size; +}; + +struct vc_state { + unsigned int x; + unsigned int y; + unsigned char color; + unsigned char Gx_charset[2]; + unsigned int charset: 1; + enum vc_intensity intensity; + bool italic; + bool underline; + bool blink; + bool reverse; +}; + +struct console_font { + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; +}; + +struct vt_mode { + char mode; + char waitv; + short relsig; + short acqsig; + short frsig; +}; + +struct consw; + +struct uni_pagedict; + +struct vc_data { + struct tty_port port; + struct vc_state state; + struct vc_state saved_state; + unsigned short vc_num; + unsigned int vc_cols; + unsigned int vc_rows; + unsigned int vc_size_row; + unsigned int vc_scan_lines; + unsigned int vc_cell_height; + unsigned long vc_origin; + unsigned long vc_scr_end; + unsigned long vc_visible_origin; + unsigned int vc_top; + unsigned int vc_bottom; + const struct consw *vc_sw; + unsigned short *vc_screenbuf; + unsigned int vc_screenbuf_size; + unsigned char vc_mode; + unsigned char vc_attr; + unsigned char vc_def_color; + unsigned char vc_ulcolor; + unsigned char vc_itcolor; + unsigned char vc_halfcolor; + unsigned int vc_cursor_type; + unsigned short vc_complement_mask; + unsigned short vc_s_complement_mask; + unsigned long vc_pos; + unsigned short vc_hi_font_mask; + struct console_font vc_font; + unsigned short vc_video_erase_char; + unsigned int vc_state; + unsigned int vc_npar; + unsigned int vc_par[16]; + struct vt_mode vt_mode; + struct pid *vt_pid; + int vt_newvt; + wait_queue_head_t paste_wait; + unsigned int vc_disp_ctrl: 1; + unsigned int vc_toggle_meta: 1; + unsigned int vc_decscnm: 1; + unsigned int vc_decom: 1; + unsigned int vc_decawm: 1; + unsigned int vc_deccm: 1; + unsigned int vc_decim: 1; + unsigned int vc_priv: 3; + unsigned int vc_need_wrap: 1; + unsigned int vc_can_do_color: 1; + unsigned int vc_report_mouse: 2; + unsigned char vc_utf: 1; + unsigned char vc_utf_count; + int vc_utf_char; + unsigned long vc_tab_stop[4]; + unsigned char vc_palette[48]; + unsigned short *vc_translate; + unsigned int vc_bell_pitch; + unsigned int vc_bell_duration; + unsigned short vc_cur_blink_ms; + struct vc_data **vc_display_fg; + struct uni_pagedict *uni_pagedict; + struct uni_pagedict **uni_pagedict_loc; + u32 **vc_uni_lines; +}; + +enum con_scroll { + SM_UP = 0, + SM_DOWN = 1, +}; + +enum vesa_blank_mode { + VESA_NO_BLANKING = 0, + VESA_VSYNC_SUSPEND = 1, + VESA_HSYNC_SUSPEND = 2, + VESA_POWERDOWN = 3, + VESA_BLANK_MAX = 3, +}; + +struct consw { + struct module *owner; + const char * (*con_startup)(); + void (*con_init)(struct vc_data *, bool); + void (*con_deinit)(struct vc_data *); + void (*con_clear)(struct vc_data *, unsigned int, unsigned int, unsigned int); + void (*con_putc)(struct vc_data *, u16, unsigned int, unsigned int); + void (*con_putcs)(struct vc_data *, const u16 *, unsigned int, unsigned int, unsigned int); + void (*con_cursor)(struct vc_data *, bool); + bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int); + bool (*con_switch)(struct vc_data *); + bool (*con_blank)(struct vc_data *, enum vesa_blank_mode, bool); + int (*con_font_set)(struct vc_data *, const struct console_font *, unsigned int, unsigned int); + int (*con_font_get)(struct vc_data *, struct console_font *, unsigned int); + int (*con_font_default)(struct vc_data *, struct console_font *, const char *); + int (*con_resize)(struct vc_data *, unsigned int, unsigned int, bool); + void (*con_set_palette)(struct vc_data *, const unsigned char *); + void (*con_scrolldelta)(struct vc_data *, int); + bool (*con_set_origin)(struct vc_data *); + void (*con_save_screen)(struct vc_data *); + u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool); + void (*con_invert_region)(struct vc_data *, u16 *, int); + void (*con_debug_enter)(struct vc_data *); + void (*con_debug_leave)(struct vc_data *); +}; + +typedef unsigned char u_char; + +typedef unsigned short u_short; + +struct fbcon_display { + const u_char *fontdata; + int userfont; + u_short inverse; + short yscroll; + int vrows; + int cursor_shape; + int con_rotate; + u32 xres_virtual; + u32 yres_virtual; + u32 height; + u32 width; + u32 bits_per_pixel; + u32 grayscale; + u32 nonstd; + u32 accel_flags; + u32 rotate; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + const struct fb_videomode *mode; +}; + +struct acpi_rsconvert_info { + u8 opcode; + u8 resource_offset; + u8 aml_offset; + u8 value; }; enum { - PCI_STD_RESOURCES = 0, - PCI_STD_RESOURCE_END = 5, - PCI_ROM_RESOURCE = 6, - PCI_BRIDGE_RESOURCES = 7, - PCI_BRIDGE_RESOURCE_END = 10, - PCI_NUM_RESOURCES = 11, - DEVICE_COUNT_RESOURCE = 11, + ACPI_RSC_INITGET = 0, + ACPI_RSC_INITSET = 1, + ACPI_RSC_FLAGINIT = 2, + ACPI_RSC_1BITFLAG = 3, + ACPI_RSC_2BITFLAG = 4, + ACPI_RSC_3BITFLAG = 5, + ACPI_RSC_6BITFLAG = 6, + ACPI_RSC_ADDRESS = 7, + ACPI_RSC_BITMASK = 8, + ACPI_RSC_BITMASK16 = 9, + ACPI_RSC_COUNT = 10, + ACPI_RSC_COUNT16 = 11, + ACPI_RSC_COUNT_GPIO_PIN = 12, + ACPI_RSC_COUNT_GPIO_RES = 13, + ACPI_RSC_COUNT_GPIO_VEN = 14, + ACPI_RSC_COUNT_SERIAL_RES = 15, + ACPI_RSC_COUNT_SERIAL_VEN = 16, + ACPI_RSC_DATA8 = 17, + ACPI_RSC_EXIT_EQ = 18, + ACPI_RSC_EXIT_LE = 19, + ACPI_RSC_EXIT_NE = 20, + ACPI_RSC_LENGTH = 21, + ACPI_RSC_MOVE_GPIO_PIN = 22, + ACPI_RSC_MOVE_GPIO_RES = 23, + ACPI_RSC_MOVE_SERIAL_RES = 24, + ACPI_RSC_MOVE_SERIAL_VEN = 25, + ACPI_RSC_MOVE8 = 26, + ACPI_RSC_MOVE16 = 27, + ACPI_RSC_MOVE32 = 28, + ACPI_RSC_MOVE64 = 29, + ACPI_RSC_SET8 = 30, + ACPI_RSC_SOURCE = 31, + ACPI_RSC_SOURCEX = 32, }; -enum pci_bus_speed { - PCI_SPEED_33MHz = 0, - PCI_SPEED_66MHz = 1, - PCI_SPEED_66MHz_PCIX = 2, - PCI_SPEED_100MHz_PCIX = 3, - PCI_SPEED_133MHz_PCIX = 4, - PCI_SPEED_66MHz_PCIX_ECC = 5, - PCI_SPEED_100MHz_PCIX_ECC = 6, - PCI_SPEED_133MHz_PCIX_ECC = 7, - PCI_SPEED_66MHz_PCIX_266 = 9, - PCI_SPEED_100MHz_PCIX_266 = 10, - PCI_SPEED_133MHz_PCIX_266 = 11, - AGP_UNKNOWN = 12, - AGP_1X = 13, - AGP_2X = 14, - AGP_4X = 15, - AGP_8X = 16, - PCI_SPEED_66MHz_PCIX_533 = 17, - PCI_SPEED_100MHz_PCIX_533 = 18, - PCI_SPEED_133MHz_PCIX_533 = 19, - PCIE_SPEED_2_5GT = 20, - PCIE_SPEED_5_0GT = 21, - PCIE_SPEED_8_0GT = 22, - PCIE_SPEED_16_0GT = 23, - PCIE_SPEED_32_0GT = 24, - PCIE_SPEED_64_0GT = 25, - PCI_SPEED_UNKNOWN = 255, +typedef u32 acpi_status; + +typedef u64 acpi_size; + +typedef u16 acpi_rs_length; + +struct acpi_resource_irq { + u8 descriptor_length; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; + union { + u8 interrupt; + struct { + struct {} __Empty_interrupts; + u8 interrupts[0]; + }; + }; }; -enum pci_bus_flags { - PCI_BUS_FLAGS_NO_MSI = 1, - PCI_BUS_FLAGS_NO_MMRBC = 2, - PCI_BUS_FLAGS_NO_AERSID = 4, - PCI_BUS_FLAGS_NO_EXTCFG = 8, +struct acpi_resource_dma { + u8 type; + u8 bus_master; + u8 transfer; + u8 channel_count; + union { + u8 channel; + struct { + struct {} __Empty_channels; + u8 channels[0]; + }; + }; }; -enum { - pci_channel_io_normal = 1, - pci_channel_io_frozen = 2, - pci_channel_io_perm_failure = 3, +struct acpi_resource_start_dependent { + u8 descriptor_length; + u8 compatibility_priority; + u8 performance_robustness; }; -enum pci_fixup_pass { - pci_fixup_early = 0, - pci_fixup_header = 1, - pci_fixup_final = 2, - pci_fixup_enable = 3, - pci_fixup_resume = 4, - pci_fixup_suspend = 5, - pci_fixup_resume_early = 6, - pci_fixup_suspend_late = 7, +struct acpi_resource_io { + u8 io_decode; + u8 alignment; + u8 address_length; + u16 minimum; + u16 maximum; +} __attribute__((packed)); + +struct acpi_resource_fixed_io { + u16 address; + u8 address_length; +} __attribute__((packed)); + +struct acpi_resource_fixed_dma { + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); + +struct acpi_resource_vendor { + u16 byte_length; + u8 byte_data[0]; }; -enum pcie_bus_config_types { - PCIE_BUS_TUNE_OFF = 0, - PCIE_BUS_DEFAULT = 1, - PCIE_BUS_SAFE = 2, - PCIE_BUS_PERFORMANCE = 3, - PCIE_BUS_PEER2PEER = 4, +struct acpi_resource_vendor_typed { + u16 byte_length; + u8 uuid_subtype; + u8 uuid[16]; + u8 byte_data[0]; +} __attribute__((packed)); + +struct acpi_resource_end_tag { + u8 checksum; }; -enum { - PCI_REASSIGN_ALL_RSRC = 1, - PCI_REASSIGN_ALL_BUS = 2, - PCI_PROBE_ONLY = 4, - PCI_CAN_SKIP_ISA_ALIGN = 8, - PCI_ENABLE_PROC_DOMAINS = 16, - PCI_COMPAT_DOMAIN_0 = 32, - PCI_SCAN_ALL_PCIE_DEVS = 64, +struct acpi_resource_memory24 { + u8 write_protect; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); + +struct acpi_resource_memory32 { + u8 write_protect; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); + +struct acpi_resource_fixed_memory32 { + u8 write_protect; + u32 address; + u32 address_length; +} __attribute__((packed)); + +struct acpi_memory_attribute { + u8 write_protect; + u8 caching; + u8 range_type; + u8 translation; +}; + +struct acpi_io_attribute { + u8 range_type; + u8 translation; + u8 translation_type; + u8 reserved1; +}; + +union acpi_resource_attribute { + struct acpi_memory_attribute mem; + struct acpi_io_attribute io; + u8 type_specific; +}; + +struct acpi_address16_attribute { + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +}; + +struct acpi_resource_source { + u8 index; + u16 string_length; + char *string_ptr; +} __attribute__((packed)); + +struct acpi_resource_address16 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + struct acpi_address16_attribute address; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_address32_attribute { + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; +}; + +struct acpi_resource_address32 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + struct acpi_address32_attribute address; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_address64_attribute { + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +}; + +struct acpi_resource_address64 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + struct acpi_address64_attribute address; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_resource_extended_address64 { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; + u8 revision_ID; + struct acpi_address64_attribute address; + u64 type_specific; +} __attribute__((packed)); + +struct acpi_resource_extended_irq { + u8 producer_consumer; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; + struct acpi_resource_source resource_source; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); + +struct acpi_resource_generic_register { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct acpi_resource_gpio { + u8 revision_id; + u8 connection_type; + u8 producer_consumer; + u8 pin_config; + u8 shareable; + u8 wake_capable; + u8 io_restriction; + u8 triggering; + u8 polarity; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_i2c_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 access_mode; + u16 slave_address; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_spi_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 wire_mode; + u8 device_polarity; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_uart_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 endian; + u8 data_bits; + u8 stop_bits; + u8 flow_control; + u8 parity; + u8 lines_enabled; + u16 rx_fifo_size; + u16 tx_fifo_size; + u32 default_baud_rate; +} __attribute__((packed)); + +struct acpi_resource_csi2_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 local_port_instance; + u8 phy_type; +} __attribute__((packed)); + +struct acpi_resource_common_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_function { + u8 revision_id; + u8 pin_config; + u8 shareable; + u16 function_number; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_label { + u16 string_length; + char *string_ptr; +} __attribute__((packed)); + +struct acpi_resource_pin_group { + u8 revision_id; + u8 producer_consumer; + u16 pin_table_length; + u16 vendor_length; + u16 *pin_table; + struct acpi_resource_label resource_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_function { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u16 function_number; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_clock_input { + u8 revision_id; + u8 mode; + u8 scale; + u16 frequency_divisor; + u32 frequency_numerator; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_resource_address { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; +}; + +union acpi_resource_data { + struct acpi_resource_irq irq; + struct acpi_resource_dma dma; + struct acpi_resource_start_dependent start_dpf; + struct acpi_resource_io io; + struct acpi_resource_fixed_io fixed_io; + struct acpi_resource_fixed_dma fixed_dma; + struct acpi_resource_vendor vendor; + struct acpi_resource_vendor_typed vendor_typed; + struct acpi_resource_end_tag end_tag; + struct acpi_resource_memory24 memory24; + struct acpi_resource_memory32 memory32; + struct acpi_resource_fixed_memory32 fixed_memory32; + struct acpi_resource_address16 address16; + struct acpi_resource_address32 address32; + struct acpi_resource_address64 address64; + struct acpi_resource_extended_address64 ext_address64; + struct acpi_resource_extended_irq extended_irq; + struct acpi_resource_generic_register generic_reg; + struct acpi_resource_gpio gpio; + struct acpi_resource_i2c_serialbus i2c_serial_bus; + struct acpi_resource_spi_serialbus spi_serial_bus; + struct acpi_resource_uart_serialbus uart_serial_bus; + struct acpi_resource_csi2_serialbus csi2_serial_bus; + struct acpi_resource_common_serialbus common_serial_bus; + struct acpi_resource_pin_function pin_function; + struct acpi_resource_pin_config pin_config; + struct acpi_resource_pin_group pin_group; + struct acpi_resource_pin_group_function pin_group_function; + struct acpi_resource_pin_group_config pin_group_config; + struct acpi_resource_clock_input clock_input; + struct acpi_resource_address address; +}; + +struct acpi_resource { + u32 type; + u32 length; + union acpi_resource_data data; +}; + +struct aml_resource_small_header { + u8 descriptor_type; +}; + +struct aml_resource_large_header { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_irq { + u8 descriptor_type; + u16 irq_mask; + u8 flags; +} __attribute__((packed)); + +struct aml_resource_dma { + u8 descriptor_type; + u8 dma_channel_mask; + u8 flags; +}; + +struct aml_resource_start_dependent { + u8 descriptor_type; + u8 flags; +}; + +struct aml_resource_end_dependent { + u8 descriptor_type; +}; + +struct aml_resource_io { + u8 descriptor_type; + u8 flags; + u16 minimum; + u16 maximum; + u8 alignment; + u8 address_length; +}; + +struct aml_resource_fixed_io { + u8 descriptor_type; + u16 address; + u8 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_dma { + u8 descriptor_type; + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); + +struct aml_resource_vendor_small { + u8 descriptor_type; +}; + +struct aml_resource_end_tag { + u8 descriptor_type; + u8 checksum; +}; + +struct aml_resource_memory24 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_generic_register { + u8 descriptor_type; + u16 resource_length; + u8 address_space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct aml_resource_vendor_large { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 address; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address16 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_address32 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +} __attribute__((packed)); + +struct aml_resource_extended_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u8 revision_ID; + u8 reserved; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; + u64 type_specific; +} __attribute__((packed)); + +struct aml_resource_extended_irq { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u8 interrupt_count; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); + +struct aml_resource_gpio { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 connection_type; + u16 flags; + u16 int_flags; + u8 pin_config; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_i2c_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u16 slave_address; +} __attribute__((packed)); + +struct aml_resource_spi_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; +} __attribute__((packed)); + +struct aml_resource_uart_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 default_baud_rate; + u16 rx_fifo_size; + u16 tx_fifo_size; + u8 parity; + u8 lines_enabled; +} __attribute__((packed)); + +struct aml_resource_csi2_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_common_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_pin_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config; + u16 function_number; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 pin_table_offset; + u16 label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 function_number; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_clock_input { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 frequency_divisor; + u32 frequency_numerator; +} __attribute__((packed)); + +struct aml_resource_address { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; +} __attribute__((packed)); + +union aml_resource { + u8 descriptor_type; + struct aml_resource_small_header small_header; + struct aml_resource_large_header large_header; + struct aml_resource_irq irq; + struct aml_resource_dma dma; + struct aml_resource_start_dependent start_dpf; + struct aml_resource_end_dependent end_dpf; + struct aml_resource_io io; + struct aml_resource_fixed_io fixed_io; + struct aml_resource_fixed_dma fixed_dma; + struct aml_resource_vendor_small vendor_small; + struct aml_resource_end_tag end_tag; + struct aml_resource_memory24 memory24; + struct aml_resource_generic_register generic_reg; + struct aml_resource_vendor_large vendor_large; + struct aml_resource_memory32 memory32; + struct aml_resource_fixed_memory32 fixed_memory32; + struct aml_resource_address16 address16; + struct aml_resource_address32 address32; + struct aml_resource_address64 address64; + struct aml_resource_extended_address64 ext_address64; + struct aml_resource_extended_irq extended_irq; + struct aml_resource_gpio gpio; + struct aml_resource_i2c_serialbus i2c_serial_bus; + struct aml_resource_spi_serialbus spi_serial_bus; + struct aml_resource_uart_serialbus uart_serial_bus; + struct aml_resource_csi2_serialbus csi2_serial_bus; + struct aml_resource_common_serialbus common_serial_bus; + struct aml_resource_pin_function pin_function; + struct aml_resource_pin_config pin_config; + struct aml_resource_pin_group pin_group; + struct aml_resource_pin_group_function pin_group_function; + struct aml_resource_pin_group_config pin_group_config; + struct aml_resource_clock_input clock_input; + struct aml_resource_address address; + u32 dword_item; + u16 word_item; + u8 byte_item; +}; + +typedef u32 acpi_rsdesc_size; + +typedef u64 acpi_physical_address; + +struct acpi_table_rsdp { + char signature[8]; + u8 checksum; + char oem_id[6]; + u8 revision; + u32 rsdt_physical_address; + u32 length; + u64 xsdt_physical_address; + u8 extended_checksum; + u8 reserved[3]; +} __attribute__((packed)); + +struct acpi_buffer { + acpi_size length; + void *pointer; +}; + +struct acpi_table_header { + char signature[4]; + u32 length; + u8 revision; + u8 checksum; + char oem_id[6]; + char oem_table_id[8]; + u32 oem_revision; + char asl_compiler_id[4]; + u32 asl_compiler_revision; +}; + +struct acpi_table_cdat { + u32 length; + u8 revision; + u8 checksum; + u8 reserved[6]; + u32 sequence; +}; + +struct acpi_rw_lock { + void *writer_mutex; + void *reader_mutex; + u32 num_readers; +}; + +struct plist_head { + struct list_head node_list; +}; + +enum pm_qos_type { + PM_QOS_UNITIALIZED = 0, + PM_QOS_MAX = 1, + PM_QOS_MIN = 2, +}; + +struct pm_qos_constraints { + struct plist_head list; + s32 target_value; + s32 default_value; + s32 no_constraint_value; + enum pm_qos_type type; + struct blocking_notifier_head *notifiers; +}; + +struct freq_constraints { + struct pm_qos_constraints min_freq; + struct blocking_notifier_head min_freq_notifiers; + struct pm_qos_constraints max_freq; + struct blocking_notifier_head max_freq_notifiers; +}; + +struct pm_qos_flags { + struct list_head list; + s32 effective_flags; +}; + +struct dev_pm_qos_request; + +struct dev_pm_qos { + struct pm_qos_constraints resume_latency; + struct pm_qos_constraints latency_tolerance; + struct freq_constraints freq; + struct pm_qos_flags flags; + struct dev_pm_qos_request *resume_latency_req; + struct dev_pm_qos_request *latency_tolerance_req; + struct dev_pm_qos_request *flags_req; +}; + +struct pm_qos_flags_request { + struct list_head node; + s32 flags; +}; + +enum freq_qos_req_type { + FREQ_QOS_MIN = 1, + FREQ_QOS_MAX = 2, +}; + +struct freq_qos_request { + enum freq_qos_req_type type; + struct plist_node pnode; + struct freq_constraints *qos; +}; + +enum dev_pm_qos_req_type { + DEV_PM_QOS_RESUME_LATENCY = 1, + DEV_PM_QOS_LATENCY_TOLERANCE = 2, + DEV_PM_QOS_MIN_FREQUENCY = 3, + DEV_PM_QOS_MAX_FREQUENCY = 4, + DEV_PM_QOS_FLAGS = 5, +}; + +struct dev_pm_qos_request { + enum dev_pm_qos_req_type type; + union { + struct plist_node pnode; + struct pm_qos_flags_request flr; + struct freq_qos_request freq; + } data; + struct device *dev; +}; + +enum cpufreq_table_sorting { + CPUFREQ_TABLE_UNSORTED = 0, + CPUFREQ_TABLE_SORTED_ASCENDING = 1, + CPUFREQ_TABLE_SORTED_DESCENDING = 2, }; enum dev_prop_type { @@ -17399,100 +19022,6 @@ enum dev_prop_type { DEV_PROP_REF = 5, }; -enum pci_dev_flags { - PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1, - PCI_DEV_FLAGS_NO_D3 = 2, - PCI_DEV_FLAGS_ASSIGNED = 4, - PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8, - PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32, - PCI_DEV_FLAGS_NO_BUS_RESET = 64, - PCI_DEV_FLAGS_NO_PM_RESET = 128, - PCI_DEV_FLAGS_VPD_REF_F0 = 256, - PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512, - PCI_DEV_FLAGS_NO_FLR_RESET = 1024, - PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048, - PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096, -}; - -struct hotplug_slot_ops; - -struct hotplug_slot { - const struct hotplug_slot_ops *ops; - struct list_head slot_list; - struct pci_slot *pci_slot; - struct module *owner; - const char *mod_name; -}; - -struct hotplug_slot_ops { - int (*enable_slot)(struct hotplug_slot *); - int (*disable_slot)(struct hotplug_slot *); - int (*set_attention_status)(struct hotplug_slot *, u8); - int (*hardware_test)(struct hotplug_slot *, u32); - int (*get_power_status)(struct hotplug_slot *, u8 *); - int (*get_attention_status)(struct hotplug_slot *, u8 *); - int (*get_latch_status)(struct hotplug_slot *, u8 *); - int (*get_adapter_status)(struct hotplug_slot *, u8 *); - int (*reset_slot)(struct hotplug_slot *, bool); -}; - -struct resource_entry { - struct list_head node; - struct resource *res; - resource_size_t offset; - struct resource __res; -}; - -typedef u64 pci_bus_addr_t; - -struct pci_host_bridge { - struct device dev; - struct pci_bus *bus; - struct pci_ops *ops; - struct pci_ops *child_ops; - void *sysdata; - int busnr; - int domain_nr; - struct list_head windows; - struct list_head dma_ranges; - u8 (*swizzle_irq)(struct pci_dev *, u8 *); - int (*map_irq)(const struct pci_dev *, u8, u8); - void (*release_fn)(struct pci_host_bridge *); - void *release_data; - unsigned int ignore_reset_delay: 1; - unsigned int no_ext_tags: 1; - unsigned int no_inc_mrrs: 1; - unsigned int native_aer: 1; - unsigned int native_pcie_hotplug: 1; - unsigned int native_shpc_hotplug: 1; - unsigned int native_pme: 1; - unsigned int native_ltr: 1; - unsigned int native_dpc: 1; - unsigned int native_cxl_error: 1; - unsigned int preserve_config: 1; - unsigned int size_windows: 1; - unsigned int msi_domain: 1; - resource_size_t (*align_resource)(struct pci_dev *, const struct resource *, resource_size_t, resource_size_t, resource_size_t); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long private[0]; -}; - -struct pci_domain_busn_res { - struct list_head list; - struct resource res; - int domain_nr; -}; - -struct pci_bus_region { - pci_bus_addr_t start; - pci_bus_addr_t end; -}; - typedef void *acpi_handle; struct acpi_device_status { @@ -17803,16 +19332,344 @@ struct acpi_gpio_mapping { unsigned int quirks; }; -struct dmi_system_id; +typedef u32 phys_cpuid_t; -struct prt_quirk { - const struct dmi_system_id *system; - unsigned int segment; - unsigned int bus; - unsigned int device; - unsigned char pin; - const char *source; - const char *actual_source; +struct acpi_processor_flags { + u8 power: 1; + u8 performance: 1; + u8 throttling: 1; + u8 limit: 1; + u8 bm_control: 1; + u8 bm_check: 1; + u8 has_cst: 1; + u8 has_lpi: 1; + u8 power_setup_done: 1; + u8 bm_rld_set: 1; + u8 need_hotplug_init: 1; +}; + +struct acpi_processor_cx { + u8 valid; + u8 type; + u32 address; + u8 entry_method; + u8 index; + u32 latency; + u8 bm_sts_skip; + char desc[32]; +}; + +struct acpi_lpi_state { + u32 min_residency; + u32 wake_latency; + u32 flags; + u32 arch_flags; + u32 res_cnt_freq; + u32 enable_parent_state; + u64 address; + u8 index; + u8 entry_method; + char desc[32]; +}; + +struct acpi_processor_power { + int count; + union { + struct acpi_processor_cx states[8]; + struct acpi_lpi_state lpi_states[8]; + }; + int timer_broadcast_on_state; +}; + +struct acpi_pct_register { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 reserved; + u64 address; +} __attribute__((packed)); + +struct acpi_tsd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; +}; + +struct acpi_processor_tx { + u16 power; + u16 performance; +}; + +struct acpi_processor_tx_tss; + +struct acpi_processor; + +struct acpi_processor_throttling { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_tx_tss *states_tss; + struct acpi_tsd_package domain_info; + cpumask_var_t shared_cpu_map; + int (*acpi_processor_get_throttling)(struct acpi_processor *); + int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); + u32 address; + u8 duty_offset; + u8 duty_width; + u8 tsd_valid_flag; + unsigned int shared_type; + struct acpi_processor_tx states[16]; +}; + +struct acpi_processor_lx { + int px; + int tx; +}; + +struct acpi_processor_limit { + struct acpi_processor_lx state; + struct acpi_processor_lx thermal; + struct acpi_processor_lx user; +}; + +struct acpi_processor_performance; + +struct thermal_cooling_device; + +struct acpi_processor { + acpi_handle handle; + u32 acpi_id; + phys_cpuid_t phys_id; + u32 id; + u32 pblk; + int performance_platform_limit; + int throttling_platform_limit; + struct acpi_processor_flags flags; + struct acpi_processor_power power; + struct acpi_processor_performance *performance; + struct acpi_processor_throttling throttling; + struct acpi_processor_limit limit; + struct thermal_cooling_device *cdev; + struct device *dev; + struct freq_qos_request perflib_req; + struct freq_qos_request thermal_req; +}; + +struct acpi_psd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; +}; + +struct acpi_processor_px; + +struct acpi_processor_performance { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_px *states; + struct acpi_psd_package domain_info; + cpumask_var_t shared_cpu_map; + unsigned int shared_type; +}; + +struct acpi_processor_px { + u64 core_frequency; + u64 power; + u64 transition_latency; + u64 bus_master_latency; + u64 control; + u64 status; +}; + +struct acpi_processor_tx_tss { + u64 freqpercentage; + u64 power; + u64 transition_latency; + u64 control; + u64 status; +}; + +struct thermal_cooling_device_ops; + +struct thermal_cooling_device { + int id; + const char *type; + unsigned long max_state; + struct device device; + struct device_node *np; + void *devdata; + void *stats; + const struct thermal_cooling_device_ops *ops; + bool updated; + struct mutex lock; + struct list_head thermal_instances; + struct list_head node; +}; + +struct thermal_cooling_device_ops { + int (*get_max_state)(struct thermal_cooling_device *, unsigned long *); + int (*get_cur_state)(struct thermal_cooling_device *, unsigned long *); + int (*set_cur_state)(struct thermal_cooling_device *, unsigned long); + int (*get_requested_power)(struct thermal_cooling_device *, u32 *); + int (*state2power)(struct thermal_cooling_device *, unsigned long, u32 *); + int (*power2state)(struct thermal_cooling_device *, u32, unsigned long *); +}; + +struct cpufreq_cpuinfo { + unsigned int max_freq; + unsigned int min_freq; + unsigned int transition_latency; +}; + +struct cpufreq_stats; + +struct clk; + +struct cpufreq_governor; + +struct cpufreq_frequency_table; + +struct cpufreq_policy { + cpumask_var_t cpus; + cpumask_var_t related_cpus; + cpumask_var_t real_cpus; + unsigned int shared_type; + unsigned int cpu; + struct clk *clk; + struct cpufreq_cpuinfo cpuinfo; + unsigned int min; + unsigned int max; + unsigned int cur; + unsigned int suspend_freq; + unsigned int policy; + unsigned int last_policy; + struct cpufreq_governor *governor; + void *governor_data; + char last_governor[16]; + struct work_struct update; + struct freq_constraints constraints; + struct freq_qos_request *min_freq_req; + struct freq_qos_request *max_freq_req; + struct cpufreq_frequency_table *freq_table; + enum cpufreq_table_sorting freq_table_sorted; + struct list_head policy_list; + struct kobject kobj; + struct completion kobj_unregister; + struct rw_semaphore rwsem; + bool fast_switch_possible; + bool fast_switch_enabled; + bool strict_target; + bool efficiencies_available; + unsigned int transition_delay_us; + bool dvfs_possible_from_any_cpu; + bool boost_enabled; + unsigned int cached_target_freq; + unsigned int cached_resolved_idx; + bool transition_ongoing; + spinlock_t transition_lock; + wait_queue_head_t transition_wait; + struct task_struct *transition_task; + struct cpufreq_stats *stats; + void *driver_data; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; +}; + +struct cpufreq_governor { + char name[16]; + int (*init)(struct cpufreq_policy *); + void (*exit)(struct cpufreq_policy *); + int (*start)(struct cpufreq_policy *); + void (*stop)(struct cpufreq_policy *); + void (*limits)(struct cpufreq_policy *); + ssize_t (*show_setspeed)(struct cpufreq_policy *, char *); + int (*store_setspeed)(struct cpufreq_policy *, unsigned int); + struct list_head governor_list; + struct module *owner; + u8 flags; +}; + +struct cpufreq_frequency_table { + unsigned int flags; + unsigned int driver_data; + unsigned int frequency; +}; + +typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); + +struct cpuidle_device; + +struct cpuidle_driver; + +struct cpuidle_state { + char name[16]; + char desc[32]; + s64 exit_latency_ns; + s64 target_residency_ns; + unsigned int flags; + unsigned int exit_latency; + int power_usage; + unsigned int target_residency; + int (*enter)(struct cpuidle_device *, struct cpuidle_driver *, int); + int (*enter_dead)(struct cpuidle_device *, int); + int (*enter_s2idle)(struct cpuidle_device *, struct cpuidle_driver *, int); +}; + +struct cpuidle_driver { + const char *name; + struct module *owner; + unsigned int bctimer: 1; + struct cpuidle_state states[10]; + int state_count; + int safe_state_index; + struct cpumask *cpumask; + const char *governor; +}; + +struct cpuidle_state_usage { + unsigned long long disable; + unsigned long long usage; + u64 time_ns; + unsigned long long above; + unsigned long long below; + unsigned long long rejected; + unsigned long long s2idle_usage; + unsigned long long s2idle_time; +}; + +struct cpuidle_driver_kobj; + +struct cpuidle_state_kobj; + +struct cpuidle_device_kobj; + +struct cpuidle_device { + unsigned int registered: 1; + unsigned int enabled: 1; + unsigned int poll_time_limit: 1; + unsigned int cpu; + ktime_t next_hrtimer; + int last_state_idx; + u64 last_residency_ns; + u64 poll_limit_ns; + u64 forced_idle_latency_limit_ns; + struct cpuidle_state_usage states_usage[10]; + struct cpuidle_state_kobj *kobjs[10]; + struct cpuidle_driver_kobj *kobj_driver; + struct cpuidle_device_kobj *kobj_dev; + struct list_head device_list; }; struct dmi_strmatch { @@ -17828,1740 +19685,1049 @@ struct dmi_system_id { void *driver_data; }; -enum acpi_irq_model_id { - ACPI_IRQ_MODEL_PIC = 0, - ACPI_IRQ_MODEL_IOAPIC = 1, - ACPI_IRQ_MODEL_IOSAPIC = 2, - ACPI_IRQ_MODEL_PLATFORM = 3, - ACPI_IRQ_MODEL_GIC = 4, - ACPI_IRQ_MODEL_LPIC = 5, - ACPI_IRQ_MODEL_COUNT = 6, +struct drm_dmi_panel_orientation_data { + int width; + int height; + const char * const *bios_dates; + int orientation; }; -enum pci_irq_reroute_variant { - INTEL_IRQ_REROUTE_VARIANT = 1, - MAX_IRQ_REROUTE_VARIANTS = 3, +enum drm_panel_orientation { + DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1, + DRM_MODE_PANEL_ORIENTATION_NORMAL = 0, + DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1, + DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2, + DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3, }; -typedef u64 acpi_size; +struct klist_node; -struct acpi_pci_routing_table { - u32 length; - u32 pin; - u64 address; - u32 source_index; - union { - char pad[4]; - struct { - struct {} __Empty_source; - char source[0]; - }; - }; +struct klist { + spinlock_t k_lock; + struct list_head k_list; + void (*get)(struct klist_node *); + void (*put)(struct klist_node *); }; -struct acpi_pci_id { - u16 segment; - u16 bus; - u16 device; - u16 function; +struct klist_node { + void *n_klist; + struct list_head n_node; + struct kref n_ref; }; -struct acpi_prt_entry { - struct acpi_pci_id id; - u8 pin; - acpi_handle link; - u32 index; -}; - -typedef u32 acpi_status; - -struct acpi_buffer { - acpi_size length; - void *pointer; -}; - -struct tty_port; - -struct tty_port_client_operations { - size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); - void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); - void (*write_wakeup)(struct tty_port *); -}; - -struct __kfifo { - unsigned int in; - unsigned int out; - unsigned int mask; - unsigned int esize; - void *data; -}; - -struct tty_buffer { - union { - struct tty_buffer *next; - struct llist_node free; - }; - unsigned int used; - unsigned int size; - unsigned int commit; - unsigned int lookahead; - unsigned int read; - bool flags; - long: 0; - u8 data[0]; -}; - -struct tty_bufhead { - struct tty_buffer *head; - struct work_struct work; - struct mutex lock; - atomic_t priority; - struct tty_buffer sentinel; - struct llist_head free; - atomic_t mem_used; - int mem_limit; - struct tty_buffer *tail; -}; - -struct tty_port_operations; - -struct tty_port { - struct tty_bufhead buf; - struct tty_struct *tty; - struct tty_struct *itty; - const struct tty_port_operations *ops; - const struct tty_port_client_operations *client_ops; - spinlock_t lock; - int blocked_open; - int count; - wait_queue_head_t open_wait; - wait_queue_head_t delta_msr_wait; - unsigned long flags; - unsigned long iflags; - unsigned char console: 1; - struct mutex mutex; - struct mutex buf_mutex; - u8 *xmit_buf; - struct { - union { - struct __kfifo kfifo; - u8 *type; - const u8 *const_type; - char (*rectype)[0]; - u8 *ptr; - const u8 *ptr_const; - }; - u8 buf[0]; - } xmit_fifo; - unsigned int close_delay; - unsigned int closing_wait; - int drain_delay; - struct kref kref; - void *client_data; -}; - -struct ld_semaphore { - atomic_long_t count; - raw_spinlock_t wait_lock; - unsigned int wait_readers; - struct list_head read_wait; - struct list_head write_wait; - struct lockdep_map dep_map; -}; - -typedef unsigned int tcflag_t; - -typedef unsigned char cc_t; - -typedef unsigned int speed_t; - -struct ktermios { - tcflag_t c_iflag; - tcflag_t c_oflag; - tcflag_t c_cflag; - tcflag_t c_lflag; - cc_t c_line; - cc_t c_cc[19]; - speed_t c_ispeed; - speed_t c_ospeed; -}; - -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; -}; - -struct tty_driver; - -struct tty_operations; - -struct tty_ldisc; - -struct tty_struct { - struct kref kref; - int index; - struct device *dev; - struct tty_driver *driver; - struct tty_port *port; - const struct tty_operations *ops; - struct tty_ldisc *ldisc; - struct ld_semaphore ldisc_sem; - struct mutex atomic_write_lock; - struct mutex legacy_mutex; - struct mutex throttle_mutex; - struct rw_semaphore termios_rwsem; - struct mutex winsize_mutex; - struct ktermios termios; - struct ktermios termios_locked; - char name[64]; - unsigned long flags; - int count; - unsigned int receive_room; - struct winsize winsize; - struct { - spinlock_t lock; - bool stopped; - bool tco_stopped; - unsigned long unused[0]; - } flow; - struct { - struct pid *pgrp; - struct pid *session; - spinlock_t lock; - unsigned char pktstatus; - bool packet; - unsigned long unused[0]; - } ctrl; - bool hw_stopped; - bool closing; - int flow_change; - struct tty_struct *link; - struct fasync_struct *fasync; - wait_queue_head_t write_wait; - wait_queue_head_t read_wait; - struct work_struct hangup_work; - void *disc_data; - void *driver_data; - spinlock_t files_lock; - int write_cnt; - u8 *write_buf; - struct list_head tty_files; - struct work_struct SAK_work; -}; - -struct cdev { - struct kobject kobj; - struct module *owner; - const struct file_operations *ops; - struct list_head list; - dev_t dev; - unsigned int count; -}; - -struct tty_driver { - struct kref kref; - struct cdev **cdevs; - struct module *owner; - const char *driver_name; - const char *name; - int name_base; - int major; - int minor_start; - unsigned int num; - short type; - short subtype; - struct ktermios init_termios; - unsigned long flags; - struct proc_dir_entry *proc_entry; - struct tty_driver *other; - struct tty_struct **ttys; - struct tty_port **ports; - struct ktermios **termios; - void *driver_state; - const struct tty_operations *ops; - struct list_head tty_drivers; -}; - -struct serial_icounter_struct; - -struct serial_struct; - -struct tty_operations { - struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); - int (*install)(struct tty_driver *, struct tty_struct *); - void (*remove)(struct tty_driver *, struct tty_struct *); - int (*open)(struct tty_struct *, struct file *); - void (*close)(struct tty_struct *, struct file *); - void (*shutdown)(struct tty_struct *); - void (*cleanup)(struct tty_struct *); - ssize_t (*write)(struct tty_struct *, const u8 *, size_t); - int (*put_char)(struct tty_struct *, u8); - void (*flush_chars)(struct tty_struct *); - unsigned int (*write_room)(struct tty_struct *); - unsigned int (*chars_in_buffer)(struct tty_struct *); - int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); - long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); - void (*set_termios)(struct tty_struct *, const struct ktermios *); - void (*throttle)(struct tty_struct *); - void (*unthrottle)(struct tty_struct *); - void (*stop)(struct tty_struct *); - void (*start)(struct tty_struct *); - void (*hangup)(struct tty_struct *); - int (*break_ctl)(struct tty_struct *, int); - void (*flush_buffer)(struct tty_struct *); - void (*set_ldisc)(struct tty_struct *); - void (*wait_until_sent)(struct tty_struct *, int); - void (*send_xchar)(struct tty_struct *, u8); - int (*tiocmget)(struct tty_struct *); - int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int); - int (*resize)(struct tty_struct *, struct winsize *); - int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *); - int (*get_serial)(struct tty_struct *, struct serial_struct *); - int (*set_serial)(struct tty_struct *, struct serial_struct *); - void (*show_fdinfo)(struct tty_struct *, struct seq_file *); - int (*proc_show)(struct seq_file *, void *); -}; - -struct serial_icounter_struct { - int cts; - int dsr; - int rng; - int dcd; - int rx; - int tx; - int frame; - int overrun; - int parity; - int brk; - int buf_overrun; - int reserved[9]; -}; - -struct serial_struct { - int type; - int line; - unsigned int port; - int irq; - int flags; - int xmit_fifo_size; - int custom_divisor; - int baud_base; - unsigned short close_delay; - char io_type; - char reserved_char[1]; - int hub6; - unsigned short closing_wait; - unsigned short closing_wait2; - unsigned char *iomem_base; - unsigned short iomem_reg_shift; - unsigned int port_high; - unsigned long iomap_base; -}; - -struct tty_ldisc_ops; - -struct tty_ldisc { - struct tty_ldisc_ops *ops; - struct tty_struct *tty; -}; - -struct tty_ldisc_ops { - char *name; - int num; - int (*open)(struct tty_struct *); - void (*close)(struct tty_struct *); - void (*flush_buffer)(struct tty_struct *); - ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, unsigned long); - ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); - int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); - int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); - void (*set_termios)(struct tty_struct *, const struct ktermios *); - __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); - void (*hangup)(struct tty_struct *); - void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); - void (*write_wakeup)(struct tty_struct *); - void (*dcd_change)(struct tty_struct *, bool); - size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); - void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); - struct module *owner; -}; - -struct tty_port_operations { - bool (*carrier_raised)(struct tty_port *); - void (*dtr_rts)(struct tty_port *, bool); - void (*shutdown)(struct tty_port *); - int (*activate)(struct tty_port *, struct tty_struct *); - void (*destruct)(struct tty_port *); -}; - -enum nbcon_prio { - NBCON_PRIO_NONE = 0, - NBCON_PRIO_NORMAL = 1, - NBCON_PRIO_EMERGENCY = 2, - NBCON_PRIO_PANIC = 3, - NBCON_PRIO_MAX = 4, -}; - -enum uart_pm_state { - UART_PM_STATE_ON = 0, - UART_PM_STATE_OFF = 3, - UART_PM_STATE_UNDEFINED = 4, -}; - -typedef u64 upf_t; - -struct mfd_cell; - -struct pdev_archdata {}; - -struct platform_device_id; - -struct platform_device { - const char *name; - int id; - bool id_auto; - struct device dev; - u64 platform_dma_mask; - struct device_dma_parameters dma_parms; - u32 num_resources; - struct resource *resource; - const struct platform_device_id *id_entry; - const char *driver_override; - struct mfd_cell *mfd_cell; - struct pdev_archdata archdata; -}; - -struct platform_device_id { - char name[20]; - kernel_ulong_t driver_data; -}; - -struct uart_port; - -struct serial_port_device { - struct device dev; - struct uart_port *port; -}; - -struct uart_icount { - __u32 cts; - __u32 dsr; - __u32 rng; - __u32 dcd; - __u32 rx; - __u32 tx; - __u32 frame; - __u32 overrun; - __u32 parity; - __u32 brk; - __u32 buf_overrun; -}; - -typedef unsigned int upstat_t; - -struct serial_rs485 { - __u32 flags; - __u32 delay_rts_before_send; - __u32 delay_rts_after_send; - union { - __u32 padding[5]; - struct { - __u8 addr_recv; - __u8 addr_dest; - __u8 padding0[2]; - __u32 padding1[4]; - }; - }; -}; - -struct gpio_desc; - -struct serial_iso7816 { - __u32 flags; - __u32 tg; - __u32 sc_fi; - __u32 sc_di; - __u32 clk; - __u32 reserved[5]; -}; - -struct uart_state; - -struct console; - -struct uart_ops; - -struct uart_port { - spinlock_t lock; - unsigned long iobase; - unsigned char *membase; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); - void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); - int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); - int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); - unsigned int ctrl_id; - unsigned int port_id; - unsigned int irq; - unsigned long irqflags; - unsigned int uartclk; - unsigned int fifosize; - unsigned char x_char; - unsigned char regshift; - unsigned char iotype; - unsigned char quirks; - unsigned int read_status_mask; - unsigned int ignore_status_mask; - struct uart_state *state; - struct uart_icount icount; - struct console *cons; - upf_t flags; - upstat_t status; - bool hw_stopped; - unsigned int mctrl; - unsigned int frame_time; - unsigned int type; - const struct uart_ops *ops; - unsigned int custom_divisor; - unsigned int line; - unsigned int minor; - resource_size_t mapbase; - resource_size_t mapsize; - struct device *dev; - struct serial_port_device *port_dev; - unsigned long sysrq; - u8 sysrq_ch; - unsigned char has_sysrq; - unsigned char sysrq_seq; - unsigned char hub6; - unsigned char suspended; - unsigned char console_reinit; - const char *name; - struct attribute_group *attr_group; - const struct attribute_group **tty_groups; - struct serial_rs485 rs485; - struct serial_rs485 rs485_supported; - struct gpio_desc *rs485_term_gpio; - struct gpio_desc *rs485_rx_during_tx_gpio; - struct serial_iso7816 iso7816; - void *private_data; -}; - -struct circ_buf { - char *buf; - int head; - int tail; -}; - -struct uart_state { - struct tty_port port; - enum uart_pm_state pm_state; - struct circ_buf xmit; - atomic_t refcount; - wait_queue_head_t remove_wait; - struct uart_port *uart_port; -}; - -typedef unsigned int uint; - -struct nbcon_write_context; - -struct printk_buffers; - -struct console { - char name[16]; - void (*write)(struct console *, const char *, unsigned int); - int (*read)(struct console *, char *, unsigned int); - struct tty_driver * (*device)(struct console *, int *); - void (*unblank)(); - int (*setup)(struct console *, char *); - int (*exit)(struct console *); - int (*match)(struct console *, char *, int, char *); - short flags; - short index; - int cflag; - uint ispeed; - uint ospeed; - u64 seq; - unsigned long dropped; - void *data; - struct hlist_node node; - bool (*write_atomic)(struct console *, struct nbcon_write_context *); - atomic_t nbcon_state; - atomic_long_t nbcon_seq; - struct printk_buffers *pbufs; -}; - -struct nbcon_context { - struct console *console; - unsigned int spinwait_max_us; - enum nbcon_prio prio; - unsigned int allow_unsafe_takeover: 1; - unsigned int backlog: 1; - struct printk_buffers *pbufs; - u64 seq; -}; - -struct nbcon_write_context { - struct nbcon_context ctxt; - char *outbuf; - unsigned int len; - bool unsafe_takeover; -}; - -struct uart_ops { - unsigned int (*tx_empty)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_mctrl)(struct uart_port *); - void (*stop_tx)(struct uart_port *); - void (*start_tx)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - void (*send_xchar)(struct uart_port *, char); - void (*stop_rx)(struct uart_port *); - void (*start_rx)(struct uart_port *); - void (*enable_ms)(struct uart_port *); - void (*break_ctl)(struct uart_port *, int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*flush_buffer)(struct uart_port *); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - const char * (*type)(struct uart_port *); - void (*release_port)(struct uart_port *); - int (*request_port)(struct uart_port *); - void (*config_port)(struct uart_port *, int); - int (*verify_port)(struct uart_port *, struct serial_struct *); - int (*ioctl)(struct uart_port *, unsigned int, unsigned long); -}; - -struct uart_driver { - struct module *owner; - const char *driver_name; - const char *dev_name; - int major; - int minor; - int nr; - struct console *cons; - struct uart_state *state; - struct tty_driver *tty_driver; -}; - -struct serial_private; - -struct pciserial_board; - -struct uart_8250_port; - -struct pci_serial_quirk { - u32 vendor; - u32 device; - u32 subvendor; - u32 subdevice; - int (*probe)(struct pci_dev *); - int (*init)(struct pci_dev *); - int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int); - void (*exit)(struct pci_dev *); -}; - -struct serial_private { - struct pci_dev *dev; - unsigned int nr; - struct pci_serial_quirk *quirk; - const struct pciserial_board *board; - int line[0]; -}; - -struct pciserial_board { - unsigned int flags; - unsigned int num_ports; - unsigned int base_baud; - unsigned int uart_offset; - unsigned int reg_shift; - unsigned int first_offset; -}; - -struct mctrl_gpios; - -struct uart_8250_dma; - -struct uart_8250_ops; - -struct uart_8250_em485; - -struct uart_8250_port { - struct uart_port port; - struct timer_list timer; - struct list_head list; - u32 capabilities; - u16 bugs; - unsigned int tx_loadsz; - unsigned char acr; - unsigned char fcr; - unsigned char ier; - unsigned char lcr; - unsigned char mcr; - unsigned char cur_iotype; - unsigned int rpm_tx_active; - unsigned char canary; - unsigned char probe; - struct mctrl_gpios *gpios; - u16 lsr_saved_flags; - u16 lsr_save_mask; - unsigned char msr_saved_flags; - struct uart_8250_dma *dma; - const struct uart_8250_ops *ops; - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - struct uart_8250_em485 *em485; - void (*rs485_start_tx)(struct uart_8250_port *); - void (*rs485_stop_tx)(struct uart_8250_port *); - struct delayed_work overrun_backoff; - u32 overrun_backoff_time_ms; -}; - -struct dma_chan; - -typedef bool (*dma_filter_fn)(struct dma_chan *, void *); - -enum dma_transfer_direction { - DMA_MEM_TO_MEM = 0, - DMA_MEM_TO_DEV = 1, - DMA_DEV_TO_MEM = 2, - DMA_DEV_TO_DEV = 3, - DMA_TRANS_NONE = 4, -}; - -enum dma_slave_buswidth { - DMA_SLAVE_BUSWIDTH_UNDEFINED = 0, - DMA_SLAVE_BUSWIDTH_1_BYTE = 1, - DMA_SLAVE_BUSWIDTH_2_BYTES = 2, - DMA_SLAVE_BUSWIDTH_3_BYTES = 3, - DMA_SLAVE_BUSWIDTH_4_BYTES = 4, - DMA_SLAVE_BUSWIDTH_8_BYTES = 8, - DMA_SLAVE_BUSWIDTH_16_BYTES = 16, - DMA_SLAVE_BUSWIDTH_32_BYTES = 32, - DMA_SLAVE_BUSWIDTH_64_BYTES = 64, - DMA_SLAVE_BUSWIDTH_128_BYTES = 128, -}; - -struct dma_slave_config { - enum dma_transfer_direction direction; - phys_addr_t src_addr; - phys_addr_t dst_addr; - enum dma_slave_buswidth src_addr_width; - enum dma_slave_buswidth dst_addr_width; - u32 src_maxburst; - u32 dst_maxburst; - u32 src_port_window_size; - u32 dst_port_window_size; - bool device_fc; - void *peripheral_config; - size_t peripheral_size; -}; - -typedef s32 dma_cookie_t; - -struct uart_8250_dma { - int (*tx_dma)(struct uart_8250_port *); - int (*rx_dma)(struct uart_8250_port *); - void (*prepare_tx_dma)(struct uart_8250_port *); - void (*prepare_rx_dma)(struct uart_8250_port *); - dma_filter_fn fn; - void *rx_param; - void *tx_param; - struct dma_slave_config rxconf; - struct dma_slave_config txconf; - struct dma_chan *rxchan; - struct dma_chan *txchan; - phys_addr_t rx_dma_addr; - phys_addr_t tx_dma_addr; - dma_addr_t rx_addr; - dma_addr_t tx_addr; - dma_cookie_t rx_cookie; - dma_cookie_t tx_cookie; - void *rx_buf; - size_t rx_size; - size_t tx_size; - unsigned char tx_running; - unsigned char tx_err; - unsigned char rx_running; -}; - -struct dma_device; - -struct dma_chan_dev; - -struct dma_chan_percpu; - -struct dma_router; - -struct dma_chan { - struct dma_device *device; - struct device *slave; - dma_cookie_t cookie; - dma_cookie_t completed_cookie; - int chan_id; - struct dma_chan_dev *dev; - const char *name; - char *dbg_client_name; - struct list_head device_node; - struct dma_chan_percpu __attribute__((btf_type_tag("percpu"))) *local; - int client_count; - int table_count; - struct dma_router *router; - void *route_data; - void *private; -}; - -struct dma_slave_map; - -struct dma_filter { - dma_filter_fn fn; - int mapcnt; - const struct dma_slave_map *map; -}; - -typedef struct { - unsigned long bits[1]; -} dma_cap_mask_t; - -enum dma_desc_metadata_mode { - DESC_METADATA_NONE = 0, - DESC_METADATA_CLIENT = 1, - DESC_METADATA_ENGINE = 2, -}; - -enum dmaengine_alignment { - DMAENGINE_ALIGN_1_BYTE = 0, - DMAENGINE_ALIGN_2_BYTES = 1, - DMAENGINE_ALIGN_4_BYTES = 2, - DMAENGINE_ALIGN_8_BYTES = 3, - DMAENGINE_ALIGN_16_BYTES = 4, - DMAENGINE_ALIGN_32_BYTES = 5, - DMAENGINE_ALIGN_64_BYTES = 6, - DMAENGINE_ALIGN_128_BYTES = 7, - DMAENGINE_ALIGN_256_BYTES = 8, -}; - -enum dma_residue_granularity { - DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, - DMA_RESIDUE_GRANULARITY_SEGMENT = 1, - DMA_RESIDUE_GRANULARITY_BURST = 2, -}; - -enum sum_check_flags { - SUM_CHECK_P_RESULT = 1, - SUM_CHECK_Q_RESULT = 2, -}; - -enum dma_status { - DMA_COMPLETE = 0, - DMA_IN_PROGRESS = 1, - DMA_PAUSED = 2, - DMA_ERROR = 3, - DMA_OUT_OF_ORDER = 4, -}; - -struct dma_async_tx_descriptor; - -struct dma_interleaved_template; - -struct dma_slave_caps; - -struct dma_tx_state; - -struct dma_device { - struct kref ref; - unsigned int chancnt; - unsigned int privatecnt; - struct list_head channels; - struct list_head global_node; - struct dma_filter filter; - dma_cap_mask_t cap_mask; - enum dma_desc_metadata_mode desc_metadata_modes; - unsigned short max_xor; - unsigned short max_pq; - enum dmaengine_alignment copy_align; - enum dmaengine_alignment xor_align; - enum dmaengine_alignment pq_align; - enum dmaengine_alignment fill_align; - int dev_id; - struct device *dev; - struct module *owner; - struct ida chan_ida; - u32 src_addr_widths; - u32 dst_addr_widths; - u32 directions; - u32 min_burst; - u32 max_burst; - u32 max_sg_burst; - bool descriptor_reuse; - enum dma_residue_granularity residue_granularity; - int (*device_alloc_chan_resources)(struct dma_chan *); - int (*device_router_config)(struct dma_chan *); - void (*device_free_chan_resources)(struct dma_chan *); - struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan *, dma_addr_t, dma_addr_t, size_t, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan *, dma_addr_t, dma_addr_t *, unsigned int, size_t, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, unsigned long, void *); - struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, unsigned long); - struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan *, dma_addr_t, u64, unsigned long); - void (*device_caps)(struct dma_chan *, struct dma_slave_caps *); - int (*device_config)(struct dma_chan *, struct dma_slave_config *); - int (*device_pause)(struct dma_chan *); - int (*device_resume)(struct dma_chan *); - int (*device_terminate_all)(struct dma_chan *); - void (*device_synchronize)(struct dma_chan *); - enum dma_status (*device_tx_status)(struct dma_chan *, dma_cookie_t, struct dma_tx_state *); - void (*device_issue_pending)(struct dma_chan *); - void (*device_release)(struct dma_device *); - void (*dbg_summary_show)(struct seq_file *, struct dma_device *); - struct dentry *dbg_dev_root; -}; - -struct dma_slave_map { - const char *devname; - const char *slave; - void *param; -}; - -enum dma_ctrl_flags { - DMA_PREP_INTERRUPT = 1, - DMA_CTRL_ACK = 2, - DMA_PREP_PQ_DISABLE_P = 4, - DMA_PREP_PQ_DISABLE_Q = 8, - DMA_PREP_CONTINUE = 16, - DMA_PREP_FENCE = 32, - DMA_CTRL_REUSE = 64, - DMA_PREP_CMD = 128, - DMA_PREP_REPEAT = 256, - DMA_PREP_LOAD_EOT = 512, -}; - -typedef void (*dma_async_tx_callback)(void *); - -struct dmaengine_result; - -typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); - -struct dmaengine_unmap_data; - -struct dma_descriptor_metadata_ops; - -struct dma_async_tx_descriptor { - dma_cookie_t cookie; - enum dma_ctrl_flags flags; - dma_addr_t phys; - struct dma_chan *chan; - dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); - int (*desc_free)(struct dma_async_tx_descriptor *); - dma_async_tx_callback callback; - dma_async_tx_callback_result callback_result; - void *callback_param; - struct dmaengine_unmap_data *unmap; - enum dma_desc_metadata_mode desc_metadata_mode; - struct dma_descriptor_metadata_ops *metadata_ops; -}; - -enum dmaengine_tx_result { - DMA_TRANS_NOERROR = 0, - DMA_TRANS_READ_FAILED = 1, - DMA_TRANS_WRITE_FAILED = 2, - DMA_TRANS_ABORTED = 3, -}; - -struct dmaengine_result { - enum dmaengine_tx_result result; - u32 residue; -}; - -struct dmaengine_unmap_data { - u8 map_cnt; - u8 to_cnt; - u8 from_cnt; - u8 bidi_cnt; - struct device *dev; - struct kref kref; - size_t len; - dma_addr_t addr[0]; -}; - -struct dma_descriptor_metadata_ops { - int (*attach)(struct dma_async_tx_descriptor *, void *, size_t); - void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *); - int (*set_len)(struct dma_async_tx_descriptor *, size_t); -}; - -struct scatterlist { - unsigned long page_link; - unsigned int offset; - unsigned int length; - dma_addr_t dma_address; - unsigned int dma_length; -}; - -struct data_chunk { - size_t size; - size_t icg; - size_t dst_icg; - size_t src_icg; -}; - -struct dma_interleaved_template { - dma_addr_t src_start; - dma_addr_t dst_start; - enum dma_transfer_direction dir; - bool src_inc; - bool dst_inc; - bool src_sgl; - bool dst_sgl; - size_t numf; - size_t frame_size; - struct data_chunk sgl[0]; -}; - -struct dma_slave_caps { - u32 src_addr_widths; - u32 dst_addr_widths; - u32 directions; - u32 min_burst; - u32 max_burst; - u32 max_sg_burst; - bool cmd_pause; - bool cmd_resume; - bool cmd_terminate; - enum dma_residue_granularity residue_granularity; - bool descriptor_reuse; -}; - -struct dma_tx_state { - dma_cookie_t last; - dma_cookie_t used; - u32 residue; - u32 in_flight_bytes; -}; - -struct dma_chan_dev { - struct dma_chan *chan; - struct device device; - int dev_id; - bool chan_dma_dev; -}; - -struct dma_chan_percpu { - unsigned long memcpy_count; - unsigned long bytes_transferred; -}; - -struct dma_router { - struct device *dev; - void (*route_free)(struct device *, void *); -}; - -struct uart_8250_ops { - int (*setup_irq)(struct uart_8250_port *); - void (*release_irq)(struct uart_8250_port *); - void (*setup_timer)(struct uart_8250_port *); -}; - -struct uart_8250_em485 { - struct hrtimer start_tx_timer; - struct hrtimer stop_tx_timer; - struct hrtimer *active_timer; - struct uart_8250_port *port; - unsigned int tx_stopped: 1; -}; - -struct timedia_struct { - int num; - const unsigned short *ids; -}; - -enum { - MOXA_SUPP_RS232 = 1, - MOXA_SUPP_RS422 = 2, - MOXA_SUPP_RS485 = 4, -}; - -enum pci_board_num_t { - pbn_default = 0, - pbn_b0_1_115200 = 1, - pbn_b0_2_115200 = 2, - pbn_b0_4_115200 = 3, - pbn_b0_5_115200 = 4, - pbn_b0_8_115200 = 5, - pbn_b0_1_921600 = 6, - pbn_b0_2_921600 = 7, - pbn_b0_4_921600 = 8, - pbn_b0_2_1130000 = 9, - pbn_b0_4_1152000 = 10, - pbn_b0_4_1250000 = 11, - pbn_b0_2_1843200 = 12, - pbn_b0_4_1843200 = 13, - pbn_b0_1_15625000 = 14, - pbn_b0_bt_1_115200 = 15, - pbn_b0_bt_2_115200 = 16, - pbn_b0_bt_4_115200 = 17, - pbn_b0_bt_8_115200 = 18, - pbn_b0_bt_1_460800 = 19, - pbn_b0_bt_2_460800 = 20, - pbn_b0_bt_4_460800 = 21, - pbn_b0_bt_1_921600 = 22, - pbn_b0_bt_2_921600 = 23, - pbn_b0_bt_4_921600 = 24, - pbn_b0_bt_8_921600 = 25, - pbn_b1_1_115200 = 26, - pbn_b1_2_115200 = 27, - pbn_b1_4_115200 = 28, - pbn_b1_8_115200 = 29, - pbn_b1_16_115200 = 30, - pbn_b1_1_921600 = 31, - pbn_b1_2_921600 = 32, - pbn_b1_4_921600 = 33, - pbn_b1_8_921600 = 34, - pbn_b1_2_1250000 = 35, - pbn_b1_bt_1_115200 = 36, - pbn_b1_bt_2_115200 = 37, - pbn_b1_bt_4_115200 = 38, - pbn_b1_bt_2_921600 = 39, - pbn_b1_1_1382400 = 40, - pbn_b1_2_1382400 = 41, - pbn_b1_4_1382400 = 42, - pbn_b1_8_1382400 = 43, - pbn_b2_1_115200 = 44, - pbn_b2_2_115200 = 45, - pbn_b2_4_115200 = 46, - pbn_b2_8_115200 = 47, - pbn_b2_1_460800 = 48, - pbn_b2_4_460800 = 49, - pbn_b2_8_460800 = 50, - pbn_b2_16_460800 = 51, - pbn_b2_1_921600 = 52, - pbn_b2_4_921600 = 53, - pbn_b2_8_921600 = 54, - pbn_b2_8_1152000 = 55, - pbn_b2_bt_1_115200 = 56, - pbn_b2_bt_2_115200 = 57, - pbn_b2_bt_4_115200 = 58, - pbn_b2_bt_2_921600 = 59, - pbn_b2_bt_4_921600 = 60, - pbn_b3_2_115200 = 61, - pbn_b3_4_115200 = 62, - pbn_b3_8_115200 = 63, - pbn_b4_bt_2_921600 = 64, - pbn_b4_bt_4_921600 = 65, - pbn_b4_bt_8_921600 = 66, - pbn_panacom = 67, - pbn_panacom2 = 68, - pbn_panacom4 = 69, - pbn_plx_romulus = 70, - pbn_oxsemi = 71, - pbn_oxsemi_1_15625000 = 72, - pbn_oxsemi_2_15625000 = 73, - pbn_oxsemi_4_15625000 = 74, - pbn_oxsemi_8_15625000 = 75, - pbn_intel_i960 = 76, - pbn_sgi_ioc3 = 77, - pbn_computone_4 = 78, - pbn_computone_6 = 79, - pbn_computone_8 = 80, - pbn_sbsxrsio = 81, - pbn_pasemi_1682M = 82, - pbn_ni8430_2 = 83, - pbn_ni8430_4 = 84, - pbn_ni8430_8 = 85, - pbn_ni8430_16 = 86, - pbn_ADDIDATA_PCIe_1_3906250 = 87, - pbn_ADDIDATA_PCIe_2_3906250 = 88, - pbn_ADDIDATA_PCIe_4_3906250 = 89, - pbn_ADDIDATA_PCIe_8_3906250 = 90, - pbn_ce4100_1_115200 = 91, - pbn_omegapci = 92, - pbn_NETMOS9900_2s_115200 = 93, - pbn_brcm_trumanage = 94, - pbn_fintek_4 = 95, - pbn_fintek_8 = 96, - pbn_fintek_12 = 97, - pbn_fintek_F81504A = 98, - pbn_fintek_F81508A = 99, - pbn_fintek_F81512A = 100, - pbn_wch382_2 = 101, - pbn_wch384_4 = 102, - pbn_wch384_8 = 103, - pbn_sunix_pci_1s = 104, - pbn_sunix_pci_2s = 105, - pbn_sunix_pci_4s = 106, - pbn_sunix_pci_8s = 107, - pbn_sunix_pci_16s = 108, - pbn_titan_1_4000000 = 109, - pbn_titan_2_4000000 = 110, - pbn_titan_4_4000000 = 111, - pbn_titan_8_4000000 = 112, - pbn_moxa_2 = 113, - pbn_moxa_4 = 114, - pbn_moxa_8 = 115, -}; - -enum pci_ers_result { - PCI_ERS_RESULT_NONE = 1, - PCI_ERS_RESULT_CAN_RECOVER = 2, - PCI_ERS_RESULT_NEED_RESET = 3, - PCI_ERS_RESULT_DISCONNECT = 4, - PCI_ERS_RESULT_RECOVERED = 5, - PCI_ERS_RESULT_NO_AER_DRIVER = 6, -}; - -struct f815xxa_data { - spinlock_t lock; - int idx; -}; - -struct phy_setting { - u32 speed; - u8 duplex; - u8 bit; -}; - -enum ethtool_link_mode_bit_indices { - ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, - ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, - ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, - ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, - ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, - ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, - ETHTOOL_LINK_MODE_Autoneg_BIT = 6, - ETHTOOL_LINK_MODE_TP_BIT = 7, - ETHTOOL_LINK_MODE_AUI_BIT = 8, - ETHTOOL_LINK_MODE_MII_BIT = 9, - ETHTOOL_LINK_MODE_FIBRE_BIT = 10, - ETHTOOL_LINK_MODE_BNC_BIT = 11, - ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, - ETHTOOL_LINK_MODE_Pause_BIT = 13, - ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, - ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, - ETHTOOL_LINK_MODE_Backplane_BIT = 16, - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, - ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, - ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, - ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, - ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, - ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, - ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, - ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, - ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, - ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, - ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, - ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, - ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, - ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, - ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, - ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, - ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, - ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, - ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, - ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, - ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, - ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, - ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, - ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, - ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, - ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, - ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, - ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, - ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, - ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, - ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, - ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, - ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, - ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, - ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, - ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, - ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, - ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, - ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, - ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, - ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, - ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, - ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, - ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, - ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, - ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, - ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, - ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, - ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, - ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, - __ETHTOOL_LINK_MODE_MASK_NBITS = 102, -}; - -struct mdio_bus_stats { - u64_stats_t transfers; - u64_stats_t errors; - u64_stats_t writes; - u64_stats_t reads; - struct u64_stats_sync syncp; -}; - -struct mdio_device; - -struct phy_package_shared; - -struct mii_bus { - struct module *owner; - const char *name; - char id[61]; - void *priv; - int (*read)(struct mii_bus *, int, int); - int (*write)(struct mii_bus *, int, int, u16); - int (*read_c45)(struct mii_bus *, int, int, int); - int (*write_c45)(struct mii_bus *, int, int, int, u16); - int (*reset)(struct mii_bus *); - struct mdio_bus_stats stats[32]; - struct mutex mdio_lock; - struct device *parent; - enum { - MDIOBUS_ALLOCATED = 1, - MDIOBUS_REGISTERED = 2, - MDIOBUS_UNREGISTERED = 3, - MDIOBUS_RELEASED = 4, - } state; - struct device dev; - struct mdio_device *mdio_map[32]; - u32 phy_mask; - u32 phy_ignore_ta_mask; - int irq[32]; - int reset_delay_us; - int reset_post_delay_us; - struct gpio_desc *reset_gpiod; - struct mutex shared_lock; - struct phy_package_shared *shared[32]; -}; - -struct reset_control; - -struct mdio_device { - struct device dev; - struct mii_bus *bus; - char modalias[32]; - int (*bus_match)(struct device *, struct device_driver *); - void (*device_free)(struct mdio_device *); - void (*device_remove)(struct mdio_device *); - int addr; - int flags; - int reset_state; - struct gpio_desc *reset_gpio; - struct reset_control *reset_ctrl; - unsigned int reset_assert_delay; - unsigned int reset_deassert_delay; -}; - -struct phy_package_shared { - u8 base_addr; - struct device_node *np; - refcount_t refcnt; - unsigned long flags; - size_t priv_size; - void *priv; -}; - -enum led_brightness { - LED_OFF = 0, - LED_ON = 1, - LED_HALF = 127, - LED_FULL = 255, -}; - -enum device_link_state { - DL_STATE_NONE = -1, - DL_STATE_DORMANT = 0, - DL_STATE_AVAILABLE = 1, - DL_STATE_CONSUMER_PROBE = 2, - DL_STATE_ACTIVE = 3, - DL_STATE_SUPPLIER_UNBIND = 4, -}; - -enum phy_state { - PHY_DOWN = 0, - PHY_READY = 1, - PHY_HALTED = 2, - PHY_ERROR = 3, - PHY_UP = 4, - PHY_RUNNING = 5, - PHY_NOLINK = 6, - PHY_CABLETEST = 7, -}; - -struct phy_c45_device_ids { - u32 devices_in_package; - u32 mmds_present; - u32 device_ids[32]; -}; - -typedef enum { - PHY_INTERFACE_MODE_NA = 0, - PHY_INTERFACE_MODE_INTERNAL = 1, - PHY_INTERFACE_MODE_MII = 2, - PHY_INTERFACE_MODE_GMII = 3, - PHY_INTERFACE_MODE_SGMII = 4, - PHY_INTERFACE_MODE_TBI = 5, - PHY_INTERFACE_MODE_REVMII = 6, - PHY_INTERFACE_MODE_RMII = 7, - PHY_INTERFACE_MODE_REVRMII = 8, - PHY_INTERFACE_MODE_RGMII = 9, - PHY_INTERFACE_MODE_RGMII_ID = 10, - PHY_INTERFACE_MODE_RGMII_RXID = 11, - PHY_INTERFACE_MODE_RGMII_TXID = 12, - PHY_INTERFACE_MODE_RTBI = 13, - PHY_INTERFACE_MODE_SMII = 14, - PHY_INTERFACE_MODE_XGMII = 15, - PHY_INTERFACE_MODE_XLGMII = 16, - PHY_INTERFACE_MODE_MOCA = 17, - PHY_INTERFACE_MODE_PSGMII = 18, - PHY_INTERFACE_MODE_QSGMII = 19, - PHY_INTERFACE_MODE_TRGMII = 20, - PHY_INTERFACE_MODE_100BASEX = 21, - PHY_INTERFACE_MODE_1000BASEX = 22, - PHY_INTERFACE_MODE_2500BASEX = 23, - PHY_INTERFACE_MODE_5GBASER = 24, - PHY_INTERFACE_MODE_RXAUI = 25, - PHY_INTERFACE_MODE_XAUI = 26, - PHY_INTERFACE_MODE_10GBASER = 27, - PHY_INTERFACE_MODE_25GBASER = 28, - PHY_INTERFACE_MODE_USXGMII = 29, - PHY_INTERFACE_MODE_10GKR = 30, - PHY_INTERFACE_MODE_QUSGMII = 31, - PHY_INTERFACE_MODE_1000BASEKX = 32, - PHY_INTERFACE_MODE_MAX = 33, -} phy_interface_t; - -struct eee_config { - u32 tx_lpi_timer; - bool tx_lpi_enabled; - bool eee_enabled; -}; - -struct phylink; - -struct pse_control; - -struct phy_driver; - -struct device_link; - -struct mii_timestamper; - -struct phy_device { - struct mdio_device mdio; - const struct phy_driver *drv; - struct device_link *devlink; - u32 phy_id; - struct phy_c45_device_ids c45_ids; - unsigned int is_c45: 1; - unsigned int is_internal: 1; - unsigned int is_pseudo_fixed_link: 1; - unsigned int is_gigabit_capable: 1; - unsigned int has_fixups: 1; - unsigned int suspended: 1; - unsigned int suspended_by_mdio_bus: 1; - unsigned int sysfs_links: 1; - unsigned int loopback_enabled: 1; - unsigned int downshifted_rate: 1; - unsigned int is_on_sfp_module: 1; - unsigned int mac_managed_pm: 1; - unsigned int wol_enabled: 1; - unsigned int autoneg: 1; - unsigned int link: 1; - unsigned int autoneg_complete: 1; - unsigned int interrupts: 1; - unsigned int irq_suspended: 1; - unsigned int irq_rerun: 1; - int rate_matching; - enum phy_state state; - u32 dev_flags; - phy_interface_t interface; - unsigned long possible_interfaces[1]; - int speed; - int duplex; - int port; - int pause; - int asym_pause; - u8 master_slave_get; - u8 master_slave_set; - u8 master_slave_state; - unsigned long supported[2]; - unsigned long advertising[2]; - unsigned long lp_advertising[2]; - unsigned long adv_old[2]; - unsigned long supported_eee[2]; - unsigned long advertising_eee[2]; - bool eee_enabled; - unsigned long host_interfaces[1]; - u32 eee_broken_modes; - bool enable_tx_lpi; - struct eee_config eee_cfg; - struct list_head leds; - int irq; - void *priv; - struct phy_package_shared *shared; - struct sk_buff *skb; - void *ehdr; - struct nlattr *nest; - struct delayed_work state_queue; - struct mutex lock; - bool sfp_bus_attached; - struct sfp_bus *sfp_bus; - struct phylink *phylink; - struct net_device *attached_dev; - struct mii_timestamper *mii_ts; - struct pse_control *psec; - u8 mdix; - u8 mdix_ctrl; - int pma_extable; - unsigned int link_down_events; - void (*phy_link_change)(struct phy_device *, bool); - void (*adjust_link)(struct net_device *); -}; - -struct mdio_driver_common { - struct device_driver driver; - int flags; -}; - -struct phy_tdr_config; - -struct phy_plca_cfg; - -struct phy_plca_status; - -struct phy_driver { - struct mdio_driver_common mdiodrv; - u32 phy_id; - char *name; - u32 phy_id_mask; - const unsigned long * const features; - u32 flags; - const void *driver_data; - int (*soft_reset)(struct phy_device *); - int (*config_init)(struct phy_device *); - int (*probe)(struct phy_device *); - int (*get_features)(struct phy_device *); - int (*get_rate_matching)(struct phy_device *, phy_interface_t); - int (*suspend)(struct phy_device *); - int (*resume)(struct phy_device *); - int (*config_aneg)(struct phy_device *); - int (*aneg_done)(struct phy_device *); - int (*read_status)(struct phy_device *); - int (*config_intr)(struct phy_device *); - irqreturn_t (*handle_interrupt)(struct phy_device *); - void (*remove)(struct phy_device *); - int (*match_phy_device)(struct phy_device *); - int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*link_change_notify)(struct phy_device *); - int (*read_mmd)(struct phy_device *, int, u16); - int (*write_mmd)(struct phy_device *, int, u16, u16); - int (*read_page)(struct phy_device *); - int (*write_page)(struct phy_device *, int); - int (*module_info)(struct phy_device *, struct ethtool_modinfo *); - int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); - int (*cable_test_start)(struct phy_device *); - int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); - int (*cable_test_get_status)(struct phy_device *, bool *); - int (*get_sset_count)(struct phy_device *); - void (*get_strings)(struct phy_device *, u8 *); - void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); - int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); - int (*set_loopback)(struct phy_device *, bool); - int (*get_sqi)(struct phy_device *); - int (*get_sqi_max)(struct phy_device *); - int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); - int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); - int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); - int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); - int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); - int (*led_hw_is_supported)(struct phy_device *, u8, unsigned long); - int (*led_hw_control_set)(struct phy_device *, u8, unsigned long); - int (*led_hw_control_get)(struct phy_device *, u8, unsigned long *); - int (*led_polarity_set)(struct phy_device *, int, unsigned long); -}; - -struct ethtool_wolinfo { - __u32 cmd; - __u32 supported; - __u32 wolopts; - __u8 sopass[6]; -}; - -struct ethtool_modinfo { - __u32 cmd; - __u32 type; - __u32 eeprom_len; - __u32 reserved[8]; -}; - -struct ethtool_eeprom { - __u32 cmd; - __u32 magic; - __u32 offset; - __u32 len; - __u8 data[0]; -}; - -struct phy_tdr_config { - u32 first; - u32 last; - u32 step; - s8 pair; -}; - -struct ethtool_stats { - __u32 cmd; - __u32 n_stats; - __u64 data[0]; -}; - -struct ethtool_tunable { - __u32 cmd; - __u32 id; - __u32 type_id; - __u32 len; - void *data[0]; -}; - -struct phy_plca_cfg { - int version; - int enabled; - int node_id; - int node_cnt; - int to_tmr; - int burst_cnt; - int burst_tmr; -}; - -struct phy_plca_status { - bool pst; -}; - -struct device_link { - struct device *supplier; - struct list_head s_node; - struct device *consumer; - struct list_head c_node; - struct device link_dev; - enum device_link_state status; - u32 flags; - refcount_t rpm_active; - struct kref kref; - struct work_struct rm_work; - bool supplier_preactivated; -}; - -struct mii_timestamper { - bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int); - void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int); - int (*hwtstamp)(struct mii_timestamper *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); - void (*link_state)(struct mii_timestamper *, struct phy_device *); - int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *); +struct device_private { + struct klist klist_children; + struct klist_node knode_parent; + struct klist_node knode_driver; + struct klist_node knode_bus; + struct klist_node knode_class; + struct list_head deferred_probe; + struct device_driver *async_driver; + char *deferred_probe_reason; struct device *device; + u8 dead: 1; }; -struct ethtool_ts_info { - __u32 cmd; - __u32 so_timestamping; - __s32 phc_index; - __u32 tx_types; - __u32 tx_reserved[3]; - __u32 rx_filters; - __u32 rx_reserved[3]; +struct driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; }; -struct iwl_link_qual_general_params { - u8 flags; - u8 mimo_delimiter; - u8 single_stream_ant_msk; - u8 dual_stream_ant_msk; - u8 start_rate_index[4]; +struct wake_irq { + struct device *dev; + unsigned int status; + int irq; + const char *name; }; -struct iwl_link_qual_agg_params { - __le16 agg_time_limit; - u8 agg_dis_start_th; - u8 agg_frame_cnt_limit; - __le32 reserved; +enum bus_notifier_event { + BUS_NOTIFY_ADD_DEVICE = 0, + BUS_NOTIFY_DEL_DEVICE = 1, + BUS_NOTIFY_REMOVED_DEVICE = 2, + BUS_NOTIFY_BIND_DRIVER = 3, + BUS_NOTIFY_BOUND_DRIVER = 4, + BUS_NOTIFY_UNBIND_DRIVER = 5, + BUS_NOTIFY_UNBOUND_DRIVER = 6, + BUS_NOTIFY_DRIVER_NOT_BOUND = 7, }; -struct iwl_link_quality_cmd { - u8 sta_id; - u8 reserved1; - __le16 control; - struct iwl_link_qual_general_params general_params; - struct iwl_link_qual_agg_params agg_params; - struct { - __le32 rate_n_flags; - } rs_table[16]; - __le32 reserved2; +typedef u64 async_cookie_t; + +typedef void (*async_func_t)(void *, async_cookie_t); + +struct va_format { + const char *fmt; + va_list *va; }; -enum iwl_d3_status { - IWL_D3_STATUS_ALIVE = 0, - IWL_D3_STATUS_RESET = 1, +struct device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; +}; + +enum scsi_target_state { + STARGET_CREATED = 1, + STARGET_RUNNING = 2, + STARGET_REMOVE = 3, + STARGET_CREATED_REMOVE = 4, + STARGET_DEL = 5, +}; + +enum scsi_device_state { + SDEV_CREATED = 1, + SDEV_RUNNING = 2, + SDEV_CANCEL = 3, + SDEV_DEL = 4, + SDEV_QUIESCE = 5, + SDEV_OFFLINE = 6, + SDEV_TRANSPORT_OFFLINE = 7, + SDEV_BLOCK = 8, + SDEV_CREATED_BLOCK = 9, +}; + +enum scsi_cmnd_submitter { + SUBMITTED_BY_BLOCK_LAYER = 0, + SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, + SUBMITTED_BY_SCSI_RESET_IOCTL = 2, +} __attribute__((mode(byte))); + +enum dma_data_direction { + DMA_BIDIRECTIONAL = 0, + DMA_TO_DEVICE = 1, + DMA_FROM_DEVICE = 2, + DMA_NONE = 3, +}; + +enum sam_status { + SAM_STAT_GOOD = 0, + SAM_STAT_CHECK_CONDITION = 2, + SAM_STAT_CONDITION_MET = 4, + SAM_STAT_BUSY = 8, + SAM_STAT_INTERMEDIATE = 16, + SAM_STAT_INTERMEDIATE_CONDITION_MET = 20, + SAM_STAT_RESERVATION_CONFLICT = 24, + SAM_STAT_COMMAND_TERMINATED = 34, + SAM_STAT_TASK_SET_FULL = 40, + SAM_STAT_ACA_ACTIVE = 48, + SAM_STAT_TASK_ABORTED = 64, +}; + +struct sg_io_v4; + +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); + +struct sg_io_v4 { + __s32 guard; + __u32 protocol; + __u32 subprotocol; + __u32 request_len; + __u64 request; + __u64 request_tag; + __u32 request_attr; + __u32 request_priority; + __u32 request_extra; + __u32 max_response_len; + __u64 response; + __u32 dout_iovec_count; + __u32 dout_xfer_len; + __u32 din_iovec_count; + __u32 din_xfer_len; + __u64 dout_xferp; + __u64 din_xferp; + __u32 timeout; + __u32 flags; + __u64 usr_ptr; + __u32 spare_in; + __u32 driver_status; + __u32 transport_status; + __u32 device_status; + __u32 retry_delay; + __u32 info; + __u32 duration; + __u32 response_len; + __s32 din_resid; + __s32 dout_resid; + __u64 generated_tag; + __u32 spare_out; + __u32 padding; +}; + +struct rq_map_data { + struct page **pages; + unsigned long offset; + unsigned short page_order; + unsigned short nr_entries; + bool null_mapped; + bool from_user; +}; + +typedef __u64 blist_flags_t; + +struct Scsi_Host; + +struct scsi_vpd; + +struct scsi_target; + +struct scsi_device_handler; + +struct bsg_device; + +struct scsi_device { + struct Scsi_Host *host; + struct request_queue *request_queue; + struct list_head siblings; + struct list_head same_target_siblings; + struct sbitmap budget_map; + atomic_t device_blocked; + atomic_t restarts; + spinlock_t list_lock; + struct list_head starved_entry; + unsigned short queue_depth; + unsigned short max_queue_depth; + unsigned short last_queue_full_depth; + unsigned short last_queue_full_count; + unsigned long last_queue_full_time; + unsigned long queue_ramp_up_period; + unsigned long last_queue_ramp_up; + unsigned int id; + unsigned int channel; + u64 lun; + unsigned int manufacturer; + unsigned int sector_size; + void *hostdata; + unsigned char type; + char scsi_level; + char inq_periph_qual; + struct mutex inquiry_mutex; + unsigned char inquiry_len; + unsigned char *inquiry; + const char *vendor; + const char *model; + const char *rev; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg0; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg83; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg80; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg89; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb0; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb1; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb2; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb7; + struct scsi_target *sdev_target; + blist_flags_t sdev_bflags; + unsigned int eh_timeout; + unsigned int manage_system_start_stop: 1; + unsigned int manage_runtime_start_stop: 1; + unsigned int manage_shutdown: 1; + unsigned int force_runtime_start_on_system_start: 1; + unsigned int removable: 1; + unsigned int changed: 1; + unsigned int busy: 1; + unsigned int lockable: 1; + unsigned int locked: 1; + unsigned int borken: 1; + unsigned int disconnect: 1; + unsigned int soft_reset: 1; + unsigned int sdtr: 1; + unsigned int wdtr: 1; + unsigned int ppr: 1; + unsigned int tagged_supported: 1; + unsigned int simple_tags: 1; + unsigned int was_reset: 1; + unsigned int expecting_cc_ua: 1; + unsigned int use_10_for_rw: 1; + unsigned int use_10_for_ms: 1; + unsigned int set_dbd_for_ms: 1; + unsigned int read_before_ms: 1; + unsigned int no_report_opcodes: 1; + unsigned int no_write_same: 1; + unsigned int use_16_for_rw: 1; + unsigned int use_16_for_sync: 1; + unsigned int skip_ms_page_8: 1; + unsigned int skip_ms_page_3f: 1; + unsigned int skip_vpd_pages: 1; + unsigned int try_vpd_pages: 1; + unsigned int use_192_bytes_for_3f: 1; + unsigned int no_start_on_add: 1; + unsigned int allow_restart: 1; + unsigned int start_stop_pwr_cond: 1; + unsigned int no_uld_attach: 1; + unsigned int select_no_atn: 1; + unsigned int fix_capacity: 1; + unsigned int guess_capacity: 1; + unsigned int retry_hwerror: 1; + unsigned int last_sector_bug: 1; + unsigned int no_read_disc_info: 1; + unsigned int no_read_capacity_16: 1; + unsigned int try_rc_10_first: 1; + unsigned int security_supported: 1; + unsigned int is_visible: 1; + unsigned int wce_default_on: 1; + unsigned int no_dif: 1; + unsigned int broken_fua: 1; + unsigned int lun_in_cdb: 1; + unsigned int unmap_limit_for_ws: 1; + unsigned int rpm_autosuspend: 1; + unsigned int ignore_media_change: 1; + unsigned int silence_suspend: 1; + unsigned int no_vpd_size: 1; + unsigned int cdl_supported: 1; + unsigned int cdl_enable: 1; + unsigned int queue_stopped; + bool offline_already; + atomic_t disk_events_disable_depth; + unsigned long supported_events[1]; + unsigned long pending_events[1]; + struct list_head event_list; + struct work_struct event_work; + unsigned int max_device_blocked; + atomic_t iorequest_cnt; + atomic_t iodone_cnt; + atomic_t ioerr_cnt; + atomic_t iotmo_cnt; + struct device sdev_gendev; + struct device sdev_dev; + struct work_struct requeue_work; + struct scsi_device_handler *handler; + void *handler_data; + size_t dma_drain_len; + void *dma_drain_buf; + unsigned int sg_timeout; + unsigned int sg_reserved_size; + struct bsg_device *bsg_dev; + unsigned char access_state; + struct mutex state_mutex; + enum scsi_device_state sdev_state; + struct task_struct *quiesced_by; + unsigned long sdev_data[0]; +}; + +struct scsi_vpd { + struct callback_head rcu; + int len; + unsigned char data[0]; +}; + +struct scsi_target { + struct scsi_device *starget_sdev_user; + struct list_head siblings; + struct list_head devices; + struct device dev; + struct kref reap_ref; + unsigned int channel; + unsigned int id; + unsigned int create: 1; + unsigned int single_lun: 1; + unsigned int pdt_1f_for_no_lun: 1; + unsigned int no_report_luns: 1; + unsigned int expecting_lun_change: 1; + atomic_t target_busy; + atomic_t target_blocked; + unsigned int can_queue; + unsigned int max_target_blocked; + char scsi_level; + enum scsi_target_state state; + void *hostdata; + unsigned long starget_data[0]; +}; + +struct sg_table { + struct scatterlist *sgl; + unsigned int nents; + unsigned int orig_nents; +}; + +struct scsi_data_buffer { + struct sg_table table; + unsigned int length; +}; + +struct scsi_cmnd { + struct scsi_device *device; + struct list_head eh_entry; + struct delayed_work abort_work; + struct callback_head rcu; + int eh_eflags; + int budget_token; + unsigned long jiffies_at_alloc; + int retries; + int allowed; + unsigned char prot_op; + unsigned char prot_type; + unsigned char prot_flags; + enum scsi_cmnd_submitter submitter; + unsigned short cmd_len; + enum dma_data_direction sc_data_direction; + unsigned char cmnd[32]; + struct scsi_data_buffer sdb; + struct scsi_data_buffer *prot_sdb; + unsigned int underflow; + unsigned int transfersize; + unsigned int resid_len; + unsigned int sense_len; + unsigned char *sense_buffer; + int flags; + unsigned long state; + unsigned int extra_len; + unsigned char *host_scribble; + int result; +}; + +enum e1000_mac_type { + e1000_82571 = 0, + e1000_82572 = 1, + e1000_82573 = 2, + e1000_82574 = 3, + e1000_82583 = 4, + e1000_80003es2lan = 5, + e1000_ich8lan = 6, + e1000_ich9lan = 7, + e1000_ich10lan = 8, + e1000_pchlan = 9, + e1000_pch2lan = 10, + e1000_pch_lpt = 11, + e1000_pch_spt = 12, + e1000_pch_cnp = 13, + e1000_pch_tgp = 14, + e1000_pch_adp = 15, + e1000_pch_mtp = 16, + e1000_pch_lnp = 17, + e1000_pch_ptp = 18, + e1000_pch_nvp = 19, +}; + +struct e1000_adapter; + +struct e1000_mac_operations; + +struct e1000_phy_operations; + +struct e1000_nvm_operations; + +struct e1000_info { + enum e1000_mac_type mac; + unsigned int flags; + unsigned int flags2; + u32 pba; + u32 max_hw_frame_size; + s32 (*get_variants)(struct e1000_adapter *); + const struct e1000_mac_operations *mac_ops; + const struct e1000_phy_operations *phy_ops; + const struct e1000_nvm_operations *nvm_ops; +}; + +struct e1000_hw; + +struct e1000_mac_operations { + s32 (*id_led_init)(struct e1000_hw *); + s32 (*blink_led)(struct e1000_hw *); + bool (*check_mng_mode)(struct e1000_hw *); + s32 (*check_for_link)(struct e1000_hw *); + s32 (*cleanup_led)(struct e1000_hw *); + void (*clear_hw_cntrs)(struct e1000_hw *); + void (*clear_vfta)(struct e1000_hw *); + s32 (*get_bus_info)(struct e1000_hw *); + void (*set_lan_id)(struct e1000_hw *); + s32 (*get_link_up_info)(struct e1000_hw *, u16 *, u16 *); + s32 (*led_on)(struct e1000_hw *); + s32 (*led_off)(struct e1000_hw *); + void (*update_mc_addr_list)(struct e1000_hw *, u8 *, u32); + s32 (*reset_hw)(struct e1000_hw *); + s32 (*init_hw)(struct e1000_hw *); + s32 (*setup_link)(struct e1000_hw *); + s32 (*setup_physical_interface)(struct e1000_hw *); + s32 (*setup_led)(struct e1000_hw *); + void (*write_vfta)(struct e1000_hw *, u32, u32); + void (*config_collision_dist)(struct e1000_hw *); + int (*rar_set)(struct e1000_hw *, u8 *, u32); + s32 (*read_mac_addr)(struct e1000_hw *); + u32 (*rar_get_count)(struct e1000_hw *); +}; + +enum e1000_serdes_link_state { + e1000_serdes_link_down = 0, + e1000_serdes_link_autoneg_progress = 1, + e1000_serdes_link_autoneg_complete = 2, + e1000_serdes_link_forced_up = 3, +}; + +struct e1000_mac_info { + struct e1000_mac_operations ops; + u8 addr[6]; + u8 perm_addr[6]; + enum e1000_mac_type type; + u32 collision_delta; + u32 ledctl_default; + u32 ledctl_mode1; + u32 ledctl_mode2; + u32 mc_filter_type; + u32 tx_packet_delta; + u32 txcw; + u16 current_ifs_val; + u16 ifs_max_val; + u16 ifs_min_val; + u16 ifs_ratio; + u16 ifs_step_size; + u16 mta_reg_count; + u32 mta_shadow[128]; + u16 rar_entry_count; + u8 forced_speed_duplex; + bool adaptive_ifs; + bool has_fwsm; + bool arc_subsystem_valid; + bool autoneg; + bool autoneg_failed; + bool get_link_status; + bool in_ifs_mode; + bool serdes_has_link; + bool tx_pkt_filtering; + enum e1000_serdes_link_state serdes_link_state; +}; + +enum e1000_fc_mode { + e1000_fc_none = 0, + e1000_fc_rx_pause = 1, + e1000_fc_tx_pause = 2, + e1000_fc_full = 3, + e1000_fc_default = 255, +}; + +struct e1000_fc_info { + u32 high_water; + u32 low_water; + u16 pause_time; + u16 refresh_time; + bool send_xon; + bool strict_ieee; + enum e1000_fc_mode current_mode; + enum e1000_fc_mode requested_mode; +}; + +struct e1000_phy_operations { + s32 (*acquire)(struct e1000_hw *); + s32 (*cfg_on_link_up)(struct e1000_hw *); + s32 (*check_polarity)(struct e1000_hw *); + s32 (*check_reset_block)(struct e1000_hw *); + s32 (*commit)(struct e1000_hw *); + s32 (*force_speed_duplex)(struct e1000_hw *); + s32 (*get_cfg_done)(struct e1000_hw *); + s32 (*get_cable_length)(struct e1000_hw *); + s32 (*get_info)(struct e1000_hw *); + s32 (*set_page)(struct e1000_hw *, u16); + s32 (*read_reg)(struct e1000_hw *, u32, u16 *); + s32 (*read_reg_locked)(struct e1000_hw *, u32, u16 *); + s32 (*read_reg_page)(struct e1000_hw *, u32, u16 *); + void (*release)(struct e1000_hw *); + s32 (*reset)(struct e1000_hw *); + s32 (*set_d0_lplu_state)(struct e1000_hw *, bool); + s32 (*set_d3_lplu_state)(struct e1000_hw *, bool); + s32 (*write_reg)(struct e1000_hw *, u32, u16); + s32 (*write_reg_locked)(struct e1000_hw *, u32, u16); + s32 (*write_reg_page)(struct e1000_hw *, u32, u16); + void (*power_up)(struct e1000_hw *); + void (*power_down)(struct e1000_hw *); +}; + +enum e1000_phy_type { + e1000_phy_unknown = 0, + e1000_phy_none = 1, + e1000_phy_m88 = 2, + e1000_phy_igp = 3, + e1000_phy_igp_2 = 4, + e1000_phy_gg82563 = 5, + e1000_phy_igp_3 = 6, + e1000_phy_ife = 7, + e1000_phy_bm = 8, + e1000_phy_82578 = 9, + e1000_phy_82577 = 10, + e1000_phy_82579 = 11, + e1000_phy_i217 = 12, +}; + +enum e1000_1000t_rx_status { + e1000_1000t_rx_status_not_ok = 0, + e1000_1000t_rx_status_ok = 1, + e1000_1000t_rx_status_undefined = 255, +}; + +enum e1000_ms_type { + e1000_ms_hw_default = 0, + e1000_ms_force_master = 1, + e1000_ms_force_slave = 2, + e1000_ms_auto = 3, +}; + +enum e1000_rev_polarity { + e1000_rev_polarity_normal = 0, + e1000_rev_polarity_reversed = 1, + e1000_rev_polarity_undefined = 255, +}; + +enum e1000_smart_speed { + e1000_smart_speed_default = 0, + e1000_smart_speed_on = 1, + e1000_smart_speed_off = 2, +}; + +enum e1000_media_type { + e1000_media_type_unknown = 0, + e1000_media_type_copper = 1, + e1000_media_type_fiber = 2, + e1000_media_type_internal_serdes = 3, + e1000_num_media_types = 4, +}; + +struct e1000_phy_info { + struct e1000_phy_operations ops; + enum e1000_phy_type type; + enum e1000_1000t_rx_status local_rx; + enum e1000_1000t_rx_status remote_rx; + enum e1000_ms_type ms_type; + enum e1000_ms_type original_ms_type; + enum e1000_rev_polarity cable_polarity; + enum e1000_smart_speed smart_speed; + u32 addr; + u32 id; + u32 reset_delay_us; + u32 revision; + enum e1000_media_type media_type; + u16 autoneg_advertised; + u16 autoneg_mask; + u16 cable_length; + u16 max_cable_length; + u16 min_cable_length; + u8 mdix; + bool disable_polarity_correction; + bool is_mdix; + bool polarity_correction; + bool speed_downgraded; + bool autoneg_wait_to_complete; +}; + +struct e1000_nvm_operations { + s32 (*acquire)(struct e1000_hw *); + s32 (*read)(struct e1000_hw *, u16, u16, u16 *); + void (*release)(struct e1000_hw *); + void (*reload)(struct e1000_hw *); + s32 (*update)(struct e1000_hw *); + s32 (*valid_led_default)(struct e1000_hw *, u16 *); + s32 (*validate)(struct e1000_hw *); + s32 (*write)(struct e1000_hw *, u16, u16, u16 *); +}; + +enum e1000_nvm_type { + e1000_nvm_unknown = 0, + e1000_nvm_none = 1, + e1000_nvm_eeprom_spi = 2, + e1000_nvm_flash_hw = 3, + e1000_nvm_flash_sw = 4, +}; + +enum e1000_nvm_override { + e1000_nvm_override_none = 0, + e1000_nvm_override_spi_small = 1, + e1000_nvm_override_spi_large = 2, +}; + +struct e1000_nvm_info { + struct e1000_nvm_operations ops; + enum e1000_nvm_type type; + enum e1000_nvm_override override; + u32 flash_bank_size; + u32 flash_base_addr; + u16 word_size; + u16 delay_usec; + u16 address_bits; + u16 opcode_bits; + u16 page_size; +}; + +enum e1000_bus_width { + e1000_bus_width_unknown = 0, + e1000_bus_width_pcie_x1 = 1, + e1000_bus_width_pcie_x2 = 2, + e1000_bus_width_pcie_x4 = 4, + e1000_bus_width_pcie_x8 = 8, + e1000_bus_width_32 = 9, + e1000_bus_width_64 = 10, + e1000_bus_width_reserved = 11, +}; + +struct e1000_bus_info { + enum e1000_bus_width width; + u16 func; +}; + +struct e1000_host_mng_dhcp_cookie { + u32 signature; + u8 status; + u8 reserved0; + u16 vlan_id; + u32 reserved1; + u16 reserved2; + u8 reserved3; + u8 checksum; +}; + +struct e1000_dev_spec_82571 { + bool laa_is_present; + u32 smb_counter; +}; + +struct e1000_dev_spec_80003es2lan { + bool mdic_wa_enable; +}; + +struct e1000_shadow_ram { + u16 value; + bool modified; +}; + +enum e1000_ulp_state { + e1000_ulp_state_unknown = 0, + e1000_ulp_state_off = 1, + e1000_ulp_state_on = 2, +}; + +struct e1000_dev_spec_ich8lan { + bool kmrn_lock_loss_workaround_enabled; + struct e1000_shadow_ram shadow_ram[2048]; + bool nvm_k1_enabled; + bool eee_disable; + u16 eee_lp_ability; + enum e1000_ulp_state ulp_state; +}; + +struct e1000_hw { + struct e1000_adapter *adapter; + void *hw_addr; + void *flash_address; + struct e1000_mac_info mac; + struct e1000_fc_info fc; + struct e1000_phy_info phy; + struct e1000_nvm_info nvm; + struct e1000_bus_info bus; + struct e1000_host_mng_dhcp_cookie mng_cookie; + union { + struct e1000_dev_spec_82571 e82571; + struct e1000_dev_spec_80003es2lan e80003es2lan; + struct e1000_dev_spec_ich8lan ich8lan; + } dev_spec; +}; + +struct e1000_hw_stats { + u64 crcerrs; + u64 algnerrc; + u64 symerrs; + u64 rxerrc; + u64 mpc; + u64 scc; + u64 ecol; + u64 mcc; + u64 latecol; + u64 colc; + u64 dc; + u64 tncrs; + u64 sec; + u64 cexterr; + u64 rlec; + u64 xonrxc; + u64 xontxc; + u64 xoffrxc; + u64 xofftxc; + u64 fcruc; + u64 prc64; + u64 prc127; + u64 prc255; + u64 prc511; + u64 prc1023; + u64 prc1522; + u64 gprc; + u64 bprc; + u64 mprc; + u64 gptc; + u64 gorc; + u64 gotc; + u64 rnbc; + u64 ruc; + u64 rfc; + u64 roc; + u64 rjc; + u64 mgprc; + u64 mgpdc; + u64 mgptc; + u64 tor; + u64 tot; + u64 tpr; + u64 tpt; + u64 ptc64; + u64 ptc127; + u64 ptc255; + u64 ptc511; + u64 ptc1023; + u64 ptc1522; + u64 mptc; + u64 bptc; + u64 tsctc; + u64 tsctfc; + u64 iac; + u64 icrxptc; + u64 icrxatc; + u64 ictxptc; + u64 ictxatc; + u64 ictxqec; + u64 ictxqmtc; + u64 icrxdmtc; + u64 icrxoc; +}; + +struct e1000_phy_stats { + u32 idle_errors; + u32 receive_errors; +}; + +struct e1000_phy_regs { + u16 bmcr; + u16 bmsr; + u16 advertise; + u16 lpa; + u16 expansion; + u16 ctrl1000; + u16 stat1000; + u16 estatus; +}; + +struct e1000_buffer; + +struct e1000_ring { + struct e1000_adapter *adapter; + void *desc; + dma_addr_t dma; + unsigned int size; + unsigned int count; + u16 next_to_use; + u16 next_to_clean; + void *head; + void *tail; + struct e1000_buffer *buffer_info; + char name[21]; + u32 ims_val; + u32 itr_val; + void *itr_register; + int set_itr; + struct sk_buff *rx_skb_top; +}; + +struct hwtstamp_config { + int flags; + int tx_type; + int rx_filter; +}; + +struct cyclecounter { + u64 (*read)(const struct cyclecounter *); + u64 mask; + u32 mult; + u32 shift; +}; + +struct timecounter { + const struct cyclecounter *cc; + u64 cycle_last; + u64 nsec; + u64 mask; + u64 frac; +}; + +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, +}; + +struct ptp_pin_desc; + +struct ptp_system_timestamp; + +struct system_device_crosststamp; + +struct ptp_clock_request; + +struct ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long); + int (*adjphase)(struct ptp_clock_info *, s32); + s32 (*getmaxphase)(struct ptp_clock_info *); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); + int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long (*do_aux_work)(struct ptp_clock_info *); +}; + +struct pm_qos_request { + struct plist_node node; + struct pm_qos_constraints *qos; +}; + +struct msix_entry; + +struct ptp_clock; + +struct e1000_adapter { + struct timer_list watchdog_timer; + struct timer_list phy_info_timer; + struct timer_list blink_timer; + struct work_struct reset_task; + struct work_struct watchdog_task; + const struct e1000_info *ei; + unsigned long active_vlans[64]; + u32 bd_number; + u32 rx_buffer_len; + u16 mng_vlan_id; + u16 link_speed; + u16 link_duplex; + u16 eeprom_vers; + unsigned long state; + u32 itr; + u32 itr_setting; + u16 tx_itr; + u16 rx_itr; + long: 64; + long: 64; + struct e1000_ring *tx_ring; + u32 tx_fifo_limit; + struct napi_struct napi; + unsigned int uncorr_errors; + unsigned int corr_errors; + unsigned int restart_queue; + u32 txd_cmd; + bool detect_tx_hung; + bool tx_hang_recheck; + u8 tx_timeout_factor; + u32 tx_int_delay; + u32 tx_abs_int_delay; + unsigned int total_tx_bytes; + unsigned int total_tx_packets; + unsigned int total_rx_bytes; + unsigned int total_rx_packets; + u64 tpt_old; + u64 colc_old; + u32 gotc; + u64 gotc_old; + u32 tx_timeout_count; + u32 tx_fifo_head; + u32 tx_head_addr; + u32 tx_fifo_size; + u32 tx_dma_failed; + u32 tx_hwtstamp_timeouts; + u32 tx_hwtstamp_skipped; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + bool (*clean_rx)(struct e1000_ring *, int *, int); + void (*alloc_rx_buf)(struct e1000_ring *, int, gfp_t); + struct e1000_ring *rx_ring; + u32 rx_int_delay; + u32 rx_abs_int_delay; + u64 hw_csum_err; + u64 hw_csum_good; + u64 rx_hdr_split; + u32 gorc; + u64 gorc_old; + u32 alloc_rx_buff_failed; + u32 rx_dma_failed; + u32 rx_hwtstamp_cleared; + unsigned int rx_ps_pages; + u16 rx_ps_bsize0; + u32 max_frame_size; + u32 min_frame_size; + struct net_device *netdev; + struct pci_dev *pdev; + struct e1000_hw hw; + spinlock_t stats64_lock; + struct e1000_hw_stats stats; + struct e1000_phy_info phy_info; + struct e1000_phy_stats phy_stats; + struct e1000_phy_regs phy_regs; + struct e1000_ring test_tx_ring; + struct e1000_ring test_rx_ring; + u32 test_icr; + u32 msg_enable; + unsigned int num_vectors; + struct msix_entry *msix_entries; + int int_mode; + u32 eiac_mask; + u32 eeprom_wol; + u32 wol; + u32 pba; + u32 max_hw_frame_size; + bool fc_autoneg; + unsigned int flags; + unsigned int flags2; + struct work_struct downshift_task; + struct work_struct update_phy_task; + struct work_struct print_hang_task; + int phy_hang_count; + u16 tx_ring_count; + u16 rx_ring_count; + struct hwtstamp_config hwtstamp_config; + struct delayed_work systim_overflow_work; + struct sk_buff *tx_hwtstamp_skb; + unsigned long tx_hwtstamp_start; + struct work_struct tx_hwtstamp_work; + spinlock_t systim_lock; + struct cyclecounter cc; + struct timecounter tc; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct pm_qos_request pm_qos_req; + long ptp_delta; + u16 eee_advert; +}; + +struct e1000_ps_page; + +struct e1000_buffer { + dma_addr_t dma; + struct sk_buff *skb; + union { + struct { + unsigned long time_stamp; + u16 length; + u16 next_to_watch; + unsigned int segs; + unsigned int bytecount; + u16 mapped_as_page; + }; + struct { + struct e1000_ps_page *ps_pages; + struct page *page; + }; + }; }; struct ethtool_drvinfo { @@ -19586,6 +20752,13 @@ struct ethtool_regs { __u8 data[0]; }; +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[6]; +}; + enum ethtool_link_ext_substate_autoneg { ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1, ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 2, @@ -19657,6 +20830,14 @@ struct ethtool_link_ext_stats { u64 link_down_events; }; +struct ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; +}; + struct ethtool_coalesce { __u32 cmd; __u32 rx_coalesce_usecs; @@ -19748,6 +20929,12 @@ struct ethtool_test { __u64 data[0]; }; +struct ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 data[0]; +}; + struct ethtool_tcpip4_spec { __be32 ip4src; __be32 ip4dst; @@ -19885,6 +21072,23 @@ struct ethtool_dump { __u8 data[0]; }; +struct ethtool_ts_info { + __u32 cmd; + __u32 so_timestamping; + __s32 phc_index; + __u32 tx_types; + __u32 tx_reserved[3]; + __u32 rx_filters; + __u32 rx_reserved[3]; +}; + +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; +}; + struct ethtool_keee { unsigned long supported[2]; unsigned long advertised[2]; @@ -19895,6 +21099,14 @@ struct ethtool_keee { bool eee_enabled; }; +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; +}; + struct ethtool_link_settings { __u32 cmd; __u32 speed; @@ -20113,6 +21325,89 @@ struct ethtool_mm_stats { u64 MACMergeHoldCount; }; +struct e1000_ps_page { + struct page *page; + u64 dma; +}; + +struct msix_entry { + u32 vector; + u16 entry; +}; + +struct ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; +}; + +struct ptp_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; +}; + +struct system_device_crosststamp { + ktime_t device; + ktime_t sys_realtime; + ktime_t sys_monoraw; +}; + +struct ptp_extts_request { + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; +}; + +struct ptp_perout_request { + union { + struct ptp_clock_time start; + struct ptp_clock_time phase; + }; + struct ptp_clock_time period; + unsigned int index; + unsigned int flags; + union { + struct ptp_clock_time on; + unsigned int rsv[4]; + }; +}; + +struct ptp_clock_request { + enum { + PTP_CLK_REQ_EXTTS = 0, + PTP_CLK_REQ_PEROUT = 1, + PTP_CLK_REQ_PPS = 2, + } type; + union { + struct ptp_extts_request extts; + struct ptp_perout_request perout; + }; +}; + +struct ieee80211_radiotap_he { + __le16 data1; + __le16 data2; + __le16 data3; + __le16 data4; + __le16 data5; + __le16 data6; +}; + +struct ieee80211_radiotap_he_mu { + __le16 flags1; + __le16 flags2; + u8 ru_ch1[4]; + u8 ru_ch2[4]; +}; + enum nl80211_chan_width { NL80211_CHAN_WIDTH_20_NOHT = 0, NL80211_CHAN_WIDTH_20 = 1, @@ -20959,6 +22254,11 @@ struct cfg80211_cqm_config { s32 rssi_thresholds[0]; }; +enum iwl_d3_status { + IWL_D3_STATUS_ALIVE = 0, + IWL_D3_STATUS_RESET = 1, +}; + enum iwl_device_family { IWL_DEVICE_FAMILY_UNDEFINED = 0, IWL_DEVICE_FAMILY_1000 = 1, @@ -21074,6 +22374,14 @@ enum ieee80211_smps_mode { IEEE80211_SMPS_NUM_MODES = 4, }; +enum iwl_tsf_id { + TSF_ID_A = 0, + TSF_ID_B = 1, + TSF_ID_C = 2, + TSF_ID_D = 3, + NUM_TSF_IDS = 4, +}; + enum nl80211_tx_power_setting { NL80211_TX_POWER_AUTOMATIC = 0, NL80211_TX_POWER_LIMITED = 1, @@ -21115,37 +22423,11 @@ enum ieee80211_sta_rx_bandwidth { IEEE80211_STA_RX_BW_320 = 4, }; -enum iwl_scan_type { - IWL_SCAN_NORMAL = 0, - IWL_SCAN_RADIO_RESET = 1, -}; - -enum iwl_rxon_context_id { - IWL_RXON_CTX_BSS = 0, - IWL_RXON_CTX_PAN = 1, - NUM_IWL_RXON_CTX = 2, -}; - -enum iwl_tt_state { - IWL_TI_0 = 0, - IWL_TI_1 = 1, - IWL_TI_2 = 2, - IWL_TI_CT_KILL = 3, - IWL_TI_STATE_MAX = 4, -}; - -enum iwl_antenna_ok { - IWL_ANT_OK_NONE = 0, - IWL_ANT_OK_SINGLE = 1, - IWL_ANT_OK_MULTI = 2, -}; - -enum iwl_agg_state { - IWL_AGG_OFF = 0, - IWL_AGG_STARTING = 1, - IWL_AGG_ON = 2, - IWL_EMPTYING_HW_QUEUE_ADDBA = 3, - IWL_EMPTYING_HW_QUEUE_DELBA = 4, +enum iwl_mvm_queue_status { + IWL_MVM_QUEUE_FREE = 0, + IWL_MVM_QUEUE_RESERVED = 1, + IWL_MVM_QUEUE_READY = 2, + IWL_MVM_QUEUE_SHARED = 3, }; enum iwl_ucode_type { @@ -21156,102 +22438,249 @@ enum iwl_ucode_type { IWL_UCODE_TYPE_MAX = 4, }; -enum { - REPLY_ALIVE = 1, +enum iwl_mvm_scan_type { + IWL_SCAN_TYPE_NOT_SET = 0, + IWL_SCAN_TYPE_UNASSOC = 1, + IWL_SCAN_TYPE_WILD = 2, + IWL_SCAN_TYPE_MILD = 3, + IWL_SCAN_TYPE_FRAGMENTED = 4, + IWL_SCAN_TYPE_FAST_BALANCE = 5, +}; + +enum iwl_mvm_sched_scan_pass_all_states { + SCHED_SCAN_PASS_ALL_DISABLED = 0, + SCHED_SCAN_PASS_ALL_ENABLED = 1, + SCHED_SCAN_PASS_ALL_FOUND = 2, +}; + +enum iwl_sf_state { + SF_LONG_DELAY_ON = 0, + SF_FULL_ON = 1, + SF_UNINIT = 2, + SF_INIT_OFF = 3, + SF_HW_NUM_STATES = 4, +}; + +enum iwl_bt_force_ant_mode { + BT_FORCE_ANT_DIS = 0, + BT_FORCE_ANT_AUTO = 1, + BT_FORCE_ANT_BT = 2, + BT_FORCE_ANT_WIFI = 3, + BT_FORCE_ANT_MAX = 4, +}; + +enum thermal_trip_type { + THERMAL_TRIP_ACTIVE = 0, + THERMAL_TRIP_PASSIVE = 1, + THERMAL_TRIP_HOT = 2, + THERMAL_TRIP_CRITICAL = 3, +}; + +enum thermal_device_mode { + THERMAL_DEVICE_DISABLED = 0, + THERMAL_DEVICE_ENABLED = 1, +}; + +enum thermal_trend { + THERMAL_TREND_STABLE = 0, + THERMAL_TREND_RAISING = 1, + THERMAL_TREND_DROPPING = 2, +}; + +enum thermal_notify_event { + THERMAL_EVENT_UNSPECIFIED = 0, + THERMAL_EVENT_TEMP_SAMPLE = 1, + THERMAL_TRIP_VIOLATED = 2, + THERMAL_TRIP_CHANGED = 3, + THERMAL_DEVICE_DOWN = 4, + THERMAL_DEVICE_UP = 5, + THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6, + THERMAL_TABLE_CHANGED = 7, + THERMAL_EVENT_KEEP_ALIVE = 8, + THERMAL_TZ_BIND_CDEV = 9, + THERMAL_TZ_UNBIND_CDEV = 10, + THERMAL_INSTANCE_WEIGHT_CHANGED = 11, +}; + +enum iwl_mvm_traffic_load { + IWL_MVM_TRAFFIC_LOW = 0, + IWL_MVM_TRAFFIC_MEDIUM = 1, + IWL_MVM_TRAFFIC_HIGH = 2, +}; + +enum iwl_mcc_source { + MCC_SOURCE_OLD_FW = 0, + MCC_SOURCE_ME = 1, + MCC_SOURCE_BIOS = 2, + MCC_SOURCE_3G_LTE_HOST = 3, + MCC_SOURCE_3G_LTE_DEVICE = 4, + MCC_SOURCE_WIFI = 5, + MCC_SOURCE_RESERVED = 6, + MCC_SOURCE_DEFAULT = 7, + MCC_SOURCE_UNINITIALIZED = 8, + MCC_SOURCE_MCC_API = 9, + MCC_SOURCE_GET_CURRENT = 16, + MCC_SOURCE_GETTING_MCC_TEST_MODE = 17, +}; + +enum iwl_mvm_tdls_cs_state { + IWL_MVM_TDLS_SW_IDLE = 0, + IWL_MVM_TDLS_SW_REQ_SENT = 1, + IWL_MVM_TDLS_SW_RESP_RCVD = 2, + IWL_MVM_TDLS_SW_REQ_RCVD = 3, + IWL_MVM_TDLS_SW_ACTIVE = 4, +}; + +enum nl80211_preamble { + NL80211_PREAMBLE_LEGACY = 0, + NL80211_PREAMBLE_HT = 1, + NL80211_PREAMBLE_VHT = 2, + NL80211_PREAMBLE_DMG = 3, + NL80211_PREAMBLE_HE = 4, +}; + +enum iwl_mvm_rxq_notif_type { + IWL_MVM_RXQ_EMPTY = 0, + IWL_MVM_RXQ_NOTIF_DEL_BA = 1, +}; + +enum iwl_rx_phy_info_type { + IWL_RX_PHY_INFO_TYPE_NONE = 0, + IWL_RX_PHY_INFO_TYPE_CCK = 1, + IWL_RX_PHY_INFO_TYPE_OFDM_LGCY = 2, + IWL_RX_PHY_INFO_TYPE_HT = 3, + IWL_RX_PHY_INFO_TYPE_VHT_SU = 4, + IWL_RX_PHY_INFO_TYPE_VHT_MU = 5, + IWL_RX_PHY_INFO_TYPE_HE_SU = 6, + IWL_RX_PHY_INFO_TYPE_HE_MU = 7, + IWL_RX_PHY_INFO_TYPE_HE_TB = 8, + IWL_RX_PHY_INFO_TYPE_HE_MU_EXT = 9, + IWL_RX_PHY_INFO_TYPE_HE_TB_EXT = 10, + IWL_RX_PHY_INFO_TYPE_EHT_MU = 11, + IWL_RX_PHY_INFO_TYPE_EHT_TB = 12, + IWL_RX_PHY_INFO_TYPE_EHT_MU_EXT = 13, + IWL_RX_PHY_INFO_TYPE_EHT_TB_EXT = 14, +}; + +enum iwl_mvm_status { + IWL_MVM_STATUS_HW_RFKILL = 0, + IWL_MVM_STATUS_HW_CTKILL = 1, + IWL_MVM_STATUS_ROC_RUNNING = 2, + IWL_MVM_STATUS_HW_RESTART_REQUESTED = 3, + IWL_MVM_STATUS_IN_HW_RESTART = 4, + IWL_MVM_STATUS_ROC_AUX_RUNNING = 5, + IWL_MVM_STATUS_FIRMWARE_RUNNING = 6, + IWL_MVM_STATUS_IN_D3 = 7, + IWL_MVM_STATUS_SUPPRESS_ERROR_LOG_ONCE = 8, + IWL_MVM_STATUS_STARTING = 9, +}; + +enum iwl_mvm_command_groups { + LEGACY_GROUP = 0, + LONG_GROUP = 1, + SYSTEM_GROUP = 2, + MAC_CONF_GROUP = 3, + PHY_OPS_GROUP = 4, + DATA_PATH_GROUP = 5, + SCAN_GROUP = 6, + NAN_GROUP = 7, + LOCATION_GROUP = 8, + PROT_OFFLOAD_GROUP = 11, + REGULATORY_AND_NVM_GROUP = 12, + DEBUG_GROUP = 15, + STATISTICS_GROUP = 16, +}; + +enum iwl_legacy_cmds { + UCODE_ALIVE_NTFY = 1, REPLY_ERROR = 2, - REPLY_ECHO = 3, - REPLY_RXON = 16, - REPLY_RXON_ASSOC = 17, - REPLY_QOS_PARAM = 19, - REPLY_RXON_TIMING = 20, - REPLY_ADD_STA = 24, - REPLY_REMOVE_STA = 25, - REPLY_REMOVE_ALL_STA = 26, - REPLY_TXFIFO_FLUSH = 30, - REPLY_WEPKEY = 32, - REPLY_TX = 28, - REPLY_LEDS_CMD = 72, - REPLY_TX_LINK_QUALITY_CMD = 78, - COEX_PRIORITY_TABLE_CMD = 90, - COEX_MEDIUM_NOTIFICATION = 91, - COEX_EVENT_CMD = 92, - TEMPERATURE_NOTIFICATION = 98, - CALIBRATION_CFG_CMD = 101, - CALIBRATION_RES_NOTIFICATION = 102, - CALIBRATION_COMPLETE_NOTIFICATION = 103, - REPLY_QUIET_CMD = 113, - REPLY_CHANNEL_SWITCH = 114, - CHANNEL_SWITCH_NOTIFICATION = 115, - REPLY_SPECTRUM_MEASUREMENT_CMD = 116, - SPECTRUM_MEASURE_NOTIFICATION = 117, + ECHO_CMD = 3, + INIT_COMPLETE_NOTIF = 4, + PHY_CONTEXT_CMD = 8, + DBG_CFG = 9, + SCAN_ITERATION_COMPLETE_UMAC = 181, + SCAN_CFG_CMD = 12, + SCAN_REQ_UMAC = 13, + SCAN_ABORT_UMAC = 14, + SCAN_COMPLETE_UMAC = 15, + BA_WINDOW_STATUS_NOTIFICATION_ID = 19, + ADD_STA_KEY = 23, + ADD_STA = 24, + REMOVE_STA = 25, + TX_CMD = 28, + TXPATH_FLUSH = 30, + MGMT_MCAST_KEY = 31, + SCD_QUEUE_CFG = 29, + WEP_KEY = 32, + SHARED_MEM_CFG = 37, + TDLS_CHANNEL_SWITCH_CMD = 39, + TDLS_CHANNEL_SWITCH_NOTIFICATION = 170, + TDLS_CONFIG_CMD = 167, + MAC_CONTEXT_CMD = 40, + TIME_EVENT_CMD = 41, + TIME_EVENT_NOTIFICATION = 42, + BINDING_CONTEXT_CMD = 43, + TIME_QUOTA_CMD = 44, + NON_QOS_TX_COUNTER_CMD = 45, + LEDS_CMD = 72, + LQ_CMD = 78, + FW_PAGING_BLOCK_CMD = 79, + SCAN_OFFLOAD_REQUEST_CMD = 81, + SCAN_OFFLOAD_ABORT_CMD = 82, + HOT_SPOT_CMD = 83, + WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION = 103, + WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION = 104, + SCAN_OFFLOAD_COMPLETE = 109, + SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 110, + MATCH_FOUND_NOTIFICATION = 217, + SCAN_ITERATION_COMPLETE = 231, + PHY_CONFIGURATION_CMD = 106, + CALIB_RES_NOTIF_PHY_DB = 107, + PHY_DB_CMD = 108, POWER_TABLE_CMD = 119, - PM_SLEEP_NOTIFICATION = 122, - PM_DEBUG_STATISTIC_NOTIFIC = 123, - REPLY_SCAN_CMD = 128, - REPLY_SCAN_ABORT_CMD = 129, - SCAN_START_NOTIFICATION = 130, - SCAN_RESULTS_NOTIFICATION = 131, - SCAN_COMPLETE_NOTIFICATION = 132, + PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 120, + LTR_CONFIG = 238, + REPLY_THERMAL_MNG_BACKOFF = 126, + NVM_ACCESS_CMD = 136, BEACON_NOTIFICATION = 144, - REPLY_TX_BEACON = 145, - WHO_IS_AWAKE_NOTIFICATION = 148, - REPLY_TX_POWER_DBM_CMD = 149, - QUIET_NOTIFICATION = 150, - REPLY_TX_PWR_TABLE_CMD = 151, - REPLY_TX_POWER_DBM_CMD_V1 = 152, + BEACON_TEMPLATE_CMD = 145, TX_ANT_CONFIGURATION_CMD = 152, - MEASURE_ABORT_NOTIFICATION = 153, - REPLY_BT_CONFIG = 155, - REPLY_STATISTICS_CMD = 156, + STATISTICS_CMD = 156, STATISTICS_NOTIFICATION = 157, - REPLY_CARD_STATE_CMD = 160, - CARD_STATE_NOTIFICATION = 161, + EOSP_NOTIFICATION = 158, + REDUCE_TX_POWER_CMD = 159, MISSED_BEACONS_NOTIFICATION = 162, - REPLY_CT_KILL_CONFIG_CMD = 164, - SENSITIVITY_CMD = 168, - REPLY_PHY_CALIBRATION_CMD = 176, + MAC_PM_POWER_TABLE = 169, + MFUART_LOAD_NOTIFICATION = 177, + RSS_CONFIG_CMD = 179, REPLY_RX_PHY_CMD = 192, REPLY_RX_MPDU_CMD = 193, - REPLY_RX = 195, - REPLY_COMPRESSED_BA = 197, - REPLY_BT_COEX_PRIO_TABLE = 204, - REPLY_BT_COEX_PROT_ENV = 205, - REPLY_BT_COEX_PROFILE_NOTIF = 206, - REPLY_WIPAN_PARAMS = 178, - REPLY_WIPAN_RXON = 179, - REPLY_WIPAN_RXON_TIMING = 180, - REPLY_WIPAN_RXON_ASSOC = 182, - REPLY_WIPAN_QOS_PARAM = 183, - REPLY_WIPAN_WEPKEY = 184, - REPLY_WIPAN_P2P_CHANNEL_SWITCH = 185, - REPLY_WIPAN_NOA_NOTIFICATION = 188, - REPLY_WIPAN_DEACTIVATION_COMPLETE = 189, - REPLY_WOWLAN_PATTERNS = 224, - REPLY_WOWLAN_WAKEUP_FILTER = 225, - REPLY_WOWLAN_TSC_RSC_PARAMS = 226, - REPLY_WOWLAN_TKIP_PARAMS = 227, - REPLY_WOWLAN_KEK_KCK_MATERIAL = 228, - REPLY_WOWLAN_GET_STATUS = 229, - REPLY_D3_CONFIG = 211, - REPLY_MAX = 255, -}; - -enum CMD_MODE { - CMD_ASYNC = 1, - CMD_WANT_SKB = 2, - CMD_SEND_IN_RFKILL = 4, - CMD_BLOCK_TXQS = 8, - CMD_SEND_IN_D3 = 16, -}; - -enum iwl_table_type { - LQ_NONE = 0, - LQ_G = 1, - LQ_A = 2, - LQ_SISO = 3, - LQ_MIMO2 = 4, - LQ_MIMO3 = 5, - LQ_MAX = 6, + BAR_FRAME_RELEASE = 194, + FRAME_RELEASE = 195, + BA_NOTIF = 197, + MCC_UPDATE_CMD = 200, + MCC_CHUB_UPDATE_CMD = 201, + MARKER_CMD = 203, + BT_PROFILE_NOTIFICATION = 206, + BT_CONFIG = 155, + BT_COEX_UPDATE_REDUCED_TXP = 92, + BT_COEX_CI = 93, + REPLY_SF_CFG_CMD = 209, + REPLY_BEACON_FILTERING_CMD = 210, + DTS_MEASUREMENT_NOTIFICATION = 221, + LDBG_CONFIG_CMD = 246, + DEBUG_LOG_MSG = 247, + MCAST_FILTER_CMD = 208, + D3_CONFIG_CMD = 211, + PROT_OFFLOAD_CONFIG_CMD = 212, + D0I3_END_CMD = 237, + WOWLAN_PATTERNS = 224, + WOWLAN_CONFIGURATION = 225, + WOWLAN_TSC_RSC_PARAM = 226, + WOWLAN_TKIP_PARAM = 227, + WOWLAN_KEK_KCK_MATERIAL = 228, + WOWLAN_GET_STATUSES = 229, + SCAN_OFFLOAD_PROFILES_QUERY_CMD = 86, }; enum iwl_err_mode { @@ -21261,231 +22690,1321 @@ enum iwl_err_mode { IWL_ERR_MODE_RATELIMIT = 3, }; -enum ieee80211_key_flags { - IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = 1, - IEEE80211_KEY_FLAG_GENERATE_IV = 2, - IEEE80211_KEY_FLAG_GENERATE_MMIC = 4, - IEEE80211_KEY_FLAG_PAIRWISE = 8, - IEEE80211_KEY_FLAG_SW_MGMT_TX = 16, - IEEE80211_KEY_FLAG_PUT_IV_SPACE = 32, - IEEE80211_KEY_FLAG_RX_MGMT = 64, - IEEE80211_KEY_FLAG_RESERVE_TAILROOM = 128, - IEEE80211_KEY_FLAG_PUT_MIC_SPACE = 256, - IEEE80211_KEY_FLAG_NO_AUTO_TX = 512, - IEEE80211_KEY_FLAG_GENERATE_MMIE = 1024, - IEEE80211_KEY_FLAG_SPP_AMSDU = 2048, +enum iwl_rx_mpdu_mac_flags2 { + IWL_RX_MPDU_MFLG2_HDR_LEN_MASK = 31, + IWL_RX_MPDU_MFLG2_PAD = 32, + IWL_RX_MPDU_MFLG2_AMSDU = 64, +}; + +enum iwl_rx_mpdu_status { + IWL_RX_MPDU_STATUS_CRC_OK = 1, + IWL_RX_MPDU_STATUS_OVERRUN_OK = 2, + IWL_RX_MPDU_STATUS_SRC_STA_FOUND = 4, + IWL_RX_MPDU_STATUS_KEY_VALID = 8, + IWL_RX_MPDU_STATUS_ICV_OK = 32, + IWL_RX_MPDU_STATUS_MIC_OK = 64, + IWL_RX_MPDU_RES_STATUS_TTAK_OK = 128, + IWL_RX_MPDU_STATUS_REPLAY_ERROR = 128, + IWL_RX_MPDU_STATUS_SEC_MASK = 1792, + IWL_RX_MPDU_STATUS_SEC_UNKNOWN = 1792, + IWL_RX_MPDU_STATUS_SEC_NONE = 0, + IWL_RX_MPDU_STATUS_SEC_WEP = 256, + IWL_RX_MPDU_STATUS_SEC_CCM = 512, + IWL_RX_MPDU_STATUS_SEC_TKIP = 768, + IWL_RX_MPDU_STATUS_SEC_EXT_ENC = 1024, + IWL_RX_MPDU_STATUS_SEC_GCM = 1280, + IWL_RX_MPDU_STATUS_DECRYPTED = 2048, + IWL_RX_MPDU_STATUS_ROBUST_MNG_FRAME = 32768, + IWL_RX_MPDU_STATUS_DUPLICATE = 4194304, + IWL_RX_MPDU_STATUS_STA_ID = 520093696, +}; + +enum mac80211_rx_flags { + RX_FLAG_MMIC_ERROR = 1, + RX_FLAG_DECRYPTED = 2, + RX_FLAG_ONLY_MONITOR = 4, + RX_FLAG_MMIC_STRIPPED = 8, + RX_FLAG_IV_STRIPPED = 16, + RX_FLAG_FAILED_FCS_CRC = 32, + RX_FLAG_FAILED_PLCP_CRC = 64, + RX_FLAG_MACTIME_IS_RTAP_TS64 = 128, + RX_FLAG_NO_SIGNAL_VAL = 256, + RX_FLAG_AMPDU_DETAILS = 512, + RX_FLAG_PN_VALIDATED = 1024, + RX_FLAG_DUP_VALIDATED = 2048, + RX_FLAG_AMPDU_LAST_KNOWN = 4096, + RX_FLAG_AMPDU_IS_LAST = 8192, + RX_FLAG_AMPDU_DELIM_CRC_ERROR = 16384, + RX_FLAG_AMPDU_DELIM_CRC_KNOWN = 32768, + RX_FLAG_MACTIME = 196608, + RX_FLAG_MACTIME_PLCP_START = 65536, + RX_FLAG_MACTIME_START = 131072, + RX_FLAG_MACTIME_END = 196608, + RX_FLAG_SKIP_MONITOR = 262144, + RX_FLAG_AMSDU_MORE = 524288, + RX_FLAG_RADIOTAP_TLV_AT_END = 1048576, + RX_FLAG_MIC_STRIPPED = 2097152, + RX_FLAG_ALLOW_SAME_PN = 4194304, + RX_FLAG_ICV_STRIPPED = 8388608, + RX_FLAG_AMPDU_EOF_BIT = 16777216, + RX_FLAG_AMPDU_EOF_BIT_KNOWN = 33554432, + RX_FLAG_RADIOTAP_HE = 67108864, + RX_FLAG_RADIOTAP_HE_MU = 134217728, + RX_FLAG_RADIOTAP_LSIG = 268435456, + RX_FLAG_NO_PSDU = 536870912, + RX_FLAG_8023 = 1073741824, +}; + +enum iwl_rx_mpdu_phy_info { + IWL_RX_MPDU_PHY_AMPDU = 32, + IWL_RX_MPDU_PHY_AMPDU_TOGGLE = 64, + IWL_RX_MPDU_PHY_SHORT_PREAMBLE = 128, + IWL_RX_MPDU_PHY_NCCK_ADDTL_NTFY = 128, + IWL_RX_MPDU_PHY_TSF_OVERLOAD = 256, +}; + +enum mac80211_rx_encoding_flags { + RX_ENC_FLAG_SHORTPRE = 1, + RX_ENC_FLAG_SHORT_GI = 4, + RX_ENC_FLAG_HT_GF = 8, + RX_ENC_FLAG_STBC_MASK = 48, + RX_ENC_FLAG_LDPC = 64, + RX_ENC_FLAG_BF = 128, +}; + +enum ieee80211_sta_state { + IEEE80211_STA_NOTEXIST = 0, + IEEE80211_STA_NONE = 1, + IEEE80211_STA_AUTH = 2, + IEEE80211_STA_ASSOC = 3, + IEEE80211_STA_AUTHORIZED = 4, +}; + +enum iwl_mvm_agg_state { + IWL_AGG_OFF = 0, + IWL_AGG_QUEUED = 1, + IWL_AGG_STARTING = 2, + IWL_AGG_ON = 3, + IWL_EMPTYING_HW_QUEUE_ADDBA = 4, + IWL_EMPTYING_HW_QUEUE_DELBA = 5, +}; + +enum iwl_table_type { + LQ_NONE = 0, + LQ_LEGACY_G = 1, + LQ_LEGACY_A = 2, + LQ_HT_SISO = 3, + LQ_HT_MIMO2 = 4, + LQ_VHT_SISO = 5, + LQ_VHT_MIMO2 = 6, + LQ_HE_SISO = 7, + LQ_HE_MIMO2 = 8, + LQ_MAX = 9, +}; + +enum rs_column { + RS_COLUMN_LEGACY_ANT_A = 0, + RS_COLUMN_LEGACY_ANT_B = 1, + RS_COLUMN_SISO_ANT_A = 2, + RS_COLUMN_SISO_ANT_B = 3, + RS_COLUMN_SISO_ANT_A_SGI = 4, + RS_COLUMN_SISO_ANT_B_SGI = 5, + RS_COLUMN_MIMO2 = 6, + RS_COLUMN_MIMO2_SGI = 7, + RS_COLUMN_LAST = 7, + RS_COLUMN_COUNT = 8, + RS_COLUMN_INVALID = 9, +}; + +enum iwl_rx_mpdu_reorder_data { + IWL_RX_MPDU_REORDER_NSSN_MASK = 4095, + IWL_RX_MPDU_REORDER_SN_MASK = 16773120, + IWL_RX_MPDU_REORDER_SN_SHIFT = 12, + IWL_RX_MPDU_REORDER_BAID_MASK = 2130706432, + IWL_RX_MPDU_REORDER_BAID_SHIFT = 24, + IWL_RX_MPDU_REORDER_BA_OLD_SN = 2147483648, +}; + +enum iwl_fw_dbg_trigger { + FW_DBG_TRIGGER_INVALID = 0, + FW_DBG_TRIGGER_USER = 1, + FW_DBG_TRIGGER_FW_ASSERT = 2, + FW_DBG_TRIGGER_MISSED_BEACONS = 3, + FW_DBG_TRIGGER_CHANNEL_SWITCH = 4, + FW_DBG_TRIGGER_FW_NOTIF = 5, + FW_DBG_TRIGGER_MLME = 6, + FW_DBG_TRIGGER_STATS = 7, + FW_DBG_TRIGGER_RSSI = 8, + FW_DBG_TRIGGER_TXQ_TIMERS = 9, + FW_DBG_TRIGGER_TIME_EVENT = 10, + FW_DBG_TRIGGER_BA = 11, + FW_DBG_TRIGGER_TX_LATENCY = 12, + FW_DBG_TRIGGER_TDLS = 13, + FW_DBG_TRIGGER_TX_STATUS = 14, + FW_DBG_TRIGGER_ALIVE_TIMEOUT = 15, + FW_DBG_TRIGGER_DRIVER = 16, + FW_DBG_TRIGGER_MAX = 17, +}; + +enum iwl_rx_mpdu_amsdu_info { + IWL_RX_MPDU_AMSDU_SUBFRAME_IDX_MASK = 127, + IWL_RX_MPDU_AMSDU_LAST_SUBFRAME = 128, +}; + +enum iwl_data_path_subcmd_ids { + DQA_ENABLE_CMD = 0, + UPDATE_MU_GROUPS_CMD = 1, + TRIGGER_RX_QUEUES_NOTIF_CMD = 2, + WNM_PLATFORM_PTM_REQUEST_CMD = 3, + WNM_80211V_TIMING_MEASUREMENT_CONFIG_CMD = 4, + STA_HE_CTXT_CMD = 7, + RLC_CONFIG_CMD = 8, + RFH_QUEUE_CONFIG_CMD = 13, + TLC_MNG_CONFIG_CMD = 15, + HE_AIR_SNIFFER_CONFIG_CMD = 19, + CHEST_COLLECTOR_FILTER_CONFIG_CMD = 20, + RX_BAID_ALLOCATION_CONFIG_CMD = 22, + SCD_QUEUE_CONFIG_CMD = 23, + SEC_KEY_CMD = 24, + MONITOR_NOTIF = 244, + RX_NO_DATA_NOTIF = 245, + THERMAL_DUAL_CHAIN_REQUEST = 246, + TLC_MNG_UPDATE_NOTIF = 247, + STA_PM_NOTIF = 253, + MU_GROUP_MGMT_NOTIF = 254, + RX_QUEUES_NOTIFICATION = 255, +}; + +enum ieee80211_radiotap_zero_len_psdu_type { + IEEE80211_RADIOTAP_ZERO_LEN_PSDU_SOUNDING = 0, + IEEE80211_RADIOTAP_ZERO_LEN_PSDU_NOT_CAPTURED = 1, + IEEE80211_RADIOTAP_ZERO_LEN_PSDU_VENDOR = 255, +}; + +enum iwl_bar_frame_release_ba_info { + IWL_BAR_FRAME_RELEASE_NSSN_MASK = 4095, + IWL_BAR_FRAME_RELEASE_SN_MASK = 16773120, + IWL_BAR_FRAME_RELEASE_BAID_MASK = 1056964608, +}; + +enum iwl_bar_frame_release_sta_tid { + IWL_BAR_FRAME_RELEASE_TID_MASK = 15, + IWL_BAR_FRAME_RELEASE_STA_MASK = 496, +}; + +enum iwl_ucode_tlv_api { + IWL_UCODE_TLV_API_FRAGMENTED_SCAN = 8, + IWL_UCODE_TLV_API_WIFI_MCC_UPDATE = 9, + IWL_UCODE_TLV_API_LQ_SS_PARAMS = 18, + IWL_UCODE_TLV_API_NEW_VERSION = 20, + IWL_UCODE_TLV_API_SCAN_TSF_REPORT = 28, + IWL_UCODE_TLV_API_TKIP_MIC_KEYS = 29, + IWL_UCODE_TLV_API_STA_TYPE = 30, + IWL_UCODE_TLV_API_NAN2_VER2 = 31, + IWL_UCODE_TLV_API_ADAPTIVE_DWELL = 32, + IWL_UCODE_TLV_API_OCE = 33, + IWL_UCODE_TLV_API_NEW_BEACON_TEMPLATE = 34, + IWL_UCODE_TLV_API_NEW_RX_STATS = 35, + IWL_UCODE_TLV_API_WOWLAN_KEY_MATERIAL = 36, + IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY = 38, + IWL_UCODE_TLV_API_DEPRECATE_TTAK = 41, + IWL_UCODE_TLV_API_ADAPTIVE_DWELL_V2 = 42, + IWL_UCODE_TLV_API_FRAG_EBS = 44, + IWL_UCODE_TLV_API_REDUCE_TX_POWER = 45, + IWL_UCODE_TLV_API_SHORT_BEACON_NOTIF = 46, + IWL_UCODE_TLV_API_BEACON_FILTER_V4 = 47, + IWL_UCODE_TLV_API_REGULATORY_NVM_INFO = 48, + IWL_UCODE_TLV_API_FTM_NEW_RANGE_REQ = 49, + IWL_UCODE_TLV_API_SCAN_OFFLOAD_CHANS = 50, + IWL_UCODE_TLV_API_MBSSID_HE = 52, + IWL_UCODE_TLV_API_WOWLAN_TCP_SYN_WAKE = 53, + IWL_UCODE_TLV_API_FTM_RTT_ACCURACY = 54, + IWL_UCODE_TLV_API_SAR_TABLE_VER = 55, + IWL_UCODE_TLV_API_REDUCED_SCAN_CONFIG = 56, + IWL_UCODE_TLV_API_ADWELL_HB_DEF_N_AP = 57, + IWL_UCODE_TLV_API_SCAN_EXT_CHAN_VER = 58, + IWL_UCODE_TLV_API_BAND_IN_RX_DATA = 59, + IWL_UCODE_TLV_API_NO_HOST_DISABLE_TX = 66, + IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR = 67, + IWL_UCODE_TLV_API_SMART_FIFO_OFFLOAD = 68, + NUM_IWL_UCODE_TLV_API = 69, +}; + +enum iwl_mvm_rx_status { + RX_MPDU_RES_STATUS_CRC_OK = 1, + RX_MPDU_RES_STATUS_OVERRUN_OK = 2, + RX_MPDU_RES_STATUS_SRC_STA_FOUND = 4, + RX_MPDU_RES_STATUS_KEY_VALID = 8, + RX_MPDU_RES_STATUS_ICV_OK = 32, + RX_MPDU_RES_STATUS_MIC_OK = 64, + RX_MPDU_RES_STATUS_TTAK_OK = 128, + RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR = 128, + RX_MPDU_RES_STATUS_SEC_NO_ENC = 0, + RX_MPDU_RES_STATUS_SEC_WEP_ENC = 256, + RX_MPDU_RES_STATUS_SEC_CCM_ENC = 512, + RX_MPDU_RES_STATUS_SEC_TKIP_ENC = 768, + RX_MPDU_RES_STATUS_SEC_EXT_ENC = 1024, + RX_MPDU_RES_STATUS_SEC_CMAC_GMAC_ENC = 1536, + RX_MPDU_RES_STATUS_SEC_ENC_ERR = 1792, + RX_MPDU_RES_STATUS_SEC_ENC_MSK = 1792, + RX_MPDU_RES_STATUS_DEC_DONE = 2048, + RX_MPDU_RES_STATUS_CSUM_DONE = 65536, + RX_MPDU_RES_STATUS_CSUM_OK = 131072, + RX_MDPU_RES_STATUS_STA_ID_SHIFT = 24, + RX_MPDU_RES_STATUS_STA_ID_MSK = 520093696, +}; + +enum skb_drop_reason { + SKB_NOT_DROPPED_YET = 0, + SKB_CONSUMED = 1, + SKB_DROP_REASON_NOT_SPECIFIED = 2, + SKB_DROP_REASON_NO_SOCKET = 3, + SKB_DROP_REASON_PKT_TOO_SMALL = 4, + SKB_DROP_REASON_TCP_CSUM = 5, + SKB_DROP_REASON_SOCKET_FILTER = 6, + SKB_DROP_REASON_UDP_CSUM = 7, + SKB_DROP_REASON_NETFILTER_DROP = 8, + SKB_DROP_REASON_OTHERHOST = 9, + SKB_DROP_REASON_IP_CSUM = 10, + SKB_DROP_REASON_IP_INHDR = 11, + SKB_DROP_REASON_IP_RPFILTER = 12, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13, + SKB_DROP_REASON_XFRM_POLICY = 14, + SKB_DROP_REASON_IP_NOPROTO = 15, + SKB_DROP_REASON_SOCKET_RCVBUFF = 16, + SKB_DROP_REASON_PROTO_MEM = 17, + SKB_DROP_REASON_TCP_AUTH_HDR = 18, + SKB_DROP_REASON_TCP_MD5NOTFOUND = 19, + SKB_DROP_REASON_TCP_MD5UNEXPECTED = 20, + SKB_DROP_REASON_TCP_MD5FAILURE = 21, + SKB_DROP_REASON_TCP_AONOTFOUND = 22, + SKB_DROP_REASON_TCP_AOUNEXPECTED = 23, + SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 24, + SKB_DROP_REASON_TCP_AOFAILURE = 25, + SKB_DROP_REASON_SOCKET_BACKLOG = 26, + SKB_DROP_REASON_TCP_FLAGS = 27, + SKB_DROP_REASON_TCP_ABORT_ON_DATA = 28, + SKB_DROP_REASON_TCP_ZEROWINDOW = 29, + SKB_DROP_REASON_TCP_OLD_DATA = 30, + SKB_DROP_REASON_TCP_OVERWINDOW = 31, + SKB_DROP_REASON_TCP_OFOMERGE = 32, + SKB_DROP_REASON_TCP_RFC7323_PAWS = 33, + SKB_DROP_REASON_TCP_OLD_SEQUENCE = 34, + SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 35, + SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE = 36, + SKB_DROP_REASON_TCP_RESET = 37, + SKB_DROP_REASON_TCP_INVALID_SYN = 38, + SKB_DROP_REASON_TCP_CLOSE = 39, + SKB_DROP_REASON_TCP_FASTOPEN = 40, + SKB_DROP_REASON_TCP_OLD_ACK = 41, + SKB_DROP_REASON_TCP_TOO_OLD_ACK = 42, + SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 43, + SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 44, + SKB_DROP_REASON_TCP_OFO_DROP = 45, + SKB_DROP_REASON_IP_OUTNOROUTES = 46, + SKB_DROP_REASON_BPF_CGROUP_EGRESS = 47, + SKB_DROP_REASON_IPV6DISABLED = 48, + SKB_DROP_REASON_NEIGH_CREATEFAIL = 49, + SKB_DROP_REASON_NEIGH_FAILED = 50, + SKB_DROP_REASON_NEIGH_QUEUEFULL = 51, + SKB_DROP_REASON_NEIGH_DEAD = 52, + SKB_DROP_REASON_TC_EGRESS = 53, + SKB_DROP_REASON_SECURITY_HOOK = 54, + SKB_DROP_REASON_QDISC_DROP = 55, + SKB_DROP_REASON_CPU_BACKLOG = 56, + SKB_DROP_REASON_XDP = 57, + SKB_DROP_REASON_TC_INGRESS = 58, + SKB_DROP_REASON_UNHANDLED_PROTO = 59, + SKB_DROP_REASON_SKB_CSUM = 60, + SKB_DROP_REASON_SKB_GSO_SEG = 61, + SKB_DROP_REASON_SKB_UCOPY_FAULT = 62, + SKB_DROP_REASON_DEV_HDR = 63, + SKB_DROP_REASON_DEV_READY = 64, + SKB_DROP_REASON_FULL_RING = 65, + SKB_DROP_REASON_NOMEM = 66, + SKB_DROP_REASON_HDR_TRUNC = 67, + SKB_DROP_REASON_TAP_FILTER = 68, + SKB_DROP_REASON_TAP_TXFILTER = 69, + SKB_DROP_REASON_ICMP_CSUM = 70, + SKB_DROP_REASON_INVALID_PROTO = 71, + SKB_DROP_REASON_IP_INADDRERRORS = 72, + SKB_DROP_REASON_IP_INNOROUTES = 73, + SKB_DROP_REASON_PKT_TOO_BIG = 74, + SKB_DROP_REASON_DUP_FRAG = 75, + SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 76, + SKB_DROP_REASON_FRAG_TOO_FAR = 77, + SKB_DROP_REASON_TCP_MINTTL = 78, + SKB_DROP_REASON_IPV6_BAD_EXTHDR = 79, + SKB_DROP_REASON_IPV6_NDISC_FRAG = 80, + SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 81, + SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 82, + SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 83, + SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 84, + SKB_DROP_REASON_QUEUE_PURGE = 85, + SKB_DROP_REASON_TC_COOKIE_ERROR = 86, + SKB_DROP_REASON_PACKET_SOCK_ERROR = 87, + SKB_DROP_REASON_TC_CHAIN_NOTFOUND = 88, + SKB_DROP_REASON_TC_RECLASSIFY_LOOP = 89, + SKB_DROP_REASON_MAX = 90, + SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +}; + +enum iwl_rx_phy_common_data1 { + IWL_RX_PHY_DATA1_INFO_TYPE_MASK = 4026531840, + IWL_RX_PHY_DATA1_LSIG_LEN_MASK = 268369920, +}; + +enum rate_info_bw { + RATE_INFO_BW_20 = 0, + RATE_INFO_BW_5 = 1, + RATE_INFO_BW_10 = 2, + RATE_INFO_BW_40 = 3, + RATE_INFO_BW_80 = 4, + RATE_INFO_BW_160 = 5, + RATE_INFO_BW_HE_RU = 6, + RATE_INFO_BW_320 = 7, + RATE_INFO_BW_EHT_RU = 8, + RATE_INFO_BW_1 = 9, + RATE_INFO_BW_2 = 10, + RATE_INFO_BW_4 = 11, + RATE_INFO_BW_8 = 12, + RATE_INFO_BW_16 = 13, +}; + +enum mac80211_rx_encoding { + RX_ENC_LEGACY = 0, + RX_ENC_HT = 1, + RX_ENC_VHT = 2, + RX_ENC_HE = 3, + RX_ENC_EHT = 4, +}; + +enum iwl_rx_phy_he_data0 { + IWL_RX_PHY_DATA0_HE_BEAM_CHNG = 1, + IWL_RX_PHY_DATA0_HE_UPLINK = 2, + IWL_RX_PHY_DATA0_HE_BSS_COLOR_MASK = 252, + IWL_RX_PHY_DATA0_HE_SPATIAL_REUSE_MASK = 3840, + IWL_RX_PHY_DATA0_HE_TXOP_DUR_MASK = 1040384, + IWL_RX_PHY_DATA0_HE_LDPC_EXT_SYM = 1048576, + IWL_RX_PHY_DATA0_HE_PRE_FEC_PAD_MASK = 6291456, + IWL_RX_PHY_DATA0_HE_PE_DISAMBIG = 8388608, + IWL_RX_PHY_DATA0_HE_DOPPLER = 16777216, + IWL_RX_PHY_DATA0_HE_DELIM_EOF = 2147483648, +}; + +enum iwl_rx_phy_eht_data0 { + IWL_RX_PHY_DATA0_EHT_VALIDATE = 1, + IWL_RX_PHY_DATA0_EHT_UPLINK = 2, + IWL_RX_PHY_DATA0_EHT_BSS_COLOR_MASK = 252, + IWL_RX_PHY_DATA0_ETH_SPATIAL_REUSE_MASK = 3840, + IWL_RX_PHY_DATA0_EHT_PS160 = 4096, + IWL_RX_PHY_DATA0_EHT_TXOP_DUR_MASK = 1040384, + IWL_RX_PHY_DATA0_EHT_LDPC_EXT_SYM = 1048576, + IWL_RX_PHY_DATA0_EHT_PRE_FEC_PAD_MASK = 6291456, + IWL_RX_PHY_DATA0_EHT_PE_DISAMBIG = 8388608, + IWL_RX_PHY_DATA0_EHT_BW320_SLOT = 16777216, + IWL_RX_PHY_DATA0_EHT_SIGA_CRC_OK = 33554432, + IWL_RX_PHY_DATA0_EHT_PHY_VER = 469762048, + IWL_RX_PHY_DATA0_EHT_DELIM_EOF = 2147483648, +}; + +enum nl80211_he_ru_alloc { + NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0, + NL80211_RATE_INFO_HE_RU_ALLOC_52 = 1, + NL80211_RATE_INFO_HE_RU_ALLOC_106 = 2, + NL80211_RATE_INFO_HE_RU_ALLOC_242 = 3, + NL80211_RATE_INFO_HE_RU_ALLOC_484 = 4, + NL80211_RATE_INFO_HE_RU_ALLOC_996 = 5, + NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 6, +}; + +enum ieee80211_radiotap_he_bits { + IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MASK = 3, + IEEE80211_RADIOTAP_HE_DATA1_FORMAT_SU = 0, + IEEE80211_RADIOTAP_HE_DATA1_FORMAT_EXT_SU = 1, + IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MU = 2, + IEEE80211_RADIOTAP_HE_DATA1_FORMAT_TRIG = 3, + IEEE80211_RADIOTAP_HE_DATA1_BSS_COLOR_KNOWN = 4, + IEEE80211_RADIOTAP_HE_DATA1_BEAM_CHANGE_KNOWN = 8, + IEEE80211_RADIOTAP_HE_DATA1_UL_DL_KNOWN = 16, + IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN = 32, + IEEE80211_RADIOTAP_HE_DATA1_DATA_DCM_KNOWN = 64, + IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN = 128, + IEEE80211_RADIOTAP_HE_DATA1_LDPC_XSYMSEG_KNOWN = 256, + IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN = 512, + IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN = 1024, + IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN = 2048, + IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN = 4096, + IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN = 8192, + IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN = 16384, + IEEE80211_RADIOTAP_HE_DATA1_DOPPLER_KNOWN = 32768, + IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_KNOWN = 1, + IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN = 2, + IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN = 4, + IEEE80211_RADIOTAP_HE_DATA2_PRE_FEC_PAD_KNOWN = 8, + IEEE80211_RADIOTAP_HE_DATA2_TXBF_KNOWN = 16, + IEEE80211_RADIOTAP_HE_DATA2_PE_DISAMBIG_KNOWN = 32, + IEEE80211_RADIOTAP_HE_DATA2_TXOP_KNOWN = 64, + IEEE80211_RADIOTAP_HE_DATA2_MIDAMBLE_KNOWN = 128, + IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET = 16128, + IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET_KNOWN = 16384, + IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_SEC = 32768, + IEEE80211_RADIOTAP_HE_DATA3_BSS_COLOR = 63, + IEEE80211_RADIOTAP_HE_DATA3_BEAM_CHANGE = 64, + IEEE80211_RADIOTAP_HE_DATA3_UL_DL = 128, + IEEE80211_RADIOTAP_HE_DATA3_DATA_MCS = 3840, + IEEE80211_RADIOTAP_HE_DATA3_DATA_DCM = 4096, + IEEE80211_RADIOTAP_HE_DATA3_CODING = 8192, + IEEE80211_RADIOTAP_HE_DATA3_LDPC_XSYMSEG = 16384, + IEEE80211_RADIOTAP_HE_DATA3_STBC = 32768, + IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE = 15, + IEEE80211_RADIOTAP_HE_DATA4_MU_STA_ID = 32752, + IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1 = 15, + IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2 = 240, + IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3 = 3840, + IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4 = 61440, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC = 15, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_20MHZ = 0, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_40MHZ = 1, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_80MHZ = 2, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_160MHZ = 3, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_26T = 4, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_52T = 5, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_106T = 6, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_242T = 7, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_484T = 8, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_996T = 9, + IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_2x996T = 10, + IEEE80211_RADIOTAP_HE_DATA5_GI = 48, + IEEE80211_RADIOTAP_HE_DATA5_GI_0_8 = 0, + IEEE80211_RADIOTAP_HE_DATA5_GI_1_6 = 1, + IEEE80211_RADIOTAP_HE_DATA5_GI_3_2 = 2, + IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE = 192, + IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_UNKNOWN = 0, + IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_1X = 1, + IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_2X = 2, + IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_4X = 3, + IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS = 1792, + IEEE80211_RADIOTAP_HE_DATA5_PRE_FEC_PAD = 12288, + IEEE80211_RADIOTAP_HE_DATA5_TXBF = 16384, + IEEE80211_RADIOTAP_HE_DATA5_PE_DISAMBIG = 32768, + IEEE80211_RADIOTAP_HE_DATA6_NSTS = 15, + IEEE80211_RADIOTAP_HE_DATA6_DOPPLER = 16, + IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_KNOWN = 32, + IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW = 192, + IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_20MHZ = 0, + IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_40MHZ = 1, + IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_80MHZ = 2, + IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_160MHZ = 3, + IEEE80211_RADIOTAP_HE_DATA6_TXOP = 32512, + IEEE80211_RADIOTAP_HE_DATA6_MIDAMBLE_PDCTY = 32768, +}; + +enum iwl_rx_phy_he_data2 { + IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU0 = 255, + IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU2 = 65280, + IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU0 = 16711680, + IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU2 = 4278190080, + IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE1 = 15, + IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE2 = 240, + IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE3 = 3840, + IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE4 = 61440, +}; + +enum iwl_rx_phy_he_data1 { + IWL_RX_PHY_DATA1_HE_MU_SIGB_COMPRESSION = 1, + IWL_RX_PHY_DATA1_HE_MU_SIBG_SYM_OR_USER_NUM_MASK = 30, + IWL_RX_PHY_DATA1_HE_LTF_NUM_MASK = 224, + IWL_RX_PHY_DATA1_HE_RU_ALLOC_SEC80 = 256, + IWL_RX_PHY_DATA1_HE_RU_ALLOC_MASK = 65024, + IWL_RX_PHY_DATA1_HE_TB_PILOT_TYPE = 1, + IWL_RX_PHY_DATA1_HE_TB_LOW_SS_MASK = 14, +}; + +enum iwl_rx_phy_he_he_data4 { + IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CTR_RU = 1, + IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CTR_RU = 2, + IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CRC_OK = 4, + IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CRC_OK = 8, + IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_MCS_MASK = 240, + IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_DCM = 256, + IWL_RX_PHY_DATA4_HE_MU_EXT_PREAMBLE_PUNC_TYPE_MASK = 1536, +}; + +enum ieee80211_radiotap_he_mu_bits { + IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS = 15, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS_KNOWN = 16, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM = 32, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM_KNOWN = 64, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_CTR_26T_RU_KNOWN = 128, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_RU_KNOWN = 256, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_RU_KNOWN = 512, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU_KNOWN = 4096, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU = 8192, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_COMP_KNOWN = 16384, + IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_SYMS_USERS_KNOWN = 32768, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW = 3, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_20MHZ = 0, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_40MHZ = 1, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_80MHZ = 2, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_160MHZ = 3, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_KNOWN = 4, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_COMP = 8, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_SYMS_USERS = 240, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW = 768, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW_KNOWN = 1024, + IEEE80211_RADIOTAP_HE_MU_FLAGS2_CH2_CTR_26T_RU = 2048, +}; + +enum iwl_rx_phy_he_data3 { + IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU1 = 255, + IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU3 = 65280, + IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU1 = 16711680, + IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU3 = 4278190080, +}; + +enum ieee80211_radiotap_lsig_data1 { + IEEE80211_RADIOTAP_LSIG_DATA1_RATE_KNOWN = 1, + IEEE80211_RADIOTAP_LSIG_DATA1_LENGTH_KNOWN = 2, +}; + +enum ieee80211_radiotap_lsig_data2 { + IEEE80211_RADIOTAP_LSIG_DATA2_RATE = 15, + IEEE80211_RADIOTAP_LSIG_DATA2_LENGTH = 65520, +}; + +enum ieee80211_radiotap_presence { + IEEE80211_RADIOTAP_TSFT = 0, + IEEE80211_RADIOTAP_FLAGS = 1, + IEEE80211_RADIOTAP_RATE = 2, + IEEE80211_RADIOTAP_CHANNEL = 3, + IEEE80211_RADIOTAP_FHSS = 4, + IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5, + IEEE80211_RADIOTAP_DBM_ANTNOISE = 6, + IEEE80211_RADIOTAP_LOCK_QUALITY = 7, + IEEE80211_RADIOTAP_TX_ATTENUATION = 8, + IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9, + IEEE80211_RADIOTAP_DBM_TX_POWER = 10, + IEEE80211_RADIOTAP_ANTENNA = 11, + IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12, + IEEE80211_RADIOTAP_DB_ANTNOISE = 13, + IEEE80211_RADIOTAP_RX_FLAGS = 14, + IEEE80211_RADIOTAP_TX_FLAGS = 15, + IEEE80211_RADIOTAP_RTS_RETRIES = 16, + IEEE80211_RADIOTAP_DATA_RETRIES = 17, + IEEE80211_RADIOTAP_MCS = 19, + IEEE80211_RADIOTAP_AMPDU_STATUS = 20, + IEEE80211_RADIOTAP_VHT = 21, + IEEE80211_RADIOTAP_TIMESTAMP = 22, + IEEE80211_RADIOTAP_HE = 23, + IEEE80211_RADIOTAP_HE_MU = 24, + IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26, + IEEE80211_RADIOTAP_LSIG = 27, + IEEE80211_RADIOTAP_TLV = 28, + IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29, + IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30, + IEEE80211_RADIOTAP_EXT = 31, + IEEE80211_RADIOTAP_EHT_USIG = 33, + IEEE80211_RADIOTAP_EHT = 34, +}; + +enum ieee80211_radiotap_eht_usig_common { + IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN = 1, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN = 2, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN = 4, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN = 8, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN = 16, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC = 32, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED = 64, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK = 128, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER = 28672, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW = 229376, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_20MHZ = 0, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_40MHZ = 1, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_80MHZ = 2, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_160MHZ = 3, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_1 = 4, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_2 = 5, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL = 262144, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR = 33030144, + IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP = 4261412864, +}; + +enum nl80211_eht_gi { + NL80211_RATE_INFO_EHT_GI_0_8 = 0, + NL80211_RATE_INFO_EHT_GI_1_6 = 1, + NL80211_RATE_INFO_EHT_GI_3_2 = 2, +}; + +enum ieee80211_radiotap_eht_known { + IEEE80211_RADIOTAP_EHT_KNOWN_SPATIAL_REUSE = 2, + IEEE80211_RADIOTAP_EHT_KNOWN_GI = 4, + IEEE80211_RADIOTAP_EHT_KNOWN_EHT_LTF = 16, + IEEE80211_RADIOTAP_EHT_KNOWN_LDPC_EXTRA_SYM_OM = 32, + IEEE80211_RADIOTAP_EHT_KNOWN_PRE_PADD_FACOR_OM = 64, + IEEE80211_RADIOTAP_EHT_KNOWN_PE_DISAMBIGUITY_OM = 128, + IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_O = 256, + IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_S = 512, + IEEE80211_RADIOTAP_EHT_KNOWN_CRC1 = 8192, + IEEE80211_RADIOTAP_EHT_KNOWN_TAIL1 = 16384, + IEEE80211_RADIOTAP_EHT_KNOWN_CRC2_O = 32768, + IEEE80211_RADIOTAP_EHT_KNOWN_TAIL2_O = 65536, + IEEE80211_RADIOTAP_EHT_KNOWN_NSS_S = 131072, + IEEE80211_RADIOTAP_EHT_KNOWN_BEAMFORMED_S = 262144, + IEEE80211_RADIOTAP_EHT_KNOWN_NR_NON_OFDMA_USERS_M = 524288, + IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_CRC_M = 1048576, + IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_TAIL_M = 2097152, + IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_SIZE_OM = 4194304, + IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_INDEX_OM = 8388608, + IEEE80211_RADIOTAP_EHT_KNOWN_RU_ALLOC_TB_FMT = 16777216, + IEEE80211_RADIOTAP_EHT_KNOWN_PRIMARY_80 = 33554432, +}; + +enum ieee80211_radiotap_eht_data { + IEEE80211_RADIOTAP_EHT_DATA0_SPATIAL_REUSE = 120, + IEEE80211_RADIOTAP_EHT_DATA0_GI = 384, + IEEE80211_RADIOTAP_EHT_DATA0_LTF = 1536, + IEEE80211_RADIOTAP_EHT_DATA0_EHT_LTF = 14336, + IEEE80211_RADIOTAP_EHT_DATA0_LDPC_EXTRA_SYM_OM = 16384, + IEEE80211_RADIOTAP_EHT_DATA0_PRE_PADD_FACOR_OM = 98304, + IEEE80211_RADIOTAP_EHT_DATA0_PE_DISAMBIGUITY_OM = 131072, + IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_S = 786432, + IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_O = 3932160, + IEEE80211_RADIOTAP_EHT_DATA0_CRC1_O = 62914560, + IEEE80211_RADIOTAP_EHT_DATA0_TAIL1_O = 4227858432, + IEEE80211_RADIOTAP_EHT_DATA1_RU_SIZE = 31, + IEEE80211_RADIOTAP_EHT_DATA1_RU_INDEX = 8160, + IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1 = 4186112, + IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1_KNOWN = 4194304, + IEEE80211_RADIOTAP_EHT_DATA1_PRIMARY_80 = 3221225472, + IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1 = 511, + IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1_KNOWN = 512, + IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2 = 523264, + IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2_KNOWN = 524288, + IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2 = 535822336, + IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2_KNOWN = 536870912, + IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1 = 511, + IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1_KNOWN = 512, + IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1 = 523264, + IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1_KNOWN = 524288, + IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2 = 535822336, + IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2_KNOWN = 536870912, + IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2 = 511, + IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2_KNOWN = 512, + IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3 = 523264, + IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3_KNOWN = 524288, + IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3 = 535822336, + IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3_KNOWN = 536870912, + IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4 = 511, + IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4_KNOWN = 512, + IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4 = 523264, + IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4_KNOWN = 524288, + IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5 = 535822336, + IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5_KNOWN = 536870912, + IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5 = 511, + IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5_KNOWN = 512, + IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6 = 523264, + IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6_KNOWN = 524288, + IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6 = 535822336, + IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6_KNOWN = 536870912, + IEEE80211_RADIOTAP_EHT_DATA7_CRC2_O = 15, + IEEE80211_RADIOTAP_EHT_DATA7_TAIL_2_O = 1008, + IEEE80211_RADIOTAP_EHT_DATA7_NSS_S = 61440, + IEEE80211_RADIOTAP_EHT_DATA7_BEAMFORMED_S = 65536, + IEEE80211_RADIOTAP_EHT_DATA7_NUM_OF_NON_OFDMA_USERS = 917504, + IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_CRC = 15728640, + IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_TAIL = 1056964608, + IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_PS_160 = 1, + IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B0 = 2, + IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B7_B1 = 508, +}; + +enum ieee80211_radiotap_eht_user_info { + IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID_KNOWN = 1, + IEEE80211_RADIOTAP_EHT_USER_INFO_MCS_KNOWN = 2, + IEEE80211_RADIOTAP_EHT_USER_INFO_CODING_KNOWN = 4, + IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_KNOWN_O = 16, + IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_KNOWN_O = 32, + IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_KNOWN_M = 64, + IEEE80211_RADIOTAP_EHT_USER_INFO_DATA_FOR_USER = 128, + IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID = 524032, + IEEE80211_RADIOTAP_EHT_USER_INFO_CODING = 524288, + IEEE80211_RADIOTAP_EHT_USER_INFO_MCS = 15728640, + IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_O = 251658240, + IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_O = 536870912, + IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_M = 1056964608, + IEEE80211_RADIOTAP_EHT_USER_INFO_RESEVED_c0000000 = 3221225472, +}; + +enum iwl_rx_usig_a1 { + IWL_RX_USIG_A1_ENHANCED_WIFI_VER_ID = 7, + IWL_RX_USIG_A1_BANDWIDTH = 56, + IWL_RX_USIG_A1_UL_FLAG = 64, + IWL_RX_USIG_A1_BSS_COLOR = 8064, + IWL_RX_USIG_A1_TXOP_DURATION = 1040384, + IWL_RX_USIG_A1_DISREGARD = 32505856, + IWL_RX_USIG_A1_VALIDATE = 33554432, + IWL_RX_USIG_A1_EHT_BW320_SLOT = 67108864, + IWL_RX_USIG_A1_EHT_TYPE = 402653184, + IWL_RX_USIG_A1_RDY = 2147483648, +}; + +enum iwl_ucode_tlv_capa { + IWL_UCODE_TLV_CAPA_D0I3_SUPPORT = 0, + IWL_UCODE_TLV_CAPA_LAR_SUPPORT = 1, + IWL_UCODE_TLV_CAPA_UMAC_SCAN = 2, + IWL_UCODE_TLV_CAPA_BEAMFORMER = 3, + IWL_UCODE_TLV_CAPA_TDLS_SUPPORT = 6, + IWL_UCODE_TLV_CAPA_TXPOWER_INSERTION_SUPPORT = 8, + IWL_UCODE_TLV_CAPA_DS_PARAM_SET_IE_SUPPORT = 9, + IWL_UCODE_TLV_CAPA_WFA_TPC_REP_IE_SUPPORT = 10, + IWL_UCODE_TLV_CAPA_QUIET_PERIOD_SUPPORT = 11, + IWL_UCODE_TLV_CAPA_DQA_SUPPORT = 12, + IWL_UCODE_TLV_CAPA_TDLS_CHANNEL_SWITCH = 13, + IWL_UCODE_TLV_CAPA_CNSLDTD_D3_D0_IMG = 17, + IWL_UCODE_TLV_CAPA_HOTSPOT_SUPPORT = 18, + IWL_UCODE_TLV_CAPA_CSUM_SUPPORT = 21, + IWL_UCODE_TLV_CAPA_RADIO_BEACON_STATS = 22, + IWL_UCODE_TLV_CAPA_P2P_SCM_UAPSD = 26, + IWL_UCODE_TLV_CAPA_BT_COEX_PLCR = 28, + IWL_UCODE_TLV_CAPA_LAR_MULTI_MCC = 29, + IWL_UCODE_TLV_CAPA_BT_COEX_RRC = 30, + IWL_UCODE_TLV_CAPA_GSCAN_SUPPORT = 31, + IWL_UCODE_TLV_CAPA_FRAGMENTED_PNVM_IMG = 32, + IWL_UCODE_TLV_CAPA_SOC_LATENCY_SUPPORT = 37, + IWL_UCODE_TLV_CAPA_STA_PM_NOTIF = 38, + IWL_UCODE_TLV_CAPA_BINDING_CDB_SUPPORT = 39, + IWL_UCODE_TLV_CAPA_CDB_SUPPORT = 40, + IWL_UCODE_TLV_CAPA_D0I3_END_FIRST = 41, + IWL_UCODE_TLV_CAPA_TLC_OFFLOAD = 43, + IWL_UCODE_TLV_CAPA_DYNAMIC_QUOTA = 44, + IWL_UCODE_TLV_CAPA_COEX_SCHEMA_2 = 45, + IWL_UCODE_TLV_CAPA_CHANNEL_SWITCH_CMD = 46, + IWL_UCODE_TLV_CAPA_FTM_CALIBRATED = 47, + IWL_UCODE_TLV_CAPA_ULTRA_HB_CHANNELS = 48, + IWL_UCODE_TLV_CAPA_CS_MODIFY = 49, + IWL_UCODE_TLV_CAPA_SET_LTR_GEN2 = 50, + IWL_UCODE_TLV_CAPA_SET_PPAG = 52, + IWL_UCODE_TLV_CAPA_TAS_CFG = 53, + IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD = 54, + IWL_UCODE_TLV_CAPA_PROTECTED_TWT = 56, + IWL_UCODE_TLV_CAPA_FW_RESET_HANDSHAKE = 57, + IWL_UCODE_TLV_CAPA_PASSIVE_6GHZ_SCAN = 58, + IWL_UCODE_TLV_CAPA_HIDDEN_6GHZ_SCAN = 59, + IWL_UCODE_TLV_CAPA_BROADCAST_TWT = 60, + IWL_UCODE_TLV_CAPA_COEX_HIGH_PRIO = 61, + IWL_UCODE_TLV_CAPA_RFIM_SUPPORT = 62, + IWL_UCODE_TLV_CAPA_BAID_ML_SUPPORT = 63, + IWL_UCODE_TLV_CAPA_EXTENDED_DTS_MEASURE = 64, + IWL_UCODE_TLV_CAPA_SHORT_PM_TIMEOUTS = 65, + IWL_UCODE_TLV_CAPA_BT_MPLUT_SUPPORT = 67, + IWL_UCODE_TLV_CAPA_MULTI_QUEUE_RX_SUPPORT = 68, + IWL_UCODE_TLV_CAPA_CSA_AND_TBTT_OFFLOAD = 70, + IWL_UCODE_TLV_CAPA_BEACON_ANT_SELECTION = 71, + IWL_UCODE_TLV_CAPA_BEACON_STORING = 72, + IWL_UCODE_TLV_CAPA_LAR_SUPPORT_V3 = 73, + IWL_UCODE_TLV_CAPA_CT_KILL_BY_FW = 74, + IWL_UCODE_TLV_CAPA_TEMP_THS_REPORT_SUPPORT = 75, + IWL_UCODE_TLV_CAPA_CTDP_SUPPORT = 76, + IWL_UCODE_TLV_CAPA_USNIFFER_UNIFIED = 77, + IWL_UCODE_TLV_CAPA_EXTEND_SHARED_MEM_CFG = 80, + IWL_UCODE_TLV_CAPA_LQM_SUPPORT = 81, + IWL_UCODE_TLV_CAPA_TX_POWER_ACK = 84, + IWL_UCODE_TLV_CAPA_D3_DEBUG = 87, + IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT = 88, + IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT = 89, + IWL_UCODE_TLV_CAPA_CSI_REPORTING = 90, + IWL_UCODE_TLV_CAPA_DBG_SUSPEND_RESUME_CMD_SUPP = 92, + IWL_UCODE_TLV_CAPA_DBG_BUF_ALLOC_CMD_SUPP = 93, + IWL_UCODE_TLV_CAPA_MLME_OFFLOAD = 96, + IWL_UCODE_TLV_CAPA_PSC_CHAN_SUPPORT = 98, + IWL_UCODE_TLV_CAPA_BIGTK_SUPPORT = 100, + IWL_UCODE_TLV_CAPA_SPP_AMSDU_SUPPORT = 103, + IWL_UCODE_TLV_CAPA_DRAM_FRAG_SUPPORT = 104, + IWL_UCODE_TLV_CAPA_DUMP_COMPLETE_SUPPORT = 105, + IWL_UCODE_TLV_CAPA_SYNCED_TIME = 106, + IWL_UCODE_TLV_CAPA_TIME_SYNC_BOTH_FTM_TM = 108, + IWL_UCODE_TLV_CAPA_BIGTK_TX_SUPPORT = 109, + IWL_UCODE_TLV_CAPA_MLD_API_SUPPORT = 110, + IWL_UCODE_TLV_CAPA_SCAN_DONT_TOGGLE_ANT = 111, + IWL_UCODE_TLV_CAPA_PPAG_CHINA_BIOS_SUPPORT = 112, + IWL_UCODE_TLV_CAPA_OFFLOAD_BTM_SUPPORT = 113, + IWL_UCODE_TLV_CAPA_STA_EXP_MFP_SUPPORT = 114, + IWL_UCODE_TLV_CAPA_SNIFF_VALIDATE_SUPPORT = 116, + IWL_UCODE_TLV_CAPA_CHINA_22_REG_SUPPORT = 117, + IWL_UCODE_TLV_CAPA_SECURE_LTF_SUPPORT = 121, + NUM_IWL_UCODE_TLV_CAPA = 122, +}; + +enum iwl_rx_phy_eht_data1 { + IWL_RX_PHY_DATA1_EHT_MU_NUM_SIG_SYM_USIGA2 = 31, + IWL_RX_PHY_DATA1_EHT_TB_PILOT_TYPE = 1, + IWL_RX_PHY_DATA1_EHT_TB_LOW_SS = 30, + IWL_RX_PHY_DATA1_EHT_SIG_LTF_NUM = 224, + IWL_RX_PHY_DATA1_EHT_RU_ALLOC_B0 = 256, + IWL_RX_PHY_DATA1_EHT_RU_ALLOC_B1_B7 = 65024, +}; + +enum nl80211_eht_ru_alloc { + NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0, + NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 1, + NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 2, + NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 3, + NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 4, + NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 5, + NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 6, + NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 7, + NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 8, + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 9, + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 10, + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 11, + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 12, + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 13, + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 14, + NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 15, +}; + +enum ieee80211_radiotap_eht_usig_tb { + IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD = 31, + IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE = 192, + IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE = 256, + IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1 = 7680, + IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2 = 122880, + IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD = 4063232, + IEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC = 62914560, + IEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL = 4227858432, +}; + +enum iwl_rx_phy_data5 { + IWL_RX_PHY_DATA5_EHT_TYPE_AND_COMP = 3, + IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE1 = 60, + IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE2 = 960, + IWL_RX_PHY_DATA5_EHT_MU_PUNC_CH_CODE = 124, + IWL_RX_PHY_DATA5_EHT_MU_STA_ID_USR = 262016, + IWL_RX_PHY_DATA5_EHT_MU_NUM_USR_NON_OFDMA = 1835008, + IWL_RX_PHY_DATA5_EHT_MU_SPATIAL_CONF_USR_FIELD = 266338304, +}; + +enum iwl_rx_usig_a2_eht { + IWL_RX_USIG_A2_EHT_PPDU_TYPE = 3, + IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B2 = 4, + IWL_RX_USIG_A2_EHT_PUNC_CHANNEL = 248, + IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B8 = 256, + IWL_RX_USIG_A2_EHT_SIG_MCS = 1536, + IWL_RX_USIG_A2_EHT_SIG_SYM_NUM = 63488, + IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_1 = 983040, + IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_2 = 15728640, + IWL_RX_USIG_A2_EHT_TRIG_USIG2_DISREGARD = 520093696, + IWL_RX_USIG_A2_EHT_CRC_OK = 1073741824, + IWL_RX_USIG_A2_EHT_RDY = 2147483648, +}; + +enum ieee80211_radiotap_eht_usig_mu { + IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD = 31, + IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE = 32, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE = 192, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE = 256, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO = 15872, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE = 16384, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS = 98304, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS = 4063232, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC = 62914560, + IEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL = 4227858432, +}; + +enum iwl_rx_phy_eht_data4 { + IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D1 = 511, + IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D2 = 261632, + IWL_RX_PHY_DATA4_EHT_MU_EXT_SIGB_MCS = 786432, + IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_B2 = 535822336, +}; + +enum iwl_rx_phy_eht_data2 { + IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A1 = 511, + IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A2 = 261632, + IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_B1 = 133955584, + IWL_RX_PHY_DATA2_EHT_TB_EXT_TRIG_SIGA1 = 4294967295, +}; + +enum iwl_rx_phy_eht_data3 { + IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C1 = 261632, + IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C2 = 133955584, +}; + +enum iwl_fw_dbg_trigger_vif_type { + IWL_FW_DBG_CONF_VIF_ANY = 0, + IWL_FW_DBG_CONF_VIF_IBSS = 1, + IWL_FW_DBG_CONF_VIF_STATION = 2, + IWL_FW_DBG_CONF_VIF_AP = 3, + IWL_FW_DBG_CONF_VIF_P2P_CLIENT = 8, + IWL_FW_DBG_CONF_VIF_P2P_GO = 9, + IWL_FW_DBG_CONF_VIF_P2P_DEVICE = 10, +}; + +enum iwl_fw_dbg_trigger_mode { + IWL_FW_DBG_TRIGGER_START = 1, + IWL_FW_DBG_TRIGGER_STOP = 2, + IWL_FW_DBG_TRIGGER_MONITOR_ONLY = 4, +}; + +enum iwl_rx_l3l4_flags { + IWL_RX_L3L4_IP_HDR_CSUM_OK = 1, + IWL_RX_L3L4_TCP_UDP_CSUM_OK = 2, + IWL_RX_L3L4_TCP_FIN_SYN_RST_PSH = 4, + IWL_RX_L3L4_TCP_ACK = 8, + IWL_RX_L3L4_L3_PROTO_MASK = 240, + IWL_RX_L3L4_L4_PROTO_MASK = 3840, + IWL_RX_L3L4_RSS_HASH_MASK = 61440, }; enum { - IWL_RATE_1M_INDEX = 0, - IWL_RATE_2M_INDEX = 1, - IWL_RATE_5M_INDEX = 2, - IWL_RATE_11M_INDEX = 3, - IWL_RATE_6M_INDEX = 4, - IWL_RATE_9M_INDEX = 5, - IWL_RATE_12M_INDEX = 6, - IWL_RATE_18M_INDEX = 7, - IWL_RATE_24M_INDEX = 8, - IWL_RATE_36M_INDEX = 9, - IWL_RATE_48M_INDEX = 10, - IWL_RATE_54M_INDEX = 11, - IWL_RATE_60M_INDEX = 12, - IWL_RATE_COUNT = 13, - IWL_RATE_COUNT_LEGACY = 12, - IWL_RATE_INVM_INDEX = 13, - IWL_RATE_INVALID = 13, + NETIF_F_SG_BIT = 0, + NETIF_F_IP_CSUM_BIT = 1, + __UNUSED_NETIF_F_1 = 2, + NETIF_F_HW_CSUM_BIT = 3, + NETIF_F_IPV6_CSUM_BIT = 4, + NETIF_F_HIGHDMA_BIT = 5, + NETIF_F_FRAGLIST_BIT = 6, + NETIF_F_HW_VLAN_CTAG_TX_BIT = 7, + NETIF_F_HW_VLAN_CTAG_RX_BIT = 8, + NETIF_F_HW_VLAN_CTAG_FILTER_BIT = 9, + NETIF_F_VLAN_CHALLENGED_BIT = 10, + NETIF_F_GSO_BIT = 11, + NETIF_F_LLTX_BIT = 12, + NETIF_F_NETNS_LOCAL_BIT = 13, + NETIF_F_GRO_BIT = 14, + NETIF_F_LRO_BIT = 15, + NETIF_F_GSO_SHIFT = 16, + NETIF_F_TSO_BIT = 16, + NETIF_F_GSO_ROBUST_BIT = 17, + NETIF_F_TSO_ECN_BIT = 18, + NETIF_F_TSO_MANGLEID_BIT = 19, + NETIF_F_TSO6_BIT = 20, + NETIF_F_FSO_BIT = 21, + NETIF_F_GSO_GRE_BIT = 22, + NETIF_F_GSO_GRE_CSUM_BIT = 23, + NETIF_F_GSO_IPXIP4_BIT = 24, + NETIF_F_GSO_IPXIP6_BIT = 25, + NETIF_F_GSO_UDP_TUNNEL_BIT = 26, + NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT = 27, + NETIF_F_GSO_PARTIAL_BIT = 28, + NETIF_F_GSO_TUNNEL_REMCSUM_BIT = 29, + NETIF_F_GSO_SCTP_BIT = 30, + NETIF_F_GSO_ESP_BIT = 31, + NETIF_F_GSO_UDP_BIT = 32, + NETIF_F_GSO_UDP_L4_BIT = 33, + NETIF_F_GSO_FRAGLIST_BIT = 34, + NETIF_F_GSO_LAST = 34, + NETIF_F_FCOE_CRC_BIT = 35, + NETIF_F_SCTP_CRC_BIT = 36, + NETIF_F_FCOE_MTU_BIT = 37, + NETIF_F_NTUPLE_BIT = 38, + NETIF_F_RXHASH_BIT = 39, + NETIF_F_RXCSUM_BIT = 40, + NETIF_F_NOCACHE_COPY_BIT = 41, + NETIF_F_LOOPBACK_BIT = 42, + NETIF_F_RXFCS_BIT = 43, + NETIF_F_RXALL_BIT = 44, + NETIF_F_HW_VLAN_STAG_TX_BIT = 45, + NETIF_F_HW_VLAN_STAG_RX_BIT = 46, + NETIF_F_HW_VLAN_STAG_FILTER_BIT = 47, + NETIF_F_HW_L2FW_DOFFLOAD_BIT = 48, + NETIF_F_HW_TC_BIT = 49, + NETIF_F_HW_ESP_BIT = 50, + NETIF_F_HW_ESP_TX_CSUM_BIT = 51, + NETIF_F_RX_UDP_TUNNEL_PORT_BIT = 52, + NETIF_F_HW_TLS_TX_BIT = 53, + NETIF_F_HW_TLS_RX_BIT = 54, + NETIF_F_GRO_HW_BIT = 55, + NETIF_F_HW_TLS_RECORD_BIT = 56, + NETIF_F_GRO_FRAGLIST_BIT = 57, + NETIF_F_HW_MACSEC_BIT = 58, + NETIF_F_GRO_UDP_FWD_BIT = 59, + NETIF_F_HW_HSR_TAG_INS_BIT = 60, + NETIF_F_HW_HSR_TAG_RM_BIT = 61, + NETIF_F_HW_HSR_FWD_BIT = 62, + NETIF_F_HW_HSR_DUP_BIT = 63, + NETDEV_FEATURE_COUNT = 64, }; -enum { - IWL_FIRST_OFDM_RATE = 4, - IWL_LAST_OFDM_RATE = 12, - IWL_FIRST_CCK_RATE = 0, - IWL_LAST_CCK_RATE = 3, +enum iwl_rx_l3_proto_values { + IWL_RX_L3_TYPE_NONE = 0, + IWL_RX_L3_TYPE_IPV4 = 1, + IWL_RX_L3_TYPE_IPV4_FRAG = 2, + IWL_RX_L3_TYPE_IPV6_FRAG = 3, + IWL_RX_L3_TYPE_IPV6 = 4, + IWL_RX_L3_TYPE_IPV6_IN_IPV4 = 5, + IWL_RX_L3_TYPE_ARP = 6, + IWL_RX_L3_TYPE_EAPOL = 7, }; -struct iwl_rate_scale_data { - u64 data; - s32 success_counter; - s32 success_ratio; - s32 counter; - s32 average_tpt; - unsigned long stamp; +enum tk_offsets { + TK_OFFS_REAL = 0, + TK_OFFS_BOOT = 1, + TK_OFFS_TAI = 2, + TK_OFFS_MAX = 3, }; -struct iwl_scale_tbl_info { - enum iwl_table_type lq_type; - u8 ant_type; - u8 is_SGI; - u8 is_ht40; - u8 is_dup; - u8 action; - u8 max_search; - const u16 *expected_tpt; - u32 current_rate; - struct iwl_rate_scale_data win[13]; +enum iwl_rx_mpdu_mac_flags1 { + IWL_RX_MDPU_MFLG1_ADDRTYPE_MASK = 3, + IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_MASK = 240, + IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_SHIFT = 3, }; -struct iwl_traffic_load { - unsigned long time_stamp; - u32 packet_count[20]; - u32 total; - u8 queue_count; - u8 head; +enum ieee80211_hw_flags { + IEEE80211_HW_HAS_RATE_CONTROL = 0, + IEEE80211_HW_RX_INCLUDES_FCS = 1, + IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 2, + IEEE80211_HW_SIGNAL_UNSPEC = 3, + IEEE80211_HW_SIGNAL_DBM = 4, + IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC = 5, + IEEE80211_HW_SPECTRUM_MGMT = 6, + IEEE80211_HW_AMPDU_AGGREGATION = 7, + IEEE80211_HW_SUPPORTS_PS = 8, + IEEE80211_HW_PS_NULLFUNC_STACK = 9, + IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 10, + IEEE80211_HW_MFP_CAPABLE = 11, + IEEE80211_HW_WANT_MONITOR_VIF = 12, + IEEE80211_HW_NO_AUTO_VIF = 13, + IEEE80211_HW_SW_CRYPTO_CONTROL = 14, + IEEE80211_HW_SUPPORT_FAST_XMIT = 15, + IEEE80211_HW_REPORTS_TX_ACK_STATUS = 16, + IEEE80211_HW_CONNECTION_MONITOR = 17, + IEEE80211_HW_QUEUE_CONTROL = 18, + IEEE80211_HW_SUPPORTS_PER_STA_GTK = 19, + IEEE80211_HW_AP_LINK_PS = 20, + IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 21, + IEEE80211_HW_SUPPORTS_RC_TABLE = 22, + IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 23, + IEEE80211_HW_TIMING_BEACON_ONLY = 24, + IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 25, + IEEE80211_HW_CHANCTX_STA_CSA = 26, + IEEE80211_HW_SUPPORTS_CLONED_SKBS = 27, + IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS = 28, + IEEE80211_HW_TDLS_WIDER_BW = 29, + IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU = 30, + IEEE80211_HW_BEACON_TX_STATUS = 31, + IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR = 32, + IEEE80211_HW_SUPPORTS_REORDERING_BUFFER = 33, + IEEE80211_HW_USES_RSS = 34, + IEEE80211_HW_TX_AMSDU = 35, + IEEE80211_HW_TX_FRAG_LIST = 36, + IEEE80211_HW_REPORTS_LOW_ACK = 37, + IEEE80211_HW_SUPPORTS_TX_FRAG = 38, + IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA = 39, + IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP = 40, + IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP = 41, + IEEE80211_HW_BUFF_MMPDU_TXQ = 42, + IEEE80211_HW_SUPPORTS_VHT_EXT_NSS_BW = 43, + IEEE80211_HW_STA_MMPDU_TXQ = 44, + IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN = 45, + IEEE80211_HW_SUPPORTS_MULTI_BSSID = 46, + IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID = 47, + IEEE80211_HW_AMPDU_KEYBORDER_SUPPORT = 48, + IEEE80211_HW_SUPPORTS_TX_ENCAP_OFFLOAD = 49, + IEEE80211_HW_SUPPORTS_RX_DECAP_OFFLOAD = 50, + IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP = 51, + IEEE80211_HW_DETECTS_COLOR_COLLISION = 52, + IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX = 53, + IEEE80211_HW_DISALLOW_PUNCTURING = 54, + IEEE80211_HW_HANDLES_QUIET_CSA = 55, + NUM_IEEE80211_HW_FLAGS = 56, }; -struct iwl_priv; +enum pageflags { + PG_locked = 0, + PG_writeback = 1, + PG_referenced = 2, + PG_uptodate = 3, + PG_dirty = 4, + PG_lru = 5, + PG_head = 6, + PG_waiters = 7, + PG_active = 8, + PG_workingset = 9, + PG_error = 10, + PG_slab = 11, + PG_owner_priv_1 = 12, + PG_arch_1 = 13, + PG_reserved = 14, + PG_private = 15, + PG_private_2 = 16, + PG_mappedtodisk = 17, + PG_reclaim = 18, + PG_swapbacked = 19, + PG_unevictable = 20, + PG_mlocked = 21, + PG_uncached = 22, + __NR_PAGEFLAGS = 23, + PG_readahead = 18, + PG_anon_exclusive = 17, + PG_checked = 12, + PG_swapcache = 12, + PG_fscache = 16, + PG_pinned = 12, + PG_savepinned = 4, + PG_foreign = 12, + PG_xen_remapped = 12, + PG_isolated = 18, + PG_reported = 3, + PG_has_hwpoisoned = 10, + PG_hugetlb = 8, + PG_large_rmappable = 9, +}; -struct iwl_lq_sta { - u8 active_tbl; - u8 enable_counter; - u8 stay_in_tbl; - u8 search_better_tbl; - s32 last_tpt; - u32 table_count_limit; - u32 max_failure_limit; - u32 max_success_limit; - u32 table_count; - u32 total_failed; - u32 total_success; - u64 flush_timer; - u8 action_counter; - u8 is_green; - u8 is_dup; +enum ieee80211_category { + WLAN_CATEGORY_SPECTRUM_MGMT = 0, + WLAN_CATEGORY_QOS = 1, + WLAN_CATEGORY_DLS = 2, + WLAN_CATEGORY_BACK = 3, + WLAN_CATEGORY_PUBLIC = 4, + WLAN_CATEGORY_RADIO_MEASUREMENT = 5, + WLAN_CATEGORY_FAST_BBS_TRANSITION = 6, + WLAN_CATEGORY_HT = 7, + WLAN_CATEGORY_SA_QUERY = 8, + WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9, + WLAN_CATEGORY_WNM = 10, + WLAN_CATEGORY_WNM_UNPROTECTED = 11, + WLAN_CATEGORY_TDLS = 12, + WLAN_CATEGORY_MESH_ACTION = 13, + WLAN_CATEGORY_MULTIHOP_ACTION = 14, + WLAN_CATEGORY_SELF_PROTECTED = 15, + WLAN_CATEGORY_DMG = 16, + WLAN_CATEGORY_WMM = 17, + WLAN_CATEGORY_FST = 18, + WLAN_CATEGORY_UNPROT_DMG = 20, + WLAN_CATEGORY_VHT = 21, + WLAN_CATEGORY_S1G = 22, + WLAN_CATEGORY_PROTECTED_EHT = 37, + WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, + WLAN_CATEGORY_VENDOR_SPECIFIC = 127, +}; + +enum ieee80211_unprotected_wnm_actioncode { + WLAN_UNPROTECTED_WNM_ACTION_TIM = 0, + WLAN_UNPROTECTED_WNM_ACTION_TIMING_MEASUREMENT_RESPONSE = 1, +}; + +enum ieee80211_pub_actioncode { + WLAN_PUB_ACTION_20_40_BSS_COEX = 0, + WLAN_PUB_ACTION_DSE_ENABLEMENT = 1, + WLAN_PUB_ACTION_DSE_DEENABLEMENT = 2, + WLAN_PUB_ACTION_DSE_REG_LOC_ANN = 3, + WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4, + WLAN_PUB_ACTION_DSE_MSMT_REQ = 5, + WLAN_PUB_ACTION_DSE_MSMT_RESP = 6, + WLAN_PUB_ACTION_MSMT_PILOT = 7, + WLAN_PUB_ACTION_DSE_PC = 8, + WLAN_PUB_ACTION_VENDOR_SPECIFIC = 9, + WLAN_PUB_ACTION_GAS_INITIAL_REQ = 10, + WLAN_PUB_ACTION_GAS_INITIAL_RESP = 11, + WLAN_PUB_ACTION_GAS_COMEBACK_REQ = 12, + WLAN_PUB_ACTION_GAS_COMEBACK_RESP = 13, + WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14, + WLAN_PUB_ACTION_LOC_TRACK_NOTI = 15, + WLAN_PUB_ACTION_QAB_REQUEST_FRAME = 16, + WLAN_PUB_ACTION_QAB_RESPONSE_FRAME = 17, + WLAN_PUB_ACTION_QMF_POLICY = 18, + WLAN_PUB_ACTION_QMF_POLICY_CHANGE = 19, + WLAN_PUB_ACTION_QLOAD_REQUEST = 20, + WLAN_PUB_ACTION_QLOAD_REPORT = 21, + WLAN_PUB_ACTION_HCCA_TXOP_ADVERT = 22, + WLAN_PUB_ACTION_HCCA_TXOP_RESPONSE = 23, + WLAN_PUB_ACTION_PUBLIC_KEY = 24, + WLAN_PUB_ACTION_CHANNEL_AVAIL_QUERY = 25, + WLAN_PUB_ACTION_CHANNEL_SCHEDULE_MGMT = 26, + WLAN_PUB_ACTION_CONTACT_VERI_SIGNAL = 27, + WLAN_PUB_ACTION_GDD_ENABLEMENT_REQ = 28, + WLAN_PUB_ACTION_GDD_ENABLEMENT_RESP = 29, + WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30, + WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31, + WLAN_PUB_ACTION_FTM_REQUEST = 32, + WLAN_PUB_ACTION_FTM_RESPONSE = 33, + WLAN_PUB_ACTION_FILS_DISCOVERY = 34, +}; + +struct ieee80211_sta_aggregates { + u16 max_amsdu_len; + u16 max_rc_amsdu_len; + u16 max_tid_amsdu_len[16]; +}; + +struct ieee80211_sta_txpwr { + s16 power; + enum nl80211_tx_power_setting type; +}; + +struct ieee80211_sta; + +struct ieee80211_link_sta { + struct ieee80211_sta *sta; + u8 addr[6]; + u8 link_id; + long: 0; + enum ieee80211_smps_mode smps_mode; + u32 supp_rates[6]; + struct ieee80211_sta_ht_cap ht_cap; int: 0; - enum nl80211_band band; - u32 supp_rates; - u16 active_legacy_rate; - u16 active_siso_rate; - u16 active_mimo2_rate; - u16 active_mimo3_rate; - s8 max_rate_idx; - u8 missed_rate_counter; - struct iwl_link_quality_cmd lq; + struct ieee80211_sta_vht_cap vht_cap; + struct ieee80211_sta_he_cap he_cap; + struct ieee80211_he_6ghz_capa he_6ghz_capa; + struct ieee80211_sta_eht_cap eht_cap; + struct ieee80211_sta_aggregates agg; + u8 rx_nss; long: 0; - struct iwl_scale_tbl_info lq_info[2]; - struct iwl_traffic_load load[8]; - u8 tx_agg_tid_en; - long: 0; - struct iwl_priv *drv; - int last_txrate_idx; - u32 last_rate_n_flags; - u8 is_agg; - u8 last_bt_traffic; + enum ieee80211_sta_rx_bandwidth bandwidth; + struct ieee80211_sta_txpwr txpwr; long: 0; } __attribute__((packed)); -struct iwl_rxon_context; +struct ieee80211_sta_rates; -struct iwl_station_priv { - struct iwl_rxon_context *ctx; - struct iwl_lq_sta lq_sta; - atomic_t pending_frames; - bool client; - bool asleep; - u8 max_agg_bufsize; - u8 sta_id; +struct ieee80211_txq; + +struct ieee80211_sta { + u8 addr[6]; + u16 aid; + u16 max_rx_aggregation_subframes; + bool wme; + u8 uapsd_queues; + u8 max_sp; + struct ieee80211_sta_rates __attribute__((btf_type_tag("rcu"))) *rates; + bool tdls; + bool tdls_initiator; + bool mfp; + bool mlo; + bool spp_amsdu; + u8 max_amsdu_subframes; + struct ieee80211_sta_aggregates *cur; + bool support_p2p_ps; + struct ieee80211_txq *txq[17]; + u16 valid_links; + long: 0; + struct ieee80211_link_sta deflink; + struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *link[15]; + u8 drv_priv[0]; }; -struct iwl_rxon_cmd { - u8 node_addr[6]; - __le16 reserved1; - u8 bssid_addr[6]; - __le16 reserved2; - u8 wlap_bssid_addr[6]; - __le16 reserved3; - u8 dev_type; - u8 air_propagation; - __le16 rx_chain; - u8 ofdm_basic_rates; - u8 cck_basic_rates; - __le16 assoc_id; - __le32 flags; - __le32 filter_flags; - __le16 channel; - u8 ofdm_ht_single_stream_basic_rates; - u8 ofdm_ht_dual_stream_basic_rates; - u8 ofdm_ht_triple_stream_basic_rates; - u8 reserved5; - __le16 acquisition_data; - __le16 reserved6; -} __attribute__((packed)); - -struct iwl_rxon_time_cmd { - __le64 timestamp; - __le16 beacon_interval; - __le16 atim_window; - __le32 beacon_init_val; - __le16 listen_interval; - u8 dtim_period; - u8 delta_cp_bss_tbtts; -} __attribute__((packed)); - -struct iwl_ac_qos { - __le16 cw_min; - __le16 cw_max; - u8 aifsn; - u8 reserved1; - __le16 edca_txop; -}; - -struct iwl_qosparam_cmd { - __le32 qos_flags; - struct iwl_ac_qos ac[4]; -}; - -struct iwl_qos_info { - int qos_active; - struct iwl_qosparam_cmd def_qos_parm; -}; - -struct iwl_wep_key { - u8 key_index; - u8 key_offset; - u8 reserved1[2]; - u8 key_size; - u8 reserved2[3]; - u8 key[16]; +struct ieee80211_sta_rates { + struct callback_head callback_head; + struct { + s8 idx; + u8 count; + u8 count_cts; + u8 count_rts; + u16 flags; + } rate[4]; }; struct ieee80211_vif; -struct iwl_rxon_context { +struct ieee80211_txq { struct ieee80211_vif *vif; - u8 mcast_queue; - u8 ac_to_queue[4]; - u8 ac_to_fifo[4]; - bool always_active; - bool is_active; - bool ht_need_multiple_chains; - enum iwl_rxon_context_id ctxid; - u32 interface_modes; - u32 exclusive_interface_modes; - u8 unused_devtype; - u8 ap_devtype; - u8 ibss_devtype; - u8 station_devtype; - const struct iwl_rxon_cmd active; - struct iwl_rxon_cmd staging; - struct iwl_rxon_time_cmd timing; - struct iwl_qos_info qos_data; - u8 bcast_sta_id; - u8 ap_sta_id; - u8 rxon_cmd; - u8 rxon_assoc_cmd; - u8 rxon_timing_cmd; - u8 qos_cmd; - u8 wep_key_cmd; - struct iwl_wep_key wep_keys[4]; - u8 key_mapping_keys; - __le32 station_flags; - int beacon_int; - struct { - bool non_gf_sta_present; - u8 protection; - bool enabled; - bool is_40mhz; - u8 extension_chan_offset; - } ht; + struct ieee80211_sta *sta; + u8 tid; + u8 ac; + long: 0; + u8 drv_priv[0]; }; struct ieee80211_vif_cfg { @@ -21665,8 +24184,6 @@ struct ieee80211_neg_ttlm { bool valid; }; -struct ieee80211_txq; - struct ieee80211_vif { enum nl80211_iftype type; struct ieee80211_vif_cfg cfg; @@ -21741,116 +24258,88 @@ struct ieee80211_chanctx_conf { u8 drv_priv[0]; }; -struct ieee80211_sta; +struct iwl_mvm; -struct ieee80211_txq { - struct ieee80211_vif *vif; - struct ieee80211_sta *sta; - u8 tid; - u8 ac; - long: 0; - u8 drv_priv[0]; +struct iwl_mvm_reorder_buffer { + u16 head_sn; + u16 num_stored; + u16 buf_size; + int queue; + u16 last_amsdu; + u8 last_sub_index; + bool valid; + spinlock_t lock; + struct iwl_mvm *mvm; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct ieee80211_sta_aggregates { - u16 max_amsdu_len; - u16 max_rc_amsdu_len; - u16 max_tid_amsdu_len[16]; +struct iwl_mvm_reorder_buf_entry { + struct sk_buff_head frames; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct ieee80211_sta_txpwr { - s16 power; - enum nl80211_tx_power_setting type; -}; - -struct ieee80211_link_sta { - struct ieee80211_sta *sta; - u8 addr[6]; - u8 link_id; - long: 0; - enum ieee80211_smps_mode smps_mode; - u32 supp_rates[6]; - struct ieee80211_sta_ht_cap ht_cap; - int: 0; - struct ieee80211_sta_vht_cap vht_cap; - struct ieee80211_sta_he_cap he_cap; - struct ieee80211_he_6ghz_capa he_6ghz_capa; - struct ieee80211_sta_eht_cap eht_cap; - struct ieee80211_sta_aggregates agg; - u8 rx_nss; - long: 0; - enum ieee80211_sta_rx_bandwidth bandwidth; - struct ieee80211_sta_txpwr txpwr; - long: 0; -} __attribute__((packed)); - -struct ieee80211_sta_rates; - -struct ieee80211_sta { - u8 addr[6]; - u16 aid; - u16 max_rx_aggregation_subframes; - bool wme; - u8 uapsd_queues; - u8 max_sp; - struct ieee80211_sta_rates __attribute__((btf_type_tag("rcu"))) *rates; - bool tdls; - bool tdls_initiator; - bool mfp; - bool mlo; - bool spp_amsdu; - u8 max_amsdu_subframes; - struct ieee80211_sta_aggregates *cur; - bool support_p2p_ps; - struct ieee80211_txq *txq[17]; - u16 valid_links; - long: 0; - struct ieee80211_link_sta deflink; - struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *link[15]; - u8 drv_priv[0]; -}; - -struct ieee80211_sta_rates { +struct iwl_mvm_baid_data { struct callback_head callback_head; - struct { - s8 idx; - u8 count; - u8 count_cts; - u8 count_rts; - u16 flags; - } rate[4]; + u32 sta_mask; + u8 tid; + u8 baid; + u16 timeout; + u16 entries_per_queue; + unsigned long last_rx; + struct timer_list session_timer; + struct iwl_mvm_baid_data __attribute__((btf_type_tag("rcu"))) **rcu_ptr; + struct iwl_mvm *mvm; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct iwl_mvm_reorder_buffer reorder_buf[16]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct iwl_mvm_reorder_buf_entry entries[0]; }; -struct statistics_dbg { - __le32 burst_check; - __le32 burst_count; - __le32 wait_for_silence_timeout_cnt; - __le32 reserved[3]; +struct mvm_statistics_rx_phy_v2 { + __le32 ina_cnt; + __le32 fina_cnt; + __le32 plcp_err; + __le32 crc32_err; + __le32 overrun_err; + __le32 early_overrun_err; + __le32 crc32_good; + __le32 false_alarm_cnt; + __le32 fina_sync_err_cnt; + __le32 sfd_timeout; + __le32 fina_timeout; + __le32 unresponded_rts; + __le32 rxe_frame_lmt_overrun; + __le32 sent_ack_cnt; + __le32 sent_cts_cnt; + __le32 sent_ba_rsp_cnt; + __le32 dsp_self_kill; + __le32 mh_format_err; + __le32 re_acq_main_rssi_sum; + __le32 reserved; }; -struct statistics_div { - __le32 tx_on_a; - __le32 tx_on_b; - __le32 exec_time; - __le32 probe_time; - __le32 reserved1; - __le32 reserved2; -}; - -struct statistics_general_common { - __le32 temperature; - __le32 temperature_m; - struct statistics_dbg dbg; - __le32 sleep_time; - __le32 slots_out; - __le32 slots_idle; - __le32 ttl_timestamp; - struct statistics_div div; - __le32 rx_enable_counter; - __le32 num_of_sos_states; -}; - -struct statistics_rx_non_phy { +struct mvm_statistics_rx_non_phy_v3 { __le32 bogus_cts; __le32 bogus_ack; __le32 non_bssid_frames; @@ -21872,32 +24361,12 @@ struct statistics_rx_non_phy { __le32 beacon_energy_a; __le32 beacon_energy_b; __le32 beacon_energy_c; + __le32 num_bt_kills; + __le32 mac_id; + __le32 directed_data_mpdu; }; -struct statistics_rx_phy { - __le32 ina_cnt; - __le32 fina_cnt; - __le32 plcp_err; - __le32 crc32_err; - __le32 overrun_err; - __le32 early_overrun_err; - __le32 crc32_good; - __le32 false_alarm_cnt; - __le32 fina_sync_err_cnt; - __le32 sfd_timeout; - __le32 fina_timeout; - __le32 unresponded_rts; - __le32 rxe_frame_limit_overrun; - __le32 sent_ack_cnt; - __le32 sent_cts_cnt; - __le32 sent_ba_rsp_cnt; - __le32 dsp_self_kill; - __le32 mh_format_err; - __le32 re_acq_main_rssi_sum; - __le32 reserved3; -}; - -struct statistics_rx_ht_phy { +struct mvm_statistics_rx_ht_phy_v1 { __le32 plcp_err; __le32 overrun_err; __le32 early_overrun_err; @@ -21910,55 +24379,71 @@ struct statistics_rx_ht_phy { __le32 unsupport_mcs; }; -struct statistics_tx_non_phy_agg { - __le32 ba_timeout; - __le32 ba_reschedule_frames; - __le32 scd_query_agg_frame_cnt; - __le32 scd_query_no_agg; - __le32 scd_query_agg; - __le32 scd_query_mismatch; - __le32 frame_not_ready; - __le32 underrun; - __le32 bt_prio_kill; - __le32 rx_ba_rsp_cnt; +struct mvm_statistics_rx_v3 { + struct mvm_statistics_rx_phy_v2 ofdm; + struct mvm_statistics_rx_phy_v2 cck; + struct mvm_statistics_rx_non_phy_v3 general; + struct mvm_statistics_rx_ht_phy_v1 ofdm_ht; }; -struct statistics_tx_power { - u8 ant_a; - u8 ant_b; - u8 ant_c; - u8 reserved; +struct mvm_statistics_rx_phy { + __le32 unresponded_rts; + __le32 rxe_frame_lmt_overrun; + __le32 sent_ba_rsp_cnt; + __le32 dsp_self_kill; + __le32 reserved; }; -struct statistics_tx { - __le32 preamble_cnt; - __le32 rx_detected_cnt; - __le32 bt_prio_defer_cnt; - __le32 bt_prio_kill_cnt; - __le32 few_bytes_cnt; - __le32 cts_timeout; - __le32 ack_timeout; - __le32 expected_ack_cnt; - __le32 actual_ack_cnt; - __le32 dump_msdu_cnt; - __le32 burst_abort_next_frame_mismatch_cnt; - __le32 burst_abort_missing_next_frame_cnt; - __le32 cts_timeout_collision; - __le32 ack_or_ba_timeout_collision; - struct statistics_tx_non_phy_agg agg; - struct statistics_tx_power tx_power; - __le32 reserved1; +struct mvm_statistics_rx_non_phy { + __le32 bogus_cts; + __le32 bogus_ack; + __le32 non_channel_beacons; + __le32 channel_beacons; + __le32 num_missed_bcon; + __le32 adc_rx_saturation_time; + __le32 ina_detection_search_time; + __le32 beacon_silence_rssi_a; + __le32 beacon_silence_rssi_b; + __le32 beacon_silence_rssi_c; + __le32 interference_data_flag; + __le32 channel_load; + __le32 beacon_rssi_a; + __le32 beacon_rssi_b; + __le32 beacon_rssi_c; + __le32 beacon_energy_a; + __le32 beacon_energy_b; + __le32 beacon_energy_c; + __le32 num_bt_kills; + __le32 mac_id; }; -struct iwl_sensitivity_ranges; +struct mvm_statistics_rx_ht_phy { + __le32 mh_format_err; + __le32 agg_mpdu_cnt; + __le32 agg_cnt; + __le32 unsupport_mcs; +}; -struct iwl_hw_params { - u8 tx_chains_num; - u8 rx_chains_num; - bool use_rts_for_aggregation; - u32 ct_kill_threshold; - u32 ct_kill_exit_threshold; - const struct iwl_sensitivity_ranges *sens; +struct mvm_statistics_rx { + struct mvm_statistics_rx_phy ofdm; + struct mvm_statistics_rx_phy cck; + struct mvm_statistics_rx_non_phy general; + struct mvm_statistics_rx_ht_phy ofdm_ht; +}; + +struct iwl_mvm_dqa_txq_info { + u8 ra_sta_id; + bool reserved; + u8 mac80211_ac; + u8 txq_tid; + u16 tid_bitmap; + unsigned long last_frame_time[9]; + enum iwl_mvm_queue_status status; +}; + +struct iwl_mvm_tvqm_txq_info { + u8 sta_id; + u8 txq_tid; }; struct iwl_notif_wait_data { @@ -21967,406 +24452,597 @@ struct iwl_notif_wait_data { wait_queue_head_t notif_waitq; }; -struct iwl_measurement_histogram { - __le32 ofdm[8]; - __le32 cck[8]; +struct iwl_nvm_section { + u16 length; + const u8 *data; }; -struct iwl_spectrum_notification { - u8 id; - u8 token; - u8 channel_index; - u8 state; - __le32 start_time; - u8 band; - u8 channel; - u8 type; - u8 reserved1; - __le32 cca_ofdm; - __le32 cca_cck; - __le32 cca_time; - u8 basic_type; - u8 reserved2[3]; - struct iwl_measurement_histogram histogram; - __le32 stop_time; - __le32 status; +struct iwl_fw_paging { + dma_addr_t fw_paging_phys; + struct page *fw_paging_block; + u32 fw_paging_size; + u32 fw_offs; }; -struct iwl_rf_reset { - int reset_request_count; - int reset_success_count; - int reset_reject_count; - unsigned long last_reset_jiffies; +struct iwl_fwrt_shared_mem_cfg { + int num_lmacs; + int num_txfifo_entries; + struct { + u32 txfifo_size[15]; + u32 rxfifo1_size; + } lmac[2]; + u32 rxfifo2_size; + u32 rxfifo2_control_size; + u32 internal_txfifo_addr; + u32 internal_txfifo_size[6]; }; -struct iwl_sensitivity_data { - u32 auto_corr_ofdm; - u32 auto_corr_ofdm_mrc; - u32 auto_corr_ofdm_x1; - u32 auto_corr_ofdm_mrc_x1; - u32 auto_corr_cck; - u32 auto_corr_cck_mrc; - u32 last_bad_plcp_cnt_ofdm; - u32 last_fa_cnt_ofdm; - u32 last_bad_plcp_cnt_cck; - u32 last_fa_cnt_cck; - u32 nrg_curr_state; - u32 nrg_prev_state; - u32 nrg_value[10]; - u8 nrg_silence_rssi[20]; - u32 nrg_silence_ref; - u32 nrg_energy_idx; - u32 nrg_silence_idx; - u32 nrg_th_cck; - s32 nrg_auto_corr_silence_diff; - u32 num_in_cck_no_fa; - u32 nrg_th_ofdm; - u16 barker_corr_th_min; - u16 barker_corr_th_min_mrc; - u16 nrg_th_cca; +struct iwl_fw_ini_trigger_tlv; + +struct iwl_rx_packet; + +struct iwl_fw_dump_desc; + +struct iwl_fwrt_dump_data { + union { + struct { + struct iwl_fw_ini_trigger_tlv *trig; + struct iwl_rx_packet *fw_pkt; + }; + struct { + const struct iwl_fw_dump_desc *desc; + bool monitor_only; + }; + }; }; -struct iwl_chain_noise_data { - u32 active_chains; - u32 chain_noise_a; - u32 chain_noise_b; - u32 chain_noise_c; - u32 chain_signal_a; - u32 chain_signal_b; - u32 chain_signal_c; - u16 beacon_count; - u8 disconn_array[3]; - u8 delta_gain_code[3]; - u8 radio_write; - u8 state; +struct iwl_fwrt_wk_data { + u8 idx; + struct delayed_work wk; + struct iwl_fwrt_dump_data dump_data; }; -struct iwl_ht_config { - bool single_chain_sufficient; - enum ieee80211_smps_mode smps; +struct iwl_txf_iter_data { + int fifo; + int lmac; + u32 fifo_size; + u8 internal_txf; }; -struct iwl_powertable_cmd { - __le16 flags; - u8 keep_alive_seconds; - u8 debug_flags; - __le32 rx_data_timeout; - __le32 tx_data_timeout; - __le32 sleep_interval[5]; - __le32 keep_alive_beacons; +struct iwl_sar_profile_chain { + u8 subbands[11]; }; -struct iwl_power_mgr { - struct iwl_powertable_cmd sleep_cmd; - struct iwl_powertable_cmd sleep_cmd_next; - int debug_sleep_level_override; - bool bus_pm; +struct iwl_sar_profile { + bool enabled; + struct iwl_sar_profile_chain chains[4]; }; -struct iwl_tt_restriction; - -struct iwl_tt_trans; - -struct iwl_tt_mgmt { - enum iwl_tt_state state; - bool advanced_tt; - u8 tt_power_mode; - bool ct_kill_toggle; - struct iwl_tt_restriction *restriction; - struct iwl_tt_trans *transaction; - struct timer_list ct_kill_exit_tm; - struct timer_list ct_kill_waiting_tm; +struct iwl_geo_profile_band { + u8 max; + u8 chains[2]; }; -struct sta_id_modify { - u8 addr[6]; - __le16 reserved1; - u8 sta_id; - u8 modify_mask; - __le16 reserved2; +struct iwl_geo_profile { + struct iwl_geo_profile_band bands[3]; }; -struct iwl_keyinfo { - __le16 key_flags; - u8 tkip_rx_tsc_byte2; - u8 reserved1; - __le16 tkip_rx_ttak[5]; - u8 key_offset; - u8 reserved2; - u8 key[16]; - __le64 tx_secur_seq_cnt; - __le64 hw_tkip_mic_rx_key; - __le64 hw_tkip_mic_tx_key; +struct iwl_ppag_chain { + s8 subbands[11]; }; -struct iwl_addsta_cmd { - u8 mode; - u8 reserved[3]; - struct sta_id_modify sta; - struct iwl_keyinfo key; - __le32 station_flags; - __le32 station_flags_msk; - __le16 tid_disable_tx; - __le16 legacy_reserved; - u8 add_immediate_ba_tid; - u8 remove_immediate_ba_tid; - __le16 add_immediate_ba_ssn; - __le16 sleep_tx_count; - __le16 reserved2; -} __attribute__((packed)); - -struct iwl_station_entry { - struct iwl_addsta_cmd sta; - u8 used; - u8 ctxid; - struct iwl_link_quality_cmd *lq; +struct iwl_sar_offset_mapping_cmd { + u8 offset_map[338]; + __le16 reserved; }; -struct iwl_ht_agg { - u32 rate_n_flags; - enum iwl_agg_state state; - u16 txq_id; - u16 ssn; - bool wait_for_ba; -}; - -struct iwl_tid_data { - u16 seq_number; - u16 next_reclaimed; - struct iwl_ht_agg agg; -}; - -struct iwl_rx_phy_res { - u8 non_cfg_phy_cnt; - u8 cfg_phy_cnt; - u8 stat_id; - u8 reserved1; - __le64 timestamp; - __le32 beacon_time_stamp; - __le16 phy_flags; - __le16 channel; - u8 non_cfg_phy_buf[32]; - __le32 rate_n_flags; - __le16 byte_count; - __le16 frame_time; -} __attribute__((packed)); - -struct reply_tx_error_statistics { - u32 pp_delay; - u32 pp_few_bytes; - u32 pp_bt_prio; - u32 pp_quiet_period; - u32 pp_calc_ttak; - u32 int_crossed_retry; - u32 short_limit; - u32 long_limit; - u32 fifo_underrun; - u32 drain_flow; - u32 rfkill_flush; - u32 life_expire; - u32 dest_ps; - u32 host_abort; - u32 bt_retry; - u32 sta_invalid; - u32 frag_drop; - u32 tid_disable; - u32 fifo_flush; - u32 insuff_cf_poll; - u32 fail_hw_drop; - u32 sta_color_mismatch; - u32 unknown; -}; - -struct reply_agg_tx_error_statistics { - u32 underrun; - u32 bt_prio; - u32 few_bytes; - u32 abort; - u32 last_sent_ttl; - u32 last_sent_try; - u32 last_sent_bt_kill; - u32 scd_query; - u32 bad_crc32; - u32 response; - u32 dump_tx; - u32 delay_tx; - u32 unknown; -}; - -struct iwl_event_log { - bool ucode_trace; - u32 num_wraps; - u32 next_entry; - int non_wraps_count; - int wraps_once_count; - int wraps_more_count; +struct iwl_uats_table_cmd { + u8 offset_map[338]; + __le16 reserved; }; struct iwl_trans; -struct iwl_cfg; - struct iwl_fw; -struct iwl_dvm_cfg; +struct iwl_fw_runtime_ops; + +struct iwl_dump_sanitize_ops; + +struct iwl_fw_runtime { + struct iwl_trans *trans; + const struct iwl_fw *fw; + struct device *dev; + const struct iwl_fw_runtime_ops *ops; + void *ops_ctx; + const struct iwl_dump_sanitize_ops *sanitize_ops; + void *sanitize_ctx; + struct iwl_fw_paging fw_paging_db[33]; + u16 num_of_paging_blk; + u16 num_of_pages_in_last_blk; + enum iwl_ucode_type cur_fw_img; + struct iwl_fwrt_shared_mem_cfg smem_cfg; + long: 0; + struct { + struct iwl_fwrt_wk_data wks[5]; + unsigned long active_wks; + u8 conf; + unsigned long non_collect_ts_start[27]; + u32 *d3_debug_data; + u32 lmac_err_id[2]; + u32 tcm_err_id[2]; + u32 rcm_err_id[2]; + u32 umac_err_id; + struct iwl_txf_iter_data txf_iter_data; + struct { + u8 type; + u8 subtype; + u32 lmac_major; + u32 lmac_minor; + u32 umac_major; + u32 umac_minor; + } fw_ver; + } dump; + struct { + u64 seq; + } timestamp; + struct iwl_sar_profile sar_profiles[4]; + u8 sar_chain_a_profile; + u8 sar_chain_b_profile; + u8 reduced_power_flags; + struct iwl_geo_profile geo_profiles[8]; + long: 0; + u32 geo_rev; + u32 geo_num_profiles; + bool geo_enabled; + struct iwl_ppag_chain ppag_chains[2]; + long: 0; + u32 ppag_flags; + u8 ppag_ver; + struct iwl_sar_offset_mapping_cmd sgom_table; + bool sgom_enabled; + struct iwl_uats_table_cmd uats_table; + u8 uefi_tables_lock_status; + bool uats_enabled; +} __attribute__((packed)); + +struct iwl_rx_phy_info { + u8 non_cfg_phy_cnt; + u8 cfg_phy_cnt; + u8 stat_id; + u8 reserved1; + __le32 system_timestamp; + __le64 timestamp; + __le32 beacon_time_stamp; + __le16 phy_flags; + __le16 channel; + __le32 non_cfg_phy[8]; + __le32 rate_n_flags; + __le32 byte_count; + u8 mac_active_msk; + u8 mac_context_info; + __le16 frame_time; +} __attribute__((packed)); + +struct iwl_mvm_int_sta { + u32 sta_id; + u8 type; + u32 tfd_queue_msk; +}; + +struct iwl_mvm_phy_ctxt { + u16 id; + u16 color; + u32 ref; + enum nl80211_chan_width width; + struct ieee80211_channel *channel; + u32 center_freq1; + bool rlc_disabled; + u32 channel_load_by_us; +}; + +struct ieee80211_scan_ies { + const u8 *ies[6]; + size_t len[6]; + const u8 *common_ies; + size_t common_ie_len; +}; + +struct iwl_bt_coex_profile_notif { + __le32 mbox_msg[4]; + __le32 msg_idx; + __le32 bt_ci_compliance; + __le32 primary_ch_lut; + __le32 secondary_ch_lut; + __le32 bt_activity_grading; + u8 ttc_status; + u8 rrc_status; + u8 wifi_loss_low_rssi; + u8 wifi_loss_mid_high_rssi; +}; + +struct iwl_bt_coex_ci_cmd { + __le64 bt_primary_ci; + __le32 primary_ch_phy_id; + __le64 bt_secondary_ci; + __le32 secondary_ch_phy_id; +} __attribute__((packed)); + +struct iwl_tt_tx_backoff { + s32 temperature; + u32 backoff; +}; + +struct iwl_tt_params { + u32 ct_kill_entry; + u32 ct_kill_exit; + u32 ct_kill_duration; + u32 dynamic_smps_entry; + u32 dynamic_smps_exit; + u32 tx_protection_entry; + u32 tx_protection_exit; + struct iwl_tt_tx_backoff tx_backoff[6]; + u8 support_ct_kill: 1; + u8 support_dynamic_smps: 1; + u8 support_tx_protection: 1; + u8 support_tx_backoff: 1; +}; + +struct iwl_mvm_tt_mgmt { + struct delayed_work ct_kill_exit; + bool dynamic_smps; + u32 tx_backoff; + u32 min_backoff; + struct iwl_tt_params params; + bool throttle; +}; + +struct thermal_trip { + int temperature; + int hysteresis; + int threshold; + enum thermal_trip_type type; + u8 flags; + void *priv; +}; + +struct thermal_zone_device; + +struct iwl_mvm_thermal_device { + struct thermal_trip trips[8]; + struct thermal_zone_device *tzone; +}; + +struct iwl_mvm_cooling_device { + u32 cur_state; + struct thermal_cooling_device *cdev; +}; + +struct ewma_rate { + unsigned long internal; +}; + +struct iwl_mvm_tcm_mac { + struct { + u32 pkts[4]; + u32 airtime; + } tx; + struct { + u32 pkts[4]; + u32 airtime; + u32 last_ampdu_ref; + } rx; + struct { + u64 rx_bytes; + struct ewma_rate rate; + bool detected; + } uapsd_nonagg_detect; + bool opened_rx_ba_sessions; +}; + +struct iwl_mvm_tcm { + struct delayed_work work; + spinlock_t lock; + unsigned long ts; + unsigned long ll_ts; + unsigned long uapsd_nonagg_ts; + bool paused; + struct iwl_mvm_tcm_mac data[4]; + struct { + u32 elapsed; + u32 airtime[4]; + enum iwl_mvm_traffic_load load[4]; + enum iwl_mvm_traffic_load band_load[6]; + enum iwl_mvm_traffic_load global_load; + bool low_latency[4]; + bool change[4]; + } result; +}; + +struct iwl_time_quota_data { + __le32 id_and_color; + __le32 quota; + __le32 max_duration; + __le32 low_latency; +}; + +struct iwl_time_quota_cmd { + struct iwl_time_quota_data quotas[4]; +}; + +struct cfg80211_ftm_responder_stats { + u32 filled; + u32 success_num; + u32 partial_num; + u32 failed_num; + u32 asap_num; + u32 non_asap_num; + u64 total_duration_ms; + u32 unknown_triggers_num; + u32 reschedule_requests_num; + u32 out_of_window_triggers_num; +}; + +struct ptp_data { + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct delayed_work dwork; + u32 last_gp2; + u32 wrap_counter; + u32 scale_update_gp2; + u64 scale_update_adj_time_ns; + u64 scaled_freq; + s64 delta; +}; + +struct iwl_phy_specific_cfg { + __le32 filter_cfg_chains[4]; +}; + +struct iwl_time_sync_data { + struct sk_buff_head frame_list; + u8 peer_addr[6]; + bool active; +}; + +struct iwl_mei_scan_filter { + bool is_mei_limited_scan; + struct sk_buff_head scan_res; + struct work_struct scan_work; +}; + +struct iwl_cfg; + +struct iwl_phy_db; struct ieee80211_hw; -struct iwl_rx_cmd_buffer; - -struct iwl_wipan_noa_data; - -struct cfg80211_scan_request; +struct iwl_mvm_vif; struct iwl_nvm_data; -struct iwl_priv { - struct iwl_trans *trans; +struct iwl_mei_nvm; + +struct iwl_mvm_csme_conn_info; + +struct iwl_mcast_filter_cmd; + +struct cfg80211_pmsr_request; + +struct iwl_mvm { struct device *dev; - const struct iwl_cfg *cfg; + struct iwl_trans *trans; const struct iwl_fw *fw; - const struct iwl_dvm_cfg *lib; - unsigned long status; - spinlock_t sta_lock; - struct mutex mutex; - unsigned long transport_queue_stop; - bool passive_no_rx; - u8 queue_to_mac80211[32]; - atomic_t queue_stop_count[32]; - unsigned long agg_q_alloc[1]; + const struct iwl_cfg *cfg; + struct iwl_phy_db *phy_db; struct ieee80211_hw *hw; - struct napi_struct *napi; - struct list_head calib_results; - struct workqueue_struct *workqueue; - struct iwl_hw_params hw_params; - enum nl80211_band band; - u8 valid_contexts; - void (*rx_handlers[255])(struct iwl_priv *, struct iwl_rx_cmd_buffer *); + struct mutex mutex; + struct list_head async_handlers_list; + spinlock_t async_handlers_lock; + struct work_struct async_handlers_wk; + struct wiphy_work async_handlers_wiphy_wk; + struct work_struct roc_done_wk; + unsigned long init_status; + unsigned long status; + u32 queue_sync_cookie; + long: 0; + unsigned long queue_sync_state; + struct iwl_mvm_vif *bf_allowed_vif; + bool hw_registered; + bool rfkill_safe_init_done; + u8 cca_40mhz_workaround; + int: 0; + u32 ampdu_ref; + bool ampdu_toggle; + long: 0; struct iwl_notif_wait_data notif_wait; - struct iwl_spectrum_notification measure_report; - u8 measurement_status; - u32 ucode_beacon_time; - int missed_beacon_threshold; - u32 ibss_manager; - unsigned long rx_statistics_jiffies; - u32 rx_handlers_stats[255]; - struct iwl_rf_reset rf_reset; - unsigned long reload_jiffies; - int reload_count; - bool ucode_loaded; - u8 plcp_delta_threshold; - s32 temperature; - s32 last_temperature; - struct iwl_wipan_noa_data __attribute__((btf_type_tag("rcu"))) *noa_data; - unsigned long scan_start; - unsigned long scan_start_tsf; + union { + struct mvm_statistics_rx_v3 rx_stats_v3; + struct mvm_statistics_rx rx_stats; + }; + struct { + u64 rx_time; + u64 tx_time; + u64 on_time_rf; + u64 on_time_scan; + } radio_stats; + struct { + u64 rx_time; + u64 tx_time; + u64 on_time_rf; + u64 on_time_scan; + } accu_radio_stats; + struct list_head add_stream_txqs; + union { + struct iwl_mvm_dqa_txq_info queue_info[32]; + struct iwl_mvm_tvqm_txq_info tvqm_info[512]; + }; + struct work_struct add_stream_wk; + spinlock_t add_stream_lock; + const char *nvm_file_name; + struct iwl_nvm_data *nvm_data; + struct iwl_mei_nvm *mei_nvm_data; + struct iwl_mvm_csme_conn_info __attribute__((btf_type_tag("rcu"))) *csme_conn_info; + bool mei_rfkill_blocked; + bool mei_registered; + long: 0; + struct work_struct sap_connected_wk; + struct iwl_nvm_data *temp_nvm_data; + struct iwl_nvm_section nvm_sections[13]; + struct iwl_fw_runtime fwrt; + struct mac_address addresses[5]; + struct iwl_rx_phy_info last_phy_info; + long: 0; + struct ieee80211_sta __attribute__((btf_type_tag("rcu"))) *fw_id_to_mac_id[16]; + struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *fw_id_to_link_sta[16]; + unsigned long fw_link_ids_map; + u8 rx_ba_sessions; + int: 0; + u32 rts_threshold; + unsigned int scan_status; + long: 0; size_t scan_cmd_size; void *scan_cmd; - enum nl80211_band scan_band; - struct cfg80211_scan_request *scan_request; - struct ieee80211_vif *scan_vif; - enum iwl_scan_type scan_type; - u8 scan_tx_ant[6]; - u8 mgmt_tx_ant; - u8 sta_key_max_num; - bool new_scan_threshold_behaviour; - bool wowlan; - struct mac_address addresses[2]; - struct iwl_rxon_context contexts[2]; - __le16 switch_channel; - u8 start_calib; - struct iwl_sensitivity_data sensitivity_data; - struct iwl_chain_noise_data chain_noise_data; - __le16 sensitivity_tbl[11]; - __le16 enhance_sensitivity_tbl[12]; - struct iwl_ht_config current_ht_config; - u8 retry_rate; - int activity_timer_active; - struct iwl_power_mgr power_data; - struct iwl_tt_mgmt thermal_throttle; - int num_stations; - struct iwl_station_entry stations[16]; - unsigned long ucode_key_table; - struct iwl_tid_data tid_data[128]; - atomic_t num_aux_in_flight; - u8 mac80211_registered; - u8 is_open; - enum nl80211_iftype iw_mode; - u64 timestamp; + struct iwl_mcast_filter_cmd *mcast_filter_cmd; + enum iwl_mvm_scan_type scan_type; + enum iwl_mvm_scan_type hb_scan_type; + enum iwl_mvm_sched_scan_pass_all_states sched_scan_pass_all; + long: 0; + struct delayed_work scan_timeout_dwork; + unsigned int max_scans; + u32 scan_uid_status[4]; + long: 0; + u64 scan_start; + struct iwl_mvm_vif *scan_vif; + u8 scan_link_id; + u8 scan_rx_ant; + int: 0; + struct iwl_mvm_int_sta aux_sta; + struct iwl_mvm_int_sta snif_sta; + bool last_ebs_successful; + u8 scan_last_antenna_idx; + u8 mgmt_last_antenna_idx; + u8 set_tx_ant; + u8 set_rx_ant; + int: 0; + enum iwl_sf_state sf_state; + struct dentry *debugfs_dir; + struct iwl_mvm_phy_ctxt phy_ctxts[3]; + struct list_head time_event_list; + spinlock_t time_event_lock; + unsigned long fw_key_table[1]; + u8 fw_key_deleted[16]; + struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *vif_id_to_mac[4]; + struct ieee80211_bss_conf __attribute__((btf_type_tag("rcu"))) *link_id_to_link_conf[4]; + s8 fw_restart; + long: 0; + u8 *error_recovery_buf; + struct ieee80211_vif *p2p_device_vif; + struct wiphy_wowlan_support wowlan; + int gtk_ivlen; + int gtk_icvlen; + int ptk_ivlen; + int ptk_icvlen; + struct ieee80211_scan_ies nd_ies; + struct cfg80211_match_set *nd_match_sets; + int n_nd_match_sets; + long: 0; + struct ieee80211_channel **nd_channels; + int n_nd_channels; + bool net_detect; + u8 offload_tid; + long: 0; + wait_queue_head_t rx_sync_waitq; + struct iwl_bt_coex_profile_notif last_bt_notif; + struct iwl_bt_coex_ci_cmd last_bt_ci_cmd; + u8 bt_tx_prio; + int: 0; + enum iwl_bt_force_ant_mode bt_force_ant_mode; + struct list_head aux_roc_te_list; + struct iwl_mvm_tt_mgmt thermal_throttle; + struct iwl_mvm_thermal_device tz_device; + struct iwl_mvm_cooling_device cooling_dev; + s32 temperature; + bool temperature_test; + bool fw_static_smps_request; + long: 0; + unsigned long bt_coex_last_tcm_ts; + struct iwl_mvm_tcm tcm; + u8 uapsd_noagg_bssid_write_idx; + short: 0; + struct mac_address uapsd_noagg_bssids[20]; + struct iwl_time_quota_cmd last_quota_cmd; + u16 aux_queue; + u16 snif_queue; + u16 probe_queue; + u16 p2p_dev_queue; + u8 ps_disabled; + int: 0; + u32 ext_clock_valid; + struct ieee80211_vif *csme_vif; + struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *csa_vif; + struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *csa_tx_blocked_vif; + u8 csa_tx_block_bcn_timeout; + int: 0; + u32 ap_last_beacon_gp2; + bool ibss_manager; + bool lar_regdom_set; + int: 0; + enum iwl_mcc_source mcc_src; struct { - __le32 flag; - struct statistics_general_common common; - struct statistics_rx_non_phy rx_non_phy; - struct statistics_rx_phy rx_ofdm; - struct statistics_rx_ht_phy rx_ofdm_ht; - struct statistics_rx_phy rx_cck; - struct statistics_tx tx; - spinlock_t lock; - } statistics; - u8 agg_tids_count; - struct iwl_rx_phy_res last_phy_res; - u32 ampdu_ref; - bool last_phy_res_valid; - u8 phy_calib_chain_noise_reset_cmd; - u8 phy_calib_chain_noise_gain_cmd; - struct reply_tx_error_statistics reply_tx_stats; - struct reply_agg_tx_error_statistics reply_agg_tx_stats; - u8 bt_enable_flag; - u8 bt_status; - u8 bt_traffic_load; - u8 last_bt_traffic_load; - bool bt_ch_announce; - bool bt_full_concurrent; - __le32 kill_ack_mask; - __le32 kill_cts_mask; - __le16 bt_valid; - bool reduced_txpower; - u16 bt_on_thresh; - u16 bt_duration; - u16 dynamic_frag_thresh; - u8 bt_ci_compliance; - struct work_struct bt_traffic_change_work; - bool bt_enable_pspoll; - struct iwl_rxon_context *cur_rssi_ctx; - bool bt_is_sco; - struct work_struct restart; - struct work_struct scan_completed; - struct work_struct abort_scan; - struct work_struct beacon_update; - struct iwl_rxon_context *beacon_ctx; - struct sk_buff *beacon_skb; - void *beacon_cmd; - struct work_struct tt_work; - struct work_struct ct_enter; - struct work_struct ct_exit; - struct work_struct start_internal_scan; - struct work_struct tx_flush; - struct work_struct bt_full_concurrency; - struct work_struct bt_runtime_config; - struct delayed_work scan_check; - s8 tx_power_user_lmt; - s8 tx_power_next; - struct iwl_nvm_data *nvm_data; - u8 *eeprom_blob; - size_t eeprom_blob_size; - struct work_struct txpower_work; - u32 calib_disabled; - struct work_struct run_time_calib_work; - struct timer_list statistics_periodic; - struct timer_list ucode_trace; - struct iwl_event_log event_log; - u8 kck[16]; - u8 kek[16]; - __le64 replay_ctr; - __le16 last_seq_ctl; - bool have_rekey_data; - struct wiphy_wowlan_support wowlan_support; + struct delayed_work dwork; + enum iwl_mvm_tdls_cs_state state; + u8 cur_sta_id; + struct { + u8 sta_id; + u8 op_class; + bool initiator; + struct cfg80211_chan_def chandef; + struct sk_buff *skb; + u32 ch_sw_tm_ie; + u32 sent_timestamp; + } peer; + } tdls_cs; + u32 ciphers[10]; + struct cfg80211_ftm_responder_stats ftm_resp_stats; struct { - u32 error_event_table; - u32 log_event_table; - } device_pointers; - enum iwl_ucode_type cur_ucode; -}; + struct cfg80211_pmsr_request *req; + struct wireless_dev *req_wdev; + struct list_head loc_list; + int responses[5]; + struct { + struct list_head resp; + } smooth; + struct list_head pasn_list; + } ftm_initiator; + struct list_head resp_pasn_list; + struct ptp_data ptp_data; + struct { + u8 range_resp; + } cmd_ver; + long: 0; + struct ieee80211_vif *nan_vif; + struct iwl_mvm_baid_data __attribute__((btf_type_tag("rcu"))) *baid_map[32]; + bool drop_bcn_ap_mode; + long: 0; + struct delayed_work cs_tx_unblock_dwork; + bool monitor_on; + u8 monitor_p80; + __le16 cur_aid; + u8 cur_bssid[6]; + struct iwl_phy_specific_cfg phy_filters; + long: 0; + unsigned long last_6ghz_passive_scan_jiffies; + unsigned long last_reset_or_resume_time_jiffies; + bool sta_remove_requires_queue_remove; + bool mld_api_is_used; + bool pldr_sync; + long: 0; + struct iwl_time_sync_data time_sync; + struct iwl_mei_scan_filter mei_scan_filter; + bool statistics_clear; + long: 0; +} __attribute__((packed)); struct iwl_fw_ini_header { __le32 version; @@ -22578,8 +25254,6 @@ struct iwl_trans_config; struct iwl_trans_dump_data; -struct iwl_dump_sanitize_ops; - struct iwl_pnvm_image; struct iwl_ucode_capabilities; @@ -22645,8 +25319,6 @@ struct fw_desc { u32 offset; }; -struct iwl_rx_packet; - struct iwl_host_cmd { const void *data[2]; struct iwl_rx_packet *resp_pkt; @@ -22714,6 +25386,8 @@ struct iwl_op_mode { char op_mode_specific[0]; }; +struct iwl_rx_cmd_buffer; + union iwl_dbg_tlv_tp_data; struct iwl_op_mode_ops { @@ -22767,8 +25441,6 @@ struct iwl_eeprom_params; struct iwl_pwr_tx_backoff; -struct iwl_tt_params; - struct iwl_cfg { struct iwl_cfg_trans_params trans; const char *name; @@ -22857,26 +25529,6 @@ struct iwl_pwr_tx_backoff { u32 backoff; }; -struct iwl_tt_tx_backoff { - s32 temperature; - u32 backoff; -}; - -struct iwl_tt_params { - u32 ct_kill_entry; - u32 ct_kill_exit; - u32 ct_kill_duration; - u32 dynamic_smps_entry; - u32 dynamic_smps_exit; - u32 tx_protection_entry; - u32 tx_protection_exit; - struct iwl_tt_tx_backoff tx_backoff[6]; - u8 support_ct_kill: 1; - u8 support_dynamic_smps: 1; - u8 support_tx_protection: 1; - u8 support_tx_backoff: 1; -}; - struct iwl_fw_cmd_version; struct iwl_ucode_capabilities { @@ -23114,47 +25766,6 @@ struct iwl_tso_hdr_page { u8 *pos; }; -struct ieee80211_channel_switch; - -struct iwl_dvm_bt_params; - -struct iwl_dvm_cfg { - void (*set_hw_params)(struct iwl_priv *); - int (*set_channel_switch)(struct iwl_priv *, struct ieee80211_channel_switch *); - void (*nic_config)(struct iwl_priv *); - void (*temperature)(struct iwl_priv *); - const struct iwl_dvm_bt_params *bt_params; - s32 chain_noise_scale; - u8 plcp_delta_threshold; - bool adv_thermal_throttle; - bool support_ct_kill_exit; - bool hd_v2; - bool no_idle_support; - bool need_temp_offset_calib; - bool no_xtal_calib; - bool temp_offset_v2; - bool adv_pm; -}; - -struct ieee80211_channel_switch { - u64 timestamp; - u32 device_timestamp; - bool block_tx; - struct cfg80211_chan_def chandef; - u8 count; - u8 link_id; - u32 delay; -}; - -struct iwl_dvm_bt_params { - bool advanced_bt_coexist; - u8 bt_init_traffic_load; - u32 bt_prio_boost; - u16 agg_time_limit; - bool bt_sco_disable; - bool bt_session_2; -}; - struct ieee80211_conf { u32 flags; int power_level; @@ -23207,87 +25818,161 @@ struct ieee80211_hw { u8 max_txpwr_levels_idx; }; -struct iwl_sensitivity_ranges { - u16 min_nrg_cck; - u16 nrg_th_cck; - u16 nrg_th_ofdm; - u16 auto_corr_min_ofdm; - u16 auto_corr_min_ofdm_mrc; - u16 auto_corr_min_ofdm_x1; - u16 auto_corr_min_ofdm_mrc_x1; - u16 auto_corr_max_ofdm; - u16 auto_corr_max_ofdm_mrc; - u16 auto_corr_max_ofdm_x1; - u16 auto_corr_max_ofdm_mrc_x1; - u16 auto_corr_max_cck; - u16 auto_corr_max_cck_mrc; - u16 auto_corr_min_cck; - u16 auto_corr_min_cck_mrc; - u16 barker_corr_th_min; - u16 barker_corr_th_min_mrc; - u16 nrg_th_cca; +struct iwl_mvm_vif_bf_data { + bool bf_enabled; + bool ba_enabled; + int ave_beacon_signal; + int last_cqm_event; + int bt_coex_min_thold; + int bt_coex_max_thold; + int last_bt_coex_event; }; -struct iwl_wipan_noa_data { +struct iwl_mvm_time_event_data { + struct ieee80211_vif *vif; + struct list_head list; + unsigned long end_jiffies; + u32 duration; + bool running; + u32 uid; + u32 id; + s8 link_id; +}; + +struct ieee80211_he_mu_edca_param_ac_rec { + u8 aifsn; + u8 ecw_min_max; + u8 mu_edca_timer; +}; + +struct ieee80211_tx_queue_params { + u16 txop; + u16 cw_min; + u16 cw_max; + u8 aifs; + bool acm; + bool uapsd; + bool mu_edca; + struct ieee80211_he_mu_edca_param_ac_rec mu_edca_param_rec; +}; + +struct iwl_probe_resp_data; + +struct ieee80211_key_conf; + +struct iwl_mvm_vif_link_info { + u8 bssid[6]; + u8 ap_sta_id; + u8 fw_link_id; + struct iwl_mvm_int_sta bcast_sta; + struct iwl_mvm_int_sta mcast_sta; + struct { + u32 num_beacons; + u32 accu_num_beacons; + u8 avg_signal; + } beacon_stats; + enum ieee80211_smps_mode smps_requests[4]; + struct iwl_probe_resp_data __attribute__((btf_type_tag("rcu"))) *probe_resp_data; + struct ieee80211_key_conf *igtk; + bool he_ru_2mhz_block; + bool active; + bool listen_lmac; + u16 cab_queue; + struct iwl_mvm_phy_ctxt *phy_ctxt; + struct ieee80211_tx_queue_params queue_params[4]; + u16 mgmt_queue; +}; + +struct iwl_mvm_vif { + struct iwl_mvm *mvm; + u16 id; + u16 color; + bool associated; + u8 ap_assoc_sta_count; + bool uploaded; + bool ap_ibss_active; + bool pm_enabled; + bool monitor_active; + bool esr_active; + bool bt_coex_esr_disabled; + u8 low_latency: 6; + u8 low_latency_actual: 1; + u8 authorized: 1; + bool ps_disabled; + u32 ap_beacon_time; + struct iwl_mvm_vif_bf_data bf_data; + struct { + u8 kck[24]; + u8 kek[32]; + size_t kek_len; + size_t kck_len; + u32 akm; + __le64 replay_ctr; + bool valid; + } rekey_data; + int tx_key_idx; + bool seqno_valid; + u16 seqno; + struct in6_addr target_ipv6_addrs[12]; + unsigned long tentative_addrs[1]; + int num_target_ipv6_addrs; + u8 uapsd_misbehaving_ap_addr[6]; + struct delayed_work uapsd_nonagg_detected_wk; + bool csa_countdown; + bool csa_failed; + bool csa_bcn_pending; + u16 csa_target_freq; + u16 csa_count; + u16 csa_misbehave; + struct delayed_work csa_work; + enum iwl_tsf_id tsf_id; + struct iwl_mvm_time_event_data time_event_data; + struct iwl_mvm_time_event_data hs_time_event_data; + netdev_features_t features; + struct ieee80211_sta *ap_sta; + struct ieee80211_key_conf *ap_early_keys[4]; + struct { + struct ieee80211_key_conf __attribute__((btf_type_tag("rcu"))) *keys[2]; + } bcn_prot; + struct iwl_mvm_vif_link_info deflink; + struct iwl_mvm_vif_link_info *link[15]; +}; + +struct ieee80211_key_conf { + atomic64_t tx_pn; + u32 cipher; + u8 icv_len; + u8 iv_len; + u8 hw_key_idx; + s8 keyidx; + u16 flags; + s8 link_id; + u8 keylen; + u8 key[0]; +}; + +struct iwl_p2p_noa_attr { + u8 id; + u8 len_low; + u8 len_high; + u8 idx; + u8 ctwin; + struct ieee80211_p2p_noa_desc desc[2]; + u8 reserved; +}; + +struct iwl_probe_resp_data_notif { + __le32 mac_id; + __le32 noa_active; + struct iwl_p2p_noa_attr noa_attr; + u8 csa_counter; + u8 reserved[3]; +}; + +struct iwl_probe_resp_data { struct callback_head callback_head; - u32 length; - u8 data[0]; -}; - -struct cfg80211_scan_info { - u64 scan_start_tsf; - u8 tsf_bssid[6]; - bool aborted; -}; - -struct cfg80211_scan_6ghz_params; - -struct cfg80211_scan_request { - struct cfg80211_ssid *ssids; - int n_ssids; - u32 n_channels; - const u8 *ie; - size_t ie_len; - u16 duration; - bool duration_mandatory; - u32 flags; - u32 rates[6]; - struct wireless_dev *wdev; - u8 mac_addr[6]; - u8 mac_addr_mask[6]; - u8 bssid[6]; - struct wiphy *wiphy; - unsigned long scan_start; - struct cfg80211_scan_info info; - bool notified; - bool no_cck; - bool scan_6ghz; - u32 n_6ghz_params; - struct cfg80211_scan_6ghz_params *scan_6ghz_params; - s8 tsf_report_link_id; - struct ieee80211_channel *channels[0]; -}; - -struct cfg80211_scan_6ghz_params { - u32 short_ssid; - u32 channel_idx; - u8 bssid[6]; - bool unsolicited_probe; - bool short_ssid_valid; - bool psc_no_listen; - s8 psd_20; -}; - -struct iwl_tt_restriction { - enum iwl_antenna_ok tx_stream; - enum iwl_antenna_ok rx_stream; - bool is_ht; -}; - -struct iwl_tt_trans { - enum iwl_tt_state next_state; - u32 tt_low; - u32 tt_high; + struct iwl_probe_resp_data_notif notif; + int noa_len; }; struct iwl_nvm_data { @@ -23327,45 +26012,6676 @@ struct iwl_nvm_data { struct ieee80211_channel channels[0]; }; -struct iwl_wep_cmd { - u8 num_keys; - u8 global_key_type; - u8 flags; +struct iwl_mei_nvm { + u8 hw_addr[6]; + u8 n_hw_addrs; u8 reserved; - struct iwl_wep_key key[0]; + u32 radio_cfg; + u32 caps; + u32 nvm_version; + u32 channels[110]; }; -struct iwl_add_sta_resp { - u8 status; +struct iwl_mei_conn_info { + u8 lp_state; + u8 auth_mode; + u8 ssid_len; + u8 channel; + u8 band; + u8 pairwise_cipher; + u8 bssid[6]; + u8 ssid[32]; }; -struct iwl_rem_sta_cmd { - u8 num_sta; - u8 reserved[3]; +struct iwl_mvm_csme_conn_info { + struct callback_head callback_head; + struct iwl_mei_conn_info conn_info; +}; + +struct iwl_fw_runtime_ops { + void (*dump_start)(void *); + void (*dump_end)(void *); + bool (*fw_running)(void *); + int (*send_hcmd)(void *, struct iwl_host_cmd *); + bool (*d3_debug_enable)(void *); +}; + +struct iwl_fw_ini_trigger_tlv { + struct iwl_fw_ini_header hdr; + __le32 time_point; + __le32 trigger_reason; + __le32 apply_policy; + __le32 dump_delay; + __le32 occurrences; + __le32 reserved; + __le32 ignore_consec; + __le32 reset_fw; + __le32 multi_dut; + __le64 regions_mask; + __le32 data[0]; +} __attribute__((packed)); + +struct iwl_fw_error_dump_trigger_desc { + __le32 type; + u8 data[0]; +}; + +struct iwl_fw_dump_desc { + size_t len; + struct iwl_fw_error_dump_trigger_desc trig_desc; +}; + +struct iwl_mcast_filter_cmd { + u8 filter_own; + u8 port_id; + u8 count; + u8 pass_all; + u8 bssid[6]; + u8 reserved[2]; + u8 addr_list[0]; +}; + +struct thermal_zone_device_ops { + int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*get_temp)(struct thermal_zone_device *, int *); + int (*set_trips)(struct thermal_zone_device *, int, int); + int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); + int (*set_trip_temp)(struct thermal_zone_device *, int, int); + int (*get_crit_temp)(struct thermal_zone_device *, int *); + int (*set_emul_temp)(struct thermal_zone_device *, int); + int (*get_trend)(struct thermal_zone_device *, const struct thermal_trip *, enum thermal_trend *); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); +}; + +struct ida { + struct xarray xa; +}; + +struct thermal_attr; + +struct thermal_zone_params; + +struct thermal_governor; + +struct thermal_zone_device { + int id; + char type[20]; + struct device device; + struct completion removal; + struct attribute_group trips_attribute_group; + struct thermal_attr *trip_temp_attrs; + struct thermal_attr *trip_type_attrs; + struct thermal_attr *trip_hyst_attrs; + enum thermal_device_mode mode; + void *devdata; + int num_trips; + unsigned long passive_delay_jiffies; + unsigned long polling_delay_jiffies; + int temperature; + int last_temperature; + int emul_temperature; + int passive; + int prev_low_trip; + int prev_high_trip; + atomic_t need_update; + struct thermal_zone_device_ops ops; + struct thermal_zone_params *tzp; + struct thermal_governor *governor; + void *governor_data; + struct list_head thermal_instances; + struct ida ida; + struct mutex lock; + struct list_head node; + struct delayed_work poll_queue; + enum thermal_notify_event notify_event; + bool suspended; + struct thermal_trip trips[0]; +}; + +struct thermal_zone_params { + const char *governor_name; + bool no_hwmon; + u32 sustainable_power; + s32 k_po; + s32 k_pu; + s32 k_i; + s32 k_d; + s32 integral_cutoff; + int slope; + int offset; +}; + +struct thermal_governor { + const char *name; + int (*bind_to_tz)(struct thermal_zone_device *); + void (*unbind_from_tz)(struct thermal_zone_device *); + int (*throttle)(struct thermal_zone_device *, const struct thermal_trip *); + void (*update_tz)(struct thermal_zone_device *, enum thermal_notify_event); + struct list_head governor_list; +}; + +struct cfg80211_pmsr_ftm_request_peer { + enum nl80211_preamble preamble; + u16 burst_period; + u8 requested: 1; + u8 asap: 1; + u8 request_lci: 1; + u8 request_civicloc: 1; + u8 trigger_based: 1; + u8 non_trigger_based: 1; + u8 lmr_feedback: 1; + u8 num_bursts_exp; + u8 burst_duration; + u8 ftms_per_burst; + u8 ftmr_retries; + u8 bss_color; +}; + +struct cfg80211_pmsr_request_peer { u8 addr[6]; - u8 reserved2[2]; + struct cfg80211_chan_def chandef; + u8 report_ap_tsf: 1; + struct cfg80211_pmsr_ftm_request_peer ftm; }; -struct iwl_rem_sta_resp { - u8 status; +struct cfg80211_pmsr_request { + u64 cookie; + void *drv_data; + u32 n_peers; + u32 nl_portid; + u32 timeout; + u8 mac_addr[6]; + u8 mac_addr_mask[6]; + struct list_head list; + struct cfg80211_pmsr_request_peer peers[0]; }; -struct iwl_vif_priv { - struct iwl_rxon_context *ctx; - u8 ibss_bssid_sta_id; +struct ieee80211_rx_status { + u64 mactime; + union { + u64 boottime_ns; + ktime_t ack_tx_hwtstamp; + }; + u32 device_timestamp; + u32 ampdu_reference; + u32 flag; + u16 freq: 13; + u16 freq_offset: 1; + u8 enc_flags; + u8 encoding: 3; + u8 bw: 4; + union { + struct { + u8 he_ru: 3; + u8 he_gi: 2; + u8 he_dcm: 1; + }; + struct { + u8 ru: 4; + u8 gi: 2; + } eht; + }; + u8 rate_idx; + u8 nss; + u8 rx_flags; + u8 band; + u8 antenna; + s8 signal; + u8 chains; + s8 chain_signal[4]; + u8 ampdu_delimiter_crc; + u8 zero_length_psdu_type; + u8 link_valid: 1; + u8 link_id: 4; }; -struct ieee80211_key_conf { - atomic64_t tx_pn; - u32 cipher; - u8 icv_len; - u8 iv_len; - u8 hw_key_idx; - s8 keyidx; +typedef __u16 __sum16; + +typedef unsigned long netmem_ref; + +struct iwl_mvm_key_pn { + struct callback_head callback_head; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct { + u8 pn[48]; + long: 64; + long: 64; + } q[0]; +}; + +struct iwl_mvm_delba_data { + u32 baid; +}; + +typedef unsigned int iwl_ucode_tlv_api_t; + +struct ieee80211_hdr { + __le16 frame_control; + __le16 duration_id; + union { + struct { + u8 addr1[6]; + u8 addr2[6]; + u8 addr3[6]; + }; + struct { + u8 addr1[6]; + u8 addr2[6]; + u8 addr3[6]; + } addrs; + }; + __le16 seq_ctrl; + u8 addr4[6]; +}; + +struct iwl_rx_mpdu_desc_v1 { + union { + __le32 rss_hash; + __le32 phy_data2; + }; + union { + __le32 filter_match; + __le32 phy_data3; + }; + __le32 rate_n_flags; + u8 energy_a; + u8 energy_b; + u8 channel; + u8 mac_context; + __le32 gp2_on_air_rise; + union { + __le64 tsf_on_air_rise; + struct { + __le32 phy_data0; + __le32 phy_data1; + }; + }; +} __attribute__((packed)); + +struct iwl_rx_mpdu_desc_v3 { + union { + __le32 filter_match; + __le32 phy_data3; + }; + union { + __le32 rss_hash; + __le32 phy_data2; + }; + __le32 partial_hash; + __be16 raw_xsum; + __le16 reserved_xsum; + __le32 rate_n_flags; + u8 energy_a; + u8 energy_b; + u8 channel; + u8 mac_context; + __le32 gp2_on_air_rise; + union { + __le64 tsf_on_air_rise; + struct { + __le32 phy_data0; + __le32 phy_data1; + }; + }; + __le32 phy_data5; + __le32 reserved[1]; +} __attribute__((packed)); + +struct iwl_rx_mpdu_desc { + __le16 mpdu_len; + u8 mac_flags1; + u8 mac_flags2; + u8 amsdu_info; + __le16 phy_info; + u8 mac_phy_idx; + union { + struct { + __le16 raw_csum; + union { + __le16 l3l4_flags; + __le16 phy_data4; + }; + }; + __le32 phy_eht_data4; + }; + __le32 status; + __le32 reorder_data; + union { + struct iwl_rx_mpdu_desc_v1 v1; + struct iwl_rx_mpdu_desc_v3 v3; + }; +} __attribute__((packed)); + +struct iwl_mvm_tid_data { + u16 seq_number; + u16 next_reclaimed; + u32 rate_n_flags; + u8 lq_color; + bool amsdu_in_ampdu_allowed; + enum iwl_mvm_agg_state state; + u16 txq_id; + u16 ssn; + u16 tx_time; + unsigned long tpt_meas_start; + u32 tx_count_last; + u32 tx_count; +}; + +struct lq_sta_pers_rs_fw { + u32 sta_id; + u8 chains; + s8 chain_signal[4]; + s8 last_rssi; + struct iwl_mvm *drv; +}; + +struct iwl_lq_sta_rs_fw { + u32 last_rate_n_flags; + struct lq_sta_pers_rs_fw pers; +}; + +struct rs_rate { + int index; + enum iwl_table_type type; + u8 ant; + u32 bw; + bool sgi; + bool ldpc; + bool stbc; + bool bfer; +}; + +struct iwl_lq_cmd { + u8 sta_id; + u8 reduced_tpc; + __le16 control; + u8 flags; + u8 mimo_delim; + u8 single_stream_ant_msk; + u8 dual_stream_ant_msk; + u8 initial_rate_index[4]; + __le16 agg_time_limit; + u8 agg_disable_start_th; + u8 agg_frame_cnt_limit; + __le32 reserved2; + __le32 rs_table[16]; + __le32 ss_params; +}; + +struct iwl_rate_scale_data { + u64 data; + s32 success_counter; + s32 success_ratio; + s32 counter; + s32 average_tpt; +}; + +struct iwl_scale_tbl_info { + struct rs_rate rate; + enum rs_column column; + const u16 *expected_tpt; + struct iwl_rate_scale_data win[17]; + struct iwl_rate_scale_data tpc_win[16]; +}; + +struct rs_rate_stats { + u64 success; + u64 total; +}; + +struct lq_sta_pers { + u8 chains; + s8 chain_signal[4]; + s8 last_rssi; + u16 max_agg_bufsize; + struct rs_rate_stats tx_stats[136]; + struct iwl_mvm *drv; + spinlock_t lock; +}; + +struct rs_init_rate_info; + +struct iwl_lq_sta { + u8 active_tbl; + u8 rs_state; + u8 search_better_tbl; + s32 last_tpt; + u32 table_count_limit; + u32 max_failure_limit; + u32 max_success_limit; + u32 table_count; + u32 total_failed; + u32 total_success; + u64 flush_timer; + u32 visited_columns; + u64 last_tx; + bool is_vht; + bool ldpc; + bool stbc_capable; + bool bfer_capable; + enum nl80211_band band; + unsigned long active_legacy_rate; + unsigned long active_siso_rate; + unsigned long active_mimo2_rate; + u8 max_legacy_rate_idx; + u8 max_siso_rate_idx; + u8 max_mimo2_rate_idx; + struct rs_rate optimal_rate; + unsigned long optimal_rate_mask; + const struct rs_init_rate_info *optimal_rates; + int optimal_nentries; + u8 missed_rate_counter; + struct iwl_lq_cmd lq; + struct iwl_scale_tbl_info lq_info[2]; + u8 tx_agg_tid_en; + u32 last_rate_n_flags; + u8 is_agg; + int tpc_reduce; + struct lq_sta_pers pers; +}; + +struct iwl_mvm_link_sta { + struct callback_head callback_head; + u32 sta_id; + union { + struct iwl_lq_sta_rs_fw rs_fw; + struct iwl_lq_sta rs_drv; + } lq_sta; + u16 orig_amsdu_len; + u8 avg_energy; +}; + +struct iwl_mvm_rxq_dup_data; + +struct iwl_mvm_sta { + u32 tfd_queue_msk; + u32 mac_id_n_color; + u16 tid_disable_agg; + u8 sta_type; + enum ieee80211_sta_state sta_state; + bool bt_reduced_txpower; + bool next_status_eosp; + bool authorized; + spinlock_t lock; + struct iwl_mvm_tid_data tid_data[9]; + u8 tid_to_baid[8]; + struct ieee80211_vif *vif; + struct iwl_mvm_key_pn __attribute__((btf_type_tag("rcu"))) *ptk_pn[4]; + struct iwl_mvm_rxq_dup_data *dup_data; + u8 reserved_queue; + s8 tx_protection; + bool tt_tx_protection; + bool disable_tx; + u16 amsdu_enabled; + u16 max_amsdu_len; + bool sleeping; + u8 agg_tids; + u8 sleep_tx_count; + u8 tx_ant; + u32 pairwise_cipher; + struct iwl_mvm_link_sta deflink; + struct iwl_mvm_link_sta __attribute__((btf_type_tag("rcu"))) *link[15]; +}; + +struct iwl_mvm_rxq_dup_data { + __le16 last_seq[9]; + u8 last_sub_frame[9]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rs_init_rate_info { + s8 rssi; + u8 rate_idx; +}; + +struct ieee80211_qos_hdr { + __le16 frame_control; + __le16 duration_id; + u8 addr1[6]; + u8 addr2[6]; + u8 addr3[6]; + __le16 seq_ctrl; + __le16 qos_ctrl; +}; + +struct ieee80211_qos_hdr_4addr { + __le16 frame_control; + __le16 duration_id; + u8 addr1[6]; + u8 addr2[6]; + u8 addr3[6]; + __le16 seq_ctrl; + u8 addr4[6]; + __le16 qos_ctrl; +}; + +struct ieee80211_ext_chansw_ie { + u8 mode; + u8 new_operating_class; + u8 new_ch_num; + u8 count; +}; + +struct ieee80211_msrment_ie { + u8 token; + u8 mode; + u8 type; + u8 request[0]; +}; + +struct ieee80211_tpc_report_ie { + u8 tx_power; + u8 link_margin; +}; + +struct ieee80211_mgmt { + __le16 frame_control; + __le16 duration; + u8 da[6]; + u8 sa[6]; + u8 bssid[6]; + __le16 seq_ctrl; + union { + struct { + __le16 auth_alg; + __le16 auth_transaction; + __le16 status_code; + u8 variable[0]; + } auth; + struct { + __le16 reason_code; + } deauth; + struct { + __le16 capab_info; + __le16 listen_interval; + u8 variable[0]; + } assoc_req; + struct { + __le16 capab_info; + __le16 status_code; + __le16 aid; + u8 variable[0]; + } assoc_resp; + struct { + __le16 capab_info; + __le16 status_code; + __le16 aid; + u8 variable[0]; + } reassoc_resp; + struct { + __le16 capab_info; + __le16 status_code; + u8 variable[0]; + } s1g_assoc_resp; + struct { + __le16 capab_info; + __le16 status_code; + u8 variable[0]; + } s1g_reassoc_resp; + struct { + __le16 capab_info; + __le16 listen_interval; + u8 current_ap[6]; + u8 variable[0]; + } reassoc_req; + struct { + __le16 reason_code; + } disassoc; + struct { + __le64 timestamp; + __le16 beacon_int; + __le16 capab_info; + u8 variable[0]; + } __attribute__((packed)) beacon; + struct { + struct { + struct {} __empty_variable; + u8 variable[0]; + }; + } probe_req; + struct { + __le64 timestamp; + __le16 beacon_int; + __le16 capab_info; + u8 variable[0]; + } __attribute__((packed)) probe_resp; + struct { + u8 category; + union { + struct { + u8 action_code; + u8 dialog_token; + u8 status_code; + u8 variable[0]; + } wme_action; + struct { + u8 action_code; + u8 variable[0]; + } chan_switch; + struct { + u8 action_code; + struct ieee80211_ext_chansw_ie data; + u8 variable[0]; + } ext_chan_switch; + struct { + u8 action_code; + u8 dialog_token; + u8 element_id; + u8 length; + struct ieee80211_msrment_ie msr_elem; + } measurement; + struct { + u8 action_code; + u8 dialog_token; + __le16 capab; + __le16 timeout; + __le16 start_seq_num; + u8 variable[0]; + } addba_req; + struct { + u8 action_code; + u8 dialog_token; + __le16 status; + __le16 capab; + __le16 timeout; + } addba_resp; + struct { + u8 action_code; + __le16 params; + __le16 reason_code; + } __attribute__((packed)) delba; + struct { + u8 action_code; + u8 variable[0]; + } self_prot; + struct { + u8 action_code; + u8 variable[0]; + } mesh_action; + struct { + u8 action; + u8 trans_id[2]; + } sa_query; + struct { + u8 action; + u8 smps_control; + } ht_smps; + struct { + u8 action_code; + u8 chanwidth; + } ht_notify_cw; + struct { + u8 action_code; + u8 dialog_token; + __le16 capability; + u8 variable[0]; + } tdls_discover_resp; + struct { + u8 action_code; + u8 operating_mode; + } vht_opmode_notif; + struct { + u8 action_code; + u8 membership[8]; + u8 position[16]; + } vht_group_notif; + struct { + u8 action_code; + u8 dialog_token; + u8 tpc_elem_id; + u8 tpc_elem_length; + struct ieee80211_tpc_report_ie tpc; + } tpc_report; + struct { + u8 action_code; + u8 dialog_token; + u8 follow_up; + u8 tod[6]; + u8 toa[6]; + __le16 tod_error; + __le16 toa_error; + u8 variable[0]; + } __attribute__((packed)) ftm; + struct { + u8 action_code; + u8 variable[0]; + } s1g; + struct { + u8 action_code; + u8 dialog_token; + u8 follow_up; + u32 tod; + u32 toa; + u8 max_tod_error; + u8 max_toa_error; + } __attribute__((packed)) wnm_timing_msr; + struct { + u8 action_code; + u8 dialog_token; + u8 variable[0]; + } ttlm_req; + struct { + u8 action_code; + u8 dialog_token; + u8 status_code; + u8 variable[0]; + } ttlm_res; + struct { + u8 action_code; + } ttlm_tear_down; + } u; + } action; + struct { + struct {} __empty_body; + u8 body[0]; + }; + } u; +}; + +struct iwl_mvm_rx_phy_data { + enum iwl_rx_phy_info_type info_type; + __le32 d0; + __le32 d1; + __le32 d2; + __le32 d3; + __le32 eht_d4; + __le32 d5; + __le16 d4; + bool with_data; + bool first_subframe; + __le32 rx_vec[4]; + u32 rate_n_flags; + u32 gp2_on_air_rise; + u16 phy_info; + u8 energy_a; + u8 energy_b; + u8 channel; +}; + +struct ieee80211_radiotap_lsig { + __le16 data1; + __le16 data2; +}; + +struct ieee80211_radiotap_eht { + __le32 known; + __le32 data[9]; + __le32 user_info[0]; +}; + +struct ieee80211_radiotap_eht_usig { + __le32 common; + __le32 value; + __le32 mask; +}; + +struct ieee80211_radiotap_tlv { + __le16 type; + __le16 len; + u8 data[0]; +}; + +typedef unsigned int iwl_ucode_tlv_capa_t; + +struct iwl_rxq_sync_notification { + __le32 count; + u8 payload[0]; +}; + +struct iwl_mvm_internal_rxq_notif { + u16 type; + u16 sync; + u32 cookie; + u8 data[0]; +}; + +struct iwl_rx_sta_csa { + bool all_sta_unblocked; + struct ieee80211_vif *vif; +}; + +struct iwl_fw_dbg_trigger_low_rssi { + __le32 rssi; +}; + +struct iwl_rx_no_data_ver_3 { + __le32 info; + __le32 rssi; + __le32 on_air_rise_time; + __le32 fr_time; + __le32 rate; + __le32 phy_info[2]; + __le32 rx_vec[4]; +}; + +struct iwl_frame_release { + u8 baid; + u8 reserved; + __le16 nssn; +}; + +struct iwl_bar_frame_release { + __le32 sta_tid; + __le32 ba_info; +}; + +struct ieee80211_radiotap_vendor_content { + u8 oui[3]; + u8 oui_subtype; + __le16 vendor_type; + __le16 reserved; + u8 data[0]; +}; + +enum usb_device_state { + USB_STATE_NOTATTACHED = 0, + USB_STATE_ATTACHED = 1, + USB_STATE_POWERED = 2, + USB_STATE_RECONNECTING = 3, + USB_STATE_UNAUTHENTICATED = 4, + USB_STATE_DEFAULT = 5, + USB_STATE_ADDRESS = 6, + USB_STATE_CONFIGURED = 7, + USB_STATE_SUSPENDED = 8, +}; + +enum usb_device_speed { + USB_SPEED_UNKNOWN = 0, + USB_SPEED_LOW = 1, + USB_SPEED_FULL = 2, + USB_SPEED_HIGH = 3, + USB_SPEED_WIRELESS = 4, + USB_SPEED_SUPER = 5, + USB_SPEED_SUPER_PLUS = 6, +}; + +enum usb_ssp_rate { + USB_SSP_GEN_UNKNOWN = 0, + USB_SSP_GEN_2x1 = 1, + USB_SSP_GEN_1x2 = 2, + USB_SSP_GEN_2x2 = 3, +}; + +enum usb_interface_condition { + USB_INTERFACE_UNBOUND = 0, + USB_INTERFACE_BINDING = 1, + USB_INTERFACE_BOUND = 2, + USB_INTERFACE_UNBINDING = 3, +}; + +enum usb_wireless_status { + USB_WIRELESS_STATUS_NA = 0, + USB_WIRELESS_STATUS_DISCONNECTED = 1, + USB_WIRELESS_STATUS_CONNECTED = 2, +}; + +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1 = 1, + USB3_LPM_U2 = 2, + USB3_LPM_U3 = 3, +}; + +enum usb_dev_authorize_policy { + USB_DEVICE_AUTHORIZE_NONE = 0, + USB_DEVICE_AUTHORIZE_ALL = 1, + USB_DEVICE_AUTHORIZE_INTERNAL = 2, +}; + +enum xhci_ring_type { + TYPE_CTRL = 0, + TYPE_ISOC = 1, + TYPE_BULK = 2, + TYPE_INTR = 3, + TYPE_STREAM = 4, + TYPE_COMMAND = 5, + TYPE_EVENT = 6, +}; + +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + __le32 reserved[4]; +}; + +struct reset_control; + +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; +}; + +struct xhci_bus_state { + unsigned long bus_suspended; + unsigned long next_statechange; + u32 port_c_suspend; + u32 suspended_ports; + u32 port_remote_wakeup; + unsigned long resuming_ports; +}; + +struct xhci_port; + +struct usb_hcd; + +struct xhci_hub { + struct xhci_port **ports; + unsigned int num_ports; + struct usb_hcd *hcd; + struct xhci_bus_state bus_state; + u8 maj_rev; + u8 min_rev; +}; + +struct xhci_cap_regs; + +struct xhci_op_regs; + +struct xhci_run_regs; + +struct xhci_doorbell_array; + +struct xhci_device_context_array; + +struct xhci_interrupter; + +struct xhci_ring; + +struct xhci_command; + +struct xhci_scratchpad; + +struct xhci_virt_device; + +struct xhci_root_port_bw_info; + +struct xhci_port_cap; + +struct xhci_hcd { + struct usb_hcd *main_hcd; + struct usb_hcd *shared_hcd; + struct xhci_cap_regs *cap_regs; + struct xhci_op_regs *op_regs; + struct xhci_run_regs *run_regs; + struct xhci_doorbell_array *dba; + __u32 hcs_params1; + __u32 hcs_params2; + __u32 hcs_params3; + __u32 hcc_params; + __u32 hcc_params2; + spinlock_t lock; + u8 sbrn; + u16 hci_version; + u8 max_slots; + u16 max_interrupters; + u8 max_ports; + u8 isoc_threshold; + u32 imod_interval; + int event_ring_max; + int page_size; + int page_shift; + int nvecs; + struct clk *clk; + struct clk *reg_clk; + struct reset_control *reset; + struct xhci_device_context_array *dcbaa; + struct xhci_interrupter **interrupters; + struct xhci_ring *cmd_ring; + unsigned int cmd_ring_state; + struct list_head cmd_list; + unsigned int cmd_ring_reserved_trbs; + struct delayed_work cmd_timer; + struct completion cmd_ring_stop_completion; + struct xhci_command *current_cmd; + struct xhci_scratchpad *scratchpad; + struct mutex mutex; + struct xhci_virt_device *devs[256]; + struct xhci_root_port_bw_info *rh_bw; + struct dma_pool *device_pool; + struct dma_pool *segment_pool; + struct dma_pool *small_streams_pool; + struct dma_pool *medium_streams_pool; + unsigned int xhc_state; + unsigned long run_graceperiod; + struct s3_save s3; + unsigned long long quirks; + unsigned int num_active_eps; + unsigned int limit_active_eps; + struct xhci_port *hw_ports; + struct xhci_hub usb2_rhub; + struct xhci_hub usb3_rhub; + unsigned int hw_lpm_support: 1; + unsigned int broken_suspend: 1; + unsigned int allow_single_roothub: 1; + u32 *ext_caps; + unsigned int num_ext_caps; + struct xhci_port_cap *port_caps; + unsigned int num_port_caps; + struct timer_list comp_mode_recovery_timer; + u32 port_status_u0; + u16 test_mode; + struct dentry *debugfs_root; + struct dentry *debugfs_slots; + struct list_head regset_list; + void *dbc; + unsigned long priv[0]; +}; + +struct usb_devmap { + unsigned long devicemap[2]; +}; + +struct usb_device; + +struct usb_bus { + struct device *controller; + struct device *sysdev; + int busnum; + const char *bus_name; + u8 uses_pio_for_control; + u8 otg_port; + unsigned int is_b_host: 1; + unsigned int b_hnp_enable: 1; + unsigned int no_stop_on_short: 1; + unsigned int no_sg_constraint: 1; + unsigned int sg_tablesize; + int devnum_next; + struct mutex devnum_next_mutex; + struct usb_devmap devmap; + struct usb_device *root_hub; + struct usb_bus *hs_companion; + int bandwidth_allocated; + int bandwidth_int_reqs; + int bandwidth_isoc_reqs; + unsigned int resuming_ports; +}; + +struct usb_host_endpoint; + +struct giveback_urb_bh { + bool running; + bool high_prio; + spinlock_t lock; + struct list_head head; + struct work_struct bh; + struct usb_host_endpoint *completing_ep; +}; + +struct urb; + +struct hc_driver; + +struct usb_phy; + +struct usb_phy_roothub; + +struct gen_pool; + +struct usb_hcd { + struct usb_bus self; + struct kref kref; + const char *product_desc; + int speed; + char irq_descr[24]; + struct timer_list rh_timer; + struct urb *status_urb; + struct work_struct wakeup_work; + struct work_struct died_work; + const struct hc_driver *driver; + struct usb_phy *usb_phy; + struct usb_phy_roothub *phy_roothub; + unsigned long flags; + enum usb_dev_authorize_policy dev_policy; + unsigned int rh_registered: 1; + unsigned int rh_pollable: 1; + unsigned int msix_enabled: 1; + unsigned int msi_enabled: 1; + unsigned int skip_phy_initialization: 1; + unsigned int uses_new_polling: 1; + unsigned int has_tt: 1; + unsigned int amd_resume_bug: 1; + unsigned int can_do_streams: 1; + unsigned int tpl_support: 1; + unsigned int cant_recv_wakeups: 1; + unsigned int irq; + void *regs; + resource_size_t rsrc_start; + resource_size_t rsrc_len; + unsigned int power_budget; + struct giveback_urb_bh high_prio_bh; + struct giveback_urb_bh low_prio_bh; + struct mutex *address0_mutex; + struct mutex *bandwidth_mutex; + struct usb_hcd *shared_hcd; + struct usb_hcd *primary_hcd; + struct dma_pool *pool[4]; + int state; + struct gen_pool *localmem_pool; + unsigned long hcd_priv[0]; +}; + +struct usb_endpoint_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bEndpointAddress; + __u8 bmAttributes; + __le16 wMaxPacketSize; + __u8 bInterval; + __u8 bRefresh; + __u8 bSynchAddress; +} __attribute__((packed)); + +struct usb_ss_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bMaxBurst; + __u8 bmAttributes; + __le16 wBytesPerInterval; +}; + +struct usb_ssp_isoc_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wReseved; + __le32 dwBytesPerInterval; +}; + +struct ep_device; + +struct usb_host_endpoint { + struct usb_endpoint_descriptor desc; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; + long: 0; + struct list_head urb_list; + void *hcpriv; + struct ep_device *ep_dev; + unsigned char *extra; + int extralen; + int enabled; + int streams; + long: 0; +} __attribute__((packed)); + +struct usb_device_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __le16 idVendor; + __le16 idProduct; + __le16 bcdDevice; + __u8 iManufacturer; + __u8 iProduct; + __u8 iSerialNumber; + __u8 bNumConfigurations; +}; + +struct usb2_lpm_parameters { + unsigned int besl; + int timeout; +}; + +struct usb3_lpm_parameters { + unsigned int mel; + unsigned int pel; + unsigned int sel; + int timeout; +}; + +struct usb_tt; + +struct usb_host_bos; + +struct usb_host_config; + +struct usb_device { + int devnum; + char devpath[16]; + u32 route; + enum usb_device_state state; + enum usb_device_speed speed; + unsigned int rx_lanes; + unsigned int tx_lanes; + enum usb_ssp_rate ssp_rate; + struct usb_tt *tt; + int ttport; + unsigned int toggle[2]; + struct usb_device *parent; + struct usb_bus *bus; + struct usb_host_endpoint ep0; + struct device dev; + struct usb_device_descriptor descriptor; + struct usb_host_bos *bos; + struct usb_host_config *config; + struct usb_host_config *actconfig; + struct usb_host_endpoint *ep_in[16]; + struct usb_host_endpoint *ep_out[16]; + char **rawdescriptors; + unsigned short bus_mA; + u8 portnum; + u8 level; + u8 devaddr; + unsigned int can_submit: 1; + unsigned int persist_enabled: 1; + unsigned int reset_in_progress: 1; + unsigned int have_langid: 1; + unsigned int authorized: 1; + unsigned int authenticated: 1; + unsigned int lpm_capable: 1; + unsigned int lpm_devinit_allow: 1; + unsigned int usb2_hw_lpm_capable: 1; + unsigned int usb2_hw_lpm_besl_capable: 1; + unsigned int usb2_hw_lpm_enabled: 1; + unsigned int usb2_hw_lpm_allowed: 1; + unsigned int usb3_lpm_u1_enabled: 1; + unsigned int usb3_lpm_u2_enabled: 1; + int string_langid; + char *product; + char *manufacturer; + char *serial; + struct list_head filelist; + int maxchild; + u32 quirks; + atomic_t urbnum; + unsigned long active_duration; + unsigned long connect_time; + unsigned int do_remote_wakeup: 1; + unsigned int reset_resume: 1; + unsigned int port_is_suspended: 1; + int slot_id; + struct usb2_lpm_parameters l1_params; + struct usb3_lpm_parameters u1_params; + struct usb3_lpm_parameters u2_params; + unsigned int lpm_disable_count; + u16 hub_delay; + unsigned int use_generic_driver: 1; +}; + +struct usb_tt { + struct usb_device *hub; + int multi; + unsigned int think_time; + void *hcpriv; + spinlock_t lock; + struct list_head clear_list; + struct work_struct clear_work; +}; + +struct usb_bos_descriptor; + +struct usb_ext_cap_descriptor; + +struct usb_ss_cap_descriptor; + +struct usb_ssp_cap_descriptor; + +struct usb_ss_container_id_descriptor; + +struct usb_ptm_cap_descriptor; + +struct usb_host_bos { + struct usb_bos_descriptor *desc; + struct usb_ext_cap_descriptor *ext_cap; + struct usb_ss_cap_descriptor *ss_cap; + struct usb_ssp_cap_descriptor *ssp_cap; + struct usb_ss_container_id_descriptor *ss_id; + struct usb_ptm_cap_descriptor *ptm_cap; +}; + +struct usb_bos_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumDeviceCaps; +} __attribute__((packed)); + +struct usb_ext_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __le32 bmAttributes; +} __attribute__((packed)); + +struct usb_ss_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bmAttributes; + __le16 wSpeedSupported; + __u8 bFunctionalitySupport; + __u8 bU1devExitLat; + __le16 bU2DevExitLat; +}; + +struct usb_ssp_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __le32 bmAttributes; + __le16 wFunctionalitySupport; + __le16 wReserved; + union { + __le32 legacy_padding; + struct { + struct {} __empty_bmSublinkSpeedAttr; + __le32 bmSublinkSpeedAttr[0]; + }; + }; +}; + +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; +}; + +struct usb_ptm_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +struct usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__((packed)); + +struct usb_interface_assoc_descriptor; + +struct usb_interface; + +struct usb_interface_cache; + +struct usb_host_config { + struct usb_config_descriptor desc; + char *string; + struct usb_interface_assoc_descriptor *intf_assoc[16]; + struct usb_interface *interface[32]; + struct usb_interface_cache *intf_cache[32]; + unsigned char *extra; + int extralen; +}; + +struct usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; +}; + +struct usb_host_interface; + +struct usb_interface { + struct usb_host_interface *altsetting; + struct usb_host_interface *cur_altsetting; + unsigned int num_altsetting; + struct usb_interface_assoc_descriptor *intf_assoc; + int minor; + enum usb_interface_condition condition; + unsigned int sysfs_files_created: 1; + unsigned int ep_devs_created: 1; + unsigned int unregistering: 1; + unsigned int needs_remote_wakeup: 1; + unsigned int needs_altsetting0: 1; + unsigned int needs_binding: 1; + unsigned int resetting_device: 1; + unsigned int authorized: 1; + enum usb_wireless_status wireless_status; + struct work_struct wireless_status_work; + struct device dev; + struct device *usb_dev; + struct work_struct reset_ws; +}; + +struct usb_interface_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; +}; + +struct usb_host_interface { + struct usb_interface_descriptor desc; + int extralen; + unsigned char *extra; + struct usb_host_endpoint *endpoint; + char *string; +}; + +struct usb_interface_cache { + unsigned int num_altsetting; + struct kref ref; + struct usb_host_interface altsetting[0]; +}; + +typedef void (*usb_complete_t)(struct urb *); + +struct usb_iso_packet_descriptor { + unsigned int offset; + unsigned int length; + unsigned int actual_length; + int status; +}; + +struct usb_anchor; + +struct urb { + struct kref kref; + int unlinked; + void *hcpriv; + atomic_t use_count; + atomic_t reject; + struct list_head urb_list; + struct list_head anchor_list; + struct usb_anchor *anchor; + struct usb_device *dev; + struct usb_host_endpoint *ep; + unsigned int pipe; + unsigned int stream_id; + int status; + unsigned int transfer_flags; + void *transfer_buffer; + dma_addr_t transfer_dma; + struct scatterlist *sg; + int num_mapped_sgs; + int num_sgs; + u32 transfer_buffer_length; + u32 actual_length; + unsigned char *setup_packet; + dma_addr_t setup_dma; + int start_frame; + int number_of_packets; + int interval; + int error_count; + void *context; + usb_complete_t complete; + struct usb_iso_packet_descriptor iso_frame_desc[0]; +}; + +struct usb_anchor { + struct list_head urb_list; + wait_queue_head_t wait; + spinlock_t lock; + atomic_t suspend_wakeups; + unsigned int poisoned: 1; +}; + +struct hc_driver { + const char *description; + const char *product_desc; + size_t hcd_priv_size; + irqreturn_t (*irq)(struct usb_hcd *); + int flags; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*pci_suspend)(struct usb_hcd *, bool); + int (*pci_resume)(struct usb_hcd *, pm_message_t); + int (*pci_poweroff_late)(struct usb_hcd *, bool); + void (*stop)(struct usb_hcd *); + void (*shutdown)(struct usb_hcd *); + int (*get_frame_number)(struct usb_hcd *); + int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); + int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); + int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); + void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); + void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); + void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); + int (*hub_status_data)(struct usb_hcd *, char *); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); + int (*bus_suspend)(struct usb_hcd *); + int (*bus_resume)(struct usb_hcd *); + int (*start_port_reset)(struct usb_hcd *, unsigned int); + unsigned long (*get_resuming_ports)(struct usb_hcd *); + void (*relinquish_port)(struct usb_hcd *, int); + int (*port_handed_over)(struct usb_hcd *, int); + void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); + int (*alloc_dev)(struct usb_hcd *, struct usb_device *); + void (*free_dev)(struct usb_hcd *, struct usb_device *); + int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); + int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*address_device)(struct usb_hcd *, struct usb_device *, unsigned int); + int (*enable_device)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*reset_device)(struct usb_hcd *, struct usb_device *); + int (*update_device)(struct usb_hcd *, struct usb_device *); + int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); + int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*find_raw_port_number)(struct usb_hcd *, int); + int (*port_power)(struct usb_hcd *, int, bool); + int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int); +}; + +struct xhci_cap_regs { + __le32 hc_capbase; + __le32 hcs_params1; + __le32 hcs_params2; + __le32 hcs_params3; + __le32 hcc_params; + __le32 db_off; + __le32 run_regs_off; + __le32 hcc_params2; +}; + +struct xhci_op_regs { + __le32 command; + __le32 status; + __le32 page_size; + __le32 reserved1; + __le32 reserved2; + __le32 dev_notification; + __le64 cmd_ring; + __le32 reserved3[4]; + __le64 dcbaa_ptr; + __le32 config_reg; + __le32 reserved4[241]; + __le32 port_status_base; + __le32 port_power_base; + __le32 port_link_base; + __le32 reserved5; + __le32 reserved6[1016]; +}; + +struct xhci_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; +}; + +struct xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; +}; + +struct xhci_doorbell_array { + __le32 doorbell[256]; +}; + +struct xhci_device_context_array { + __le64 dev_context_ptrs[256]; + dma_addr_t dma; +}; + +struct xhci_erst_entry; + +struct xhci_erst { + struct xhci_erst_entry *entries; + unsigned int num_entries; + dma_addr_t erst_dma_addr; + unsigned int erst_size; +}; + +struct xhci_interrupter { + struct xhci_ring *event_ring; + struct xhci_erst erst; + struct xhci_intr_reg *ir_set; + unsigned int intr_num; + bool ip_autoclear; + u32 isoc_bei_interval; + u32 s3_irq_pending; + u32 s3_irq_control; + u32 s3_erst_size; + u64 s3_erst_base; + u64 s3_erst_dequeue; +}; + +struct xhci_segment; + +union xhci_trb; + +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + bool last_td_was_short; + struct xarray *trb_address_map; +}; + +struct xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + unsigned int num; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; +}; + +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; +}; + +struct xhci_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; +}; + +struct xhci_event_cmd { + __le64 cmd_trb; + __le32 status; + __le32 flags; +}; + +struct xhci_generic_trb { + __le32 field[4]; +}; + +union xhci_trb { + struct xhci_link_trb link; + struct xhci_transfer_event trans_event; + struct xhci_event_cmd event_cmd; + struct xhci_generic_trb generic; +}; + +struct xhci_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; +}; + +struct xhci_container_ctx; + +struct xhci_command { + struct xhci_container_ctx *in_ctx; + u32 status; + int slot_id; + struct completion *completion; + union xhci_trb *command_trb; + struct list_head cmd_list; + unsigned int timeout_ms; +}; + +struct xhci_container_ctx { + unsigned int type; + int size; + u8 *bytes; + dma_addr_t dma; +}; + +struct xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; +}; + +struct xhci_bw_info { + unsigned int ep_interval; + unsigned int mult; + unsigned int num_packets; + unsigned int max_packet_size; + unsigned int max_esit_payload; + unsigned int type; +}; + +struct xhci_stream_info; + +struct xhci_virt_ep { + struct xhci_virt_device *vdev; + unsigned int ep_index; + struct xhci_ring *ring; + struct xhci_stream_info *stream_info; + struct xhci_ring *new_ring; + unsigned int err_count; + unsigned int ep_state; + struct list_head cancelled_td_list; + struct xhci_hcd *xhci; + struct xhci_segment *queued_deq_seg; + union xhci_trb *queued_deq_ptr; + bool skip; + struct xhci_bw_info bw_info; + struct list_head bw_endpoint_list; + int next_frame_id; + bool use_extended_tbc; +}; + +struct xhci_interval_bw_table; + +struct xhci_tt_bw_info; + +struct xhci_virt_device { + int slot_id; + struct usb_device *udev; + struct xhci_container_ctx *out_ctx; + struct xhci_container_ctx *in_ctx; + struct xhci_virt_ep eps[31]; + struct xhci_port *rhub_port; + struct xhci_interval_bw_table *bw_table; + struct xhci_tt_bw_info *tt_info; + unsigned long flags; + u16 current_mel; + void *debugfs_private; +}; + +struct xhci_stream_ctx; + +struct xhci_stream_info { + struct xhci_ring **stream_rings; + unsigned int num_streams; + struct xhci_stream_ctx *stream_ctx_array; + unsigned int num_stream_ctxs; + dma_addr_t ctx_array_dma; + struct xarray trb_address_map; + struct xhci_command *free_streams_command; +}; + +struct xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; +}; + +struct xhci_port { + __le32 *addr; + int hw_portnum; + int hcd_portnum; + struct xhci_hub *rhub; + struct xhci_port_cap *port_cap; + unsigned int lpm_incapable: 1; + unsigned long resume_timestamp; + bool rexit_active; + int slot_id; + struct completion rexit_done; + struct completion u3exit_done; +}; + +struct xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; +}; + +struct xhci_interval_bw { + unsigned int num_packets; + struct list_head endpoints; + unsigned int overhead[3]; +}; + +struct xhci_interval_bw_table { + unsigned int interval0_esit_payload; + struct xhci_interval_bw interval_bw[16]; + unsigned int bw_used; + unsigned int ss_bw_in; + unsigned int ss_bw_out; +}; + +struct xhci_tt_bw_info { + struct list_head tt_list; + int slot_id; + int ttport; + struct xhci_interval_bw_table bw_table; + int active_eps; +}; + +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; +}; + +struct badblocks { + struct device *dev; + int count; + int unacked_exist; + int shift; + u64 *page; + int changed; + seqlock_t lock; + sector_t sector; + sector_t size; +}; + +struct mddev; + +struct md_rdev; + +struct md_personality { + char *name; + int level; + struct list_head list; + struct module *owner; + bool (*make_request)(struct mddev *, struct bio *); + int (*run)(struct mddev *); + int (*start)(struct mddev *); + void (*free)(struct mddev *, void *); + void (*status)(struct seq_file *, struct mddev *); + void (*error_handler)(struct mddev *, struct md_rdev *); + int (*hot_add_disk)(struct mddev *, struct md_rdev *); + int (*hot_remove_disk)(struct mddev *, struct md_rdev *); + int (*spare_active)(struct mddev *); + sector_t (*sync_request)(struct mddev *, sector_t, int *); + int (*resize)(struct mddev *, sector_t); + sector_t (*size)(struct mddev *, sector_t, int); + int (*check_reshape)(struct mddev *); + int (*start_reshape)(struct mddev *); + void (*finish_reshape)(struct mddev *); + void (*update_reshape_pos)(struct mddev *); + void (*prepare_suspend)(struct mddev *); + void (*quiesce)(struct mddev *, int); + void * (*takeover)(struct mddev *); + int (*change_consistency_policy)(struct mddev *, const char *); +}; + +struct md_cluster_info; + +struct md_thread; + +struct bitmap; + +struct mddev { + void *private; + struct md_personality *pers; + dev_t unit; + int md_minor; + struct list_head disks; + unsigned long flags; + unsigned long sb_flags; + int suspended; + struct mutex suspend_mutex; + struct percpu_ref active_io; + int ro; + int sysfs_active; + struct gendisk *gendisk; + struct kobject kobj; + int hold_active; + int major_version; + int minor_version; + int patch_version; + int persistent; + int external; + char metadata_type[17]; + int chunk_sectors; + time64_t ctime; + time64_t utime; + int level; + int layout; + char clevel[16]; + int raid_disks; + int max_disks; + sector_t dev_sectors; + sector_t array_sectors; + int external_size; + __u64 events; + int can_decrease_events; + char uuid[16]; + sector_t reshape_position; + int delta_disks; + int new_level; + int new_layout; + int new_chunk_sectors; + int reshape_backwards; + struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; + struct md_thread __attribute__((btf_type_tag("rcu"))) *sync_thread; + char *last_sync_action; + sector_t curr_resync; + sector_t curr_resync_completed; + unsigned long resync_mark; + sector_t resync_mark_cnt; + sector_t curr_mark_cnt; + sector_t resync_max_sectors; + atomic64_t resync_mismatches; + sector_t suspend_lo; + sector_t suspend_hi; + int sync_speed_min; + int sync_speed_max; + int parallel_resync; + int ok_start_degraded; + unsigned long recovery; + int recovery_disabled; + int in_sync; + struct mutex open_mutex; + struct mutex reconfig_mutex; + atomic_t active; + atomic_t openers; + int changed; + int degraded; + atomic_t recovery_active; + wait_queue_head_t recovery_wait; + sector_t recovery_cp; + sector_t resync_min; + sector_t resync_max; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_action; + struct kernfs_node *sysfs_completed; + struct kernfs_node *sysfs_degraded; + struct kernfs_node *sysfs_level; + struct work_struct del_work; + struct work_struct sync_work; + spinlock_t lock; + wait_queue_head_t sb_wait; + atomic_t pending_writes; + unsigned int safemode; + unsigned int safemode_delay; + struct timer_list safemode_timer; + struct percpu_ref writes_pending; + int sync_checkers; + struct bitmap *bitmap; + struct { + struct file *file; + loff_t offset; + unsigned long space; + loff_t default_offset; + unsigned long default_space; + struct mutex mutex; + unsigned long chunksize; + unsigned long daemon_sleep; + unsigned long max_write_behind; + int external; + int nodes; + char cluster_name[64]; + } bitmap_info; + atomic_t max_corr_read_errors; + struct list_head all_mddevs; + const struct attribute_group *to_remove; + struct bio_set bio_set; + struct bio_set sync_set; + struct bio_set io_clone_set; + struct bio *flush_bio; + atomic_t flush_pending; + ktime_t start_flush; + ktime_t prev_flush_start; + struct work_struct flush_work; + struct work_struct event_work; + mempool_t *serial_info_pool; + void (*sync_super)(struct mddev *, struct md_rdev *); + struct md_cluster_info *cluster_info; + unsigned int good_device_nr; + unsigned int noio_flag; + struct list_head deleting; + struct mutex sync_mutex; + atomic_t sync_seq; + bool has_superblocks: 1; + bool fail_last_dev: 1; + bool serialize_policy: 1; +}; + +struct md_thread { + void (*run)(struct md_thread *); + struct mddev *mddev; + wait_queue_head_t wqueue; + unsigned long flags; + struct task_struct *tsk; + unsigned long timeout; + void *private; +}; + +struct serial_in_rdev; + +struct md_rdev { + struct list_head same_set; + sector_t sectors; + struct mddev *mddev; + int last_events; + struct block_device *meta_bdev; + struct block_device *bdev; + struct file *bdev_file; + struct page *sb_page; + struct page *bb_page; + int sb_loaded; + __u64 sb_events; + sector_t data_offset; + sector_t new_data_offset; + sector_t sb_start; + int sb_size; + int preferred_minor; + struct kobject kobj; + unsigned long flags; + wait_queue_head_t blocked_wait; + int desc_nr; + int raid_disk; + int new_raid_disk; + int saved_raid_disk; + union { + sector_t recovery_offset; + sector_t journal_tail; + }; + atomic_t nr_pending; + atomic_t read_errors; + time64_t last_read_error; + atomic_t corrected_errors; + struct serial_in_rdev *serial; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_unack_badblocks; + struct kernfs_node *sysfs_badblocks; + struct badblocks badblocks; + struct { + short offset; + unsigned int size; + sector_t sector; + } ppl; +}; + +struct serial_in_rdev { + struct rb_root_cached serial_rb; + spinlock_t serial_lock; + wait_queue_head_t serial_io_wait; +}; + +enum r0layout { + RAID0_ORIG_LAYOUT = 1, + RAID0_ALT_MULTIZONE_LAYOUT = 2, +}; + +enum { + BIO_PAGE_PINNED = 0, + BIO_CLONED = 1, + BIO_BOUNCED = 2, + BIO_QUIET = 3, + BIO_CHAIN = 4, + BIO_REFFED = 5, + BIO_BPS_THROTTLED = 6, + BIO_TRACE_COMPLETION = 7, + BIO_CGROUP_ACCT = 8, + BIO_QOS_THROTTLED = 9, + BIO_QOS_MERGED = 10, + BIO_REMAPPED = 11, + BIO_ZONE_WRITE_LOCKED = 12, + BIO_FLAG_LAST = 13, +}; + +enum mddev_flags { + MD_ARRAY_FIRST_USE = 0, + MD_CLOSING = 1, + MD_JOURNAL_CLEAN = 2, + MD_HAS_JOURNAL = 3, + MD_CLUSTER_RESYNC_LOCKED = 4, + MD_FAILFAST_SUPPORTED = 5, + MD_HAS_PPL = 6, + MD_HAS_MULTIPLE_PPLS = 7, + MD_NOT_READY = 8, + MD_BROKEN = 9, + MD_DELETED = 10, +}; + +typedef u64 uint64_t; + +struct strip_zone; + +struct r0conf { + struct strip_zone *strip_zone; + struct md_rdev **devlist; + int nr_strip_zones; + enum r0layout layout; +}; + +struct strip_zone { + sector_t zone_end; + sector_t dev_start; + int nb_dev; + int disk_shift; +}; + +struct page_pool_params_fast { + unsigned int flags; + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; +}; + +struct page_pool_alloc_stats { + u64 fast; + u64 slow; + u64 slow_high_order; + u64 empty; + u64 refill; + u64 waive; +}; + +struct pp_alloc_cache { + u32 count; + struct page *cache[128]; +}; + +struct ptr_ring { + int producer; + spinlock_t producer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int size; + int batch; + void **queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct page_pool_params_slow { + struct net_device *netdev; + void (*init_callback)(struct page *, void *); + void *init_arg; +}; + +struct page_pool_recycle_stats; + +struct page_pool { + struct page_pool_params_fast p; + int cpuid; + bool has_init_callback; + long frag_users; + struct page *frag_page; + unsigned int frag_offset; + u32 pages_state_hold_cnt; + struct delayed_work release_dw; + void (*disconnect)(void *); + unsigned long defer_start; + unsigned long defer_warn; + struct page_pool_alloc_stats alloc_stats; + u32 xdp_mem_id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct pp_alloc_cache alloc; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct ptr_ring ring; + struct page_pool_recycle_stats __attribute__((btf_type_tag("percpu"))) *recycle_stats; + atomic_t pages_state_release_cnt; + refcount_t user_cnt; + u64 destroy_cnt; + struct page_pool_params_slow slow; + struct { + struct hlist_node list; + u64 detach_time; + u32 napi_id; + u32 id; + } user; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rt6key { + struct in6_addr addr; + int plen; +}; + +struct rtable; + +struct fnhe_hash_bucket; + +struct fib_nh_common { + struct net_device *nhc_dev; + netdevice_tracker nhc_dev_tracker; + int nhc_oif; + unsigned char nhc_scope; + u8 nhc_family; + u8 nhc_gw_family; + unsigned char nhc_flags; + struct lwtunnel_state *nhc_lwtstate; + union { + __be32 ipv4; + struct in6_addr ipv6; + } nhc_gw; + int nhc_weight; + atomic_t nhc_upper_bound; + struct rtable __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("percpu"))) *nhc_pcpu_rth_output; + struct rtable __attribute__((btf_type_tag("rcu"))) *nhc_rth_input; + struct fnhe_hash_bucket __attribute__((btf_type_tag("rcu"))) *nhc_exceptions; +}; + +struct rt6_exception_bucket; + +struct fib6_nh { + struct fib_nh_common nh_common; + struct rt6_info * __attribute__((btf_type_tag("percpu"))) *rt6i_pcpu; + struct rt6_exception_bucket __attribute__((btf_type_tag("rcu"))) *rt6i_exception_bucket; +}; + +struct fib6_node; + +struct dst_metrics; + +struct nexthop; + +struct fib6_info { + struct fib6_table *fib6_table; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *fib6_next; + struct fib6_node __attribute__((btf_type_tag("rcu"))) *fib6_node; + union { + struct list_head fib6_siblings; + struct list_head nh_list; + }; + unsigned int fib6_nsiblings; + refcount_t fib6_ref; + unsigned long expires; + struct hlist_node gc_link; + struct dst_metrics *fib6_metrics; + struct rt6key fib6_dst; + u32 fib6_flags; + struct rt6key fib6_src; + struct rt6key fib6_prefsrc; + u32 fib6_metric; + u8 fib6_protocol; + u8 fib6_type; + u8 offload; + u8 trap; + u8 offload_failed; + u8 should_flush: 1; + u8 dst_nocount: 1; + u8 dst_nopolicy: 1; + u8 fib6_destroying: 1; + u8 unused: 4; + struct callback_head rcu; + struct nexthop *nh; + struct fib6_nh fib6_nh[0]; +}; + +struct fib6_node { + struct fib6_node __attribute__((btf_type_tag("rcu"))) *parent; + struct fib6_node __attribute__((btf_type_tag("rcu"))) *left; + struct fib6_node __attribute__((btf_type_tag("rcu"))) *right; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *leaf; + __u16 fn_bit; + __u16 fn_flags; + int fn_sernum; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *rr_ptr; + struct callback_head rcu; +}; + +struct fib6_table { + struct hlist_node tb6_hlist; + u32 tb6_id; + spinlock_t tb6_lock; + struct fib6_node tb6_root; + struct inet_peer_base tb6_peers; + unsigned int flags; + unsigned int fib_seq; + struct hlist_head tb6_gc_hlist; +}; + +struct dst_metrics { + u32 metrics[17]; + refcount_t refcnt; +}; + +struct rtable { + struct dst_entry dst; + int rt_genid; + unsigned int rt_flags; + __u16 rt_type; + __u8 rt_is_input; + __u8 rt_uses_gateway; + int rt_iif; + u8 rt_gw_family; + union { + __be32 rt_gw4; + struct in6_addr rt_gw6; + }; + u32 rt_mtu_locked: 1; + u32 rt_pmtu: 31; +}; + +struct fib_nh_exception; + +struct fnhe_hash_bucket { + struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; +}; + +struct fib_nh_exception { + struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *fnhe_next; + int fnhe_genid; + __be32 fnhe_daddr; + u32 fnhe_pmtu; + bool fnhe_mtu_locked; + __be32 fnhe_gw; + unsigned long fnhe_expires; + struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_input; + struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_output; + unsigned long fnhe_stamp; + struct callback_head rcu; +}; + +struct rt6_info { + struct dst_entry dst; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; + int sernum; + struct rt6key rt6i_dst; + struct rt6key rt6i_src; + struct in6_addr rt6i_gateway; + struct inet6_dev *rt6i_idev; + u32 rt6i_flags; + unsigned short rt6i_nfheader_len; +}; + +struct rt6_exception_bucket { + struct hlist_head chain; + int depth; +}; + +struct rt6_statistics { + __u32 fib_nodes; + __u32 fib_route_nodes; + __u32 fib_rt_entries; + __u32 fib_rt_cache; + __u32 fib_discarded_routes; + atomic_t fib_rt_alloc; +}; + +struct qdisc_walker { + int stop; + int skip; + int count; + int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); +}; + +struct tcf_walker { + int stop; + int skip; + int count; + bool nonempty; + unsigned long cookie; + int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); +}; + +struct tcf_exts { + int action; + int police; +}; + +struct in_ifaddr { + struct hlist_node hash; + struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_next; + struct in_device *ifa_dev; + struct callback_head callback_head; + __be32 ifa_local; + __be32 ifa_address; + __be32 ifa_mask; + __u32 ifa_rt_priority; + __be32 ifa_broadcast; + unsigned char ifa_scope; + unsigned char ifa_prefixlen; + unsigned char ifa_proto; + __u32 ifa_flags; + char ifa_label[16]; + __u32 ifa_valid_lft; + __u32 ifa_preferred_lft; + unsigned long ifa_cstamp; + unsigned long ifa_tstamp; +}; + +struct ip_sf_list; + +struct ip_mc_list { + struct in_device *interface; + __be32 multiaddr; + unsigned int sfmode; + struct ip_sf_list *sources; + struct ip_sf_list *tomb; + unsigned long sfcount[2]; + union { + struct ip_mc_list *next; + struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_rcu; + }; + struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_hash; + struct timer_list timer; + int users; + refcount_t refcnt; + spinlock_t lock; + char tm_running; + char reporter; + char unsolicit_count; + char loaded; + unsigned char gsquery; + unsigned char crcount; + struct callback_head rcu; +}; + +struct page_pool_recycle_stats { + u64 cached; + u64 cache_full; + u64 ring; + u64 ring_full; + u64 released_refcnt; +}; + +typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason); + +typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *); + +typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int); + +typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *); + +typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int); + +typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int); + +typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *); + +typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *); + +typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *); + +typedef void (*btf_trace_napi_gro_frags_exit)(void *, int); + +typedef void (*btf_trace_napi_gro_receive_exit)(void *, int); + +typedef void (*btf_trace_netif_receive_skb_exit)(void *, int); + +typedef void (*btf_trace_netif_rx_exit)(void *, int); + +typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int); + +typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int); + +typedef void (*btf_trace_dql_stall_detected)(void *, unsigned short, unsigned int, unsigned long, unsigned long, unsigned long, unsigned long *); + +typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long, int); + +typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); + +typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); + +typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *); + +typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int); + +typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int); + +typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *); + +typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *); + +typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *); + +typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); + +typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); + +typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); + +typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); + +typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8); + +struct flowi4; + +typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); + +struct flowi_tunnel { + __be64 tun_id; +}; + +struct flowi_common { + int flowic_oif; + int flowic_iif; + int flowic_l3mdev; + __u32 flowic_mark; + __u8 flowic_tos; + __u8 flowic_scope; + __u8 flowic_proto; + __u8 flowic_flags; + __u32 flowic_secid; + kuid_t flowic_uid; + __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; +}; + +union flowi_uli { + struct { + __be16 dport; + __be16 sport; + } ports; + struct { + __u8 type; + __u8 code; + } icmpt; + __be32 gre_key; + struct { + __u8 type; + } mht; +}; + +struct flowi4 { + struct flowi_common __fl_common; + __be32 saddr; + __be32 daddr; + union flowi_uli uli; +}; + +typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); + +typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *); + +typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *); + +typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); + +typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); + +typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16); + +struct net_bridge; + +struct net_bridge_port; + +typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16); + +struct bridge_id { + unsigned char prio[2]; + unsigned char addr[6]; +}; + +typedef struct bridge_id bridge_id; + +struct bridge_mcast_other_query { + struct timer_list timer; + struct timer_list delay_timer; +}; + +struct bridge_mcast_own_query { + struct timer_list timer; + u32 startup_sent; +}; + +struct br_ip { + union { + __be32 ip4; + struct in6_addr ip6; + } src; + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } dst; + __be16 proto; + __u16 vid; +}; + +struct bridge_mcast_querier { + struct br_ip addr; + int port_ifidx; + seqcount_spinlock_t seq; +}; + +struct net_bridge_vlan; + +struct net_bridge_mcast { + struct net_bridge *br; + struct net_bridge_vlan *vlan; + u32 multicast_last_member_count; + u32 multicast_startup_query_count; + u8 multicast_querier; + u8 multicast_igmp_version; + u8 multicast_router; + u8 multicast_mld_version; + unsigned long multicast_last_member_interval; + unsigned long multicast_membership_interval; + unsigned long multicast_querier_interval; + unsigned long multicast_query_interval; + unsigned long multicast_query_response_interval; + unsigned long multicast_startup_query_interval; + struct hlist_head ip4_mc_router_list; + struct timer_list ip4_mc_router_timer; + struct bridge_mcast_other_query ip4_other_query; + struct bridge_mcast_own_query ip4_own_query; + struct bridge_mcast_querier ip4_querier; + struct hlist_head ip6_mc_router_list; + struct timer_list ip6_mc_router_timer; + struct bridge_mcast_other_query ip6_other_query; + struct bridge_mcast_own_query ip6_own_query; + struct bridge_mcast_querier ip6_querier; +}; + +struct bridge_mcast_stats; + +struct net_bridge { + spinlock_t lock; + spinlock_t hash_lock; + struct hlist_head frame_type_list; + struct net_device *dev; + unsigned long options; + struct rhashtable fdb_hash_tbl; + struct list_head port_list; + union { + struct rtable fake_rtable; + struct rt6_info fake_rt6_info; + }; + u16 group_fwd_mask; + u16 group_fwd_mask_required; + bridge_id designated_root; + bridge_id bridge_id; + unsigned char topology_change; + unsigned char topology_change_detected; + u16 root_port; + unsigned long max_age; + unsigned long hello_time; + unsigned long forward_delay; + unsigned long ageing_time; + unsigned long bridge_max_age; + unsigned long bridge_hello_time; + unsigned long bridge_forward_delay; + unsigned long bridge_ageing_time; + u32 root_path_cost; + u8 group_addr[6]; + enum { + BR_NO_STP = 0, + BR_KERNEL_STP = 1, + BR_USER_STP = 2, + } stp_enabled; + struct net_bridge_mcast multicast_ctx; + struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; + u32 hash_max; + spinlock_t multicast_lock; + struct rhashtable mdb_hash_tbl; + struct rhashtable sg_port_tbl; + struct hlist_head mcast_gc_list; + struct hlist_head mdb_list; + struct work_struct mcast_gc_work; + struct timer_list hello_timer; + struct timer_list tcn_timer; + struct timer_list topology_change_timer; + struct delayed_work gc_work; + struct kobject *ifobj; + u32 auto_cnt; + atomic_t fdb_n_learned; + u32 fdb_max_learned; + struct hlist_head fdb_list; +}; + +struct net_bridge_mcast_port { + struct net_bridge_port *port; + struct net_bridge_vlan *vlan; + struct bridge_mcast_own_query ip4_own_query; + struct timer_list ip4_mc_router_timer; + struct hlist_node ip4_rlist; + struct bridge_mcast_own_query ip6_own_query; + struct timer_list ip6_mc_router_timer; + struct hlist_node ip6_rlist; + unsigned char multicast_router; + u32 mdb_n_entries; + u32 mdb_max_entries; +}; + +struct metadata_dst; + +struct br_tunnel_info { + __be64 tunnel_id; + struct metadata_dst __attribute__((btf_type_tag("rcu"))) *tunnel_dst; +}; + +struct net_bridge_vlan { + struct rhash_head vnode; + struct rhash_head tnode; + u16 vid; u16 flags; - s8 link_id; - u8 keylen; - u8 key[0]; + u16 priv_flags; + u8 state; + struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *stats; + union { + struct net_bridge *br; + struct net_bridge_port *port; + }; + union { + refcount_t refcnt; + struct net_bridge_vlan *brvlan; + }; + struct br_tunnel_info tinfo; + union { + struct net_bridge_mcast br_mcast_ctx; + struct net_bridge_mcast_port port_mcast_ctx; + }; + u16 msti; + struct list_head vlist; + struct callback_head rcu; +}; + +typedef __u16 port_id; + +struct bridge_stp_xstats { + __u64 transition_blk; + __u64 transition_fwd; + __u64 rx_bpdu; + __u64 tx_bpdu; + __u64 rx_tcn; + __u64 tx_tcn; +}; + +struct net_bridge_port { + struct net_bridge *br; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct list_head list; + unsigned long flags; + struct net_bridge_port __attribute__((btf_type_tag("rcu"))) *backup_port; + u32 backup_nhid; + u8 priority; + u8 state; + u16 port_no; + unsigned char topology_change_ack; + unsigned char config_pending; + port_id port_id; + port_id designated_port; + bridge_id designated_root; + bridge_id designated_bridge; + u32 path_cost; + u32 designated_cost; + unsigned long designated_age; + struct timer_list forward_delay_timer; + struct timer_list hold_timer; + struct timer_list message_age_timer; + struct kobject kobj; + struct callback_head rcu; + struct net_bridge_mcast_port multicast_ctx; + struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; + u32 multicast_eht_hosts_limit; + u32 multicast_eht_hosts_cnt; + struct hlist_head mglist; + char sysfs_name[16]; + u16 group_fwd_mask; + u16 backup_redirected_cnt; + struct bridge_stp_xstats stp_xstats; +}; + +struct br_mcast_stats { + __u64 igmp_v1queries[2]; + __u64 igmp_v2queries[2]; + __u64 igmp_v3queries[2]; + __u64 igmp_leaves[2]; + __u64 igmp_v1reports[2]; + __u64 igmp_v2reports[2]; + __u64 igmp_v3reports[2]; + __u64 igmp_parse_errors; + __u64 mld_v1queries[2]; + __u64 mld_v2queries[2]; + __u64 mld_leaves[2]; + __u64 mld_v1reports[2]; + __u64 mld_v2reports[2]; + __u64 mld_parse_errors; + __u64 mcast_bytes[2]; + __u64 mcast_packets[2]; +}; + +struct bridge_mcast_stats { + struct br_mcast_stats mstats; + struct u64_stats_sync syncp; +}; + +enum metadata_type { + METADATA_IP_TUNNEL = 0, + METADATA_HW_PORT_MUX = 1, + METADATA_MACSEC = 2, + METADATA_XFRM = 3, +}; + +struct ip_tunnel_key { + __be64 tun_id; + union { + struct { + __be32 src; + __be32 dst; + } ipv4; + struct { + struct in6_addr src; + struct in6_addr dst; + } ipv6; + } u; + __be16 tun_flags; + u8 tos; + u8 ttl; + __be32 label; + u32 nhid; + __be16 tp_src; + __be16 tp_dst; + __u8 flow_flags; +}; + +struct ip_tunnel_encap { + u16 type; + u16 flags; + __be16 sport; + __be16 dport; +}; + +struct dst_cache_pcpu; + +struct dst_cache { + struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; + unsigned long reset_ts; +}; + +struct ip_tunnel_info { + struct ip_tunnel_key key; + struct ip_tunnel_encap encap; + struct dst_cache dst_cache; + u8 options_len; + u8 mode; +}; + +struct hw_port_info { + struct net_device *lower_dev; + u32 port_id; +}; + +typedef u64 sci_t; + +struct macsec_info { + sci_t sci; +}; + +struct xfrm_md_info { + u32 if_id; + int link; + struct dst_entry *dst_orig; +}; + +struct metadata_dst { + struct dst_entry dst; + enum metadata_type type; + union { + struct ip_tunnel_info tun_info; + struct hw_port_info port_info; + struct macsec_info macsec_info; + struct xfrm_md_info xfrm_info; + } u; +}; + +struct net_bridge_fdb_entry; + +typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *); + +struct mac_addr { + unsigned char addr[6]; +}; + +typedef struct mac_addr mac_addr; + +struct net_bridge_fdb_key { + mac_addr addr; + u16 vlan_id; +}; + +struct net_bridge_fdb_entry { + struct rhash_head rhnode; + struct net_bridge_port *dst; + struct net_bridge_fdb_key key; + struct hlist_node fdb_node; + unsigned long flags; + long: 64; + long: 64; + unsigned long updated; + unsigned long used; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, unsigned long); + +typedef void (*btf_trace_br_mdb_full)(void *, const struct net_device *, const struct br_ip *); + +typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); + +typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); + +typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); + +typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); + +typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool); + +typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32); + +typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int); + +typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); + +struct trace_print_flags { + unsigned long mask; + const char *name; +}; + +enum { + EVENT_FILE_FL_ENABLED = 1, + EVENT_FILE_FL_RECORDED_CMD = 2, + EVENT_FILE_FL_RECORDED_TGID = 4, + EVENT_FILE_FL_FILTERED = 8, + EVENT_FILE_FL_NO_SET_FILTER = 16, + EVENT_FILE_FL_SOFT_MODE = 32, + EVENT_FILE_FL_SOFT_DISABLED = 64, + EVENT_FILE_FL_TRIGGER_MODE = 128, + EVENT_FILE_FL_TRIGGER_COND = 256, + EVENT_FILE_FL_PID_FILTER = 512, + EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, +}; + +enum { + TCPF_ESTABLISHED = 2, + TCPF_SYN_SENT = 4, + TCPF_SYN_RECV = 8, + TCPF_FIN_WAIT1 = 16, + TCPF_FIN_WAIT2 = 32, + TCPF_TIME_WAIT = 64, + TCPF_CLOSE = 128, + TCPF_CLOSE_WAIT = 256, + TCPF_LAST_ACK = 512, + TCPF_LISTEN = 1024, + TCPF_CLOSING = 2048, + TCPF_NEW_SYN_RECV = 4096, + TCPF_BOUND_INACTIVE = 8192, +}; + +enum tcp_ca_state { + TCP_CA_Open = 0, + TCP_CA_Disorder = 1, + TCP_CA_CWR = 2, + TCP_CA_Recovery = 3, + TCP_CA_Loss = 4, +}; + +enum { + IPPROTO_IP = 0, + IPPROTO_ICMP = 1, + IPPROTO_IGMP = 2, + IPPROTO_IPIP = 4, + IPPROTO_TCP = 6, + IPPROTO_EGP = 8, + IPPROTO_PUP = 12, + IPPROTO_UDP = 17, + IPPROTO_IDP = 22, + IPPROTO_TP = 29, + IPPROTO_DCCP = 33, + IPPROTO_IPV6 = 41, + IPPROTO_RSVP = 46, + IPPROTO_GRE = 47, + IPPROTO_ESP = 50, + IPPROTO_AH = 51, + IPPROTO_MTP = 92, + IPPROTO_BEETPH = 94, + IPPROTO_ENCAP = 98, + IPPROTO_PIM = 103, + IPPROTO_COMP = 108, + IPPROTO_L2TP = 115, + IPPROTO_SCTP = 132, + IPPROTO_UDPLITE = 136, + IPPROTO_MPLS = 137, + IPPROTO_ETHERNET = 143, + IPPROTO_RAW = 255, + IPPROTO_MPTCP = 262, + IPPROTO_MAX = 263, +}; + +struct trace_event_raw_kfree_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + unsigned short protocol; + enum skb_drop_reason reason; + char __data[0]; +}; + +struct trace_event_raw_consume_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + char __data[0]; +}; + +struct trace_event_raw_skb_copy_datagram_iovec { + struct trace_entry ent; + const void *skbaddr; + int len; + char __data[0]; +}; + +struct xsk_tx_metadata_compl { + __u64 *tx_timestamp; +}; + +struct skb_frag { + netmem_ref netmem; + unsigned int len; + unsigned int offset; +}; + +typedef struct skb_frag skb_frag_t; + +struct skb_shared_info { + __u8 flags; + __u8 meta_len; + __u8 nr_frags; + __u8 tx_flags; + unsigned short gso_size; + unsigned short gso_segs; + struct sk_buff *frag_list; + union { + struct skb_shared_hwtstamps hwtstamps; + struct xsk_tx_metadata_compl xsk_meta; + }; + unsigned int gso_type; + u32 tskey; + atomic_t dataref; + unsigned int xdp_frags_size; + void *destructor_arg; + skb_frag_t frags[17]; +}; + +struct trace_event_raw_net_dev_start_xmit { + struct trace_entry ent; + u32 __data_loc_name; + u16 queue_mapping; + const void *skbaddr; + bool vlan_tagged; + u16 vlan_proto; + u16 vlan_tci; + u16 protocol; + u8 ip_summed; + unsigned int len; + unsigned int data_len; + int network_offset; + bool transport_offset_valid; + int transport_offset; + u8 tx_flags; + u16 gso_size; + u16 gso_segs; + u16 gso_type; + char __data[0]; +}; + +struct trace_event_raw_net_dev_xmit { + struct trace_entry ent; + void *skbaddr; + unsigned int len; + int rc; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_net_dev_xmit_timeout { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_driver; + int queue_index; + char __data[0]; +}; + +struct trace_event_raw_net_dev_template { + struct trace_entry ent; + void *skbaddr; + unsigned int len; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_net_dev_rx_verbose_template { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int napi_id; + u16 queue_mapping; + const void *skbaddr; + bool vlan_tagged; + u16 vlan_proto; + u16 vlan_tci; + u16 protocol; + u8 ip_summed; + u32 hash; + bool l4_hash; + unsigned int len; + unsigned int data_len; + unsigned int truesize; + bool mac_header_valid; + int mac_header; + unsigned char nr_frags; + u16 gso_size; + u16 gso_type; + char __data[0]; +}; + +struct trace_event_raw_net_dev_rx_exit_template { + struct trace_entry ent; + int ret; + char __data[0]; +}; + +struct trace_event_raw_napi_poll { + struct trace_entry ent; + struct napi_struct *napi; + u32 __data_loc_dev_name; + int work; + int budget; + char __data[0]; +}; + +struct trace_event_raw_dql_stall_detected { + struct trace_entry ent; + unsigned short thrs; + unsigned int len; + unsigned long last_reap; + unsigned long hist_head; + unsigned long now; + unsigned long hist[4]; + char __data[0]; +}; + +struct trace_event_raw_sock_rcvqueue_full { + struct trace_entry ent; + int rmem_alloc; + unsigned int truesize; + int sk_rcvbuf; + char __data[0]; +}; + +struct trace_event_raw_sock_exceed_buf_limit { + struct trace_entry ent; + char name[32]; + long sysctl_mem[3]; + long allocated; + int sysctl_rmem; + int rmem_alloc; + int sysctl_wmem; + int wmem_alloc; + int wmem_queued; + int kind; + char __data[0]; +}; + +struct ip_options; + +struct inet_cork { + unsigned int flags; + __be32 addr; + struct ip_options *opt; + unsigned int fragsize; + int length; + struct dst_entry *dst; + u8 tx_flags; + __u8 ttl; + __s16 tos; + char priority; + __u16 gso_size; + u64 transmit_time; + u32 mark; +}; + +struct flowi6 { + struct flowi_common __fl_common; + struct in6_addr daddr; + struct in6_addr saddr; + __be32 flowlabel; + union flowi_uli uli; + __u32 mp_hash; +}; + +struct flowi { + union { + struct flowi_common __fl_common; + struct flowi4 ip4; + struct flowi6 ip6; + } u; +}; + +struct inet_cork_full { + struct inet_cork base; + struct flowi fl; +}; + +struct ipv6_pinfo; + +struct ip_options_rcu; + +struct ip_mc_socklist; + +struct inet_sock { + struct sock sk; + struct ipv6_pinfo *pinet6; + unsigned long inet_flags; + __be32 inet_saddr; + __s16 uc_ttl; + __be16 inet_sport; + struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt; + atomic_t inet_id; + __u8 tos; + __u8 min_ttl; + __u8 mc_ttl; + __u8 pmtudisc; + __u8 rcv_tos; + __u8 convert_csum; + int uc_index; + int mc_index; + __be32 mc_addr; + u32 local_port_range; + struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list; + struct inet_cork_full cork; +}; + +struct in6_pktinfo { + struct in6_addr ipi6_addr; + int ipi6_ifindex; +}; + +struct ipv6_txoptions; + +struct inet6_cork { + struct ipv6_txoptions *opt; + u8 hop_limit; + u8 tclass; +}; + +struct ipv6_mc_socklist; + +struct ipv6_ac_socklist; + +struct ipv6_fl_socklist; + +struct ipv6_pinfo { + struct in6_addr saddr; + struct in6_pktinfo sticky_pktinfo; + const struct in6_addr *daddr_cache; + __be32 flow_label; + __u32 frag_size; + s16 hop_limit; + u8 mcast_hops; + int ucast_oif; + int mcast_oif; + union { + struct { + __u16 srcrt: 1; + __u16 osrcrt: 1; + __u16 rxinfo: 1; + __u16 rxoinfo: 1; + __u16 rxhlim: 1; + __u16 rxohlim: 1; + __u16 hopopts: 1; + __u16 ohopopts: 1; + __u16 dstopts: 1; + __u16 odstopts: 1; + __u16 rxflow: 1; + __u16 rxtclass: 1; + __u16 rxpmtu: 1; + __u16 rxorigdstaddr: 1; + __u16 recvfragsize: 1; + } bits; + __u16 all; + } rxopt; + __u8 srcprefs; + __u8 pmtudisc; + __u8 min_hopcount; + __u8 tclass; + __be32 rcv_flowinfo; + __u32 dst_cookie; + struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_mc_list; + struct ipv6_ac_socklist *ipv6_ac_list; + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_fl_list; + struct ipv6_txoptions __attribute__((btf_type_tag("rcu"))) *opt; + struct sk_buff *pktoptions; + struct sk_buff *rxpmtu; + struct inet6_cork cork; +}; + +struct ip6_sf_socklist; + +struct ipv6_mc_socklist { + struct in6_addr addr; + int ifindex; + unsigned int sfmode; + struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *next; + struct ip6_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist; + struct callback_head rcu; +}; + +struct ip6_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + struct in6_addr sl_addr[0]; +}; + +struct ipv6_ac_socklist { + struct in6_addr acl_addr; + int acl_ifindex; + struct ipv6_ac_socklist *acl_next; +}; + +struct ip6_flowlabel; + +struct ipv6_fl_socklist { + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; + struct ip6_flowlabel *fl; + struct callback_head rcu; +}; + +struct ip6_flowlabel { + struct ip6_flowlabel __attribute__((btf_type_tag("rcu"))) *next; + __be32 label; + atomic_t users; + struct in6_addr dst; + struct ipv6_txoptions *opt; + unsigned long linger; + struct callback_head rcu; + u8 share; + union { + struct pid *pid; + kuid_t uid; + } owner; + unsigned long lastuse; + unsigned long expires; + struct net *fl_net; +}; + +struct ipv6_opt_hdr; + +struct ipv6_rt_hdr; + +struct ipv6_txoptions { + refcount_t refcnt; + int tot_len; + __u16 opt_flen; + __u16 opt_nflen; + struct ipv6_opt_hdr *hopopt; + struct ipv6_opt_hdr *dst0opt; + struct ipv6_rt_hdr *srcrt; + struct ipv6_opt_hdr *dst1opt; + struct callback_head rcu; +}; + +struct ipv6_opt_hdr { + __u8 nexthdr; + __u8 hdrlen; +}; + +struct ipv6_rt_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; +}; + +struct ip_options { + __be32 faddr; + __be32 nexthop; + unsigned char optlen; + unsigned char srr; + unsigned char rr; + unsigned char ts; + unsigned char is_strictroute: 1; + unsigned char srr_is_hit: 1; + unsigned char is_changed: 1; + unsigned char rr_needaddr: 1; + unsigned char ts_needtime: 1; + unsigned char ts_needaddr: 1; + unsigned char router_alert; + unsigned char cipso; + unsigned char __pad2; + unsigned char __data[0]; +}; + +struct ip_options_rcu { + struct callback_head rcu; + struct ip_options opt; +}; + +struct in_addr { + __be32 s_addr; +}; + +struct ip_mreqn { + struct in_addr imr_multiaddr; + struct in_addr imr_address; + int imr_ifindex; +}; + +struct ip_sf_socklist; + +struct ip_mc_socklist { + struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *next_rcu; + struct ip_mreqn multi; + unsigned int sfmode; + struct ip_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist; + struct callback_head rcu; +}; + +struct trace_event_raw_inet_sock_set_state { + struct trace_entry ent; + const void *skaddr; + int oldstate; + int newstate; + __u16 sport; + __u16 dport; + __u16 family; + __u16 protocol; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + char __data[0]; +}; + +struct trace_event_raw_inet_sk_error_report { + struct trace_entry ent; + int error; + __u16 sport; + __u16 dport; + __u16 family; + __u16 protocol; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + char __data[0]; +}; + +struct trace_event_raw_sk_data_ready { + struct trace_entry ent; + const void *skaddr; + __u16 family; + __u16 protocol; + unsigned long ip; + char __data[0]; +}; + +struct trace_event_raw_sock_msg_length { + struct trace_entry ent; + void *sk; + __u16 family; + __u16 protocol; + int ret; + int flags; + char __data[0]; +}; + +struct trace_event_raw_udp_fail_queue_rcv_skb { + struct trace_entry ent; + int rc; + __u16 lport; + char __data[0]; +}; + +struct trace_event_raw_tcp_event_sk_skb { + struct trace_entry ent; + const void *skbaddr; + const void *skaddr; + int state; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + char __data[0]; +}; + +struct trace_event_raw_tcp_event_sk { + struct trace_entry ent; + const void *skaddr; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + __u64 sock_cookie; + char __data[0]; +}; + +struct inet_request_sock { + struct request_sock req; + u16 snd_wscale: 4; + u16 rcv_wscale: 4; + u16 tstamp_ok: 1; + u16 sack_ok: 1; + u16 wscale_ok: 1; + u16 ecn_ok: 1; + u16 acked: 1; + u16 no_srccheck: 1; + u16 smc_ok: 1; + u32 ir_mark; + union { + struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *ireq_opt; + struct { + struct ipv6_txoptions *ipv6_opt; + struct sk_buff *pktopts; + }; + }; +}; + +struct trace_event_raw_tcp_retransmit_synack { + struct trace_entry ent; + const void *skaddr; + const void *req; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + char __data[0]; +}; + +struct tcphdr { + __be16 source; + __be16 dest; + __be32 seq; + __be32 ack_seq; + __u16 res1: 4; + __u16 doff: 4; + __u16 fin: 1; + __u16 syn: 1; + __u16 rst: 1; + __u16 psh: 1; + __u16 ack: 1; + __u16 urg: 1; + __u16 ece: 1; + __u16 cwr: 1; + __be16 window; + __sum16 check; + __be16 urg_ptr; +}; + +struct fastopen_queue { + struct request_sock *rskq_rst_head; + struct request_sock *rskq_rst_tail; + spinlock_t lock; + int qlen; + int max_qlen; + struct tcp_fastopen_context __attribute__((btf_type_tag("rcu"))) *ctx; +}; + +struct request_sock_queue { + spinlock_t rskq_lock; + u8 rskq_defer_accept; + u32 synflood_warned; + atomic_t qlen; + atomic_t young; + struct request_sock *rskq_accept_head; + struct request_sock *rskq_accept_tail; + struct fastopen_queue fastopenq; +}; + +struct inet_bind_bucket; + +struct inet_bind2_bucket; + +struct inet_connection_sock_af_ops; + +struct tcp_ulp_ops; + +struct inet_connection_sock { + struct inet_sock icsk_inet; + struct request_sock_queue icsk_accept_queue; + struct inet_bind_bucket *icsk_bind_hash; + struct inet_bind2_bucket *icsk_bind2_hash; + unsigned long icsk_timeout; + struct timer_list icsk_retransmit_timer; + struct timer_list icsk_delack_timer; + __u32 icsk_rto; + __u32 icsk_rto_min; + __u32 icsk_delack_max; + __u32 icsk_pmtu_cookie; + const struct tcp_congestion_ops *icsk_ca_ops; + const struct inet_connection_sock_af_ops *icsk_af_ops; + const struct tcp_ulp_ops *icsk_ulp_ops; + void __attribute__((btf_type_tag("rcu"))) *icsk_ulp_data; + void (*icsk_clean_acked)(struct sock *, u32); + unsigned int (*icsk_sync_mss)(struct sock *, u32); + __u8 icsk_ca_state: 5; + __u8 icsk_ca_initialized: 1; + __u8 icsk_ca_setsockopt: 1; + __u8 icsk_ca_dst_locked: 1; + __u8 icsk_retransmits; + __u8 icsk_pending; + __u8 icsk_backoff; + __u8 icsk_syn_retries; + __u8 icsk_probes_out; + __u16 icsk_ext_hdr_len; + struct { + __u8 pending; + __u8 quick; + __u8 pingpong; + __u8 retry; + __u32 ato: 8; + __u32 lrcv_flowlabel: 20; + __u32 unused: 4; + unsigned long timeout; + __u32 lrcvtime; + __u16 last_seg_size; + __u16 rcv_mss; + } icsk_ack; + struct { + int search_high; + int search_low; + u32 probe_size: 31; + u32 enabled: 1; + u32 probe_timestamp; + } icsk_mtup; + u32 icsk_probes_tstamp; + u32 icsk_user_timeout; + u64 icsk_ca_priv[13]; +}; + +struct minmax_sample { + u32 t; + u32 v; +}; + +struct minmax { + struct minmax_sample s[3]; +}; + +struct tcp_options_received { + int ts_recent_stamp; + u32 ts_recent; + u32 rcv_tsval; + u32 rcv_tsecr; + u16 saw_tstamp: 1; + u16 tstamp_ok: 1; + u16 dsack: 1; + u16 wscale_ok: 1; + u16 sack_ok: 3; + u16 smc_ok: 1; + u16 snd_wscale: 4; + u16 rcv_wscale: 4; + u8 saw_unknown: 1; + u8 unused: 7; + u8 num_sacks; + u16 user_mss; + u16 mss_clamp; +}; + +struct tcp_rack { + u64 mstamp; + u32 rtt_us; + u32 end_seq; + u32 last_delivered; + u8 reo_wnd_steps; + u8 reo_wnd_persist: 5; + u8 dsack_seen: 1; + u8 advanced: 1; +}; + +struct tcp_sack_block { + u32 start_seq; + u32 end_seq; +}; + +struct tcp_fastopen_request; + +struct tcp_sock { + struct inet_connection_sock inet_conn; + __u8 __cacheline_group_begin__tcp_sock_read_tx[0]; + u32 max_window; + u32 rcv_ssthresh; + u32 reordering; + u32 notsent_lowat; + u16 gso_segs; + struct sk_buff *lost_skb_hint; + struct sk_buff *retransmit_skb_hint; + __u8 __cacheline_group_end__tcp_sock_read_tx[0]; + __u8 __cacheline_group_begin__tcp_sock_read_txrx[0]; + u32 tsoffset; + u32 snd_wnd; + u32 mss_cache; + u32 snd_cwnd; + u32 prr_out; + u32 lost_out; + u32 sacked_out; + u16 tcp_header_len; + u8 scaling_ratio; + u8 chrono_type: 2; + u8 repair: 1; + u8 tcp_usec_ts: 1; + u8 is_sack_reneg: 1; + u8 is_cwnd_limited: 1; + __u8 __cacheline_group_end__tcp_sock_read_txrx[0]; + __u8 __cacheline_group_begin__tcp_sock_read_rx[0]; + u32 copied_seq; + u32 rcv_tstamp; + u32 snd_wl1; + u32 tlp_high_seq; + u32 rttvar_us; + u32 retrans_out; + u16 advmss; + u16 urg_data; + u32 lost; + struct minmax rtt_min; + struct rb_root out_of_order_queue; + u32 snd_ssthresh; + __u8 __cacheline_group_end__tcp_sock_read_rx[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + __u8 __cacheline_group_begin__tcp_sock_write_tx[0]; + u32 segs_out; + u32 data_segs_out; + u64 bytes_sent; + u32 snd_sml; + u32 chrono_start; + u32 chrono_stat[3]; + u32 write_seq; + u32 pushed_seq; + u32 lsndtime; + u32 mdev_us; + u32 rtt_seq; + u64 tcp_wstamp_ns; + u64 tcp_clock_cache; + u64 tcp_mstamp; + struct list_head tsorted_sent_queue; + struct sk_buff *highest_sack; + u8 ecn_flags; + __u8 __cacheline_group_end__tcp_sock_write_tx[0]; + __u8 __cacheline_group_begin__tcp_sock_write_txrx[0]; + __be32 pred_flags; + u32 rcv_nxt; + u32 snd_nxt; + u32 snd_una; + u32 window_clamp; + u32 srtt_us; + u32 packets_out; + u32 snd_up; + u32 delivered; + u32 delivered_ce; + u32 app_limited; + u32 rcv_wnd; + struct tcp_options_received rx_opt; + u8 nonagle: 4; + u8 rate_app_limited: 1; + __u8 __cacheline_group_end__tcp_sock_write_txrx[0]; + long: 0; + __u8 __cacheline_group_begin__tcp_sock_write_rx[0]; + u64 bytes_received; + u32 segs_in; + u32 data_segs_in; + u32 rcv_wup; + u32 max_packets_out; + u32 cwnd_usage_seq; + u32 rate_delivered; + u32 rate_interval_us; + u32 rcv_rtt_last_tsecr; + u64 first_tx_mstamp; + u64 delivered_mstamp; + u64 bytes_acked; + struct { + u32 rtt_us; + u32 seq; + u64 time; + } rcv_rtt_est; + struct { + u32 space; + u32 seq; + u64 time; + } rcvq_space; + __u8 __cacheline_group_end__tcp_sock_write_rx[0]; + u32 dsack_dups; + u32 compressed_ack_rcv_nxt; + struct list_head tsq_node; + struct tcp_rack rack; + u8 compressed_ack; + u8 dup_ack_counter: 2; + u8 tlp_retrans: 1; + u8 unused: 5; + u8 thin_lto: 1; + u8 recvmsg_inq: 1; + u8 fastopen_connect: 1; + u8 fastopen_no_cookie: 1; + u8 fastopen_client_fail: 2; + u8 frto: 1; + u8 repair_queue; + u8 save_syn: 2; + u8 syn_data: 1; + u8 syn_fastopen: 1; + u8 syn_fastopen_exp: 1; + u8 syn_fastopen_ch: 1; + u8 syn_data_acked: 1; + u8 keepalive_probes; + u32 tcp_tx_delay; + u32 mdev_max_us; + u32 reord_seen; + u32 snd_cwnd_cnt; + u32 snd_cwnd_clamp; + u32 snd_cwnd_used; + u32 snd_cwnd_stamp; + u32 prior_cwnd; + u32 prr_delivered; + u32 last_oow_ack_time; + struct hrtimer pacing_timer; + struct hrtimer compressed_ack_timer; + struct sk_buff *ooo_last_skb; + struct tcp_sack_block duplicate_sack[1]; + struct tcp_sack_block selective_acks[4]; + struct tcp_sack_block recv_sack_cache[4]; + int lost_cnt_hint; + u32 prior_ssthresh; + u32 high_seq; + u32 retrans_stamp; + u32 undo_marker; + int undo_retrans; + u64 bytes_retrans; + u32 total_retrans; + u32 rto_stamp; + u16 total_rto; + u16 total_rto_recoveries; + u32 total_rto_time; + u32 urg_seq; + unsigned int keepalive_time; + unsigned int keepalive_intvl; + int linger2; + u8 bpf_sock_ops_cb_flags; + u8 bpf_chg_cc_inprogress: 1; + u16 timeout_rehash; + u32 rcv_ooopack; + struct { + u32 probe_seq_start; + u32 probe_seq_end; + } mtu_probe; + u32 plb_rehash; + u32 mtu_info; + struct tcp_fastopen_request *fastopen_req; + struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; + struct saved_syn *saved_syn; + long: 64; +}; + +struct inet_bind_bucket { + possible_net_t ib_net; + int l3mdev; + unsigned short port; + signed char fastreuse; + signed char fastreuseport; + kuid_t fastuid; + struct in6_addr fast_v6_rcv_saddr; + __be32 fast_rcv_saddr; + unsigned short fast_sk_family; + bool fast_ipv6_only; + struct hlist_node node; + struct hlist_head bhash2; +}; + +struct inet_bind2_bucket { + possible_net_t ib_net; + int l3mdev; + unsigned short port; + unsigned short addr_type; + struct in6_addr v6_rcv_saddr; + struct hlist_node node; + struct hlist_node bhash_node; + struct hlist_head owners; +}; + +struct inet_connection_sock_af_ops { + int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *); + void (*send_check)(struct sock *, struct sk_buff *); + int (*rebuild_header)(struct sock *); + void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *); + int (*conn_request)(struct sock *, struct sk_buff *); + struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *); + u16 net_header_len; + u16 sockaddr_len; + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*addr2sockaddr)(struct sock *, struct sockaddr *); + void (*mtu_reduced)(struct sock *); +}; + +struct tcp_ulp_ops { + struct list_head list; + int (*init)(struct sock *); + void (*update)(struct sock *, struct proto *, void (*)(struct sock *)); + void (*release)(struct sock *); + int (*get_info)(struct sock *, struct sk_buff *); + size_t (*get_info_size)(const struct sock *); + void (*clone)(const struct request_sock *, struct sock *, const gfp_t); + char name[16]; + struct module *owner; +}; + +struct tcp_fastopen_cookie { + __le64 val[2]; + s8 len; + bool exp; +}; + +struct tcp_fastopen_request { + struct tcp_fastopen_cookie cookie; + struct msghdr *data; + size_t size; + int copied; + struct ubuf_info *uarg; +}; + +struct trace_event_raw_tcp_probe { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + __u16 sport; + __u16 dport; + __u16 family; + __u32 mark; + __u16 data_len; + __u32 snd_nxt; + __u32 snd_una; + __u32 snd_cwnd; + __u32 ssthresh; + __u32 snd_wnd; + __u32 srtt; + __u32 rcv_wnd; + __u64 sock_cookie; + const void *skbaddr; + const void *skaddr; + char __data[0]; +}; + +struct iphdr { + __u8 ihl: 4; + __u8 version: 4; + __u8 tos; + __be16 tot_len; + __be16 id; + __be16 frag_off; + __u8 ttl; + __u8 protocol; + __sum16 check; + union { + struct { + __be32 saddr; + __be32 daddr; + }; + struct { + __be32 saddr; + __be32 daddr; + } addrs; + }; +}; + +struct ipv6hdr { + __u8 priority: 4; + __u8 version: 4; + __u8 flow_lbl[3]; + __be16 payload_len; + __u8 nexthdr; + __u8 hop_limit; + union { + struct { + struct in6_addr saddr; + struct in6_addr daddr; + }; + struct { + struct in6_addr saddr; + struct in6_addr daddr; + } addrs; + }; +}; + +struct trace_event_raw_tcp_event_skb { + struct trace_entry ent; + const void *skbaddr; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; +}; + +struct trace_event_raw_tcp_cong_state_set { + struct trace_entry ent; + const void *skaddr; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + __u8 cong_state; + char __data[0]; +}; + +struct trace_event_raw_fib_table_lookup { + struct trace_entry ent; + u32 tb_id; + int err; + int oif; + int iif; + u8 proto; + __u8 tos; + __u8 scope; + __u8 flags; + __u8 src[4]; + __u8 dst[4]; + __u8 gw4[4]; + __u8 gw6[16]; + u16 sport; + u16 dport; + char name[16]; + char __data[0]; +}; + +struct trace_event_raw_qdisc_dequeue { + struct trace_entry ent; + struct Qdisc *qdisc; + const struct netdev_queue *txq; + int packets; + void *skbaddr; + int ifindex; + u32 handle; + u32 parent; + unsigned long txq_state; + char __data[0]; +}; + +struct trace_event_raw_qdisc_enqueue { + struct trace_entry ent; + struct Qdisc *qdisc; + const struct netdev_queue *txq; + void *skbaddr; + int ifindex; + u32 handle; + u32 parent; + char __data[0]; +}; + +struct trace_event_raw_qdisc_reset { + struct trace_entry ent; + u32 __data_loc_dev; + u32 __data_loc_kind; + u32 parent; + u32 handle; + char __data[0]; +}; + +struct trace_event_raw_qdisc_destroy { + struct trace_entry ent; + u32 __data_loc_dev; + u32 __data_loc_kind; + u32 parent; + u32 handle; + char __data[0]; +}; + +struct trace_event_raw_qdisc_create { + struct trace_entry ent; + u32 __data_loc_dev; + u32 __data_loc_kind; + u32 parent; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_add { + struct trace_entry ent; + u8 ndm_flags; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + u16 nlh_flags; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_external_learn_add { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; +}; + +struct trace_event_raw_fdb_delete { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; +}; + +struct trace_event_raw_br_fdb_update { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + unsigned long flags; + char __data[0]; +}; + +struct trace_event_raw_br_mdb_full { + struct trace_entry ent; + u32 __data_loc_dev; + int af; + u16 vid; + __u8 src[16]; + __u8 grp[16]; + __u8 grpmac[6]; + char __data[0]; +}; + +struct trace_event_raw_page_pool_release { + struct trace_entry ent; + const struct page_pool *pool; + s32 inflight; + u32 hold; + u32 release; + u64 cnt; + char __data[0]; +}; + +struct trace_event_raw_page_pool_state_release { + struct trace_entry ent; + const struct page_pool *pool; + const struct page *page; + u32 release; + unsigned long pfn; + char __data[0]; +}; + +struct trace_event_raw_page_pool_state_hold { + struct trace_entry ent; + const struct page_pool *pool; + const struct page *page; + u32 hold; + unsigned long pfn; + char __data[0]; +}; + +struct trace_event_raw_page_pool_update_nid { + struct trace_entry ent; + const struct page_pool *pool; + int pool_nid; + int new_nid; + char __data[0]; +}; + +struct trace_event_raw_neigh_create { + struct trace_entry ent; + u32 family; + u32 __data_loc_dev; + int entries; + u8 created; + u8 gc_exempt; + u8 primary_key4[4]; + u8 primary_key6[16]; + char __data[0]; +}; + +struct trace_event_raw_neigh_update { + struct trace_entry ent; + u32 family; + u32 __data_loc_dev; + u8 lladdr[32]; + u8 lladdr_len; + u8 flags; + u8 nud_state; + u8 type; + u8 dead; + int refcnt; + __u8 primary_key4[4]; + __u8 primary_key6[16]; + unsigned long confirmed; + unsigned long updated; + unsigned long used; + u8 new_lladdr[32]; + u8 new_state; + u32 update_flags; + u32 pid; + char __data[0]; +}; + +struct trace_event_raw_neigh__update { + struct trace_entry ent; + u32 family; + u32 __data_loc_dev; + u8 lladdr[32]; + u8 lladdr_len; + u8 flags; + u8 nud_state; + u8 type; + u8 dead; + int refcnt; + __u8 primary_key4[4]; + __u8 primary_key6[16]; + unsigned long confirmed; + unsigned long updated; + unsigned long used; + u32 err; + char __data[0]; +}; + +struct eventfs_inode; + +struct trace_subsystem_dir; + +struct trace_event_file { + struct list_head list; + struct trace_event_call *event_call; + struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; + struct eventfs_inode *ei; + struct trace_array *tr; + struct trace_subsystem_dir *system; + struct list_head triggers; + unsigned long flags; + atomic_t ref; + atomic_t sm_ref; + atomic_t tm_ref; +}; + +struct prog_entry; + +struct event_filter { + struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; + char *filter_string; +}; + +struct trace_buffer; + +struct ring_buffer_event; + +struct trace_event_buffer { + struct trace_buffer *buffer; + struct ring_buffer_event *event; + struct trace_event_file *trace_file; + void *entry; + unsigned int trace_ctx; + struct pt_regs *regs; +}; + +struct ring_buffer_event { + u32 type_len: 5; + u32 time_delta: 27; + u32 array[0]; +}; + +struct bpf_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; + u64 cookie; +}; + +struct trace_event_data_offsets_net_dev_start_xmit { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_xmit { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_xmit_timeout { + u32 name; + const void *name_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_net_dev_template { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_net_dev_rx_verbose_template { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_napi_poll { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct trace_event_data_offsets_qdisc_reset { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_qdisc_destroy { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_qdisc_create { + u32 dev; + const void *dev_ptr_; + u32 kind; + const void *kind_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_add { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_external_learn_add { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_fdb_delete { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_fdb_update { + u32 br_dev; + const void *br_dev_ptr_; + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_br_mdb_full { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_neigh_create { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_neigh_update { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_neigh__update { + u32 dev; + const void *dev_ptr_; +}; + +struct trace_event_data_offsets_kfree_skb {}; + +struct trace_event_data_offsets_consume_skb {}; + +struct trace_event_data_offsets_skb_copy_datagram_iovec {}; + +struct trace_event_data_offsets_net_dev_rx_exit_template {}; + +struct trace_event_data_offsets_dql_stall_detected {}; + +struct trace_event_data_offsets_sock_rcvqueue_full {}; + +struct trace_event_data_offsets_sock_exceed_buf_limit {}; + +struct trace_event_data_offsets_inet_sock_set_state {}; + +struct trace_event_data_offsets_inet_sk_error_report {}; + +struct trace_event_data_offsets_sk_data_ready {}; + +struct trace_event_data_offsets_sock_msg_length {}; + +struct trace_event_data_offsets_udp_fail_queue_rcv_skb {}; + +struct trace_event_data_offsets_tcp_event_sk_skb {}; + +struct trace_event_data_offsets_tcp_event_sk {}; + +struct trace_event_data_offsets_tcp_retransmit_synack {}; + +struct sockaddr_in6 { + unsigned short sin6_family; + __be16 sin6_port; + __be32 sin6_flowinfo; + struct in6_addr sin6_addr; + __u32 sin6_scope_id; +}; + +struct sockaddr_in { + __kernel_sa_family_t sin_family; + __be16 sin_port; + struct in_addr sin_addr; + unsigned char __pad[8]; +}; + +struct trace_event_data_offsets_tcp_probe {}; + +struct trace_event_data_offsets_tcp_event_skb {}; + +struct trace_event_data_offsets_tcp_cong_state_set {}; + +struct trace_event_data_offsets_fib_table_lookup {}; + +struct trace_event_data_offsets_qdisc_dequeue {}; + +struct trace_event_data_offsets_qdisc_enqueue {}; + +struct trace_event_data_offsets_page_pool_release {}; + +struct trace_event_data_offsets_page_pool_state_release {}; + +struct trace_event_data_offsets_page_pool_state_hold {}; + +struct trace_event_data_offsets_page_pool_update_nid {}; + +enum nft_chain_types { + NFT_CHAIN_T_DEFAULT = 0, + NFT_CHAIN_T_ROUTE = 1, + NFT_CHAIN_T_NAT = 2, + NFT_CHAIN_T_MAX = 3, +}; + +struct nf_hook_ops; + +struct nft_chain_type { + const char *name; + enum nft_chain_types type; + int family; + struct module *owner; + unsigned int hook_mask; + nf_hookfn *hooks[6]; + int (*ops_register)(struct net *, const struct nf_hook_ops *); + void (*ops_unregister)(struct net *, const struct nf_hook_ops *); +}; + +struct nh_info; + +struct nh_group; + +struct nexthop { + struct rb_node rb_node; + struct list_head fi_list; + struct list_head f6i_list; + struct list_head fdb_list; + struct list_head grp_list; + struct net *net; + u32 id; + u8 protocol; + u8 nh_flags; + bool is_group; + refcount_t refcnt; + struct callback_head rcu; + union { + struct nh_info __attribute__((btf_type_tag("rcu"))) *nh_info; + struct nh_group __attribute__((btf_type_tag("rcu"))) *nh_grp; + }; +}; + +struct fib_info; + +struct fib_nh { + struct fib_nh_common nh_common; + struct hlist_node nh_hash; + struct fib_info *nh_parent; + __be32 nh_saddr; + int nh_saddr_genid; +}; + +struct nh_info { + struct hlist_node dev_hash; + struct nexthop *nh_parent; + u8 family; + bool reject_nh; + bool fdb_nh; + union { + struct fib_nh_common fib_nhc; + struct fib_nh fib_nh; + struct fib6_nh fib6_nh; + }; +}; + +struct fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; +}; + +struct nh_grp_entry_stats; + +struct nh_grp_entry { + struct nexthop *nh; + struct nh_grp_entry_stats __attribute__((btf_type_tag("percpu"))) *stats; + u8 weight; + union { + struct { + atomic_t upper_bound; + } hthr; + struct { + struct list_head uw_nh_entry; + u16 count_buckets; + u16 wants_buckets; + } res; + }; + struct list_head nh_list; + struct nexthop *nh_parent; + u64 packets_hw; +}; + +struct nh_res_table; + +struct nh_group { + struct nh_group *spare; + u16 num_nh; + bool is_multipath; + bool hash_threshold; + bool resilient; + bool fdb_nh; + bool has_v4; + bool hw_stats; + struct nh_res_table __attribute__((btf_type_tag("rcu"))) *res_table; + struct nh_grp_entry nh_entries[0]; +}; + +struct nh_res_bucket { + struct nh_grp_entry __attribute__((btf_type_tag("rcu"))) *nh_entry; + atomic_long_t used_time; + unsigned long migrated_time; + bool occupied; + u8 nh_flags; +}; + +struct nh_res_table { + struct net *net; + u32 nhg_id; + struct delayed_work upkeep_dw; + struct list_head uw_nh_entries; + unsigned long unbalanced_since; + u32 idle_timer; + u32 unbalanced_timer; + u16 num_nh_buckets; + struct nh_res_bucket nh_buckets[0]; +}; + +struct nh_grp_entry_stats { + u64_stats_t packets; + struct u64_stats_sync syncp; +}; + +struct ip_tunnel_parm { + char name[16]; + int link; + __be16 i_flags; + __be16 o_flags; + __be32 i_key; + __be32 o_key; + struct iphdr iph; +}; + +enum nf_hook_ops_type { + NF_HOOK_OP_UNDEFINED = 0, + NF_HOOK_OP_NF_TABLES = 1, + NF_HOOK_OP_BPF = 2, +}; + +struct nf_hook_ops { + nf_hookfn *hook; + struct net_device *dev; + void *priv; + u8 pf; + enum nf_hook_ops_type hook_ops_type: 8; + unsigned int hooknum; + int priority; +}; + +enum { + NFPROTO_UNSPEC = 0, + NFPROTO_INET = 1, + NFPROTO_IPV4 = 2, + NFPROTO_ARP = 3, + NFPROTO_NETDEV = 5, + NFPROTO_BRIDGE = 7, + NFPROTO_IPV6 = 10, + NFPROTO_NUMPROTO = 11, +}; + +enum { + NFT_PKTINFO_L4PROTO = 1, + NFT_PKTINFO_INNER = 2, + NFT_PKTINFO_INNER_FULL = 4, +}; + +struct nft_pktinfo { + struct sk_buff *skb; + const struct nf_hook_state *state; + u8 flags; + u8 tprot; + u16 fragoff; + u16 thoff; + u16 inneroff; +}; + +struct udp_hslot; + +struct udp_table { + struct udp_hslot *hash; + struct udp_hslot *hash2; + unsigned int mask; + unsigned int log; +}; + +struct udp_hslot { + struct hlist_head head; + int count; + spinlock_t lock; +}; + +enum { + UDP_BPF_IPV4 = 0, + UDP_BPF_IPV6 = 1, + UDP_BPF_NUM_PROTS = 2, +}; + +enum sock_flags { + SOCK_DEAD = 0, + SOCK_DONE = 1, + SOCK_URGINLINE = 2, + SOCK_KEEPOPEN = 3, + SOCK_LINGER = 4, + SOCK_DESTROY = 5, + SOCK_BROADCAST = 6, + SOCK_TIMESTAMP = 7, + SOCK_ZAPPED = 8, + SOCK_USE_WRITE_QUEUE = 9, + SOCK_DBG = 10, + SOCK_RCVTSTAMP = 11, + SOCK_RCVTSTAMPNS = 12, + SOCK_LOCALROUTE = 13, + SOCK_MEMALLOC = 14, + SOCK_TIMESTAMPING_RX_SOFTWARE = 15, + SOCK_FASYNC = 16, + SOCK_RXQ_OVFL = 17, + SOCK_ZEROCOPY = 18, + SOCK_WIFI_STATUS = 19, + SOCK_NOFCS = 20, + SOCK_FILTER_LOCKED = 21, + SOCK_SELECT_ERR_QUEUE = 22, + SOCK_RCU_FREE = 23, + SOCK_TXTIME = 24, + SOCK_XDP = 25, + SOCK_TSTAMP_NEW = 26, + SOCK_RCVMARK = 27, +}; + +struct udp_sock { + struct inet_sock inet; + unsigned long udp_flags; + int pending; + __u8 encap_type; + __u16 len; + __u16 gso_size; + __u16 pcslen; + __u16 pcrlen; + int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*encap_err_lookup)(struct sock *, struct sk_buff *); + void (*encap_destroy)(struct sock *); + struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sock *, struct sk_buff *, int); + long: 64; + struct sk_buff_head reader_queue; + int forward_deficit; + int forward_threshold; + bool peeking_with_offset; + long: 64; + long: 64; + long: 64; +}; + +struct gpio_desc; + +struct mii_bus; + +struct mdio_device { + struct device dev; + struct mii_bus *bus; + char modalias[32]; + int (*bus_match)(struct device *, struct device_driver *); + void (*device_free)(struct mdio_device *); + void (*device_remove)(struct mdio_device *); + int addr; + int flags; + int reset_state; + struct gpio_desc *reset_gpio; + struct reset_control *reset_ctrl; + unsigned int reset_assert_delay; + unsigned int reset_deassert_delay; +}; + +struct phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; +}; + +enum phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_ERROR = 3, + PHY_UP = 4, + PHY_RUNNING = 5, + PHY_NOLINK = 6, + PHY_CABLETEST = 7, +}; + +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_PSGMII = 18, + PHY_INTERFACE_MODE_QSGMII = 19, + PHY_INTERFACE_MODE_TRGMII = 20, + PHY_INTERFACE_MODE_100BASEX = 21, + PHY_INTERFACE_MODE_1000BASEX = 22, + PHY_INTERFACE_MODE_2500BASEX = 23, + PHY_INTERFACE_MODE_5GBASER = 24, + PHY_INTERFACE_MODE_RXAUI = 25, + PHY_INTERFACE_MODE_XAUI = 26, + PHY_INTERFACE_MODE_10GBASER = 27, + PHY_INTERFACE_MODE_25GBASER = 28, + PHY_INTERFACE_MODE_USXGMII = 29, + PHY_INTERFACE_MODE_10GKR = 30, + PHY_INTERFACE_MODE_QUSGMII = 31, + PHY_INTERFACE_MODE_1000BASEKX = 32, + PHY_INTERFACE_MODE_MAX = 33, +} phy_interface_t; + +struct eee_config { + u32 tx_lpi_timer; + bool tx_lpi_enabled; + bool eee_enabled; +}; + +struct phylink; + +struct pse_control; + +struct phy_driver; + +struct device_link; + +struct phy_package_shared; + +struct mii_timestamper; + +struct phy_device { + struct mdio_device mdio; + const struct phy_driver *drv; + struct device_link *devlink; + u32 phy_id; + struct phy_c45_device_ids c45_ids; + unsigned int is_c45: 1; + unsigned int is_internal: 1; + unsigned int is_pseudo_fixed_link: 1; + unsigned int is_gigabit_capable: 1; + unsigned int has_fixups: 1; + unsigned int suspended: 1; + unsigned int suspended_by_mdio_bus: 1; + unsigned int sysfs_links: 1; + unsigned int loopback_enabled: 1; + unsigned int downshifted_rate: 1; + unsigned int is_on_sfp_module: 1; + unsigned int mac_managed_pm: 1; + unsigned int wol_enabled: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + int rate_matching; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + unsigned long possible_interfaces[1]; + int speed; + int duplex; + int port; + int pause; + int asym_pause; + u8 master_slave_get; + u8 master_slave_set; + u8 master_slave_state; + unsigned long supported[2]; + unsigned long advertising[2]; + unsigned long lp_advertising[2]; + unsigned long adv_old[2]; + unsigned long supported_eee[2]; + unsigned long advertising_eee[2]; + bool eee_enabled; + unsigned long host_interfaces[1]; + u32 eee_broken_modes; + bool enable_tx_lpi; + struct eee_config eee_cfg; + struct list_head leds; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + struct pse_control *psec; + u8 mdix; + u8 mdix_ctrl; + int pma_extable; + unsigned int link_down_events; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); +}; + +struct mdio_bus_stats { + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t writes; + u64_stats_t reads; + struct u64_stats_sync syncp; +}; + +struct mii_bus { + struct module *owner; + const char *name; + char id[61]; + void *priv; + int (*read)(struct mii_bus *, int, int); + int (*write)(struct mii_bus *, int, int, u16); + int (*read_c45)(struct mii_bus *, int, int, int); + int (*write_c45)(struct mii_bus *, int, int, int, u16); + int (*reset)(struct mii_bus *); + struct mdio_bus_stats stats[32]; + struct mutex mdio_lock; + struct device *parent; + enum { + MDIOBUS_ALLOCATED = 1, + MDIOBUS_REGISTERED = 2, + MDIOBUS_UNREGISTERED = 3, + MDIOBUS_RELEASED = 4, + } state; + struct device dev; + struct mdio_device *mdio_map[32]; + u32 phy_mask; + u32 phy_ignore_ta_mask; + int irq[32]; + int reset_delay_us; + int reset_post_delay_us; + struct gpio_desc *reset_gpiod; + struct mutex shared_lock; + struct phy_package_shared *shared[32]; +}; + +struct phy_package_shared { + u8 base_addr; + struct device_node *np; + refcount_t refcnt; + unsigned long flags; + size_t priv_size; + void *priv; +}; + +struct mdio_driver_common { + struct device_driver driver; + int flags; +}; + +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, +}; + +struct phy_tdr_config; + +struct phy_plca_cfg; + +struct phy_plca_status; + +struct phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const unsigned long * const features; + u32 flags; + const void *driver_data; + int (*soft_reset)(struct phy_device *); + int (*config_init)(struct phy_device *); + int (*probe)(struct phy_device *); + int (*get_features)(struct phy_device *); + int (*get_rate_matching)(struct phy_device *, phy_interface_t); + int (*suspend)(struct phy_device *); + int (*resume)(struct phy_device *); + int (*config_aneg)(struct phy_device *); + int (*aneg_done)(struct phy_device *); + int (*read_status)(struct phy_device *); + int (*config_intr)(struct phy_device *); + irqreturn_t (*handle_interrupt)(struct phy_device *); + void (*remove)(struct phy_device *); + int (*match_phy_device)(struct phy_device *); + int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*link_change_notify)(struct phy_device *); + int (*read_mmd)(struct phy_device *, int, u16); + int (*write_mmd)(struct phy_device *, int, u16, u16); + int (*read_page)(struct phy_device *); + int (*write_page)(struct phy_device *, int); + int (*module_info)(struct phy_device *, struct ethtool_modinfo *); + int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); + int (*cable_test_start)(struct phy_device *); + int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); + int (*cable_test_get_status)(struct phy_device *, bool *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); + int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); + int (*led_hw_is_supported)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_set)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_get)(struct phy_device *, u8, unsigned long *); + int (*led_polarity_set)(struct phy_device *, int, unsigned long); +}; + +struct phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; +}; + +struct phy_plca_cfg { + int version; + int enabled; + int node_id; + int node_cnt; + int to_tmr; + int burst_cnt; + int burst_tmr; +}; + +struct phy_plca_status { + bool pst; +}; + +enum device_link_state { + DL_STATE_NONE = -1, + DL_STATE_DORMANT = 0, + DL_STATE_AVAILABLE = 1, + DL_STATE_CONSUMER_PROBE = 2, + DL_STATE_ACTIVE = 3, + DL_STATE_SUPPLIER_UNBIND = 4, +}; + +struct device_link { + struct device *supplier; + struct list_head s_node; + struct device *consumer; + struct list_head c_node; + struct device link_dev; + enum device_link_state status; + u32 flags; + refcount_t rpm_active; + struct kref kref; + struct work_struct rm_work; + bool supplier_preactivated; +}; + +struct mii_timestamper { + bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int); + void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int); + int (*hwtstamp)(struct mii_timestamper *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); + void (*link_state)(struct mii_timestamper *, struct phy_device *); + int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *); + struct device *device; +}; + +struct ib_device; + +struct devlink; + +enum devlink_port_type { + DEVLINK_PORT_TYPE_NOTSET = 0, + DEVLINK_PORT_TYPE_AUTO = 1, + DEVLINK_PORT_TYPE_ETH = 2, + DEVLINK_PORT_TYPE_IB = 3, +}; + +enum devlink_port_flavour { + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0, + DEVLINK_PORT_FLAVOUR_CPU = 1, + DEVLINK_PORT_FLAVOUR_DSA = 2, + DEVLINK_PORT_FLAVOUR_PCI_PF = 3, + DEVLINK_PORT_FLAVOUR_PCI_VF = 4, + DEVLINK_PORT_FLAVOUR_VIRTUAL = 5, + DEVLINK_PORT_FLAVOUR_UNUSED = 6, + DEVLINK_PORT_FLAVOUR_PCI_SF = 7, +}; + +struct devlink_port_phys_attrs { + u32 port_number; + u32 split_subport_number; +}; + +struct devlink_port_pci_pf_attrs { + u32 controller; + u16 pf; + u8 external: 1; +}; + +struct devlink_port_pci_vf_attrs { + u32 controller; + u16 pf; + u16 vf; + u8 external: 1; +}; + +struct devlink_port_pci_sf_attrs { + u32 controller; + u32 sf; + u16 pf; + u8 external: 1; +}; + +struct devlink_port_attrs { + u8 split: 1; + u8 splittable: 1; + u32 lanes; + enum devlink_port_flavour flavour; + struct netdev_phys_item_id switch_id; + union { + struct devlink_port_phys_attrs phys; + struct devlink_port_pci_pf_attrs pci_pf; + struct devlink_port_pci_vf_attrs pci_vf; + struct devlink_port_pci_sf_attrs pci_sf; + }; +}; + +struct devlink_linecard; + +struct devlink_port_ops; + +struct devlink_rate; + +struct devlink_port { + struct list_head list; + struct list_head region_list; + struct devlink *devlink; + const struct devlink_port_ops *ops; + unsigned int index; + spinlock_t type_lock; + enum devlink_port_type type; + enum devlink_port_type desired_type; + union { + struct { + struct net_device *netdev; + int ifindex; + char ifname[16]; + } type_eth; + struct { + struct ib_device *ibdev; + } type_ib; + }; + struct devlink_port_attrs attrs; + u8 attrs_set: 1; + u8 switch_port: 1; + u8 registered: 1; + u8 initialized: 1; + struct delayed_work type_warn_dw; + struct list_head reporter_list; + struct devlink_rate *devlink_rate; + struct devlink_linecard *linecard; + u32 rel_index; +}; + +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 1, +}; + +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +}; + +struct devlink_port_ops { + int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); + int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_type_set)(struct devlink_port *, enum devlink_port_type); + int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); +}; + +enum devlink_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, +}; + +struct devlink_rate { + struct list_head list; + enum devlink_rate_type type; + struct devlink *devlink; + void *priv; + u64 tx_share; + u64 tx_max; + struct devlink_rate *parent; + union { + struct devlink_port *devlink_port; + struct { + char *name; + refcount_t refcnt; + }; + }; + u32 tx_priority; + u32 tx_weight; +}; + +enum br_pkt_type { + BR_PKT_UNICAST = 0, + BR_PKT_MULTICAST = 1, + BR_PKT_BROADCAST = 2, +}; + +enum { + BR_FDB_LOCAL = 0, + BR_FDB_STATIC = 1, + BR_FDB_STICKY = 2, + BR_FDB_ADDED_BY_USER = 3, + BR_FDB_ADDED_BY_EXT_LEARN = 4, + BR_FDB_OFFLOADED = 5, + BR_FDB_NOTIFY = 6, + BR_FDB_NOTIFY_INACTIVE = 7, + BR_FDB_LOCKED = 8, + BR_FDB_DYNAMIC_LEARNED = 9, +}; + +enum net_device_flags { + IFF_UP = 1, + IFF_BROADCAST = 2, + IFF_DEBUG = 4, + IFF_LOOPBACK = 8, + IFF_POINTOPOINT = 16, + IFF_NOTRAILERS = 32, + IFF_RUNNING = 64, + IFF_NOARP = 128, + IFF_PROMISC = 256, + IFF_ALLMULTI = 512, + IFF_MASTER = 1024, + IFF_SLAVE = 2048, + IFF_MULTICAST = 4096, + IFF_PORTSEL = 8192, + IFF_AUTOMEDIA = 16384, + IFF_DYNAMIC = 32768, + IFF_LOWER_UP = 65536, + IFF_DORMANT = 131072, + IFF_ECHO = 262144, +}; + +enum net_bridge_opts { + BROPT_VLAN_ENABLED = 0, + BROPT_VLAN_STATS_ENABLED = 1, + BROPT_NF_CALL_IPTABLES = 2, + BROPT_NF_CALL_IP6TABLES = 3, + BROPT_NF_CALL_ARPTABLES = 4, + BROPT_GROUP_ADDR_SET = 5, + BROPT_MULTICAST_ENABLED = 6, + BROPT_MULTICAST_QUERY_USE_IFADDR = 7, + BROPT_MULTICAST_STATS_ENABLED = 8, + BROPT_HAS_IPV6_ADDR = 9, + BROPT_NEIGH_SUPPRESS_ENABLED = 10, + BROPT_MTU_SET_BY_USER = 11, + BROPT_VLAN_STATS_PER_PORT = 12, + BROPT_NO_LL_LEARN = 13, + BROPT_VLAN_BRIDGE_BINDING = 14, + BROPT_MCAST_VLAN_SNOOPING_ENABLED = 15, + BROPT_MST_ENABLED = 16, +}; + +enum { + MDB_RTR_TYPE_DISABLED = 0, + MDB_RTR_TYPE_TEMP_QUERY = 1, + MDB_RTR_TYPE_PERM = 2, + MDB_RTR_TYPE_TEMP = 3, +}; + +enum { + BR_MCAST_DIR_RX = 0, + BR_MCAST_DIR_TX = 1, + BR_MCAST_DIR_SIZE = 2, +}; + +struct br_input_skb_cb { + struct net_device *brdev; + u16 frag_max_size; + u8 igmp; + u8 mrouters_only: 1; + u8 proxyarp_replied: 1; + u8 src_port_isolated: 1; + u8 br_netfilter_broute: 1; + u32 backup_nhid; +}; + +struct br_frame_type { + __be16 type; + int (*frame_handler)(struct net_bridge_port *, struct sk_buff *); + struct hlist_node list; +}; + +struct net_bridge_mcast_gc { + struct hlist_node gc_node; + void (*destroy)(struct net_bridge_mcast_gc *); +}; + +struct net_bridge_port_group; + +struct net_bridge_mdb_entry { + struct rhash_head rhnode; + struct net_bridge *br; + struct net_bridge_port_group __attribute__((btf_type_tag("rcu"))) *ports; + struct br_ip addr; + bool host_joined; + struct timer_list timer; + struct hlist_node mdb_node; + struct net_bridge_mcast_gc mcast_gc; + struct callback_head rcu; +}; + +struct net_bridge_port_group_sg_key { + struct net_bridge_port *port; + struct br_ip addr; +}; + +struct net_bridge_port_group { + struct net_bridge_port_group __attribute__((btf_type_tag("rcu"))) *next; + struct net_bridge_port_group_sg_key key; + unsigned char eth_addr[6]; + unsigned char flags; + unsigned char filter_mode; + unsigned char grp_query_rexmit_cnt; + unsigned char rt_protocol; + struct hlist_head src_list; + unsigned int src_ents; + struct timer_list timer; + struct timer_list rexmit_timer; + struct hlist_node mglist; + struct rb_root eht_set_tree; + struct rb_root eht_host_tree; + struct rhash_head rhnode; + struct net_bridge_mcast_gc mcast_gc; + struct callback_head rcu; +}; + +struct net_bridge_vlan_group { + struct rhashtable vlan_hash; + struct rhashtable tunnel_hash; + struct list_head vlan_list; + u16 num_vlans; + u16 pvid; + u8 pvid_state; +}; + +struct icmpv6_echo { + __be16 identifier; + __be16 sequence; +}; + +struct icmpv6_nd_advt { + __u32 reserved: 5; + __u32 override: 1; + __u32 solicited: 1; + __u32 router: 1; + __u32 reserved2: 24; +}; + +struct icmpv6_nd_ra { + __u8 hop_limit; + __u8 reserved: 3; + __u8 router_pref: 2; + __u8 home_agent: 1; + __u8 other: 1; + __u8 managed: 1; + __be16 rt_lifetime; +}; + +struct icmp6hdr { + __u8 icmp6_type; + __u8 icmp6_code; + __sum16 icmp6_cksum; + union { + __be32 un_data32[1]; + __be16 un_data16[2]; + __u8 un_data8[4]; + struct icmpv6_echo u_echo; + struct icmpv6_nd_advt u_nd_advt; + struct icmpv6_nd_ra u_nd_ra; + } icmp6_dataun; +}; + +struct nd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + __u8 opt[0]; +}; + +typedef u8 uint8_t; + +enum set_key_cmd { + SET_KEY = 0, + DISABLE_KEY = 1, +}; + +enum sta_notify_cmd { + STA_NOTIFY_SLEEP = 0, + STA_NOTIFY_AWAKE = 1, +}; + +enum nl80211_mesh_power_mode { + NL80211_MESH_POWER_UNKNOWN = 0, + NL80211_MESH_POWER_ACTIVE = 1, + NL80211_MESH_POWER_LIGHT_SLEEP = 2, + NL80211_MESH_POWER_DEEP_SLEEP = 3, + __NL80211_MESH_POWER_AFTER_LAST = 4, + NL80211_MESH_POWER_MAX = 3, +}; + +enum ieee80211_ampdu_mlme_action { + IEEE80211_AMPDU_RX_START = 0, + IEEE80211_AMPDU_RX_STOP = 1, + IEEE80211_AMPDU_TX_START = 2, + IEEE80211_AMPDU_TX_STOP_CONT = 3, + IEEE80211_AMPDU_TX_STOP_FLUSH = 4, + IEEE80211_AMPDU_TX_STOP_FLUSH_CONT = 5, + IEEE80211_AMPDU_TX_OPERATIONAL = 6, +}; + +enum ieee80211_roc_type { + IEEE80211_ROC_TYPE_NORMAL = 0, + IEEE80211_ROC_TYPE_MGMT_TX = 1, +}; + +enum ieee80211_event_type { + RSSI_EVENT = 0, + MLME_EVENT = 1, + BAR_RX_EVENT = 2, + BA_FRAME_TIMEOUT = 3, +}; + +enum ieee80211_rssi_event_data { + RSSI_EVENT_HIGH = 0, + RSSI_EVENT_LOW = 1, +}; + +enum ieee80211_mlme_event_data { + AUTH_EVENT = 0, + ASSOC_EVENT = 1, + DEAUTH_RX_EVENT = 2, + DEAUTH_TX_EVENT = 3, +}; + +enum ieee80211_mlme_event_status { + MLME_SUCCESS = 0, + MLME_DENIED = 1, + MLME_TIMEOUT = 2, +}; + +enum ieee80211_frame_release_type { + IEEE80211_FRAME_RELEASE_PSPOLL = 0, + IEEE80211_FRAME_RELEASE_UAPSD = 1, +}; + +enum ieee80211_chanctx_switch_mode { + CHANCTX_SWMODE_REASSIGN_VIF = 0, + CHANCTX_SWMODE_SWAP_CONTEXTS = 1, +}; + +enum ieee80211_reconfig_type { + IEEE80211_RECONFIG_TYPE_RESTART = 0, + IEEE80211_RECONFIG_TYPE_SUSPEND = 1, +}; + +enum nl80211_nan_function_type { + NL80211_NAN_FUNC_PUBLISH = 0, + NL80211_NAN_FUNC_SUBSCRIBE = 1, + NL80211_NAN_FUNC_FOLLOW_UP = 2, + __NL80211_NAN_FUNC_TYPE_AFTER_LAST = 3, + NL80211_NAN_FUNC_MAX_TYPE = 2, +}; + +enum nl80211_tid_config { + NL80211_TID_CONFIG_ENABLE = 0, + NL80211_TID_CONFIG_DISABLE = 1, +}; + +enum nl80211_tx_rate_setting { + NL80211_TX_RATE_AUTOMATIC = 0, + NL80211_TX_RATE_LIMITED = 1, + NL80211_TX_RATE_FIXED = 2, +}; + +enum ieee80211_neg_ttlm_res { + NEG_TTLM_RES_ACCEPT = 0, + NEG_TTLM_RES_REJECT = 1, + NEG_TTLM_RES_SUGGEST_PREFERRED = 2, +}; + +enum ieee80211_internal_tkip_state { + TKIP_STATE_NOT_INIT = 0, + TKIP_STATE_PHASE1_DONE = 1, + TKIP_STATE_PHASE1_HW_UPLOADED = 2, +}; + +enum ieee80211_conn_mode { + IEEE80211_CONN_MODE_S1G = 0, + IEEE80211_CONN_MODE_LEGACY = 1, + IEEE80211_CONN_MODE_HT = 2, + IEEE80211_CONN_MODE_VHT = 3, + IEEE80211_CONN_MODE_HE = 4, + IEEE80211_CONN_MODE_EHT = 5, +}; + +enum ieee80211_conn_bw_limit { + IEEE80211_CONN_BW_LIMIT_20 = 0, + IEEE80211_CONN_BW_LIMIT_40 = 1, + IEEE80211_CONN_BW_LIMIT_80 = 2, + IEEE80211_CONN_BW_LIMIT_160 = 3, + IEEE80211_CONN_BW_LIMIT_320 = 4, +}; + +struct ieee80211_s1g_cap { + u8 capab_info[10]; + u8 supp_mcs_nss[5]; +}; + +struct wiphy_delayed_work { + struct wiphy_work work; + struct wiphy *wiphy; + struct timer_list timer; +}; + +struct ieee80211_sta_tx_tspec { + unsigned long time_slice_start; + u32 admitted_time; + u8 tsid; + s8 up; + u32 consumed_tx_time; + enum { + TX_TSPEC_ACTION_NONE = 0, + TX_TSPEC_ACTION_DOWNGRADE = 1, + TX_TSPEC_ACTION_STOP_DOWNGRADE = 2, + } action; + bool downgraded; +}; + +struct ieee80211_adv_ttlm_info { + u16 switch_time; + u32 duration; + u16 map; + bool active; +}; + +struct ieee80211_mgd_auth_data; + +struct ieee80211_mgd_assoc_data; + +struct ieee80211_if_managed { + struct timer_list timer; + struct timer_list conn_mon_timer; + struct timer_list bcn_mon_timer; + struct wiphy_work monitor_work; + struct wiphy_work beacon_connection_loss_work; + struct wiphy_work csa_connection_drop_work; + unsigned long beacon_timeout; + unsigned long probe_timeout; + int probe_send_count; + bool nullfunc_failed; + u8 connection_loss: 1; + u8 driver_disconnect: 1; + u8 reconnect: 1; + u8 associated: 1; + struct ieee80211_mgd_auth_data *auth_data; + struct ieee80211_mgd_assoc_data *assoc_data; + bool powersave; + bool broken_ap; + unsigned int flags; + u16 mcast_seq_last; + bool status_acked; + bool status_received; + __le16 status_fc; + enum { + IEEE80211_MFP_DISABLED = 0, + IEEE80211_MFP_OPTIONAL = 1, + IEEE80211_MFP_REQUIRED = 2, + } mfp; + unsigned int uapsd_queues; + unsigned int uapsd_max_sp_len; + u8 use_4addr; + int rssi_min_thold; + int rssi_max_thold; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct ieee80211_vht_cap vht_capa; + struct ieee80211_vht_cap vht_capa_mask; + struct ieee80211_s1g_cap s1g_capa; + struct ieee80211_s1g_cap s1g_capa_mask; + u8 tdls_peer[6]; + struct wiphy_delayed_work tdls_peer_del_work; + struct sk_buff *orig_teardown_skb; + struct sk_buff *teardown_skb; + spinlock_t teardown_lock; + bool tdls_wider_bw_prohibited; + struct ieee80211_sta_tx_tspec tx_tspec[4]; + struct wiphy_delayed_work tx_tspec_wk; + u8 *assoc_req_ies; + size_t assoc_req_ies_len; + struct wiphy_delayed_work ml_reconf_work; + u16 removed_links; + struct wiphy_delayed_work ttlm_work; + struct ieee80211_adv_ttlm_info ttlm_info; + u8 dialog_token_alloc; + struct wiphy_delayed_work neg_ttlm_timeout_work; +}; + +struct ieee80211_mgd_auth_data { + struct cfg80211_bss *bss; + unsigned long timeout; + int tries; + u16 algorithm; + u16 expected_transaction; + u8 key[13]; + u8 key_len; + u8 key_idx; + bool done; + bool waiting; + bool peer_confirmed; + bool timeout_started; + int link_id; + u8 ap_addr[6]; + u16 sae_trans; + u16 sae_status; + size_t data_len; + u8 data[0]; +}; + +struct ieee80211_conn_settings { + enum ieee80211_conn_mode mode; + enum ieee80211_conn_bw_limit bw_limit; +}; + +struct ieee80211_mgd_assoc_data { + struct { + struct cfg80211_bss *bss; + u8 addr[6]; + u8 ap_ht_param; + struct ieee80211_vht_cap ap_vht_cap; + long: 0; + size_t elems_len; + u8 *elems; + struct ieee80211_conn_settings conn; + u16 status; + bool disabled; + long: 0; + } __attribute__((packed)) link[15]; + u8 ap_addr[6]; + const u8 *supp_rates; + u8 supp_rates_len; + unsigned long timeout; + int tries; + u8 prev_ap_addr[6]; + u8 ssid[32]; + u8 ssid_len; + bool wmm; + bool uapsd; + bool need_beacon; + bool synced; + bool timeout_started; + bool comeback; + bool s1g; + bool spp_amsdu; + unsigned int assoc_link_id; + u8 fils_nonces[32]; + u8 fils_kek[64]; + size_t fils_kek_len; + size_t ie_len; + u8 *ie_pos; + u8 ie[0]; +}; + +struct beacon_data; + +struct ieee80211_if_ibss { + struct timer_list timer; + struct wiphy_work csa_connection_drop_work; + unsigned long last_scan_completed; + u32 basic_rates; + bool fixed_bssid; + bool fixed_channel; + bool privacy; + bool control_port; + bool userspace_handles_dfs; + short: 0; + u8 bssid[6]; + u8 ssid[32]; + u8 ssid_len; + u8 ie_len; + u8 *ie; + struct cfg80211_chan_def chandef; + unsigned long ibss_join_req; + struct beacon_data __attribute__((btf_type_tag("rcu"))) *presp; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + spinlock_t incomplete_lock; + struct list_head incomplete_stations; + enum { + IEEE80211_IBSS_MLME_SEARCH = 0, + IEEE80211_IBSS_MLME_JOINED = 1, + } state; +}; + +struct ieee80211_meshconf_ie; + +struct cfg80211_mbssid_elems; + +struct cfg80211_rnr_elems; + +struct beacon_data { + u8 *head; + u8 *tail; + int head_len; + int tail_len; + struct ieee80211_meshconf_ie *meshconf; + u16 cntdwn_counter_offsets[2]; + u8 cntdwn_current_counter; + struct cfg80211_mbssid_elems *mbssid_ies; + struct cfg80211_rnr_elems *rnr_ies; + struct callback_head callback_head; +}; + +struct ieee80211_meshconf_ie { + u8 meshconf_psel; + u8 meshconf_pmetric; + u8 meshconf_congest; + u8 meshconf_synch; + u8 meshconf_auth; + u8 meshconf_form; + u8 meshconf_cap; +}; + +struct cfg80211_mbssid_elems { + u8 cnt; + struct { + const u8 *data; + size_t len; + } elem[0]; +}; + +struct cfg80211_rnr_elems { + u8 cnt; + struct { + const u8 *data; + size_t len; + } elem[0]; +}; + +struct mesh_preq_queue { + struct list_head list; + u8 dst[6]; + u8 flags; +}; + +struct mesh_stats { + __u32 fwded_mcast; + __u32 fwded_unicast; + __u32 fwded_frames; + __u32 dropped_frames_ttl; + __u32 dropped_frames_no_route; +}; + +struct mesh_config { + u16 dot11MeshRetryTimeout; + u16 dot11MeshConfirmTimeout; + u16 dot11MeshHoldingTimeout; + u16 dot11MeshMaxPeerLinks; + u8 dot11MeshMaxRetries; + u8 dot11MeshTTL; + u8 element_ttl; + bool auto_open_plinks; + u32 dot11MeshNbrOffsetMaxNeighbor; + u8 dot11MeshHWMPmaxPREQretries; + u32 path_refresh_time; + u16 min_discovery_timeout; + u32 dot11MeshHWMPactivePathTimeout; + u16 dot11MeshHWMPpreqMinInterval; + u16 dot11MeshHWMPperrMinInterval; + u16 dot11MeshHWMPnetDiameterTraversalTime; + u8 dot11MeshHWMPRootMode; + bool dot11MeshConnectedToMeshGate; + bool dot11MeshConnectedToAuthServer; + u16 dot11MeshHWMPRannInterval; + bool dot11MeshGateAnnouncementProtocol; + bool dot11MeshForwarding; + s32 rssi_threshold; + u16 ht_opmode; + u32 dot11MeshHWMPactivePathToRootTimeout; + u16 dot11MeshHWMProotInterval; + u16 dot11MeshHWMPconfirmationInterval; + enum nl80211_mesh_power_mode power_mode; + u16 dot11MeshAwakeWindowDuration; + u32 plink_timeout; + bool dot11MeshNolearn; +}; + +struct ps_data { + u8 tim[256]; + struct sk_buff_head bc_buf; + atomic_t num_sta_ps; + int dtim_count; + bool dtim_bc_mc; +}; + +struct mesh_table { + struct hlist_head known_gates; + spinlock_t gates_lock; + struct rhashtable rhead; + struct hlist_head walk_head; + spinlock_t walk_lock; + atomic_t entries; +}; + +struct mesh_tx_cache { + struct rhashtable rht; + struct hlist_head walk_head; + spinlock_t walk_lock; +}; + +struct mesh_rmc; + +struct ieee80211_mesh_sync_ops; + +struct mesh_csa_settings; + +struct ieee80211_if_mesh { + struct timer_list housekeeping_timer; + struct timer_list mesh_path_timer; + struct timer_list mesh_path_root_timer; + unsigned long wrkq_flags; + unsigned long mbss_changed[1]; + bool userspace_handles_dfs; + u8 mesh_id[32]; + size_t mesh_id_len; + u8 mesh_pp_id; + u8 mesh_pm_id; + u8 mesh_cc_id; + u8 mesh_sp_id; + u8 mesh_auth_id; + u32 sn; + u32 preq_id; + atomic_t mpaths; + unsigned long last_sn_update; + unsigned long next_perr; + unsigned long last_preq; + struct mesh_rmc *rmc; + spinlock_t mesh_preq_queue_lock; + struct mesh_preq_queue preq_queue; + int preq_queue_len; + struct mesh_stats mshstats; + struct mesh_config mshcfg; + atomic_t estab_plinks; + atomic_t mesh_seqnum; + bool accepting_plinks; + int num_gates; + struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon; + const u8 *ie; + u8 ie_len; + enum { + IEEE80211_MESH_SEC_NONE = 0, + IEEE80211_MESH_SEC_AUTHED = 1, + IEEE80211_MESH_SEC_SECURED = 2, + } security; + bool user_mpm; + const struct ieee80211_mesh_sync_ops *sync_ops; + s64 sync_offset_clockdrift_max; + spinlock_t sync_offset_lock; + enum nl80211_mesh_power_mode nonpeer_pm; + int ps_peers_light_sleep; + int ps_peers_deep_sleep; + struct ps_data ps; + struct mesh_csa_settings __attribute__((btf_type_tag("rcu"))) *csa; + enum { + IEEE80211_MESH_CSA_ROLE_NONE = 0, + IEEE80211_MESH_CSA_ROLE_INIT = 1, + IEEE80211_MESH_CSA_ROLE_REPEATER = 2, + } csa_role; + u8 chsw_ttl; + u16 pre_value; + int meshconf_offset; + struct mesh_table mesh_paths; + struct mesh_table mpp_paths; + int mesh_paths_generation; + int mpp_paths_generation; + struct mesh_tx_cache tx_cache; +}; + +struct ieee80211_sub_if_data; + +struct ieee80211_mesh_sync_ops { + void (*rx_bcn_presp)(struct ieee80211_sub_if_data *, u16, struct ieee80211_mgmt *, unsigned int, const struct ieee80211_meshconf_ie *, struct ieee80211_rx_status *); + void (*adjust_tsf)(struct ieee80211_sub_if_data *, struct beacon_data *); +}; + +struct ieee80211_if_ap { + struct list_head vlans; + struct ps_data ps; + atomic_t num_mcast_sta; + bool multicast_to_unicast; + bool active; +}; + +struct sta_info; + +struct ieee80211_if_vlan { + struct list_head list; + struct sta_info __attribute__((btf_type_tag("rcu"))) *sta; + atomic_t num_mcast_sta; +}; + +struct ieee80211_if_ocb { + struct timer_list housekeeping_timer; + unsigned long wrkq_flags; + spinlock_t incomplete_lock; + struct list_head incomplete_stations; + bool joined; +}; + +struct ieee80211_if_mntr { + u32 flags; + u8 mu_follow_addr[6]; + struct list_head list; +}; + +struct cfg80211_nan_conf { + u8 master_pref; + u8 bands; +}; + +struct ieee80211_if_nan { + struct cfg80211_nan_conf conf; + spinlock_t func_lock; + struct idr function_inst_ids; +}; + +struct ieee80211_fragment_entry { + struct sk_buff_head skb_list; + unsigned long first_frag_time; + u16 seq; + u16 extra_len; + u16 last_frag; + u8 rx_queue; + u8 check_sequential_pn: 1; + u8 is_protected: 1; + u8 last_pn[6]; + unsigned int key_color; +}; + +struct ieee80211_fragment_cache { + struct ieee80211_fragment_entry entries[4]; + unsigned int next; +}; + +struct ewma_beacon_signal { + unsigned long internal; +}; + +struct ieee80211_link_data_managed { + u8 bssid[6]; + u8 dtim_period; + enum ieee80211_smps_mode req_smps; + enum ieee80211_smps_mode driver_smps_mode; + struct ieee80211_conn_settings conn; + s16 p2p_noa_index; + bool tdls_chan_switch_prohibited; + bool have_beacon; + bool tracking_signal_avg; + bool disable_wmm_tracking; + bool operating_11g_mode; + bool csa_waiting_bcn; + bool csa_ignored_same_chan; + struct wiphy_delayed_work chswitch_work; + struct wiphy_work request_smps_work; + struct wiphy_work recalc_smps; + bool beacon_crc_valid; + u32 beacon_crc; + struct ewma_beacon_signal ave_beacon_signal; + int last_ave_beacon_signal; + unsigned int count_beacon_signal; + unsigned int beacon_loss_count; + int last_cqm_event_signal; + int wmm_last_param_set; + int mu_edca_last_param_set; + u8 bss_param_ch_cnt; +}; + +struct probe_resp; + +struct fils_discovery_data; + +struct unsol_bcast_probe_resp_data; + +struct cfg80211_beacon_data; + +struct ieee80211_link_data_ap { + struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon; + struct probe_resp __attribute__((btf_type_tag("rcu"))) *probe_resp; + struct fils_discovery_data __attribute__((btf_type_tag("rcu"))) *fils_discovery; + struct unsol_bcast_probe_resp_data __attribute__((btf_type_tag("rcu"))) *unsol_bcast_probe_resp; + struct cfg80211_beacon_data *next_beacon; +}; + +struct ieee80211_key; + +struct ieee80211_chanctx; + +struct ieee80211_link_data { + struct ieee80211_sub_if_data *sdata; + unsigned int link_id; + struct list_head assigned_chanctx_list; + struct list_head reserved_chanctx_list; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8]; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_multicast_key; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_mgmt_key; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_beacon_key; + struct wiphy_work csa_finalize_work; + bool operating_11g_mode; + struct ieee80211_chan_req csa_chanreq; + struct wiphy_work color_change_finalize_work; + struct delayed_work color_collision_detect_work; + u64 color_bitmap; + struct ieee80211_chanctx *reserved_chanctx; + struct ieee80211_chan_req reserved; + bool reserved_radar_required; + bool reserved_ready; + u8 needed_rx_chains; + enum ieee80211_smps_mode smps_mode; + int user_power_level; + int ap_power_level; + bool radar_required; + struct wiphy_delayed_work dfs_cac_timer_work; + union { + struct ieee80211_link_data_managed mgd; + struct ieee80211_link_data_ap ap; + } u; + struct ieee80211_tx_queue_params tx_conf[4]; + struct ieee80211_bss_conf *conf; +}; + +struct ieee80211_local; + +struct mac80211_qos_map; + +struct ieee80211_sub_if_data { + struct list_head list; + struct wireless_dev wdev; + struct list_head key_list; + int crypto_tx_tailroom_needed_cnt; + int crypto_tx_tailroom_pending_dec; + struct wiphy_delayed_work dec_tailroom_needed_wk; + struct net_device *dev; + struct ieee80211_local *local; + unsigned int flags; + unsigned long state; + bool csa_blocked_tx; + char name[16]; + struct ieee80211_fragment_cache frags; + u16 noack_map; + u8 wmm_acm; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *keys[4]; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_unicast_key; + u16 sequence_number; + u16 mld_mcast_seq; + __be16 control_port_protocol; + bool control_port_no_encrypt; + bool control_port_no_preauth; + bool control_port_over_nl80211; + atomic_t num_tx_queued; + struct mac80211_qos_map __attribute__((btf_type_tag("rcu"))) *qos_map; + struct wiphy_work work; + struct sk_buff_head skb_queue; + struct sk_buff_head status_queue; + struct ieee80211_if_ap *bss; + u32 rc_rateidx_mask[6]; + bool rc_has_mcs_mask[6]; + u8 rc_rateidx_mcs_mask[60]; + bool rc_has_vht_mcs_mask[6]; + u16 rc_rateidx_vht_mcs_mask[48]; + u32 beacon_rateidx_mask[6]; + bool beacon_rate_set; + union { + struct ieee80211_if_ap ap; + struct ieee80211_if_vlan vlan; + struct ieee80211_if_managed mgd; + struct ieee80211_if_ibss ibss; + struct ieee80211_if_mesh mesh; + struct ieee80211_if_ocb ocb; + struct ieee80211_if_mntr mntr; + struct ieee80211_if_nan nan; + } u; + struct ieee80211_link_data deflink; + struct ieee80211_link_data __attribute__((btf_type_tag("rcu"))) *link[15]; + struct wiphy_work activate_links_work; + u16 desired_active_links; + struct ieee80211_vif vif; +}; + +struct fq_flow; + +struct fq { + struct fq_flow *flows; + unsigned long *flows_bitmap; + struct list_head tin_backlog; + spinlock_t lock; + u32 flows_cnt; + u32 limit; + u32 memory_limit; + u32 memory_usage; + u32 quantum; + u32 backlog; + u32 overlimit; + u32 overmemory; + u32 collisions; +}; + +typedef u32 codel_time_t; + +struct codel_params { + codel_time_t target; + codel_time_t ce_threshold; + codel_time_t interval; + u32 mtu; + bool ecn; + u8 ce_threshold_selector; + u8 ce_threshold_mask; +}; + +struct tasklet_struct { + struct tasklet_struct *next; + unsigned long state; + atomic_t count; + bool use_callback; + union { + void (*func)(unsigned long); + void (*callback)(struct tasklet_struct *); + }; + unsigned long data; +}; + +struct rhltable { + struct rhashtable ht; +}; + +struct arc4_ctx { + u32 S[256]; + u32 x; + u32 y; +}; + +struct cfg80211_scan_info { + u64 scan_start_tsf; + u8 tsf_bssid[6]; + bool aborted; +}; + +enum mac80211_scan_state { + SCAN_DECISION = 0, + SCAN_SET_CHANNEL = 1, + SCAN_SEND_PROBE = 2, + SCAN_SUSPEND = 3, + SCAN_RESUME = 4, + SCAN_ABORT = 5, +}; + +struct codel_vars; + +struct ieee80211_ops; + +struct rate_control_ref; + +struct cfg80211_scan_request; + +struct ieee80211_scan_request; + +struct ieee80211_local { + struct ieee80211_hw hw; + struct fq fq; + struct codel_vars *cvars; + struct codel_params cparams; + spinlock_t active_txq_lock[4]; + struct list_head active_txqs[4]; + u16 schedule_round[4]; + spinlock_t handle_wake_tx_queue_lock; + u16 airtime_flags; + u32 aql_txq_limit_low[4]; + u32 aql_txq_limit_high[4]; + u32 aql_threshold; + atomic_t aql_total_pending_airtime; + atomic_t aql_ac_pending_airtime[4]; + const struct ieee80211_ops *ops; + struct workqueue_struct *workqueue; + unsigned long queue_stop_reasons[16]; + int q_stop_reasons[176]; + spinlock_t queue_stop_reason_lock; + int open_count; + int monitors; + int cooked_mntrs; + int fif_fcsfail; + int fif_plcpfail; + int fif_control; + int fif_other_bss; + int fif_pspoll; + int fif_probe_req; + bool probe_req_reg; + bool rx_mcast_action_reg; + unsigned int filter_flags; + bool wiphy_ciphers_allocated; + struct cfg80211_chan_def dflt_chandef; + bool emulate_chanctx; + spinlock_t filter_lock; + struct wiphy_work reconfig_filter; + struct netdev_hw_addr_list mc_list; + bool tim_in_locked_section; + bool suspended; + bool suspending; + bool resuming; + bool quiescing; + bool started; + bool in_reconfig; + bool reconfig_failure; + bool wowlan; + struct wiphy_work radar_detected_work; + u8 rx_chains; + u8 sband_allocated; + int tx_headroom; + struct tasklet_struct tasklet; + struct sk_buff_head skb_queue; + struct sk_buff_head skb_queue_unreliable; + spinlock_t rx_path_lock; + spinlock_t tim_lock; + unsigned long num_sta; + struct list_head sta_list; + struct rhltable sta_hash; + struct rhltable link_sta_hash; + struct timer_list sta_cleanup; + int sta_generation; + struct sk_buff_head pending[16]; + struct tasklet_struct tx_pending_tasklet; + struct tasklet_struct wake_txqs_tasklet; + atomic_t agg_queue_stop[16]; + atomic_t iff_allmultis; + struct rate_control_ref *rate_ctrl; + struct arc4_ctx wep_tx_ctx; + struct arc4_ctx wep_rx_ctx; + u32 wep_iv; + struct list_head interfaces; + struct list_head mon_list; + struct mutex iflist_mtx; + unsigned long scanning; + struct cfg80211_ssid scan_ssid; + struct cfg80211_scan_request *int_scan_req; + struct cfg80211_scan_request __attribute__((btf_type_tag("rcu"))) *scan_req; + struct ieee80211_scan_request *hw_scan_req; + struct cfg80211_chan_def scan_chandef; + enum nl80211_band hw_scan_band; + int scan_channel_idx; + int scan_ies_len; + int hw_scan_ies_bufsize; + struct cfg80211_scan_info scan_info; + struct wiphy_work sched_scan_stopped_work; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *sched_scan_sdata; + struct cfg80211_sched_scan_request __attribute__((btf_type_tag("rcu"))) *sched_scan_req; + u8 scan_addr[6]; + unsigned long leave_oper_channel_time; + enum mac80211_scan_state next_scan_state; + struct wiphy_delayed_work scan_work; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *scan_sdata; + struct ieee80211_channel *tmp_channel; + struct list_head chanctx_list; + int total_ps_buffered; + bool pspolling; + struct ieee80211_sub_if_data *ps_sdata; + struct wiphy_work dynamic_ps_enable_work; + struct wiphy_work dynamic_ps_disable_work; + struct timer_list dynamic_ps_timer; + struct notifier_block ifa_notifier; + struct notifier_block ifa6_notifier; + int dynamic_ps_forced_timeout; + int user_power_level; + struct work_struct restart_work; + struct wiphy_delayed_work roc_work; + struct list_head roc_list; + struct wiphy_work hw_roc_start; + struct wiphy_work hw_roc_done; + unsigned long hw_roc_start_time; + u64 roc_cookie_counter; + struct idr ack_status_frames; + spinlock_t ack_status_lock; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *p2p_sdata; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *monitor_sdata; + struct ieee80211_chan_req monitor_chanreq; + u8 ext_capa[8]; + bool wbrf_supported; +}; + +struct fq_tin; + +struct fq_flow { + struct fq_tin *tin; + struct list_head flowchain; + struct sk_buff_head queue; + u32 backlog; + int deficit; +}; + +struct fq_tin { + struct list_head new_flows; + struct list_head old_flows; + struct list_head tin_list; + struct fq_flow default_flow; + u32 backlog_bytes; + u32 backlog_packets; + u32 overlimit; + u32 collisions; + u32 flows; + u32 tx_bytes; + u32 tx_packets; +}; + +struct codel_vars { + u32 count; + u32 lastcount; + bool dropping; + u16 rec_inv_sqrt; + codel_time_t first_above_time; + codel_time_t drop_next; + codel_time_t ldelay; +}; + +struct ieee80211_tx_control; + +struct cfg80211_gtk_rekey_data; + +struct ieee80211_low_level_stats; + +struct ieee80211_key_seq; + +struct station_info; + +struct ieee80211_ampdu_params; + +struct survey_info; + +struct ieee80211_channel_switch; + +struct ieee80211_event; + +struct ieee80211_prep_tx_info; + +struct ieee80211_vif_chanctx_switch; + +struct ieee80211_tdls_ch_sw_params; + +struct cfg80211_nan_func; + +struct cfg80211_tid_config; + +struct cfg80211_sar_specs; + +struct ieee80211_twt_setup; + +struct cfg80211_set_hw_timestamp; + +struct ieee80211_ops { + void (*tx)(struct ieee80211_hw *, struct ieee80211_tx_control *, struct sk_buff *); + int (*start)(struct ieee80211_hw *); + void (*stop)(struct ieee80211_hw *); + int (*suspend)(struct ieee80211_hw *, struct cfg80211_wowlan *); + int (*resume)(struct ieee80211_hw *); + void (*set_wakeup)(struct ieee80211_hw *, bool); + int (*add_interface)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*change_interface)(struct ieee80211_hw *, struct ieee80211_vif *, enum nl80211_iftype, bool); + void (*remove_interface)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*config)(struct ieee80211_hw *, u32); + void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); + void (*vif_cfg_changed)(struct ieee80211_hw *, struct ieee80211_vif *, u64); + void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); + int (*start_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + void (*stop_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + u64 (*prepare_multicast)(struct ieee80211_hw *, struct netdev_hw_addr_list *); + void (*configure_filter)(struct ieee80211_hw *, unsigned int, unsigned int *, u64); + void (*config_iface_filter)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, unsigned int); + int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool); + int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *); + void (*update_tkip_key)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32, u16 *); + void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *); + void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int); + int (*hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_scan_request *); + void (*cancel_hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*sched_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_sched_scan_request *, struct ieee80211_scan_ies *); + int (*sched_scan_stop)(struct ieee80211_hw *, struct ieee80211_vif *); + void (*sw_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, const u8 *); + void (*sw_scan_complete)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*get_stats)(struct ieee80211_hw *, struct ieee80211_low_level_stats *); + void (*get_key_seq)(struct ieee80211_hw *, struct ieee80211_key_conf *, struct ieee80211_key_seq *); + int (*set_frag_threshold)(struct ieee80211_hw *, u32); + int (*set_rts_threshold)(struct ieee80211_hw *, u32); + int (*sta_add)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*sta_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*sta_notify)(struct ieee80211_hw *, struct ieee80211_vif *, enum sta_notify_cmd, struct ieee80211_sta *); + int (*sta_set_txpwr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*sta_state)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state); + void (*sta_pre_rcu_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u32); + void (*sta_rate_tbl_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*sta_statistics)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct station_info *); + int (*conf_tx)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, u16, const struct ieee80211_tx_queue_params *); + u64 (*get_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); + void (*set_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, u64); + void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64); + void (*reset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*tx_last_beacon)(struct ieee80211_hw *); + int (*ampdu_action)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_ampdu_params *); + int (*get_survey)(struct ieee80211_hw *, int, struct survey_info *); + void (*rfkill_poll)(struct ieee80211_hw *); + void (*set_coverage_class)(struct ieee80211_hw *, s16); + void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool); + void (*flush_sta)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); + int (*set_antenna)(struct ieee80211_hw *, u32, u32); + int (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *); + int (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type); + int (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*set_ringparam)(struct ieee80211_hw *, u32, u32); + void (*get_ringparam)(struct ieee80211_hw *, u32 *, u32 *, u32 *, u32 *); + bool (*tx_frames_pending)(struct ieee80211_hw *); + int (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *); + void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *); + void (*allow_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); + void (*release_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); + int (*get_et_sset_count)(struct ieee80211_hw *, struct ieee80211_vif *, int); + void (*get_et_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct ethtool_stats *, u64 *); + void (*get_et_strings)(struct ieee80211_hw *, struct ieee80211_vif *, u32, u8 *); + void (*mgd_prepare_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); + void (*mgd_complete_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); + void (*mgd_protect_tdls_discover)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int); + int (*add_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *); + void (*remove_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *); + void (*change_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *, u32); + int (*assign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); + void (*unassign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); + int (*switch_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode); + void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type); + void (*ipv6_addr_change)(struct ieee80211_hw *, struct ieee80211_vif *, struct inet6_dev *); + void (*channel_switch_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_chan_def *); + int (*pre_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); + int (*post_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + void (*abort_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + void (*channel_switch_rx_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); + int (*join_ibss)(struct ieee80211_hw *, struct ieee80211_vif *); + void (*leave_ibss)(struct ieee80211_hw *, struct ieee80211_vif *); + u32 (*get_expected_throughput)(struct ieee80211_hw *, struct ieee80211_sta *); + int (*get_txpower)(struct ieee80211_hw *, struct ieee80211_vif *, int *); + int (*tdls_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8, struct cfg80211_chan_def *, struct sk_buff *, u32); + void (*tdls_cancel_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*tdls_recv_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_tdls_ch_sw_params *); + void (*wake_tx_queue)(struct ieee80211_hw *, struct ieee80211_txq *); + void (*sync_rx_queues)(struct ieee80211_hw *); + int (*start_nan)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *); + int (*stop_nan)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*nan_change_conf)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *, u32); + int (*add_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_nan_func *); + void (*del_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, u8); + bool (*can_aggregate_in_amsdu)(struct ieee80211_hw *, struct sk_buff *, struct sk_buff *); + int (*get_ftm_responder_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_ftm_responder_stats *); + int (*start_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *); + void (*abort_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *); + int (*set_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct cfg80211_tid_config *); + int (*reset_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8); + void (*update_vif_offload)(struct ieee80211_hw *, struct ieee80211_vif *); + void (*sta_set_4addr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool); + int (*set_sar_specs)(struct ieee80211_hw *, const struct cfg80211_sar_specs *); + void (*sta_set_decap_offload)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool); + void (*add_twt_setup)(struct ieee80211_hw *, struct ieee80211_sta *, struct ieee80211_twt_setup *); + void (*twt_teardown_request)(struct ieee80211_hw *, struct ieee80211_sta *, u8); + int (*set_radar_background)(struct ieee80211_hw *, struct cfg80211_chan_def *); + int (*net_fill_forward_path)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct net_device_path_ctx *, struct net_device_path *); + bool (*can_activate_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16); + int (*change_vif_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16, u16, struct ieee80211_bss_conf **); + int (*change_sta_links)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u16, u16); + int (*set_hw_timestamp)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_set_hw_timestamp *); + int (*net_setup_tc)(struct ieee80211_hw *, struct ieee80211_vif *, struct net_device *, enum tc_setup_type, void *); + enum ieee80211_neg_ttlm_res (*can_neg_ttlm)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_neg_ttlm *); +}; + +struct ieee80211_tx_control { + struct ieee80211_sta *sta; +}; + +struct cfg80211_gtk_rekey_data { + const u8 *kek; + const u8 *kck; + const u8 *replay_ctr; + u32 akm; + u8 kek_len; + u8 kck_len; +}; + +struct cfg80211_scan_6ghz_params; + +struct cfg80211_scan_request { + struct cfg80211_ssid *ssids; + int n_ssids; + u32 n_channels; + const u8 *ie; + size_t ie_len; + u16 duration; + bool duration_mandatory; + u32 flags; + u32 rates[6]; + struct wireless_dev *wdev; + u8 mac_addr[6]; + u8 mac_addr_mask[6]; + u8 bssid[6]; + struct wiphy *wiphy; + unsigned long scan_start; + struct cfg80211_scan_info info; + bool notified; + bool no_cck; + bool scan_6ghz; + u32 n_6ghz_params; + struct cfg80211_scan_6ghz_params *scan_6ghz_params; + s8 tsf_report_link_id; + struct ieee80211_channel *channels[0]; +}; + +struct ieee80211_scan_request { + struct ieee80211_scan_ies ies; + struct cfg80211_scan_request req; +}; + +struct cfg80211_scan_6ghz_params { + u32 short_ssid; + u32 channel_idx; + u8 bssid[6]; + bool unsolicited_probe; + bool short_ssid_valid; + bool psc_no_listen; + s8 psd_20; +}; + +struct ieee80211_low_level_stats { + unsigned int dot11ACKFailureCount; + unsigned int dot11RTSFailureCount; + unsigned int dot11FCSErrorCount; + unsigned int dot11RTSSuccessCount; }; struct ieee80211_key_seq { @@ -23393,149 +32709,4215 @@ struct ieee80211_key_seq { }; }; -enum rtw_wlan_cpu { - RTW_WCPU_11AC = 0, - RTW_WCPU_11N = 1, +struct rate_info { + u16 flags; + u16 legacy; + u8 mcs; + u8 nss; + u8 bw; + u8 he_gi; + u8 he_dcm; + u8 he_ru_alloc; + u8 n_bonded_ch; + u8 eht_gi; + u8 eht_ru_alloc; }; -struct rtw_chip_ops; +struct sta_bss_parameters { + u8 flags; + u8 dtim_period; + u16 beacon_interval; +}; -struct rtw_fwcd_segs; +struct nl80211_sta_flag_update { + __u32 mask; + __u32 set; +}; -struct rtw_pwr_seq_cmd; +struct cfg80211_tid_stats; -struct rtw_rqpn; +struct station_info { + u64 filled; + u32 connected_time; + u32 inactive_time; + u64 assoc_at; + u64 rx_bytes; + u64 tx_bytes; + u16 llid; + u16 plid; + u8 plink_state; + s8 signal; + s8 signal_avg; + u8 chains; + s8 chain_signal[4]; + s8 chain_signal_avg[4]; + struct rate_info txrate; + struct rate_info rxrate; + u32 rx_packets; + u32 tx_packets; + u32 tx_retries; + u32 tx_failed; + u32 rx_dropped_misc; + struct sta_bss_parameters bss_param; + struct nl80211_sta_flag_update sta_flags; + int generation; + const u8 *assoc_req_ies; + size_t assoc_req_ies_len; + u32 beacon_loss_count; + s64 t_offset; + enum nl80211_mesh_power_mode local_pm; + enum nl80211_mesh_power_mode peer_pm; + enum nl80211_mesh_power_mode nonpeer_pm; + u32 expected_throughput; + u64 tx_duration; + u64 rx_duration; + u64 rx_beacon; + u8 rx_beacon_signal_avg; + u8 connected_to_gate; + struct cfg80211_tid_stats *pertid; + s8 ack_signal; + s8 avg_ack_signal; + u16 airtime_weight; + u32 rx_mpdu_count; + u32 fcs_err_count; + u32 airtime_link_metric; + u8 connected_to_as; + bool mlo_params_valid; + u8 assoc_link_id; + int: 0; + u8 mld_addr[6]; + const u8 *assoc_resp_ies; + size_t assoc_resp_ies_len; +}; -struct rtw_prioq_addrs; +struct cfg80211_txq_stats { + u32 filled; + u32 backlog_bytes; + u32 backlog_packets; + u32 flows; + u32 drops; + u32 ecn_marks; + u32 overlimit; + u32 overmemory; + u32 collisions; + u32 tx_bytes; + u32 tx_packets; + u32 max_flows; +}; -struct rtw_page_table; +struct cfg80211_tid_stats { + u32 filled; + u64 rx_msdu; + u64 tx_msdu; + u64 tx_msdu_retries; + u64 tx_msdu_failed; + struct cfg80211_txq_stats txq_stats; +}; -struct rtw_intf_phy_para_table; +struct ieee80211_ampdu_params { + enum ieee80211_ampdu_mlme_action action; + struct ieee80211_sta *sta; + u16 tid; + u16 ssn; + u16 buf_size; + bool amsdu; + u16 timeout; +}; -struct rtw_hw_reg; +struct survey_info { + struct ieee80211_channel *channel; + u64 time; + u64 time_busy; + u64 time_ext_busy; + u64 time_rx; + u64 time_tx; + u64 time_scan; + u64 time_bss_rx; + u32 filled; + s8 noise; +}; -struct rtw_rf_sipi_addr; +struct ieee80211_channel_switch { + u64 timestamp; + u32 device_timestamp; + bool block_tx; + struct cfg80211_chan_def chandef; + u8 count; + u8 link_id; + u32 delay; +}; -struct rtw_ltecoex_addr; +struct ieee80211_rssi_event { + enum ieee80211_rssi_event_data data; +}; -struct rtw_table; +struct ieee80211_mlme_event { + enum ieee80211_mlme_event_data data; + enum ieee80211_mlme_event_status status; + u16 reason; +}; -struct rtw_rfe_def; +struct ieee80211_ba_event { + struct ieee80211_sta *sta; + u16 tid; + u16 ssn; +}; -struct rtw_pwr_track_tbl; +struct ieee80211_event { + enum ieee80211_event_type type; + union { + struct ieee80211_rssi_event rssi; + struct ieee80211_mlme_event mlme; + struct ieee80211_ba_event ba; + } u; +}; -struct rtw_hw_reg_offset; +struct ieee80211_prep_tx_info { + u16 duration; + u16 subtype; + u8 success: 1; + int link_id; +}; -struct coex_table_para; +struct ieee80211_vif_chanctx_switch { + struct ieee80211_vif *vif; + struct ieee80211_bss_conf *link_conf; + struct ieee80211_chanctx_conf *old_ctx; + struct ieee80211_chanctx_conf *new_ctx; +}; -struct coex_tdma_para; +struct ieee80211_tdls_ch_sw_params { + struct ieee80211_sta *sta; + struct cfg80211_chan_def *chandef; + u8 action_code; + u32 status; + u32 timestamp; + u16 switch_time; + u16 switch_timeout; + struct sk_buff *tmpl_skb; + u32 ch_sw_tm_ie; +}; -struct coex_rf_para; +struct cfg80211_nan_func_filter; -struct coex_5g_afh_map; +struct cfg80211_nan_func { + enum nl80211_nan_function_type type; + u8 service_id[6]; + u8 publish_type; + bool close_range; + bool publish_bcast; + bool subscribe_active; + u8 followup_id; + u8 followup_reqid; + struct mac_address followup_dest; + u32 ttl; + const u8 *serv_spec_info; + u8 serv_spec_info_len; + bool srf_include; + const u8 *srf_bf; + u8 srf_bf_len; + u8 srf_bf_idx; + struct mac_address *srf_macs; + int srf_num_macs; + struct cfg80211_nan_func_filter *rx_filters; + struct cfg80211_nan_func_filter *tx_filters; + u8 num_tx_filters; + u8 num_rx_filters; + u8 instance_id; + u64 cookie; +}; -struct rtw_reg_domain; +struct cfg80211_nan_func_filter { + const u8 *filter; + u8 len; +}; -struct rtw_chip_info { - struct rtw_chip_ops *ops; - u8 id; - const char *fw_name; - enum rtw_wlan_cpu wlan_cpu; - u8 tx_pkt_desc_sz; - u8 tx_buf_desc_sz; - u8 rx_pkt_desc_sz; - u8 rx_buf_desc_sz; - u32 phy_efuse_size; - u32 log_efuse_size; - u32 ptct_efuse_size; - u32 txff_size; - u32 rxff_size; - u32 fw_rxff_size; - u16 rsvd_drv_pg_num; +struct cfg80211_tid_cfg { + bool config_override; + u8 tids; + u64 mask; + enum nl80211_tid_config noack; + u8 retry_long; + u8 retry_short; + enum nl80211_tid_config ampdu; + enum nl80211_tid_config rtscts; + enum nl80211_tid_config amsdu; + enum nl80211_tx_rate_setting txrate_type; + struct cfg80211_bitrate_mask txrate_mask; +}; + +struct cfg80211_tid_config { + const u8 *peer; + u32 n_tid_conf; + struct cfg80211_tid_cfg tid_conf[0]; +}; + +struct cfg80211_sar_sub_specs { + s32 power; + u32 freq_range_index; +}; + +struct cfg80211_sar_specs { + enum nl80211_sar_type type; + u32 num_sub_specs; + struct cfg80211_sar_sub_specs sub_specs[0]; +}; + +struct ieee80211_twt_setup { + u8 dialog_token; + u8 element_id; + u8 length; + u8 control; + u8 params[0]; +}; + +struct cfg80211_set_hw_timestamp { + const u8 *macaddr; + bool enable; +}; + +struct rate_control_ops; + +struct rate_control_ref { + const struct rate_control_ops *ops; + void *priv; +}; + +struct ieee80211_tx_status; + +struct ieee80211_tx_rate_control; + +struct rate_control_ops { + unsigned long capa; + const char *name; + void * (*alloc)(struct ieee80211_hw *); + void (*add_debugfs)(struct ieee80211_hw *, void *, struct dentry *); + void (*free)(void *); + void * (*alloc_sta)(void *, struct ieee80211_sta *, gfp_t); + void (*rate_init)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *); + void (*rate_update)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *, u32); + void (*free_sta)(void *, struct ieee80211_sta *, void *); + void (*tx_status_ext)(void *, struct ieee80211_supported_band *, void *, struct ieee80211_tx_status *); + void (*tx_status)(void *, struct ieee80211_supported_band *, struct ieee80211_sta *, void *, struct sk_buff *); + void (*get_rate)(void *, struct ieee80211_sta *, void *, struct ieee80211_tx_rate_control *); + void (*add_sta_debugfs)(void *, void *, struct dentry *); + u32 (*get_expected_throughput)(void *); +}; + +struct ieee80211_tx_info; + +struct ieee80211_rate_status; + +struct ieee80211_tx_status { + struct ieee80211_sta *sta; + struct ieee80211_tx_info *info; + struct sk_buff *skb; + struct ieee80211_rate_status *rates; + ktime_t ack_hwtstamp; + u8 n_rates; + struct list_head *free_list; +}; + +struct ieee80211_tx_rate { + s8 idx; + u16 count: 5; + u16 flags: 11; +} __attribute__((packed)); + +struct ieee80211_tx_info { + u32 flags; + u32 band: 3; + u32 status_data_idr: 1; + u32 status_data: 13; + u32 hw_queue: 4; + u32 tx_time_est: 10; + union { + struct { + union { + struct { + struct ieee80211_tx_rate rates[4]; + s8 rts_cts_rate_idx; + u8 use_rts: 1; + u8 use_cts_prot: 1; + u8 short_preamble: 1; + u8 skip_table: 1; + u8 antennas: 2; + }; + unsigned long jiffies; + }; + struct ieee80211_vif *vif; + struct ieee80211_key_conf *hw_key; + u32 flags; + codel_time_t enqueue_time; + } control; + struct { + u64 cookie; + } ack; + struct { + struct ieee80211_tx_rate rates[4]; + s32 ack_signal; + u8 ampdu_ack_len; + u8 ampdu_len; + u8 antenna; + u8 pad; + u16 tx_time; + u8 flags; + u8 pad2; + void *status_driver_data[2]; + } status; + struct { + struct ieee80211_tx_rate driver_rates[4]; + u8 pad[4]; + void *rate_driver_data[3]; + }; + void *driver_data[5]; + }; +}; + +struct ieee80211_rate_status { + struct rate_info rate_idx; + u8 try_count; + u8 tx_power_idx; +}; + +struct ieee80211_tx_rate_control { + struct ieee80211_hw *hw; + struct ieee80211_supported_band *sband; + struct ieee80211_bss_conf *bss_conf; + struct sk_buff *skb; + struct ieee80211_tx_rate reported_rate; + bool rts; + bool short_preamble; + u32 rate_idx_mask; + u8 *rate_idx_mcs_mask; + bool bss; +}; + +struct tkip_ctx { + u16 p1k[5]; + u32 p1k_iv32; + enum ieee80211_internal_tkip_state state; +}; + +struct tkip_ctx_rx { + struct tkip_ctx ctx; + u32 iv32; + u16 iv16; +}; + +struct crypto_aead; + +struct ieee80211_key { + struct ieee80211_local *local; + struct ieee80211_sub_if_data *sdata; + struct sta_info *sta; + struct list_head list; + unsigned int flags; + union { + struct { + spinlock_t txlock; + struct tkip_ctx tx; + struct tkip_ctx_rx rx[16]; + u32 mic_failures; + } tkip; + struct { + u8 rx_pn[102]; + struct crypto_aead *tfm; + u32 replays; + } ccmp; + struct { + u8 rx_pn[6]; + struct crypto_shash *tfm; + u32 replays; + u32 icverrors; + } aes_cmac; + struct { + u8 rx_pn[6]; + struct crypto_aead *tfm; + u32 replays; + u32 icverrors; + } aes_gmac; + struct { + u8 rx_pn[102]; + struct crypto_aead *tfm; + u32 replays; + } gcmp; + struct { + u8 rx_pn[272]; + } gen; + } u; + unsigned int color; + struct ieee80211_key_conf conf; +}; + +struct airtime_info { + u64 rx_airtime; + u64 tx_airtime; + unsigned long last_active; + s32 deficit; + atomic_t aql_tx_pending; + u32 aql_limit_low; + u32 aql_limit_high; +}; + +struct tid_ampdu_rx; + +struct tid_ampdu_tx; + +struct sta_ampdu_mlme { + struct tid_ampdu_rx __attribute__((btf_type_tag("rcu"))) *tid_rx[16]; + u8 tid_rx_token[16]; + unsigned long tid_rx_timer_expired[1]; + unsigned long tid_rx_stop_requested[1]; + unsigned long tid_rx_manage_offl[1]; + unsigned long agg_session_valid[1]; + unsigned long unexpected_agg[1]; + struct wiphy_work work; + struct tid_ampdu_tx __attribute__((btf_type_tag("rcu"))) *tid_tx[16]; + struct tid_ampdu_tx *tid_start_tx[16]; + unsigned long last_addba_req_time[16]; + u8 addba_req_num[16]; + u8 dialog_token_allocator; +}; + +struct ieee80211_sta_rx_stats { + unsigned long packets; + unsigned long last_rx; + unsigned long num_duplicates; + unsigned long fragments; + unsigned long dropped; + int last_signal; + u8 chains; + s8 chain_signal_last[4]; + u32 last_rate; + struct u64_stats_sync syncp; + u64 bytes; + u64 msdu[17]; +}; + +struct ewma_signal { + unsigned long internal; +}; + +struct ewma_avg_signal { + unsigned long internal; +}; + +struct link_sta_info { + u8 addr[6]; + u8 link_id; + u8 op_mode_nss; + u8 capa_nss; + struct rhlist_head link_hash_node; + struct sta_info *sta; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8]; + struct ieee80211_sta_rx_stats __attribute__((btf_type_tag("percpu"))) *pcpu_rx_stats; + struct ieee80211_sta_rx_stats rx_stats; + struct { + struct ewma_signal signal; + struct ewma_signal chain_signal[4]; + } rx_stats_avg; + struct { + unsigned long filtered; + unsigned long retry_failed; + unsigned long retry_count; + unsigned int lost_packets; + unsigned long last_pkt_time; + u64 msdu_retries[17]; + u64 msdu_failed[17]; + unsigned long last_ack; + s8 last_ack_signal; + bool ack_signal_filled; + struct ewma_avg_signal avg_ack_signal; + } status_stats; + struct { + u64 packets[4]; + u64 bytes[4]; + struct ieee80211_tx_rate last_rate; + struct rate_info last_rate_info; + u64 msdu[17]; + } tx_stats; + enum ieee80211_sta_rx_bandwidth cur_max_bandwidth; + struct ieee80211_link_sta *pub; +}; + +struct ieee80211_fast_tx; + +struct ieee80211_fast_rx; + +struct sta_info { + struct list_head list; + struct list_head free_list; + struct callback_head callback_head; + struct rhlist_head hash_node; + u8 addr[6]; + struct ieee80211_local *local; + struct ieee80211_sub_if_data *sdata; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *ptk[4]; + u8 ptk_idx; + struct rate_control_ref *rate_ctrl; + void *rate_ctrl_priv; + spinlock_t rate_ctrl_lock; + spinlock_t lock; + struct ieee80211_fast_tx __attribute__((btf_type_tag("rcu"))) *fast_tx; + struct ieee80211_fast_rx __attribute__((btf_type_tag("rcu"))) *fast_rx; + struct work_struct drv_deliver_wk; + u16 listen_interval; + bool dead; + bool removed; + bool uploaded; + enum ieee80211_sta_state sta_state; + unsigned long _flags; + spinlock_t ps_lock; + struct sk_buff_head ps_tx_buf[4]; + struct sk_buff_head tx_filtered[4]; + unsigned long driver_buffered_tids; + unsigned long txq_buffered_tids; + u64 assoc_at; + long last_connected; + __le16 last_seq_ctrl[17]; + u16 tid_seq[16]; + struct airtime_info airtime[4]; + u16 airtime_weight; + struct sta_ampdu_mlme ampdu_mlme; + struct codel_params cparams; + u8 reserved_tid; + s8 amsdu_mesh_control; + struct cfg80211_chan_def tdls_chandef; + struct ieee80211_fragment_cache frags; + struct ieee80211_sta_aggregates cur; + struct link_sta_info deflink; + struct link_sta_info __attribute__((btf_type_tag("rcu"))) *link[15]; + struct ieee80211_sta sta; +}; + +struct ieee80211_fast_tx { + struct ieee80211_key *key; + u8 hdr_len; + u8 sa_offs; + u8 da_offs; + u8 pn_offs; u8 band; - u8 page_size; - u8 csi_buf_pg_num; - u8 dig_max; - u8 dig_min; - u8 txgi_factor; - bool is_pwr_by_rate_dec; - bool rx_ldpc; - bool tx_stbc; - u8 max_power_index; - u8 ampdu_density; - u16 fw_fifo_addr[6]; - const struct rtw_fwcd_segs *fwcd_segs; - u8 default_1ss_tx_path; - bool path_div_supported; - bool ht_supported; - bool vht_supported; - u8 lps_deep_mode_supported; - u8 sys_func_en; - const struct rtw_pwr_seq_cmd **pwr_on_seq; - const struct rtw_pwr_seq_cmd **pwr_off_seq; - const struct rtw_rqpn *rqpn_table; - const struct rtw_prioq_addrs *prioq_addrs; - const struct rtw_page_table *page_table; - const struct rtw_intf_phy_para_table *intf_table; - const struct rtw_hw_reg *dig; - const struct rtw_hw_reg *dig_cck; - u32 rf_base_addr[2]; - u32 rf_sipi_addr[2]; - const struct rtw_rf_sipi_addr *rf_sipi_read_addr; - u8 fix_rf_phy_num; - const struct rtw_ltecoex_addr *ltecoex_addr; - const struct rtw_table *mac_tbl; - const struct rtw_table *agc_tbl; - const struct rtw_table *bb_tbl; - const struct rtw_table *rf_tbl[4]; - const struct rtw_table *rfk_init_tbl; - const struct rtw_rfe_def *rfe_defs; - u32 rfe_defs_size; - bool en_dis_dpd; - u16 dpd_ratemask; - u8 iqk_threshold; - u8 lck_threshold; - const struct rtw_pwr_track_tbl *pwr_track_tbl; - u8 bfer_su_max_num; - u8 bfer_mu_max_num; - struct rtw_hw_reg_offset *edcca_th; - s8 l2h_th_ini_cs; - s8 l2h_th_ini_ad; - const char *wow_fw_name; - const struct wiphy_wowlan_support *wowlan_stub; - const u8 max_sched_scan_ssids; - const u16 max_scan_ie_len; - u32 coex_para_ver; - u8 bt_desired_ver; - bool scbd_support; - bool new_scbd10_def; - bool ble_hid_profile_support; - bool wl_mimo_ps_support; - u8 pstdma_type; - u8 bt_rssi_type; - u8 ant_isolation; - u8 rssi_tolerance; - u8 table_sant_num; - u8 table_nsant_num; - u8 tdma_sant_num; - u8 tdma_nsant_num; - u8 bt_afh_span_bw20; - u8 bt_afh_span_bw40; - u8 afh_5g_num; - u8 wl_rf_para_num; - u8 coex_info_hw_regs_num; - const u8 *bt_rssi_step; - const u8 *wl_rssi_step; - const struct coex_table_para *table_nsant; - const struct coex_table_para *table_sant; - const struct coex_tdma_para *tdma_sant; - const struct coex_tdma_para *tdma_nsant; - const struct coex_rf_para *wl_rf_para_tx; - const struct coex_rf_para *wl_rf_para_rx; - const struct coex_5g_afh_map *afh_5g; - const struct rtw_hw_reg *btg_reg; - const struct rtw_reg_domain *coex_info_hw_regs; - u32 wl_fw_desired_ver; + short: 0; + u8 hdr[56]; + struct callback_head callback_head; +}; + +struct ieee80211_fast_rx { + struct net_device *dev; + enum nl80211_iftype vif_type; + u8 vif_addr[6]; + u8 rfc1042_hdr[6]; + __be16 control_port_protocol; + __le16 expected_ds_bits; + u8 icv_len; + u8 key: 1; + u8 internal_forward: 1; + u8 uses_rss: 1; + u8 da_offs; + u8 sa_offs; + struct callback_head callback_head; +}; + +struct tid_ampdu_rx { + struct callback_head callback_head; + spinlock_t reorder_lock; + u64 reorder_buf_filtered; + struct sk_buff_head *reorder_buf; + unsigned long *reorder_time; + struct sta_info *sta; + struct timer_list session_timer; + struct timer_list reorder_timer; + unsigned long last_rx; + u16 head_seq_num; + u16 stored_mpdu_num; + u16 ssn; + u16 buf_size; + u16 timeout; + u8 tid; + u8 auto_seq: 1; + u8 removed: 1; + u8 started: 1; +}; + +struct tid_ampdu_tx { + struct callback_head callback_head; + struct timer_list session_timer; + struct timer_list addba_resp_timer; + struct sk_buff_head pending; + struct sta_info *sta; + unsigned long state; + unsigned long last_tx; + u16 timeout; + u8 dialog_token; + u8 stop_initiator; + bool tx_stop; + u16 buf_size; + u16 ssn; + u16 failed_bar_ssn; + bool bar_pending; + bool amsdu; + u8 tid; +}; + +struct cfg80211_dscp_exception { + u8 dscp; + u8 up; +}; + +struct cfg80211_dscp_range { + u8 low; + u8 high; +}; + +struct cfg80211_qos_map { + u8 num_des; + struct cfg80211_dscp_exception dscp_exception[21]; + struct cfg80211_dscp_range up[8]; +}; + +struct mac80211_qos_map { + struct cfg80211_qos_map qos_map; + struct callback_head callback_head; +}; + +enum ieee80211_chanctx_replace_state { + IEEE80211_CHANCTX_REPLACE_NONE = 0, + IEEE80211_CHANCTX_WILL_BE_REPLACED = 1, + IEEE80211_CHANCTX_REPLACES_OTHER = 2, +}; + +enum ieee80211_chanctx_mode { + IEEE80211_CHANCTX_SHARED = 0, + IEEE80211_CHANCTX_EXCLUSIVE = 1, +}; + +struct ieee80211_chanctx { + struct list_head list; + struct callback_head callback_head; + struct list_head assigned_links; + struct list_head reserved_links; + enum ieee80211_chanctx_replace_state replace_state; + struct ieee80211_chanctx *replace_ctx; + enum ieee80211_chanctx_mode mode; + bool driver_present; + struct ieee80211_chan_req req; + struct ieee80211_chanctx_conf conf; +}; + +struct probe_resp { + struct callback_head callback_head; + int len; + u16 cntdwn_counter_offsets[2]; + u8 data[0]; +}; + +struct fils_discovery_data { + struct callback_head callback_head; + int len; + u8 data[0]; +}; + +struct unsol_bcast_probe_resp_data { + struct callback_head callback_head; + int len; + u8 data[0]; +}; + +struct cfg80211_beacon_data { + unsigned int link_id; + const u8 *head; + const u8 *tail; + const u8 *beacon_ies; + const u8 *proberesp_ies; + const u8 *assocresp_ies; + const u8 *probe_resp; + const u8 *lci; + const u8 *civicloc; + struct cfg80211_mbssid_elems *mbssid_ies; + struct cfg80211_rnr_elems *rnr_ies; + s8 ftm_responder; + size_t head_len; + size_t tail_len; + size_t beacon_ies_len; + size_t proberesp_ies_len; + size_t assocresp_ies_len; + size_t probe_resp_len; + size_t lci_len; + size_t civicloc_len; + struct cfg80211_he_bss_color he_bss_color; + bool he_bss_color_valid; +}; + +struct cfg80211_csa_settings { + struct cfg80211_chan_def chandef; + struct cfg80211_beacon_data beacon_csa; + const u16 *counter_offsets_beacon; + const u16 *counter_offsets_presp; + unsigned int n_counter_offsets_beacon; + unsigned int n_counter_offsets_presp; + struct cfg80211_beacon_data beacon_after; + bool radar_required; + bool block_tx; + u8 count; + u8 link_id; +}; + +struct mesh_csa_settings { + struct callback_head callback_head; + struct cfg80211_csa_settings settings; +}; + +enum ieee80211_sta_info_flags { + WLAN_STA_AUTH = 0, + WLAN_STA_ASSOC = 1, + WLAN_STA_PS_STA = 2, + WLAN_STA_AUTHORIZED = 3, + WLAN_STA_SHORT_PREAMBLE = 4, + WLAN_STA_WDS = 5, + WLAN_STA_CLEAR_PS_FILT = 6, + WLAN_STA_MFP = 7, + WLAN_STA_BLOCK_BA = 8, + WLAN_STA_PS_DRIVER = 9, + WLAN_STA_PSPOLL = 10, + WLAN_STA_TDLS_PEER = 11, + WLAN_STA_TDLS_PEER_AUTH = 12, + WLAN_STA_TDLS_INITIATOR = 13, + WLAN_STA_TDLS_CHAN_SWITCH = 14, + WLAN_STA_TDLS_OFF_CHANNEL = 15, + WLAN_STA_TDLS_WIDER_BW = 16, + WLAN_STA_UAPSD = 17, + WLAN_STA_SP = 18, + WLAN_STA_4ADDR_EVENT = 19, + WLAN_STA_INSERTED = 20, + WLAN_STA_RATE_CONTROL = 21, + WLAN_STA_TOFFSET_KNOWN = 22, + WLAN_STA_MPSP_OWNER = 23, + WLAN_STA_MPSP_RECIPIENT = 24, + WLAN_STA_PS_DELIVER = 25, + WLAN_STA_USES_ENCRYPTION = 26, + WLAN_STA_DECAP_OFFLOAD = 27, + NUM_WLAN_STA_FLAGS = 28, +}; + +enum ieee80211_chanctx_change { + IEEE80211_CHANCTX_CHANGE_WIDTH = 1, + IEEE80211_CHANCTX_CHANGE_RX_CHAINS = 2, + IEEE80211_CHANCTX_CHANGE_RADAR = 4, + IEEE80211_CHANCTX_CHANGE_CHANNEL = 8, + IEEE80211_CHANCTX_CHANGE_MIN_WIDTH = 16, + IEEE80211_CHANCTX_CHANGE_AP = 32, + IEEE80211_CHANCTX_CHANGE_PUNCTURING = 64, +}; + +enum ieee80211_channel_flags { + IEEE80211_CHAN_DISABLED = 1, + IEEE80211_CHAN_NO_IR = 2, + IEEE80211_CHAN_PSD = 4, + IEEE80211_CHAN_RADAR = 8, + IEEE80211_CHAN_NO_HT40PLUS = 16, + IEEE80211_CHAN_NO_HT40MINUS = 32, + IEEE80211_CHAN_NO_OFDM = 64, + IEEE80211_CHAN_NO_80MHZ = 128, + IEEE80211_CHAN_NO_160MHZ = 256, + IEEE80211_CHAN_INDOOR_ONLY = 512, + IEEE80211_CHAN_IR_CONCURRENT = 1024, + IEEE80211_CHAN_NO_20MHZ = 2048, + IEEE80211_CHAN_NO_10MHZ = 4096, + IEEE80211_CHAN_NO_HE = 8192, + IEEE80211_CHAN_1MHZ = 16384, + IEEE80211_CHAN_2MHZ = 32768, + IEEE80211_CHAN_4MHZ = 65536, + IEEE80211_CHAN_8MHZ = 131072, + IEEE80211_CHAN_16MHZ = 262144, + IEEE80211_CHAN_NO_320MHZ = 524288, + IEEE80211_CHAN_NO_EHT = 1048576, + IEEE80211_CHAN_DFS_CONCURRENT = 2097152, + IEEE80211_CHAN_NO_6GHZ_VLP_CLIENT = 4194304, + IEEE80211_CHAN_NO_6GHZ_AFC_CLIENT = 8388608, + IEEE80211_CHAN_CAN_MONITOR = 16777216, +}; + +enum ieee80211_bss_change { + BSS_CHANGED_ASSOC = 1LL, + BSS_CHANGED_ERP_CTS_PROT = 2LL, + BSS_CHANGED_ERP_PREAMBLE = 4LL, + BSS_CHANGED_ERP_SLOT = 8LL, + BSS_CHANGED_HT = 16LL, + BSS_CHANGED_BASIC_RATES = 32LL, + BSS_CHANGED_BEACON_INT = 64LL, + BSS_CHANGED_BSSID = 128LL, + BSS_CHANGED_BEACON = 256LL, + BSS_CHANGED_BEACON_ENABLED = 512LL, + BSS_CHANGED_CQM = 1024LL, + BSS_CHANGED_IBSS = 2048LL, + BSS_CHANGED_ARP_FILTER = 4096LL, + BSS_CHANGED_QOS = 8192LL, + BSS_CHANGED_IDLE = 16384LL, + BSS_CHANGED_SSID = 32768LL, + BSS_CHANGED_AP_PROBE_RESP = 65536LL, + BSS_CHANGED_PS = 131072LL, + BSS_CHANGED_TXPOWER = 262144LL, + BSS_CHANGED_P2P_PS = 524288LL, + BSS_CHANGED_BEACON_INFO = 1048576LL, + BSS_CHANGED_BANDWIDTH = 2097152LL, + BSS_CHANGED_OCB = 4194304LL, + BSS_CHANGED_MU_GROUPS = 8388608LL, + BSS_CHANGED_KEEP_ALIVE = 16777216LL, + BSS_CHANGED_MCAST_RATE = 33554432LL, + BSS_CHANGED_FTM_RESPONDER = 67108864LL, + BSS_CHANGED_TWT = 134217728LL, + BSS_CHANGED_HE_OBSS_PD = 268435456LL, + BSS_CHANGED_HE_BSS_COLOR = 536870912LL, + BSS_CHANGED_FILS_DISCOVERY = 1073741824LL, + BSS_CHANGED_UNSOL_BCAST_PROBE_RESP = -2147483648LL, + BSS_CHANGED_MLD_VALID_LINKS = 8589934592LL, + BSS_CHANGED_MLD_TTLM = 17179869184LL, +}; + +enum ieee80211_rate_control_changed { + IEEE80211_RC_BW_CHANGED = 1, + IEEE80211_RC_SMPS_CHANGED = 2, + IEEE80211_RC_SUPP_RATES_CHANGED = 4, + IEEE80211_RC_NSS_CHANGED = 8, +}; + +enum ieee80211_sdata_state_bits { + SDATA_STATE_RUNNING = 0, + SDATA_STATE_OFFCHANNEL = 1, + SDATA_STATE_OFFCHANNEL_BEACON_STOPPED = 2, +}; + +struct fc_log; + +struct p_log { + const char *prefix; + struct fc_log *log; +}; + +enum fs_context_purpose { + FS_CONTEXT_FOR_MOUNT = 0, + FS_CONTEXT_FOR_SUBMOUNT = 1, + FS_CONTEXT_FOR_RECONFIGURE = 2, +}; + +enum fs_context_phase { + FS_CONTEXT_CREATE_PARAMS = 0, + FS_CONTEXT_CREATING = 1, + FS_CONTEXT_AWAITING_MOUNT = 2, + FS_CONTEXT_AWAITING_RECONF = 3, + FS_CONTEXT_RECONF_PARAMS = 4, + FS_CONTEXT_RECONFIGURING = 5, + FS_CONTEXT_FAILED = 6, +}; + +struct fs_context_operations; + +struct fs_context { + const struct fs_context_operations *ops; + struct mutex uapi_mutex; + struct file_system_type *fs_type; + void *fs_private; + void *sget_key; + struct dentry *root; + struct user_namespace *user_ns; + struct net *net_ns; + const struct cred *cred; + struct p_log log; + const char *source; + void *security; + void *s_fs_info; + unsigned int sb_flags; + unsigned int sb_flags_mask; + unsigned int s_iflags; + enum fs_context_purpose purpose: 8; + enum fs_context_phase phase: 8; + bool need_free: 1; + bool global: 1; + bool oldapi: 1; + bool exclusive: 1; +}; + +struct fs_context_operations { + void (*free)(struct fs_context *); + int (*dup)(struct fs_context *, struct fs_context *); + int (*parse_param)(struct fs_context *, struct fs_parameter *); + int (*parse_monolithic)(struct fs_context *, void *); + int (*get_tree)(struct fs_context *); + int (*reconfigure)(struct fs_context *); +}; + +enum fs_value_type { + fs_value_is_undefined = 0, + fs_value_is_flag = 1, + fs_value_is_string = 2, + fs_value_is_blob = 3, + fs_value_is_filename = 4, + fs_value_is_file = 5, +}; + +struct filename; + +struct fs_parameter { + const char *key; + enum fs_value_type type: 8; + union { + char *string; + void *blob; + struct filename *name; + struct file *file; + }; + size_t size; + int dirfd; +}; + +struct audit_names; + +struct filename { + const char *name; + const char __attribute__((btf_type_tag("user"))) *uptr; + atomic_t refcnt; + struct audit_names *aname; + const char iname[0]; +}; + +struct nsset { + unsigned int flags; + struct nsproxy *nsproxy; + struct fs_struct *fs; + const struct cred *cred; +}; + +struct new_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; + char domainname[65]; +}; + +struct uts_namespace { + struct new_utsname name; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; +}; + +struct binfmt_misc { + struct list_head entries; + rwlock_t entries_lock; + bool enabled; +}; + +struct anon_vma { + struct anon_vma *root; + struct rw_semaphore rwsem; + atomic_t refcount; + unsigned long num_children; + unsigned long num_active_vmas; + struct anon_vma *parent; + struct rb_root_cached rb_root; +}; + +struct mempolicy { + atomic_t refcnt; + unsigned short mode; + unsigned short flags; + nodemask_t nodes; + int home_node; + union { + nodemask_t cpuset_mems_allowed; + nodemask_t user_nodemask; + } w; +}; + +struct task_delay_info { + raw_spinlock_t lock; + u64 blkio_start; + u64 blkio_delay; + u64 swapin_start; + u64 swapin_delay; + u32 blkio_count; + u32 swapin_count; + u64 freepages_start; + u64 freepages_delay; + u64 thrashing_start; + u64 thrashing_delay; + u64 compact_start; + u64 compact_delay; + u64 wpcopy_start; + u64 wpcopy_delay; + u64 irq_delay; + u32 freepages_count; + u32 thrashing_count; + u32 compact_count; + u32 wpcopy_count; + u32 irq_count; +}; + +struct fc_log { + refcount_t usage; + u8 head; + u8 tail; + u8 need_free; + struct module *owner; + char *buffer[8]; +}; + +struct fs_parse_result { + bool negated; + union { + bool boolean; + int int_32; + unsigned int uint_32; + u64 uint_64; + }; +}; + +typedef void (*btf_trace_initcall_level)(void *, const char *); + +typedef int (*initcall_t)(); + +typedef void (*btf_trace_initcall_start)(void *, initcall_t); + +typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); + +enum system_states { + SYSTEM_BOOTING = 0, + SYSTEM_SCHEDULING = 1, + SYSTEM_FREEING_INITMEM = 2, + SYSTEM_RUNNING = 3, + SYSTEM_HALT = 4, + SYSTEM_POWER_OFF = 5, + SYSTEM_RESTART = 6, + SYSTEM_SUSPEND = 7, +}; + +typedef int initcall_entry_t; + +struct trace_event_raw_initcall_level { + struct trace_entry ent; + u32 __data_loc_level; + char __data[0]; +}; + +struct trace_event_raw_initcall_start { + struct trace_entry ent; + initcall_t func; + char __data[0]; +}; + +struct trace_event_raw_initcall_finish { + struct trace_entry ent; + initcall_t func; + int ret; + char __data[0]; +}; + +struct blacklist_entry { + struct list_head next; + char *buf; +}; + +struct trace_event_data_offsets_initcall_level { + u32 level; + const void *level_ptr_; +}; + +typedef int (*parse_unknown_fn)(char *, char *, const char *, void *); + +struct trace_event_data_offsets_initcall_start {}; + +struct trace_event_data_offsets_initcall_finish {}; + +enum spectre_v2_mitigation { + SPECTRE_V2_NONE = 0, + SPECTRE_V2_RETPOLINE = 1, + SPECTRE_V2_LFENCE = 2, + SPECTRE_V2_EIBRS = 3, + SPECTRE_V2_EIBRS_RETPOLINE = 4, + SPECTRE_V2_EIBRS_LFENCE = 5, + SPECTRE_V2_IBRS = 6, +}; + +enum l1tf_mitigations { + L1TF_MITIGATION_OFF = 0, + L1TF_MITIGATION_FLUSH_NOWARN = 1, + L1TF_MITIGATION_FLUSH = 2, + L1TF_MITIGATION_FLUSH_NOSMT = 3, + L1TF_MITIGATION_FULL = 4, + L1TF_MITIGATION_FULL_FORCE = 5, +}; + +enum vmx_l1d_flush_state { + VMENTER_L1D_FLUSH_AUTO = 0, + VMENTER_L1D_FLUSH_NEVER = 1, + VMENTER_L1D_FLUSH_COND = 2, + VMENTER_L1D_FLUSH_ALWAYS = 3, + VMENTER_L1D_FLUSH_EPT_DISABLED = 4, + VMENTER_L1D_FLUSH_NOT_REQUIRED = 5, +}; + +enum rfds_mitigations { + RFDS_MITIGATION_OFF = 0, + RFDS_MITIGATION_VERW = 1, + RFDS_MITIGATION_UCODE_NEEDED = 2, +}; + +enum srbds_mitigations { + SRBDS_MITIGATION_OFF = 0, + SRBDS_MITIGATION_UCODE_NEEDED = 1, + SRBDS_MITIGATION_FULL = 2, + SRBDS_MITIGATION_TSX_OFF = 3, + SRBDS_MITIGATION_HYPERVISOR = 4, +}; + +enum l1d_flush_mitigations { + L1D_FLUSH_OFF = 0, + L1D_FLUSH_ON = 1, +}; + +enum gds_mitigations { + GDS_MITIGATION_OFF = 0, + GDS_MITIGATION_UCODE_NEEDED = 1, + GDS_MITIGATION_FORCE = 2, + GDS_MITIGATION_FULL = 3, + GDS_MITIGATION_FULL_LOCKED = 4, + GDS_MITIGATION_HYPERVISOR = 5, +}; + +enum spectre_v1_mitigation { + SPECTRE_V1_MITIGATION_NONE = 0, + SPECTRE_V1_MITIGATION_AUTO = 1, +}; + +enum retbleed_mitigation_cmd { + RETBLEED_CMD_OFF = 0, + RETBLEED_CMD_AUTO = 1, + RETBLEED_CMD_UNRET = 2, + RETBLEED_CMD_IBPB = 3, + RETBLEED_CMD_STUFF = 4, +}; + +enum retbleed_mitigation { + RETBLEED_MITIGATION_NONE = 0, + RETBLEED_MITIGATION_UNRET = 1, + RETBLEED_MITIGATION_IBPB = 2, + RETBLEED_MITIGATION_IBRS = 3, + RETBLEED_MITIGATION_EIBRS = 4, + RETBLEED_MITIGATION_STUFF = 5, +}; + +enum spectre_v2_mitigation_cmd { + SPECTRE_V2_CMD_NONE = 0, + SPECTRE_V2_CMD_AUTO = 1, + SPECTRE_V2_CMD_FORCE = 2, + SPECTRE_V2_CMD_RETPOLINE = 3, + SPECTRE_V2_CMD_RETPOLINE_GENERIC = 4, + SPECTRE_V2_CMD_RETPOLINE_LFENCE = 5, + SPECTRE_V2_CMD_EIBRS = 6, + SPECTRE_V2_CMD_EIBRS_RETPOLINE = 7, + SPECTRE_V2_CMD_EIBRS_LFENCE = 8, + SPECTRE_V2_CMD_IBRS = 9, +}; + +enum spectre_v2_user_cmd { + SPECTRE_V2_USER_CMD_NONE = 0, + SPECTRE_V2_USER_CMD_AUTO = 1, + SPECTRE_V2_USER_CMD_FORCE = 2, + SPECTRE_V2_USER_CMD_PRCTL = 3, + SPECTRE_V2_USER_CMD_PRCTL_IBPB = 4, + SPECTRE_V2_USER_CMD_SECCOMP = 5, + SPECTRE_V2_USER_CMD_SECCOMP_IBPB = 6, +}; + +enum spectre_v2_user_mitigation { + SPECTRE_V2_USER_NONE = 0, + SPECTRE_V2_USER_STRICT = 1, + SPECTRE_V2_USER_STRICT_PREFERRED = 2, + SPECTRE_V2_USER_PRCTL = 3, + SPECTRE_V2_USER_SECCOMP = 4, +}; + +enum mds_mitigations { + MDS_MITIGATION_OFF = 0, + MDS_MITIGATION_FULL = 1, + MDS_MITIGATION_VMWERV = 2, +}; + +enum taa_mitigations { + TAA_MITIGATION_OFF = 0, + TAA_MITIGATION_UCODE_NEEDED = 1, + TAA_MITIGATION_VERW = 2, + TAA_MITIGATION_TSX_DISABLED = 3, +}; + +enum mmio_mitigations { + MMIO_MITIGATION_OFF = 0, + MMIO_MITIGATION_UCODE_NEEDED = 1, + MMIO_MITIGATION_VERW = 2, +}; + +enum ssb_mitigation_cmd { + SPEC_STORE_BYPASS_CMD_NONE = 0, + SPEC_STORE_BYPASS_CMD_AUTO = 1, + SPEC_STORE_BYPASS_CMD_ON = 2, + SPEC_STORE_BYPASS_CMD_PRCTL = 3, + SPEC_STORE_BYPASS_CMD_SECCOMP = 4, +}; + +enum ssb_mitigation { + SPEC_STORE_BYPASS_NONE = 0, + SPEC_STORE_BYPASS_DISABLE = 1, + SPEC_STORE_BYPASS_PRCTL = 2, + SPEC_STORE_BYPASS_SECCOMP = 3, +}; + +enum srso_mitigation_cmd { + SRSO_CMD_OFF = 0, + SRSO_CMD_MICROCODE = 1, + SRSO_CMD_SAFE_RET = 2, + SRSO_CMD_IBPB = 3, + SRSO_CMD_IBPB_ON_VMEXIT = 4, +}; + +enum srso_mitigation { + SRSO_MITIGATION_NONE = 0, + SRSO_MITIGATION_UCODE_NEEDED = 1, + SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED = 2, + SRSO_MITIGATION_MICROCODE = 3, + SRSO_MITIGATION_SAFE_RET = 4, + SRSO_MITIGATION_IBPB = 5, + SRSO_MITIGATION_IBPB_ON_VMEXIT = 6, +}; + +enum cpuhp_smt_control { + CPU_SMT_ENABLED = 0, + CPU_SMT_DISABLED = 1, + CPU_SMT_FORCE_DISABLED = 2, + CPU_SMT_NOT_SUPPORTED = 3, + CPU_SMT_NOT_IMPLEMENTED = 4, +}; + +enum e820_type { + E820_TYPE_RAM = 1, + E820_TYPE_RESERVED = 2, + E820_TYPE_ACPI = 3, + E820_TYPE_NVS = 4, + E820_TYPE_UNUSABLE = 5, + E820_TYPE_PMEM = 7, + E820_TYPE_PRAM = 12, + E820_TYPE_SOFT_RESERVED = 4026531839, + E820_TYPE_RESERVED_KERN = 128, +}; + +enum x86_hypervisor_type { + X86_HYPER_NATIVE = 0, + X86_HYPER_VMWARE = 1, + X86_HYPER_MS_HYPERV = 2, + X86_HYPER_XEN_PV = 3, + X86_HYPER_XEN_HVM = 4, + X86_HYPER_KVM = 5, + X86_HYPER_JAILHOUSE = 6, + X86_HYPER_ACRN = 7, +}; + +typedef void (*smp_call_func_t)(void *); + +typedef bool (*smp_cond_func_t)(int, void *); + +struct io_bitmap { + u64 sequence; + refcount_t refcnt; + unsigned int max; + unsigned long bitmap[1024]; +}; + +typedef void (*btf_trace_page_fault_user)(void *, unsigned long, struct pt_regs *, unsigned long); + +typedef void (*btf_trace_page_fault_kernel)(void *, unsigned long, struct pt_regs *, unsigned long); + +enum x86_pf_error_code { + X86_PF_PROT = 1, + X86_PF_WRITE = 2, + X86_PF_USER = 4, + X86_PF_RSVD = 8, + X86_PF_INSTR = 16, + X86_PF_PK = 32, + X86_PF_SHSTK = 64, + X86_PF_SGX = 32768, + X86_PF_RMP = 2147483648, +}; + +enum stack_type { + STACK_TYPE_UNKNOWN = 0, + STACK_TYPE_TASK = 1, + STACK_TYPE_IRQ = 2, + STACK_TYPE_SOFTIRQ = 3, + STACK_TYPE_ENTRY = 4, + STACK_TYPE_EXCEPTION = 5, + STACK_TYPE_EXCEPTION_LAST = 10, +}; + +enum perf_sw_ids { + PERF_COUNT_SW_CPU_CLOCK = 0, + PERF_COUNT_SW_TASK_CLOCK = 1, + PERF_COUNT_SW_PAGE_FAULTS = 2, + PERF_COUNT_SW_CONTEXT_SWITCHES = 3, + PERF_COUNT_SW_CPU_MIGRATIONS = 4, + PERF_COUNT_SW_PAGE_FAULTS_MIN = 5, + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6, + PERF_COUNT_SW_ALIGNMENT_FAULTS = 7, + PERF_COUNT_SW_EMULATION_FAULTS = 8, + PERF_COUNT_SW_DUMMY = 9, + PERF_COUNT_SW_BPF_OUTPUT = 10, + PERF_COUNT_SW_CGROUP_SWITCHES = 11, + PERF_COUNT_SW_MAX = 12, +}; + +enum vm_fault_reason { + VM_FAULT_OOM = 1, + VM_FAULT_SIGBUS = 2, + VM_FAULT_MAJOR = 4, + VM_FAULT_HWPOISON = 16, + VM_FAULT_HWPOISON_LARGE = 32, + VM_FAULT_SIGSEGV = 64, + VM_FAULT_NOPAGE = 256, + VM_FAULT_LOCKED = 512, + VM_FAULT_RETRY = 1024, + VM_FAULT_FALLBACK = 2048, + VM_FAULT_DONE_COW = 4096, + VM_FAULT_NEEDDSYNC = 8192, + VM_FAULT_COMPLETED = 16384, + VM_FAULT_HINDEX_MASK = 983040, +}; + +struct trace_event_raw_x86_exceptions { + struct trace_entry ent; + unsigned long address; + unsigned long ip; + unsigned long error_code; + char __data[0]; +}; + +typedef struct { + pgd_t pgd; +} p4d_t; + +typedef u8 kprobe_opcode_t; + +struct kprobe; + +typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); + +typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long); + +struct arch_specific_insn { + kprobe_opcode_t *insn; + unsigned int boostable: 1; + unsigned char size; + union { + unsigned char opcode; + struct { + unsigned char type; + } jcc; + struct { + unsigned char type; + unsigned char asize; + } loop; + struct { + unsigned char reg; + } indirect; + }; + s32 rel32; + void (*emulate_op)(struct kprobe *, struct pt_regs *); + int tp_len; +}; + +struct kprobe { + struct hlist_node hlist; + struct list_head list; + unsigned long nmissed; + kprobe_opcode_t *addr; + const char *symbol_name; + unsigned int offset; + kprobe_pre_handler_t pre_handler; + kprobe_post_handler_t post_handler; + kprobe_opcode_t opcode; + struct arch_specific_insn ainsn; + u32 flags; +}; + +struct cea_exception_stacks { + char DF_stack_guard[4096]; + char DF_stack[8192]; + char NMI_stack_guard[4096]; + char NMI_stack[8192]; + char DB_stack_guard[4096]; + char DB_stack[8192]; + char MCE_stack_guard[4096]; + char MCE_stack[8192]; + char VC_stack_guard[4096]; + char VC_stack[8192]; + char VC2_stack_guard[4096]; + char VC2_stack[8192]; + char IST_top_guard[4096]; +}; + +struct irqentry_state { + union { + bool exit_rcu; + bool lockdep; + }; +}; + +typedef struct irqentry_state irqentry_state_t; + +struct stack_info { + enum stack_type type; + unsigned long *begin; + unsigned long *end; + unsigned long *next_sp; +}; + +struct desc_ptr { + unsigned short size; + unsigned long address; +} __attribute__((packed)); + +struct trace_event_data_offsets_x86_exceptions {}; + +struct ldttss_desc { + u16 limit0; + u16 base0; + u16 base1: 8; + u16 type: 5; + u16 dpl: 2; + u16 p: 1; + u16 limit1: 4; + u16 zero0: 3; + u16 g: 1; + u16 base2: 8; + u32 base3; + u32 zero1; +}; + +struct rcu_cblist { + struct callback_head *head; + struct callback_head **tail; + long len; +}; + +enum pci_p2pdma_map_type { + PCI_P2PDMA_MAP_UNKNOWN = 0, + PCI_P2PDMA_MAP_NOT_SUPPORTED = 1, + PCI_P2PDMA_MAP_BUS_ADDR = 2, + PCI_P2PDMA_MAP_THRU_HOST_BRIDGE = 3, +}; + +struct io_tlb_area; + +struct io_tlb_slot; + +struct io_tlb_pool { + phys_addr_t start; + phys_addr_t end; + void *vaddr; + unsigned long nslabs; + bool late_alloc; + unsigned int nareas; + unsigned int area_nslabs; + struct io_tlb_area *areas; + struct io_tlb_slot *slots; +}; + +struct io_tlb_mem { + struct io_tlb_pool defpool; + unsigned long nslabs; + struct dentry *debugfs; + bool force_bounce; + bool for_alloc; + atomic_long_t total_used; + atomic_long_t used_hiwater; + atomic_long_t transient_nslabs; +}; + +struct pci_p2pdma_map_state { + struct dev_pagemap *pgmap; + int map; + u64 bus_off; +}; + +enum uts_proc { + UTS_PROC_ARCH = 0, + UTS_PROC_OSTYPE = 1, + UTS_PROC_OSRELEASE = 2, + UTS_PROC_VERSION = 3, + UTS_PROC_HOSTNAME = 4, + UTS_PROC_DOMAINNAME = 5, +}; + +struct ftrace_graph_ret; + +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); + +struct ftrace_graph_ret { + unsigned long func; + int depth; + unsigned int overrun; + unsigned long long calltime; + unsigned long long rettime; +}; + +struct ftrace_graph_ent; + +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); + +struct ftrace_graph_ent { + unsigned long func; + int depth; +} __attribute__((packed)); + +enum { + FTRACE_UPDATE_CALLS = 1, + FTRACE_DISABLE_CALLS = 2, + FTRACE_UPDATE_TRACE_FUNC = 4, + FTRACE_START_FUNC_RET = 8, + FTRACE_STOP_FUNC_RET = 16, + FTRACE_MAY_SLEEP = 32, +}; + +struct trace_array_cpu; + +struct array_buffer { + struct trace_array *tr; + struct trace_buffer *buffer; + struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data; + u64 time_start; + int cpu; +}; + +struct trace_pid_list; + +struct trace_options; + +struct trace_func_repeats; + +struct trace_array { + struct list_head list; + char *name; + struct array_buffer array_buffer; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_pids; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_no_pids; + arch_spinlock_t max_lock; + int buffer_disabled; + int sys_refcount_enter; + int sys_refcount_exit; + struct trace_event_file __attribute__((btf_type_tag("rcu"))) *enter_syscall_files[462]; + struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[462]; + int stop_count; + int clock_id; + int nr_topts; + bool clear_trace; + int buffer_percent; + unsigned int n_err_log_entries; + struct tracer *current_trace; + unsigned int trace_flags; + unsigned char trace_flags_index[32]; + unsigned int flags; + raw_spinlock_t start_lock; + const char *system_names; + struct list_head err_log; + struct dentry *dir; + struct dentry *options; + struct dentry *percpu_dir; + struct eventfs_inode *event_dir; + struct trace_options *topts; + struct list_head systems; + struct list_head events; + struct trace_event_file *trace_marker_file; + cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; + int ref; + int trace_ref; + struct ftrace_ops *ops; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; + struct list_head func_probes; + struct list_head mod_trace; + struct list_head mod_notrace; + int function_enabled; + int no_filter_buffering_ref; + struct list_head hist_vars; + struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; + bool ring_buffer_expanded; +}; + +struct trace_array_cpu { + atomic_t disabled; + void *buffer_page; + unsigned long entries; + unsigned long saved_latency; + unsigned long critical_start; + unsigned long critical_end; + unsigned long critical_sequence; + unsigned long nice; + unsigned long policy; + unsigned long rt_priority; + unsigned long skipped_entries; + u64 preempt_timestamp; + pid_t pid; + kuid_t uid; + char comm[16]; + int ftrace_ignore_pid; + bool ignore_pid; +}; + +union upper_chunk; + +union lower_chunk; + +struct trace_pid_list { + raw_spinlock_t lock; + struct irq_work refill_irqwork; + union upper_chunk *upper[256]; + union upper_chunk *upper_list; + union lower_chunk *lower_list; + int free_upper_chunks; + int free_lower_chunks; +}; + +union upper_chunk { + union upper_chunk *next; + union lower_chunk *data[256]; +}; + +union lower_chunk { + union lower_chunk *next; + unsigned long data[256]; +}; + +struct filter_pred; + +struct prog_entry { + int target; + int when_to_branch; + struct filter_pred *pred; +}; + +struct event_subsystem; + +struct trace_subsystem_dir { + struct list_head list; + struct event_subsystem *subsystem; + struct trace_array *tr; + struct eventfs_inode *ei; + int ref_count; + int nr_events; +}; + +struct event_subsystem { + struct list_head list; + const char *name; + struct event_filter *filter; + int ref_count; +}; + +struct tracer_flags; + +struct tracer { + const char *name; + int (*init)(struct trace_array *); + void (*reset)(struct trace_array *); + void (*start)(struct trace_array *); + void (*stop)(struct trace_array *); + int (*update_thresh)(struct trace_array *); + void (*open)(struct trace_iterator *); + void (*pipe_open)(struct trace_iterator *); + void (*close)(struct trace_iterator *); + void (*pipe_close)(struct trace_iterator *); + ssize_t (*read)(struct trace_iterator *, struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*splice_read)(struct trace_iterator *, struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*print_header)(struct seq_file *); + enum print_line_t (*print_line)(struct trace_iterator *); + int (*set_flag)(struct trace_array *, u32, u32, int); + int (*flag_changed)(struct trace_array *, u32, int); + struct tracer *next; + struct tracer_flags *flags; + int enabled; + bool print_max; + bool allow_instances; + bool noboot; +}; + +struct tracer_opt; + +struct tracer_flags { + u32 val; + struct tracer_opt *opts; + struct tracer *trace; +}; + +struct tracer_opt { + const char *name; + u32 bit; +}; + +struct trace_option_dentry; + +struct trace_options { + struct tracer *tracer; + struct trace_option_dentry *topts; +}; + +struct trace_option_dentry { + struct tracer_opt *opt; + struct tracer_flags *flags; + struct trace_array *tr; + struct dentry *entry; +}; + +struct trace_func_repeats { + unsigned long ip; + unsigned long parent_ip; + unsigned long count; + u64 ts_last_call; +}; + +struct fgraph_ret_regs { + unsigned long ax; + unsigned long dx; + unsigned long bp; +}; + +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; +}; + +enum { + IORES_DESC_NONE = 0, + IORES_DESC_CRASH_KERNEL = 1, + IORES_DESC_ACPI_TABLES = 2, + IORES_DESC_ACPI_NV_STORAGE = 3, + IORES_DESC_PERSISTENT_MEMORY = 4, + IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5, + IORES_DESC_DEVICE_PRIVATE_MEMORY = 6, + IORES_DESC_RESERVED = 7, + IORES_DESC_SOFT_RESERVED = 8, + IORES_DESC_CXL = 9, +}; + +enum { + REGION_INTERSECTS = 0, + REGION_DISJOINT = 1, + REGION_MIXED = 2, +}; + +enum { + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, +}; + +enum { + SECTION_MARKED_PRESENT_BIT = 0, + SECTION_HAS_MEM_MAP_BIT = 1, + SECTION_IS_ONLINE_BIT = 2, + SECTION_IS_EARLY_BIT = 3, + SECTION_MAP_LAST_BIT = 4, +}; + +struct mem_section_usage { + struct callback_head rcu; + unsigned long subsection_map[1]; + unsigned long pageblock_flags[0]; +}; + +struct mem_section { + unsigned long section_mem_map; + struct mem_section_usage *usage; +}; + +typedef void (*dr_release_t)(struct device *, void *); + +typedef int (*dr_match_t)(struct device *, void *, void *); + +enum lru_status { + LRU_REMOVED = 0, + LRU_REMOVED_RETRY = 1, + LRU_ROTATE = 2, + LRU_SKIP = 3, + LRU_RETRY = 4, + LRU_STOP = 5, +}; + +enum xa_lock_type { + XA_LOCK_IRQ = 1, + XA_LOCK_BH = 2, +}; + +struct reciprocal_value { + u32 m; + u8 sh1; + u8 sh2; +}; + +struct kmem_cache_order_objects { + unsigned int x; +}; + +struct kmem_cache_cpu; + +struct kmem_cache_node; + +struct kmem_cache { + struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab; + slab_flags_t flags; + unsigned long min_partial; + unsigned int size; + unsigned int object_size; + struct reciprocal_value reciprocal_size; + unsigned int offset; + unsigned int cpu_partial; + unsigned int cpu_partial_slabs; + struct kmem_cache_order_objects oo; + struct kmem_cache_order_objects min; + gfp_t allocflags; + int refcount; + void (*ctor)(void *); + unsigned int inuse; + unsigned int align; + unsigned int red_left_pad; + const char *name; + struct list_head list; + struct kobject kobj; + unsigned int remote_node_defrag_ratio; + struct kmem_cache_node *node[1024]; +}; + +typedef unsigned __int128 __u128; + +typedef __u128 u128; + +typedef u128 freelist_full_t; + +typedef union { + struct { + void *freelist; + unsigned long counter; + }; + freelist_full_t full; +} freelist_aba_t; + +struct slab; + +struct kmem_cache_cpu { + union { + struct { + void **freelist; + unsigned long tid; + }; + freelist_aba_t freelist_tid; + }; + struct slab *slab; + struct slab *partial; + local_lock_t lock; +}; + +struct compact_control; + +struct capture_control { + struct compact_control *cc; + struct page *page; +}; + +struct compact_control { + struct list_head freepages[11]; + struct list_head migratepages; + unsigned int nr_freepages; + unsigned int nr_migratepages; + unsigned long free_pfn; + unsigned long migrate_pfn; + unsigned long fast_start_pfn; + struct zone *zone; + unsigned long total_migrate_scanned; + unsigned long total_free_scanned; + unsigned short fast_search_fail; + short search_order; + const gfp_t gfp_mask; + int order; + int migratetype; + const unsigned int alloc_flags; + const int highest_zoneidx; + enum migrate_mode mode; + bool ignore_skip_hint; + bool no_set_skip_hint; + bool ignore_block_suitable; + bool direct_compaction; + bool proactive_compaction; + bool whole_zone; + bool contended; + bool finish_pageblock; + bool alloc_contig; +}; + +typedef unsigned int xa_mark_t; + +struct xa_node { + unsigned char shift; + unsigned char offset; + unsigned char count; + unsigned char nr_values; + struct xa_node __attribute__((btf_type_tag("rcu"))) *parent; + struct xarray *array; + union { + struct list_head private_list; + struct callback_head callback_head; + }; + void __attribute__((btf_type_tag("rcu"))) *slots[64]; + union { + unsigned long tags[3]; + unsigned long marks[3]; + }; +}; + +struct list_lru_memcg { + struct callback_head rcu; + struct list_lru_one node[0]; +}; + +typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); + +typedef void (*xa_update_node_t)(struct xa_node *); + +struct xa_state { + struct xarray *xa; + unsigned long xa_index; + unsigned char xa_shift; + unsigned char xa_sibs; + unsigned char xa_offset; + unsigned char xa_pad; + struct xa_node *xa_node; + struct xa_node *xa_alloc; + xa_update_node_t xa_update; + struct list_lru *xa_lru; +}; + +struct list_lru_memcg_table { + struct list_lru_memcg *mlru; + struct mem_cgroup *memcg; +}; + +enum { + DUMP_PREFIX_NONE = 0, + DUMP_PREFIX_ADDRESS = 1, + DUMP_PREFIX_OFFSET = 2, +}; + +enum _slab_flag_bits { + _SLAB_CONSISTENCY_CHECKS = 0, + _SLAB_RED_ZONE = 1, + _SLAB_POISON = 2, + _SLAB_KMALLOC = 3, + _SLAB_HWCACHE_ALIGN = 4, + _SLAB_CACHE_DMA = 5, + _SLAB_CACHE_DMA32 = 6, + _SLAB_STORE_USER = 7, + _SLAB_PANIC = 8, + _SLAB_TYPESAFE_BY_RCU = 9, + _SLAB_TRACE = 10, + _SLAB_NOLEAKTRACE = 11, + _SLAB_NO_MERGE = 12, + _SLAB_ACCOUNT = 13, + _SLAB_NO_USER_FLAGS = 14, + _SLAB_RECLAIM_ACCOUNT = 15, + _SLAB_OBJECT_POISON = 16, + _SLAB_CMPXCHG_DOUBLE = 17, + _SLAB_FLAGS_LAST_BIT = 18, +}; + +enum { + IOPRIO_CLASS_NONE = 0, + IOPRIO_CLASS_RT = 1, + IOPRIO_CLASS_BE = 2, + IOPRIO_CLASS_IDLE = 3, + IOPRIO_CLASS_INVALID = 7, +}; + +enum { + IOPRIO_HINT_NONE = 0, + IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, + IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, + IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, + IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, + IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, + IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, + IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, +}; + +struct bh_lru { + struct buffer_head *bhs[16]; +}; + +struct bh_accounting { + int nr; + int ratelimit; +}; + +enum page_memcg_data_flags { + MEMCG_DATA_OBJCGS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, +}; + +enum mapping_flags { + AS_EIO = 0, + AS_ENOSPC = 1, + AS_MM_ALL_LOCKS = 2, + AS_UNEVICTABLE = 3, + AS_EXITING = 4, + AS_NO_WRITEBACK_TAGS = 5, + AS_LARGE_FOLIO_SUPPORT = 6, + AS_RELEASE_ALWAYS = 7, + AS_STABLE_WRITES = 8, + AS_UNMOVABLE = 9, +}; + +typedef unsigned int fgf_t; + +struct postprocess_bh_ctx { + struct work_struct work; + struct buffer_head *bh; +}; + +struct wait_bit_key; + +typedef int wait_bit_action_f(struct wait_bit_key *, int); + +struct wait_bit_key { + void *flags; + int bit_nr; + unsigned long timeout; +}; + +struct dax_device; + +struct iomap_folio_ops; + +struct iomap { + u64 addr; + loff_t offset; + u64 length; + u16 type; + u16 flags; + struct block_device *bdev; + struct dax_device *dax_dev; + void *inline_data; + void *private; + const struct iomap_folio_ops *folio_ops; + u64 validity_cookie; +}; + +struct iomap_iter; + +struct iomap_folio_ops { + struct folio * (*get_folio)(struct iomap_iter *, loff_t, unsigned int); + void (*put_folio)(struct inode *, loff_t, unsigned int, struct folio *); + bool (*iomap_valid)(struct inode *, const struct iomap *); +}; + +struct iomap_iter { + struct inode *inode; + loff_t pos; + u64 len; + s64 processed; + unsigned int flags; + struct iomap iomap; + struct iomap srcmap; + void *private; +}; + +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); + +struct miscdevice { + int minor; + const char *name; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; +}; + +struct fdtable { + unsigned int max_fds; + struct file __attribute__((btf_type_tag("rcu"))) **fd; + unsigned long *close_on_exec; + unsigned long *open_fds; + unsigned long *full_fds_bits; + struct callback_head rcu; +}; + +struct files_struct { + atomic_t count; + bool resize_in_progress; + wait_queue_head_t resize_wait; + struct fdtable __attribute__((btf_type_tag("rcu"))) *fdt; + struct fdtable fdtab; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t file_lock; + unsigned int next_fd; + unsigned long close_on_exec_init[1]; + unsigned long open_fds_init[1]; + unsigned long full_fds_bits_init[1]; + struct file __attribute__((btf_type_tag("rcu"))) *fd_array[64]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct autofs_sb_info; + +struct autofs_dev_ioctl; + +typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); + +struct autofs_wait_queue; + +struct autofs_sb_info { + u32 magic; + int pipefd; + struct file *pipe; + struct pid *oz_pgrp; + int version; + int sub_version; + int min_proto; + int max_proto; + unsigned int flags; + unsigned long exp_timeout; + unsigned int type; + struct super_block *sb; + struct mutex wq_mutex; + struct mutex pipe_mutex; + spinlock_t fs_lock; + struct autofs_wait_queue *queues; + spinlock_t lookup_lock; + struct list_head active_list; + struct list_head expiring_list; + struct callback_head rcu; +}; + +typedef unsigned int autofs_wqt_t; + +struct autofs_wait_queue { + wait_queue_head_t queue; + struct autofs_wait_queue *next; + autofs_wqt_t wait_queue_token; + struct qstr name; + u32 offset; + u32 dev; + u64 ino; + kuid_t uid; + kgid_t gid; + pid_t pid; + pid_t tgid; + int status; + unsigned int wait_ctr; +}; + +struct args_protover { + __u32 version; +}; + +struct args_protosubver { + __u32 sub_version; +}; + +struct args_openmount { + __u32 devid; +}; + +struct args_ready { + __u32 token; +}; + +struct args_fail { + __u32 token; + __s32 status; +}; + +struct args_setpipefd { + __s32 pipefd; +}; + +struct args_timeout { + __u64 timeout; +}; + +struct args_requester { + __u32 uid; + __u32 gid; +}; + +struct args_expire { + __u32 how; +}; + +struct args_askumount { + __u32 may_umount; +}; + +struct args_in { + __u32 type; +}; + +struct args_out { + __u32 devid; + __u32 magic; +}; + +struct args_ismountpoint { + union { + struct args_in in; + struct args_out out; + }; +}; + +struct autofs_dev_ioctl { + __u32 ver_major; + __u32 ver_minor; + __u32 size; + __s32 ioctlfd; + union { + struct args_protover protover; + struct args_protosubver protosubver; + struct args_openmount openmount; + struct args_ready ready; + struct args_fail fail; + struct args_setpipefd setpipefd; + struct args_timeout timeout; + struct args_requester requester; + struct args_expire expire; + struct args_askumount askumount; + struct args_ismountpoint ismountpoint; + }; + char path[0]; +}; + +enum { + AUTOFS_DEV_IOCTL_VERSION_CMD = 113, + AUTOFS_DEV_IOCTL_PROTOVER_CMD = 114, + AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD = 115, + AUTOFS_DEV_IOCTL_OPENMOUNT_CMD = 116, + AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD = 117, + AUTOFS_DEV_IOCTL_READY_CMD = 118, + AUTOFS_DEV_IOCTL_FAIL_CMD = 119, + AUTOFS_DEV_IOCTL_SETPIPEFD_CMD = 120, + AUTOFS_DEV_IOCTL_CATATONIC_CMD = 121, + AUTOFS_DEV_IOCTL_TIMEOUT_CMD = 122, + AUTOFS_DEV_IOCTL_REQUESTER_CMD = 123, + AUTOFS_DEV_IOCTL_EXPIRE_CMD = 124, + AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD = 125, + AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD = 126, +}; + +struct autofs_info { + struct dentry *dentry; + int flags; + struct completion expire_complete; + struct list_head active; + struct list_head expiring; + struct autofs_sb_info *sbi; + unsigned long last_used; + int count; + kuid_t uid; + kgid_t gid; + struct callback_head rcu; +}; + +enum btrfs_trans_state { + TRANS_STATE_RUNNING = 0, + TRANS_STATE_COMMIT_PREP = 1, + TRANS_STATE_COMMIT_START = 2, + TRANS_STATE_COMMIT_DOING = 3, + TRANS_STATE_UNBLOCKED = 4, + TRANS_STATE_SUPER_COMMITTED = 5, + TRANS_STATE_COMPLETED = 6, + TRANS_STATE_MAX = 7, +}; + +enum btrfs_chunk_allocation_policy { + BTRFS_CHUNK_ALLOC_REGULAR = 0, + BTRFS_CHUNK_ALLOC_ZONED = 1, +}; + +enum btrfs_read_policy { + BTRFS_READ_POLICY_PID = 0, + BTRFS_NR_READ_POLICY = 1, +}; + +enum btrfs_trim_state { + BTRFS_TRIM_STATE_UNTRIMMED = 0, + BTRFS_TRIM_STATE_TRIMMED = 1, + BTRFS_TRIM_STATE_TRIMMING = 2, +}; + +enum btrfs_discard_state { + BTRFS_DISCARD_EXTENTS = 0, + BTRFS_DISCARD_BITMAPS = 1, + BTRFS_DISCARD_RESET_CURSOR = 2, +}; + +enum btrfs_block_group_size_class { + BTRFS_BG_SZ_NONE = 0, + BTRFS_BG_SZ_SMALL = 1, + BTRFS_BG_SZ_MEDIUM = 2, + BTRFS_BG_SZ_LARGE = 3, +}; + +enum btrfs_reserve_flush_enum { + BTRFS_RESERVE_NO_FLUSH = 0, + BTRFS_RESERVE_FLUSH_LIMIT = 1, + BTRFS_RESERVE_FLUSH_EVICT = 2, + BTRFS_RESERVE_FLUSH_DATA = 3, + BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE = 4, + BTRFS_RESERVE_FLUSH_ALL = 5, + BTRFS_RESERVE_FLUSH_ALL_STEAL = 6, + BTRFS_RESERVE_FLUSH_EMERGENCY = 7, +}; + +enum btrfs_chunk_alloc_enum { + CHUNK_ALLOC_NO_FORCE = 0, + CHUNK_ALLOC_LIMITED = 1, + CHUNK_ALLOC_FORCE = 2, + CHUNK_ALLOC_FORCE_FOR_EXTENT = 3, +}; + +enum { + BTRFS_MOUNT_NODATASUM = 1, + BTRFS_MOUNT_NODATACOW = 2, + BTRFS_MOUNT_NOBARRIER = 4, + BTRFS_MOUNT_SSD = 8, + BTRFS_MOUNT_DEGRADED = 16, + BTRFS_MOUNT_COMPRESS = 32, + BTRFS_MOUNT_NOTREELOG = 64, + BTRFS_MOUNT_FLUSHONCOMMIT = 128, + BTRFS_MOUNT_SSD_SPREAD = 256, + BTRFS_MOUNT_NOSSD = 512, + BTRFS_MOUNT_DISCARD_SYNC = 1024, + BTRFS_MOUNT_FORCE_COMPRESS = 2048, + BTRFS_MOUNT_SPACE_CACHE = 4096, + BTRFS_MOUNT_CLEAR_CACHE = 8192, + BTRFS_MOUNT_USER_SUBVOL_RM_ALLOWED = 16384, + BTRFS_MOUNT_ENOSPC_DEBUG = 32768, + BTRFS_MOUNT_AUTO_DEFRAG = 65536, + BTRFS_MOUNT_USEBACKUPROOT = 131072, + BTRFS_MOUNT_SKIP_BALANCE = 262144, + BTRFS_MOUNT_PANIC_ON_FATAL_ERROR = 524288, + BTRFS_MOUNT_RESCAN_UUID_TREE = 1048576, + BTRFS_MOUNT_FRAGMENT_DATA = 2097152, + BTRFS_MOUNT_FRAGMENT_METADATA = 4194304, + BTRFS_MOUNT_FREE_SPACE_TREE = 8388608, + BTRFS_MOUNT_NOLOGREPLAY = 16777216, + BTRFS_MOUNT_REF_VERIFY = 33554432, + BTRFS_MOUNT_DISCARD_ASYNC = 67108864, + BTRFS_MOUNT_IGNOREBADROOTS = 134217728, + BTRFS_MOUNT_IGNOREDATACSUMS = 268435456, + BTRFS_MOUNT_NODISCARD = 536870912, + BTRFS_MOUNT_NOSPACECACHE = 1073741824, +}; + +enum { + BTRFS_ROOT_IN_TRANS_SETUP = 0, + BTRFS_ROOT_SHAREABLE = 1, + BTRFS_ROOT_TRACK_DIRTY = 2, + BTRFS_ROOT_IN_RADIX = 3, + BTRFS_ROOT_ORPHAN_ITEM_INSERTED = 4, + BTRFS_ROOT_DEFRAG_RUNNING = 5, + BTRFS_ROOT_FORCE_COW = 6, + BTRFS_ROOT_MULTI_LOG_TASKS = 7, + BTRFS_ROOT_DIRTY = 8, + BTRFS_ROOT_DELETING = 9, + BTRFS_ROOT_DEAD_RELOC_TREE = 10, + BTRFS_ROOT_DEAD_TREE = 11, + BTRFS_ROOT_HAS_LOG_TREE = 12, + BTRFS_ROOT_QGROUP_FLUSHING = 13, + BTRFS_ROOT_ORPHAN_CLEANUP = 14, + BTRFS_ROOT_UNFINISHED_DROP = 15, + BTRFS_ROOT_RESET_LOCKDEP_CLASS = 16, +}; + +struct btrfs_space_info { + spinlock_t lock; + u64 total_bytes; + u64 bytes_used; + u64 bytes_pinned; + u64 bytes_reserved; + u64 bytes_may_use; + u64 bytes_readonly; + u64 bytes_zone_unusable; + u64 max_extent_size; + u64 chunk_size; + int bg_reclaim_threshold; + int clamp; + unsigned int full: 1; + unsigned int chunk_alloc: 1; + unsigned int flush: 1; + unsigned int force_alloc; + u64 disk_used; + u64 disk_total; + u64 flags; + struct list_head list; + struct list_head ro_bgs; + struct list_head priority_tickets; + struct list_head tickets; + u64 reclaim_size; + u64 tickets_id; + struct rw_semaphore groups_sem; + struct list_head block_groups[9]; + struct kobject kobj; + struct kobject *block_group_kobjs[9]; +}; + +struct btrfs_delayed_ref_root { + struct rb_root_cached href_root; + struct rb_root dirty_extent_root; + spinlock_t lock; + atomic_t num_entries; + unsigned long num_heads; + unsigned long num_heads_ready; + u64 pending_csums; + unsigned long flags; + u64 run_delayed_start; + u64 qgroup_to_skip; +}; + +struct btrfs_transaction { + u64 transid; + atomic_t num_extwriters; + atomic_t num_writers; + refcount_t use_count; + unsigned long flags; + enum btrfs_trans_state state; + int aborted; + struct list_head list; + struct extent_io_tree dirty_pages; + time64_t start_time; + wait_queue_head_t writer_wait; + wait_queue_head_t commit_wait; + struct list_head pending_snapshots; + struct list_head dev_update_list; + struct list_head switch_commits; + struct list_head dirty_bgs; + struct list_head io_bgs; + struct list_head dropped_roots; + struct extent_io_tree pinned_extents; + struct mutex cache_write_mutex; + spinlock_t dirty_bgs_lock; + struct list_head deleted_bgs; + spinlock_t dropped_roots_lock; + struct btrfs_delayed_ref_root delayed_refs; + struct btrfs_fs_info *fs_info; + atomic_t pending_ordered; + wait_queue_head_t pending_wait; +}; + +struct btrfs_fs_devices { + u8 fsid[16]; + u8 metadata_uuid[16]; + struct list_head fs_list; + u64 num_devices; + u64 open_devices; + u64 rw_devices; + u64 missing_devices; + u64 total_rw_bytes; + u64 total_devices; + u64 latest_generation; + struct btrfs_device *latest_dev; + struct mutex device_list_mutex; + struct list_head devices; + struct list_head alloc_list; + struct list_head seed_list; + int opened; + bool rotating; + bool discardable; + bool seeding; + bool temp_fsid; + struct btrfs_fs_info *fs_info; + struct kobject fsid_kobj; + struct kobject *devices_kobj; + struct kobject *devinfo_kobj; + struct completion kobj_unregister; + enum btrfs_chunk_allocation_policy chunk_alloc_policy; + enum btrfs_read_policy read_policy; +}; + +struct rcu_string; + +struct btrfs_zoned_device_info; + +struct scrub_ctx; + +struct btrfs_device { + struct list_head dev_list; + struct list_head dev_alloc_list; + struct list_head post_commit_list; + struct btrfs_fs_devices *fs_devices; + struct btrfs_fs_info *fs_info; + struct rcu_string __attribute__((btf_type_tag("rcu"))) *name; + u64 generation; + struct file *bdev_file; + struct block_device *bdev; + struct btrfs_zoned_device_info *zone_info; + dev_t devt; + unsigned long dev_state; + blk_status_t last_flush_error; + u64 devid; + u64 total_bytes; + u64 disk_total_bytes; + u64 bytes_used; + u32 io_align; + u32 io_width; + u64 type; + u32 sector_size; + u8 uuid[16]; + u64 commit_total_bytes; + u64 commit_bytes_used; + struct bio flush_bio; + struct completion flush_wait; + struct scrub_ctx *scrub_ctx; + int dev_stats_valid; + atomic_t dev_stats_ccnt; + atomic_t dev_stat_values[5]; + struct extent_io_tree alloc_state; + struct completion kobj_unregister; + struct kobject devid_kobj; + u64 scrub_speed_max; +}; + +struct rcu_string { + struct callback_head rcu; + char str[0]; +}; + +struct btrfs_io_ctl { + void *cur; + void *orig; + struct page *page; + struct page **pages; + struct btrfs_fs_info *fs_info; + struct inode *inode; + unsigned long size; + int index; + int num_pages; + int entries; + int bitmaps; +}; + +struct btrfs_caching_control; + +struct btrfs_free_space_ctl; + +struct btrfs_chunk_map; + +struct btrfs_block_group { + struct btrfs_fs_info *fs_info; + struct inode *inode; + spinlock_t lock; + u64 start; + u64 length; + u64 pinned; + u64 reserved; + u64 used; + u64 delalloc_bytes; + u64 bytes_super; + u64 flags; + u64 cache_generation; + u64 global_root_id; + u64 commit_used; + u32 bitmap_high_thresh; + u32 bitmap_low_thresh; + struct rw_semaphore data_rwsem; + unsigned long full_stripe_len; + unsigned long runtime_flags; + unsigned int ro; + int disk_cache_state; + int cached; + struct btrfs_caching_control *caching_ctl; + struct btrfs_space_info *space_info; + struct btrfs_free_space_ctl *free_space_ctl; + struct rb_node cache_node; + struct list_head list; + refcount_t refs; + struct list_head cluster_list; + struct list_head bg_list; + struct list_head ro_list; + atomic_t frozen; + struct list_head discard_list; + int discard_index; + u64 discard_eligible_time; + u64 discard_cursor; + enum btrfs_discard_state discard_state; + struct list_head dirty_list; + struct list_head io_list; + struct btrfs_io_ctl io_ctl; + atomic_t reservations; + atomic_t nocow_writers; + struct mutex free_space_lock; + int swap_extents; + u64 alloc_offset; + u64 zone_unusable; + u64 zone_capacity; + u64 meta_write_pointer; + struct btrfs_chunk_map *physical_map; + struct list_head active_bg_list; + struct work_struct zone_finish_work; + struct extent_buffer *last_eb; + enum btrfs_block_group_size_class size_class; +}; + +struct btrfs_caching_control { + struct list_head list; + struct mutex mutex; + wait_queue_head_t wait; + struct btrfs_work work; + struct btrfs_block_group *block_group; + atomic_t progress; + refcount_t count; +}; + +struct btrfs_free_space_op; + +struct btrfs_free_space_ctl { + spinlock_t tree_lock; + struct rb_root free_space_offset; + struct rb_root_cached free_space_bytes; + u64 free_space; + int extents_thresh; + int free_extents; + int total_bitmaps; + int unit; + u64 start; + s32 discardable_extents[2]; + s64 discardable_bytes[2]; + const struct btrfs_free_space_op *op; + struct btrfs_block_group *block_group; + struct mutex cache_writeout_mutex; + struct list_head trimming_ranges; +}; + +struct btrfs_free_space; + +struct btrfs_free_space_op { + bool (*use_bitmap)(struct btrfs_free_space_ctl *, struct btrfs_free_space *); +}; + +struct btrfs_free_space { + struct rb_node offset_index; + struct rb_node bytes_index; + u64 offset; + u64 bytes; + u64 max_extent_size; + unsigned long *bitmap; + struct list_head list; + enum btrfs_trim_state trim_state; + s32 bitmap_extents; +}; + +struct btrfs_io_context; + +struct btrfs_io_stripe { + struct btrfs_device *dev; + u64 physical; + u64 length; + bool is_scrub; + struct btrfs_io_context *bioc; +}; + +struct btrfs_chunk_map { + struct rb_node rb_node; + int verified_stripes; + refcount_t refs; + u64 start; + u64 chunk_len; + u64 stripe_size; + u64 type; + int io_align; + int io_width; + int num_stripes; + int sub_stripes; + struct btrfs_io_stripe stripes[0]; +}; + +struct btrfs_io_context { + refcount_t refs; + struct btrfs_fs_info *fs_info; + u64 map_type; + struct bio *orig_bio; + atomic_t error; + u16 max_errors; + u64 logical; + u64 size; + struct list_head rst_ordered_entry; + u16 num_stripes; + u16 mirror_num; + u16 replace_nr_stripes; + s16 replace_stripe_src; + u64 full_stripe_logical; + struct btrfs_io_stripe stripes[0]; +}; + +struct btrfs_balance_args { + __u64 profiles; + union { + __u64 usage; + struct { + __u32 usage_min; + __u32 usage_max; + }; + }; + __u64 devid; + __u64 pstart; + __u64 pend; + __u64 vstart; + __u64 vend; + __u64 target; + __u64 flags; + union { + __u64 limit; + struct { + __u32 limit_min; + __u32 limit_max; + }; + }; + __u32 stripes_min; + __u32 stripes_max; + __u64 unused[6]; +}; + +struct btrfs_balance_progress { + __u64 expected; + __u64 considered; + __u64 completed; +}; + +struct btrfs_balance_control { + struct btrfs_balance_args data; + struct btrfs_balance_args meta; + struct btrfs_balance_args sys; + u64 flags; + struct btrfs_balance_progress stat; +}; + +struct btrfs_pending_snapshot; + +struct btrfs_trans_handle { + u64 transid; + u64 bytes_reserved; + u64 delayed_refs_bytes_reserved; + u64 chunk_bytes_reserved; + unsigned long delayed_ref_updates; + unsigned long delayed_ref_csum_deletions; + struct btrfs_transaction *transaction; + struct btrfs_block_rsv *block_rsv; + struct btrfs_block_rsv *orig_rsv; + struct btrfs_pending_snapshot *pending_snapshot; + refcount_t use_count; + unsigned int type; + short aborted; + bool adding_csums; + bool allocating_chunk; + bool removing_chunk; + bool reloc_reserved; + bool in_fsync; + struct btrfs_fs_info *fs_info; + struct list_head new_bgs; + struct btrfs_block_rsv delayed_rsv; +}; + +struct btrfs_qgroup_inherit; + +struct btrfs_path; + +struct btrfs_pending_snapshot { + struct dentry *dentry; + struct inode *dir; + struct btrfs_root *root; + struct btrfs_root_item *root_item; + struct btrfs_root *snap; + struct btrfs_qgroup_inherit *inherit; + struct btrfs_path *path; + struct btrfs_block_rsv block_rsv; + int error; + dev_t anon_dev; + bool readonly; + struct list_head list; +}; + +struct btrfs_qgroup_limit { + __u64 flags; + __u64 max_rfer; + __u64 max_excl; + __u64 rsv_rfer; + __u64 rsv_excl; +}; + +struct btrfs_qgroup_inherit { + __u64 flags; + __u64 num_qgroups; + __u64 num_ref_copies; + __u64 num_excl_copies; + struct btrfs_qgroup_limit lim; + __u64 qgroups[0]; +}; + +struct btrfs_path { + struct extent_buffer *nodes[8]; + int slots[8]; + u8 locks[8]; + u8 reada; + u8 lowest_level; + unsigned int search_for_split: 1; + unsigned int keep_locks: 1; + unsigned int skip_locking: 1; + unsigned int search_commit_root: 1; + unsigned int need_commit_sem: 1; + unsigned int skip_release_on_error: 1; + unsigned int search_for_extension: 1; + unsigned int nowait: 1; +}; + +struct asymmetric_key_subtype { + struct module *owner; + const char *name; + unsigned short name_len; + void (*describe)(const struct key *, struct seq_file *); + void (*destroy)(void *, void *); + int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); + int (*eds_op)(struct kernel_pkey_params *, const void *, void *); + int (*verify_signature)(const struct key *, const struct public_key_signature *); +}; + +enum asymmetric_payload_bits { + asym_crypto = 0, + asym_subtype = 1, + asym_key_ids = 2, + asym_auth = 3, +}; + +struct akcipher_request; + +struct crypto_akcipher; + +struct akcipher_alg { + int (*sign)(struct akcipher_request *); + int (*verify)(struct akcipher_request *); + int (*encrypt)(struct akcipher_request *); + int (*decrypt)(struct akcipher_request *); + int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int); + int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int); + unsigned int (*max_size)(struct crypto_akcipher *); + int (*init)(struct crypto_akcipher *); + void (*exit)(struct crypto_akcipher *); + struct crypto_alg base; +}; + +typedef void (*crypto_completion_t)(void *, int); + +struct crypto_async_request { + struct list_head list; + crypto_completion_t complete; + void *data; + struct crypto_tfm *tfm; + u32 flags; +}; + +struct akcipher_request { + struct crypto_async_request base; + struct scatterlist *src; + struct scatterlist *dst; + unsigned int src_len; + unsigned int dst_len; + void *__ctx[0]; +}; + +struct crypto_akcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_sig { + struct crypto_tfm base; +}; + +enum { + ICQ_EXITED = 4, + ICQ_DESTROYED = 8, +}; + +enum msi_desc_filter { + MSI_DESC_ALL = 0, + MSI_DESC_NOTASSOCIATED = 1, + MSI_DESC_ASSOCIATED = 2, +}; + +enum { + MSI_FLAG_USE_DEF_DOM_OPS = 1, + MSI_FLAG_USE_DEF_CHIP_OPS = 2, + MSI_FLAG_ACTIVATE_EARLY = 4, + MSI_FLAG_MUST_REACTIVATE = 8, + MSI_FLAG_DEV_SYSFS = 16, + MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 32, + MSI_FLAG_FREE_MSI_DESCS = 64, + MSI_FLAG_USE_DEV_FWNODE = 128, + MSI_FLAG_PARENT_PM_DEV = 256, + MSI_GENERIC_FLAGS_MASK = 65535, + MSI_DOMAIN_FLAGS_MASK = 4294901760, + MSI_FLAG_MULTI_PCI_MSI = 65536, + MSI_FLAG_PCI_MSIX = 131072, + MSI_FLAG_LEVEL_CAPABLE = 262144, + MSI_FLAG_MSIX_CONTIGUOUS = 524288, + MSI_FLAG_PCI_MSIX_ALLOC_DYN = 1048576, + MSI_FLAG_PCI_IMS = 2097152, +}; + +enum support_mode { + ALLOW_LEGACY = 0, + DENY_LEGACY = 1, +}; + +enum msi_domain_ids { + MSI_DEFAULT_DOMAIN = 0, + MSI_SECONDARY_DOMAIN = 1, + MSI_MAX_DEVICE_IRQDOMAINS = 2, +}; + +enum { + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, +}; + +enum pci_bus_flags { + PCI_BUS_FLAGS_NO_MSI = 1, + PCI_BUS_FLAGS_NO_MMRBC = 2, + PCI_BUS_FLAGS_NO_AERSID = 4, + PCI_BUS_FLAGS_NO_EXTCFG = 8, +}; + +enum pci_dev_flags { + PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1, + PCI_DEV_FLAGS_NO_D3 = 2, + PCI_DEV_FLAGS_ASSIGNED = 4, + PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8, + PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32, + PCI_DEV_FLAGS_NO_BUS_RESET = 64, + PCI_DEV_FLAGS_NO_PM_RESET = 128, + PCI_DEV_FLAGS_VPD_REF_F0 = 256, + PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512, + PCI_DEV_FLAGS_NO_FLR_RESET = 1024, + PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048, + PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096, +}; + +struct irq_affinity { + unsigned int pre_vectors; + unsigned int post_vectors; + unsigned int nr_sets; + unsigned int set_size[4]; + void (*calc_sets)(struct irq_affinity *, unsigned int); + void *priv; +}; + +typedef u8 acpi_adr_space_type; + +union acpi_parse_object; + +struct acpi_namespace_node; + +union acpi_generic_state; + +struct acpi_parse_state { + u8 *aml_start; + u8 *aml; + u8 *aml_end; + u8 *pkg_start; + u8 *pkg_end; + union acpi_parse_object *start_op; + struct acpi_namespace_node *start_node; + union acpi_generic_state *scope; + union acpi_parse_object *start_scope; + u32 aml_size; +}; + +union acpi_parse_value { + u64 integer; + u32 size; + char *string; + u8 *buffer; + char *name; + union acpi_parse_object *arg; +}; + +struct acpi_parse_obj_common { + union acpi_parse_object *parent; + u8 descriptor_type; + u8 flags; + u16 aml_opcode; + u8 *aml; + union acpi_parse_object *next; + struct acpi_namespace_node *node; + union acpi_parse_value value; + u8 arg_list_length; +}; + +struct acpi_parse_obj_named { + union acpi_parse_object *parent; + u8 descriptor_type; + u8 flags; + u16 aml_opcode; + u8 *aml; + union acpi_parse_object *next; + struct acpi_namespace_node *node; + union acpi_parse_value value; + u8 arg_list_length; + char *path; + u8 *data; + u32 length; + u32 name; +}; + +struct acpi_parse_obj_asl { + union acpi_parse_object *parent; + u8 descriptor_type; + u8 flags; + u16 aml_opcode; + u8 *aml; + union acpi_parse_object *next; + struct acpi_namespace_node *node; + union acpi_parse_value value; + u8 arg_list_length; + union acpi_parse_object *child; + union acpi_parse_object *parent_method; + char *filename; + u8 file_changed; + char *parent_filename; + char *external_name; + char *namepath; + char name_seg[4]; + u32 extra_value; + u32 column; + u32 line_number; + u32 logical_line_number; + u32 logical_byte_offset; + u32 end_line; + u32 end_logical_line; + u32 acpi_btype; + u32 aml_length; + u32 aml_subtree_length; + u32 final_aml_length; + u32 final_aml_offset; + u32 compile_flags; + u16 parse_opcode; + u8 aml_opcode_length; + u8 aml_pkg_len_bytes; + u8 extra; + char parse_op_name[20]; +}; + +union acpi_parse_object { + struct acpi_parse_obj_common common; + struct acpi_parse_obj_named named; + struct acpi_parse_obj_asl asl; +}; + +union acpi_name_union { + u32 integer; + char ascii[4]; +}; + +typedef u16 acpi_owner_id; + +union acpi_operand_object; + +struct acpi_namespace_node { + union acpi_operand_object *object; + u8 descriptor_type; + u8 type; + u16 flags; + union acpi_name_union name; + struct acpi_namespace_node *parent; + struct acpi_namespace_node *child; + struct acpi_namespace_node *peer; + acpi_owner_id owner_id; +}; + +struct acpi_object_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; +}; + +struct acpi_object_integer { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 fill[3]; + u64 value; +}; + +struct acpi_object_string { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + char *pointer; + u32 length; +}; + +struct acpi_object_buffer { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 *pointer; + u32 length; + u32 aml_length; + u8 *aml_start; + struct acpi_namespace_node *node; +}; + +struct acpi_object_package { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + struct acpi_namespace_node *node; + union acpi_operand_object **elements; + u8 *aml_start; + u32 aml_length; + u32 count; +}; + +struct acpi_object_event { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + void *os_semaphore; +}; + +struct acpi_walk_state; + +typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); + +struct acpi_object_method { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 info_flags; + u8 param_count; + u8 sync_level; + union acpi_operand_object *mutex; + union acpi_operand_object *node; + u8 *aml_start; + union { + acpi_internal_method implementation; + union acpi_operand_object *handler; + } dispatch; + u32 aml_length; + acpi_owner_id owner_id; + u8 thread_count; +}; + +struct acpi_thread_state; + +struct acpi_object_mutex { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 sync_level; + u16 acquisition_depth; + void *os_mutex; + u64 thread_id; + struct acpi_thread_state *owner_thread; + union acpi_operand_object *prev; + union acpi_operand_object *next; + struct acpi_namespace_node *node; + u8 original_sync_level; +}; + +struct acpi_object_region { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 space_id; + struct acpi_namespace_node *node; + union acpi_operand_object *handler; + union acpi_operand_object *next; + acpi_physical_address address; + u32 length; + void *pointer; +}; + +struct acpi_object_notify_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; +}; + +struct acpi_gpe_block_info; + +struct acpi_object_device { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + struct acpi_gpe_block_info *gpe_block; +}; + +struct acpi_object_power_resource { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + u32 system_level; + u32 resource_order; +}; + +struct acpi_object_processor { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 proc_id; + u8 length; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + acpi_io_address address; +}; + +struct acpi_object_thermal_zone { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; +}; + +struct acpi_object_field_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *region_obj; +}; + +struct acpi_object_region_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + u16 resource_length; + union acpi_operand_object *region_obj; + u8 *resource_buffer; + u16 pin_number_index; + u8 *internal_pcc_buffer; +}; + +struct acpi_object_buffer_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + u8 is_create_field; + union acpi_operand_object *buffer_obj; +}; + +struct acpi_object_bank_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *region_obj; + union acpi_operand_object *bank_obj; +}; + +struct acpi_object_index_field { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 field_flags; + u8 attribute; + u8 access_byte_width; + struct acpi_namespace_node *node; + u32 bit_length; + u32 base_byte_offset; + u32 value; + u8 start_field_bit_offset; + u8 access_length; + union acpi_operand_object *index_obj; + union acpi_operand_object *data_obj; +}; + +struct acpi_object_notify_handler { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + struct acpi_namespace_node *node; + u32 handler_type; + acpi_notify_handler handler; + void *context; + union acpi_operand_object *next[2]; +}; + +typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); + +typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); + +struct acpi_object_addr_handler { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 space_id; + u8 handler_flags; + acpi_adr_space_handler handler; + struct acpi_namespace_node *node; + void *context; + void *context_mutex; + acpi_adr_space_setup setup; + union acpi_operand_object *region_list; + union acpi_operand_object *next; +}; + +struct acpi_object_reference { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 class; + u8 target_type; + u8 resolved; + void *object; + struct acpi_namespace_node *node; + union acpi_operand_object **where; + u8 *index_pointer; + u8 *aml; + u32 value; +}; + +struct acpi_object_extra { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + struct acpi_namespace_node *method_REG; + struct acpi_namespace_node *scope_node; + void *region_context; + u8 *aml_start; + u32 aml_length; +}; + +typedef void (*acpi_object_handler)(acpi_handle, void *); + +struct acpi_object_data { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + acpi_object_handler handler; + void *pointer; +}; + +struct acpi_object_cache_list { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *next; +}; + +union acpi_operand_object { + struct acpi_object_common common; + struct acpi_object_integer integer; + struct acpi_object_string string; + struct acpi_object_buffer buffer; + struct acpi_object_package package; + struct acpi_object_event event; + struct acpi_object_method method; + struct acpi_object_mutex mutex; + struct acpi_object_region region; + struct acpi_object_notify_common common_notify; + struct acpi_object_device device; + struct acpi_object_power_resource power_resource; + struct acpi_object_processor processor; + struct acpi_object_thermal_zone thermal_zone; + struct acpi_object_field_common common_field; + struct acpi_object_region_field field; + struct acpi_object_buffer_field buffer_field; + struct acpi_object_bank_field bank_field; + struct acpi_object_index_field index_field; + struct acpi_object_notify_handler notify; + struct acpi_object_addr_handler address_space; + struct acpi_object_reference reference; + struct acpi_object_extra extra; + struct acpi_object_data data; + struct acpi_object_cache_list cache; + struct acpi_namespace_node node; +}; + +typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); + +typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); + +struct acpi_opcode_info; + +struct acpi_walk_state { + struct acpi_walk_state *next; + u8 descriptor_type; + u8 walk_type; + u16 opcode; + u8 next_op_info; + u8 num_operands; + u8 operand_index; + acpi_owner_id owner_id; + u8 last_predicate; + u8 current_result; + u8 return_used; + u8 scope_depth; + u8 pass_number; + u8 namespace_override; + u8 result_size; + u8 result_count; + u8 *aml; + u32 arg_types; + u32 method_breakpoint; + u32 user_breakpoint; + u32 parse_flags; + struct acpi_parse_state parser_state; + u32 prev_arg_types; + u32 arg_count; + u16 method_nesting_depth; + u8 method_is_nested; + struct acpi_namespace_node arguments[7]; + struct acpi_namespace_node local_variables[8]; + union acpi_operand_object *operands[9]; + union acpi_operand_object **params; + u8 *aml_last_while; + union acpi_operand_object **caller_return_desc; + union acpi_generic_state *control_state; + struct acpi_namespace_node *deferred_node; + union acpi_operand_object *implicit_return_obj; + struct acpi_namespace_node *method_call_node; + union acpi_parse_object *method_call_op; + union acpi_operand_object *method_desc; + struct acpi_namespace_node *method_node; + char *method_pathname; + union acpi_parse_object *op; + const struct acpi_opcode_info *op_info; + union acpi_parse_object *origin; + union acpi_operand_object *result_obj; + union acpi_generic_state *results; + union acpi_operand_object *return_desc; + union acpi_generic_state *scope_info; + union acpi_parse_object *prev_op; + union acpi_parse_object *next_op; + struct acpi_thread_state *thread; + acpi_parse_downwards descending_callback; + acpi_parse_upwards ascending_callback; +}; + +struct acpi_common_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; +}; + +struct acpi_control_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u16 opcode; + union acpi_parse_object *predicate_op; + u8 *aml_predicate_start; + u8 *package_end; + u64 loop_timeout; +}; + +struct acpi_update_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *object; +}; + +struct acpi_scope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + struct acpi_namespace_node *node; +}; + +struct acpi_pscope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u32 arg_count; + union acpi_parse_object *op; + u8 *arg_end; + u8 *pkg_end; + u32 arg_list; +}; + +struct acpi_pkg_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u32 index; + union acpi_operand_object *source_object; + union acpi_operand_object *dest_object; + struct acpi_walk_state *walk_state; + void *this_target_obj; + u32 num_packages; +}; + +struct acpi_thread_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u8 current_sync_level; + struct acpi_walk_state *walk_state_list; + union acpi_operand_object *acquired_mutex_list; + u64 thread_id; +}; + +struct acpi_result_values { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *obj_desc[8]; +}; + +struct acpi_global_notify_handler; + +struct acpi_notify_info { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + u8 handler_list_id; + struct acpi_namespace_node *node; + union acpi_operand_object *handler_list_head; + struct acpi_global_notify_handler *global; +}; + +union acpi_generic_state { + struct acpi_common_state common; + struct acpi_control_state control; + struct acpi_update_state update; + struct acpi_scope_state scope; + struct acpi_pscope_state parse_scope; + struct acpi_pkg_state pkg; + struct acpi_thread_state thread; + struct acpi_result_values results; + struct acpi_notify_info notify; +}; + +struct acpi_global_notify_handler { + acpi_notify_handler handler; + void *context; +}; + +struct acpi_opcode_info { + u32 parse_args; + u32 runtime_args; + u16 flags; + u8 object_type; + u8 class; + u8 type; +}; + +struct acpi_gpe_xrupt_info; + +struct acpi_gpe_register_info; + +struct acpi_gpe_event_info; + +struct acpi_gpe_block_info { + struct acpi_namespace_node *node; + struct acpi_gpe_block_info *previous; + struct acpi_gpe_block_info *next; + struct acpi_gpe_xrupt_info *xrupt_block; + struct acpi_gpe_register_info *register_info; + struct acpi_gpe_event_info *event_info; + u64 address; + u32 register_count; + u16 gpe_count; + u16 block_base_number; + u8 space_id; + u8 initialized; +}; + +struct acpi_gpe_xrupt_info { + struct acpi_gpe_xrupt_info *previous; + struct acpi_gpe_xrupt_info *next; + struct acpi_gpe_block_info *gpe_block_list_head; + u32 interrupt_number; +}; + +struct acpi_gpe_address { + u8 space_id; + u64 address; +}; + +struct acpi_gpe_register_info { + struct acpi_gpe_address status_address; + struct acpi_gpe_address enable_address; + u16 base_gpe_number; + u8 enable_for_wake; + u8 enable_for_run; + u8 mask_for_run; + u8 enable_mask; +}; + +struct acpi_gpe_handler_info; + +struct acpi_gpe_notify_info; + +union acpi_gpe_dispatch_info { + struct acpi_namespace_node *method_node; + struct acpi_gpe_handler_info *handler; + struct acpi_gpe_notify_info *notify_list; +}; + +struct acpi_gpe_event_info { + union acpi_gpe_dispatch_info dispatch; + struct acpi_gpe_register_info *register_info; + u8 flags; + u8 gpe_number; + u8 runtime_count; + u8 disable_for_dispatch; +}; + +typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *); + +struct acpi_gpe_handler_info { + acpi_gpe_handler address; + void *context; + struct acpi_namespace_node *method_node; + u8 original_flags; + u8 originally_enabled; +}; + +struct acpi_gpe_notify_info { + struct acpi_namespace_node *device_node; + struct acpi_gpe_notify_info *next; +}; + +typedef enum { + ACPI_IMODE_LOAD_PASS1 = 1, + ACPI_IMODE_LOAD_PASS2 = 2, + ACPI_IMODE_EXECUTE = 3, +} acpi_interpreter_mode; + +typedef enum { + ACPI_TRACE_AML_METHOD = 0, + ACPI_TRACE_AML_OPCODE = 1, + ACPI_TRACE_AML_REGION = 2, +} acpi_trace_event_type; + +struct serial_icounter_struct { + int cts; + int dsr; + int rng; + int dcd; + int rx; + int tx; + int frame; + int overrun; + int parity; + int brk; + int buf_overrun; + int reserved[9]; +}; + +struct serial_struct { + int type; + int line; + unsigned int port; + int irq; + int flags; + int xmit_fifo_size; + int custom_divisor; + int baud_base; + unsigned short close_delay; + char io_type; + char reserved_char[1]; + int hub6; + unsigned short closing_wait; + unsigned short closing_wait2; + unsigned char *iomem_base; + unsigned short iomem_reg_shift; + unsigned int port_high; + unsigned long iomap_base; +}; + +enum nbcon_prio { + NBCON_PRIO_NONE = 0, + NBCON_PRIO_NORMAL = 1, + NBCON_PRIO_EMERGENCY = 2, + NBCON_PRIO_PANIC = 3, + NBCON_PRIO_MAX = 4, +}; + +enum cons_flags { + CON_PRINTBUFFER = 1, + CON_CONSDEV = 2, + CON_ENABLED = 4, + CON_BOOT = 8, + CON_ANYTIME = 16, + CON_BRL = 32, + CON_EXTENDED = 64, + CON_SUSPENDED = 128, + CON_NBCON = 256, +}; + +struct tty_file_private { + struct tty_struct *tty; + struct file *file; + struct list_head list; +}; + +typedef unsigned int uint; + +struct nbcon_write_context; + +struct printk_buffers; + +struct console { + char name[16]; + void (*write)(struct console *, const char *, unsigned int); + int (*read)(struct console *, char *, unsigned int); + struct tty_driver * (*device)(struct console *, int *); + void (*unblank)(); + int (*setup)(struct console *, char *); + int (*exit)(struct console *); + int (*match)(struct console *, char *, int, char *); + short flags; + short index; + int cflag; + uint ispeed; + uint ospeed; + u64 seq; + unsigned long dropped; + void *data; + struct hlist_node node; + bool (*write_atomic)(struct console *, struct nbcon_write_context *); + atomic_t nbcon_state; + atomic_long_t nbcon_seq; + struct printk_buffers *pbufs; +}; + +struct nbcon_context { + struct console *console; + unsigned int spinwait_max_us; + enum nbcon_prio prio; + unsigned int allow_unsafe_takeover: 1; + unsigned int backlog: 1; + struct printk_buffers *pbufs; + u64 seq; +}; + +struct nbcon_write_context { + struct nbcon_context ctxt; + char *outbuf; + unsigned int len; + bool unsafe_takeover; +}; + +enum { + ETHTOOL_MSG_KERNEL_NONE = 0, + ETHTOOL_MSG_STRSET_GET_REPLY = 1, + ETHTOOL_MSG_LINKINFO_GET_REPLY = 2, + ETHTOOL_MSG_LINKINFO_NTF = 3, + ETHTOOL_MSG_LINKMODES_GET_REPLY = 4, + ETHTOOL_MSG_LINKMODES_NTF = 5, + ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6, + ETHTOOL_MSG_DEBUG_GET_REPLY = 7, + ETHTOOL_MSG_DEBUG_NTF = 8, + ETHTOOL_MSG_WOL_GET_REPLY = 9, + ETHTOOL_MSG_WOL_NTF = 10, + ETHTOOL_MSG_FEATURES_GET_REPLY = 11, + ETHTOOL_MSG_FEATURES_SET_REPLY = 12, + ETHTOOL_MSG_FEATURES_NTF = 13, + ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14, + ETHTOOL_MSG_PRIVFLAGS_NTF = 15, + ETHTOOL_MSG_RINGS_GET_REPLY = 16, + ETHTOOL_MSG_RINGS_NTF = 17, + ETHTOOL_MSG_CHANNELS_GET_REPLY = 18, + ETHTOOL_MSG_CHANNELS_NTF = 19, + ETHTOOL_MSG_COALESCE_GET_REPLY = 20, + ETHTOOL_MSG_COALESCE_NTF = 21, + ETHTOOL_MSG_PAUSE_GET_REPLY = 22, + ETHTOOL_MSG_PAUSE_NTF = 23, + ETHTOOL_MSG_EEE_GET_REPLY = 24, + ETHTOOL_MSG_EEE_NTF = 25, + ETHTOOL_MSG_TSINFO_GET_REPLY = 26, + ETHTOOL_MSG_CABLE_TEST_NTF = 27, + ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28, + ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29, + ETHTOOL_MSG_FEC_GET_REPLY = 30, + ETHTOOL_MSG_FEC_NTF = 31, + ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 32, + ETHTOOL_MSG_STATS_GET_REPLY = 33, + ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 34, + ETHTOOL_MSG_MODULE_GET_REPLY = 35, + ETHTOOL_MSG_MODULE_NTF = 36, + ETHTOOL_MSG_PSE_GET_REPLY = 37, + ETHTOOL_MSG_RSS_GET_REPLY = 38, + ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 39, + ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 40, + ETHTOOL_MSG_PLCA_NTF = 41, + ETHTOOL_MSG_MM_GET_REPLY = 42, + ETHTOOL_MSG_MM_NTF = 43, + __ETHTOOL_MSG_KERNEL_CNT = 44, + ETHTOOL_MSG_KERNEL_MAX = 43, +}; + +enum ethtool_link_mode_bit_indices { + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, + ETHTOOL_LINK_MODE_Autoneg_BIT = 6, + ETHTOOL_LINK_MODE_TP_BIT = 7, + ETHTOOL_LINK_MODE_AUI_BIT = 8, + ETHTOOL_LINK_MODE_MII_BIT = 9, + ETHTOOL_LINK_MODE_FIBRE_BIT = 10, + ETHTOOL_LINK_MODE_BNC_BIT = 11, + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, + ETHTOOL_LINK_MODE_Pause_BIT = 13, + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, + ETHTOOL_LINK_MODE_Backplane_BIT = 16, + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, + ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, + ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, + ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, + ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, + ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, + ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, + ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, + ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, + ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, + ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, + ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, + __ETHTOOL_LINK_MODE_MASK_NBITS = 102, +}; + +enum phy_state_work { + PHY_STATE_WORK_NONE = 0, + PHY_STATE_WORK_ANEG = 1, + PHY_STATE_WORK_SUSPEND = 2, +}; + +enum netdev_state_t { + __LINK_STATE_START = 0, + __LINK_STATE_PRESENT = 1, + __LINK_STATE_NOCARRIER = 2, + __LINK_STATE_LINKWATCH_PENDING = 3, + __LINK_STATE_DORMANT = 4, + __LINK_STATE_TESTING = 5, +}; + +struct mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; + +struct phy_setting { + u32 speed; + u8 duplex; + u8 bit; +}; + +enum iwl_ctxt_action { + FW_CTXT_ACTION_INVALID = 0, + FW_CTXT_ACTION_ADD = 1, + FW_CTXT_ACTION_MODIFY = 2, + FW_CTXT_ACTION_REMOVE = 3, +}; + +enum nl80211_channel_type { + NL80211_CHAN_NO_HT = 0, + NL80211_CHAN_HT20 = 1, + NL80211_CHAN_HT40MINUS = 2, + NL80211_CHAN_HT40PLUS = 3, +}; + +enum ieee80211_interface_iteration_flags { + IEEE80211_IFACE_ITER_NORMAL = 0, + IEEE80211_IFACE_ITER_RESUME_ALL = 1, + IEEE80211_IFACE_ITER_ACTIVE = 2, + IEEE80211_IFACE_SKIP_SDATA_NOT_IN_DRIVER = 4, +}; + +enum iwl_ctxt_id_and_color { + FW_CTXT_ID_POS = 0, + FW_CTXT_ID_MSK = 255, + FW_CTXT_COLOR_POS = 8, + FW_CTXT_COLOR_MSK = 65280, + FW_CTXT_INVALID = 4294967295, +}; + +struct iwl_fw_channel_info { + __le32 channel; + u8 band; + u8 width; + u8 ctrl_pos; + u8 reserved; +}; + +struct iwl_phy_context_cmd { + __le32 id_and_color; + __le32 action; + struct iwl_fw_channel_info ci; + __le32 lmac_id; + union { + __le32 rxchain_info; + struct { + u8 sbb_bandwidth; + u8 sbb_ctrl_channel_loc; + __le16 puncture_mask; + }; + }; + __le32 dsp_cfg_flags; + __le32 reserved; +}; + +struct iwl_fw_channel_info_v1 { + u8 band; + u8 channel; + u8 width; + u8 ctrl_pos; +}; + +struct iwl_phy_context_cmd_tail { + __le32 txchain_info; + __le32 rxchain_info; + __le32 acquisition_data; + __le32 dsp_cfg_flags; +}; + +struct iwl_phy_context_cmd_v1 { + __le32 id_and_color; + __le32 action; + __le32 apply_time; + __le32 tx_param_color; + struct iwl_fw_channel_info ci; + struct iwl_phy_context_cmd_tail tail; +}; + +struct iwl_rlc_properties { + __le32 rx_chain_info; + __le32 reserved; +}; + +struct iwl_sad_properties { + __le32 chain_a_sad_mode; + __le32 chain_b_sad_mode; + __le32 mac_id; + __le32 reserved; +}; + +struct iwl_rlc_config_cmd { + __le32 phy_id; + struct iwl_rlc_properties rlc; + struct iwl_sad_properties sad; + u8 flags; + u8 reserved[3]; }; enum rtw_rf_path { @@ -23545,73 +36927,14 @@ enum rtw_rf_path { RF_PATH_D = 3, }; -enum rtw_bb_path { - BB_PATH_A = 1, - BB_PATH_B = 2, - BB_PATH_C = 4, - BB_PATH_D = 8, - BB_PATH_AB = 3, - BB_PATH_AC = 5, - BB_PATH_AD = 9, - BB_PATH_BC = 6, - BB_PATH_BD = 10, - BB_PATH_CD = 12, - BB_PATH_ABC = 7, - BB_PATH_ABD = 11, - BB_PATH_ACD = 13, - BB_PATH_BCD = 14, - BB_PATH_ABCD = 15, -}; - struct rtw_dev; -struct rtw_rx_pkt_stat; - -struct ieee80211_rx_status; - -struct rtw_vif; - -struct rtw_bfee; - -struct rtw_tx_pkt_info; - -struct rtw_chip_ops { - int (*mac_init)(struct rtw_dev *); - int (*dump_fw_crash)(struct rtw_dev *); - void (*shutdown)(struct rtw_dev *); - int (*read_efuse)(struct rtw_dev *, u8 *); - void (*phy_set_param)(struct rtw_dev *); - void (*set_channel)(struct rtw_dev *, u8, u8, u8); - void (*query_rx_desc)(struct rtw_dev *, u8 *, struct rtw_rx_pkt_stat *, struct ieee80211_rx_status *); - u32 (*read_rf)(struct rtw_dev *, enum rtw_rf_path, u32, u32); - bool (*write_rf)(struct rtw_dev *, enum rtw_rf_path, u32, u32, u32); - void (*set_tx_power_index)(struct rtw_dev *); - int (*rsvd_page_dump)(struct rtw_dev *, u8 *, u32, u32); - int (*set_antenna)(struct rtw_dev *, u32, u32); - void (*cfg_ldo25)(struct rtw_dev *, bool); - void (*efuse_grant)(struct rtw_dev *, bool); - void (*false_alarm_statistics)(struct rtw_dev *); - void (*phy_calibration)(struct rtw_dev *); - void (*dpk_track)(struct rtw_dev *); - void (*cck_pd_set)(struct rtw_dev *, u8); - void (*pwr_track)(struct rtw_dev *); - void (*config_bfee)(struct rtw_dev *, struct rtw_vif *, struct rtw_bfee *, bool); - void (*set_gid_table)(struct rtw_dev *, struct ieee80211_vif *, struct ieee80211_bss_conf *); - void (*cfg_csi_rate)(struct rtw_dev *, u8, u8, u8, u8 *); - void (*adaptivity_init)(struct rtw_dev *); - void (*adaptivity)(struct rtw_dev *); - void (*cfo_init)(struct rtw_dev *); - void (*cfo_track)(struct rtw_dev *); - void (*config_tx_path)(struct rtw_dev *, u8, enum rtw_bb_path, enum rtw_bb_path, bool); - void (*config_txrx_mode)(struct rtw_dev *, u8, u8, bool); - void (*fill_txdesc_checksum)(struct rtw_dev *, struct rtw_tx_pkt_info *, u8 *); - void (*coex_set_init)(struct rtw_dev *); - void (*coex_set_ant_switch)(struct rtw_dev *, u8, u8); - void (*coex_set_gnt_fix)(struct rtw_dev *); - void (*coex_set_gnt_debug)(struct rtw_dev *); - void (*coex_set_rfe_type)(struct rtw_dev *); - void (*coex_set_wl_tx_power)(struct rtw_dev *, u8); - void (*coex_set_wl_rx_gain)(struct rtw_dev *, bool); +struct rtw_table { + const void *data; + const u32 size; + void (*parse)(struct rtw_dev *, const struct rtw_table *); + void (*do_cfg)(struct rtw_dev *, const struct rtw_table *, u32, u32); + enum rtw_rf_path rf_path; }; enum rtw_hci_type { @@ -23711,6 +37034,8 @@ struct rtw_hal { u32 ch_param[3]; }; +struct rtw_rqpn; + struct rtw_fifo_conf { u16 rsvd_boundary; u16 rsvd_pg_num; @@ -24256,6 +37581,24 @@ struct rtw_lps_conf { bool pattern_cam_backup; }; +enum rtw_bb_path { + BB_PATH_A = 1, + BB_PATH_B = 2, + BB_PATH_C = 4, + BB_PATH_D = 8, + BB_PATH_AB = 3, + BB_PATH_AC = 5, + BB_PATH_AD = 9, + BB_PATH_BC = 6, + BB_PATH_BD = 10, + BB_PATH_CD = 12, + BB_PATH_ABC = 7, + BB_PATH_ABD = 11, + BB_PATH_ACD = 13, + BB_PATH_BCD = 14, + BB_PATH_ABCD = 15, +}; + struct rtw_path_div { enum rtw_bb_path current_tx_path; u32 path_a_sum; @@ -24290,6 +37633,8 @@ struct rtw_wow_param { struct rtw_pno_request pno_req; }; +struct rtw_chip_info; + struct rtw_dev { struct ieee80211_hw *hw; struct device *dev; @@ -24346,6 +37691,8 @@ struct rtw_dev { u8 priv[0]; }; +struct rtw_tx_pkt_info; + struct rtw_hci_ops { int (*tx_write)(struct rtw_dev *, struct rtw_tx_pkt_info *, struct sk_buff *); void (*tx_kick_off)(struct rtw_dev *); @@ -24399,40 +37746,194 @@ struct rtw_tx_pkt_info { bool bt_null; }; -enum rtw_dma_mapping { - RTW_DMA_MAPPING_EXTRA = 0, - RTW_DMA_MAPPING_LOW = 1, - RTW_DMA_MAPPING_NORMAL = 2, - RTW_DMA_MAPPING_HIGH = 3, - RTW_DMA_MAPPING_MAX = 4, - RTW_DMA_MAPPING_UNDEF = 5, +enum rtw_wlan_cpu { + RTW_WCPU_11AC = 0, + RTW_WCPU_11N = 1, }; -struct rtw_rqpn { - enum rtw_dma_mapping dma_map_vo; - enum rtw_dma_mapping dma_map_vi; - enum rtw_dma_mapping dma_map_be; - enum rtw_dma_mapping dma_map_bk; - enum rtw_dma_mapping dma_map_mg; - enum rtw_dma_mapping dma_map_hi; +struct rtw_chip_ops; + +struct rtw_fwcd_segs; + +struct rtw_pwr_seq_cmd; + +struct rtw_prioq_addrs; + +struct rtw_page_table; + +struct rtw_intf_phy_para_table; + +struct rtw_hw_reg; + +struct rtw_rf_sipi_addr; + +struct rtw_ltecoex_addr; + +struct rtw_rfe_def; + +struct rtw_pwr_track_tbl; + +struct rtw_hw_reg_offset; + +struct coex_table_para; + +struct coex_tdma_para; + +struct coex_rf_para; + +struct coex_5g_afh_map; + +struct rtw_reg_domain; + +struct rtw_chip_info { + struct rtw_chip_ops *ops; + u8 id; + const char *fw_name; + enum rtw_wlan_cpu wlan_cpu; + u8 tx_pkt_desc_sz; + u8 tx_buf_desc_sz; + u8 rx_pkt_desc_sz; + u8 rx_buf_desc_sz; + u32 phy_efuse_size; + u32 log_efuse_size; + u32 ptct_efuse_size; + u32 txff_size; + u32 rxff_size; + u32 fw_rxff_size; + u16 rsvd_drv_pg_num; + u8 band; + u8 page_size; + u8 csi_buf_pg_num; + u8 dig_max; + u8 dig_min; + u8 txgi_factor; + bool is_pwr_by_rate_dec; + bool rx_ldpc; + bool tx_stbc; + u8 max_power_index; + u8 ampdu_density; + u16 fw_fifo_addr[6]; + const struct rtw_fwcd_segs *fwcd_segs; + u8 default_1ss_tx_path; + bool path_div_supported; + bool ht_supported; + bool vht_supported; + u8 lps_deep_mode_supported; + u8 sys_func_en; + const struct rtw_pwr_seq_cmd **pwr_on_seq; + const struct rtw_pwr_seq_cmd **pwr_off_seq; + const struct rtw_rqpn *rqpn_table; + const struct rtw_prioq_addrs *prioq_addrs; + const struct rtw_page_table *page_table; + const struct rtw_intf_phy_para_table *intf_table; + const struct rtw_hw_reg *dig; + const struct rtw_hw_reg *dig_cck; + u32 rf_base_addr[2]; + u32 rf_sipi_addr[2]; + const struct rtw_rf_sipi_addr *rf_sipi_read_addr; + u8 fix_rf_phy_num; + const struct rtw_ltecoex_addr *ltecoex_addr; + const struct rtw_table *mac_tbl; + const struct rtw_table *agc_tbl; + const struct rtw_table *bb_tbl; + const struct rtw_table *rf_tbl[4]; + const struct rtw_table *rfk_init_tbl; + const struct rtw_rfe_def *rfe_defs; + u32 rfe_defs_size; + bool en_dis_dpd; + u16 dpd_ratemask; + u8 iqk_threshold; + u8 lck_threshold; + const struct rtw_pwr_track_tbl *pwr_track_tbl; + u8 bfer_su_max_num; + u8 bfer_mu_max_num; + struct rtw_hw_reg_offset *edcca_th; + s8 l2h_th_ini_cs; + s8 l2h_th_ini_ad; + const char *wow_fw_name; + const struct wiphy_wowlan_support *wowlan_stub; + const u8 max_sched_scan_ssids; + const u16 max_scan_ie_len; + u32 coex_para_ver; + u8 bt_desired_ver; + bool scbd_support; + bool new_scbd10_def; + bool ble_hid_profile_support; + bool wl_mimo_ps_support; + u8 pstdma_type; + u8 bt_rssi_type; + u8 ant_isolation; + u8 rssi_tolerance; + u8 table_sant_num; + u8 table_nsant_num; + u8 tdma_sant_num; + u8 tdma_nsant_num; + u8 bt_afh_span_bw20; + u8 bt_afh_span_bw40; + u8 afh_5g_num; + u8 wl_rf_para_num; + u8 coex_info_hw_regs_num; + const u8 *bt_rssi_step; + const u8 *wl_rssi_step; + const struct coex_table_para *table_nsant; + const struct coex_table_para *table_sant; + const struct coex_tdma_para *tdma_sant; + const struct coex_tdma_para *tdma_nsant; + const struct coex_rf_para *wl_rf_para_tx; + const struct coex_rf_para *wl_rf_para_rx; + const struct coex_5g_afh_map *afh_5g; + const struct rtw_hw_reg *btg_reg; + const struct rtw_reg_domain *coex_info_hw_regs; + u32 wl_fw_desired_ver; }; -struct firmware { - size_t size; - const u8 *data; - void *priv; -}; +struct rtw_rx_pkt_stat; -struct rtw_regulatory { - char alpha2[2]; - u8 txpwr_regd_2g; - u8 txpwr_regd_5g; +struct rtw_vif; + +struct rtw_bfee; + +struct rtw_chip_ops { + int (*mac_init)(struct rtw_dev *); + int (*dump_fw_crash)(struct rtw_dev *); + void (*shutdown)(struct rtw_dev *); + int (*read_efuse)(struct rtw_dev *, u8 *); + void (*phy_set_param)(struct rtw_dev *); + void (*set_channel)(struct rtw_dev *, u8, u8, u8); + void (*query_rx_desc)(struct rtw_dev *, u8 *, struct rtw_rx_pkt_stat *, struct ieee80211_rx_status *); + u32 (*read_rf)(struct rtw_dev *, enum rtw_rf_path, u32, u32); + bool (*write_rf)(struct rtw_dev *, enum rtw_rf_path, u32, u32, u32); + void (*set_tx_power_index)(struct rtw_dev *); + int (*rsvd_page_dump)(struct rtw_dev *, u8 *, u32, u32); + int (*set_antenna)(struct rtw_dev *, u32, u32); + void (*cfg_ldo25)(struct rtw_dev *, bool); + void (*efuse_grant)(struct rtw_dev *, bool); + void (*false_alarm_statistics)(struct rtw_dev *); + void (*phy_calibration)(struct rtw_dev *); + void (*dpk_track)(struct rtw_dev *); + void (*cck_pd_set)(struct rtw_dev *, u8); + void (*pwr_track)(struct rtw_dev *); + void (*config_bfee)(struct rtw_dev *, struct rtw_vif *, struct rtw_bfee *, bool); + void (*set_gid_table)(struct rtw_dev *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + void (*cfg_csi_rate)(struct rtw_dev *, u8, u8, u8, u8 *); + void (*adaptivity_init)(struct rtw_dev *); + void (*adaptivity)(struct rtw_dev *); + void (*cfo_init)(struct rtw_dev *); + void (*cfo_track)(struct rtw_dev *); + void (*config_tx_path)(struct rtw_dev *, u8, enum rtw_bb_path, enum rtw_bb_path, bool); + void (*config_txrx_mode)(struct rtw_dev *, u8, u8, bool); + void (*fill_txdesc_checksum)(struct rtw_dev *, struct rtw_tx_pkt_info *, u8 *); + void (*coex_set_init)(struct rtw_dev *); + void (*coex_set_ant_switch)(struct rtw_dev *, u8, u8); + void (*coex_set_gnt_fix)(struct rtw_dev *); + void (*coex_set_gnt_debug)(struct rtw_dev *); + void (*coex_set_rfe_type)(struct rtw_dev *); + void (*coex_set_wl_tx_power)(struct rtw_dev *, u8); + void (*coex_set_wl_rx_gain)(struct rtw_dev *, bool); }; struct rtw_sta_info; -struct ieee80211_hdr; - struct rtw_rx_pkt_stat { bool phy_status; bool icv_err; @@ -24488,20 +37989,6 @@ enum rtw_rf_type { RF_TYPE_MAX = 8, }; -struct rate_info { - u16 flags; - u16 legacy; - u8 mcs; - u8 nss; - u8 bw; - u8 he_gi; - u8 he_dcm; - u8 he_ru_alloc; - u8 n_bonded_ch; - u8 eht_gi; - u8 eht_ru_alloc; -}; - struct rtw_ra_report { struct rate_info txrate; u32 bit_rate; @@ -24531,64 +38018,6 @@ struct rtw_sta_info { struct work_struct rc_work; }; -struct ieee80211_hdr { - __le16 frame_control; - __le16 duration_id; - union { - struct { - u8 addr1[6]; - u8 addr2[6]; - u8 addr3[6]; - }; - struct { - u8 addr1[6]; - u8 addr2[6]; - u8 addr3[6]; - } addrs; - }; - __le16 seq_ctrl; - u8 addr4[6]; -}; - -struct ieee80211_rx_status { - u64 mactime; - union { - u64 boottime_ns; - ktime_t ack_tx_hwtstamp; - }; - u32 device_timestamp; - u32 ampdu_reference; - u32 flag; - u16 freq: 13; - u16 freq_offset: 1; - u8 enc_flags; - u8 encoding: 3; - u8 bw: 4; - union { - struct { - u8 he_ru: 3; - u8 he_gi: 2; - u8 he_dcm: 1; - }; - struct { - u8 ru: 4; - u8 gi: 2; - } eht; - }; - u8 rate_idx; - u8 nss; - u8 rx_flags; - u8 band; - u8 antenna; - s8 signal; - u8 chains; - s8 chain_signal[4]; - u8 ampdu_delimiter_crc; - u8 zero_length_psdu_type; - u8 link_valid: 1; - u8 link_id: 4; -}; - enum rtw_net_type { RTW_NET_NO_LINK = 0, RTW_NET_AD_HOC = 1, @@ -24596,23 +38025,6 @@ enum rtw_net_type { RTW_NET_AP_MODE = 3, }; -struct ieee80211_he_mu_edca_param_ac_rec { - u8 aifsn; - u8 ecw_min_max; - u8 mu_edca_timer; -}; - -struct ieee80211_tx_queue_params { - u16 txop; - u16 cw_min; - u16 cw_max; - u8 aifs; - bool acm; - bool uapsd; - bool mu_edca; - struct ieee80211_he_mu_edca_param_ac_rec mu_edca_param_rec; -}; - enum rtw_bfee_role { RTW_BFEE_NONE = 0, RTW_BFEE_SU = 1, @@ -24631,8 +38043,6 @@ struct rtw_bfee { struct rtw_vif_port; -struct ieee80211_scan_ies; - struct rtw_vif { enum rtw_net_type net_type; u16 aid; @@ -24663,13 +38073,6 @@ struct rtw_vif_port { struct rtw_hw_reg bcn_ctrl; }; -struct ieee80211_scan_ies { - const u8 *ies[6]; - size_t len[6]; - const u8 *common_ies; - size_t common_ie_len; -}; - struct rtw_fwcd_segs { const u32 *segs; u8 num; @@ -24685,6 +38088,24 @@ struct rtw_pwr_seq_cmd { u8 value; }; +enum rtw_dma_mapping { + RTW_DMA_MAPPING_EXTRA = 0, + RTW_DMA_MAPPING_LOW = 1, + RTW_DMA_MAPPING_NORMAL = 2, + RTW_DMA_MAPPING_HIGH = 3, + RTW_DMA_MAPPING_MAX = 4, + RTW_DMA_MAPPING_UNDEF = 5, +}; + +struct rtw_rqpn { + enum rtw_dma_mapping dma_map_vo; + enum rtw_dma_mapping dma_map_vi; + enum rtw_dma_mapping dma_map_be; + enum rtw_dma_mapping dma_map_bk; + enum rtw_dma_mapping dma_map_mg; + enum rtw_dma_mapping dma_map_hi; +}; + struct rtw_prioq_addr { u32 rsvd; u32 avail; @@ -24737,14 +38158,6 @@ struct rtw_ltecoex_addr { u32 rdata; }; -struct rtw_table { - const void *data; - const u32 size; - void (*parse)(struct rtw_dev *, const struct rtw_table *); - void (*do_cfg)(struct rtw_dev *, const struct rtw_table *, u32, u32); - enum rtw_rf_path rf_path; -}; - struct rtw_rfe_def { const struct rtw_table *phy_pg_tbl; const struct rtw_table *txpwr_lmt_tbl; @@ -24801,1257 +38214,113 @@ struct rtw_reg_domain { u8 domain; }; -enum rtw_rfe_fem { - RTW_RFE_IFEM = 0, - RTW_RFE_EFEM = 1, - RTW_RFE_IFEM2G_EFEM5G = 2, - RTW_RFE_NUM = 3, +struct firmware { + size_t size; + const u8 *data; + void *priv; }; -struct cca_ccut; - -struct rtw8822b_rfe_info { - const struct cca_ccut *cca_ccut_2g; - const struct cca_ccut *cca_ccut_5g; - enum rtw_rfe_fem fem; - bool ifem_ext; - void (*rtw_set_channel_rfe)(struct rtw_dev *, u8); +struct rtw_regulatory { + char alpha2[2]; + u8 txpwr_regd_2g; + u8 txpwr_regd_5g; }; -struct cca_ccut { - u32 reg82c[4]; - u32 reg830[4]; - u32 reg838[4]; +struct rtw_phy_pg_cfg_pair { + u32 band; + u32 rf_path; + u32 tx_num; + u32 addr; + u32 bitmask; + u32 data; }; -enum { - CCUT_IDX_1R_2G = 0, - CCUT_IDX_2R_2G = 1, - CCUT_IDX_1R_5G = 2, - CCUT_IDX_2R_5G = 3, - CCUT_IDX_NR = 4, +struct rtw_txpwr_lmt_cfg_pair { + u8 regd; + u8 band; + u8 bw; + u8 rs; + u8 ch; + s8 txpwr_lmt; }; -enum rtw_chip_ver { - RTW_CHIP_VER_CUT_A = 0, - RTW_CHIP_VER_CUT_B = 1, - RTW_CHIP_VER_CUT_C = 2, - RTW_CHIP_VER_CUT_D = 3, - RTW_CHIP_VER_CUT_E = 4, - RTW_CHIP_VER_CUT_F = 5, - RTW_CHIP_VER_CUT_G = 6, +enum rc_proto { + RC_PROTO_UNKNOWN = 0, + RC_PROTO_OTHER = 1, + RC_PROTO_RC5 = 2, + RC_PROTO_RC5X_20 = 3, + RC_PROTO_RC5_SZ = 4, + RC_PROTO_JVC = 5, + RC_PROTO_SONY12 = 6, + RC_PROTO_SONY15 = 7, + RC_PROTO_SONY20 = 8, + RC_PROTO_NEC = 9, + RC_PROTO_NECX = 10, + RC_PROTO_NEC32 = 11, + RC_PROTO_SANYO = 12, + RC_PROTO_MCIR2_KBD = 13, + RC_PROTO_MCIR2_MSE = 14, + RC_PROTO_RC6_0 = 15, + RC_PROTO_RC6_6A_20 = 16, + RC_PROTO_RC6_6A_24 = 17, + RC_PROTO_RC6_6A_32 = 18, + RC_PROTO_RC6_MCE = 19, + RC_PROTO_SHARP = 20, + RC_PROTO_XMP = 21, + RC_PROTO_CEC = 22, + RC_PROTO_IMON = 23, + RC_PROTO_RCMM12 = 24, + RC_PROTO_RCMM24 = 25, + RC_PROTO_RCMM32 = 26, + RC_PROTO_XBOX_DVD = 27, + RC_PROTO_MAX = 27, }; -enum rtw_sc_offset { - RTW_SC_DONT_CARE = 0, - RTW_SC_20_UPPER = 1, - RTW_SC_20_LOWER = 2, - RTW_SC_20_UPMOST = 3, - RTW_SC_20_LOWEST = 4, - RTW_SC_40_UPPER = 9, - RTW_SC_40_LOWER = 10, -}; - -enum rtw_rx_desc_enc { - RX_DESC_ENC_NONE = 0, - RX_DESC_ENC_WEP40 = 1, - RX_DESC_ENC_TKIP_WO_MIC = 2, - RX_DESC_ENC_TKIP_MIC = 3, - RX_DESC_ENC_AES = 4, - RX_DESC_ENC_WEP104 = 5, -}; - -enum rtw_trx_desc_rate { - DESC_RATE1M = 0, - DESC_RATE2M = 1, - DESC_RATE5_5M = 2, - DESC_RATE11M = 3, - DESC_RATE6M = 4, - DESC_RATE9M = 5, - DESC_RATE12M = 6, - DESC_RATE18M = 7, - DESC_RATE24M = 8, - DESC_RATE36M = 9, - DESC_RATE48M = 10, - DESC_RATE54M = 11, - DESC_RATEMCS0 = 12, - DESC_RATEMCS1 = 13, - DESC_RATEMCS2 = 14, - DESC_RATEMCS3 = 15, - DESC_RATEMCS4 = 16, - DESC_RATEMCS5 = 17, - DESC_RATEMCS6 = 18, - DESC_RATEMCS7 = 19, - DESC_RATEMCS8 = 20, - DESC_RATEMCS9 = 21, - DESC_RATEMCS10 = 22, - DESC_RATEMCS11 = 23, - DESC_RATEMCS12 = 24, - DESC_RATEMCS13 = 25, - DESC_RATEMCS14 = 26, - DESC_RATEMCS15 = 27, - DESC_RATEMCS16 = 28, - DESC_RATEMCS17 = 29, - DESC_RATEMCS18 = 30, - DESC_RATEMCS19 = 31, - DESC_RATEMCS20 = 32, - DESC_RATEMCS21 = 33, - DESC_RATEMCS22 = 34, - DESC_RATEMCS23 = 35, - DESC_RATEMCS24 = 36, - DESC_RATEMCS25 = 37, - DESC_RATEMCS26 = 38, - DESC_RATEMCS27 = 39, - DESC_RATEMCS28 = 40, - DESC_RATEMCS29 = 41, - DESC_RATEMCS30 = 42, - DESC_RATEMCS31 = 43, - DESC_RATEVHT1SS_MCS0 = 44, - DESC_RATEVHT1SS_MCS1 = 45, - DESC_RATEVHT1SS_MCS2 = 46, - DESC_RATEVHT1SS_MCS3 = 47, - DESC_RATEVHT1SS_MCS4 = 48, - DESC_RATEVHT1SS_MCS5 = 49, - DESC_RATEVHT1SS_MCS6 = 50, - DESC_RATEVHT1SS_MCS7 = 51, - DESC_RATEVHT1SS_MCS8 = 52, - DESC_RATEVHT1SS_MCS9 = 53, - DESC_RATEVHT2SS_MCS0 = 54, - DESC_RATEVHT2SS_MCS1 = 55, - DESC_RATEVHT2SS_MCS2 = 56, - DESC_RATEVHT2SS_MCS3 = 57, - DESC_RATEVHT2SS_MCS4 = 58, - DESC_RATEVHT2SS_MCS5 = 59, - DESC_RATEVHT2SS_MCS6 = 60, - DESC_RATEVHT2SS_MCS7 = 61, - DESC_RATEVHT2SS_MCS8 = 62, - DESC_RATEVHT2SS_MCS9 = 63, - DESC_RATEVHT3SS_MCS0 = 64, - DESC_RATEVHT3SS_MCS1 = 65, - DESC_RATEVHT3SS_MCS2 = 66, - DESC_RATEVHT3SS_MCS3 = 67, - DESC_RATEVHT3SS_MCS4 = 68, - DESC_RATEVHT3SS_MCS5 = 69, - DESC_RATEVHT3SS_MCS6 = 70, - DESC_RATEVHT3SS_MCS7 = 71, - DESC_RATEVHT3SS_MCS8 = 72, - DESC_RATEVHT3SS_MCS9 = 73, - DESC_RATEVHT4SS_MCS0 = 74, - DESC_RATEVHT4SS_MCS1 = 75, - DESC_RATEVHT4SS_MCS2 = 76, - DESC_RATEVHT4SS_MCS3 = 77, - DESC_RATEVHT4SS_MCS4 = 78, - DESC_RATEVHT4SS_MCS5 = 79, - DESC_RATEVHT4SS_MCS6 = 80, - DESC_RATEVHT4SS_MCS7 = 81, - DESC_RATEVHT4SS_MCS8 = 82, - DESC_RATEVHT4SS_MCS9 = 83, - DESC_RATE_MAX = 84, -}; - -enum rtw_rate_section { - RTW_RATE_SECTION_CCK = 0, - RTW_RATE_SECTION_OFDM = 1, - RTW_RATE_SECTION_HT_1S = 2, - RTW_RATE_SECTION_HT_2S = 3, - RTW_RATE_SECTION_VHT_1S = 4, - RTW_RATE_SECTION_VHT_2S = 5, - RTW_RATE_SECTION_MAX = 6, -}; - -enum rtw_debug_mask { - RTW_DBG_PCI = 1, - RTW_DBG_TX = 2, - RTW_DBG_RX = 4, - RTW_DBG_PHY = 8, - RTW_DBG_FW = 16, - RTW_DBG_EFUSE = 32, - RTW_DBG_COEX = 64, - RTW_DBG_RFK = 128, - RTW_DBG_REGD = 256, - RTW_DBG_DEBUGFS = 512, - RTW_DBG_PS = 1024, - RTW_DBG_BF = 2048, - RTW_DBG_WOW = 4096, - RTW_DBG_CFO = 8192, - RTW_DBG_PATH_DIV = 16384, - RTW_DBG_ADAPTIVITY = 32768, - RTW_DBG_HW_SCAN = 65536, - RTW_DBG_STATE = 131072, - RTW_DBG_SDIO = 262144, - RTW_DBG_ALL = 4294967295, -}; - -enum coex_ext_ant_switch_ctrl_type { - COEX_SWITCH_CTRL_BY_BBSW = 0, - COEX_SWITCH_CTRL_BY_PTA = 1, - COEX_SWITCH_CTRL_BY_ANTDIV = 2, - COEX_SWITCH_CTRL_BY_MAC = 3, - COEX_SWITCH_CTRL_BY_BT = 4, - COEX_SWITCH_CTRL_BY_FW = 5, - COEX_SWITCH_CTRL_MAX = 6, -}; - -enum coex_ext_ant_switch_pos_type { - COEX_SWITCH_TO_BT = 0, - COEX_SWITCH_TO_WLG = 1, - COEX_SWITCH_TO_WLA = 2, - COEX_SWITCH_TO_NOCARE = 3, - COEX_SWITCH_TO_WLG_BT = 4, - COEX_SWITCH_TO_MAX = 5, -}; - -enum coex_wl2bt_scoreboard { - COEX_SCBD_ACTIVE = 1, - COEX_SCBD_ONOFF = 2, - COEX_SCBD_SCAN = 4, - COEX_SCBD_UNDERTEST = 8, - COEX_SCBD_RXGAIN = 16, - COEX_SCBD_BT_RFK = 32, - COEX_SCBD_WLBUSY = 64, - COEX_SCBD_EXTFEM = 256, - COEX_SCBD_TDMA = 512, - COEX_SCBD_FIX2M = 1024, - COEX_SCBD_ALL = 65535, -}; - -struct rtw8822be_efuse { - u8 mac_addr[6]; - u8 vender_id[2]; - u8 device_id[2]; - u8 sub_vender_id[2]; - u8 sub_device_id[2]; - u8 pmc[2]; - u8 exp_device_cap[2]; - u8 msi_cap; - u8 ltr_cap; - u8 exp_link_control[2]; - u8 link_cap[4]; - u8 link_control[2]; - u8 serial_number[8]; - u8 res0: 2; - u8 ltr_en: 1; - u8 res1: 2; - u8 obff: 2; - char: 1; - u8 res2: 3; - u8 obff_cap: 2; - short: 3; - u8 res3: 4; - u8 res4[3]; - u8 class_code[3]; - u8 pci_pm_L1_2_supp: 1; - u8 pci_pm_L1_1_supp: 1; - u8 aspm_pm_L1_2_supp: 1; - u8 aspm_pm_L1_1_supp: 1; - u8 L1_pm_substates_supp: 1; - u8 res5: 3; - u8 port_common_mode_restore_time; - u8 port_t_power_on_scale: 2; - u8 res6: 1; - u8 port_t_power_on_value: 5; - u8 res7; -}; - -struct rtw8822bu_efuse { - u8 res4[4]; - u8 usb_optional_function; - u8 res5[30]; - u8 res6[2]; - u8 serial[11]; - u8 vid; - u8 res7; - u8 pid; - u8 res8[4]; - u8 mac_addr[6]; - u8 res9[2]; - u8 vendor_name[7]; - u8 res10[2]; - u8 device_name[20]; - u8 res11[207]; - u8 package_type; - u8 res12[4]; -}; - -struct rtw8822bs_efuse { - u8 res4[74]; - u8 mac_addr[6]; -}; - -struct rtw8822b_efuse { - __le16 rtl_id; - u8 res0[14]; - struct rtw_txpwr_idx txpwr_idx_table[4]; - u8 channel_plan; - u8 xtal_k; - u8 thermal_meter; - u8 iqk_lck; - u8 pa_type; - u8 lna_type_2g[2]; - u8 lna_type_5g[2]; - u8 rf_board_option; - u8 rf_feature_option; - u8 rf_bt_setting; - u8 eeprom_version; - u8 eeprom_customer_id; - u8 tx_bb_swing_setting_2g; - u8 tx_bb_swing_setting_5g; - u8 tx_pwr_calibrate_rate; - u8 rf_antenna_option; - u8 rfe_option; - u8 country_code[2]; - u8 res[3]; - union { - struct rtw8822be_efuse e; - struct rtw8822bu_efuse u; - struct rtw8822bs_efuse s; - }; -}; - -struct rtw_tx_desc { - __le32 w0; - __le32 w1; - __le32 w2; - __le32 w3; - __le32 w4; - __le32 w5; - __le32 w6; - __le32 w7; - __le32 w8; - __le32 w9; -}; - -struct rtw_swing_table { - const u8 *p[4]; - const u8 *n[4]; -}; - -struct rtw_iqk_para { - u8 clear; - u8 segment_iqk; -}; - -enum usb_device_state { - USB_STATE_NOTATTACHED = 0, - USB_STATE_ATTACHED = 1, - USB_STATE_POWERED = 2, - USB_STATE_RECONNECTING = 3, - USB_STATE_UNAUTHENTICATED = 4, - USB_STATE_DEFAULT = 5, - USB_STATE_ADDRESS = 6, - USB_STATE_CONFIGURED = 7, - USB_STATE_SUSPENDED = 8, -}; - -enum usb_device_speed { - USB_SPEED_UNKNOWN = 0, - USB_SPEED_LOW = 1, - USB_SPEED_FULL = 2, - USB_SPEED_HIGH = 3, - USB_SPEED_WIRELESS = 4, - USB_SPEED_SUPER = 5, - USB_SPEED_SUPER_PLUS = 6, -}; - -enum usb_ssp_rate { - USB_SSP_GEN_UNKNOWN = 0, - USB_SSP_GEN_2x1 = 1, - USB_SSP_GEN_1x2 = 2, - USB_SSP_GEN_2x2 = 3, -}; - -enum usb_interface_condition { - USB_INTERFACE_UNBOUND = 0, - USB_INTERFACE_BINDING = 1, - USB_INTERFACE_BOUND = 2, - USB_INTERFACE_UNBINDING = 3, -}; - -enum usb_wireless_status { - USB_WIRELESS_STATUS_NA = 0, - USB_WIRELESS_STATUS_DISCONNECTED = 1, - USB_WIRELESS_STATUS_CONNECTED = 2, -}; - -enum scsi_target_state { - STARGET_CREATED = 1, - STARGET_RUNNING = 2, - STARGET_REMOVE = 3, - STARGET_CREATED_REMOVE = 4, - STARGET_DEL = 5, -}; - -enum scsi_timeout_action { - SCSI_EH_DONE = 0, - SCSI_EH_RESET_TIMER = 1, - SCSI_EH_NOT_HANDLED = 2, -}; - -enum scsi_host_state { - SHOST_CREATED = 1, - SHOST_RUNNING = 2, - SHOST_CANCEL = 3, - SHOST_DEL = 4, - SHOST_RECOVERY = 5, - SHOST_CANCEL_RECOVERY = 6, - SHOST_DEL_RECOVERY = 7, -}; - -enum scsi_device_state { - SDEV_CREATED = 1, - SDEV_RUNNING = 2, - SDEV_CANCEL = 3, - SDEV_DEL = 4, - SDEV_QUIESCE = 5, - SDEV_OFFLINE = 6, - SDEV_TRANSPORT_OFFLINE = 7, - SDEV_BLOCK = 8, - SDEV_CREATED_BLOCK = 9, -}; - -enum scsi_cmnd_submitter { - SUBMITTED_BY_BLOCK_LAYER = 0, - SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, - SUBMITTED_BY_SCSI_RESET_IOCTL = 2, -} __attribute__((mode(byte))); - -enum dma_data_direction { - DMA_BIDIRECTIONAL = 0, - DMA_TO_DEVICE = 1, - DMA_FROM_DEVICE = 2, - DMA_NONE = 3, -}; - -struct usb_host_interface; - -struct usb_interface_assoc_descriptor; - -struct usb_interface { - struct usb_host_interface *altsetting; - struct usb_host_interface *cur_altsetting; - unsigned int num_altsetting; - struct usb_interface_assoc_descriptor *intf_assoc; - int minor; - enum usb_interface_condition condition; - unsigned int sysfs_files_created: 1; - unsigned int ep_devs_created: 1; - unsigned int unregistering: 1; - unsigned int needs_remote_wakeup: 1; - unsigned int needs_altsetting0: 1; - unsigned int needs_binding: 1; - unsigned int resetting_device: 1; - unsigned int authorized: 1; - enum usb_wireless_status wireless_status; - struct work_struct wireless_status_work; - struct device dev; - struct device *usb_dev; - struct work_struct reset_ws; -}; - -struct usb_interface_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bInterfaceNumber; - __u8 bAlternateSetting; - __u8 bNumEndpoints; - __u8 bInterfaceClass; - __u8 bInterfaceSubClass; - __u8 bInterfaceProtocol; - __u8 iInterface; -}; - -struct usb_host_endpoint; - -struct usb_host_interface { - struct usb_interface_descriptor desc; - int extralen; - unsigned char *extra; - struct usb_host_endpoint *endpoint; - char *string; -}; - -struct usb_endpoint_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bEndpointAddress; - __u8 bmAttributes; - __le16 wMaxPacketSize; - __u8 bInterval; - __u8 bRefresh; - __u8 bSynchAddress; -} __attribute__((packed)); - -struct usb_ss_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bMaxBurst; - __u8 bmAttributes; - __le16 wBytesPerInterval; -}; - -struct usb_ssp_isoc_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wReseved; - __le32 dwBytesPerInterval; -}; - -struct ep_device; - -struct usb_host_endpoint { - struct usb_endpoint_descriptor desc; - struct usb_ss_ep_comp_descriptor ss_ep_comp; - struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; - long: 0; - struct list_head urb_list; - void *hcpriv; - struct ep_device *ep_dev; - unsigned char *extra; - int extralen; - int enabled; - int streams; - long: 0; -} __attribute__((packed)); - -struct usb_interface_assoc_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bFirstInterface; - __u8 bInterfaceCount; - __u8 bFunctionClass; - __u8 bFunctionSubClass; - __u8 bFunctionProtocol; - __u8 iFunction; -}; - -struct usb_device_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdUSB; - __u8 bDeviceClass; - __u8 bDeviceSubClass; - __u8 bDeviceProtocol; - __u8 bMaxPacketSize0; - __le16 idVendor; - __le16 idProduct; - __le16 bcdDevice; - __u8 iManufacturer; - __u8 iProduct; - __u8 iSerialNumber; - __u8 bNumConfigurations; -}; - -struct usb2_lpm_parameters { - unsigned int besl; - int timeout; -}; - -struct usb3_lpm_parameters { - unsigned int mel; - unsigned int pel; - unsigned int sel; - int timeout; -}; - -struct usb_tt; - -struct usb_bus; - -struct usb_host_bos; - -struct usb_host_config; - -struct usb_device { - int devnum; - char devpath[16]; - u32 route; - enum usb_device_state state; - enum usb_device_speed speed; - unsigned int rx_lanes; - unsigned int tx_lanes; - enum usb_ssp_rate ssp_rate; - struct usb_tt *tt; - int ttport; - unsigned int toggle[2]; - struct usb_device *parent; - struct usb_bus *bus; - struct usb_host_endpoint ep0; - struct device dev; - struct usb_device_descriptor descriptor; - struct usb_host_bos *bos; - struct usb_host_config *config; - struct usb_host_config *actconfig; - struct usb_host_endpoint *ep_in[16]; - struct usb_host_endpoint *ep_out[16]; - char **rawdescriptors; - unsigned short bus_mA; - u8 portnum; - u8 level; - u8 devaddr; - unsigned int can_submit: 1; - unsigned int persist_enabled: 1; - unsigned int reset_in_progress: 1; - unsigned int have_langid: 1; - unsigned int authorized: 1; - unsigned int authenticated: 1; - unsigned int lpm_capable: 1; - unsigned int lpm_devinit_allow: 1; - unsigned int usb2_hw_lpm_capable: 1; - unsigned int usb2_hw_lpm_besl_capable: 1; - unsigned int usb2_hw_lpm_enabled: 1; - unsigned int usb2_hw_lpm_allowed: 1; - unsigned int usb3_lpm_u1_enabled: 1; - unsigned int usb3_lpm_u2_enabled: 1; - int string_langid; - char *product; - char *manufacturer; - char *serial; - struct list_head filelist; - int maxchild; - u32 quirks; - atomic_t urbnum; - unsigned long active_duration; - unsigned long connect_time; - unsigned int do_remote_wakeup: 1; - unsigned int reset_resume: 1; - unsigned int port_is_suspended: 1; - int slot_id; - struct usb2_lpm_parameters l1_params; - struct usb3_lpm_parameters u1_params; - struct usb3_lpm_parameters u2_params; - unsigned int lpm_disable_count; - u16 hub_delay; - unsigned int use_generic_driver: 1; -}; - -struct usb_devmap { - unsigned long devicemap[2]; -}; - -struct usb_bus { - struct device *controller; - struct device *sysdev; - int busnum; - const char *bus_name; - u8 uses_pio_for_control; - u8 otg_port; - unsigned int is_b_host: 1; - unsigned int b_hnp_enable: 1; - unsigned int no_stop_on_short: 1; - unsigned int no_sg_constraint: 1; - unsigned int sg_tablesize; - int devnum_next; - struct mutex devnum_next_mutex; - struct usb_devmap devmap; - struct usb_device *root_hub; - struct usb_bus *hs_companion; - int bandwidth_allocated; - int bandwidth_int_reqs; - int bandwidth_isoc_reqs; - unsigned int resuming_ports; -}; - -struct usb_bos_descriptor; - -struct usb_ext_cap_descriptor; - -struct usb_ss_cap_descriptor; - -struct usb_ssp_cap_descriptor; - -struct usb_ss_container_id_descriptor; - -struct usb_ptm_cap_descriptor; - -struct usb_host_bos { - struct usb_bos_descriptor *desc; - struct usb_ext_cap_descriptor *ext_cap; - struct usb_ss_cap_descriptor *ss_cap; - struct usb_ssp_cap_descriptor *ssp_cap; - struct usb_ss_container_id_descriptor *ss_id; - struct usb_ptm_cap_descriptor *ptm_cap; -}; - -struct usb_bos_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumDeviceCaps; -} __attribute__((packed)); - -struct usb_ext_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __le32 bmAttributes; -} __attribute__((packed)); - -struct usb_ss_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bmAttributes; - __le16 wSpeedSupported; - __u8 bFunctionalitySupport; - __u8 bU1devExitLat; - __le16 bU2DevExitLat; -}; - -struct usb_ssp_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __le32 bmAttributes; - __le16 wFunctionalitySupport; - __le16 wReserved; - union { - __le32 legacy_padding; - struct { - struct {} __empty_bmSublinkSpeedAttr; - __le32 bmSublinkSpeedAttr[0]; - }; - }; -}; - -struct usb_ss_container_id_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __u8 ContainerID[16]; -}; - -struct usb_ptm_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; -}; - -struct usb_config_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumInterfaces; - __u8 bConfigurationValue; - __u8 iConfiguration; - __u8 bmAttributes; - __u8 bMaxPower; -} __attribute__((packed)); - -struct usb_interface_cache; - -struct usb_host_config { - struct usb_config_descriptor desc; - char *string; - struct usb_interface_assoc_descriptor *intf_assoc[16]; - struct usb_interface *interface[32]; - struct usb_interface_cache *intf_cache[32]; - unsigned char *extra; - int extralen; -}; - -struct usb_interface_cache { - unsigned int num_altsetting; - struct kref ref; - struct usb_host_interface altsetting[0]; -}; - -struct swoc_info { - __u8 rev; - __u8 reserved[8]; - __u16 LinuxSKU; - __u16 LinuxVer; - __u8 reserved2[47]; -} __attribute__((packed)); - -struct scsi_cmnd; - -struct us_data; - -typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); - -typedef int (*trans_reset)(struct us_data *); - -typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); - -struct urb; - -struct usb_sg_request { - int status; - size_t bytes; - spinlock_t lock; - struct usb_device *dev; - int pipe; - int entries; - struct urb **urbs; - int count; - struct completion complete; -}; - -typedef void (*extra_data_destructor)(void *); - -typedef void (*pm_hook)(struct us_data *, int); - -struct us_unusual_dev; - -struct usb_ctrlrequest; - -struct us_data { - struct mutex dev_mutex; - struct usb_device *pusb_dev; - struct usb_interface *pusb_intf; - const struct us_unusual_dev *unusual_dev; - u64 fflags; - unsigned long dflags; - unsigned int send_bulk_pipe; - unsigned int recv_bulk_pipe; - unsigned int send_ctrl_pipe; - unsigned int recv_ctrl_pipe; - unsigned int recv_intr_pipe; - char *transport_name; - char *protocol_name; - __le32 bcs_signature; - u8 subclass; - u8 protocol; - u8 max_lun; - u8 ifnum; - u8 ep_bInterval; - trans_cmnd transport; - trans_reset transport_reset; - proto_cmnd proto_handler; - struct scsi_cmnd *srb; - unsigned int tag; - char scsi_name[32]; - struct urb *current_urb; - struct usb_ctrlrequest *cr; - struct usb_sg_request current_sg; - unsigned char *iobuf; - dma_addr_t iobuf_dma; - struct task_struct *ctl_thread; - struct completion cmnd_ready; - struct completion notify; - wait_queue_head_t delay_wait; - struct delayed_work scan_dwork; - void *extra; - extra_data_destructor extra_destructor; - pm_hook suspend_resume_hook; - int use_last_sector_hacks; - int last_sector_retries; -}; - -struct us_unusual_dev { - const char *vendorName; - const char *productName; - __u8 useProtocol; - __u8 useTransport; - int (*initFunction)(struct us_data *); -}; - -struct sg_table { - struct scatterlist *sgl; - unsigned int nents; - unsigned int orig_nents; -}; - -struct scsi_data_buffer { - struct sg_table table; - unsigned int length; -}; - -struct scsi_device; - -struct scsi_cmnd { - struct scsi_device *device; - struct list_head eh_entry; - struct delayed_work abort_work; - struct callback_head rcu; - int eh_eflags; - int budget_token; - unsigned long jiffies_at_alloc; - int retries; - int allowed; - unsigned char prot_op; - unsigned char prot_type; - unsigned char prot_flags; - enum scsi_cmnd_submitter submitter; - unsigned short cmd_len; - enum dma_data_direction sc_data_direction; - unsigned char cmnd[32]; - struct scsi_data_buffer sdb; - struct scsi_data_buffer *prot_sdb; - unsigned int underflow; - unsigned int transfersize; - unsigned int resid_len; - unsigned int sense_len; - unsigned char *sense_buffer; - int flags; - unsigned long state; - unsigned int extra_len; - unsigned char *host_scribble; - int result; -}; - -typedef __u64 blist_flags_t; - -struct Scsi_Host; - -struct scsi_vpd; - -struct scsi_target; - -struct scsi_device_handler; - -struct bsg_device; - -struct scsi_device { - struct Scsi_Host *host; - struct request_queue *request_queue; - struct list_head siblings; - struct list_head same_target_siblings; - struct sbitmap budget_map; - atomic_t device_blocked; - atomic_t restarts; - spinlock_t list_lock; - struct list_head starved_entry; - unsigned short queue_depth; - unsigned short max_queue_depth; - unsigned short last_queue_full_depth; - unsigned short last_queue_full_count; - unsigned long last_queue_full_time; - unsigned long queue_ramp_up_period; - unsigned long last_queue_ramp_up; - unsigned int id; - unsigned int channel; - u64 lun; - unsigned int manufacturer; - unsigned int sector_size; - void *hostdata; - unsigned char type; - char scsi_level; - char inq_periph_qual; - struct mutex inquiry_mutex; - unsigned char inquiry_len; - unsigned char *inquiry; - const char *vendor; - const char *model; - const char *rev; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg0; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg83; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg80; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg89; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb0; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb1; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb2; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb7; - struct scsi_target *sdev_target; - blist_flags_t sdev_bflags; - unsigned int eh_timeout; - unsigned int manage_system_start_stop: 1; - unsigned int manage_runtime_start_stop: 1; - unsigned int manage_shutdown: 1; - unsigned int force_runtime_start_on_system_start: 1; - unsigned int removable: 1; - unsigned int changed: 1; - unsigned int busy: 1; - unsigned int lockable: 1; - unsigned int locked: 1; - unsigned int borken: 1; - unsigned int disconnect: 1; - unsigned int soft_reset: 1; - unsigned int sdtr: 1; - unsigned int wdtr: 1; - unsigned int ppr: 1; - unsigned int tagged_supported: 1; - unsigned int simple_tags: 1; - unsigned int was_reset: 1; - unsigned int expecting_cc_ua: 1; - unsigned int use_10_for_rw: 1; - unsigned int use_10_for_ms: 1; - unsigned int set_dbd_for_ms: 1; - unsigned int read_before_ms: 1; - unsigned int no_report_opcodes: 1; - unsigned int no_write_same: 1; - unsigned int use_16_for_rw: 1; - unsigned int use_16_for_sync: 1; - unsigned int skip_ms_page_8: 1; - unsigned int skip_ms_page_3f: 1; - unsigned int skip_vpd_pages: 1; - unsigned int try_vpd_pages: 1; - unsigned int use_192_bytes_for_3f: 1; - unsigned int no_start_on_add: 1; - unsigned int allow_restart: 1; - unsigned int start_stop_pwr_cond: 1; - unsigned int no_uld_attach: 1; - unsigned int select_no_atn: 1; - unsigned int fix_capacity: 1; - unsigned int guess_capacity: 1; - unsigned int retry_hwerror: 1; - unsigned int last_sector_bug: 1; - unsigned int no_read_disc_info: 1; - unsigned int no_read_capacity_16: 1; - unsigned int try_rc_10_first: 1; - unsigned int security_supported: 1; - unsigned int is_visible: 1; - unsigned int wce_default_on: 1; - unsigned int no_dif: 1; - unsigned int broken_fua: 1; - unsigned int lun_in_cdb: 1; - unsigned int unmap_limit_for_ws: 1; - unsigned int rpm_autosuspend: 1; - unsigned int ignore_media_change: 1; - unsigned int silence_suspend: 1; - unsigned int no_vpd_size: 1; - unsigned int cdl_supported: 1; - unsigned int cdl_enable: 1; - unsigned int queue_stopped; - bool offline_already; - atomic_t disk_events_disable_depth; - unsigned long supported_events[1]; - unsigned long pending_events[1]; - struct list_head event_list; - struct work_struct event_work; - unsigned int max_device_blocked; - atomic_t iorequest_cnt; - atomic_t iodone_cnt; - atomic_t ioerr_cnt; - atomic_t iotmo_cnt; - struct device sdev_gendev; - struct device sdev_dev; - struct work_struct requeue_work; - struct scsi_device_handler *handler; - void *handler_data; - size_t dma_drain_len; - void *dma_drain_buf; - unsigned int sg_timeout; - unsigned int sg_reserved_size; - struct bsg_device *bsg_dev; - unsigned char access_state; - struct mutex state_mutex; - enum scsi_device_state sdev_state; - struct task_struct *quiesced_by; - unsigned long sdev_data[0]; -}; - -struct scsi_host_template; - -struct scsi_transport_template; - -struct Scsi_Host { - struct list_head __devices; - struct list_head __targets; - struct list_head starved_list; - spinlock_t default_lock; - spinlock_t *host_lock; - struct mutex scan_mutex; - struct list_head eh_abort_list; - struct list_head eh_cmd_q; - struct task_struct *ehandler; - struct completion *eh_action; - wait_queue_head_t host_wait; - const struct scsi_host_template *hostt; - struct scsi_transport_template *transportt; - struct kref tagset_refcnt; - struct completion tagset_freed; - struct blk_mq_tag_set tag_set; - atomic_t host_blocked; - unsigned int host_failed; - unsigned int host_eh_scheduled; - unsigned int host_no; - int eh_deadline; - unsigned long last_reset; - unsigned int max_channel; - unsigned int max_id; - u64 max_lun; - unsigned int unique_id; - unsigned short max_cmd_len; - int this_id; - int can_queue; - short cmd_per_lun; - unsigned short sg_tablesize; - unsigned short sg_prot_tablesize; - unsigned int max_sectors; - unsigned int opt_sectors; - unsigned int max_segment_size; - unsigned long dma_boundary; - unsigned long virt_boundary_mask; - unsigned int nr_hw_queues; - unsigned int nr_maps; - unsigned int active_mode: 2; - unsigned int host_self_blocked: 1; - unsigned int reverse_ordering: 1; - unsigned int tmf_in_progress: 1; - unsigned int async_scan: 1; - unsigned int eh_noresume: 1; - unsigned int no_write_same: 1; - unsigned int host_tagset: 1; - unsigned int queuecommand_may_block: 1; - unsigned int short_inquiry: 1; - unsigned int no_scsi2_lun_in_cdb: 1; - char work_q_name[20]; - struct workqueue_struct *work_q; - struct workqueue_struct *tmf_work_q; - unsigned int max_host_blocked; - unsigned int prot_capabilities; - unsigned char prot_guard_type; - unsigned long base; - unsigned long io_port; - unsigned char n_io_port; - unsigned char dma_channel; - unsigned int irq; - enum scsi_host_state shost_state; - struct device shost_gendev; - struct device shost_dev; - void *shost_data; - struct device *dma_dev; - int rpm_autosuspend_delay; - unsigned long hostdata[0]; -}; - -struct scsi_host_template { - unsigned int cmd_size; - int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *); - void (*commit_rqs)(struct Scsi_Host *, u16); - struct module *module; +struct rc_map_table; + +struct rc_map { + struct rc_map_table *scan; + unsigned int size; + unsigned int len; + unsigned int alloc; + enum rc_proto rc_proto; const char *name; - const char * (*info)(struct Scsi_Host *); - int (*ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *); - int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); - int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); - int (*eh_abort_handler)(struct scsi_cmnd *); - int (*eh_device_reset_handler)(struct scsi_cmnd *); - int (*eh_target_reset_handler)(struct scsi_cmnd *); - int (*eh_bus_reset_handler)(struct scsi_cmnd *); - int (*eh_host_reset_handler)(struct scsi_cmnd *); - int (*slave_alloc)(struct scsi_device *); - int (*slave_configure)(struct scsi_device *); - void (*slave_destroy)(struct scsi_device *); - int (*target_alloc)(struct scsi_target *); - void (*target_destroy)(struct scsi_target *); - int (*scan_finished)(struct Scsi_Host *, unsigned long); - void (*scan_start)(struct Scsi_Host *); - int (*change_queue_depth)(struct scsi_device *, int); - void (*map_queues)(struct Scsi_Host *); - int (*mq_poll)(struct Scsi_Host *, unsigned int); - bool (*dma_need_drain)(struct request *); - int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *); - void (*unlock_native_capacity)(struct scsi_device *); - int (*show_info)(struct seq_file *, struct Scsi_Host *); - int (*write_info)(struct Scsi_Host *, char *, int); - enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *); - bool (*eh_should_retry_cmd)(struct scsi_cmnd *); - int (*host_reset)(struct Scsi_Host *, int); - const char *proc_name; - int can_queue; - int this_id; - unsigned short sg_tablesize; - unsigned short sg_prot_tablesize; - unsigned int max_sectors; - unsigned int max_segment_size; - unsigned long dma_boundary; - unsigned long virt_boundary_mask; - short cmd_per_lun; - int tag_alloc_policy; - unsigned int track_queue_depth: 1; - unsigned int supported_mode: 2; - unsigned int emulated: 1; - unsigned int skip_settle_delay: 1; - unsigned int no_write_same: 1; - unsigned int host_tagset: 1; - unsigned int queuecommand_may_block: 1; - unsigned int max_host_blocked; - const struct attribute_group **shost_groups; - const struct attribute_group **sdev_groups; - u64 vendor_id; -}; - -struct scsi_target { - struct scsi_device *starget_sdev_user; - struct list_head siblings; - struct list_head devices; - struct device dev; - struct kref reap_ref; - unsigned int channel; - unsigned int id; - unsigned int create: 1; - unsigned int single_lun: 1; - unsigned int pdt_1f_for_no_lun: 1; - unsigned int no_report_luns: 1; - unsigned int expecting_lun_change: 1; - atomic_t target_busy; - atomic_t target_blocked; - unsigned int can_queue; - unsigned int max_target_blocked; - char scsi_level; - enum scsi_target_state state; - void *hostdata; - unsigned long starget_data[0]; -}; - -struct scsi_vpd { - struct callback_head rcu; - int len; - unsigned char data[0]; -}; - -typedef void (*usb_complete_t)(struct urb *); - -struct usb_iso_packet_descriptor { - unsigned int offset; - unsigned int length; - unsigned int actual_length; - int status; -}; - -struct usb_anchor; - -struct urb { - struct kref kref; - int unlinked; - void *hcpriv; - atomic_t use_count; - atomic_t reject; - struct list_head urb_list; - struct list_head anchor_list; - struct usb_anchor *anchor; - struct usb_device *dev; - struct usb_host_endpoint *ep; - unsigned int pipe; - unsigned int stream_id; - int status; - unsigned int transfer_flags; - void *transfer_buffer; - dma_addr_t transfer_dma; - struct scatterlist *sg; - int num_mapped_sgs; - int num_sgs; - u32 transfer_buffer_length; - u32 actual_length; - unsigned char *setup_packet; - dma_addr_t setup_dma; - int start_frame; - int number_of_packets; - int interval; - int error_count; - void *context; - usb_complete_t complete; - struct usb_iso_packet_descriptor iso_frame_desc[0]; -}; - -struct usb_anchor { - struct list_head urb_list; - wait_queue_head_t wait; spinlock_t lock; - atomic_t suspend_wakeups; - unsigned int poisoned: 1; }; -struct usb_ctrlrequest { - __u8 bRequestType; - __u8 bRequest; - __le16 wValue; - __le16 wIndex; - __le16 wLength; +struct rc_map_list { + struct list_head list; + struct rc_map map; +}; + +struct rc_map_table { + u64 scancode; + u32 keycode; +}; + +struct thermal_instance { + int id; + char name[20]; + struct thermal_zone_device *tz; + struct thermal_cooling_device *cdev; + const struct thermal_trip *trip; + bool initialized; + unsigned long upper; + unsigned long lower; + unsigned long target; + char attr_name[20]; + struct device_attribute attr; + char weight_attr_name[20]; + struct device_attribute weight_attr; + struct list_head tz_node; + struct list_head cdev_node; + unsigned int weight; + bool upper_no_limit; +}; + +struct thermal_attr { + struct device_attribute attr; + char name[20]; }; struct hd_geometry { @@ -26061,6 +38330,14 @@ struct hd_geometry { unsigned long start; }; +struct mapped_device; + +struct dm_sysfs_attr { + struct attribute attr; + ssize_t (*show)(struct mapped_device *, char *); + ssize_t (*store)(struct mapped_device *, const char *, size_t); +}; + enum dm_queue_mode { DM_TYPE_NONE = 0, DM_TYPE_BIO_BASED = 1, @@ -26068,52 +38345,7 @@ enum dm_queue_mode { DM_TYPE_DAX_BIO_BASED = 3, }; -struct dm_stats_last_position { - sector_t last_sector; - unsigned int last_rw; -}; - -struct dm_stat_percpu { - unsigned long long sectors[2]; - unsigned long long ios[2]; - unsigned long long merges[2]; - unsigned long long ticks[2]; - unsigned long long io_ticks[2]; - unsigned long long io_ticks_total; - unsigned long long time_in_queue; - unsigned long long *histogram; -}; - -struct dm_stat_shared { - atomic_t in_flight[2]; - unsigned long long stamp; - struct dm_stat_percpu tmp; -}; - -struct dm_stat { - struct list_head list_entry; - int id; - unsigned int stat_flags; - size_t n_entries; - sector_t start; - sector_t end; - sector_t step; - unsigned int n_histogram_entries; - unsigned long long *histogram_boundaries; - const char *program_id; - const char *aux_data; - struct callback_head callback_head; - size_t shared_alloc_size; - size_t percpu_alloc_size; - size_t histogram_alloc_size; - struct dm_stat_percpu *stat_percpu[8192]; - struct dm_stat_shared stat_shared[0]; -}; - -struct dm_stats_aux { - bool merged; - unsigned long long duration_ns; -}; +struct dm_stats_last_position; struct dm_stats { struct mutex mutex; @@ -26341,6 +38573,11 @@ struct dm_md_mempools { typedef u16 blk_short_t; +struct dm_stats_aux { + bool merged; + unsigned long long duration_ns; +}; + struct dm_target_io { unsigned short magic; blk_short_t flags; @@ -26369,1942 +38606,46 @@ struct dm_io { struct dm_target_io tio; }; -struct dm_arg_set { - unsigned int argc; - char **argv; +struct dm_stats_last_position { + sector_t last_sector; + unsigned int last_rw; }; -struct genl_split_ops; - -struct genl_info; - -struct genl_ops; - -struct genl_small_ops; - -struct genl_multicast_group; - -struct genl_family { - unsigned int hdrsize; - char name[16]; - unsigned int version; - unsigned int maxattr; - u8 netnsok: 1; - u8 parallel_ops: 1; - u8 n_ops; - u8 n_small_ops; - u8 n_split_ops; - u8 n_mcgrps; - u8 resv_start_op; - const struct nla_policy *policy; - int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); - void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); - int (*bind)(int); - void (*unbind)(int); - const struct genl_ops *ops; - const struct genl_small_ops *small_ops; - const struct genl_split_ops *split_ops; - const struct genl_multicast_group *mcgrps; - struct module *module; - size_t sock_priv_size; - void (*sock_priv_init)(void *); - void (*sock_priv_destroy)(void *); - int id; - unsigned int mcgrp_offset; - struct xarray *sock_privs; -}; - -struct genl_split_ops { - union { - struct { - int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); - int (*doit)(struct sk_buff *, struct genl_info *); - void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); - }; - struct { - int (*start)(struct netlink_callback *); - int (*dumpit)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - }; - }; - const struct nla_policy *policy; - unsigned int maxattr; - u8 cmd; - u8 internal_flags; - u8 flags; - u8 validate; -}; - -struct genlmsghdr; - -struct genl_info { - u32 snd_seq; - u32 snd_portid; - const struct genl_family *family; - const struct nlmsghdr *nlhdr; - struct genlmsghdr *genlhdr; - struct nlattr **attrs; - possible_net_t _net; - void *user_ptr[2]; - struct netlink_ext_ack *extack; -}; - -struct genlmsghdr { - __u8 cmd; - __u8 version; - __u16 reserved; -}; - -struct genl_ops { - int (*doit)(struct sk_buff *, struct genl_info *); - int (*start)(struct netlink_callback *); - int (*dumpit)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - const struct nla_policy *policy; - unsigned int maxattr; - u8 cmd; - u8 internal_flags; - u8 flags; - u8 validate; -}; - -struct genl_small_ops { - int (*doit)(struct sk_buff *, struct genl_info *); - int (*dumpit)(struct sk_buff *, struct netlink_callback *); - u8 cmd; - u8 internal_flags; - u8 flags; - u8 validate; -}; - -struct genl_multicast_group { - char name[16]; - u8 flags; -}; - -struct ethnl_req_info; - -struct ethnl_reply_data; - -struct ethnl_request_ops { - u8 request_cmd; - u8 reply_cmd; - u16 hdr_attr; - unsigned int req_info_size; - unsigned int reply_data_size; - bool allow_nodev_do; - u8 set_ntf_cmd; - int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *); - int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, const struct genl_info *); - int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); - int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); - void (*cleanup_data)(struct ethnl_reply_data *); - int (*set_validate)(struct ethnl_req_info *, struct genl_info *); - int (*set)(struct ethnl_req_info *, struct genl_info *); -}; - -struct ethnl_req_info { - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; -}; - -struct ethnl_reply_data { - struct net_device *dev; -}; - -enum { - ETHTOOL_A_LINKMODES_UNSPEC = 0, - ETHTOOL_A_LINKMODES_HEADER = 1, - ETHTOOL_A_LINKMODES_AUTONEG = 2, - ETHTOOL_A_LINKMODES_OURS = 3, - ETHTOOL_A_LINKMODES_PEER = 4, - ETHTOOL_A_LINKMODES_SPEED = 5, - ETHTOOL_A_LINKMODES_DUPLEX = 6, - ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 7, - ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 8, - ETHTOOL_A_LINKMODES_LANES = 9, - ETHTOOL_A_LINKMODES_RATE_MATCHING = 10, - __ETHTOOL_A_LINKMODES_CNT = 11, - ETHTOOL_A_LINKMODES_MAX = 10, -}; - -struct linkmodes_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; - bool peer_empty; -}; - -typedef const char (* const ethnl_string_array_t)[32]; - -struct link_mode_info { - int speed; - u8 lanes; - u8 duplex; -}; - -typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); - -struct btf_id_set8; - -struct btf_kfunc_id_set { - struct module *owner; - struct btf_id_set8 *set; - btf_kfunc_filter_t filter; -}; - -struct request_sock; - -struct request_sock_ops { - int family; - unsigned int obj_size; - struct kmem_cache *slab; - char *slab_name; - int (*rtx_syn_ack)(const struct sock *, struct request_sock *); - void (*send_ack)(const struct sock *, struct sk_buff *, struct request_sock *); - void (*send_reset)(const struct sock *, struct sk_buff *); - void (*destructor)(struct request_sock *); - void (*syn_ack_timeout)(const struct request_sock *); -}; - -struct saved_syn; - -struct request_sock { - struct sock_common __req_common; - struct request_sock *dl_next; - u16 mss; - u8 num_retrans; - u8 syncookie: 1; - u8 num_timeout: 7; - u32 ts_recent; - struct timer_list rsk_timer; - const struct request_sock_ops *rsk_ops; - struct sock *sk; - struct saved_syn *saved_syn; - u32 secid; - u32 peer_secid; - u32 timeout; -}; - -struct saved_syn { - u32 mac_hdrlen; - u32 network_hdrlen; - u32 tcp_hdrlen; - u8 data[0]; -}; - -struct timewait_sock_ops { - struct kmem_cache *twsk_slab; - char *twsk_slab_name; - unsigned int twsk_obj_size; - int (*twsk_unique)(struct sock *, struct sock *, void *); - void (*twsk_destructor)(struct sock *); -}; - -struct inet_peer_base { - struct rb_root rb_root; - seqlock_t lock; - int total; -}; - -struct lwtunnel_state { - __u16 type; - __u16 flags; - __u16 headroom; - atomic_t refcnt; - int (*orig_output)(struct net *, struct sock *, struct sk_buff *); - int (*orig_input)(struct sk_buff *); - struct callback_head rcu; - __u8 data[0]; -}; - -struct rt6key { - struct in6_addr addr; - int plen; -}; - -struct rtable; - -struct fnhe_hash_bucket; - -struct fib_nh_common { - struct net_device *nhc_dev; - netdevice_tracker nhc_dev_tracker; - int nhc_oif; - unsigned char nhc_scope; - u8 nhc_family; - u8 nhc_gw_family; - unsigned char nhc_flags; - struct lwtunnel_state *nhc_lwtstate; - union { - __be32 ipv4; - struct in6_addr ipv6; - } nhc_gw; - int nhc_weight; - atomic_t nhc_upper_bound; - struct rtable __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("percpu"))) *nhc_pcpu_rth_output; - struct rtable __attribute__((btf_type_tag("rcu"))) *nhc_rth_input; - struct fnhe_hash_bucket __attribute__((btf_type_tag("rcu"))) *nhc_exceptions; -}; - -struct rt6_exception_bucket; - -struct fib6_nh { - struct fib_nh_common nh_common; - struct rt6_info * __attribute__((btf_type_tag("percpu"))) *rt6i_pcpu; - struct rt6_exception_bucket __attribute__((btf_type_tag("rcu"))) *rt6i_exception_bucket; -}; - -struct fib6_node; - -struct dst_metrics; - -struct nexthop; - -struct fib6_info { - struct fib6_table *fib6_table; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *fib6_next; - struct fib6_node __attribute__((btf_type_tag("rcu"))) *fib6_node; - union { - struct list_head fib6_siblings; - struct list_head nh_list; - }; - unsigned int fib6_nsiblings; - refcount_t fib6_ref; - unsigned long expires; - struct hlist_node gc_link; - struct dst_metrics *fib6_metrics; - struct rt6key fib6_dst; - u32 fib6_flags; - struct rt6key fib6_src; - struct rt6key fib6_prefsrc; - u32 fib6_metric; - u8 fib6_protocol; - u8 fib6_type; - u8 offload; - u8 trap; - u8 offload_failed; - u8 should_flush: 1; - u8 dst_nocount: 1; - u8 dst_nopolicy: 1; - u8 fib6_destroying: 1; - u8 unused: 4; - struct callback_head rcu; - struct nexthop *nh; - struct fib6_nh fib6_nh[0]; -}; - -struct fib6_node { - struct fib6_node __attribute__((btf_type_tag("rcu"))) *parent; - struct fib6_node __attribute__((btf_type_tag("rcu"))) *left; - struct fib6_node __attribute__((btf_type_tag("rcu"))) *right; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *leaf; - __u16 fn_bit; - __u16 fn_flags; - int fn_sernum; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *rr_ptr; - struct callback_head rcu; -}; - -struct fib6_table { - struct hlist_node tb6_hlist; - u32 tb6_id; - spinlock_t tb6_lock; - struct fib6_node tb6_root; - struct inet_peer_base tb6_peers; - unsigned int flags; - unsigned int fib_seq; - struct hlist_head tb6_gc_hlist; -}; - -struct dst_metrics { - u32 metrics[17]; - refcount_t refcnt; -}; - -struct nh_info; - -struct nh_group; - -struct nexthop { - struct rb_node rb_node; - struct list_head fi_list; - struct list_head f6i_list; - struct list_head fdb_list; - struct list_head grp_list; - struct net *net; - u32 id; - u8 protocol; - u8 nh_flags; - bool is_group; - refcount_t refcnt; - struct callback_head rcu; - union { - struct nh_info __attribute__((btf_type_tag("rcu"))) *nh_info; - struct nh_group __attribute__((btf_type_tag("rcu"))) *nh_grp; - }; -}; - -struct fib_info; - -struct fib_nh { - struct fib_nh_common nh_common; - struct hlist_node nh_hash; - struct fib_info *nh_parent; - __be32 nh_saddr; - int nh_saddr_genid; -}; - -struct nh_info { - struct hlist_node dev_hash; - struct nexthop *nh_parent; - u8 family; - bool reject_nh; - bool fdb_nh; - union { - struct fib_nh_common fib_nhc; - struct fib_nh fib_nh; - struct fib6_nh fib6_nh; - }; -}; - -struct rtable { - struct dst_entry dst; - int rt_genid; - unsigned int rt_flags; - __u16 rt_type; - __u8 rt_is_input; - __u8 rt_uses_gateway; - int rt_iif; - u8 rt_gw_family; - union { - __be32 rt_gw4; - struct in6_addr rt_gw6; - }; - u32 rt_mtu_locked: 1; - u32 rt_pmtu: 31; -}; - -struct fib_nh_exception; - -struct fnhe_hash_bucket { - struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; -}; - -struct fib_nh_exception { - struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *fnhe_next; - int fnhe_genid; - __be32 fnhe_daddr; - u32 fnhe_pmtu; - bool fnhe_mtu_locked; - __be32 fnhe_gw; - unsigned long fnhe_expires; - struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_input; - struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_output; - unsigned long fnhe_stamp; - struct callback_head rcu; -}; - -struct fib_info { - struct hlist_node fib_hash; - struct hlist_node fib_lhash; - struct list_head nh_list; - struct net *fib_net; - refcount_t fib_treeref; - refcount_t fib_clntref; - unsigned int fib_flags; - unsigned char fib_dead; - unsigned char fib_protocol; - unsigned char fib_scope; - unsigned char fib_type; - __be32 fib_prefsrc; - u32 fib_tb_id; - u32 fib_priority; - struct dst_metrics *fib_metrics; - int fib_nhs; - bool fib_nh_is_v6; - bool nh_updated; - bool pfsrc_removed; - struct nexthop *nh; - struct callback_head rcu; - struct fib_nh fib_nh[0]; -}; - -struct rt6_info { - struct dst_entry dst; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; - int sernum; - struct rt6key rt6i_dst; - struct rt6key rt6i_src; - struct in6_addr rt6i_gateway; - struct inet6_dev *rt6i_idev; - u32 rt6i_flags; - unsigned short rt6i_nfheader_len; -}; - -struct ip6_sf_list; - -struct ifmcaddr6 { - struct in6_addr mca_addr; - struct inet6_dev *idev; - struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *next; - struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_sources; - struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_tomb; - unsigned int mca_sfmode; - unsigned char mca_crcount; - unsigned long mca_sfcount[2]; - struct delayed_work mca_work; - unsigned int mca_flags; - int mca_users; - refcount_t mca_refcnt; - unsigned long mca_cstamp; - unsigned long mca_tstamp; - struct callback_head rcu; -}; - -struct ip6_sf_list { - struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *sf_next; - struct in6_addr sf_addr; - unsigned long sf_count[2]; - unsigned char sf_gsresp; - unsigned char sf_oldin; - unsigned char sf_crcount; - struct callback_head rcu; -}; - -struct ifacaddr6 { - struct in6_addr aca_addr; - struct fib6_info *aca_rt; - struct ifacaddr6 __attribute__((btf_type_tag("rcu"))) *aca_next; - struct hlist_node aca_addr_lst; - int aca_users; - refcount_t aca_refcnt; - unsigned long aca_cstamp; - unsigned long aca_tstamp; - struct callback_head rcu; -}; - -struct icmpv6_mib_device { - atomic_long_t mibs[7]; -}; - -struct icmpv6msg_mib_device { - atomic_long_t mibs[512]; -}; - -struct rt6_exception_bucket { - struct hlist_head chain; - int depth; -}; - -struct nh_grp_entry_stats; - -struct nh_grp_entry { - struct nexthop *nh; - struct nh_grp_entry_stats __attribute__((btf_type_tag("percpu"))) *stats; - u8 weight; - union { - struct { - atomic_t upper_bound; - } hthr; - struct { - struct list_head uw_nh_entry; - u16 count_buckets; - u16 wants_buckets; - } res; - }; - struct list_head nh_list; - struct nexthop *nh_parent; - u64 packets_hw; -}; - -struct nh_res_table; - -struct nh_group { - struct nh_group *spare; - u16 num_nh; - bool is_multipath; - bool hash_threshold; - bool resilient; - bool fdb_nh; - bool has_v4; - bool hw_stats; - struct nh_res_table __attribute__((btf_type_tag("rcu"))) *res_table; - struct nh_grp_entry nh_entries[0]; -}; - -struct nh_res_bucket { - struct nh_grp_entry __attribute__((btf_type_tag("rcu"))) *nh_entry; - atomic_long_t used_time; - unsigned long migrated_time; - bool occupied; - u8 nh_flags; -}; - -struct nh_res_table { - struct net *net; - u32 nhg_id; - struct delayed_work upkeep_dw; - struct list_head uw_nh_entries; - unsigned long unbalanced_since; - u32 idle_timer; - u32 unbalanced_timer; - u16 num_nh_buckets; - struct nh_res_bucket nh_buckets[0]; -}; - -struct nh_grp_entry_stats { - u64_stats_t packets; - struct u64_stats_sync syncp; -}; - -struct rt6_statistics { - __u32 fib_nodes; - __u32 fib_route_nodes; - __u32 fib_rt_entries; - __u32 fib_rt_cache; - __u32 fib_discarded_routes; - atomic_t fib_rt_alloc; -}; - -struct nf_hook_state { - u8 hook; - u8 pf; - struct net_device *in; - struct net_device *out; - struct sock *sk; - struct net *net; - int (*okfn)(struct net *, struct sock *, struct sk_buff *); -}; - -typedef __u16 __sum16; - -struct iphdr { - __u8 ihl: 4; - __u8 version: 4; - __u8 tos; - __be16 tot_len; - __be16 id; - __be16 frag_off; - __u8 ttl; - __u8 protocol; - __sum16 check; - union { - struct { - __be32 saddr; - __be32 daddr; - }; - struct { - __be32 saddr; - __be32 daddr; - } addrs; - }; -}; - -struct ip_tunnel_parm { - char name[16]; - int link; - __be16 i_flags; - __be16 o_flags; - __be32 i_key; - __be32 o_key; - struct iphdr iph; -}; - -struct nd_opt_hdr { - __u8 nd_opt_type; - __u8 nd_opt_len; -}; - -struct ndisc_options { - struct nd_opt_hdr *nd_opt_array[15]; - struct nd_opt_hdr *nd_useropts; - struct nd_opt_hdr *nd_useropts_end; -}; - -struct prefix_info { - __u8 type; - __u8 length; - __u8 prefix_len; - union { - __u8 flags; - struct { - __u8 reserved: 6; - __u8 autoconf: 1; - __u8 onlink: 1; - }; - }; - __be32 valid; - __be32 prefered; - __be32 reserved2; - struct in6_addr prefix; -}; - -struct btf_id_set8 { - u32 cnt; - u32 flags; - struct { - u32 id; - u32 flags; - } pairs[0]; -}; - -enum sctp_conntrack { - SCTP_CONNTRACK_NONE = 0, - SCTP_CONNTRACK_CLOSED = 1, - SCTP_CONNTRACK_COOKIE_WAIT = 2, - SCTP_CONNTRACK_COOKIE_ECHOED = 3, - SCTP_CONNTRACK_ESTABLISHED = 4, - SCTP_CONNTRACK_SHUTDOWN_SENT = 5, - SCTP_CONNTRACK_SHUTDOWN_RECD = 6, - SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7, - SCTP_CONNTRACK_HEARTBEAT_SENT = 8, - SCTP_CONNTRACK_HEARTBEAT_ACKED = 9, - SCTP_CONNTRACK_MAX = 10, -}; - -enum nf_nat_manip_type { - NF_NAT_MANIP_SRC = 0, - NF_NAT_MANIP_DST = 1, -}; - -enum { - NFPROTO_UNSPEC = 0, - NFPROTO_INET = 1, - NFPROTO_IPV4 = 2, - NFPROTO_ARP = 3, - NFPROTO_NETDEV = 5, - NFPROTO_BRIDGE = 7, - NFPROTO_IPV6 = 10, - NFPROTO_NUMPROTO = 11, -}; - -enum ip_conntrack_dir { - IP_CT_DIR_ORIGINAL = 0, - IP_CT_DIR_REPLY = 1, - IP_CT_DIR_MAX = 2, -}; - -struct nf_conntrack { - refcount_t use; -}; - -struct in_addr { - __be32 s_addr; -}; - -union nf_inet_addr { - __u32 all[4]; - __be32 ip; - __be32 ip6[4]; - struct in_addr in; - struct in6_addr in6; -}; - -union nf_conntrack_man_proto { - __be16 all; - struct { - __be16 port; - } tcp; - struct { - __be16 port; - } udp; - struct { - __be16 id; - } icmp; - struct { - __be16 port; - } dccp; - struct { - __be16 port; - } sctp; - struct { - __be16 key; - } gre; -}; - -typedef u16 u_int16_t; - -struct nf_conntrack_man { - union nf_inet_addr u3; - union nf_conntrack_man_proto u; - u_int16_t l3num; -}; - -struct nf_conntrack_tuple { - struct nf_conntrack_man src; - struct { - union nf_inet_addr u3; - union { - __be16 all; - struct { - __be16 port; - } tcp; - struct { - __be16 port; - } udp; - struct { - u_int8_t type; - u_int8_t code; - } icmp; - struct { - __be16 port; - } dccp; - struct { - __be16 port; - } sctp; - struct { - __be16 key; - } gre; - } u; - u_int8_t protonum; - struct {} __nfct_hash_offsetend; - u_int8_t dir; - } dst; -}; - -struct nf_conntrack_tuple_hash { - struct hlist_nulls_node hnnode; - struct nf_conntrack_tuple tuple; -}; - -typedef u32 u_int32_t; - -typedef u64 u_int64_t; - -struct nf_ct_dccp { - u_int8_t role[2]; - u_int8_t state; - u_int8_t last_pkt; - u_int8_t last_dir; - u_int64_t handshake_seq; -}; - -struct ip_ct_sctp { - enum sctp_conntrack state; - __be32 vtag[2]; - u8 init[2]; - u8 last_dir; - u8 flags; -}; - -struct ip_ct_tcp_state { - u_int32_t td_end; - u_int32_t td_maxend; - u_int32_t td_maxwin; - u_int32_t td_maxack; - u_int8_t td_scale; - u_int8_t flags; -}; - -struct ip_ct_tcp { - struct ip_ct_tcp_state seen[2]; - u_int8_t state; - u_int8_t last_dir; - u_int8_t retrans; - u_int8_t last_index; - u_int32_t last_seq; - u_int32_t last_ack; - u_int32_t last_end; - u_int16_t last_win; - u_int8_t last_wscale; - u_int8_t last_flags; -}; - -struct nf_ct_udp { - unsigned long stream_ts; -}; - -struct nf_ct_gre { - unsigned int stream_timeout; - unsigned int timeout; -}; - -union nf_conntrack_proto { - struct nf_ct_dccp dccp; - struct ip_ct_sctp sctp; - struct ip_ct_tcp tcp; - struct nf_ct_udp udp; - struct nf_ct_gre gre; - unsigned int tmpl_padto; -}; - -struct nf_ct_ext; - -struct nf_conn { - struct nf_conntrack ct_general; - spinlock_t lock; - u32 timeout; - struct nf_conntrack_tuple_hash tuplehash[2]; - unsigned long status; - possible_net_t ct_net; - struct hlist_node nat_bysource; - struct {} __nfct_init_offset; - struct nf_conn *master; - u_int32_t mark; - struct nf_ct_ext *ext; - union nf_conntrack_proto proto; -}; - -struct nf_ct_ext { - u8 offset[4]; - u8 len; - unsigned int gen_id; - long: 0; - char data[0]; -}; - -struct nf_nat_range2 { - unsigned int flags; - union nf_inet_addr min_addr; - union nf_inet_addr max_addr; - union nf_conntrack_man_proto min_proto; - union nf_conntrack_man_proto max_proto; - union nf_conntrack_man_proto base_proto; -}; - -struct nf_conn___init { - struct nf_conn ct; -}; - -struct fib_prop { - int error; - u8 scope; -}; - -struct inet_ehash_bucket; - -struct inet_bind_hashbucket; - -struct inet_listen_hashbucket; - -struct inet_hashinfo { - struct inet_ehash_bucket *ehash; - spinlock_t *ehash_locks; - unsigned int ehash_mask; - unsigned int ehash_locks_mask; - struct kmem_cache *bind_bucket_cachep; - struct inet_bind_hashbucket *bhash; - struct kmem_cache *bind2_bucket_cachep; - struct inet_bind_hashbucket *bhash2; - unsigned int bhash_size; - unsigned int lhash2_mask; - struct inet_listen_hashbucket *lhash2; - bool pernet; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct hlist_nulls_head { - struct hlist_nulls_node *first; -}; - -struct inet_ehash_bucket { - struct hlist_nulls_head chain; -}; - -struct inet_bind_hashbucket { - spinlock_t lock; - struct hlist_head chain; -}; - -struct inet_listen_hashbucket { - spinlock_t lock; - struct hlist_nulls_head nulls_head; -}; - -struct ack_sample { - u32 pkts_acked; - s32 rtt_us; - u32 in_flight; -}; - -struct rate_sample { - u64 prior_mstamp; - u32 prior_delivered; - u32 prior_delivered_ce; - s32 delivered; - s32 delivered_ce; - long interval_us; - u32 snd_interval_us; - u32 rcv_interval_us; - long rtt_us; - int losses; - u32 acked_sacked; - u32 prior_in_flight; - u32 last_end_seq; - bool is_app_limited; - bool is_retrans; - bool is_ack_delayed; -}; - -struct in_ifaddr { - struct hlist_node hash; - struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_next; - struct in_device *ifa_dev; - struct callback_head callback_head; - __be32 ifa_local; - __be32 ifa_address; - __be32 ifa_mask; - __u32 ifa_rt_priority; - __be32 ifa_broadcast; - unsigned char ifa_scope; - unsigned char ifa_prefixlen; - unsigned char ifa_proto; - __u32 ifa_flags; - char ifa_label[16]; - __u32 ifa_valid_lft; - __u32 ifa_preferred_lft; - unsigned long ifa_cstamp; - unsigned long ifa_tstamp; -}; - -struct ip_sf_list; - -struct ip_mc_list { - struct in_device *interface; - __be32 multiaddr; - unsigned int sfmode; - struct ip_sf_list *sources; - struct ip_sf_list *tomb; - unsigned long sfcount[2]; - union { - struct ip_mc_list *next; - struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_rcu; - }; - struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_hash; - struct timer_list timer; - int users; - refcount_t refcnt; - spinlock_t lock; - char tm_running; - char reporter; - char unsolicit_count; - char loaded; - unsigned char gsquery; - unsigned char crcount; - struct callback_head rcu; -}; - -enum { - RTAX_UNSPEC = 0, - RTAX_LOCK = 1, - RTAX_MTU = 2, - RTAX_WINDOW = 3, - RTAX_RTT = 4, - RTAX_RTTVAR = 5, - RTAX_SSTHRESH = 6, - RTAX_CWND = 7, - RTAX_ADVMSS = 8, - RTAX_REORDERING = 9, - RTAX_HOPLIMIT = 10, - RTAX_INITCWND = 11, - RTAX_FEATURES = 12, - RTAX_RTO_MIN = 13, - RTAX_INITRWND = 14, - RTAX_QUICKACK = 15, - RTAX_CC_ALGO = 16, - RTAX_FASTOPEN_NO_COOKIE = 17, - __RTAX_MAX = 18, -}; - -enum rtnetlink_groups { - RTNLGRP_NONE = 0, - RTNLGRP_LINK = 1, - RTNLGRP_NOTIFY = 2, - RTNLGRP_NEIGH = 3, - RTNLGRP_TC = 4, - RTNLGRP_IPV4_IFADDR = 5, - RTNLGRP_IPV4_MROUTE = 6, - RTNLGRP_IPV4_ROUTE = 7, - RTNLGRP_IPV4_RULE = 8, - RTNLGRP_IPV6_IFADDR = 9, - RTNLGRP_IPV6_MROUTE = 10, - RTNLGRP_IPV6_ROUTE = 11, - RTNLGRP_IPV6_IFINFO = 12, - RTNLGRP_DECnet_IFADDR = 13, - RTNLGRP_NOP2 = 14, - RTNLGRP_DECnet_ROUTE = 15, - RTNLGRP_DECnet_RULE = 16, - RTNLGRP_NOP4 = 17, - RTNLGRP_IPV6_PREFIX = 18, - RTNLGRP_IPV6_RULE = 19, - RTNLGRP_ND_USEROPT = 20, - RTNLGRP_PHONET_IFADDR = 21, - RTNLGRP_PHONET_ROUTE = 22, - RTNLGRP_DCB = 23, - RTNLGRP_IPV4_NETCONF = 24, - RTNLGRP_IPV6_NETCONF = 25, - RTNLGRP_MDB = 26, - RTNLGRP_MPLS_ROUTE = 27, - RTNLGRP_NSID = 28, - RTNLGRP_MPLS_NETCONF = 29, - RTNLGRP_IPV4_MROUTE_R = 30, - RTNLGRP_IPV6_MROUTE_R = 31, - RTNLGRP_NEXTHOP = 32, - RTNLGRP_BRVLAN = 33, - RTNLGRP_MCTP_IFADDR = 34, - RTNLGRP_TUNNEL = 35, - RTNLGRP_STATS = 36, - __RTNLGRP_MAX = 37, -}; - -enum lwtunnel_encap_types { - LWTUNNEL_ENCAP_NONE = 0, - LWTUNNEL_ENCAP_MPLS = 1, - LWTUNNEL_ENCAP_IP = 2, - LWTUNNEL_ENCAP_ILA = 3, - LWTUNNEL_ENCAP_IP6 = 4, - LWTUNNEL_ENCAP_SEG6 = 5, - LWTUNNEL_ENCAP_BPF = 6, - LWTUNNEL_ENCAP_SEG6_LOCAL = 7, - LWTUNNEL_ENCAP_RPL = 8, - LWTUNNEL_ENCAP_IOAM6 = 9, - LWTUNNEL_ENCAP_XFRM = 10, - __LWTUNNEL_ENCAP_MAX = 11, -}; - -enum { - RTN_UNSPEC = 0, - RTN_UNICAST = 1, - RTN_LOCAL = 2, - RTN_BROADCAST = 3, - RTN_ANYCAST = 4, - RTN_MULTICAST = 5, - RTN_BLACKHOLE = 6, - RTN_UNREACHABLE = 7, - RTN_PROHIBIT = 8, - RTN_THROW = 9, - RTN_NAT = 10, - RTN_XRESOLVE = 11, - __RTN_MAX = 12, -}; - -enum rt_scope_t { - RT_SCOPE_UNIVERSE = 0, - RT_SCOPE_SITE = 200, - RT_SCOPE_LINK = 253, - RT_SCOPE_HOST = 254, - RT_SCOPE_NOWHERE = 255, -}; - -enum rtattr_type_t { - RTA_UNSPEC = 0, - RTA_DST = 1, - RTA_SRC = 2, - RTA_IIF = 3, - RTA_OIF = 4, - RTA_GATEWAY = 5, - RTA_PRIORITY = 6, - RTA_PREFSRC = 7, - RTA_METRICS = 8, - RTA_MULTIPATH = 9, - RTA_PROTOINFO = 10, - RTA_FLOW = 11, - RTA_CACHEINFO = 12, - RTA_SESSION = 13, - RTA_MP_ALGO = 14, - RTA_TABLE = 15, - RTA_MARK = 16, - RTA_MFC_STATS = 17, - RTA_VIA = 18, - RTA_NEWDST = 19, - RTA_PREF = 20, - RTA_ENCAP_TYPE = 21, - RTA_ENCAP = 22, - RTA_EXPIRES = 23, - RTA_PAD = 24, - RTA_UID = 25, - RTA_TTL_PROPAGATE = 26, - RTA_IP_PROTO = 27, - RTA_SPORT = 28, - RTA_DPORT = 29, - RTA_NH_ID = 30, - __RTA_MAX = 31, -}; - -enum rt_class_t { - RT_TABLE_UNSPEC = 0, - RT_TABLE_COMPAT = 252, - RT_TABLE_DEFAULT = 253, - RT_TABLE_MAIN = 254, - RT_TABLE_LOCAL = 255, - RT_TABLE_MAX = 4294967295, -}; - -enum netdev_cmd { - NETDEV_UP = 1, - NETDEV_DOWN = 2, - NETDEV_REBOOT = 3, - NETDEV_CHANGE = 4, - NETDEV_REGISTER = 5, - NETDEV_UNREGISTER = 6, - NETDEV_CHANGEMTU = 7, - NETDEV_CHANGEADDR = 8, - NETDEV_PRE_CHANGEADDR = 9, - NETDEV_GOING_DOWN = 10, - NETDEV_CHANGENAME = 11, - NETDEV_FEAT_CHANGE = 12, - NETDEV_BONDING_FAILOVER = 13, - NETDEV_PRE_UP = 14, - NETDEV_PRE_TYPE_CHANGE = 15, - NETDEV_POST_TYPE_CHANGE = 16, - NETDEV_POST_INIT = 17, - NETDEV_PRE_UNINIT = 18, - NETDEV_RELEASE = 19, - NETDEV_NOTIFY_PEERS = 20, - NETDEV_JOIN = 21, - NETDEV_CHANGEUPPER = 22, - NETDEV_RESEND_IGMP = 23, - NETDEV_PRECHANGEMTU = 24, - NETDEV_CHANGEINFODATA = 25, - NETDEV_BONDING_INFO = 26, - NETDEV_PRECHANGEUPPER = 27, - NETDEV_CHANGELOWERSTATE = 28, - NETDEV_UDP_TUNNEL_PUSH_INFO = 29, - NETDEV_UDP_TUNNEL_DROP_INFO = 30, - NETDEV_CHANGE_TX_QUEUE_LEN = 31, - NETDEV_CVLAN_FILTER_PUSH_INFO = 32, - NETDEV_CVLAN_FILTER_DROP_INFO = 33, - NETDEV_SVLAN_FILTER_PUSH_INFO = 34, - NETDEV_SVLAN_FILTER_DROP_INFO = 35, - NETDEV_OFFLOAD_XSTATS_ENABLE = 36, - NETDEV_OFFLOAD_XSTATS_DISABLE = 37, - NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38, - NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39, - NETDEV_XDP_FEAT_CHANGE = 40, -}; - -enum fib_event_type { - FIB_EVENT_ENTRY_REPLACE = 0, - FIB_EVENT_ENTRY_APPEND = 1, - FIB_EVENT_ENTRY_ADD = 2, - FIB_EVENT_ENTRY_DEL = 3, - FIB_EVENT_RULE_ADD = 4, - FIB_EVENT_RULE_DEL = 5, - FIB_EVENT_NH_ADD = 6, - FIB_EVENT_NH_DEL = 7, - FIB_EVENT_VIF_ADD = 8, - FIB_EVENT_VIF_DEL = 9, -}; - -enum net_device_flags { - IFF_UP = 1, - IFF_BROADCAST = 2, - IFF_DEBUG = 4, - IFF_LOOPBACK = 8, - IFF_POINTOPOINT = 16, - IFF_NOTRAILERS = 32, - IFF_RUNNING = 64, - IFF_NOARP = 128, - IFF_PROMISC = 256, - IFF_ALLMULTI = 512, - IFF_MASTER = 1024, - IFF_SLAVE = 2048, - IFF_MULTICAST = 4096, - IFF_PORTSEL = 8192, - IFF_AUTOMEDIA = 16384, - IFF_DYNAMIC = 32768, - IFF_LOWER_UP = 65536, - IFF_DORMANT = 131072, - IFF_ECHO = 262144, -}; - -enum skb_drop_reason { - SKB_NOT_DROPPED_YET = 0, - SKB_CONSUMED = 1, - SKB_DROP_REASON_NOT_SPECIFIED = 2, - SKB_DROP_REASON_NO_SOCKET = 3, - SKB_DROP_REASON_PKT_TOO_SMALL = 4, - SKB_DROP_REASON_TCP_CSUM = 5, - SKB_DROP_REASON_SOCKET_FILTER = 6, - SKB_DROP_REASON_UDP_CSUM = 7, - SKB_DROP_REASON_NETFILTER_DROP = 8, - SKB_DROP_REASON_OTHERHOST = 9, - SKB_DROP_REASON_IP_CSUM = 10, - SKB_DROP_REASON_IP_INHDR = 11, - SKB_DROP_REASON_IP_RPFILTER = 12, - SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13, - SKB_DROP_REASON_XFRM_POLICY = 14, - SKB_DROP_REASON_IP_NOPROTO = 15, - SKB_DROP_REASON_SOCKET_RCVBUFF = 16, - SKB_DROP_REASON_PROTO_MEM = 17, - SKB_DROP_REASON_TCP_AUTH_HDR = 18, - SKB_DROP_REASON_TCP_MD5NOTFOUND = 19, - SKB_DROP_REASON_TCP_MD5UNEXPECTED = 20, - SKB_DROP_REASON_TCP_MD5FAILURE = 21, - SKB_DROP_REASON_TCP_AONOTFOUND = 22, - SKB_DROP_REASON_TCP_AOUNEXPECTED = 23, - SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 24, - SKB_DROP_REASON_TCP_AOFAILURE = 25, - SKB_DROP_REASON_SOCKET_BACKLOG = 26, - SKB_DROP_REASON_TCP_FLAGS = 27, - SKB_DROP_REASON_TCP_ABORT_ON_DATA = 28, - SKB_DROP_REASON_TCP_ZEROWINDOW = 29, - SKB_DROP_REASON_TCP_OLD_DATA = 30, - SKB_DROP_REASON_TCP_OVERWINDOW = 31, - SKB_DROP_REASON_TCP_OFOMERGE = 32, - SKB_DROP_REASON_TCP_RFC7323_PAWS = 33, - SKB_DROP_REASON_TCP_OLD_SEQUENCE = 34, - SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 35, - SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE = 36, - SKB_DROP_REASON_TCP_RESET = 37, - SKB_DROP_REASON_TCP_INVALID_SYN = 38, - SKB_DROP_REASON_TCP_CLOSE = 39, - SKB_DROP_REASON_TCP_FASTOPEN = 40, - SKB_DROP_REASON_TCP_OLD_ACK = 41, - SKB_DROP_REASON_TCP_TOO_OLD_ACK = 42, - SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 43, - SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 44, - SKB_DROP_REASON_TCP_OFO_DROP = 45, - SKB_DROP_REASON_IP_OUTNOROUTES = 46, - SKB_DROP_REASON_BPF_CGROUP_EGRESS = 47, - SKB_DROP_REASON_IPV6DISABLED = 48, - SKB_DROP_REASON_NEIGH_CREATEFAIL = 49, - SKB_DROP_REASON_NEIGH_FAILED = 50, - SKB_DROP_REASON_NEIGH_QUEUEFULL = 51, - SKB_DROP_REASON_NEIGH_DEAD = 52, - SKB_DROP_REASON_TC_EGRESS = 53, - SKB_DROP_REASON_SECURITY_HOOK = 54, - SKB_DROP_REASON_QDISC_DROP = 55, - SKB_DROP_REASON_CPU_BACKLOG = 56, - SKB_DROP_REASON_XDP = 57, - SKB_DROP_REASON_TC_INGRESS = 58, - SKB_DROP_REASON_UNHANDLED_PROTO = 59, - SKB_DROP_REASON_SKB_CSUM = 60, - SKB_DROP_REASON_SKB_GSO_SEG = 61, - SKB_DROP_REASON_SKB_UCOPY_FAULT = 62, - SKB_DROP_REASON_DEV_HDR = 63, - SKB_DROP_REASON_DEV_READY = 64, - SKB_DROP_REASON_FULL_RING = 65, - SKB_DROP_REASON_NOMEM = 66, - SKB_DROP_REASON_HDR_TRUNC = 67, - SKB_DROP_REASON_TAP_FILTER = 68, - SKB_DROP_REASON_TAP_TXFILTER = 69, - SKB_DROP_REASON_ICMP_CSUM = 70, - SKB_DROP_REASON_INVALID_PROTO = 71, - SKB_DROP_REASON_IP_INADDRERRORS = 72, - SKB_DROP_REASON_IP_INNOROUTES = 73, - SKB_DROP_REASON_PKT_TOO_BIG = 74, - SKB_DROP_REASON_DUP_FRAG = 75, - SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 76, - SKB_DROP_REASON_FRAG_TOO_FAR = 77, - SKB_DROP_REASON_TCP_MINTTL = 78, - SKB_DROP_REASON_IPV6_BAD_EXTHDR = 79, - SKB_DROP_REASON_IPV6_NDISC_FRAG = 80, - SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 81, - SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 82, - SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 83, - SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 84, - SKB_DROP_REASON_QUEUE_PURGE = 85, - SKB_DROP_REASON_TC_COOKIE_ERROR = 86, - SKB_DROP_REASON_PACKET_SOCK_ERROR = 87, - SKB_DROP_REASON_TC_CHAIN_NOTFOUND = 88, - SKB_DROP_REASON_TC_RECLASSIFY_LOOP = 89, - SKB_DROP_REASON_MAX = 90, - SKB_DROP_REASON_SUBSYS_MASK = 4294901760, -}; - -enum netdev_state_t { - __LINK_STATE_START = 0, - __LINK_STATE_PRESENT = 1, - __LINK_STATE_NOCARRIER = 2, - __LINK_STATE_LINKWATCH_PENDING = 3, - __LINK_STATE_DORMANT = 4, - __LINK_STATE_TESTING = 5, -}; - -enum { - IPV4_DEVCONF_FORWARDING = 1, - IPV4_DEVCONF_MC_FORWARDING = 2, - IPV4_DEVCONF_PROXY_ARP = 3, - IPV4_DEVCONF_ACCEPT_REDIRECTS = 4, - IPV4_DEVCONF_SECURE_REDIRECTS = 5, - IPV4_DEVCONF_SEND_REDIRECTS = 6, - IPV4_DEVCONF_SHARED_MEDIA = 7, - IPV4_DEVCONF_RP_FILTER = 8, - IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9, - IPV4_DEVCONF_BOOTP_RELAY = 10, - IPV4_DEVCONF_LOG_MARTIANS = 11, - IPV4_DEVCONF_TAG = 12, - IPV4_DEVCONF_ARPFILTER = 13, - IPV4_DEVCONF_MEDIUM_ID = 14, - IPV4_DEVCONF_NOXFRM = 15, - IPV4_DEVCONF_NOPOLICY = 16, - IPV4_DEVCONF_FORCE_IGMP_VERSION = 17, - IPV4_DEVCONF_ARP_ANNOUNCE = 18, - IPV4_DEVCONF_ARP_IGNORE = 19, - IPV4_DEVCONF_PROMOTE_SECONDARIES = 20, - IPV4_DEVCONF_ARP_ACCEPT = 21, - IPV4_DEVCONF_ARP_NOTIFY = 22, - IPV4_DEVCONF_ACCEPT_LOCAL = 23, - IPV4_DEVCONF_SRC_VMARK = 24, - IPV4_DEVCONF_PROXY_ARP_PVLAN = 25, - IPV4_DEVCONF_ROUTE_LOCALNET = 26, - IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27, - IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28, - IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29, - IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30, - IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31, - IPV4_DEVCONF_BC_FORWARDING = 32, - IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33, - __IPV4_DEVCONF_MAX = 34, -}; - -struct fib_table { - struct hlist_node tb_hlist; - u32 tb_id; - int tb_num_default; - struct callback_head rcu; - unsigned long *tb_data; - unsigned long __data[0]; -}; - -typedef u8 dscp_t; - -struct fib_alias { - struct hlist_node fa_list; - struct fib_info *fa_info; - dscp_t fa_dscp; - u8 fa_type; - u8 fa_state; - u8 fa_slen; - u32 tb_id; - s16 fa_default; - u8 offload; - u8 trap; - u8 offload_failed; - struct callback_head rcu; -}; - -struct fib_result { - __be32 prefix; - unsigned char prefixlen; - unsigned char nh_sel; - unsigned char type; - unsigned char scope; - u32 tclassid; - struct fib_nh_common *nhc; - struct fib_info *fi; - struct fib_table *table; - struct hlist_head *fa_head; -}; - -typedef __u64 __be64; - -struct flowi_tunnel { - __be64 tun_id; -}; - -struct flowi_common { - int flowic_oif; - int flowic_iif; - int flowic_l3mdev; - __u32 flowic_mark; - __u8 flowic_tos; - __u8 flowic_scope; - __u8 flowic_proto; - __u8 flowic_flags; - __u32 flowic_secid; - kuid_t flowic_uid; - __u32 flowic_multipath_hash; - struct flowi_tunnel flowic_tun_key; -}; - -union flowi_uli { - struct { - __be16 dport; - __be16 sport; - } ports; - struct { - __u8 type; - __u8 code; - } icmpt; - __be32 gre_key; - struct { - __u8 type; - } mht; -}; - -struct flowi4 { - struct flowi_common __fl_common; - __be32 saddr; - __be32 daddr; - union flowi_uli uli; -}; - -struct nl_info { - struct nlmsghdr *nlh; - struct net *nl_net; - u32 portid; - u8 skip_notify: 1; - u8 skip_notify_kernel: 1; -}; - -struct fib6_config { - u32 fc_table; - u32 fc_metric; - int fc_dst_len; - int fc_src_len; - int fc_ifindex; - u32 fc_flags; - u32 fc_protocol; - u16 fc_type; - u16 fc_delete_all_nh: 1; - u16 fc_ignore_dev_down: 1; - u16 __unused: 14; - u32 fc_nh_id; - struct in6_addr fc_dst; - struct in6_addr fc_src; - struct in6_addr fc_prefsrc; - struct in6_addr fc_gateway; - unsigned long fc_expires; - struct nlattr *fc_mx; - int fc_mx_len; - int fc_mp_len; - struct nlattr *fc_mp; - struct nl_info fc_nlinfo; - struct nlattr *fc_encap; - u16 fc_encap_type; - bool fc_is_fdb; -}; - -struct rtnexthop; - -struct fib_config { - u8 fc_dst_len; - dscp_t fc_dscp; - u8 fc_protocol; - u8 fc_scope; - u8 fc_type; - u8 fc_gw_family; - u32 fc_table; - __be32 fc_dst; - union { - __be32 fc_gw4; - struct in6_addr fc_gw6; - }; - int fc_oif; - u32 fc_flags; - u32 fc_priority; - __be32 fc_prefsrc; - u32 fc_nh_id; - struct nlattr *fc_mx; - struct rtnexthop *fc_mp; - int fc_mx_len; - int fc_mp_len; - u32 fc_flow; - u32 fc_nlflags; - struct nl_info fc_nlinfo; - struct nlattr *fc_encap; - u16 fc_encap_type; -}; - -struct rtnexthop { - unsigned short rtnh_len; - unsigned char rtnh_flags; - unsigned char rtnh_hops; - int rtnh_ifindex; -}; - -struct fib_notifier_info { - int family; - struct netlink_ext_ack *extack; -}; - -struct fib_rt_info { - struct fib_info *fi; - u32 tb_id; - __be32 dst; - int dst_len; - dscp_t dscp; - u8 type; - u8 offload: 1; - u8 trap: 1; - u8 offload_failed: 1; - u8 unused: 5; -}; - -struct rtmsg { - unsigned char rtm_family; - unsigned char rtm_dst_len; - unsigned char rtm_src_len; - unsigned char rtm_tos; - unsigned char rtm_table; - unsigned char rtm_protocol; - unsigned char rtm_scope; - unsigned char rtm_type; - unsigned int rtm_flags; -}; - -struct rtvia { - __kernel_sa_family_t rtvia_family; - __u8 rtvia_addr[0]; -}; - -struct fib_nh_notifier_info { - struct fib_notifier_info info; - struct fib_nh *fib_nh; -}; - -struct qdisc_walker { - int stop; - int skip; - int count; - int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); -}; - -struct tcf_walker { - int stop; - int skip; - int count; - bool nonempty; - unsigned long cookie; - int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); -}; - -struct tcf_exts { - int action; - int police; -}; - -struct rtnl_af_ops { +struct pernet_operations { struct list_head list; - int family; - int (*fill_link_af)(struct sk_buff *, const struct net_device *, u32); - size_t (*get_link_af_size)(const struct net_device *, u32); - int (*validate_link_af)(const struct net_device *, const struct nlattr *, struct netlink_ext_ack *); - int (*set_link_af)(struct net_device *, const struct nlattr *, struct netlink_ext_ack *); - int (*fill_stats_af)(struct sk_buff *, const struct net_device *); - size_t (*get_stats_af_size)(const struct net_device *); + int (*init)(struct net *); + void (*pre_exit)(struct net *); + void (*exit)(struct net *); + void (*exit_batch)(struct list_head *); + void (*exit_batch_rtnl)(struct list_head *, struct list_head *); + unsigned int *id; + size_t size; }; -struct bridge_id { - unsigned char prio[2]; - unsigned char addr[6]; +struct pcpu_gen_cookie; + +struct gen_cookie { + struct pcpu_gen_cookie __attribute__((btf_type_tag("percpu"))) *local; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic64_t forward_last; + atomic64_t reverse_last; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -typedef struct bridge_id bridge_id; - -struct bridge_mcast_other_query { - struct timer_list timer; - struct timer_list delay_timer; -}; - -struct bridge_mcast_own_query { - struct timer_list timer; - u32 startup_sent; -}; - -struct br_ip { - union { - __be32 ip4; - struct in6_addr ip6; - } src; - union { - __be32 ip4; - struct in6_addr ip6; - unsigned char mac_addr[6]; - } dst; - __be16 proto; - __u16 vid; -}; - -struct bridge_mcast_querier { - struct br_ip addr; - int port_ifidx; - seqcount_spinlock_t seq; -}; - -struct net_bridge; - -struct net_bridge_vlan; - -struct net_bridge_mcast { - struct net_bridge *br; - struct net_bridge_vlan *vlan; - u32 multicast_last_member_count; - u32 multicast_startup_query_count; - u8 multicast_querier; - u8 multicast_igmp_version; - u8 multicast_router; - u8 multicast_mld_version; - unsigned long multicast_last_member_interval; - unsigned long multicast_membership_interval; - unsigned long multicast_querier_interval; - unsigned long multicast_query_interval; - unsigned long multicast_query_response_interval; - unsigned long multicast_startup_query_interval; - struct hlist_head ip4_mc_router_list; - struct timer_list ip4_mc_router_timer; - struct bridge_mcast_other_query ip4_other_query; - struct bridge_mcast_own_query ip4_own_query; - struct bridge_mcast_querier ip4_querier; - struct hlist_head ip6_mc_router_list; - struct timer_list ip6_mc_router_timer; - struct bridge_mcast_other_query ip6_other_query; - struct bridge_mcast_own_query ip6_own_query; - struct bridge_mcast_querier ip6_querier; -}; - -struct bridge_mcast_stats; - -struct net_bridge { - spinlock_t lock; - spinlock_t hash_lock; - struct hlist_head frame_type_list; - struct net_device *dev; - unsigned long options; - struct rhashtable fdb_hash_tbl; - struct list_head port_list; - union { - struct rtable fake_rtable; - struct rt6_info fake_rt6_info; - }; - u16 group_fwd_mask; - u16 group_fwd_mask_required; - bridge_id designated_root; - bridge_id bridge_id; - unsigned char topology_change; - unsigned char topology_change_detected; - u16 root_port; - unsigned long max_age; - unsigned long hello_time; - unsigned long forward_delay; - unsigned long ageing_time; - unsigned long bridge_max_age; - unsigned long bridge_hello_time; - unsigned long bridge_forward_delay; - unsigned long bridge_ageing_time; - u32 root_path_cost; - u8 group_addr[6]; - enum { - BR_NO_STP = 0, - BR_KERNEL_STP = 1, - BR_USER_STP = 2, - } stp_enabled; - struct net_bridge_mcast multicast_ctx; - struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; - u32 hash_max; - spinlock_t multicast_lock; - struct rhashtable mdb_hash_tbl; - struct rhashtable sg_port_tbl; - struct hlist_head mcast_gc_list; - struct hlist_head mdb_list; - struct work_struct mcast_gc_work; - struct timer_list hello_timer; - struct timer_list tcn_timer; - struct timer_list topology_change_timer; - struct delayed_work gc_work; - struct kobject *ifobj; - u32 auto_cnt; - atomic_t fdb_n_learned; - u32 fdb_max_learned; - struct hlist_head fdb_list; -}; - -struct net_bridge_port; - -struct net_bridge_mcast_port { - struct net_bridge_port *port; - struct net_bridge_vlan *vlan; - struct bridge_mcast_own_query ip4_own_query; - struct timer_list ip4_mc_router_timer; - struct hlist_node ip4_rlist; - struct bridge_mcast_own_query ip6_own_query; - struct timer_list ip6_mc_router_timer; - struct hlist_node ip6_rlist; - unsigned char multicast_router; - u32 mdb_n_entries; - u32 mdb_max_entries; -}; - -struct metadata_dst; - -struct br_tunnel_info { - __be64 tunnel_id; - struct metadata_dst __attribute__((btf_type_tag("rcu"))) *tunnel_dst; -}; - -struct net_bridge_vlan { - struct rhash_head vnode; - struct rhash_head tnode; - u16 vid; - u16 flags; - u16 priv_flags; - u8 state; - struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *stats; - union { - struct net_bridge *br; - struct net_bridge_port *port; - }; - union { - refcount_t refcnt; - struct net_bridge_vlan *brvlan; - }; - struct br_tunnel_info tinfo; - union { - struct net_bridge_mcast br_mcast_ctx; - struct net_bridge_mcast_port port_mcast_ctx; - }; - u16 msti; - struct list_head vlist; - struct callback_head rcu; -}; - -typedef __u16 port_id; - -struct bridge_stp_xstats { - __u64 transition_blk; - __u64 transition_fwd; - __u64 rx_bpdu; - __u64 tx_bpdu; - __u64 rx_tcn; - __u64 tx_tcn; -}; - -struct net_bridge_port { - struct net_bridge *br; - struct net_device *dev; - netdevice_tracker dev_tracker; - struct list_head list; - unsigned long flags; - struct net_bridge_port __attribute__((btf_type_tag("rcu"))) *backup_port; - u32 backup_nhid; - u8 priority; - u8 state; - u16 port_no; - unsigned char topology_change_ack; - unsigned char config_pending; - port_id port_id; - port_id designated_port; - bridge_id designated_root; - bridge_id designated_bridge; - u32 path_cost; - u32 designated_cost; - unsigned long designated_age; - struct timer_list forward_delay_timer; - struct timer_list hold_timer; - struct timer_list message_age_timer; - struct kobject kobj; - struct callback_head rcu; - struct net_bridge_mcast_port multicast_ctx; - struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; - u32 multicast_eht_hosts_limit; - u32 multicast_eht_hosts_cnt; - struct hlist_head mglist; - char sysfs_name[16]; - u16 group_fwd_mask; - u16 backup_redirected_cnt; - struct bridge_stp_xstats stp_xstats; -}; - -struct br_mcast_stats { - __u64 igmp_v1queries[2]; - __u64 igmp_v2queries[2]; - __u64 igmp_v3queries[2]; - __u64 igmp_leaves[2]; - __u64 igmp_v1reports[2]; - __u64 igmp_v2reports[2]; - __u64 igmp_v3reports[2]; - __u64 igmp_parse_errors; - __u64 mld_v1queries[2]; - __u64 mld_v2queries[2]; - __u64 mld_leaves[2]; - __u64 mld_v1reports[2]; - __u64 mld_v2reports[2]; - __u64 mld_parse_errors; - __u64 mcast_bytes[2]; - __u64 mcast_packets[2]; -}; - -struct bridge_mcast_stats { - struct br_mcast_stats mstats; - struct u64_stats_sync syncp; -}; - -enum metadata_type { - METADATA_IP_TUNNEL = 0, - METADATA_HW_PORT_MUX = 1, - METADATA_MACSEC = 2, - METADATA_XFRM = 3, -}; - -struct ip_tunnel_key { - __be64 tun_id; - union { - struct { - __be32 src; - __be32 dst; - } ipv4; - struct { - struct in6_addr src; - struct in6_addr dst; - } ipv6; - } u; - __be16 tun_flags; - u8 tos; - u8 ttl; - __be32 label; - u32 nhid; - __be16 tp_src; - __be16 tp_dst; - __u8 flow_flags; -}; - -struct ip_tunnel_encap { - u16 type; - u16 flags; - __be16 sport; - __be16 dport; -}; - -struct dst_cache_pcpu; - -struct dst_cache { - struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; - unsigned long reset_ts; -}; - -struct ip_tunnel_info { - struct ip_tunnel_key key; - struct ip_tunnel_encap encap; - struct dst_cache dst_cache; - u8 options_len; - u8 mode; -}; - -struct hw_port_info { - struct net_device *lower_dev; - u32 port_id; -}; - -typedef u64 sci_t; - -struct macsec_info { - sci_t sci; -}; - -struct xfrm_md_info { - u32 if_id; - int link; - struct dst_entry *dst_orig; -}; - -struct metadata_dst { - struct dst_entry dst; - enum metadata_type type; - union { - struct ip_tunnel_info tun_info; - struct hw_port_info port_info; - struct macsec_info macsec_info; - struct xfrm_md_info xfrm_info; - } u; +struct pcpu_gen_cookie { + local_t nesting; + u64 last; }; enum { @@ -28383,5781 +38724,6 @@ enum { __RTM_MAX = 123, }; -enum { - IFLA_UNSPEC = 0, - IFLA_ADDRESS = 1, - IFLA_BROADCAST = 2, - IFLA_IFNAME = 3, - IFLA_MTU = 4, - IFLA_LINK = 5, - IFLA_QDISC = 6, - IFLA_STATS = 7, - IFLA_COST = 8, - IFLA_PRIORITY = 9, - IFLA_MASTER = 10, - IFLA_WIRELESS = 11, - IFLA_PROTINFO = 12, - IFLA_TXQLEN = 13, - IFLA_MAP = 14, - IFLA_WEIGHT = 15, - IFLA_OPERSTATE = 16, - IFLA_LINKMODE = 17, - IFLA_LINKINFO = 18, - IFLA_NET_NS_PID = 19, - IFLA_IFALIAS = 20, - IFLA_NUM_VF = 21, - IFLA_VFINFO_LIST = 22, - IFLA_STATS64 = 23, - IFLA_VF_PORTS = 24, - IFLA_PORT_SELF = 25, - IFLA_AF_SPEC = 26, - IFLA_GROUP = 27, - IFLA_NET_NS_FD = 28, - IFLA_EXT_MASK = 29, - IFLA_PROMISCUITY = 30, - IFLA_NUM_TX_QUEUES = 31, - IFLA_NUM_RX_QUEUES = 32, - IFLA_CARRIER = 33, - IFLA_PHYS_PORT_ID = 34, - IFLA_CARRIER_CHANGES = 35, - IFLA_PHYS_SWITCH_ID = 36, - IFLA_LINK_NETNSID = 37, - IFLA_PHYS_PORT_NAME = 38, - IFLA_PROTO_DOWN = 39, - IFLA_GSO_MAX_SEGS = 40, - IFLA_GSO_MAX_SIZE = 41, - IFLA_PAD = 42, - IFLA_XDP = 43, - IFLA_EVENT = 44, - IFLA_NEW_NETNSID = 45, - IFLA_IF_NETNSID = 46, - IFLA_TARGET_NETNSID = 46, - IFLA_CARRIER_UP_COUNT = 47, - IFLA_CARRIER_DOWN_COUNT = 48, - IFLA_NEW_IFINDEX = 49, - IFLA_MIN_MTU = 50, - IFLA_MAX_MTU = 51, - IFLA_PROP_LIST = 52, - IFLA_ALT_IFNAME = 53, - IFLA_PERM_ADDRESS = 54, - IFLA_PROTO_DOWN_REASON = 55, - IFLA_PARENT_DEV_NAME = 56, - IFLA_PARENT_DEV_BUS_NAME = 57, - IFLA_GRO_MAX_SIZE = 58, - IFLA_TSO_MAX_SIZE = 59, - IFLA_TSO_MAX_SEGS = 60, - IFLA_ALLMULTI = 61, - IFLA_DEVLINK_PORT = 62, - IFLA_GSO_IPV4_MAX_SIZE = 63, - IFLA_GRO_IPV4_MAX_SIZE = 64, - IFLA_DPLL_PIN = 65, - __IFLA_MAX = 66, -}; - -enum { - IFLA_BRPORT_UNSPEC = 0, - IFLA_BRPORT_STATE = 1, - IFLA_BRPORT_PRIORITY = 2, - IFLA_BRPORT_COST = 3, - IFLA_BRPORT_MODE = 4, - IFLA_BRPORT_GUARD = 5, - IFLA_BRPORT_PROTECT = 6, - IFLA_BRPORT_FAST_LEAVE = 7, - IFLA_BRPORT_LEARNING = 8, - IFLA_BRPORT_UNICAST_FLOOD = 9, - IFLA_BRPORT_PROXYARP = 10, - IFLA_BRPORT_LEARNING_SYNC = 11, - IFLA_BRPORT_PROXYARP_WIFI = 12, - IFLA_BRPORT_ROOT_ID = 13, - IFLA_BRPORT_BRIDGE_ID = 14, - IFLA_BRPORT_DESIGNATED_PORT = 15, - IFLA_BRPORT_DESIGNATED_COST = 16, - IFLA_BRPORT_ID = 17, - IFLA_BRPORT_NO = 18, - IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, - IFLA_BRPORT_CONFIG_PENDING = 20, - IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, - IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, - IFLA_BRPORT_HOLD_TIMER = 23, - IFLA_BRPORT_FLUSH = 24, - IFLA_BRPORT_MULTICAST_ROUTER = 25, - IFLA_BRPORT_PAD = 26, - IFLA_BRPORT_MCAST_FLOOD = 27, - IFLA_BRPORT_MCAST_TO_UCAST = 28, - IFLA_BRPORT_VLAN_TUNNEL = 29, - IFLA_BRPORT_BCAST_FLOOD = 30, - IFLA_BRPORT_GROUP_FWD_MASK = 31, - IFLA_BRPORT_NEIGH_SUPPRESS = 32, - IFLA_BRPORT_ISOLATED = 33, - IFLA_BRPORT_BACKUP_PORT = 34, - IFLA_BRPORT_MRP_RING_OPEN = 35, - IFLA_BRPORT_MRP_IN_OPEN = 36, - IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, - IFLA_BRPORT_LOCKED = 39, - IFLA_BRPORT_MAB = 40, - IFLA_BRPORT_MCAST_N_GROUPS = 41, - IFLA_BRPORT_MCAST_MAX_GROUPS = 42, - IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, - IFLA_BRPORT_BACKUP_NHID = 44, - __IFLA_BRPORT_MAX = 45, -}; - -enum netdev_priv_flags { - IFF_802_1Q_VLAN = 1ULL, - IFF_EBRIDGE = 2ULL, - IFF_BONDING = 4ULL, - IFF_ISATAP = 8ULL, - IFF_WAN_HDLC = 16ULL, - IFF_XMIT_DST_RELEASE = 32ULL, - IFF_DONT_BRIDGE = 64ULL, - IFF_DISABLE_NETPOLL = 128ULL, - IFF_MACVLAN_PORT = 256ULL, - IFF_BRIDGE_PORT = 512ULL, - IFF_OVS_DATAPATH = 1024ULL, - IFF_TX_SKB_SHARING = 2048ULL, - IFF_UNICAST_FLT = 4096ULL, - IFF_TEAM_PORT = 8192ULL, - IFF_SUPP_NOFCS = 16384ULL, - IFF_LIVE_ADDR_CHANGE = 32768ULL, - IFF_MACVLAN = 65536ULL, - IFF_XMIT_DST_RELEASE_PERM = 131072ULL, - IFF_L3MDEV_MASTER = 262144ULL, - IFF_NO_QUEUE = 524288ULL, - IFF_OPENVSWITCH = 1048576ULL, - IFF_L3MDEV_SLAVE = 2097152ULL, - IFF_TEAM = 4194304ULL, - IFF_RXFH_CONFIGURED = 8388608ULL, - IFF_PHONY_HEADROOM = 16777216ULL, - IFF_MACSEC = 33554432ULL, - IFF_NO_RX_HANDLER = 67108864ULL, - IFF_FAILOVER = 134217728ULL, - IFF_FAILOVER_SLAVE = 268435456ULL, - IFF_L3MDEV_RX_HANDLER = 536870912ULL, - IFF_NO_ADDRCONF = 1073741824ULL, - IFF_TX_SKB_NO_LINEAR = 2147483648ULL, - IFF_CHANGE_PROTO_DOWN = 4294967296ULL, - IFF_SEE_ALL_HWTSTAMP_REQUESTS = 8589934592ULL, -}; - -enum { - IF_OPER_UNKNOWN = 0, - IF_OPER_NOTPRESENT = 1, - IF_OPER_DOWN = 2, - IF_OPER_LOWERLAYERDOWN = 3, - IF_OPER_TESTING = 4, - IF_OPER_DORMANT = 5, - IF_OPER_UP = 6, -}; - -enum { - IFLA_BRIDGE_FLAGS = 0, - IFLA_BRIDGE_MODE = 1, - IFLA_BRIDGE_VLAN_INFO = 2, - IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3, - IFLA_BRIDGE_MRP = 4, - IFLA_BRIDGE_CFM = 5, - IFLA_BRIDGE_MST = 6, - __IFLA_BRIDGE_MAX = 7, -}; - -enum net_bridge_opts { - BROPT_VLAN_ENABLED = 0, - BROPT_VLAN_STATS_ENABLED = 1, - BROPT_NF_CALL_IPTABLES = 2, - BROPT_NF_CALL_IP6TABLES = 3, - BROPT_NF_CALL_ARPTABLES = 4, - BROPT_GROUP_ADDR_SET = 5, - BROPT_MULTICAST_ENABLED = 6, - BROPT_MULTICAST_QUERY_USE_IFADDR = 7, - BROPT_MULTICAST_STATS_ENABLED = 8, - BROPT_HAS_IPV6_ADDR = 9, - BROPT_NEIGH_SUPPRESS_ENABLED = 10, - BROPT_MTU_SET_BY_USER = 11, - BROPT_VLAN_STATS_PER_PORT = 12, - BROPT_NO_LL_LEARN = 13, - BROPT_VLAN_BRIDGE_BINDING = 14, - BROPT_MCAST_VLAN_SNOOPING_ENABLED = 15, - BROPT_MST_ENABLED = 16, -}; - -enum netlink_validation { - NL_VALIDATE_LIBERAL = 0, - NL_VALIDATE_TRAILING = 1, - NL_VALIDATE_MAXTYPE = 2, - NL_VALIDATE_UNSPEC = 4, - NL_VALIDATE_STRICT_ATTRS = 8, - NL_VALIDATE_NESTED = 16, -}; - -enum { - BR_FDB_LOCAL = 0, - BR_FDB_STATIC = 1, - BR_FDB_STICKY = 2, - BR_FDB_ADDED_BY_USER = 3, - BR_FDB_ADDED_BY_EXT_LEARN = 4, - BR_FDB_OFFLOADED = 5, - BR_FDB_NOTIFY = 6, - BR_FDB_NOTIFY_INACTIVE = 7, - BR_FDB_LOCKED = 8, - BR_FDB_DYNAMIC_LEARNED = 9, -}; - -enum { - BR_GROUPFWD_STP = 1, - BR_GROUPFWD_MACPAUSE = 2, - BR_GROUPFWD_LACP = 4, -}; - -enum { - IFLA_BR_UNSPEC = 0, - IFLA_BR_FORWARD_DELAY = 1, - IFLA_BR_HELLO_TIME = 2, - IFLA_BR_MAX_AGE = 3, - IFLA_BR_AGEING_TIME = 4, - IFLA_BR_STP_STATE = 5, - IFLA_BR_PRIORITY = 6, - IFLA_BR_VLAN_FILTERING = 7, - IFLA_BR_VLAN_PROTOCOL = 8, - IFLA_BR_GROUP_FWD_MASK = 9, - IFLA_BR_ROOT_ID = 10, - IFLA_BR_BRIDGE_ID = 11, - IFLA_BR_ROOT_PORT = 12, - IFLA_BR_ROOT_PATH_COST = 13, - IFLA_BR_TOPOLOGY_CHANGE = 14, - IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, - IFLA_BR_HELLO_TIMER = 16, - IFLA_BR_TCN_TIMER = 17, - IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, - IFLA_BR_GC_TIMER = 19, - IFLA_BR_GROUP_ADDR = 20, - IFLA_BR_FDB_FLUSH = 21, - IFLA_BR_MCAST_ROUTER = 22, - IFLA_BR_MCAST_SNOOPING = 23, - IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, - IFLA_BR_MCAST_QUERIER = 25, - IFLA_BR_MCAST_HASH_ELASTICITY = 26, - IFLA_BR_MCAST_HASH_MAX = 27, - IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, - IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, - IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, - IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, - IFLA_BR_MCAST_QUERIER_INTVL = 32, - IFLA_BR_MCAST_QUERY_INTVL = 33, - IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, - IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, - IFLA_BR_NF_CALL_IPTABLES = 36, - IFLA_BR_NF_CALL_IP6TABLES = 37, - IFLA_BR_NF_CALL_ARPTABLES = 38, - IFLA_BR_VLAN_DEFAULT_PVID = 39, - IFLA_BR_PAD = 40, - IFLA_BR_VLAN_STATS_ENABLED = 41, - IFLA_BR_MCAST_STATS_ENABLED = 42, - IFLA_BR_MCAST_IGMP_VERSION = 43, - IFLA_BR_MCAST_MLD_VERSION = 44, - IFLA_BR_VLAN_STATS_PER_PORT = 45, - IFLA_BR_MULTI_BOOLOPT = 46, - IFLA_BR_MCAST_QUERIER_STATE = 47, - IFLA_BR_FDB_N_LEARNED = 48, - IFLA_BR_FDB_MAX_LEARNED = 49, - __IFLA_BR_MAX = 50, -}; - -enum { - IFLA_STATS_UNSPEC = 0, - IFLA_STATS_LINK_64 = 1, - IFLA_STATS_LINK_XSTATS = 2, - IFLA_STATS_LINK_XSTATS_SLAVE = 3, - IFLA_STATS_LINK_OFFLOAD_XSTATS = 4, - IFLA_STATS_AF_SPEC = 5, - __IFLA_STATS_MAX = 6, -}; - -enum { - LINK_XSTATS_TYPE_UNSPEC = 0, - LINK_XSTATS_TYPE_BRIDGE = 1, - LINK_XSTATS_TYPE_BOND = 2, - __LINK_XSTATS_TYPE_MAX = 3, -}; - -enum { - BRIDGE_XSTATS_UNSPEC = 0, - BRIDGE_XSTATS_VLAN = 1, - BRIDGE_XSTATS_MCAST = 2, - BRIDGE_XSTATS_PAD = 3, - BRIDGE_XSTATS_STP = 4, - __BRIDGE_XSTATS_MAX = 5, -}; - -struct bridge_vlan_info { - __u16 flags; - __u16 vid; -}; - -struct net_bridge_fdb_flush_desc { - unsigned long flags; - unsigned long flags_mask; - int port_ifindex; - u16 vlan_id; -}; - -struct vtunnel_info { - u32 tunid; - u16 vid; - u16 flags; -}; - -typedef __kernel_clock_t clock_t; - -struct br_boolopt_multi { - __u32 optval; - __u32 optmask; -}; - -struct net_bridge_vlan_group { - struct rhashtable vlan_hash; - struct rhashtable tunnel_hash; - struct list_head vlan_list; - u16 num_vlans; - u16 pvid; - u8 pvid_state; -}; - -struct ifinfomsg { - unsigned char ifi_family; - unsigned char __ifi_pad; - unsigned short ifi_type; - int ifi_index; - unsigned int ifi_flags; - unsigned int ifi_change; -}; - -struct acpi_pci_root_info; - -struct acpi_pci_root_ops { - struct pci_ops *pci_ops; - int (*init_info)(struct acpi_pci_root_info *); - void (*release_info)(struct acpi_pci_root_info *); - int (*prepare_resources)(struct acpi_pci_root_info *); -}; - -struct acpi_pci_root; - -struct acpi_pci_root_info { - struct acpi_pci_root *root; - struct acpi_device *bridge; - struct acpi_pci_root_ops *ops; - struct list_head resources; - char name[16]; -}; - -struct acpi_pci_root { - struct acpi_device *device; - struct pci_bus *bus; - u16 segment; - int bridge_type; - struct resource secondary; - u32 osc_support_set; - u32 osc_control_set; - u32 osc_ext_support_set; - u32 osc_ext_control_set; - phys_addr_t mcfg_addr; -}; - -struct pci_root_info { - struct acpi_pci_root_info common; - struct pci_sysdata sd; - bool mcfg_added; - u8 start_bus; - u8 end_bus; -}; - -struct objpool_head; - -typedef int (*objpool_fini_cb)(struct objpool_head *, void *); - -struct objpool_slot; - -struct objpool_head { - int obj_size; - int nr_objs; - int nr_cpus; - int capacity; - gfp_t gfp; - refcount_t ref; - unsigned long flags; - struct objpool_slot **cpu_slots; - objpool_fini_cb release; - void *context; -}; - -struct objpool_slot { - uint32_t head; - uint32_t tail; - uint32_t last; - uint32_t mask; - void *entries[0]; -}; - -typedef int (*objpool_init_obj_cb)(void *, void *); - -struct word_at_a_time { - const unsigned long one_bits; - const unsigned long high_bits; -}; - -struct x86_hw_tss { - u32 reserved1; - u64 sp0; - u64 sp1; - u64 sp2; - u64 reserved2; - u64 ist[7]; - u32 reserved3; - u32 reserved4; - u16 reserved5; - u16 io_bitmap_base; -} __attribute__((packed)); - -struct x86_io_bitmap { - u64 prev_sequence; - unsigned int prev_max; - unsigned long bitmap[1025]; - unsigned long mapall[1025]; -}; - -struct tss_struct { - struct x86_hw_tss x86_tss; - struct x86_io_bitmap io_bitmap; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct fc_log; - -struct p_log { - const char *prefix; - struct fc_log *log; -}; - -enum fs_context_purpose { - FS_CONTEXT_FOR_MOUNT = 0, - FS_CONTEXT_FOR_SUBMOUNT = 1, - FS_CONTEXT_FOR_RECONFIGURE = 2, -}; - -enum fs_context_phase { - FS_CONTEXT_CREATE_PARAMS = 0, - FS_CONTEXT_CREATING = 1, - FS_CONTEXT_AWAITING_MOUNT = 2, - FS_CONTEXT_AWAITING_RECONF = 3, - FS_CONTEXT_RECONF_PARAMS = 4, - FS_CONTEXT_RECONFIGURING = 5, - FS_CONTEXT_FAILED = 6, -}; - -struct fs_context_operations; - -struct fs_context { - const struct fs_context_operations *ops; - struct mutex uapi_mutex; - struct file_system_type *fs_type; - void *fs_private; - void *sget_key; - struct dentry *root; - struct user_namespace *user_ns; - struct net *net_ns; - const struct cred *cred; - struct p_log log; - const char *source; - void *security; - void *s_fs_info; - unsigned int sb_flags; - unsigned int sb_flags_mask; - unsigned int s_iflags; - enum fs_context_purpose purpose: 8; - enum fs_context_phase phase: 8; - bool need_free: 1; - bool global: 1; - bool oldapi: 1; - bool exclusive: 1; -}; - -struct fs_context_operations { - void (*free)(struct fs_context *); - int (*dup)(struct fs_context *, struct fs_context *); - int (*parse_param)(struct fs_context *, struct fs_parameter *); - int (*parse_monolithic)(struct fs_context *, void *); - int (*get_tree)(struct fs_context *); - int (*reconfigure)(struct fs_context *); -}; - -enum fs_value_type { - fs_value_is_undefined = 0, - fs_value_is_flag = 1, - fs_value_is_string = 2, - fs_value_is_blob = 3, - fs_value_is_filename = 4, - fs_value_is_file = 5, -}; - -struct filename; - -struct fs_parameter { - const char *key; - enum fs_value_type type: 8; - union { - char *string; - void *blob; - struct filename *name; - struct file *file; - }; - size_t size; - int dirfd; -}; - -struct audit_names; - -struct filename { - const char *name; - const char __attribute__((btf_type_tag("user"))) *uptr; - atomic_t refcnt; - struct audit_names *aname; - const char iname[0]; -}; - -struct nsset { - unsigned int flags; - struct nsproxy *nsproxy; - struct fs_struct *fs; - const struct cred *cred; -}; - -struct new_utsname { - char sysname[65]; - char nodename[65]; - char release[65]; - char version[65]; - char machine[65]; - char domainname[65]; -}; - -struct uts_namespace { - struct new_utsname name; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; -}; - -struct binfmt_misc { - struct list_head entries; - rwlock_t entries_lock; - bool enabled; -}; - -struct ldt_struct { - struct desc_struct *entries; - unsigned int nr_entries; - int slot; -}; - -struct anon_vma { - struct anon_vma *root; - struct rw_semaphore rwsem; - atomic_t refcount; - unsigned long num_children; - unsigned long num_active_vmas; - struct anon_vma *parent; - struct rb_root_cached rb_root; -}; - -struct mempolicy { - atomic_t refcnt; - unsigned short mode; - unsigned short flags; - nodemask_t nodes; - int home_node; - union { - nodemask_t cpuset_mems_allowed; - nodemask_t user_nodemask; - } w; -}; - -struct reclaim_state { - unsigned long reclaimed; -}; - -struct task_delay_info { - raw_spinlock_t lock; - u64 blkio_start; - u64 blkio_delay; - u64 swapin_start; - u64 swapin_delay; - u32 blkio_count; - u32 swapin_count; - u64 freepages_start; - u64 freepages_delay; - u64 thrashing_start; - u64 thrashing_delay; - u64 compact_start; - u64 compact_delay; - u64 wpcopy_start; - u64 wpcopy_delay; - u64 irq_delay; - u32 freepages_count; - u32 thrashing_count; - u32 compact_count; - u32 wpcopy_count; - u32 irq_count; -}; - -struct fc_log { - refcount_t usage; - u8 head; - u8 tail; - u8 need_free; - struct module *owner; - char *buffer[8]; -}; - -struct fs_parse_result { - bool negated; - union { - bool boolean; - int int_32; - unsigned int uint_32; - u64 uint_64; - }; -}; - -struct swap_cluster_info { - spinlock_t lock; - unsigned int data: 24; - unsigned int flags: 8; -}; - -struct swap_cluster_list { - struct swap_cluster_info head; - struct swap_cluster_info tail; -}; - -struct percpu_cluster; - -struct swap_info_struct { - struct percpu_ref users; - unsigned long flags; - short prio; - struct plist_node list; - signed char type; - unsigned int max; - unsigned char *swap_map; - struct swap_cluster_info *cluster_info; - struct swap_cluster_list free_clusters; - unsigned int lowest_bit; - unsigned int highest_bit; - unsigned int pages; - unsigned int inuse_pages; - unsigned int cluster_next; - unsigned int cluster_nr; - unsigned int __attribute__((btf_type_tag("percpu"))) *cluster_next_cpu; - struct percpu_cluster __attribute__((btf_type_tag("percpu"))) *percpu_cluster; - struct rb_root swap_extent_root; - struct file *bdev_file; - struct block_device *bdev; - struct file *swap_file; - unsigned int old_block_size; - struct completion comp; - spinlock_t lock; - spinlock_t cont_lock; - struct work_struct discard_work; - struct swap_cluster_list discard_clusters; - struct plist_node avail_lists[0]; -}; - -struct percpu_cluster { - struct swap_cluster_info index; - unsigned int next; -}; - -typedef void (*btf_trace_initcall_level)(void *, const char *); - -typedef int (*initcall_t)(); - -typedef void (*btf_trace_initcall_start)(void *, initcall_t); - -typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); - -enum system_states { - SYSTEM_BOOTING = 0, - SYSTEM_SCHEDULING = 1, - SYSTEM_FREEING_INITMEM = 2, - SYSTEM_RUNNING = 3, - SYSTEM_HALT = 4, - SYSTEM_POWER_OFF = 5, - SYSTEM_RESTART = 6, - SYSTEM_SUSPEND = 7, -}; - -typedef int initcall_entry_t; - -enum { - EVENT_FILE_FL_ENABLED = 1, - EVENT_FILE_FL_RECORDED_CMD = 2, - EVENT_FILE_FL_RECORDED_TGID = 4, - EVENT_FILE_FL_FILTERED = 8, - EVENT_FILE_FL_NO_SET_FILTER = 16, - EVENT_FILE_FL_SOFT_MODE = 32, - EVENT_FILE_FL_SOFT_DISABLED = 64, - EVENT_FILE_FL_TRIGGER_MODE = 128, - EVENT_FILE_FL_TRIGGER_COND = 256, - EVENT_FILE_FL_PID_FILTER = 512, - EVENT_FILE_FL_WAS_ENABLED = 1024, - EVENT_FILE_FL_FREED = 2048, -}; - -enum cpuhp_state { - CPUHP_INVALID = -1, - CPUHP_OFFLINE = 0, - CPUHP_CREATE_THREADS = 1, - CPUHP_PERF_PREPARE = 2, - CPUHP_PERF_X86_PREPARE = 3, - CPUHP_PERF_X86_AMD_UNCORE_PREP = 4, - CPUHP_PERF_POWER = 5, - CPUHP_PERF_SUPERH = 6, - CPUHP_X86_HPET_DEAD = 7, - CPUHP_X86_MCE_DEAD = 8, - CPUHP_VIRT_NET_DEAD = 9, - CPUHP_IBMVNIC_DEAD = 10, - CPUHP_SLUB_DEAD = 11, - CPUHP_DEBUG_OBJ_DEAD = 12, - CPUHP_MM_WRITEBACK_DEAD = 13, - CPUHP_MM_VMSTAT_DEAD = 14, - CPUHP_SOFTIRQ_DEAD = 15, - CPUHP_NET_MVNETA_DEAD = 16, - CPUHP_CPUIDLE_DEAD = 17, - CPUHP_ARM64_FPSIMD_DEAD = 18, - CPUHP_ARM_OMAP_WAKE_DEAD = 19, - CPUHP_IRQ_POLL_DEAD = 20, - CPUHP_BLOCK_SOFTIRQ_DEAD = 21, - CPUHP_BIO_DEAD = 22, - CPUHP_ACPI_CPUDRV_DEAD = 23, - CPUHP_S390_PFAULT_DEAD = 24, - CPUHP_BLK_MQ_DEAD = 25, - CPUHP_FS_BUFF_DEAD = 26, - CPUHP_PRINTK_DEAD = 27, - CPUHP_MM_MEMCQ_DEAD = 28, - CPUHP_PERCPU_CNT_DEAD = 29, - CPUHP_RADIX_DEAD = 30, - CPUHP_PAGE_ALLOC = 31, - CPUHP_NET_DEV_DEAD = 32, - CPUHP_PCI_XGENE_DEAD = 33, - CPUHP_IOMMU_IOVA_DEAD = 34, - CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 35, - CPUHP_PADATA_DEAD = 36, - CPUHP_AP_DTPM_CPU_DEAD = 37, - CPUHP_RANDOM_PREPARE = 38, - CPUHP_WORKQUEUE_PREP = 39, - CPUHP_POWER_NUMA_PREPARE = 40, - CPUHP_HRTIMERS_PREPARE = 41, - CPUHP_PROFILE_PREPARE = 42, - CPUHP_X2APIC_PREPARE = 43, - CPUHP_SMPCFD_PREPARE = 44, - CPUHP_RELAY_PREPARE = 45, - CPUHP_MD_RAID5_PREPARE = 46, - CPUHP_RCUTREE_PREP = 47, - CPUHP_CPUIDLE_COUPLED_PREPARE = 48, - CPUHP_POWERPC_PMAC_PREPARE = 49, - CPUHP_POWERPC_MMU_CTX_PREPARE = 50, - CPUHP_XEN_PREPARE = 51, - CPUHP_XEN_EVTCHN_PREPARE = 52, - CPUHP_ARM_SHMOBILE_SCU_PREPARE = 53, - CPUHP_SH_SH3X_PREPARE = 54, - CPUHP_TOPOLOGY_PREPARE = 55, - CPUHP_NET_IUCV_PREPARE = 56, - CPUHP_ARM_BL_PREPARE = 57, - CPUHP_TRACE_RB_PREPARE = 58, - CPUHP_MM_ZS_PREPARE = 59, - CPUHP_MM_ZSWP_POOL_PREPARE = 60, - CPUHP_KVM_PPC_BOOK3S_PREPARE = 61, - CPUHP_ZCOMP_PREPARE = 62, - CPUHP_TIMERS_PREPARE = 63, - CPUHP_MIPS_SOC_PREPARE = 64, - CPUHP_BP_PREPARE_DYN = 65, - CPUHP_BP_PREPARE_DYN_END = 85, - CPUHP_BP_KICK_AP = 86, - CPUHP_BRINGUP_CPU = 87, - CPUHP_AP_IDLE_DEAD = 88, - CPUHP_AP_OFFLINE = 89, - CPUHP_AP_CACHECTRL_STARTING = 90, - CPUHP_AP_SCHED_STARTING = 91, - CPUHP_AP_RCUTREE_DYING = 92, - CPUHP_AP_CPU_PM_STARTING = 93, - CPUHP_AP_IRQ_GIC_STARTING = 94, - CPUHP_AP_IRQ_HIP04_STARTING = 95, - CPUHP_AP_IRQ_APPLE_AIC_STARTING = 96, - CPUHP_AP_IRQ_ARMADA_XP_STARTING = 97, - CPUHP_AP_IRQ_BCM2836_STARTING = 98, - CPUHP_AP_IRQ_MIPS_GIC_STARTING = 99, - CPUHP_AP_IRQ_LOONGARCH_STARTING = 100, - CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 101, - CPUHP_AP_ARM_MVEBU_COHERENCY = 102, - CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 103, - CPUHP_AP_PERF_X86_STARTING = 104, - CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 105, - CPUHP_AP_PERF_X86_CSTATE_STARTING = 106, - CPUHP_AP_PERF_XTENSA_STARTING = 107, - CPUHP_AP_ARM_VFP_STARTING = 108, - CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 109, - CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 110, - CPUHP_AP_PERF_ARM_ACPI_STARTING = 111, - CPUHP_AP_PERF_ARM_STARTING = 112, - CPUHP_AP_PERF_RISCV_STARTING = 113, - CPUHP_AP_ARM_L2X0_STARTING = 114, - CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 115, - CPUHP_AP_ARM_ARCH_TIMER_STARTING = 116, - CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 117, - CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 118, - CPUHP_AP_JCORE_TIMER_STARTING = 119, - CPUHP_AP_ARM_TWD_STARTING = 120, - CPUHP_AP_QCOM_TIMER_STARTING = 121, - CPUHP_AP_TEGRA_TIMER_STARTING = 122, - CPUHP_AP_ARMADA_TIMER_STARTING = 123, - CPUHP_AP_MIPS_GIC_TIMER_STARTING = 124, - CPUHP_AP_ARC_TIMER_STARTING = 125, - CPUHP_AP_RISCV_TIMER_STARTING = 126, - CPUHP_AP_CLINT_TIMER_STARTING = 127, - CPUHP_AP_CSKY_TIMER_STARTING = 128, - CPUHP_AP_TI_GP_TIMER_STARTING = 129, - CPUHP_AP_HYPERV_TIMER_STARTING = 130, - CPUHP_AP_DUMMY_TIMER_STARTING = 131, - CPUHP_AP_ARM_XEN_STARTING = 132, - CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 133, - CPUHP_AP_ARM_CORESIGHT_STARTING = 134, - CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 135, - CPUHP_AP_ARM64_ISNDEP_STARTING = 136, - CPUHP_AP_SMPCFD_DYING = 137, - CPUHP_AP_HRTIMERS_DYING = 138, - CPUHP_AP_TICK_DYING = 139, - CPUHP_AP_X86_TBOOT_DYING = 140, - CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 141, - CPUHP_AP_ONLINE = 142, - CPUHP_TEARDOWN_CPU = 143, - CPUHP_AP_ONLINE_IDLE = 144, - CPUHP_AP_HYPERV_ONLINE = 145, - CPUHP_AP_KVM_ONLINE = 146, - CPUHP_AP_SCHED_WAIT_EMPTY = 147, - CPUHP_AP_SMPBOOT_THREADS = 148, - CPUHP_AP_IRQ_AFFINITY_ONLINE = 149, - CPUHP_AP_BLK_MQ_ONLINE = 150, - CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 151, - CPUHP_AP_X86_INTEL_EPB_ONLINE = 152, - CPUHP_AP_PERF_ONLINE = 153, - CPUHP_AP_PERF_X86_ONLINE = 154, - CPUHP_AP_PERF_X86_UNCORE_ONLINE = 155, - CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 156, - CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 157, - CPUHP_AP_PERF_X86_RAPL_ONLINE = 158, - CPUHP_AP_PERF_X86_CSTATE_ONLINE = 159, - CPUHP_AP_PERF_S390_CF_ONLINE = 160, - CPUHP_AP_PERF_S390_SF_ONLINE = 161, - CPUHP_AP_PERF_ARM_CCI_ONLINE = 162, - CPUHP_AP_PERF_ARM_CCN_ONLINE = 163, - CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 164, - CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 165, - CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 166, - CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 167, - CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 168, - CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 169, - CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 170, - CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 171, - CPUHP_AP_PERF_ARM_L2X0_ONLINE = 172, - CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 173, - CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 174, - CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 175, - CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 176, - CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 177, - CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 178, - CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 179, - CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 180, - CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 181, - CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 182, - CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 183, - CPUHP_AP_PERF_CSKY_ONLINE = 184, - CPUHP_AP_TMIGR_ONLINE = 185, - CPUHP_AP_WATCHDOG_ONLINE = 186, - CPUHP_AP_WORKQUEUE_ONLINE = 187, - CPUHP_AP_RANDOM_ONLINE = 188, - CPUHP_AP_RCUTREE_ONLINE = 189, - CPUHP_AP_BASE_CACHEINFO_ONLINE = 190, - CPUHP_AP_ONLINE_DYN = 191, - CPUHP_AP_ONLINE_DYN_END = 231, - CPUHP_AP_X86_HPET_ONLINE = 232, - CPUHP_AP_X86_KVM_CLK_ONLINE = 233, - CPUHP_AP_ACTIVE = 234, - CPUHP_ONLINE = 235, -}; - -struct trace_event_raw_initcall_level { - struct trace_entry ent; - u32 __data_loc_level; - char __data[0]; -}; - -struct trace_event_raw_initcall_start { - struct trace_entry ent; - initcall_t func; - char __data[0]; -}; - -struct trace_event_raw_initcall_finish { - struct trace_entry ent; - initcall_t func; - int ret; - char __data[0]; -}; - -struct blacklist_entry { - struct list_head next; - char *buf; -}; - -struct eventfs_inode; - -struct trace_subsystem_dir; - -struct trace_event_file { - struct list_head list; - struct trace_event_call *event_call; - struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; - struct eventfs_inode *ei; - struct trace_array *tr; - struct trace_subsystem_dir *system; - struct list_head triggers; - unsigned long flags; - atomic_t ref; - atomic_t sm_ref; - atomic_t tm_ref; -}; - -struct prog_entry; - -struct event_filter { - struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; - char *filter_string; -}; - -struct trace_event_data_offsets_initcall_level { - u32 level; - const void *level_ptr_; -}; - -struct trace_buffer; - -struct ring_buffer_event; - -struct trace_event_buffer { - struct trace_buffer *buffer; - struct ring_buffer_event *event; - struct trace_event_file *trace_file; - void *entry; - unsigned int trace_ctx; - struct pt_regs *regs; -}; - -struct ring_buffer_event { - u32 type_len: 5; - u32 time_delta: 27; - u32 array[0]; -}; - -typedef int (*parse_unknown_fn)(char *, char *, const char *, void *); - -struct trace_event_data_offsets_initcall_start {}; - -struct trace_event_data_offsets_initcall_finish {}; - -enum apic_intr_mode_id { - APIC_PIC = 0, - APIC_VIRTUAL_WIRE = 1, - APIC_VIRTUAL_WIRE_NO_CONFIG = 2, - APIC_SYMMETRIC_IO = 3, - APIC_SYMMETRIC_IO_NO_ROUTING = 4, -}; - -enum clock_event_state { - CLOCK_EVT_STATE_DETACHED = 0, - CLOCK_EVT_STATE_SHUTDOWN = 1, - CLOCK_EVT_STATE_PERIODIC = 2, - CLOCK_EVT_STATE_ONESHOT = 3, - CLOCK_EVT_STATE_ONESHOT_STOPPED = 4, -}; - -struct clock_event_device { - void (*event_handler)(struct clock_event_device *); - int (*set_next_event)(unsigned long, struct clock_event_device *); - int (*set_next_ktime)(ktime_t, struct clock_event_device *); - ktime_t next_event; - u64 max_delta_ns; - u64 min_delta_ns; - u32 mult; - u32 shift; - enum clock_event_state state_use_accessors; - unsigned int features; - unsigned long retries; - int (*set_state_periodic)(struct clock_event_device *); - int (*set_state_oneshot)(struct clock_event_device *); - int (*set_state_oneshot_stopped)(struct clock_event_device *); - int (*set_state_shutdown)(struct clock_event_device *); - int (*tick_resume)(struct clock_event_device *); - void (*broadcast)(const struct cpumask *); - void (*suspend)(struct clock_event_device *); - void (*resume)(struct clock_event_device *); - unsigned long min_delta_ticks; - unsigned long max_delta_ticks; - const char *name; - int rating; - int irq; - int bound_on; - const struct cpumask *cpumask; - struct list_head list; - struct module *owner; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct io_bitmap { - u64 sequence; - refcount_t refcnt; - unsigned int max; - unsigned long bitmap[1024]; -}; - -struct x86_cpu_id { - __u16 vendor; - __u16 family; - __u16 model; - __u16 steppings; - __u16 feature; - kernel_ulong_t driver_data; -}; - -struct syscore_ops { - struct list_head node; - int (*suspend)(); - void (*resume)(); - void (*shutdown)(); -}; - -enum fixed_addresses { - VSYSCALL_PAGE = 511, - FIX_DBGP_BASE = 512, - FIX_EARLYCON_MEM_BASE = 513, - FIX_APIC_BASE = 514, - FIX_IO_APIC_BASE_0 = 515, - FIX_IO_APIC_BASE_END = 642, - __end_of_permanent_fixed_addresses = 643, - FIX_BTMAP_END = 1024, - FIX_BTMAP_BEGIN = 1535, - __end_of_fixed_addresses = 1536, -}; - -enum page_cache_mode { - _PAGE_CACHE_MODE_WB = 0, - _PAGE_CACHE_MODE_WC = 1, - _PAGE_CACHE_MODE_UC_MINUS = 2, - _PAGE_CACHE_MODE_UC = 3, - _PAGE_CACHE_MODE_WT = 4, - _PAGE_CACHE_MODE_WP = 5, - _PAGE_CACHE_MODE_NUM = 8, -}; - -typedef void (*smp_call_func_t)(void *); - -typedef bool (*smp_cond_func_t)(int, void *); - -struct irqentry_state { - union { - bool exit_rcu; - bool lockdep; - }; -}; - -typedef struct irqentry_state irqentry_state_t; - -union apic_ir { - unsigned long map[4]; - u32 regs[8]; -}; - -struct apic { - void (*eoi)(); - void (*native_eoi)(); - void (*write)(u32, u32); - u32 (*read)(u32); - void (*wait_icr_idle)(); - u32 (*safe_wait_icr_idle)(); - void (*send_IPI)(int, int); - void (*send_IPI_mask)(const struct cpumask *, int); - void (*send_IPI_mask_allbutself)(const struct cpumask *, int); - void (*send_IPI_allbutself)(int); - void (*send_IPI_all)(int); - void (*send_IPI_self)(int); - u32 disable_esr: 1; - u32 dest_mode_logical: 1; - u32 x2apic_set_max_apicid: 1; - u32 nmi_to_offline_cpu: 1; - u32 (*calc_dest_apicid)(unsigned int); - u64 (*icr_read)(); - void (*icr_write)(u32, u32); - u32 max_apic_id; - int (*probe)(); - int (*acpi_madt_oem_check)(char *, char *); - void (*init_apic_ldr)(); - u32 (*cpu_present_to_apicid)(int); - u32 (*get_apic_id)(u32); - int (*wakeup_secondary_cpu)(u32, unsigned long); - int (*wakeup_secondary_cpu_64)(u32, unsigned long); - char *name; -}; - -struct irq_cfg { - unsigned int dest_apicid; - unsigned int vector; -}; - -enum uts_proc { - UTS_PROC_ARCH = 0, - UTS_PROC_OSTYPE = 1, - UTS_PROC_OSRELEASE = 2, - UTS_PROC_VERSION = 3, - UTS_PROC_HOSTNAME = 4, - UTS_PROC_DOMAINNAME = 5, -}; - -union upper_chunk; - -union lower_chunk; - -struct trace_pid_list { - raw_spinlock_t lock; - struct irq_work refill_irqwork; - union upper_chunk *upper[256]; - union upper_chunk *upper_list; - union lower_chunk *lower_list; - int free_upper_chunks; - int free_lower_chunks; -}; - -struct trace_array_cpu; - -struct array_buffer { - struct trace_array *tr; - struct trace_buffer *buffer; - struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data; - u64 time_start; - int cpu; -}; - -struct trace_options; - -struct trace_func_repeats; - -struct trace_array { - struct list_head list; - char *name; - struct array_buffer array_buffer; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_pids; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_no_pids; - arch_spinlock_t max_lock; - int buffer_disabled; - int sys_refcount_enter; - int sys_refcount_exit; - struct trace_event_file __attribute__((btf_type_tag("rcu"))) *enter_syscall_files[462]; - struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[462]; - int stop_count; - int clock_id; - int nr_topts; - bool clear_trace; - int buffer_percent; - unsigned int n_err_log_entries; - struct tracer *current_trace; - unsigned int trace_flags; - unsigned char trace_flags_index[32]; - unsigned int flags; - raw_spinlock_t start_lock; - const char *system_names; - struct list_head err_log; - struct dentry *dir; - struct dentry *options; - struct dentry *percpu_dir; - struct eventfs_inode *event_dir; - struct trace_options *topts; - struct list_head systems; - struct list_head events; - struct trace_event_file *trace_marker_file; - cpumask_var_t tracing_cpumask; - cpumask_var_t pipe_cpumask; - int ref; - int trace_ref; - struct ftrace_ops *ops; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; - struct list_head func_probes; - struct list_head mod_trace; - struct list_head mod_notrace; - int function_enabled; - int no_filter_buffering_ref; - struct list_head hist_vars; - struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; - bool ring_buffer_expanded; -}; - -struct trace_array_cpu { - atomic_t disabled; - void *buffer_page; - unsigned long entries; - unsigned long saved_latency; - unsigned long critical_start; - unsigned long critical_end; - unsigned long critical_sequence; - unsigned long nice; - unsigned long policy; - unsigned long rt_priority; - unsigned long skipped_entries; - u64 preempt_timestamp; - pid_t pid; - kuid_t uid; - char comm[16]; - int ftrace_ignore_pid; - bool ignore_pid; -}; - -struct filter_pred; - -struct prog_entry { - int target; - int when_to_branch; - struct filter_pred *pred; -}; - -struct event_subsystem; - -struct trace_subsystem_dir { - struct list_head list; - struct event_subsystem *subsystem; - struct trace_array *tr; - struct eventfs_inode *ei; - int ref_count; - int nr_events; -}; - -struct event_subsystem { - struct list_head list; - const char *name; - struct event_filter *filter; - int ref_count; -}; - -struct tracer_flags; - -struct tracer { - const char *name; - int (*init)(struct trace_array *); - void (*reset)(struct trace_array *); - void (*start)(struct trace_array *); - void (*stop)(struct trace_array *); - int (*update_thresh)(struct trace_array *); - void (*open)(struct trace_iterator *); - void (*pipe_open)(struct trace_iterator *); - void (*close)(struct trace_iterator *); - void (*pipe_close)(struct trace_iterator *); - ssize_t (*read)(struct trace_iterator *, struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*splice_read)(struct trace_iterator *, struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*print_header)(struct seq_file *); - enum print_line_t (*print_line)(struct trace_iterator *); - int (*set_flag)(struct trace_array *, u32, u32, int); - int (*flag_changed)(struct trace_array *, u32, int); - struct tracer *next; - struct tracer_flags *flags; - int enabled; - bool print_max; - bool allow_instances; - bool noboot; -}; - -struct tracer_opt; - -struct tracer_flags { - u32 val; - struct tracer_opt *opts; - struct tracer *trace; -}; - -struct tracer_opt { - const char *name; - u32 bit; -}; - -struct trace_option_dentry; - -struct trace_options { - struct tracer *tracer; - struct trace_option_dentry *topts; -}; - -struct trace_option_dentry { - struct tracer_opt *opt; - struct tracer_flags *flags; - struct trace_array *tr; - struct dentry *entry; -}; - -struct trace_func_repeats { - unsigned long ip; - unsigned long parent_ip; - unsigned long count; - u64 ts_last_call; -}; - -union upper_chunk { - union upper_chunk *next; - union lower_chunk *data[256]; -}; - -union lower_chunk { - union lower_chunk *next; - unsigned long data[256]; -}; - -enum lru_list { - LRU_INACTIVE_ANON = 0, - LRU_ACTIVE_ANON = 1, - LRU_INACTIVE_FILE = 2, - LRU_ACTIVE_FILE = 3, - LRU_UNEVICTABLE = 4, - NR_LRU_LISTS = 5, -}; - -typedef struct pglist_data pg_data_t; - -typedef struct { - pgd_t pgd; -} p4d_t; - -enum page_walk_lock { - PGWALK_RDLOCK = 0, - PGWALK_WRLOCK = 1, - PGWALK_WRLOCK_VERIFY = 2, -}; - -struct mm_walk; - -struct mm_walk_ops { - int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); - int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); - int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); - int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); - void (*post_vma)(struct mm_walk *); - enum page_walk_lock walk_lock; -}; - -enum page_walk_action { - ACTION_SUBTREE = 0, - ACTION_CONTINUE = 1, - ACTION_AGAIN = 2, -}; - -struct mm_walk { - const struct mm_walk_ops *ops; - struct mm_struct *mm; - pgd_t *pgd; - struct vm_area_struct *vma; - enum page_walk_action action; - bool no_vma; - void *private; -}; - -struct fs_struct { - int users; - spinlock_t lock; - seqcount_spinlock_t seq; - int umask; - int in_exec; - struct path root; - struct path pwd; -}; - -struct mount; - -struct mnt_namespace { - struct ns_common ns; - struct mount *root; - struct rb_root mounts; - struct user_namespace *user_ns; - struct ucounts *ucounts; - u64 seq; - wait_queue_head_t poll; - u64 event; - unsigned int nr_mounts; - unsigned int pending_mounts; -}; - -struct mnt_pcp; - -struct mountpoint; - -struct mount { - struct hlist_node mnt_hash; - struct mount *mnt_parent; - struct dentry *mnt_mountpoint; - struct vfsmount mnt; - union { - struct callback_head mnt_rcu; - struct llist_node mnt_llist; - }; - struct mnt_pcp __attribute__((btf_type_tag("percpu"))) *mnt_pcp; - struct list_head mnt_mounts; - struct list_head mnt_child; - struct list_head mnt_instance; - const char *mnt_devname; - union { - struct rb_node mnt_node; - struct list_head mnt_list; - }; - struct list_head mnt_expire; - struct list_head mnt_share; - struct list_head mnt_slave_list; - struct list_head mnt_slave; - struct mount *mnt_master; - struct mnt_namespace *mnt_ns; - struct mountpoint *mnt_mp; - union { - struct hlist_node mnt_mp_list; - struct hlist_node mnt_umount; - }; - struct list_head mnt_umounting; - struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *mnt_fsnotify_marks; - __u32 mnt_fsnotify_mask; - int mnt_id; - u64 mnt_id_unique; - int mnt_group_id; - int mnt_expiry_mark; - struct hlist_head mnt_pins; - struct hlist_head mnt_stuck_children; -}; - -struct mnt_pcp { - int mnt_count; - int mnt_writers; -}; - -struct mountpoint { - struct hlist_node m_hash; - struct dentry *m_dentry; - struct hlist_head m_list; - int m_count; -}; - -struct fs_pin { - wait_queue_head_t wait; - int done; - struct hlist_node s_list; - struct hlist_node m_list; - void (*kill)(struct fs_pin *); -}; - -struct prepend_buffer { - char *buf; - int len; -}; - -struct __va_list_tag { - unsigned int gp_offset; - unsigned int fp_offset; - void *overflow_arg_area; - void *reg_save_area; -}; - -typedef __builtin_va_list va_list; - -struct file_lock_context { - spinlock_t flc_lock; - struct list_head flc_flock; - struct list_head flc_posix; - struct list_head flc_lease; -}; - -struct nlm_lockowner; - -struct nfs_lock_info { - u32 state; - struct nlm_lockowner *owner; - struct list_head list; -}; - -struct nfs4_lock_state; - -struct nfs4_lock_info { - struct nfs4_lock_state *owner; -}; - -struct file_lock_core { - struct file_lock_core *flc_blocker; - struct list_head flc_list; - struct hlist_node flc_link; - struct list_head flc_blocked_requests; - struct list_head flc_blocked_member; - fl_owner_t flc_owner; - unsigned int flc_flags; - unsigned char flc_type; - pid_t flc_pid; - int flc_link_cpu; - wait_queue_head_t flc_wait; - struct file *flc_file; -}; - -struct file_lock_operations; - -struct lock_manager_operations; - -struct file_lock { - struct file_lock_core c; - loff_t fl_start; - loff_t fl_end; - const struct file_lock_operations *fl_ops; - const struct lock_manager_operations *fl_lmops; - union { - struct nfs_lock_info nfs_fl; - struct nfs4_lock_info nfs4_fl; - struct { - struct list_head link; - int state; - unsigned int debug_id; - } afs; - struct { - struct inode *inode; - } ceph; - } fl_u; -}; - -struct file_lock_operations { - void (*fl_copy_lock)(struct file_lock *, struct file_lock *); - void (*fl_release_private)(struct file_lock *); -}; - -struct lock_manager_operations { - void *lm_mod_owner; - fl_owner_t (*lm_get_owner)(fl_owner_t); - void (*lm_put_owner)(fl_owner_t); - void (*lm_notify)(struct file_lock *); - int (*lm_grant)(struct file_lock *, int); - bool (*lm_lock_expirable)(struct file_lock *); - void (*lm_expire_lock)(); -}; - -struct lease_manager_operations; - -struct file_lease { - struct file_lock_core c; - struct fasync_struct *fl_fasync; - unsigned long fl_break_time; - unsigned long fl_downgrade_time; - const struct lease_manager_operations *fl_lmops; -}; - -struct lease_manager_operations { - bool (*lm_break)(struct file_lease *); - int (*lm_change)(struct file_lease *, int, struct list_head *); - void (*lm_setup)(struct file_lease *, void **); - bool (*lm_breaker_owns_lease)(struct file_lease *); -}; - -typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); - -struct fd_data { - fmode_t mode; - unsigned int fd; -}; - -enum shrink_type { - SHRINK_DESTROY = 0, - SHRINK_BUSY_STOP = 1, - SHRINK_BUSY_SKIP = 2, -}; - -enum btrfs_ref_type { - BTRFS_REF_NOT_SET = 0, - BTRFS_REF_DATA = 1, - BTRFS_REF_METADATA = 2, - BTRFS_REF_LAST = 3, -} __attribute__((mode(byte))); - -enum btrfs_delayed_ref_action { - BTRFS_ADD_DELAYED_REF = 1, - BTRFS_DROP_DELAYED_REF = 2, - BTRFS_ADD_DELAYED_EXTENT = 3, - BTRFS_UPDATE_DELAYED_HEAD = 4, -} __attribute__((mode(byte))); - -enum { - BTRFS_FILE_EXTENT_INLINE = 0, - BTRFS_FILE_EXTENT_REG = 1, - BTRFS_FILE_EXTENT_PREALLOC = 2, - BTRFS_NR_FILE_EXTENT_TYPES = 3, -}; - -enum { - BTRFS_INODE_FLUSH_ON_CLOSE = 0, - BTRFS_INODE_DUMMY = 1, - BTRFS_INODE_IN_DEFRAG = 2, - BTRFS_INODE_HAS_ASYNC_EXTENT = 3, - BTRFS_INODE_NEEDS_FULL_SYNC = 4, - BTRFS_INODE_COPY_EVERYTHING = 5, - BTRFS_INODE_HAS_PROPS = 6, - BTRFS_INODE_SNAPSHOT_FLUSH = 7, - BTRFS_INODE_NO_XATTRS = 8, - BTRFS_INODE_NO_DELALLOC_FLUSH = 9, - BTRFS_INODE_VERITY_IN_PROGRESS = 10, - BTRFS_INODE_FREE_SPACE_INODE = 11, - BTRFS_INODE_NO_CAP_XATTR = 12, -}; - -enum btrfs_ilock_type { - __BTRFS_ILOCK_SHARED_BIT = 0, - BTRFS_ILOCK_SHARED = 1, - __BTRFS_ILOCK_SHARED_SEQ = 0, - __BTRFS_ILOCK_TRY_BIT = 1, - BTRFS_ILOCK_TRY = 2, - __BTRFS_ILOCK_TRY_SEQ = 1, - __BTRFS_ILOCK_MMAP_BIT = 2, - BTRFS_ILOCK_MMAP = 4, - __BTRFS_ILOCK_MMAP_SEQ = 2, -}; - -enum { - READA_NONE = 0, - READA_BACK = 1, - READA_FORWARD = 2, - READA_FORWARD_ALWAYS = 3, -}; - -enum iter_type { - ITER_UBUF = 0, - ITER_IOVEC = 1, - ITER_BVEC = 2, - ITER_KVEC = 3, - ITER_XARRAY = 4, - ITER_DISCARD = 5, -}; - -enum { - __EXTENT_FLAG_PINNED_BIT = 0, - EXTENT_FLAG_PINNED = 1, - __EXTENT_FLAG_PINNED_SEQ = 0, - __EXTENT_FLAG_COMPRESS_ZLIB_BIT = 1, - EXTENT_FLAG_COMPRESS_ZLIB = 2, - __EXTENT_FLAG_COMPRESS_ZLIB_SEQ = 1, - __EXTENT_FLAG_COMPRESS_LZO_BIT = 2, - EXTENT_FLAG_COMPRESS_LZO = 4, - __EXTENT_FLAG_COMPRESS_LZO_SEQ = 2, - __EXTENT_FLAG_COMPRESS_ZSTD_BIT = 3, - EXTENT_FLAG_COMPRESS_ZSTD = 8, - __EXTENT_FLAG_COMPRESS_ZSTD_SEQ = 3, - __EXTENT_FLAG_PREALLOC_BIT = 4, - EXTENT_FLAG_PREALLOC = 16, - __EXTENT_FLAG_PREALLOC_SEQ = 4, - __EXTENT_FLAG_LOGGING_BIT = 5, - EXTENT_FLAG_LOGGING = 32, - __EXTENT_FLAG_LOGGING_SEQ = 5, - __EXTENT_FLAG_FILLING_BIT = 6, - EXTENT_FLAG_FILLING = 64, - __EXTENT_FLAG_FILLING_SEQ = 6, - __EXTENT_FLAG_MERGED_BIT = 7, - EXTENT_FLAG_MERGED = 128, - __EXTENT_FLAG_MERGED_SEQ = 7, -}; - -enum { - RANGE_BOUNDARY_WRITTEN_EXTENT = 0, - RANGE_BOUNDARY_PREALLOC_EXTENT = 1, - RANGE_BOUNDARY_HOLE = 2, -}; - -struct btrfs_file_extent_item { - __le64 generation; - __le64 ram_bytes; - __u8 compression; - __u8 encryption; - __le16 other_encoding; - __u8 type; - __le64 disk_bytenr; - __le64 disk_num_bytes; - __le64 offset; - __le64 num_bytes; -} __attribute__((packed)); - -typedef int __kernel_rwf_t; - -struct falloc_range { - struct list_head list; - u64 start; - u64 len; -}; - -struct btrfs_header { - __u8 csum[32]; - __u8 fsid[16]; - __le64 bytenr; - __le64 flags; - __u8 chunk_tree_uuid[16]; - __le64 generation; - __le64 owner; - __le32 nritems; - __u8 level; -} __attribute__((packed)); - -struct btrfs_data_ref { - u64 ref_root; - u64 ino; - u64 offset; -}; - -struct btrfs_tree_ref { - int level; - u64 ref_root; -}; - -struct btrfs_ref { - enum btrfs_ref_type type; - enum btrfs_delayed_ref_action action; - bool skip_qgroup; - u64 bytenr; - u64 len; - u64 owning_root; - u64 parent; - union { - struct btrfs_data_ref data_ref; - struct btrfs_tree_ref tree_ref; - }; -}; - -struct btrfs_ioctl_encoded_io_args { - const struct iovec __attribute__((btf_type_tag("user"))) *iov; - unsigned long iovcnt; - __s64 offset; - __u64 flags; - __u64 len; - __u64 unencoded_len; - __u64 unencoded_offset; - __u32 compression; - __u32 encryption; - __u8 reserved[64]; -}; - -struct btrfs_log_ctx { - int log_ret; - int log_transid; - bool log_new_dentries; - bool logging_new_name; - bool logging_new_delayed_dentries; - bool logged_before; - struct inode *inode; - struct list_head list; - struct list_head ordered_extents; - struct list_head conflict_inodes; - int num_conflict_inodes; - bool logging_conflict_inodes; - struct extent_buffer *scratch_eb; -}; - -struct extent_map { - struct rb_node rb_node; - u64 start; - u64 len; - u64 mod_start; - u64 mod_len; - u64 orig_start; - u64 orig_block_len; - u64 ram_bytes; - u64 block_start; - u64 block_len; - u64 generation; - u32 flags; - refcount_t refs; - struct list_head list; -}; - -struct btrfs_ordered_extent { - u64 file_offset; - u64 num_bytes; - u64 ram_bytes; - u64 disk_bytenr; - u64 disk_num_bytes; - u64 offset; - u64 bytes_left; - u64 truncated_len; - unsigned long flags; - int compress_type; - int qgroup_rsv; - refcount_t refs; - struct inode *inode; - struct list_head list; - struct list_head log_list; - wait_queue_head_t wait; - struct rb_node rb_node; - struct list_head root_extent_list; - struct btrfs_work work; - struct completion completion; - struct btrfs_work flush_work; - struct list_head work_list; - struct list_head bioc_list; -}; - -struct btrfs_file_private { - void *filldir_buf; - u64 last_index; - struct extent_state *llseek_cached_state; -}; - -struct btrfs_drop_extents_args { - struct btrfs_path *path; - u64 start; - u64 end; - bool drop_cache; - bool replace_extent; - u32 extent_item_size; - u64 drop_end; - u64 bytes_found; - bool extent_inserted; -}; - -struct btrfs_replace_extent_info { - u64 disk_offset; - u64 disk_len; - u64 data_offset; - u64 data_len; - u64 file_offset; - char *extent_buf; - bool is_new_extent; - bool update_times; - int qgroup_reserved; - int insertions; -}; - -enum kernel_pkey_operation { - kernel_pkey_encrypt = 0, - kernel_pkey_decrypt = 1, - kernel_pkey_sign = 2, - kernel_pkey_verify = 3, -}; - -enum key_need_perm { - KEY_NEED_UNSPECIFIED = 0, - KEY_NEED_VIEW = 1, - KEY_NEED_READ = 2, - KEY_NEED_WRITE = 3, - KEY_NEED_SEARCH = 4, - KEY_NEED_LINK = 5, - KEY_NEED_SETATTR = 6, - KEY_NEED_UNLINK = 7, - KEY_SYSADMIN_OVERRIDE = 8, - KEY_AUTHTOKEN_OVERRIDE = 9, - KEY_DEFER_PERM_CHECK = 10, -}; - -struct key_user { - struct rb_node node; - struct mutex cons_lock; - spinlock_t lock; - refcount_t usage; - atomic_t nkeys; - atomic_t nikeys; - kuid_t uid; - int qnkeys; - int qnbytes; -}; - -struct key_preparsed_payload { - const char *orig_description; - char *description; - union key_payload payload; - const void *data; - size_t datalen; - size_t quotalen; - time64_t expiry; -}; - -struct key_match_data { - bool (*cmp)(const struct key *, const struct key_match_data *); - const void *raw_data; - void *preparsed; - unsigned int lookup_type; -}; - -struct kernel_pkey_params { - struct key *key; - const char *encoding; - const char *hash_algo; - char *info; - __u32 in_len; - union { - __u32 out_len; - __u32 in2_len; - }; - enum kernel_pkey_operation op: 8; -}; - -struct kernel_pkey_query { - __u32 supported_ops; - __u32 key_size; - __u16 max_data_size; - __u16 max_sig_size; - __u16 max_enc_size; - __u16 max_dec_size; -}; - -struct __key_reference_with_attributes; - -typedef struct __key_reference_with_attributes *key_ref_t; - -struct request_key_auth { - struct callback_head rcu; - struct key *target_key; - struct key *dest_keyring; - const struct cred *cred; - void *callout_info; - size_t callout_len; - pid_t pid; - char op[8]; -}; - -struct keyring_search_context { - struct keyring_index_key index_key; - const struct cred *cred; - struct key_match_data match_data; - unsigned int flags; - int (*iterator)(const void *, void *); - int skipped_ret; - bool possessed; - key_ref_t result; - time64_t now; -}; - -struct wait_bit_key; - -typedef int wait_bit_action_f(struct wait_bit_key *, int); - -struct wait_bit_key { - void *flags; - int bit_nr; - unsigned long timeout; -}; - -struct subprocess_info { - struct work_struct work; - struct completion *complete; - const char *path; - char **argv; - char **envp; - int wait; - int retval; - int (*init)(struct subprocess_info *, struct cred *); - void (*cleanup)(struct subprocess_info *); - void *data; -}; - -struct blk_ia_range_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_independent_access_range *, char *); -}; - -enum task_work_notify_mode { - TWA_NONE = 0, - TWA_RESUME = 1, - TWA_SIGNAL = 2, - TWA_SIGNAL_NO_IPI = 3, -}; - -enum io_uring_cmd_flags { - IO_URING_F_COMPLETE_DEFER = 1, - IO_URING_F_UNLOCKED = 2, - IO_URING_F_MULTISHOT = 4, - IO_URING_F_IOWQ = 8, - IO_URING_F_NONBLOCK = -2147483648, - IO_URING_F_SQE128 = 256, - IO_URING_F_CQE32 = 512, - IO_URING_F_IOPOLL = 1024, - IO_URING_F_CANCEL = 2048, - IO_URING_F_COMPAT = 4096, -}; - -enum { - IOU_OK = 0, - IOU_ISSUE_SKIP_COMPLETE = -529, - IOU_REQUEUE = -3072, - IOU_STOP_MULTISHOT = -125, -}; - -enum { - REQ_F_FIXED_FILE = 1ULL, - REQ_F_IO_DRAIN = 2ULL, - REQ_F_LINK = 4ULL, - REQ_F_HARDLINK = 8ULL, - REQ_F_FORCE_ASYNC = 16ULL, - REQ_F_BUFFER_SELECT = 32ULL, - REQ_F_CQE_SKIP = 64ULL, - REQ_F_FAIL = 256ULL, - REQ_F_INFLIGHT = 512ULL, - REQ_F_CUR_POS = 1024ULL, - REQ_F_NOWAIT = 2048ULL, - REQ_F_LINK_TIMEOUT = 4096ULL, - REQ_F_NEED_CLEANUP = 8192ULL, - REQ_F_POLLED = 16384ULL, - REQ_F_BUFFER_SELECTED = 32768ULL, - REQ_F_BUFFER_RING = 65536ULL, - REQ_F_REISSUE = 131072ULL, - REQ_F_SUPPORT_NOWAIT = 268435456ULL, - REQ_F_ISREG = 536870912ULL, - REQ_F_CREDS = 262144ULL, - REQ_F_REFCOUNT = 524288ULL, - REQ_F_ARM_LTIMEOUT = 1048576ULL, - REQ_F_ASYNC_DATA = 2097152ULL, - REQ_F_SKIP_LINK_CQES = 4194304ULL, - REQ_F_SINGLE_POLL = 8388608ULL, - REQ_F_DOUBLE_POLL = 16777216ULL, - REQ_F_APOLL_MULTISHOT = 33554432ULL, - REQ_F_CLEAR_POLLIN = 67108864ULL, - REQ_F_HASH_LOCKED = 134217728ULL, - REQ_F_POLL_NO_LAZY = 1073741824ULL, - REQ_F_CANCEL_SEQ = 2147483648ULL, - REQ_F_CAN_POLL = 4294967296ULL, - REQ_F_BL_EMPTY = 8589934592ULL, - REQ_F_BL_NO_RECYCLE = 17179869184ULL, -}; - -struct epoll_event { - __poll_t events; - __u64 data; -} __attribute__((packed)); - -struct io_epoll { - struct file *file; - int epfd; - int op; - int fd; - struct epoll_event event; -}; - -struct io_ring_ctx; - -struct io_wq; - -struct io_uring_task { - int cached_refs; - const struct io_ring_ctx *last; - struct io_wq *io_wq; - struct file *registered_rings[16]; - struct xarray xa; - struct wait_queue_head wait; - atomic_t in_cancel; - atomic_t inflight_tracked; - struct percpu_counter inflight; - long: 64; - long: 64; - long: 64; - long: 64; - struct { - struct llist_head task_list; - struct callback_head task_work; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; -}; - -struct io_wq_work_node; - -struct io_wq_work_list { - struct io_wq_work_node *first; - struct io_wq_work_node *last; -}; - -struct io_fixed_file; - -struct io_file_table { - struct io_fixed_file *files; - unsigned long *bitmap; - unsigned int alloc_hint; -}; - -struct io_wq_work_node { - struct io_wq_work_node *next; -}; - -struct io_kiocb; - -struct io_submit_link { - struct io_kiocb *head; - struct io_kiocb *last; -}; - -struct io_submit_state { - struct io_wq_work_node free_list; - struct io_wq_work_list compl_reqs; - struct io_submit_link link; - bool plug_started; - bool need_plug; - unsigned short submit_nr; - unsigned int cqes_count; - struct blk_plug plug; -}; - -struct io_hash_bucket; - -struct io_hash_table { - struct io_hash_bucket *hbs; - unsigned int hash_bits; -}; - -struct io_alloc_cache { - struct io_wq_work_node list; - unsigned int nr_cached; - unsigned int max_cached; - size_t elem_size; -}; - -struct io_uring_cqe { - __u64 user_data; - __s32 res; - __u32 flags; - __u64 big_cqe[0]; -}; - -struct io_restriction { - unsigned long register_op[1]; - unsigned long sqe_op[1]; - u8 sqe_flags_allowed; - u8 sqe_flags_required; - bool registered; -}; - -struct io_rings; - -struct io_uring_sqe; - -struct io_rsrc_node; - -struct io_mapped_ubuf; - -struct io_buffer_list; - -struct io_ev_fd; - -struct io_sq_data; - -struct io_rsrc_data; - -struct io_wq_hash; - -struct io_ring_ctx { - struct { - unsigned int flags; - unsigned int drain_next: 1; - unsigned int restricted: 1; - unsigned int off_timeout_used: 1; - unsigned int drain_active: 1; - unsigned int has_evfd: 1; - unsigned int task_complete: 1; - unsigned int lockless_cq: 1; - unsigned int syscall_iopoll: 1; - unsigned int poll_activated: 1; - unsigned int drain_disabled: 1; - unsigned int compat: 1; - unsigned int iowq_limits_set: 1; - struct task_struct *submitter_task; - struct io_rings *rings; - struct percpu_ref refs; - enum task_work_notify_mode notify_method; - unsigned int sq_thread_idle; - long: 64; - long: 64; - }; - struct { - struct mutex uring_lock; - u32 *sq_array; - struct io_uring_sqe *sq_sqes; - unsigned int cached_sq_head; - unsigned int sq_entries; - struct io_rsrc_node *rsrc_node; - atomic_t cancel_seq; - bool poll_multi_queue; - struct io_wq_work_list iopoll_list; - struct io_file_table file_table; - struct io_mapped_ubuf **user_bufs; - unsigned int nr_user_files; - unsigned int nr_user_bufs; - struct io_submit_state submit_state; - struct io_buffer_list *io_bl; - struct xarray io_bl_xa; - struct io_hash_table cancel_table_locked; - struct io_alloc_cache apoll_cache; - struct io_alloc_cache netmsg_cache; - struct hlist_head cancelable_uring_cmd; - long: 64; - long: 64; - }; - struct { - struct io_uring_cqe *cqe_cached; - struct io_uring_cqe *cqe_sentinel; - unsigned int cached_cq_tail; - unsigned int cq_entries; - struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd; - unsigned int cq_extra; - long: 64; - long: 64; - long: 64; - }; - struct { - struct llist_head work_llist; - unsigned long check_cq; - atomic_t cq_wait_nr; - atomic_t cq_timeouts; - struct wait_queue_head cq_wait; - long: 64; - long: 64; - long: 64; - }; - struct { - spinlock_t timeout_lock; - struct list_head timeout_list; - struct list_head ltimeout_list; - unsigned int cq_last_tm_flush; - long: 64; - long: 64; - long: 64; - }; - struct io_uring_cqe completion_cqes[16]; - spinlock_t completion_lock; - unsigned int locked_free_nr; - struct io_wq_work_list locked_free_list; - struct list_head io_buffers_comp; - struct list_head cq_overflow_list; - struct io_hash_table cancel_table; - struct hlist_head waitid_list; - struct hlist_head futex_list; - struct io_alloc_cache futex_cache; - const struct cred *sq_creds; - struct io_sq_data *sq_data; - struct wait_queue_head sqo_sq_wait; - struct list_head sqd_list; - unsigned int file_alloc_start; - unsigned int file_alloc_end; - struct list_head io_buffers_cache; - struct hlist_head io_buf_list; - struct wait_queue_head poll_wq; - struct io_restriction restrictions; - struct io_mapped_ubuf *dummy_ubuf; - struct io_rsrc_data *file_data; - struct io_rsrc_data *buf_data; - struct list_head rsrc_ref_list; - struct io_alloc_cache rsrc_node_cache; - struct wait_queue_head rsrc_quiesce_wq; - unsigned int rsrc_quiesce; - u32 pers_next; - struct xarray personalities; - struct io_wq_hash *hash_map; - struct user_struct *user; - struct mm_struct *mm_account; - struct llist_head fallback_llist; - struct delayed_work fallback_work; - struct work_struct exit_work; - struct list_head tctx_list; - struct completion ref_comp; - u32 iowq_limits[2]; - struct callback_head poll_wq_task_work; - struct list_head defer_list; - struct list_head napi_list; - spinlock_t napi_lock; - unsigned int napi_busy_poll_to; - bool napi_prefer_busy_poll; - bool napi_enabled; - struct hlist_head napi_ht[16]; - unsigned int evfd_last_cq_tail; - unsigned short n_ring_pages; - unsigned short n_sqe_pages; - struct page **ring_pages; - struct page **sqe_pages; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct io_uring { - u32 head; - u32 tail; -}; - -struct io_rings { - struct io_uring sq; - struct io_uring cq; - u32 sq_ring_mask; - u32 cq_ring_mask; - u32 sq_ring_entries; - u32 cq_ring_entries; - u32 sq_dropped; - atomic_t sq_flags; - u32 cq_flags; - u32 cq_overflow; - long: 64; - long: 64; - struct io_uring_cqe cqes[0]; -}; - -struct io_uring_sqe { - __u8 opcode; - __u8 flags; - __u16 ioprio; - __s32 fd; - union { - __u64 off; - __u64 addr2; - struct { - __u32 cmd_op; - __u32 __pad1; - }; - }; - union { - __u64 addr; - __u64 splice_off_in; - struct { - __u32 level; - __u32 optname; - }; - }; - __u32 len; - union { - __kernel_rwf_t rw_flags; - __u32 fsync_flags; - __u16 poll_events; - __u32 poll32_events; - __u32 sync_range_flags; - __u32 msg_flags; - __u32 timeout_flags; - __u32 accept_flags; - __u32 cancel_flags; - __u32 open_flags; - __u32 statx_flags; - __u32 fadvise_advice; - __u32 splice_flags; - __u32 rename_flags; - __u32 unlink_flags; - __u32 hardlink_flags; - __u32 xattr_flags; - __u32 msg_ring_flags; - __u32 uring_cmd_flags; - __u32 waitid_flags; - __u32 futex_flags; - __u32 install_fd_flags; - }; - __u64 user_data; - union { - __u16 buf_index; - __u16 buf_group; - }; - __u16 personality; - union { - __s32 splice_fd_in; - __u32 file_index; - __u32 optlen; - struct { - __u16 addr_len; - __u16 __pad3[1]; - }; - }; - union { - struct { - __u64 addr3; - __u64 __pad2[1]; - }; - __u64 optval; - __u8 cmd[0]; - }; -}; - -struct io_fixed_file { - unsigned long file_ptr; -}; - -struct io_cmd_data { - struct file *file; - __u8 data[56]; -}; - -typedef u64 io_req_flags_t; - -struct io_cqe { - __u64 user_data; - __s32 res; - union { - __u32 flags; - int fd; - }; -}; - -struct io_tw_state; - -typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); - -struct io_task_work { - struct llist_node node; - io_req_tw_func_t func; -}; - -struct io_wq_work { - struct io_wq_work_node list; - unsigned int flags; - int cancel_seq; -}; - -struct io_buffer; - -struct async_poll; - -struct io_kiocb { - union { - struct file *file; - struct io_cmd_data cmd; - }; - u8 opcode; - u8 iopoll_completed; - u16 buf_index; - unsigned int nr_tw; - io_req_flags_t flags; - struct io_cqe cqe; - struct io_ring_ctx *ctx; - struct task_struct *task; - union { - struct io_mapped_ubuf *imu; - struct io_buffer *kbuf; - struct io_buffer_list *buf_list; - }; - union { - struct io_wq_work_node comp_list; - __poll_t apoll_events; - }; - struct io_rsrc_node *rsrc_node; - atomic_t refs; - atomic_t poll_refs; - struct io_task_work io_task_work; - struct hlist_node hash_node; - struct async_poll *apoll; - void *async_data; - struct io_kiocb *link; - const struct cred *creds; - struct io_wq_work work; - struct { - u64 extra1; - u64 extra2; - } big_cqe; -}; - -struct io_tw_state { - bool locked; -}; - -struct io_hash_bucket { - spinlock_t lock; - struct hlist_head list; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct io_ev_fd { - struct eventfd_ctx *cq_ev_fd; - unsigned int eventfd_async: 1; - struct callback_head rcu; - atomic_t refs; - atomic_t ops; -}; - -struct io_wq_hash { - refcount_t refs; - unsigned long map; - struct wait_queue_head wait; -}; - -typedef unsigned long mpi_limb_t; - -typedef mpi_limb_t *mpi_ptr_t; - -typedef int mpi_size_t; - -struct gcry_mpi; - -typedef struct gcry_mpi *MPI; - -struct mpi_ec_ctx; - -struct field_table { - const char *p; - void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*mul2)(MPI, MPI, struct mpi_ec_ctx *); - void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *); -}; - -struct gcry_mpi { - int alloced; - int nlimbs; - int nbits; - int sign; - unsigned int flags; - mpi_limb_t *d; -}; - -struct barrett_ctx_s; - -typedef struct barrett_ctx_s *mpi_barrett_t; - -enum gcry_mpi_ec_models { - MPI_EC_WEIERSTRASS = 0, - MPI_EC_MONTGOMERY = 1, - MPI_EC_EDWARDS = 2, -}; - -enum ecc_dialects { - ECC_DIALECT_STANDARD = 0, - ECC_DIALECT_ED25519 = 1, - ECC_DIALECT_SAFECURVE = 2, -}; - -struct gcry_mpi_point; - -typedef struct gcry_mpi_point *MPI_POINT; - -struct mpi_ec_ctx { - enum gcry_mpi_ec_models model; - enum ecc_dialects dialect; - int flags; - unsigned int nbits; - MPI p; - MPI a; - MPI b; - MPI_POINT G; - MPI n; - unsigned int h; - MPI_POINT Q; - MPI d; - const char *name; - struct { - struct { - unsigned int a_is_pminus3: 1; - unsigned int two_inv_p: 1; - } valid; - int a_is_pminus3; - MPI two_inv_p; - mpi_barrett_t p_barrett; - MPI scratch[11]; - } t; - void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *); - void (*mul2)(MPI, MPI, struct mpi_ec_ctx *); -}; - -struct gcry_mpi_point { - MPI x; - MPI y; - MPI z; -}; - -enum gcry_mpi_constants { - MPI_C_ZERO = 0, - MPI_C_ONE = 1, - MPI_C_TWO = 2, - MPI_C_THREE = 3, - MPI_C_FOUR = 4, - MPI_C_EIGHT = 5, -}; - -typedef unsigned long ulong; - -typedef u8 uint8_t; - -struct xxh32_state { - uint32_t total_len_32; - uint32_t large_len; - uint32_t v1; - uint32_t v2; - uint32_t v3; - uint32_t v4; - uint32_t mem32[4]; - uint32_t memsize; -}; - -struct xxh64_state { - uint64_t total_len; - uint64_t v1; - uint64_t v2; - uint64_t v3; - uint64_t v4; - uint64_t mem64[4]; - uint32_t memsize; -}; - -typedef uint32_t U32; - -typedef uint64_t U64; - -typedef uint8_t BYTE; - -typedef u16 uint16_t; - -typedef uint16_t U16; - -typedef __kernel_long_t __kernel_ptrdiff_t; - -typedef __kernel_ptrdiff_t ptrdiff_t; - -typedef struct { - const BYTE *nextSrc; - const BYTE *base; - const BYTE *dictBase; - U32 dictLimit; - U32 lowLimit; - U32 nbOverflowCorrections; -} ZSTD_window_t; - -typedef struct { - U32 off; - U32 len; -} ZSTD_match_t; - -typedef struct { - int price; - U32 off; - U32 mlen; - U32 litlen; - U32 rep[3]; -} ZSTD_optimal_t; - -typedef enum { - zop_dynamic = 0, - zop_predef = 1, -} ZSTD_OptPrice_e; - -typedef size_t HUF_CElt; - -typedef enum { - HUF_repeat_none = 0, - HUF_repeat_check = 1, - HUF_repeat_valid = 2, -} HUF_repeat; - -typedef struct { - HUF_CElt CTable[257]; - HUF_repeat repeatMode; -} ZSTD_hufCTables_t; - -typedef unsigned int FSE_CTable; - -typedef enum { - FSE_repeat_none = 0, - FSE_repeat_check = 1, - FSE_repeat_valid = 2, -} FSE_repeat; - -typedef struct { - FSE_CTable offcodeCTable[193]; - FSE_CTable matchlengthCTable[363]; - FSE_CTable litlengthCTable[329]; - FSE_repeat offcode_repeatMode; - FSE_repeat matchlength_repeatMode; - FSE_repeat litlength_repeatMode; -} ZSTD_fseCTables_t; - -typedef struct { - ZSTD_hufCTables_t huf; - ZSTD_fseCTables_t fse; -} ZSTD_entropyCTables_t; - -typedef enum { - ZSTD_ps_auto = 0, - ZSTD_ps_enable = 1, - ZSTD_ps_disable = 2, -} ZSTD_paramSwitch_e; - -typedef struct { - unsigned int *litFreq; - unsigned int *litLengthFreq; - unsigned int *matchLengthFreq; - unsigned int *offCodeFreq; - ZSTD_match_t *matchTable; - ZSTD_optimal_t *priceTable; - U32 litSum; - U32 litLengthSum; - U32 matchLengthSum; - U32 offCodeSum; - U32 litSumBasePrice; - U32 litLengthSumBasePrice; - U32 matchLengthSumBasePrice; - U32 offCodeSumBasePrice; - ZSTD_OptPrice_e priceType; - const ZSTD_entropyCTables_t *symbolCosts; - ZSTD_paramSwitch_e literalCompressionMode; -} optState_t; - -typedef enum { - ZSTD_fast = 1, - ZSTD_dfast = 2, - ZSTD_greedy = 3, - ZSTD_lazy = 4, - ZSTD_lazy2 = 5, - ZSTD_btlazy2 = 6, - ZSTD_btopt = 7, - ZSTD_btultra = 8, - ZSTD_btultra2 = 9, -} ZSTD_strategy; - -typedef struct { - unsigned int windowLog; - unsigned int chainLog; - unsigned int hashLog; - unsigned int searchLog; - unsigned int minMatch; - unsigned int targetLength; - ZSTD_strategy strategy; -} ZSTD_compressionParameters; - -typedef struct { - U32 offset; - U32 litLength; - U32 matchLength; -} rawSeq; - -typedef struct { - rawSeq *seq; - size_t pos; - size_t posInSequence; - size_t size; - size_t capacity; -} rawSeqStore_t; - -struct ZSTD_matchState_t; - -typedef struct ZSTD_matchState_t ZSTD_matchState_t; - -struct ZSTD_matchState_t { - ZSTD_window_t window; - U32 loadedDictEnd; - U32 nextToUpdate; - U32 hashLog3; - U32 rowHashLog; - U16 *tagTable; - U32 hashCache[8]; - U32 *hashTable; - U32 *hashTable3; - U32 *chainTable; - U32 forceNonContiguous; - int dedicatedDictSearch; - optState_t opt; - const ZSTD_matchState_t *dictMatchState; - ZSTD_compressionParameters cParams; - const rawSeqStore_t *ldmSeqStore; -}; - -typedef enum { - ZSTD_llt_none = 0, - ZSTD_llt_literalLength = 1, - ZSTD_llt_matchLength = 2, -} ZSTD_longLengthType_e; - -struct seqDef_s; - -typedef struct seqDef_s seqDef; - -typedef struct { - seqDef *sequencesStart; - seqDef *sequences; - BYTE *litStart; - BYTE *lit; - BYTE *llCode; - BYTE *mlCode; - BYTE *ofCode; - size_t maxNbSeq; - size_t maxNbLit; - ZSTD_longLengthType_e longLengthType; - U32 longLengthPos; -} seqStore_t; - -struct seqDef_s { - U32 offBase; - U16 litLength; - U16 mlBase; -}; - -typedef enum { - ZSTD_no_overlap = 0, - ZSTD_overlap_src_before_dst = 1, -} ZSTD_overlap_e; - -typedef enum { - ZSTD_dtlm_fast = 0, - ZSTD_dtlm_full = 1, -} ZSTD_dictTableLoadMethod_e; - -struct broken_edid { - u8 manufacturer[4]; - u32 model; - u32 fix; -}; - -struct fb_chroma { - __u32 redx; - __u32 greenx; - __u32 bluex; - __u32 whitex; - __u32 redy; - __u32 greeny; - __u32 bluey; - __u32 whitey; -}; - -struct fb_videomode; - -struct fb_monspecs { - struct fb_chroma chroma; - struct fb_videomode *modedb; - __u8 manufacturer[4]; - __u8 monitor[14]; - __u8 serial_no[14]; - __u8 ascii[14]; - __u32 modedb_len; - __u32 model; - __u32 serial; - __u32 year; - __u32 week; - __u32 hfmin; - __u32 hfmax; - __u32 dclkmin; - __u32 dclkmax; - __u16 input; - __u16 dpms; - __u16 signal; - __u16 vfmin; - __u16 vfmax; - __u16 gamma; - __u16 gtf: 1; - __u16 misc; - __u8 version; - __u8 revision; - __u8 max_x; - __u8 max_y; -}; - -struct fb_videomode { - const char *name; - u32 refresh; - u32 xres; - u32 yres; - u32 pixclock; - u32 left_margin; - u32 right_margin; - u32 upper_margin; - u32 lower_margin; - u32 hsync_len; - u32 vsync_len; - u32 sync; - u32 vmode; - u32 flag; -}; - -struct fb_bitfield { - __u32 offset; - __u32 length; - __u32 msb_right; -}; - -struct fb_var_screeninfo { - __u32 xres; - __u32 yres; - __u32 xres_virtual; - __u32 yres_virtual; - __u32 xoffset; - __u32 yoffset; - __u32 bits_per_pixel; - __u32 grayscale; - struct fb_bitfield red; - struct fb_bitfield green; - struct fb_bitfield blue; - struct fb_bitfield transp; - __u32 nonstd; - __u32 activate; - __u32 height; - __u32 width; - __u32 accel_flags; - __u32 pixclock; - __u32 left_margin; - __u32 right_margin; - __u32 upper_margin; - __u32 lower_margin; - __u32 hsync_len; - __u32 vsync_len; - __u32 sync; - __u32 vmode; - __u32 rotate; - __u32 colorspace; - __u32 reserved[4]; -}; - -struct __fb_timings { - u32 dclk; - u32 hfreq; - u32 vfreq; - u32 hactive; - u32 vactive; - u32 hblank; - u32 vblank; - u32 htotal; - u32 vtotal; -}; - -struct fb_fix_screeninfo { - char id[16]; - unsigned long smem_start; - __u32 smem_len; - __u32 type; - __u32 type_aux; - __u32 visual; - __u16 xpanstep; - __u16 ypanstep; - __u16 ywrapstep; - __u32 line_length; - unsigned long mmio_start; - __u32 mmio_len; - __u32 accel; - __u16 capabilities; - __u16 reserved[2]; -}; - -struct fb_info; - -struct fb_pixmap { - u8 *addr; - u32 size; - u32 offset; - u32 buf_align; - u32 scan_align; - u32 access_align; - u32 flags; - unsigned long blit_x[1]; - unsigned long blit_y[2]; - void (*writeio)(struct fb_info *, void *, void *, unsigned int); - void (*readio)(struct fb_info *, void *, void *, unsigned int); -}; - -struct fb_cmap { - __u32 start; - __u32 len; - __u16 *red; - __u16 *green; - __u16 *blue; - __u16 *transp; -}; - -struct fb_ops; - -struct fb_info { - refcount_t count; - int node; - int flags; - int fbcon_rotate_hint; - struct mutex lock; - struct mutex mm_lock; - struct fb_var_screeninfo var; - struct fb_fix_screeninfo fix; - struct fb_monspecs monspecs; - struct fb_pixmap pixmap; - struct fb_pixmap sprite; - struct fb_cmap cmap; - struct list_head modelist; - struct fb_videomode *mode; - const struct fb_ops *fbops; - struct device *device; - struct device *dev; - int class_flag; - union { - char *screen_base; - char *screen_buffer; - }; - unsigned long screen_size; - void *pseudo_palette; - u32 state; - void *fbcon_par; - void *par; - bool skip_vt_switch; -}; - -struct fb_fillrect; - -struct fb_copyarea; - -struct fb_image; - -struct fb_cursor; - -struct fb_blit_caps; - -struct fb_ops { - struct module *owner; - int (*fb_open)(struct fb_info *, int); - int (*fb_release)(struct fb_info *, int); - ssize_t (*fb_read)(struct fb_info *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*fb_write)(struct fb_info *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - int (*fb_check_var)(struct fb_var_screeninfo *, struct fb_info *); - int (*fb_set_par)(struct fb_info *); - int (*fb_setcolreg)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, struct fb_info *); - int (*fb_setcmap)(struct fb_cmap *, struct fb_info *); - int (*fb_blank)(int, struct fb_info *); - int (*fb_pan_display)(struct fb_var_screeninfo *, struct fb_info *); - void (*fb_fillrect)(struct fb_info *, const struct fb_fillrect *); - void (*fb_copyarea)(struct fb_info *, const struct fb_copyarea *); - void (*fb_imageblit)(struct fb_info *, const struct fb_image *); - int (*fb_cursor)(struct fb_info *, struct fb_cursor *); - int (*fb_sync)(struct fb_info *); - int (*fb_ioctl)(struct fb_info *, unsigned int, unsigned long); - int (*fb_compat_ioctl)(struct fb_info *, unsigned int, unsigned long); - int (*fb_mmap)(struct fb_info *, struct vm_area_struct *); - void (*fb_get_caps)(struct fb_info *, struct fb_blit_caps *, struct fb_var_screeninfo *); - void (*fb_destroy)(struct fb_info *); - int (*fb_debug_enter)(struct fb_info *); - int (*fb_debug_leave)(struct fb_info *); -}; - -struct fb_fillrect { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 color; - __u32 rop; -}; - -struct fb_copyarea { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 sx; - __u32 sy; -}; - -struct fb_image { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 fg_color; - __u32 bg_color; - __u8 depth; - const char *data; - struct fb_cmap cmap; -}; - -struct fbcurpos { - __u16 x; - __u16 y; -}; - -struct fb_cursor { - __u16 set; - __u16 enable; - __u16 rop; - const char *mask; - struct fbcurpos hot; - struct fb_image image; -}; - -struct fb_blit_caps { - unsigned long x[1]; - unsigned long y[2]; - u32 len; - u32 flags; -}; - -union acpi_name_union { - u32 integer; - char ascii[4]; -}; - -typedef u16 acpi_owner_id; - -union acpi_operand_object; - -struct acpi_namespace_node { - union acpi_operand_object *object; - u8 descriptor_type; - u8 type; - u16 flags; - union acpi_name_union name; - struct acpi_namespace_node *parent; - struct acpi_namespace_node *child; - struct acpi_namespace_node *peer; - acpi_owner_id owner_id; -}; - -struct acpi_object_common { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; -}; - -struct acpi_object_integer { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 fill[3]; - u64 value; -}; - -struct acpi_object_string { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - char *pointer; - u32 length; -}; - -struct acpi_object_buffer { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 *pointer; - u32 length; - u32 aml_length; - u8 *aml_start; - struct acpi_namespace_node *node; -}; - -struct acpi_object_package { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - struct acpi_namespace_node *node; - union acpi_operand_object **elements; - u8 *aml_start; - u32 aml_length; - u32 count; -}; - -struct acpi_object_event { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - void *os_semaphore; -}; - -struct acpi_walk_state; - -typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); - -struct acpi_object_method { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 info_flags; - u8 param_count; - u8 sync_level; - union acpi_operand_object *mutex; - union acpi_operand_object *node; - u8 *aml_start; - union { - acpi_internal_method implementation; - union acpi_operand_object *handler; - } dispatch; - u32 aml_length; - acpi_owner_id owner_id; - u8 thread_count; -}; - -struct acpi_thread_state; - -struct acpi_object_mutex { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 sync_level; - u16 acquisition_depth; - void *os_mutex; - u64 thread_id; - struct acpi_thread_state *owner_thread; - union acpi_operand_object *prev; - union acpi_operand_object *next; - struct acpi_namespace_node *node; - u8 original_sync_level; -}; - -typedef u64 acpi_physical_address; - -struct acpi_object_region { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 space_id; - struct acpi_namespace_node *node; - union acpi_operand_object *handler; - union acpi_operand_object *next; - acpi_physical_address address; - u32 length; - void *pointer; -}; - -struct acpi_object_notify_common { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *notify_list[2]; - union acpi_operand_object *handler; -}; - -struct acpi_gpe_block_info; - -struct acpi_object_device { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *notify_list[2]; - union acpi_operand_object *handler; - struct acpi_gpe_block_info *gpe_block; -}; - -struct acpi_object_power_resource { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *notify_list[2]; - union acpi_operand_object *handler; - u32 system_level; - u32 resource_order; -}; - -struct acpi_object_processor { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 proc_id; - u8 length; - union acpi_operand_object *notify_list[2]; - union acpi_operand_object *handler; - acpi_io_address address; -}; - -struct acpi_object_thermal_zone { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *notify_list[2]; - union acpi_operand_object *handler; -}; - -struct acpi_object_field_common { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 field_flags; - u8 attribute; - u8 access_byte_width; - struct acpi_namespace_node *node; - u32 bit_length; - u32 base_byte_offset; - u32 value; - u8 start_field_bit_offset; - u8 access_length; - union acpi_operand_object *region_obj; -}; - -struct acpi_object_region_field { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 field_flags; - u8 attribute; - u8 access_byte_width; - struct acpi_namespace_node *node; - u32 bit_length; - u32 base_byte_offset; - u32 value; - u8 start_field_bit_offset; - u8 access_length; - u16 resource_length; - union acpi_operand_object *region_obj; - u8 *resource_buffer; - u16 pin_number_index; - u8 *internal_pcc_buffer; -}; - -struct acpi_object_buffer_field { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 field_flags; - u8 attribute; - u8 access_byte_width; - struct acpi_namespace_node *node; - u32 bit_length; - u32 base_byte_offset; - u32 value; - u8 start_field_bit_offset; - u8 access_length; - u8 is_create_field; - union acpi_operand_object *buffer_obj; -}; - -struct acpi_object_bank_field { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 field_flags; - u8 attribute; - u8 access_byte_width; - struct acpi_namespace_node *node; - u32 bit_length; - u32 base_byte_offset; - u32 value; - u8 start_field_bit_offset; - u8 access_length; - union acpi_operand_object *region_obj; - union acpi_operand_object *bank_obj; -}; - -struct acpi_object_index_field { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 field_flags; - u8 attribute; - u8 access_byte_width; - struct acpi_namespace_node *node; - u32 bit_length; - u32 base_byte_offset; - u32 value; - u8 start_field_bit_offset; - u8 access_length; - union acpi_operand_object *index_obj; - union acpi_operand_object *data_obj; -}; - -typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); - -struct acpi_object_notify_handler { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - struct acpi_namespace_node *node; - u32 handler_type; - acpi_notify_handler handler; - void *context; - union acpi_operand_object *next[2]; -}; - -typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); - -typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); - -struct acpi_object_addr_handler { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 space_id; - u8 handler_flags; - acpi_adr_space_handler handler; - struct acpi_namespace_node *node; - void *context; - void *context_mutex; - acpi_adr_space_setup setup; - union acpi_operand_object *region_list; - union acpi_operand_object *next; -}; - -struct acpi_object_reference { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 class; - u8 target_type; - u8 resolved; - void *object; - struct acpi_namespace_node *node; - union acpi_operand_object **where; - u8 *index_pointer; - u8 *aml; - u32 value; -}; - -struct acpi_object_extra { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - struct acpi_namespace_node *method_REG; - struct acpi_namespace_node *scope_node; - void *region_context; - u8 *aml_start; - u32 aml_length; -}; - -typedef void (*acpi_object_handler)(acpi_handle, void *); - -struct acpi_object_data { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - acpi_object_handler handler; - void *pointer; -}; - -struct acpi_object_cache_list { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *next; -}; - -union acpi_operand_object { - struct acpi_object_common common; - struct acpi_object_integer integer; - struct acpi_object_string string; - struct acpi_object_buffer buffer; - struct acpi_object_package package; - struct acpi_object_event event; - struct acpi_object_method method; - struct acpi_object_mutex mutex; - struct acpi_object_region region; - struct acpi_object_notify_common common_notify; - struct acpi_object_device device; - struct acpi_object_power_resource power_resource; - struct acpi_object_processor processor; - struct acpi_object_thermal_zone thermal_zone; - struct acpi_object_field_common common_field; - struct acpi_object_region_field field; - struct acpi_object_buffer_field buffer_field; - struct acpi_object_bank_field bank_field; - struct acpi_object_index_field index_field; - struct acpi_object_notify_handler notify; - struct acpi_object_addr_handler address_space; - struct acpi_object_reference reference; - struct acpi_object_extra extra; - struct acpi_object_data data; - struct acpi_object_cache_list cache; - struct acpi_namespace_node node; -}; - -union acpi_parse_object; - -union acpi_generic_state; - -struct acpi_parse_state { - u8 *aml_start; - u8 *aml; - u8 *aml_end; - u8 *pkg_start; - u8 *pkg_end; - union acpi_parse_object *start_op; - struct acpi_namespace_node *start_node; - union acpi_generic_state *scope; - union acpi_parse_object *start_scope; - u32 aml_size; -}; - -typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); - -typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); - -struct acpi_opcode_info; - -struct acpi_walk_state { - struct acpi_walk_state *next; - u8 descriptor_type; - u8 walk_type; - u16 opcode; - u8 next_op_info; - u8 num_operands; - u8 operand_index; - acpi_owner_id owner_id; - u8 last_predicate; - u8 current_result; - u8 return_used; - u8 scope_depth; - u8 pass_number; - u8 namespace_override; - u8 result_size; - u8 result_count; - u8 *aml; - u32 arg_types; - u32 method_breakpoint; - u32 user_breakpoint; - u32 parse_flags; - struct acpi_parse_state parser_state; - u32 prev_arg_types; - u32 arg_count; - u16 method_nesting_depth; - u8 method_is_nested; - struct acpi_namespace_node arguments[7]; - struct acpi_namespace_node local_variables[8]; - union acpi_operand_object *operands[9]; - union acpi_operand_object **params; - u8 *aml_last_while; - union acpi_operand_object **caller_return_desc; - union acpi_generic_state *control_state; - struct acpi_namespace_node *deferred_node; - union acpi_operand_object *implicit_return_obj; - struct acpi_namespace_node *method_call_node; - union acpi_parse_object *method_call_op; - union acpi_operand_object *method_desc; - struct acpi_namespace_node *method_node; - char *method_pathname; - union acpi_parse_object *op; - const struct acpi_opcode_info *op_info; - union acpi_parse_object *origin; - union acpi_operand_object *result_obj; - union acpi_generic_state *results; - union acpi_operand_object *return_desc; - union acpi_generic_state *scope_info; - union acpi_parse_object *prev_op; - union acpi_parse_object *next_op; - struct acpi_thread_state *thread; - acpi_parse_downwards descending_callback; - acpi_parse_upwards ascending_callback; -}; - -union acpi_parse_value { - u64 integer; - u32 size; - char *string; - u8 *buffer; - char *name; - union acpi_parse_object *arg; -}; - -struct acpi_parse_obj_common { - union acpi_parse_object *parent; - u8 descriptor_type; - u8 flags; - u16 aml_opcode; - u8 *aml; - union acpi_parse_object *next; - struct acpi_namespace_node *node; - union acpi_parse_value value; - u8 arg_list_length; -}; - -struct acpi_parse_obj_named { - union acpi_parse_object *parent; - u8 descriptor_type; - u8 flags; - u16 aml_opcode; - u8 *aml; - union acpi_parse_object *next; - struct acpi_namespace_node *node; - union acpi_parse_value value; - u8 arg_list_length; - char *path; - u8 *data; - u32 length; - u32 name; -}; - -struct acpi_parse_obj_asl { - union acpi_parse_object *parent; - u8 descriptor_type; - u8 flags; - u16 aml_opcode; - u8 *aml; - union acpi_parse_object *next; - struct acpi_namespace_node *node; - union acpi_parse_value value; - u8 arg_list_length; - union acpi_parse_object *child; - union acpi_parse_object *parent_method; - char *filename; - u8 file_changed; - char *parent_filename; - char *external_name; - char *namepath; - char name_seg[4]; - u32 extra_value; - u32 column; - u32 line_number; - u32 logical_line_number; - u32 logical_byte_offset; - u32 end_line; - u32 end_logical_line; - u32 acpi_btype; - u32 aml_length; - u32 aml_subtree_length; - u32 final_aml_length; - u32 final_aml_offset; - u32 compile_flags; - u16 parse_opcode; - u8 aml_opcode_length; - u8 aml_pkg_len_bytes; - u8 extra; - char parse_op_name[20]; -}; - -union acpi_parse_object { - struct acpi_parse_obj_common common; - struct acpi_parse_obj_named named; - struct acpi_parse_obj_asl asl; -}; - -struct acpi_common_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; -}; - -struct acpi_control_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - u16 opcode; - union acpi_parse_object *predicate_op; - u8 *aml_predicate_start; - u8 *package_end; - u64 loop_timeout; -}; - -struct acpi_update_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *object; -}; - -struct acpi_scope_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - struct acpi_namespace_node *node; -}; - -struct acpi_pscope_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - u32 arg_count; - union acpi_parse_object *op; - u8 *arg_end; - u8 *pkg_end; - u32 arg_list; -}; - -struct acpi_pkg_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - u32 index; - union acpi_operand_object *source_object; - union acpi_operand_object *dest_object; - struct acpi_walk_state *walk_state; - void *this_target_obj; - u32 num_packages; -}; - -struct acpi_thread_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - u8 current_sync_level; - struct acpi_walk_state *walk_state_list; - union acpi_operand_object *acquired_mutex_list; - u64 thread_id; -}; - -struct acpi_result_values { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *obj_desc[8]; -}; - -struct acpi_global_notify_handler; - -struct acpi_notify_info { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - u8 handler_list_id; - struct acpi_namespace_node *node; - union acpi_operand_object *handler_list_head; - struct acpi_global_notify_handler *global; -}; - -union acpi_generic_state { - struct acpi_common_state common; - struct acpi_control_state control; - struct acpi_update_state update; - struct acpi_scope_state scope; - struct acpi_pscope_state parse_scope; - struct acpi_pkg_state pkg; - struct acpi_thread_state thread; - struct acpi_result_values results; - struct acpi_notify_info notify; -}; - -struct acpi_global_notify_handler { - acpi_notify_handler handler; - void *context; -}; - -struct acpi_opcode_info { - u32 parse_args; - u32 runtime_args; - u16 flags; - u8 object_type; - u8 class; - u8 type; -}; - -struct acpi_gpe_xrupt_info; - -struct acpi_gpe_register_info; - -struct acpi_gpe_event_info; - -struct acpi_gpe_block_info { - struct acpi_namespace_node *node; - struct acpi_gpe_block_info *previous; - struct acpi_gpe_block_info *next; - struct acpi_gpe_xrupt_info *xrupt_block; - struct acpi_gpe_register_info *register_info; - struct acpi_gpe_event_info *event_info; - u64 address; - u32 register_count; - u16 gpe_count; - u16 block_base_number; - u8 space_id; - u8 initialized; -}; - -struct acpi_gpe_xrupt_info { - struct acpi_gpe_xrupt_info *previous; - struct acpi_gpe_xrupt_info *next; - struct acpi_gpe_block_info *gpe_block_list_head; - u32 interrupt_number; -}; - -struct acpi_gpe_address { - u8 space_id; - u64 address; -}; - -struct acpi_gpe_register_info { - struct acpi_gpe_address status_address; - struct acpi_gpe_address enable_address; - u16 base_gpe_number; - u8 enable_for_wake; - u8 enable_for_run; - u8 mask_for_run; - u8 enable_mask; -}; - -struct acpi_gpe_handler_info; - -struct acpi_gpe_notify_info; - -union acpi_gpe_dispatch_info { - struct acpi_namespace_node *method_node; - struct acpi_gpe_handler_info *handler; - struct acpi_gpe_notify_info *notify_list; -}; - -struct acpi_gpe_event_info { - union acpi_gpe_dispatch_info dispatch; - struct acpi_gpe_register_info *register_info; - u8 flags; - u8 gpe_number; - u8 runtime_count; - u8 disable_for_dispatch; -}; - -typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *); - -struct acpi_gpe_handler_info { - acpi_gpe_handler address; - void *context; - struct acpi_namespace_node *method_node; - u8 original_flags; - u8 originally_enabled; -}; - -struct acpi_gpe_notify_info { - struct acpi_namespace_node *device_node; - struct acpi_gpe_notify_info *next; -}; - -typedef u32 acpi_mutex_handle; - -typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); - -struct clk_hw; - -struct clk_rate_request; - -struct clk_duty; - -struct clk_ops { - int (*prepare)(struct clk_hw *); - void (*unprepare)(struct clk_hw *); - int (*is_prepared)(struct clk_hw *); - void (*unprepare_unused)(struct clk_hw *); - int (*enable)(struct clk_hw *); - void (*disable)(struct clk_hw *); - int (*is_enabled)(struct clk_hw *); - void (*disable_unused)(struct clk_hw *); - int (*save_context)(struct clk_hw *); - void (*restore_context)(struct clk_hw *); - unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); - long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); - int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); - int (*set_parent)(struct clk_hw *, u8); - u8 (*get_parent)(struct clk_hw *); - int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); - int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); - unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); - int (*get_phase)(struct clk_hw *); - int (*set_phase)(struct clk_hw *, int); - int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*init)(struct clk_hw *); - void (*terminate)(struct clk_hw *); - void (*debug_init)(struct clk_hw *, struct dentry *); -}; - -struct clk_core; - -struct clk; - -struct clk_init_data; - -struct clk_hw { - struct clk_core *core; - struct clk *clk; - const struct clk_init_data *init; -}; - -struct clk_parent_data; - -struct clk_init_data { - const char *name; - const struct clk_ops *ops; - const char * const *parent_names; - const struct clk_parent_data *parent_data; - const struct clk_hw **parent_hws; - u8 num_parents; - unsigned long flags; -}; - -struct clk_parent_data { - const struct clk_hw *hw; - const char *fw_name; - const char *name; - int index; -}; - -struct clk_rate_request { - struct clk_core *core; - unsigned long rate; - unsigned long min_rate; - unsigned long max_rate; - unsigned long best_parent_rate; - struct clk_hw *best_parent_hw; -}; - -struct clk_duty { - unsigned int num; - unsigned int den; -}; - -struct clk_fixed_rate { - struct clk_hw hw; - unsigned long fixed_rate; - unsigned long fixed_accuracy; - unsigned long flags; -}; - -typedef void (*dr_release_t)(struct device *, void *); - -struct virtio_device_id; - -struct virtio_device; - -struct virtio_driver { - struct device_driver driver; - const struct virtio_device_id *id_table; - const unsigned int *feature_table; - unsigned int feature_table_size; - const unsigned int *feature_table_legacy; - unsigned int feature_table_size_legacy; - int (*validate)(struct virtio_device *); - int (*probe)(struct virtio_device *); - void (*scan)(struct virtio_device *); - void (*remove)(struct virtio_device *); - void (*config_changed)(struct virtio_device *); - int (*freeze)(struct virtio_device *); - int (*restore)(struct virtio_device *); -}; - -struct virtio_device_id { - __u32 device; - __u32 vendor; -}; - -struct vringh_config_ops; - -struct virtio_config_ops; - -struct virtio_device { - int index; - bool failed; - bool config_enabled; - bool config_change_pending; - spinlock_t config_lock; - spinlock_t vqs_list_lock; - struct device dev; - struct virtio_device_id id; - const struct virtio_config_ops *config; - const struct vringh_config_ops *vringh_config; - struct list_head vqs; - u64 features; - void *priv; -}; - -struct virtqueue; - -typedef void vq_callback_t(struct virtqueue *); - -struct irq_affinity; - -struct virtio_shm_region; - -struct virtio_config_ops { - void (*get)(struct virtio_device *, unsigned int, void *, unsigned int); - void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int); - u32 (*generation)(struct virtio_device *); - u8 (*get_status)(struct virtio_device *); - void (*set_status)(struct virtio_device *, u8); - void (*reset)(struct virtio_device *); - int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *); - void (*del_vqs)(struct virtio_device *); - void (*synchronize_cbs)(struct virtio_device *); - u64 (*get_features)(struct virtio_device *); - int (*finalize_features)(struct virtio_device *); - const char * (*bus_name)(struct virtio_device *); - int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *); - const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int); - bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8); - int (*disable_vq_and_reset)(struct virtqueue *); - int (*enable_vq_after_reset)(struct virtqueue *); - int (*create_avq)(struct virtio_device *); - void (*destroy_avq)(struct virtio_device *); -}; - -struct virtqueue { - struct list_head list; - void (*callback)(struct virtqueue *); - const char *name; - struct virtio_device *vdev; - unsigned int index; - unsigned int num_free; - unsigned int num_max; - bool reset; - void *priv; -}; - -struct irq_affinity { - unsigned int pre_vectors; - unsigned int post_vectors; - unsigned int nr_sets; - unsigned int set_size[4]; - void (*calc_sets)(struct irq_affinity *, unsigned int); - void *priv; -}; - -struct virtio_shm_region { - u64 addr; - u64 len; -}; - -enum hctx_type { - HCTX_TYPE_DEFAULT = 0, - HCTX_TYPE_READ = 1, - HCTX_TYPE_POLL = 2, - HCTX_MAX_TYPES = 3, -}; - -enum string_size_units { - STRING_UNITS_10 = 0, - STRING_UNITS_2 = 1, - STRING_UNITS_MASK = 1, - STRING_UNITS_NO_SPACE = 1073741824, - STRING_UNITS_NO_BYTES = 2147483648, -}; - -struct virtio_blk_vq; - -struct virtio_blk { - struct mutex vdev_mutex; - struct virtio_device *vdev; - struct gendisk *disk; - struct blk_mq_tag_set tag_set; - struct work_struct config_work; - int index; - int num_vqs; - int io_queues[3]; - struct virtio_blk_vq *vqs; - unsigned int zone_sectors; -}; - -struct virtio_blk_vq { - struct virtqueue *vq; - spinlock_t lock; - char name[16]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -typedef __u32 __virtio32; - -typedef __u64 __virtio64; - -typedef __u16 __virtio16; - -struct virtio_blk_outhdr { - __virtio32 type; - __virtio32 ioprio; - __virtio64 sector; -}; - -struct virtblk_req { - struct virtio_blk_outhdr out_hdr; - union { - u8 status; - struct { - __virtio64 sector; - u8 status; - } zone_append; - } in_hdr; - size_t in_hdr_len; - struct sg_table sg_table; - struct scatterlist sg[0]; -}; - -struct virtio_blk_discard_write_zeroes { - __le64 sector; - __le32 num_sectors; - __le32 flags; -}; - -enum e1000_mac_type { - e1000_undefined = 0, - e1000_82575 = 1, - e1000_82576 = 2, - e1000_82580 = 3, - e1000_i350 = 4, - e1000_i354 = 5, - e1000_i210 = 6, - e1000_i211 = 7, - e1000_num_macs = 8, -}; - -enum e1000_fc_mode { - e1000_fc_none = 0, - e1000_fc_rx_pause = 1, - e1000_fc_tx_pause = 2, - e1000_fc_full = 3, - e1000_fc_default = 255, -}; - -enum e1000_phy_type { - e1000_phy_unknown = 0, - e1000_phy_none = 1, - e1000_phy_m88 = 2, - e1000_phy_igp = 3, - e1000_phy_igp_2 = 4, - e1000_phy_gg82563 = 5, - e1000_phy_igp_3 = 6, - e1000_phy_ife = 7, - e1000_phy_82580 = 8, - e1000_phy_i210 = 9, - e1000_phy_bcm54616 = 10, -}; - -enum e1000_1000t_rx_status { - e1000_1000t_rx_status_not_ok = 0, - e1000_1000t_rx_status_ok = 1, - e1000_1000t_rx_status_undefined = 255, -}; - -enum e1000_ms_type { - e1000_ms_hw_default = 0, - e1000_ms_force_master = 1, - e1000_ms_force_slave = 2, - e1000_ms_auto = 3, -}; - -enum e1000_rev_polarity { - e1000_rev_polarity_normal = 0, - e1000_rev_polarity_reversed = 1, - e1000_rev_polarity_undefined = 255, -}; - -enum e1000_smart_speed { - e1000_smart_speed_default = 0, - e1000_smart_speed_on = 1, - e1000_smart_speed_off = 2, -}; - -enum e1000_media_type { - e1000_media_type_unknown = 0, - e1000_media_type_copper = 1, - e1000_media_type_fiber = 2, - e1000_media_type_internal_serdes = 3, - e1000_num_media_types = 4, -}; - -enum e1000_nvm_type { - e1000_nvm_unknown = 0, - e1000_nvm_none = 1, - e1000_nvm_eeprom_spi = 2, - e1000_nvm_flash_hw = 3, - e1000_nvm_invm = 4, - e1000_nvm_flash_sw = 5, -}; - -enum e1000_nvm_override { - e1000_nvm_override_none = 0, - e1000_nvm_override_spi_small = 1, - e1000_nvm_override_spi_large = 2, -}; - -enum e1000_bus_type { - e1000_bus_type_unknown = 0, - e1000_bus_type_pci = 1, - e1000_bus_type_pcix = 2, - e1000_bus_type_pci_express = 3, - e1000_bus_type_reserved = 4, -}; - -enum e1000_bus_speed { - e1000_bus_speed_unknown = 0, - e1000_bus_speed_33 = 1, - e1000_bus_speed_66 = 2, - e1000_bus_speed_100 = 3, - e1000_bus_speed_120 = 4, - e1000_bus_speed_133 = 5, - e1000_bus_speed_2500 = 6, - e1000_bus_speed_5000 = 7, - e1000_bus_speed_reserved = 8, -}; - -enum e1000_bus_width { - e1000_bus_width_unknown = 0, - e1000_bus_width_pcie_x1 = 1, - e1000_bus_width_pcie_x2 = 2, - e1000_bus_width_pcie_x4 = 4, - e1000_bus_width_pcie_x8 = 8, - e1000_bus_width_32 = 9, - e1000_bus_width_64 = 10, - e1000_bus_width_reserved = 11, -}; - -struct e1000_sfp_flags { - u8 e1000_base_sx: 1; - u8 e1000_base_lx: 1; - u8 e1000_base_cx: 1; - u8 e1000_base_t: 1; - u8 e100_base_lx: 1; - u8 e100_base_fx: 1; - u8 e10_base_bx10: 1; - u8 e10_base_px: 1; -}; - -struct e1000_dev_spec_82575 { - bool sgmii_active; - bool global_device_reset; - bool eee_disable; - bool clear_semaphore_once; - struct e1000_sfp_flags eth_flags; - bool module_plugged; - u8 media_port; - bool media_changed; - bool mas_capable; -}; - -struct e1000_hw; - -struct e1000_mac_operations { - s32 (*check_for_link)(struct e1000_hw *); - s32 (*reset_hw)(struct e1000_hw *); - s32 (*init_hw)(struct e1000_hw *); - bool (*check_mng_mode)(struct e1000_hw *); - s32 (*setup_physical_interface)(struct e1000_hw *); - void (*rar_set)(struct e1000_hw *, u8 *, u32); - s32 (*read_mac_addr)(struct e1000_hw *); - s32 (*get_speed_and_duplex)(struct e1000_hw *, u16 *, u16 *); - s32 (*acquire_swfw_sync)(struct e1000_hw *, u16); - void (*release_swfw_sync)(struct e1000_hw *, u16); - s32 (*get_thermal_sensor_data)(struct e1000_hw *); - s32 (*init_thermal_sensor_thresh)(struct e1000_hw *); - void (*write_vfta)(struct e1000_hw *, u32, u32); -}; - -struct e1000_thermal_diode_data { - u8 location; - u8 temp; - u8 caution_thresh; - u8 max_op_thresh; -}; - -struct e1000_thermal_sensor_data { - struct e1000_thermal_diode_data sensor[3]; -}; - -struct e1000_mac_info { - struct e1000_mac_operations ops; - u8 addr[6]; - u8 perm_addr[6]; - enum e1000_mac_type type; - u32 ledctl_default; - u32 ledctl_mode1; - u32 ledctl_mode2; - u32 mc_filter_type; - u32 txcw; - u16 mta_reg_count; - u16 uta_reg_count; - u32 mta_shadow[128]; - u16 rar_entry_count; - u8 forced_speed_duplex; - bool adaptive_ifs; - bool arc_subsystem_valid; - bool asf_firmware_present; - bool autoneg; - bool autoneg_failed; - bool disable_hw_init_bits; - bool get_link_status; - bool ifs_params_forced; - bool in_ifs_mode; - bool report_tx_early; - bool serdes_has_link; - bool tx_pkt_filtering; - struct e1000_thermal_sensor_data thermal_sensor_data; -}; - -struct e1000_fc_info { - u32 high_water; - u32 low_water; - u16 pause_time; - bool send_xon; - bool strict_ieee; - enum e1000_fc_mode current_mode; - enum e1000_fc_mode requested_mode; -}; - -struct e1000_phy_operations { - s32 (*acquire)(struct e1000_hw *); - s32 (*check_polarity)(struct e1000_hw *); - s32 (*check_reset_block)(struct e1000_hw *); - s32 (*force_speed_duplex)(struct e1000_hw *); - s32 (*get_cfg_done)(struct e1000_hw *); - s32 (*get_cable_length)(struct e1000_hw *); - s32 (*get_phy_info)(struct e1000_hw *); - s32 (*read_reg)(struct e1000_hw *, u32, u16 *); - void (*release)(struct e1000_hw *); - s32 (*reset)(struct e1000_hw *); - s32 (*set_d0_lplu_state)(struct e1000_hw *, bool); - s32 (*set_d3_lplu_state)(struct e1000_hw *, bool); - s32 (*write_reg)(struct e1000_hw *, u32, u16); - s32 (*read_i2c_byte)(struct e1000_hw *, u8, u8, u8 *); - s32 (*write_i2c_byte)(struct e1000_hw *, u8, u8, u8); -}; - -struct e1000_phy_info { - struct e1000_phy_operations ops; - enum e1000_phy_type type; - enum e1000_1000t_rx_status local_rx; - enum e1000_1000t_rx_status remote_rx; - enum e1000_ms_type ms_type; - enum e1000_ms_type original_ms_type; - enum e1000_rev_polarity cable_polarity; - enum e1000_smart_speed smart_speed; - u32 addr; - u32 id; - u32 reset_delay_us; - u32 revision; - enum e1000_media_type media_type; - u16 autoneg_advertised; - u16 autoneg_mask; - u16 cable_length; - u16 max_cable_length; - u16 min_cable_length; - u16 pair_length[4]; - u8 mdix; - bool disable_polarity_correction; - bool is_mdix; - bool polarity_correction; - bool reset_disable; - bool speed_downgraded; - bool autoneg_wait_to_complete; -}; - -struct e1000_nvm_operations { - s32 (*acquire)(struct e1000_hw *); - s32 (*read)(struct e1000_hw *, u16, u16, u16 *); - void (*release)(struct e1000_hw *); - s32 (*write)(struct e1000_hw *, u16, u16, u16 *); - s32 (*update)(struct e1000_hw *); - s32 (*validate)(struct e1000_hw *); - s32 (*valid_led_default)(struct e1000_hw *, u16 *); -}; - -struct e1000_nvm_info { - struct e1000_nvm_operations ops; - enum e1000_nvm_type type; - enum e1000_nvm_override override; - u32 flash_bank_size; - u32 flash_base_addr; - u16 word_size; - u16 delay_usec; - u16 address_bits; - u16 opcode_bits; - u16 page_size; -}; - -struct e1000_bus_info { - enum e1000_bus_type type; - enum e1000_bus_speed speed; - enum e1000_bus_width width; - u32 snoop; - u16 func; - u16 pci_cmd_word; -}; - -struct e1000_mbx_operations { - s32 (*init_params)(struct e1000_hw *); - s32 (*read)(struct e1000_hw *, u32 *, u16, u16, bool); - s32 (*write)(struct e1000_hw *, u32 *, u16, u16); - s32 (*read_posted)(struct e1000_hw *, u32 *, u16, u16); - s32 (*write_posted)(struct e1000_hw *, u32 *, u16, u16); - s32 (*check_for_msg)(struct e1000_hw *, u16); - s32 (*check_for_ack)(struct e1000_hw *, u16); - s32 (*check_for_rst)(struct e1000_hw *, u16); - s32 (*unlock)(struct e1000_hw *, u16); -}; - -struct e1000_mbx_stats { - u32 msgs_tx; - u32 msgs_rx; - u32 acks; - u32 reqs; - u32 rsts; -}; - -struct e1000_mbx_info { - struct e1000_mbx_operations ops; - struct e1000_mbx_stats stats; - u32 timeout; - u32 usec_delay; - u16 size; -}; - -struct e1000_host_mng_dhcp_cookie { - u32 signature; - u8 status; - u8 reserved0; - u16 vlan_id; - u32 reserved1; - u16 reserved2; - u8 reserved3; - u8 checksum; -}; - -struct e1000_hw { - void *back; - u8 *hw_addr; - u8 *flash_address; - unsigned long io_base; - struct e1000_mac_info mac; - struct e1000_fc_info fc; - struct e1000_phy_info phy; - struct e1000_nvm_info nvm; - struct e1000_bus_info bus; - struct e1000_mbx_info mbx; - struct e1000_host_mng_dhcp_cookie mng_cookie; - union { - struct e1000_dev_spec_82575 _82575; - } dev_spec; - u16 device_id; - u16 subsystem_vendor_id; - u16 subsystem_device_id; - u16 vendor_id; - u8 revision_id; -}; - -enum ieee80211_channel_flags { - IEEE80211_CHAN_DISABLED = 1, - IEEE80211_CHAN_NO_IR = 2, - IEEE80211_CHAN_PSD = 4, - IEEE80211_CHAN_RADAR = 8, - IEEE80211_CHAN_NO_HT40PLUS = 16, - IEEE80211_CHAN_NO_HT40MINUS = 32, - IEEE80211_CHAN_NO_OFDM = 64, - IEEE80211_CHAN_NO_80MHZ = 128, - IEEE80211_CHAN_NO_160MHZ = 256, - IEEE80211_CHAN_INDOOR_ONLY = 512, - IEEE80211_CHAN_IR_CONCURRENT = 1024, - IEEE80211_CHAN_NO_20MHZ = 2048, - IEEE80211_CHAN_NO_10MHZ = 4096, - IEEE80211_CHAN_NO_HE = 8192, - IEEE80211_CHAN_1MHZ = 16384, - IEEE80211_CHAN_2MHZ = 32768, - IEEE80211_CHAN_4MHZ = 65536, - IEEE80211_CHAN_8MHZ = 131072, - IEEE80211_CHAN_16MHZ = 262144, - IEEE80211_CHAN_NO_320MHZ = 524288, - IEEE80211_CHAN_NO_EHT = 1048576, - IEEE80211_CHAN_DFS_CONCURRENT = 2097152, - IEEE80211_CHAN_NO_6GHZ_VLP_CLIENT = 4194304, - IEEE80211_CHAN_NO_6GHZ_AFC_CLIENT = 8388608, - IEEE80211_CHAN_CAN_MONITOR = 16777216, -}; - -struct iwl5000_channel_switch_cmd { - u8 band; - u8 expect_beacon; - __le16 channel; - __le32 rxon_flags; - __le32 rxon_filter_flags; - __le32 switch_time; - __le32 reserved[52]; -}; - -struct iwl6000_channel_switch_cmd { - u8 band; - u8 expect_beacon; - __le16 channel; - __le32 rxon_flags; - __le32 rxon_filter_flags; - __le32 switch_time; - __le32 reserved[78]; -}; - -enum coex_set_ant_phase { - COEX_SET_ANT_INIT = 0, - COEX_SET_ANT_WONLY = 1, - COEX_SET_ANT_WOFF = 2, - COEX_SET_ANT_2G = 3, - COEX_SET_ANT_5G = 4, - COEX_SET_ANT_POWERON = 5, - COEX_SET_ANT_2G_WLBT = 6, - COEX_SET_ANT_2G_FREERUN = 7, - COEX_SET_ANT_MAX = 8, -}; - -enum coex_notify_type_ips { - COEX_IPS_LEAVE = 0, - COEX_IPS_ENTER = 1, -}; - -enum coex_notify_type_lps { - COEX_LPS_DISABLE = 0, - COEX_LPS_ENABLE = 1, -}; - -enum coex_runreason { - COEX_RSN_2GSCANSTART = 0, - COEX_RSN_5GSCANSTART = 1, - COEX_RSN_SCANFINISH = 2, - COEX_RSN_2GSWITCHBAND = 3, - COEX_RSN_5GSWITCHBAND = 4, - COEX_RSN_2GCONSTART = 5, - COEX_RSN_5GCONSTART = 6, - COEX_RSN_2GCONFINISH = 7, - COEX_RSN_5GCONFINISH = 8, - COEX_RSN_2GMEDIA = 9, - COEX_RSN_5GMEDIA = 10, - COEX_RSN_MEDIADISCON = 11, - COEX_RSN_BTINFO = 12, - COEX_RSN_LPS = 13, - COEX_RSN_WLSTATUS = 14, - COEX_RSN_BTSTATUS = 15, - COEX_RSN_MAX = 16, -}; - -enum coex_notify_type_scan { - COEX_SCAN_FINISH = 0, - COEX_SCAN_START = 1, - COEX_SCAN_START_2G = 2, - COEX_SCAN_START_5G = 3, -}; - -enum rtw_coex_wl_state_cnt { - COEX_CNT_WL_SCANAP = 0, - COEX_CNT_WL_CONNPKT = 1, - COEX_CNT_WL_COEXRUN = 2, - COEX_CNT_WL_NOISY0 = 3, - COEX_CNT_WL_NOISY1 = 4, - COEX_CNT_WL_NOISY2 = 5, - COEX_CNT_WL_5MS_NOEXTEND = 6, - COEX_CNT_WL_FW_NOTIFY = 7, - COEX_CNT_WL_MAX = 8, -}; - -enum coex_notify_type_switchband { - COEX_NOT_SWITCH = 0, - COEX_SWITCH_TO_24G = 1, - COEX_SWITCH_TO_5G = 2, - COEX_SWITCH_TO_24G_NOFORSCAN = 3, -}; - -enum coex_notify_type_associate { - COEX_ASSOCIATE_FINISH = 0, - COEX_ASSOCIATE_START = 1, - COEX_ASSOCIATE_5G_FINISH = 2, - COEX_ASSOCIATE_5G_START = 3, -}; - -enum coex_notify_type_media_status { - COEX_MEDIA_DISCONNECT = 0, - COEX_MEDIA_CONNECT = 1, - COEX_MEDIA_CONNECT_5G = 2, -}; - -enum coex_wl_priority_mask { - COEX_WLPRI_RX_RSP = 2, - COEX_WLPRI_TX_RSP = 3, - COEX_WLPRI_TX_BEACON = 4, - COEX_WLPRI_TX_OFDM = 11, - COEX_WLPRI_TX_CCK = 12, - COEX_WLPRI_TX_BEACONQ = 27, - COEX_WLPRI_RX_CCK = 28, - COEX_WLPRI_RX_OFDM = 29, - COEX_WLPRI_MAX = 30, -}; - -enum rtw_coex_bt_state_cnt { - COEX_CNT_BT_RETRY = 0, - COEX_CNT_BT_REINIT = 1, - COEX_CNT_BT_REENABLE = 2, - COEX_CNT_BT_POPEVENT = 3, - COEX_CNT_BT_SETUPLINK = 4, - COEX_CNT_BT_IGNWLANACT = 5, - COEX_CNT_BT_INQ = 6, - COEX_CNT_BT_PAGE = 7, - COEX_CNT_BT_ROLESWITCH = 8, - COEX_CNT_BT_AFHUPDATE = 9, - COEX_CNT_BT_INFOUPDATE = 10, - COEX_CNT_BT_IQK = 11, - COEX_CNT_BT_IQKFAIL = 12, - COEX_CNT_BT_MAX = 13, -}; - -enum coex_btrssi_type { - COEX_BTRSSI_RATIO = 0, - COEX_BTRSSI_DBM = 1, - COEX_BTRSSI_MAX = 2, -}; - -enum rtw_flags { - RTW_FLAG_RUNNING = 0, - RTW_FLAG_FW_RUNNING = 1, - RTW_FLAG_SCANNING = 2, - RTW_FLAG_POWERON = 3, - RTW_FLAG_LEISURE_PS = 4, - RTW_FLAG_LEISURE_PS_DEEP = 5, - RTW_FLAG_DIG_DISABLE = 6, - RTW_FLAG_BUSY_TRAFFIC = 7, - RTW_FLAG_WOWLAN = 8, - RTW_FLAG_RESTARTING = 9, - RTW_FLAG_RESTART_TRIGGERING = 10, - RTW_FLAG_FORCE_LOWEST_RATE = 11, - NUM_OF_RTW_FLAGS = 12, -}; - -enum coex_gnt_setup_state { - COEX_GNT_SET_HW_PTA = 0, - COEX_GNT_SET_SW_LOW = 1, - COEX_GNT_SET_SW_HIGH = 3, -}; - -enum coex_rssi_state { - COEX_RSSI_STATE_HIGH = 0, - COEX_RSSI_STATE_MEDIUM = 1, - COEX_RSSI_STATE_LOW = 2, - COEX_RSSI_STATE_STAY_HIGH = 3, - COEX_RSSI_STATE_STAY_MEDIUM = 4, - COEX_RSSI_STATE_STAY_LOW = 5, -}; - -enum coex_wl_link_mode { - COEX_WLINK_2G1PORT = 0, - COEX_WLINK_5G = 3, - COEX_WLINK_2GFREE = 7, - COEX_WLINK_MAX = 8, -}; - -enum coex_power_save_type { - COEX_PS_WIFI_NATIVE = 0, - COEX_PS_LPS_ON = 1, - COEX_PS_LPS_OFF = 2, -}; - -enum coex_pstdma_type { - COEX_PSTDMA_FORCE_LPSOFF = 0, - COEX_PSTDMA_FORCE_LPSON = 1, - COEX_PSTDMA_MAX = 2, -}; - -enum coex_mp_info_op { - BT_MP_INFO_OP_PATCH_VER = 0, - BT_MP_INFO_OP_READ_REG = 17, - BT_MP_INFO_OP_SUPP_FEAT = 42, - BT_MP_INFO_OP_SUPP_VER = 43, - BT_MP_INFO_OP_SCAN_TYPE = 45, - BT_MP_INFO_OP_LNA_CONSTRAINT = 50, -}; - -enum coex_bt_status { - COEX_BTSTATUS_NCON_IDLE = 0, - COEX_BTSTATUS_CON_IDLE = 1, - COEX_BTSTATUS_INQ_PAGE = 2, - COEX_BTSTATUS_ACL_BUSY = 3, - COEX_BTSTATUS_SCO_BUSY = 4, - COEX_BTSTATUS_ACL_SCO_BUSY = 5, - COEX_BTSTATUS_MAX = 6, -}; - -enum coex_wl_tput_dir { - COEX_WL_TPUT_TX = 0, - COEX_WL_TPUT_RX = 1, - COEX_WL_TPUT_MAX = 2, -}; - -enum rtw_supported_band { - RTW_BAND_2G = 1, - RTW_BAND_5G = 2, - RTW_BAND_60G = 4, -}; - -enum coex_algorithm { - COEX_ALGO_NOPROFILE = 0, - COEX_ALGO_HFP = 1, - COEX_ALGO_HID = 2, - COEX_ALGO_A2DP = 3, - COEX_ALGO_PAN = 4, - COEX_ALGO_A2DP_HID = 5, - COEX_ALGO_A2DP_PAN = 6, - COEX_ALGO_PAN_HID = 7, - COEX_ALGO_A2DP_PAN_HID = 8, - COEX_ALGO_MAX = 9, -}; - -enum coex_bt_profile { - BPM_NOPROFILE = 0, - BPM_HFP = 1, - BPM_HID = 2, - BPM_A2DP = 4, - BPM_PAN = 8, - BPM_HID_HFP = 3, - BPM_A2DP_HFP = 5, - BPM_A2DP_HID = 6, - BPM_A2DP_HID_HFP = 7, - BPM_PAN_HFP = 9, - BPM_PAN_HID = 10, - BPM_PAN_HID_HFP = 11, - BPM_PAN_A2DP = 12, - BPM_PAN_A2DP_HFP = 13, - BPM_PAN_A2DP_HID = 14, - BPM_PAN_A2DP_HID_HFP = 15, -}; - -struct rtw_coex_hid_info_a { - u8 cmd_id; - u8 len; - u8 subid; - u8 handle; - u8 vendor; - u8 name[3]; -}; - -struct rtw_c2h_cmd { - u8 id; - u8 seq; - u8 payload[0]; -}; - -struct rtw_coex_info_req { - u8 seq; - u8 op_code; - u8 para1; - u8 para2; - u8 para3; -}; - -struct driver_attribute { - struct attribute attr; - ssize_t (*show)(struct device_driver *, char *); - ssize_t (*store)(struct device_driver *, const char *, size_t); -}; - -enum serio_event_type { - SERIO_RESCAN_PORT = 0, - SERIO_RECONNECT_PORT = 1, - SERIO_RECONNECT_SUBTREE = 2, - SERIO_REGISTER_PORT = 3, - SERIO_ATTACH_DRIVER = 4, -}; - -struct serio_device_id { - __u8 type; - __u8 extra; - __u8 id; - __u8 proto; -}; - -struct serio_driver; - -struct serio { - void *port_data; - char name[32]; - char phys[32]; - char firmware_id[128]; - bool manual_bind; - struct serio_device_id id; - spinlock_t lock; - int (*write)(struct serio *, unsigned char); - int (*open)(struct serio *); - void (*close)(struct serio *); - int (*start)(struct serio *); - void (*stop)(struct serio *); - struct serio *parent; - struct list_head child_node; - struct list_head children; - unsigned int depth; - struct serio_driver *drv; - struct mutex drv_mutex; - struct device dev; - struct list_head node; - struct mutex *ps2_cmd_mutex; -}; - -struct serio_driver { - const char *description; - const struct serio_device_id *id_table; - bool manual_bind; - void (*write_wakeup)(struct serio *); - irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int); - int (*connect)(struct serio *, struct serio_driver *); - int (*reconnect)(struct serio *); - int (*fast_reconnect)(struct serio *); - void (*disconnect)(struct serio *); - void (*cleanup)(struct serio *); - struct device_driver driver; -}; - -struct serio_event { - enum serio_event_type type; - void *object; - struct module *owner; - struct list_head node; -}; - -enum rc_proto { - RC_PROTO_UNKNOWN = 0, - RC_PROTO_OTHER = 1, - RC_PROTO_RC5 = 2, - RC_PROTO_RC5X_20 = 3, - RC_PROTO_RC5_SZ = 4, - RC_PROTO_JVC = 5, - RC_PROTO_SONY12 = 6, - RC_PROTO_SONY15 = 7, - RC_PROTO_SONY20 = 8, - RC_PROTO_NEC = 9, - RC_PROTO_NECX = 10, - RC_PROTO_NEC32 = 11, - RC_PROTO_SANYO = 12, - RC_PROTO_MCIR2_KBD = 13, - RC_PROTO_MCIR2_MSE = 14, - RC_PROTO_RC6_0 = 15, - RC_PROTO_RC6_6A_20 = 16, - RC_PROTO_RC6_6A_24 = 17, - RC_PROTO_RC6_6A_32 = 18, - RC_PROTO_RC6_MCE = 19, - RC_PROTO_SHARP = 20, - RC_PROTO_XMP = 21, - RC_PROTO_CEC = 22, - RC_PROTO_IMON = 23, - RC_PROTO_RCMM12 = 24, - RC_PROTO_RCMM24 = 25, - RC_PROTO_RCMM32 = 26, - RC_PROTO_XBOX_DVD = 27, - RC_PROTO_MAX = 27, -}; - -struct rc_map_table; - -struct rc_map { - struct rc_map_table *scan; - unsigned int size; - unsigned int len; - unsigned int alloc; - enum rc_proto rc_proto; - const char *name; - spinlock_t lock; -}; - -struct rc_map_list { - struct list_head list; - struct rc_map map; -}; - -struct rc_map_table { - u64 scancode; - u32 keycode; -}; - -struct badblocks { - struct device *dev; - int count; - int unacked_exist; - int shift; - u64 *page; - int changed; - seqlock_t lock; - sector_t sector; - sector_t size; -}; - -struct mddev; - -struct md_rdev; - -struct md_personality { - char *name; - int level; - struct list_head list; - struct module *owner; - bool (*make_request)(struct mddev *, struct bio *); - int (*run)(struct mddev *); - int (*start)(struct mddev *); - void (*free)(struct mddev *, void *); - void (*status)(struct seq_file *, struct mddev *); - void (*error_handler)(struct mddev *, struct md_rdev *); - int (*hot_add_disk)(struct mddev *, struct md_rdev *); - int (*hot_remove_disk)(struct mddev *, struct md_rdev *); - int (*spare_active)(struct mddev *); - sector_t (*sync_request)(struct mddev *, sector_t, int *); - int (*resize)(struct mddev *, sector_t); - sector_t (*size)(struct mddev *, sector_t, int); - int (*check_reshape)(struct mddev *); - int (*start_reshape)(struct mddev *); - void (*finish_reshape)(struct mddev *); - void (*update_reshape_pos)(struct mddev *); - void (*prepare_suspend)(struct mddev *); - void (*quiesce)(struct mddev *, int); - void * (*takeover)(struct mddev *); - int (*change_consistency_policy)(struct mddev *, const char *); -}; - -struct md_cluster_info; - -struct md_thread; - -struct bitmap; - -struct mddev { - void *private; - struct md_personality *pers; - dev_t unit; - int md_minor; - struct list_head disks; - unsigned long flags; - unsigned long sb_flags; - int suspended; - struct mutex suspend_mutex; - struct percpu_ref active_io; - int ro; - int sysfs_active; - struct gendisk *gendisk; - struct kobject kobj; - int hold_active; - int major_version; - int minor_version; - int patch_version; - int persistent; - int external; - char metadata_type[17]; - int chunk_sectors; - time64_t ctime; - time64_t utime; - int level; - int layout; - char clevel[16]; - int raid_disks; - int max_disks; - sector_t dev_sectors; - sector_t array_sectors; - int external_size; - __u64 events; - int can_decrease_events; - char uuid[16]; - sector_t reshape_position; - int delta_disks; - int new_level; - int new_layout; - int new_chunk_sectors; - int reshape_backwards; - struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; - struct md_thread __attribute__((btf_type_tag("rcu"))) *sync_thread; - char *last_sync_action; - sector_t curr_resync; - sector_t curr_resync_completed; - unsigned long resync_mark; - sector_t resync_mark_cnt; - sector_t curr_mark_cnt; - sector_t resync_max_sectors; - atomic64_t resync_mismatches; - sector_t suspend_lo; - sector_t suspend_hi; - int sync_speed_min; - int sync_speed_max; - int parallel_resync; - int ok_start_degraded; - unsigned long recovery; - int recovery_disabled; - int in_sync; - struct mutex open_mutex; - struct mutex reconfig_mutex; - atomic_t active; - atomic_t openers; - int changed; - int degraded; - atomic_t recovery_active; - wait_queue_head_t recovery_wait; - sector_t recovery_cp; - sector_t resync_min; - sector_t resync_max; - struct kernfs_node *sysfs_state; - struct kernfs_node *sysfs_action; - struct kernfs_node *sysfs_completed; - struct kernfs_node *sysfs_degraded; - struct kernfs_node *sysfs_level; - struct work_struct del_work; - struct work_struct sync_work; - spinlock_t lock; - wait_queue_head_t sb_wait; - atomic_t pending_writes; - unsigned int safemode; - unsigned int safemode_delay; - struct timer_list safemode_timer; - struct percpu_ref writes_pending; - int sync_checkers; - struct bitmap *bitmap; - struct { - struct file *file; - loff_t offset; - unsigned long space; - loff_t default_offset; - unsigned long default_space; - struct mutex mutex; - unsigned long chunksize; - unsigned long daemon_sleep; - unsigned long max_write_behind; - int external; - int nodes; - char cluster_name[64]; - } bitmap_info; - atomic_t max_corr_read_errors; - struct list_head all_mddevs; - const struct attribute_group *to_remove; - struct bio_set bio_set; - struct bio_set sync_set; - struct bio_set io_clone_set; - struct bio *flush_bio; - atomic_t flush_pending; - ktime_t start_flush; - ktime_t prev_flush_start; - struct work_struct flush_work; - struct work_struct event_work; - mempool_t *serial_info_pool; - void (*sync_super)(struct mddev *, struct md_rdev *); - struct md_cluster_info *cluster_info; - unsigned int good_device_nr; - unsigned int noio_flag; - struct list_head deleting; - struct mutex sync_mutex; - atomic_t sync_seq; - bool has_superblocks: 1; - bool fail_last_dev: 1; - bool serialize_policy: 1; -}; - -struct md_thread { - void (*run)(struct md_thread *); - struct mddev *mddev; - wait_queue_head_t wqueue; - unsigned long flags; - struct task_struct *tsk; - unsigned long timeout; - void *private; -}; - -struct serial_in_rdev; - -struct md_rdev { - struct list_head same_set; - sector_t sectors; - struct mddev *mddev; - int last_events; - struct block_device *meta_bdev; - struct block_device *bdev; - struct file *bdev_file; - struct page *sb_page; - struct page *bb_page; - int sb_loaded; - __u64 sb_events; - sector_t data_offset; - sector_t new_data_offset; - sector_t sb_start; - int sb_size; - int preferred_minor; - struct kobject kobj; - unsigned long flags; - wait_queue_head_t blocked_wait; - int desc_nr; - int raid_disk; - int new_raid_disk; - int saved_raid_disk; - union { - sector_t recovery_offset; - sector_t journal_tail; - }; - atomic_t nr_pending; - atomic_t read_errors; - time64_t last_read_error; - atomic_t corrected_errors; - struct serial_in_rdev *serial; - struct kernfs_node *sysfs_state; - struct kernfs_node *sysfs_unack_badblocks; - struct kernfs_node *sysfs_badblocks; - struct badblocks badblocks; - struct { - short offset; - unsigned int size; - sector_t sector; - } ppl; -}; - -struct serial_in_rdev { - struct rb_root_cached serial_rb; - spinlock_t serial_lock; - wait_queue_head_t serial_io_wait; -}; - -enum r0layout { - RAID0_ORIG_LAYOUT = 1, - RAID0_ALT_MULTIZONE_LAYOUT = 2, -}; - -enum { - BIO_PAGE_PINNED = 0, - BIO_CLONED = 1, - BIO_BOUNCED = 2, - BIO_QUIET = 3, - BIO_CHAIN = 4, - BIO_REFFED = 5, - BIO_BPS_THROTTLED = 6, - BIO_TRACE_COMPLETION = 7, - BIO_CGROUP_ACCT = 8, - BIO_QOS_THROTTLED = 9, - BIO_QOS_MERGED = 10, - BIO_REMAPPED = 11, - BIO_ZONE_WRITE_LOCKED = 12, - BIO_FLAG_LAST = 13, -}; - -enum mddev_flags { - MD_ARRAY_FIRST_USE = 0, - MD_CLOSING = 1, - MD_JOURNAL_CLEAN = 2, - MD_HAS_JOURNAL = 3, - MD_CLUSTER_RESYNC_LOCKED = 4, - MD_FAILFAST_SUPPORTED = 5, - MD_HAS_PPL = 6, - MD_HAS_MULTIPLE_PPLS = 7, - MD_NOT_READY = 8, - MD_BROKEN = 9, - MD_DELETED = 10, -}; - -struct strip_zone; - -struct r0conf { - struct strip_zone *strip_zone; - struct md_rdev **devlist; - int nr_strip_zones; - enum r0layout layout; -}; - -struct strip_zone { - sector_t zone_end; - sector_t dev_start; - int nb_dev; - int disk_shift; -}; - -struct pernet_operations { - struct list_head list; - int (*init)(struct net *); - void (*pre_exit)(struct net *); - void (*exit)(struct net *); - void (*exit_batch)(struct list_head *); - void (*exit_batch_rtnl)(struct list_head *, struct list_head *); - unsigned int *id; - size_t size; -}; - -struct pcpu_gen_cookie; - -struct gen_cookie { - struct pcpu_gen_cookie __attribute__((btf_type_tag("percpu"))) *local; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - atomic64_t forward_last; - atomic64_t reverse_last; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct pcpu_gen_cookie { - local_t nesting; - u64 last; -}; - -enum _slab_flag_bits { - _SLAB_CONSISTENCY_CHECKS = 0, - _SLAB_RED_ZONE = 1, - _SLAB_POISON = 2, - _SLAB_KMALLOC = 3, - _SLAB_HWCACHE_ALIGN = 4, - _SLAB_CACHE_DMA = 5, - _SLAB_CACHE_DMA32 = 6, - _SLAB_STORE_USER = 7, - _SLAB_PANIC = 8, - _SLAB_TYPESAFE_BY_RCU = 9, - _SLAB_TRACE = 10, - _SLAB_NOLEAKTRACE = 11, - _SLAB_NO_MERGE = 12, - _SLAB_ACCOUNT = 13, - _SLAB_NO_USER_FLAGS = 14, - _SLAB_RECLAIM_ACCOUNT = 15, - _SLAB_OBJECT_POISON = 16, - _SLAB_CMPXCHG_DOUBLE = 17, - _SLAB_FLAGS_LAST_BIT = 18, -}; - enum wq_flags { WQ_BH = 1, WQ_UNBOUND = 2, @@ -34194,6 +38760,47 @@ enum ucount_type { UCOUNT_COUNTS = 10, }; +enum rtnetlink_groups { + RTNLGRP_NONE = 0, + RTNLGRP_LINK = 1, + RTNLGRP_NOTIFY = 2, + RTNLGRP_NEIGH = 3, + RTNLGRP_TC = 4, + RTNLGRP_IPV4_IFADDR = 5, + RTNLGRP_IPV4_MROUTE = 6, + RTNLGRP_IPV4_ROUTE = 7, + RTNLGRP_IPV4_RULE = 8, + RTNLGRP_IPV6_IFADDR = 9, + RTNLGRP_IPV6_MROUTE = 10, + RTNLGRP_IPV6_ROUTE = 11, + RTNLGRP_IPV6_IFINFO = 12, + RTNLGRP_DECnet_IFADDR = 13, + RTNLGRP_NOP2 = 14, + RTNLGRP_DECnet_ROUTE = 15, + RTNLGRP_DECnet_RULE = 16, + RTNLGRP_NOP4 = 17, + RTNLGRP_IPV6_PREFIX = 18, + RTNLGRP_IPV6_RULE = 19, + RTNLGRP_ND_USEROPT = 20, + RTNLGRP_PHONET_IFADDR = 21, + RTNLGRP_PHONET_ROUTE = 22, + RTNLGRP_DCB = 23, + RTNLGRP_IPV4_NETCONF = 24, + RTNLGRP_IPV6_NETCONF = 25, + RTNLGRP_MDB = 26, + RTNLGRP_MPLS_ROUTE = 27, + RTNLGRP_NSID = 28, + RTNLGRP_MPLS_NETCONF = 29, + RTNLGRP_IPV4_MROUTE_R = 30, + RTNLGRP_IPV6_MROUTE_R = 31, + RTNLGRP_NEXTHOP = 32, + RTNLGRP_BRVLAN = 33, + RTNLGRP_MCTP_IFADDR = 34, + RTNLGRP_TUNNEL = 35, + RTNLGRP_STATS = 36, + __RTNLGRP_MAX = 37, +}; + enum { NETNSA_NONE = 0, NETNSA_NSID = 1, @@ -34204,6 +38811,15 @@ enum { __NETNSA_MAX = 6, }; +enum netlink_validation { + NL_VALIDATE_LIBERAL = 0, + NL_VALIDATE_TRAILING = 1, + NL_VALIDATE_MAXTYPE = 2, + NL_VALIDATE_UNSPEC = 4, + NL_VALIDATE_STRICT_ATTRS = 8, + NL_VALIDATE_NESTED = 16, +}; + struct scm_creds { u32 pid; kuid_t uid; @@ -34247,1070 +38863,140 @@ struct rtgenmsg { unsigned char rtgen_family; }; -enum ip_conntrack_info { - IP_CT_ESTABLISHED = 0, - IP_CT_RELATED = 1, - IP_CT_NEW = 2, - IP_CT_IS_REPLY = 3, - IP_CT_ESTABLISHED_REPLY = 3, - IP_CT_RELATED_REPLY = 4, - IP_CT_NUMBER = 5, - IP_CT_UNTRACKED = 7, +struct net_protocol { + int (*handler)(struct sk_buff *); + int (*err_handler)(struct sk_buff *, u32); + unsigned int no_policy: 1; + unsigned int icmp_strict_tag_validation: 1; + u32 secret; +}; + +struct offload_callbacks { + struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t); + struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sk_buff *, int); +}; + +struct net_offload { + struct offload_callbacks callbacks; + unsigned int flags; + u32 secret; }; enum { - IPPROTO_IP = 0, - IPPROTO_ICMP = 1, - IPPROTO_IGMP = 2, - IPPROTO_IPIP = 4, - IPPROTO_TCP = 6, - IPPROTO_EGP = 8, - IPPROTO_PUP = 12, - IPPROTO_UDP = 17, - IPPROTO_IDP = 22, - IPPROTO_TP = 29, - IPPROTO_DCCP = 33, - IPPROTO_IPV6 = 41, - IPPROTO_RSVP = 46, - IPPROTO_GRE = 47, - IPPROTO_ESP = 50, - IPPROTO_AH = 51, - IPPROTO_MTP = 92, - IPPROTO_BEETPH = 94, - IPPROTO_ENCAP = 98, - IPPROTO_PIM = 103, - IPPROTO_COMP = 108, - IPPROTO_L2TP = 115, - IPPROTO_SCTP = 132, - IPPROTO_UDPLITE = 136, - IPPROTO_MPLS = 137, - IPPROTO_ETHERNET = 143, - IPPROTO_RAW = 255, - IPPROTO_MPTCP = 262, - IPPROTO_MAX = 263, -}; - -enum ip_conntrack_status { - IPS_EXPECTED_BIT = 0, - IPS_EXPECTED = 1, - IPS_SEEN_REPLY_BIT = 1, - IPS_SEEN_REPLY = 2, - IPS_ASSURED_BIT = 2, - IPS_ASSURED = 4, - IPS_CONFIRMED_BIT = 3, - IPS_CONFIRMED = 8, - IPS_SRC_NAT_BIT = 4, - IPS_SRC_NAT = 16, - IPS_DST_NAT_BIT = 5, - IPS_DST_NAT = 32, - IPS_NAT_MASK = 48, - IPS_SEQ_ADJUST_BIT = 6, - IPS_SEQ_ADJUST = 64, - IPS_SRC_NAT_DONE_BIT = 7, - IPS_SRC_NAT_DONE = 128, - IPS_DST_NAT_DONE_BIT = 8, - IPS_DST_NAT_DONE = 256, - IPS_NAT_DONE_MASK = 384, - IPS_DYING_BIT = 9, - IPS_DYING = 512, - IPS_FIXED_TIMEOUT_BIT = 10, - IPS_FIXED_TIMEOUT = 1024, - IPS_TEMPLATE_BIT = 11, - IPS_TEMPLATE = 2048, - IPS_UNTRACKED_BIT = 12, - IPS_UNTRACKED = 4096, - IPS_NAT_CLASH_BIT = 12, - IPS_NAT_CLASH = 4096, - IPS_HELPER_BIT = 13, - IPS_HELPER = 8192, - IPS_OFFLOAD_BIT = 14, - IPS_OFFLOAD = 16384, - IPS_HW_OFFLOAD_BIT = 15, - IPS_HW_OFFLOAD = 32768, - IPS_UNCHANGEABLE_MASK = 56313, - __IPS_MAX_BIT = 16, -}; - -struct ipv6hdr { - __u8 priority: 4; - __u8 version: 4; - __u8 flow_lbl[3]; - __be16 payload_len; - __u8 nexthdr; - __u8 hop_limit; - union { - struct { - struct in6_addr saddr; - struct in6_addr daddr; - }; - struct { - struct in6_addr saddr; - struct in6_addr daddr; - } addrs; - }; -}; - -struct nf_conntrack_tuple_mask { - struct { - union nf_inet_addr u3; - union nf_conntrack_man_proto u; - } src; -}; - -struct nf_conntrack_helper; - -struct nf_conntrack_expect { - struct hlist_node lnode; - struct hlist_node hnode; - struct nf_conntrack_tuple tuple; - struct nf_conntrack_tuple_mask mask; - refcount_t use; - unsigned int flags; - unsigned int class; - void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); - struct nf_conntrack_helper *helper; - struct nf_conn *master; - struct timer_list timeout; - union nf_inet_addr saved_addr; - union nf_conntrack_man_proto saved_proto; - enum ip_conntrack_dir dir; - struct callback_head rcu; -}; - -struct nf_conntrack_expect_policy; - -struct nf_conntrack_helper { - struct hlist_node hnode; - char name[16]; - refcount_t refcnt; - struct module *me; - const struct nf_conntrack_expect_policy *expect_policy; - struct nf_conntrack_tuple tuple; - int (*help)(struct sk_buff *, unsigned int, struct nf_conn *, enum ip_conntrack_info); - void (*destroy)(struct nf_conn *); - int (*from_nlattr)(struct nlattr *, struct nf_conn *); - int (*to_nlattr)(struct sk_buff *, const struct nf_conn *); - unsigned int expect_class_max; - unsigned int flags; - unsigned int queue_num; - u16 data_len; - char nat_mod_name[16]; -}; - -struct nf_conntrack_expect_policy { - unsigned int max_expected; - unsigned int timeout; - char name[16]; -}; - -struct tcphdr { - __be16 source; - __be16 dest; - __be32 seq; - __be32 ack_seq; - __u16 res1: 4; - __u16 doff: 4; - __u16 fin: 1; - __u16 syn: 1; - __u16 rst: 1; - __u16 psh: 1; - __u16 ack: 1; - __u16 urg: 1; - __u16 ece: 1; - __u16 cwr: 1; - __be16 window; - __sum16 check; - __be16 urg_ptr; -}; - -struct udphdr { - __be16 source; - __be16 dest; - __be16 len; - __sum16 check; -}; - -struct packet_type { - __be16 type; - bool ignore_outgoing; - struct net_device *dev; - netdevice_tracker dev_tracker; - int (*func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *); - void (*list_func)(struct list_head *, struct packet_type *, struct net_device *); - bool (*id_match)(struct packet_type *, struct sock *); - struct net *af_packet_net; - void *af_packet_priv; - struct list_head list; + TCP_BPF_IPV4 = 0, + TCP_BPF_IPV6 = 1, + TCP_BPF_NUM_PROTS = 2, }; enum { - NEIGH_ARP_TABLE = 0, - NEIGH_ND_TABLE = 1, - NEIGH_DN_TABLE = 2, - NEIGH_NR_TABLES = 3, - NEIGH_LINK_TABLE = 3, + TCP_BPF_BASE = 0, + TCP_BPF_TX = 1, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, +}; + +enum sock_type { + SOCK_STREAM = 1, + SOCK_DGRAM = 2, + SOCK_RAW = 3, + SOCK_RDM = 4, + SOCK_SEQPACKET = 5, + SOCK_DCCP = 6, + SOCK_PACKET = 10, +}; + +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, +}; + +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, }; enum { - NEIGH_VAR_MCAST_PROBES = 0, - NEIGH_VAR_UCAST_PROBES = 1, - NEIGH_VAR_APP_PROBES = 2, - NEIGH_VAR_MCAST_REPROBES = 3, - NEIGH_VAR_RETRANS_TIME = 4, - NEIGH_VAR_BASE_REACHABLE_TIME = 5, - NEIGH_VAR_DELAY_PROBE_TIME = 6, - NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7, - NEIGH_VAR_GC_STALETIME = 8, - NEIGH_VAR_QUEUE_LEN_BYTES = 9, - NEIGH_VAR_PROXY_QLEN = 10, - NEIGH_VAR_ANYCAST_DELAY = 11, - NEIGH_VAR_PROXY_DELAY = 12, - NEIGH_VAR_LOCKTIME = 13, - NEIGH_VAR_QUEUE_LEN = 14, - NEIGH_VAR_RETRANS_TIME_MS = 15, - NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16, - NEIGH_VAR_GC_INTERVAL = 17, - NEIGH_VAR_GC_THRESH1 = 18, - NEIGH_VAR_GC_THRESH2 = 19, - NEIGH_VAR_GC_THRESH3 = 20, - NEIGH_VAR_MAX = 21, + TCP_ESTABLISHED = 1, + TCP_SYN_SENT = 2, + TCP_SYN_RECV = 3, + TCP_FIN_WAIT1 = 4, + TCP_FIN_WAIT2 = 5, + TCP_TIME_WAIT = 6, + TCP_CLOSE = 7, + TCP_CLOSE_WAIT = 8, + TCP_LAST_ACK = 9, + TCP_LISTEN = 10, + TCP_CLOSING = 11, + TCP_NEW_SYN_RECV = 12, + TCP_BOUND_INACTIVE = 13, + TCP_MAX_STATES = 14, }; enum { - LINUX_MIB_NUM = 0, - LINUX_MIB_SYNCOOKIESSENT = 1, - LINUX_MIB_SYNCOOKIESRECV = 2, - LINUX_MIB_SYNCOOKIESFAILED = 3, - LINUX_MIB_EMBRYONICRSTS = 4, - LINUX_MIB_PRUNECALLED = 5, - LINUX_MIB_RCVPRUNED = 6, - LINUX_MIB_OFOPRUNED = 7, - LINUX_MIB_OUTOFWINDOWICMPS = 8, - LINUX_MIB_LOCKDROPPEDICMPS = 9, - LINUX_MIB_ARPFILTER = 10, - LINUX_MIB_TIMEWAITED = 11, - LINUX_MIB_TIMEWAITRECYCLED = 12, - LINUX_MIB_TIMEWAITKILLED = 13, - LINUX_MIB_PAWSACTIVEREJECTED = 14, - LINUX_MIB_PAWSESTABREJECTED = 15, - LINUX_MIB_DELAYEDACKS = 16, - LINUX_MIB_DELAYEDACKLOCKED = 17, - LINUX_MIB_DELAYEDACKLOST = 18, - LINUX_MIB_LISTENOVERFLOWS = 19, - LINUX_MIB_LISTENDROPS = 20, - LINUX_MIB_TCPHPHITS = 21, - LINUX_MIB_TCPPUREACKS = 22, - LINUX_MIB_TCPHPACKS = 23, - LINUX_MIB_TCPRENORECOVERY = 24, - LINUX_MIB_TCPSACKRECOVERY = 25, - LINUX_MIB_TCPSACKRENEGING = 26, - LINUX_MIB_TCPSACKREORDER = 27, - LINUX_MIB_TCPRENOREORDER = 28, - LINUX_MIB_TCPTSREORDER = 29, - LINUX_MIB_TCPFULLUNDO = 30, - LINUX_MIB_TCPPARTIALUNDO = 31, - LINUX_MIB_TCPDSACKUNDO = 32, - LINUX_MIB_TCPLOSSUNDO = 33, - LINUX_MIB_TCPLOSTRETRANSMIT = 34, - LINUX_MIB_TCPRENOFAILURES = 35, - LINUX_MIB_TCPSACKFAILURES = 36, - LINUX_MIB_TCPLOSSFAILURES = 37, - LINUX_MIB_TCPFASTRETRANS = 38, - LINUX_MIB_TCPSLOWSTARTRETRANS = 39, - LINUX_MIB_TCPTIMEOUTS = 40, - LINUX_MIB_TCPLOSSPROBES = 41, - LINUX_MIB_TCPLOSSPROBERECOVERY = 42, - LINUX_MIB_TCPRENORECOVERYFAIL = 43, - LINUX_MIB_TCPSACKRECOVERYFAIL = 44, - LINUX_MIB_TCPRCVCOLLAPSED = 45, - LINUX_MIB_TCPDSACKOLDSENT = 46, - LINUX_MIB_TCPDSACKOFOSENT = 47, - LINUX_MIB_TCPDSACKRECV = 48, - LINUX_MIB_TCPDSACKOFORECV = 49, - LINUX_MIB_TCPABORTONDATA = 50, - LINUX_MIB_TCPABORTONCLOSE = 51, - LINUX_MIB_TCPABORTONMEMORY = 52, - LINUX_MIB_TCPABORTONTIMEOUT = 53, - LINUX_MIB_TCPABORTONLINGER = 54, - LINUX_MIB_TCPABORTFAILED = 55, - LINUX_MIB_TCPMEMORYPRESSURES = 56, - LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, - LINUX_MIB_TCPSACKDISCARD = 58, - LINUX_MIB_TCPDSACKIGNOREDOLD = 59, - LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, - LINUX_MIB_TCPSPURIOUSRTOS = 61, - LINUX_MIB_TCPMD5NOTFOUND = 62, - LINUX_MIB_TCPMD5UNEXPECTED = 63, - LINUX_MIB_TCPMD5FAILURE = 64, - LINUX_MIB_SACKSHIFTED = 65, - LINUX_MIB_SACKMERGED = 66, - LINUX_MIB_SACKSHIFTFALLBACK = 67, - LINUX_MIB_TCPBACKLOGDROP = 68, - LINUX_MIB_PFMEMALLOCDROP = 69, - LINUX_MIB_TCPMINTTLDROP = 70, - LINUX_MIB_TCPDEFERACCEPTDROP = 71, - LINUX_MIB_IPRPFILTER = 72, - LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, - LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, - LINUX_MIB_TCPREQQFULLDROP = 75, - LINUX_MIB_TCPRETRANSFAIL = 76, - LINUX_MIB_TCPRCVCOALESCE = 77, - LINUX_MIB_TCPBACKLOGCOALESCE = 78, - LINUX_MIB_TCPOFOQUEUE = 79, - LINUX_MIB_TCPOFODROP = 80, - LINUX_MIB_TCPOFOMERGE = 81, - LINUX_MIB_TCPCHALLENGEACK = 82, - LINUX_MIB_TCPSYNCHALLENGE = 83, - LINUX_MIB_TCPFASTOPENACTIVE = 84, - LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, - LINUX_MIB_TCPFASTOPENPASSIVE = 86, - LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, - LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, - LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, - LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, - LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, - LINUX_MIB_BUSYPOLLRXPACKETS = 92, - LINUX_MIB_TCPAUTOCORKING = 93, - LINUX_MIB_TCPFROMZEROWINDOWADV = 94, - LINUX_MIB_TCPTOZEROWINDOWADV = 95, - LINUX_MIB_TCPWANTZEROWINDOWADV = 96, - LINUX_MIB_TCPSYNRETRANS = 97, - LINUX_MIB_TCPORIGDATASENT = 98, - LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, - LINUX_MIB_TCPHYSTARTTRAINCWND = 100, - LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, - LINUX_MIB_TCPHYSTARTDELAYCWND = 102, - LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, - LINUX_MIB_TCPACKSKIPPEDPAWS = 104, - LINUX_MIB_TCPACKSKIPPEDSEQ = 105, - LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, - LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, - LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, - LINUX_MIB_TCPWINPROBE = 109, - LINUX_MIB_TCPKEEPALIVE = 110, - LINUX_MIB_TCPMTUPFAIL = 111, - LINUX_MIB_TCPMTUPSUCCESS = 112, - LINUX_MIB_TCPDELIVERED = 113, - LINUX_MIB_TCPDELIVEREDCE = 114, - LINUX_MIB_TCPACKCOMPRESSED = 115, - LINUX_MIB_TCPZEROWINDOWDROP = 116, - LINUX_MIB_TCPRCVQDROP = 117, - LINUX_MIB_TCPWQUEUETOOBIG = 118, - LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, - LINUX_MIB_TCPTIMEOUTREHASH = 120, - LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, - LINUX_MIB_TCPDSACKRECVSEGS = 122, - LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, - LINUX_MIB_TCPMIGRATEREQSUCCESS = 124, - LINUX_MIB_TCPMIGRATEREQFAILURE = 125, - LINUX_MIB_TCPPLBREHASH = 126, - LINUX_MIB_TCPAOREQUIRED = 127, - LINUX_MIB_TCPAOBAD = 128, - LINUX_MIB_TCPAOKEYNOTFOUND = 129, - LINUX_MIB_TCPAOGOOD = 130, - LINUX_MIB_TCPAODROPPEDICMPS = 131, - __LINUX_MIB_MAX = 132, + INET_FLAGS_PKTINFO = 0, + INET_FLAGS_TTL = 1, + INET_FLAGS_TOS = 2, + INET_FLAGS_RECVOPTS = 3, + INET_FLAGS_RETOPTS = 4, + INET_FLAGS_PASSSEC = 5, + INET_FLAGS_ORIGDSTADDR = 6, + INET_FLAGS_CHECKSUM = 7, + INET_FLAGS_RECVFRAGSIZE = 8, + INET_FLAGS_RECVERR = 9, + INET_FLAGS_RECVERR_RFC4884 = 10, + INET_FLAGS_FREEBIND = 11, + INET_FLAGS_HDRINCL = 12, + INET_FLAGS_MC_LOOP = 13, + INET_FLAGS_MC_ALL = 14, + INET_FLAGS_TRANSPARENT = 15, + INET_FLAGS_IS_ICSK = 16, + INET_FLAGS_NODEFRAG = 17, + INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, + INET_FLAGS_DEFER_CONNECT = 19, + INET_FLAGS_MC6_LOOP = 20, + INET_FLAGS_RECVERR6_RFC4884 = 21, + INET_FLAGS_MC6_ALL = 22, + INET_FLAGS_AUTOFLOWLABEL_SET = 23, + INET_FLAGS_AUTOFLOWLABEL = 24, + INET_FLAGS_DONTFRAG = 25, + INET_FLAGS_RECVERR6 = 26, + INET_FLAGS_REPFLOW = 27, + INET_FLAGS_RTALERT_ISOLATE = 28, + INET_FLAGS_SNDFLOW = 29, + INET_FLAGS_RTALERT = 30, }; -struct sockaddr_in { - __kernel_sa_family_t sin_family; - __be16 sin_port; - struct in_addr sin_addr; - unsigned char __pad[8]; +struct crypto_wait { + struct completion completion; + int err; }; -struct neighbour_cb { - unsigned long sched_next; - unsigned int flags; +struct tx_work { + struct delayed_work work; + struct sock *sk; }; -struct arphdr { - __be16 ar_hrd; - __be16 ar_pro; - unsigned char ar_hln; - unsigned char ar_pln; - __be16 ar_op; +struct tls_rec; + +struct tls_sw_context_tx { + struct crypto_aead *aead_send; + struct crypto_wait async_wait; + struct tx_work tx_work; + struct tls_rec *open_rec; + struct list_head tx_list; + atomic_t encrypt_pending; + u8 async_capable: 1; + unsigned long tx_bitmask; }; -struct dst_cache_pcpu { - unsigned long refresh_ts; - struct dst_entry *dst; - u32 cookie; - union { - struct in_addr in_saddr; - struct in6_addr in6_saddr; - }; -}; - -struct arpreq { - struct sockaddr arp_pa; - struct sockaddr arp_ha; - int arp_flags; - struct sockaddr arp_netmask; - char arp_dev[16]; -}; - -struct netdev_notifier_info { - struct net_device *dev; - struct netlink_ext_ack *extack; -}; - -struct seq_net_private { - struct net *net; - netns_tracker ns_tracker; -}; - -struct neigh_seq_state { - struct seq_net_private p; - struct neigh_table *tbl; - struct neigh_hash_table *nht; - void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *); - unsigned int bucket; - unsigned int flags; -}; - -struct netdev_notifier_change_info { - struct netdev_notifier_info info; - unsigned int flags_changed; -}; - -enum { - TCPF_ESTABLISHED = 2, - TCPF_SYN_SENT = 4, - TCPF_SYN_RECV = 8, - TCPF_FIN_WAIT1 = 16, - TCPF_FIN_WAIT2 = 32, - TCPF_TIME_WAIT = 64, - TCPF_CLOSE = 128, - TCPF_CLOSE_WAIT = 256, - TCPF_LAST_ACK = 512, - TCPF_LISTEN = 1024, - TCPF_CLOSING = 2048, - TCPF_NEW_SYN_RECV = 4096, - TCPF_BOUND_INACTIVE = 8192, -}; - -struct ip_options; - -struct inet_cork { - unsigned int flags; - __be32 addr; - struct ip_options *opt; - unsigned int fragsize; - int length; - struct dst_entry *dst; - u8 tx_flags; - __u8 ttl; - __s16 tos; - char priority; - __u16 gso_size; - u64 transmit_time; - u32 mark; -}; - -struct flowi6 { - struct flowi_common __fl_common; - struct in6_addr daddr; - struct in6_addr saddr; - __be32 flowlabel; - union flowi_uli uli; - __u32 mp_hash; -}; - -struct flowi { - union { - struct flowi_common __fl_common; - struct flowi4 ip4; - struct flowi6 ip6; - } u; -}; - -struct inet_cork_full { - struct inet_cork base; - struct flowi fl; -}; - -struct ipv6_pinfo; - -struct ip_options_rcu; - -struct ip_mc_socklist; - -struct inet_sock { - struct sock sk; - struct ipv6_pinfo *pinet6; - unsigned long inet_flags; - __be32 inet_saddr; - __s16 uc_ttl; - __be16 inet_sport; - struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt; - atomic_t inet_id; - __u8 tos; - __u8 min_ttl; - __u8 mc_ttl; - __u8 pmtudisc; - __u8 rcv_tos; - __u8 convert_csum; - int uc_index; - int mc_index; - __be32 mc_addr; - u32 local_port_range; - struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list; - struct inet_cork_full cork; -}; - -struct fastopen_queue { - struct request_sock *rskq_rst_head; - struct request_sock *rskq_rst_tail; - spinlock_t lock; - int qlen; - int max_qlen; - struct tcp_fastopen_context __attribute__((btf_type_tag("rcu"))) *ctx; -}; - -struct request_sock_queue { - spinlock_t rskq_lock; - u8 rskq_defer_accept; - u32 synflood_warned; - atomic_t qlen; - atomic_t young; - struct request_sock *rskq_accept_head; - struct request_sock *rskq_accept_tail; - struct fastopen_queue fastopenq; -}; - -struct inet_bind_bucket; - -struct inet_bind2_bucket; - -struct inet_connection_sock_af_ops; - -struct tcp_ulp_ops; - -struct inet_connection_sock { - struct inet_sock icsk_inet; - struct request_sock_queue icsk_accept_queue; - struct inet_bind_bucket *icsk_bind_hash; - struct inet_bind2_bucket *icsk_bind2_hash; - unsigned long icsk_timeout; - struct timer_list icsk_retransmit_timer; - struct timer_list icsk_delack_timer; - __u32 icsk_rto; - __u32 icsk_rto_min; - __u32 icsk_delack_max; - __u32 icsk_pmtu_cookie; - const struct tcp_congestion_ops *icsk_ca_ops; - const struct inet_connection_sock_af_ops *icsk_af_ops; - const struct tcp_ulp_ops *icsk_ulp_ops; - void __attribute__((btf_type_tag("rcu"))) *icsk_ulp_data; - void (*icsk_clean_acked)(struct sock *, u32); - unsigned int (*icsk_sync_mss)(struct sock *, u32); - __u8 icsk_ca_state: 5; - __u8 icsk_ca_initialized: 1; - __u8 icsk_ca_setsockopt: 1; - __u8 icsk_ca_dst_locked: 1; - __u8 icsk_retransmits; - __u8 icsk_pending; - __u8 icsk_backoff; - __u8 icsk_syn_retries; - __u8 icsk_probes_out; - __u16 icsk_ext_hdr_len; - struct { - __u8 pending; - __u8 quick; - __u8 pingpong; - __u8 retry; - __u32 ato: 8; - __u32 lrcv_flowlabel: 20; - __u32 unused: 4; - unsigned long timeout; - __u32 lrcvtime; - __u16 last_seg_size; - __u16 rcv_mss; - } icsk_ack; - struct { - int search_high; - int search_low; - u32 probe_size: 31; - u32 enabled: 1; - u32 probe_timestamp; - } icsk_mtup; - u32 icsk_probes_tstamp; - u32 icsk_user_timeout; - u64 icsk_ca_priv[13]; -}; - -struct minmax_sample { - u32 t; - u32 v; -}; - -struct minmax { - struct minmax_sample s[3]; -}; - -struct tcp_options_received { - int ts_recent_stamp; - u32 ts_recent; - u32 rcv_tsval; - u32 rcv_tsecr; - u16 saw_tstamp: 1; - u16 tstamp_ok: 1; - u16 dsack: 1; - u16 wscale_ok: 1; - u16 sack_ok: 3; - u16 smc_ok: 1; - u16 snd_wscale: 4; - u16 rcv_wscale: 4; - u8 saw_unknown: 1; - u8 unused: 7; - u8 num_sacks; - u16 user_mss; - u16 mss_clamp; -}; - -struct tcp_rack { - u64 mstamp; - u32 rtt_us; - u32 end_seq; - u32 last_delivered; - u8 reo_wnd_steps; - u8 reo_wnd_persist: 5; - u8 dsack_seen: 1; - u8 advanced: 1; -}; - -struct tcp_sack_block { - u32 start_seq; - u32 end_seq; -}; - -struct tcp_fastopen_request; - -struct tcp_sock { - struct inet_connection_sock inet_conn; - __u8 __cacheline_group_begin__tcp_sock_read_tx[0]; - u32 max_window; - u32 rcv_ssthresh; - u32 reordering; - u32 notsent_lowat; - u16 gso_segs; - struct sk_buff *lost_skb_hint; - struct sk_buff *retransmit_skb_hint; - __u8 __cacheline_group_end__tcp_sock_read_tx[0]; - __u8 __cacheline_group_begin__tcp_sock_read_txrx[0]; - u32 tsoffset; - u32 snd_wnd; - u32 mss_cache; - u32 snd_cwnd; - u32 prr_out; - u32 lost_out; - u32 sacked_out; - u16 tcp_header_len; - u8 scaling_ratio; - u8 chrono_type: 2; - u8 repair: 1; - u8 tcp_usec_ts: 1; - u8 is_sack_reneg: 1; - u8 is_cwnd_limited: 1; - __u8 __cacheline_group_end__tcp_sock_read_txrx[0]; - __u8 __cacheline_group_begin__tcp_sock_read_rx[0]; - u32 copied_seq; - u32 rcv_tstamp; - u32 snd_wl1; - u32 tlp_high_seq; - u32 rttvar_us; - u32 retrans_out; - u16 advmss; - u16 urg_data; - u32 lost; - struct minmax rtt_min; - struct rb_root out_of_order_queue; - u32 snd_ssthresh; - __u8 __cacheline_group_end__tcp_sock_read_rx[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - __u8 __cacheline_group_begin__tcp_sock_write_tx[0]; - u32 segs_out; - u32 data_segs_out; - u64 bytes_sent; - u32 snd_sml; - u32 chrono_start; - u32 chrono_stat[3]; - u32 write_seq; - u32 pushed_seq; - u32 lsndtime; - u32 mdev_us; - u32 rtt_seq; - u64 tcp_wstamp_ns; - u64 tcp_clock_cache; - u64 tcp_mstamp; - struct list_head tsorted_sent_queue; - struct sk_buff *highest_sack; - u8 ecn_flags; - __u8 __cacheline_group_end__tcp_sock_write_tx[0]; - __u8 __cacheline_group_begin__tcp_sock_write_txrx[0]; - __be32 pred_flags; - u32 rcv_nxt; - u32 snd_nxt; - u32 snd_una; - u32 window_clamp; - u32 srtt_us; - u32 packets_out; - u32 snd_up; - u32 delivered; - u32 delivered_ce; - u32 app_limited; - u32 rcv_wnd; - struct tcp_options_received rx_opt; - u8 nonagle: 4; - u8 rate_app_limited: 1; - __u8 __cacheline_group_end__tcp_sock_write_txrx[0]; - long: 0; - __u8 __cacheline_group_begin__tcp_sock_write_rx[0]; - u64 bytes_received; - u32 segs_in; - u32 data_segs_in; - u32 rcv_wup; - u32 max_packets_out; - u32 cwnd_usage_seq; - u32 rate_delivered; - u32 rate_interval_us; - u32 rcv_rtt_last_tsecr; - u64 first_tx_mstamp; - u64 delivered_mstamp; - u64 bytes_acked; - struct { - u32 rtt_us; - u32 seq; - u64 time; - } rcv_rtt_est; - struct { - u32 space; - u32 seq; - u64 time; - } rcvq_space; - __u8 __cacheline_group_end__tcp_sock_write_rx[0]; - u32 dsack_dups; - u32 compressed_ack_rcv_nxt; - struct list_head tsq_node; - struct tcp_rack rack; - u8 compressed_ack; - u8 dup_ack_counter: 2; - u8 tlp_retrans: 1; - u8 unused: 5; - u8 thin_lto: 1; - u8 recvmsg_inq: 1; - u8 fastopen_connect: 1; - u8 fastopen_no_cookie: 1; - u8 fastopen_client_fail: 2; - u8 frto: 1; - u8 repair_queue; - u8 save_syn: 2; - u8 syn_data: 1; - u8 syn_fastopen: 1; - u8 syn_fastopen_exp: 1; - u8 syn_fastopen_ch: 1; - u8 syn_data_acked: 1; - u8 keepalive_probes; - u32 tcp_tx_delay; - u32 mdev_max_us; - u32 reord_seen; - u32 snd_cwnd_cnt; - u32 snd_cwnd_clamp; - u32 snd_cwnd_used; - u32 snd_cwnd_stamp; - u32 prior_cwnd; - u32 prr_delivered; - u32 last_oow_ack_time; - struct hrtimer pacing_timer; - struct hrtimer compressed_ack_timer; - struct sk_buff *ooo_last_skb; - struct tcp_sack_block duplicate_sack[1]; - struct tcp_sack_block selective_acks[4]; - struct tcp_sack_block recv_sack_cache[4]; - int lost_cnt_hint; - u32 prior_ssthresh; - u32 high_seq; - u32 retrans_stamp; - u32 undo_marker; - int undo_retrans; - u64 bytes_retrans; - u32 total_retrans; - u32 rto_stamp; - u16 total_rto; - u16 total_rto_recoveries; - u32 total_rto_time; - u32 urg_seq; - unsigned int keepalive_time; - unsigned int keepalive_intvl; - int linger2; - u8 bpf_sock_ops_cb_flags; - u8 bpf_chg_cc_inprogress: 1; - u16 timeout_rehash; - u32 rcv_ooopack; - struct { - u32 probe_seq_start; - u32 probe_seq_end; - } mtu_probe; - u32 plb_rehash; - u32 mtu_info; - struct tcp_fastopen_request *fastopen_req; - struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; - struct saved_syn *saved_syn; - long: 64; -}; - -struct in6_pktinfo { - struct in6_addr ipi6_addr; - int ipi6_ifindex; -}; - -struct ipv6_txoptions; - -struct inet6_cork { - struct ipv6_txoptions *opt; - u8 hop_limit; - u8 tclass; -}; - -struct ipv6_mc_socklist; - -struct ipv6_ac_socklist; - -struct ipv6_fl_socklist; - -struct ipv6_pinfo { - struct in6_addr saddr; - struct in6_pktinfo sticky_pktinfo; - const struct in6_addr *daddr_cache; - __be32 flow_label; - __u32 frag_size; - s16 hop_limit; - u8 mcast_hops; - int ucast_oif; - int mcast_oif; - union { - struct { - __u16 srcrt: 1; - __u16 osrcrt: 1; - __u16 rxinfo: 1; - __u16 rxoinfo: 1; - __u16 rxhlim: 1; - __u16 rxohlim: 1; - __u16 hopopts: 1; - __u16 ohopopts: 1; - __u16 dstopts: 1; - __u16 odstopts: 1; - __u16 rxflow: 1; - __u16 rxtclass: 1; - __u16 rxpmtu: 1; - __u16 rxorigdstaddr: 1; - __u16 recvfragsize: 1; - } bits; - __u16 all; - } rxopt; - __u8 srcprefs; - __u8 pmtudisc; - __u8 min_hopcount; - __u8 tclass; - __be32 rcv_flowinfo; - __u32 dst_cookie; - struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_mc_list; - struct ipv6_ac_socklist *ipv6_ac_list; - struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_fl_list; - struct ipv6_txoptions __attribute__((btf_type_tag("rcu"))) *opt; - struct sk_buff *pktoptions; - struct sk_buff *rxpmtu; - struct inet6_cork cork; -}; - -struct ip6_sf_socklist; - -struct ipv6_mc_socklist { - struct in6_addr addr; - int ifindex; - unsigned int sfmode; - struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *next; - struct ip6_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist; - struct callback_head rcu; -}; - -struct ip6_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - struct in6_addr sl_addr[0]; -}; - -struct ipv6_ac_socklist { - struct in6_addr acl_addr; - int acl_ifindex; - struct ipv6_ac_socklist *acl_next; -}; - -struct ip6_flowlabel; - -struct ipv6_fl_socklist { - struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; - struct ip6_flowlabel *fl; - struct callback_head rcu; -}; - -struct ip6_flowlabel { - struct ip6_flowlabel __attribute__((btf_type_tag("rcu"))) *next; - __be32 label; - atomic_t users; - struct in6_addr dst; - struct ipv6_txoptions *opt; - unsigned long linger; - struct callback_head rcu; - u8 share; - union { - struct pid *pid; - kuid_t uid; - } owner; - unsigned long lastuse; - unsigned long expires; - struct net *fl_net; -}; - -struct ipv6_opt_hdr; - -struct ipv6_rt_hdr; - -struct ipv6_txoptions { - refcount_t refcnt; - int tot_len; - __u16 opt_flen; - __u16 opt_nflen; - struct ipv6_opt_hdr *hopopt; - struct ipv6_opt_hdr *dst0opt; - struct ipv6_rt_hdr *srcrt; - struct ipv6_opt_hdr *dst1opt; - struct callback_head rcu; -}; - -struct ipv6_opt_hdr { - __u8 nexthdr; - __u8 hdrlen; -}; - -struct ipv6_rt_hdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 type; - __u8 segments_left; -}; - -struct ip_options { - __be32 faddr; - __be32 nexthop; - unsigned char optlen; - unsigned char srr; - unsigned char rr; - unsigned char ts; - unsigned char is_strictroute: 1; - unsigned char srr_is_hit: 1; - unsigned char is_changed: 1; - unsigned char rr_needaddr: 1; - unsigned char ts_needtime: 1; - unsigned char ts_needaddr: 1; - unsigned char router_alert; - unsigned char cipso; - unsigned char __pad2; - unsigned char __data[0]; -}; - -struct ip_options_rcu { - struct callback_head rcu; - struct ip_options opt; -}; - -struct ip_mreqn { - struct in_addr imr_multiaddr; - struct in_addr imr_address; - int imr_ifindex; -}; - -struct ip_sf_socklist; - -struct ip_mc_socklist { - struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *next_rcu; - struct ip_mreqn multi; - unsigned int sfmode; - struct ip_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist; - struct callback_head rcu; -}; - -struct inet_bind_bucket { - possible_net_t ib_net; - int l3mdev; - unsigned short port; - signed char fastreuse; - signed char fastreuseport; - kuid_t fastuid; - struct in6_addr fast_v6_rcv_saddr; - __be32 fast_rcv_saddr; - unsigned short fast_sk_family; - bool fast_ipv6_only; - struct hlist_node node; - struct hlist_head bhash2; -}; - -struct inet_bind2_bucket { - possible_net_t ib_net; - int l3mdev; - unsigned short port; - unsigned short addr_type; - struct in6_addr v6_rcv_saddr; - struct hlist_node node; - struct hlist_node bhash_node; - struct hlist_head owners; -}; - -struct inet_connection_sock_af_ops { - int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *); - void (*send_check)(struct sock *, struct sk_buff *); - int (*rebuild_header)(struct sock *); - void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *); - int (*conn_request)(struct sock *, struct sk_buff *); - struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *); - u16 net_header_len; - u16 sockaddr_len; - int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*addr2sockaddr)(struct sock *, struct sockaddr *); - void (*mtu_reduced)(struct sock *); -}; - -struct tcp_ulp_ops { - struct list_head list; - int (*init)(struct sock *); - void (*update)(struct sock *, struct proto *, void (*)(struct sock *)); - void (*release)(struct sock *); - int (*get_info)(struct sock *, struct sk_buff *); - size_t (*get_info_size)(const struct sock *); - void (*clone)(const struct request_sock *, struct sock *, const gfp_t); - char name[16]; - struct module *owner; -}; - -struct tcp_fastopen_cookie { - __le64 val[2]; - s8 len; - bool exp; -}; - -struct tcp_fastopen_request { - struct tcp_fastopen_cookie cookie; - struct msghdr *data; - size_t size; - int copied; - struct ubuf_info *uarg; +struct crypto_aead { + unsigned int authsize; + unsigned int reqsize; + struct crypto_tfm base; }; struct inet_skb_parm { @@ -35367,27 +39053,109 @@ struct tcp_skb_cb { }; }; -struct inet_request_sock { - struct request_sock req; - u16 snd_wscale: 4; - u16 rcv_wscale: 4; - u16 tstamp_ok: 1; - u16 sack_ok: 1; - u16 wscale_ok: 1; - u16 ecn_ok: 1; - u16 acked: 1; - u16 no_srccheck: 1; - u16 smc_ok: 1; - u32 ir_mark; +struct tls_prot_info { + u16 version; + u16 cipher_type; + u16 prepend_size; + u16 tag_size; + u16 overhead_size; + u16 iv_size; + u16 salt_size; + u16 rec_seq_size; + u16 aad_size; + u16 tail_size; +}; + +struct cipher_context { + char iv[20]; + char rec_seq[8]; +}; + +struct tls_crypto_info { + __u16 version; + __u16 cipher_type; +}; + +struct tls12_crypto_info_aes_gcm_128 { + struct tls_crypto_info info; + unsigned char iv[8]; + unsigned char key[16]; + unsigned char salt[4]; + unsigned char rec_seq[8]; +}; + +struct tls12_crypto_info_aes_gcm_256 { + struct tls_crypto_info info; + unsigned char iv[8]; + unsigned char key[32]; + unsigned char salt[4]; + unsigned char rec_seq[8]; +}; + +struct tls12_crypto_info_chacha20_poly1305 { + struct tls_crypto_info info; + unsigned char iv[12]; + unsigned char key[32]; + unsigned char salt[0]; + unsigned char rec_seq[8]; +}; + +struct tls12_crypto_info_sm4_gcm { + struct tls_crypto_info info; + unsigned char iv[8]; + unsigned char key[16]; + unsigned char salt[4]; + unsigned char rec_seq[8]; +}; + +struct tls12_crypto_info_sm4_ccm { + struct tls_crypto_info info; + unsigned char iv[8]; + unsigned char key[16]; + unsigned char salt[4]; + unsigned char rec_seq[8]; +}; + +union tls_crypto_context { + struct tls_crypto_info info; union { - struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *ireq_opt; - struct { - struct ipv6_txoptions *ipv6_opt; - struct sk_buff *pktopts; - }; + struct tls12_crypto_info_aes_gcm_128 aes_gcm_128; + struct tls12_crypto_info_aes_gcm_256 aes_gcm_256; + struct tls12_crypto_info_chacha20_poly1305 chacha20_poly1305; + struct tls12_crypto_info_sm4_gcm sm4_gcm; + struct tls12_crypto_info_sm4_ccm sm4_ccm; }; }; +struct tls_context { + struct tls_prot_info prot_info; + u8 tx_conf: 3; + u8 rx_conf: 3; + u8 zerocopy_sendfile: 1; + u8 rx_no_pad: 1; + int (*push_pending_record)(struct sock *, int); + void (*sk_write_space)(struct sock *); + void *priv_ctx_tx; + void *priv_ctx_rx; + struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; + struct cipher_context tx; + struct cipher_context rx; + struct scatterlist *partially_sent_record; + u16 partially_sent_offset; + bool splicing_pages; + bool pending_open_record_frags; + struct mutex tx_lock; + unsigned long flags; + struct proto *sk_proto; + struct sock *sk; + void (*sk_destruct)(struct sock *); + union tls_crypto_context crypto_send; + union tls_crypto_context crypto_recv; + struct list_head list; + refcount_t refcount; + struct callback_head rcu; +}; + enum nl80211_key_mode { NL80211_KEY_RX_TX = 0, NL80211_KEY_NO_TX = 1, @@ -35423,6 +39191,46 @@ struct cfg80211_internal_bss { struct cfg80211_bss pub; }; +typedef void (*btf_trace_rdev_suspend)(void *, struct wiphy *, struct cfg80211_wowlan *); + +typedef void (*btf_trace_rdev_return_int)(void *, struct wiphy *, int); + +typedef void (*btf_trace_rdev_scan)(void *, struct wiphy *, struct cfg80211_scan_request *); + +typedef void (*btf_trace_rdev_resume)(void *, struct wiphy *); + +typedef void (*btf_trace_rdev_return_void)(void *, struct wiphy *); + +typedef void (*btf_trace_rdev_get_antenna)(void *, struct wiphy *); + +typedef void (*btf_trace_rdev_rfkill_poll)(void *, struct wiphy *); + +typedef void (*btf_trace_rdev_set_wakeup)(void *, struct wiphy *, bool); + +typedef void (*btf_trace_rdev_add_virtual_intf)(void *, struct wiphy *, char *, enum nl80211_iftype); + +typedef void (*btf_trace_rdev_return_wdev)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_del_virtual_intf)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_change_virtual_intf)(void *, struct wiphy *, struct net_device *, enum nl80211_iftype); + +typedef void (*btf_trace_rdev_get_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *); + +typedef void (*btf_trace_rdev_del_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *); + +typedef void (*btf_trace_rdev_add_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *, u8); + +typedef void (*btf_trace_rdev_set_default_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, bool); + +typedef void (*btf_trace_rdev_set_default_mgmt_key)(void *, struct wiphy *, struct net_device *, int, u8); + +typedef void (*btf_trace_rdev_set_default_beacon_key)(void *, struct wiphy *, struct net_device *, int, u8); + +struct cfg80211_ap_settings; + +typedef void (*btf_trace_rdev_start_ap)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_settings *); + enum nl80211_hidden_ssid { NL80211_HIDDEN_SSID_NOT_IN_USE = 0, NL80211_HIDDEN_SSID_ZERO_LEN = 1, @@ -35436,6 +39244,24 @@ enum nl80211_sae_pwe_mechanism { NL80211_SAE_PWE_BOTH = 3, }; +struct cfg80211_crypto_settings { + u32 wpa_versions; + u32 cipher_group; + int n_ciphers_pairwise; + u32 ciphers_pairwise[5]; + int n_akm_suites; + u32 akm_suites[10]; + bool control_port; + __be16 control_port_ethertype; + bool control_port_no_encrypt; + bool control_port_over_nl80211; + bool control_port_no_preauth; + const u8 *psk; + const u8 *sae_pwd; + u8 sae_pwd_len; + enum nl80211_sae_pwe_mechanism sae_pwe; +}; + enum nl80211_auth_type { NL80211_AUTHTYPE_OPEN_SYSTEM = 0, NL80211_AUTHTYPE_SHARED_KEY = 1, @@ -35458,1149 +39284,6 @@ enum nl80211_smps_mode { NL80211_SMPS_MAX = 2, }; -enum nl80211_acl_policy { - NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0, - NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 1, -}; - -enum nl80211_mesh_power_mode { - NL80211_MESH_POWER_UNKNOWN = 0, - NL80211_MESH_POWER_ACTIVE = 1, - NL80211_MESH_POWER_LIGHT_SLEEP = 2, - NL80211_MESH_POWER_DEEP_SLEEP = 3, - __NL80211_MESH_POWER_AFTER_LAST = 4, - NL80211_MESH_POWER_MAX = 3, -}; - -enum nl80211_ac { - NL80211_AC_VO = 0, - NL80211_AC_VI = 1, - NL80211_AC_BE = 2, - NL80211_AC_BK = 3, - NL80211_NUM_ACS = 4, -}; - -enum nl80211_mfp { - NL80211_MFP_NO = 0, - NL80211_MFP_REQUIRED = 1, - NL80211_MFP_OPTIONAL = 2, -}; - -enum nl80211_bss_select_attr { - __NL80211_BSS_SELECT_ATTR_INVALID = 0, - NL80211_BSS_SELECT_ATTR_RSSI = 1, - NL80211_BSS_SELECT_ATTR_BAND_PREF = 2, - NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 3, - __NL80211_BSS_SELECT_ATTR_AFTER_LAST = 4, - NL80211_BSS_SELECT_ATTR_MAX = 3, -}; - -enum nl80211_tdls_operation { - NL80211_TDLS_DISCOVERY_REQ = 0, - NL80211_TDLS_SETUP = 1, - NL80211_TDLS_TEARDOWN = 2, - NL80211_TDLS_ENABLE_LINK = 3, - NL80211_TDLS_DISABLE_LINK = 4, -}; - -enum nl80211_crit_proto_id { - NL80211_CRIT_PROTO_UNSPEC = 0, - NL80211_CRIT_PROTO_DHCP = 1, - NL80211_CRIT_PROTO_EAPOL = 2, - NL80211_CRIT_PROTO_APIPA = 3, - NUM_NL80211_CRIT_PROTO = 4, -}; - -enum nl80211_coalesce_condition { - NL80211_COALESCE_CONDITION_MATCH = 0, - NL80211_COALESCE_CONDITION_NO_MATCH = 1, -}; - -enum nl80211_nan_function_type { - NL80211_NAN_FUNC_PUBLISH = 0, - NL80211_NAN_FUNC_SUBSCRIBE = 1, - NL80211_NAN_FUNC_FOLLOW_UP = 2, - __NL80211_NAN_FUNC_TYPE_AFTER_LAST = 3, - NL80211_NAN_FUNC_MAX_TYPE = 2, -}; - -enum nl80211_external_auth_action { - NL80211_EXTERNAL_AUTH_START = 0, - NL80211_EXTERNAL_AUTH_ABORT = 1, -}; - -enum nl80211_preamble { - NL80211_PREAMBLE_LEGACY = 0, - NL80211_PREAMBLE_HT = 1, - NL80211_PREAMBLE_VHT = 2, - NL80211_PREAMBLE_DMG = 3, - NL80211_PREAMBLE_HE = 4, -}; - -enum nl80211_tid_config { - NL80211_TID_CONFIG_ENABLE = 0, - NL80211_TID_CONFIG_DISABLE = 1, -}; - -enum nl80211_tx_rate_setting { - NL80211_TX_RATE_AUTOMATIC = 0, - NL80211_TX_RATE_LIMITED = 1, - NL80211_TX_RATE_FIXED = 2, -}; - -enum nl80211_timeout_reason { - NL80211_TIMEOUT_UNSPECIFIED = 0, - NL80211_TIMEOUT_SCAN = 1, - NL80211_TIMEOUT_AUTH = 2, - NL80211_TIMEOUT_ASSOC = 3, -}; - -enum ieee80211_statuscode { - WLAN_STATUS_SUCCESS = 0, - WLAN_STATUS_UNSPECIFIED_FAILURE = 1, - WLAN_STATUS_CAPS_UNSUPPORTED = 10, - WLAN_STATUS_REASSOC_NO_ASSOC = 11, - WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12, - WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13, - WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14, - WLAN_STATUS_CHALLENGE_FAIL = 15, - WLAN_STATUS_AUTH_TIMEOUT = 16, - WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17, - WLAN_STATUS_ASSOC_DENIED_RATES = 18, - WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19, - WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20, - WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21, - WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22, - WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23, - WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24, - WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25, - WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26, - WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY = 30, - WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31, - WLAN_STATUS_INVALID_IE = 40, - WLAN_STATUS_INVALID_GROUP_CIPHER = 41, - WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42, - WLAN_STATUS_INVALID_AKMP = 43, - WLAN_STATUS_UNSUPP_RSN_VERSION = 44, - WLAN_STATUS_INVALID_RSN_IE_CAP = 45, - WLAN_STATUS_CIPHER_SUITE_REJECTED = 46, - WLAN_STATUS_UNSPECIFIED_QOS = 32, - WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33, - WLAN_STATUS_ASSOC_DENIED_LOWACK = 34, - WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35, - WLAN_STATUS_REQUEST_DECLINED = 37, - WLAN_STATUS_INVALID_QOS_PARAM = 38, - WLAN_STATUS_CHANGE_TSPEC = 39, - WLAN_STATUS_WAIT_TS_DELAY = 47, - WLAN_STATUS_NO_DIRECT_LINK = 48, - WLAN_STATUS_STA_NOT_PRESENT = 49, - WLAN_STATUS_STA_NOT_QSTA = 50, - WLAN_STATUS_ANTI_CLOG_REQUIRED = 76, - WLAN_STATUS_FCG_NOT_SUPP = 78, - WLAN_STATUS_STA_NO_TBTT = 78, - WLAN_STATUS_REJECTED_WITH_SUGGESTED_CHANGES = 39, - WLAN_STATUS_REJECTED_FOR_DELAY_PERIOD = 47, - WLAN_STATUS_REJECT_WITH_SCHEDULE = 83, - WLAN_STATUS_PENDING_ADMITTING_FST_SESSION = 86, - WLAN_STATUS_PERFORMING_FST_NOW = 87, - WLAN_STATUS_PENDING_GAP_IN_BA_WINDOW = 88, - WLAN_STATUS_REJECT_U_PID_SETTING = 89, - WLAN_STATUS_REJECT_DSE_BAND = 96, - WLAN_STATUS_DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99, - WLAN_STATUS_DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103, - WLAN_STATUS_FILS_AUTHENTICATION_FAILURE = 108, - WLAN_STATUS_UNKNOWN_AUTHENTICATION_SERVER = 109, - WLAN_STATUS_SAE_HASH_TO_ELEMENT = 126, - WLAN_STATUS_SAE_PK = 127, - WLAN_STATUS_DENIED_TID_TO_LINK_MAPPING = 133, - WLAN_STATUS_PREF_TID_TO_LINK_MAPPING_SUGGESTED = 134, -}; - -enum nl80211_key_type { - NL80211_KEYTYPE_GROUP = 0, - NL80211_KEYTYPE_PAIRWISE = 1, - NL80211_KEYTYPE_PEERKEY = 2, - NUM_NL80211_KEYTYPES = 3, -}; - -enum wiphy_flags { - WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = 1, - WIPHY_FLAG_SUPPORTS_MLO = 2, - WIPHY_FLAG_SPLIT_SCAN_6GHZ = 4, - WIPHY_FLAG_NETNS_OK = 8, - WIPHY_FLAG_PS_ON_BY_DEFAULT = 16, - WIPHY_FLAG_4ADDR_AP = 32, - WIPHY_FLAG_4ADDR_STATION = 64, - WIPHY_FLAG_CONTROL_PORT_PROTOCOL = 128, - WIPHY_FLAG_IBSS_RSN = 256, - WIPHY_FLAG_DISABLE_WEXT = 512, - WIPHY_FLAG_MESH_AUTH = 1024, - WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = 2048, - WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY = 4096, - WIPHY_FLAG_SUPPORTS_FW_ROAM = 8192, - WIPHY_FLAG_AP_UAPSD = 16384, - WIPHY_FLAG_SUPPORTS_TDLS = 32768, - WIPHY_FLAG_TDLS_EXTERNAL_SETUP = 65536, - WIPHY_FLAG_HAVE_AP_SME = 131072, - WIPHY_FLAG_REPORTS_OBSS = 262144, - WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = 524288, - WIPHY_FLAG_OFFCHAN_TX = 1048576, - WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = 2097152, - WIPHY_FLAG_SUPPORTS_5_10_MHZ = 4194304, - WIPHY_FLAG_HAS_CHANNEL_SWITCH = 8388608, - WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER = 16777216, - WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON = 33554432, -}; - -enum ieee80211_reasoncode { - WLAN_REASON_UNSPECIFIED = 1, - WLAN_REASON_PREV_AUTH_NOT_VALID = 2, - WLAN_REASON_DEAUTH_LEAVING = 3, - WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4, - WLAN_REASON_DISASSOC_AP_BUSY = 5, - WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6, - WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7, - WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8, - WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9, - WLAN_REASON_DISASSOC_BAD_POWER = 10, - WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11, - WLAN_REASON_INVALID_IE = 13, - WLAN_REASON_MIC_FAILURE = 14, - WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15, - WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16, - WLAN_REASON_IE_DIFFERENT = 17, - WLAN_REASON_INVALID_GROUP_CIPHER = 18, - WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19, - WLAN_REASON_INVALID_AKMP = 20, - WLAN_REASON_UNSUPP_RSN_VERSION = 21, - WLAN_REASON_INVALID_RSN_IE_CAP = 22, - WLAN_REASON_IEEE8021X_FAILED = 23, - WLAN_REASON_CIPHER_SUITE_REJECTED = 24, - WLAN_REASON_TDLS_TEARDOWN_UNREACHABLE = 25, - WLAN_REASON_TDLS_TEARDOWN_UNSPECIFIED = 26, - WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32, - WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33, - WLAN_REASON_DISASSOC_LOW_ACK = 34, - WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35, - WLAN_REASON_QSTA_LEAVE_QBSS = 36, - WLAN_REASON_QSTA_NOT_USE = 37, - WLAN_REASON_QSTA_REQUIRE_SETUP = 38, - WLAN_REASON_QSTA_TIMEOUT = 39, - WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45, - WLAN_REASON_MESH_PEER_CANCELED = 52, - WLAN_REASON_MESH_MAX_PEERS = 53, - WLAN_REASON_MESH_CONFIG = 54, - WLAN_REASON_MESH_CLOSE = 55, - WLAN_REASON_MESH_MAX_RETRIES = 56, - WLAN_REASON_MESH_CONFIRM_TIMEOUT = 57, - WLAN_REASON_MESH_INVALID_GTK = 58, - WLAN_REASON_MESH_INCONSISTENT_PARAM = 59, - WLAN_REASON_MESH_INVALID_SECURITY = 60, - WLAN_REASON_MESH_PATH_ERROR = 61, - WLAN_REASON_MESH_PATH_NOFORWARD = 62, - WLAN_REASON_MESH_PATH_DEST_UNREACHABLE = 63, - WLAN_REASON_MAC_EXISTS_IN_MBSS = 64, - WLAN_REASON_MESH_CHAN_REGULATORY = 65, - WLAN_REASON_MESH_CHAN = 66, -}; - -enum ieee80211_category { - WLAN_CATEGORY_SPECTRUM_MGMT = 0, - WLAN_CATEGORY_QOS = 1, - WLAN_CATEGORY_DLS = 2, - WLAN_CATEGORY_BACK = 3, - WLAN_CATEGORY_PUBLIC = 4, - WLAN_CATEGORY_RADIO_MEASUREMENT = 5, - WLAN_CATEGORY_FAST_BBS_TRANSITION = 6, - WLAN_CATEGORY_HT = 7, - WLAN_CATEGORY_SA_QUERY = 8, - WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9, - WLAN_CATEGORY_WNM = 10, - WLAN_CATEGORY_WNM_UNPROTECTED = 11, - WLAN_CATEGORY_TDLS = 12, - WLAN_CATEGORY_MESH_ACTION = 13, - WLAN_CATEGORY_MULTIHOP_ACTION = 14, - WLAN_CATEGORY_SELF_PROTECTED = 15, - WLAN_CATEGORY_DMG = 16, - WLAN_CATEGORY_WMM = 17, - WLAN_CATEGORY_FST = 18, - WLAN_CATEGORY_UNPROT_DMG = 20, - WLAN_CATEGORY_VHT = 21, - WLAN_CATEGORY_S1G = 22, - WLAN_CATEGORY_PROTECTED_EHT = 37, - WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, - WLAN_CATEGORY_VENDOR_SPECIFIC = 127, -}; - -enum nl80211_radar_event { - NL80211_RADAR_DETECTED = 0, - NL80211_RADAR_CAC_FINISHED = 1, - NL80211_RADAR_CAC_ABORTED = 2, - NL80211_RADAR_NOP_FINISHED = 3, - NL80211_RADAR_PRE_CAC_EXPIRED = 4, - NL80211_RADAR_CAC_STARTED = 5, -}; - -enum nl80211_channel_type { - NL80211_CHAN_NO_HT = 0, - NL80211_CHAN_HT20 = 1, - NL80211_CHAN_HT40MINUS = 2, - NL80211_CHAN_HT40PLUS = 3, -}; - -enum nl80211_ext_feature_index { - NL80211_EXT_FEATURE_VHT_IBSS = 0, - NL80211_EXT_FEATURE_RRM = 1, - NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 2, - NL80211_EXT_FEATURE_SCAN_START_TIME = 3, - NL80211_EXT_FEATURE_BSS_PARENT_TSF = 4, - NL80211_EXT_FEATURE_SET_SCAN_DWELL = 5, - NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 6, - NL80211_EXT_FEATURE_BEACON_RATE_HT = 7, - NL80211_EXT_FEATURE_BEACON_RATE_VHT = 8, - NL80211_EXT_FEATURE_FILS_STA = 9, - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 10, - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 11, - NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 12, - NL80211_EXT_FEATURE_CQM_RSSI_LIST = 13, - NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 14, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 15, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 16, - NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 17, - NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 18, - NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 19, - NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20, - NL80211_EXT_FEATURE_MFP_OPTIONAL = 21, - NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 22, - NL80211_EXT_FEATURE_LOW_POWER_SCAN = 23, - NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 24, - NL80211_EXT_FEATURE_DFS_OFFLOAD = 25, - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 26, - NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 27, - NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 27, - NL80211_EXT_FEATURE_TXQS = 28, - NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 29, - NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 30, - NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 31, - NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 32, - NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 33, - NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 34, - NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35, - NL80211_EXT_FEATURE_EXT_KEY_ID = 36, - NL80211_EXT_FEATURE_STA_TX_PWR = 37, - NL80211_EXT_FEATURE_SAE_OFFLOAD = 38, - NL80211_EXT_FEATURE_VLAN_OFFLOAD = 39, - NL80211_EXT_FEATURE_AQL = 40, - NL80211_EXT_FEATURE_BEACON_PROTECTION = 41, - NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 42, - NL80211_EXT_FEATURE_PROTECTED_TWT = 43, - NL80211_EXT_FEATURE_DEL_IBSS_STA = 44, - NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 45, - NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 46, - NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 47, - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 48, - NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 49, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 50, - NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51, - NL80211_EXT_FEATURE_FILS_DISCOVERY = 52, - NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53, - NL80211_EXT_FEATURE_BEACON_RATE_HE = 54, - NL80211_EXT_FEATURE_SECURE_LTF = 55, - NL80211_EXT_FEATURE_SECURE_RTT = 56, - NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57, - NL80211_EXT_FEATURE_BSS_COLOR = 58, - NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 59, - NL80211_EXT_FEATURE_RADAR_BACKGROUND = 60, - NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 61, - NL80211_EXT_FEATURE_PUNCT = 62, - NL80211_EXT_FEATURE_SECURE_NAN = 63, - NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 64, - NL80211_EXT_FEATURE_OWE_OFFLOAD = 65, - NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 66, - NL80211_EXT_FEATURE_DFS_CONCURRENT = 67, - NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 68, - NUM_NL80211_EXT_FEATURES = 69, - MAX_NL80211_EXT_FEATURES = 68, -}; - -enum ieee80211_eid_ext { - WLAN_EID_EXT_ASSOC_DELAY_INFO = 1, - WLAN_EID_EXT_FILS_REQ_PARAMS = 2, - WLAN_EID_EXT_FILS_KEY_CONFIRM = 3, - WLAN_EID_EXT_FILS_SESSION = 4, - WLAN_EID_EXT_FILS_HLP_CONTAINER = 5, - WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN = 6, - WLAN_EID_EXT_KEY_DELIVERY = 7, - WLAN_EID_EXT_FILS_WRAPPED_DATA = 8, - WLAN_EID_EXT_FILS_PUBLIC_KEY = 12, - WLAN_EID_EXT_FILS_NONCE = 13, - WLAN_EID_EXT_FUTURE_CHAN_GUIDANCE = 14, - WLAN_EID_EXT_HE_CAPABILITY = 35, - WLAN_EID_EXT_HE_OPERATION = 36, - WLAN_EID_EXT_UORA = 37, - WLAN_EID_EXT_HE_MU_EDCA = 38, - WLAN_EID_EXT_HE_SPR = 39, - WLAN_EID_EXT_NDP_FEEDBACK_REPORT_PARAMSET = 41, - WLAN_EID_EXT_BSS_COLOR_CHG_ANN = 42, - WLAN_EID_EXT_QUIET_TIME_PERIOD_SETUP = 43, - WLAN_EID_EXT_ESS_REPORT = 45, - WLAN_EID_EXT_OPS = 46, - WLAN_EID_EXT_HE_BSS_LOAD = 47, - WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME = 52, - WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION = 55, - WLAN_EID_EXT_NON_INHERITANCE = 56, - WLAN_EID_EXT_KNOWN_BSSID = 57, - WLAN_EID_EXT_SHORT_SSID_LIST = 58, - WLAN_EID_EXT_HE_6GHZ_CAPA = 59, - WLAN_EID_EXT_UL_MU_POWER_CAPA = 60, - WLAN_EID_EXT_EHT_OPERATION = 106, - WLAN_EID_EXT_EHT_MULTI_LINK = 107, - WLAN_EID_EXT_EHT_CAPABILITY = 108, - WLAN_EID_EXT_TID_TO_LINK_MAPPING = 109, - WLAN_EID_EXT_BANDWIDTH_INDICATION = 135, -}; - -enum ieee80211_eid { - WLAN_EID_SSID = 0, - WLAN_EID_SUPP_RATES = 1, - WLAN_EID_FH_PARAMS = 2, - WLAN_EID_DS_PARAMS = 3, - WLAN_EID_CF_PARAMS = 4, - WLAN_EID_TIM = 5, - WLAN_EID_IBSS_PARAMS = 6, - WLAN_EID_COUNTRY = 7, - WLAN_EID_REQUEST = 10, - WLAN_EID_QBSS_LOAD = 11, - WLAN_EID_EDCA_PARAM_SET = 12, - WLAN_EID_TSPEC = 13, - WLAN_EID_TCLAS = 14, - WLAN_EID_SCHEDULE = 15, - WLAN_EID_CHALLENGE = 16, - WLAN_EID_PWR_CONSTRAINT = 32, - WLAN_EID_PWR_CAPABILITY = 33, - WLAN_EID_TPC_REQUEST = 34, - WLAN_EID_TPC_REPORT = 35, - WLAN_EID_SUPPORTED_CHANNELS = 36, - WLAN_EID_CHANNEL_SWITCH = 37, - WLAN_EID_MEASURE_REQUEST = 38, - WLAN_EID_MEASURE_REPORT = 39, - WLAN_EID_QUIET = 40, - WLAN_EID_IBSS_DFS = 41, - WLAN_EID_ERP_INFO = 42, - WLAN_EID_TS_DELAY = 43, - WLAN_EID_TCLAS_PROCESSING = 44, - WLAN_EID_HT_CAPABILITY = 45, - WLAN_EID_QOS_CAPA = 46, - WLAN_EID_RSN = 48, - WLAN_EID_802_15_COEX = 49, - WLAN_EID_EXT_SUPP_RATES = 50, - WLAN_EID_AP_CHAN_REPORT = 51, - WLAN_EID_NEIGHBOR_REPORT = 52, - WLAN_EID_RCPI = 53, - WLAN_EID_MOBILITY_DOMAIN = 54, - WLAN_EID_FAST_BSS_TRANSITION = 55, - WLAN_EID_TIMEOUT_INTERVAL = 56, - WLAN_EID_RIC_DATA = 57, - WLAN_EID_DSE_REGISTERED_LOCATION = 58, - WLAN_EID_SUPPORTED_REGULATORY_CLASSES = 59, - WLAN_EID_EXT_CHANSWITCH_ANN = 60, - WLAN_EID_HT_OPERATION = 61, - WLAN_EID_SECONDARY_CHANNEL_OFFSET = 62, - WLAN_EID_BSS_AVG_ACCESS_DELAY = 63, - WLAN_EID_ANTENNA_INFO = 64, - WLAN_EID_RSNI = 65, - WLAN_EID_MEASUREMENT_PILOT_TX_INFO = 66, - WLAN_EID_BSS_AVAILABLE_CAPACITY = 67, - WLAN_EID_BSS_AC_ACCESS_DELAY = 68, - WLAN_EID_TIME_ADVERTISEMENT = 69, - WLAN_EID_RRM_ENABLED_CAPABILITIES = 70, - WLAN_EID_MULTIPLE_BSSID = 71, - WLAN_EID_BSS_COEX_2040 = 72, - WLAN_EID_BSS_INTOLERANT_CHL_REPORT = 73, - WLAN_EID_OVERLAP_BSS_SCAN_PARAM = 74, - WLAN_EID_RIC_DESCRIPTOR = 75, - WLAN_EID_MMIE = 76, - WLAN_EID_ASSOC_COMEBACK_TIME = 77, - WLAN_EID_EVENT_REQUEST = 78, - WLAN_EID_EVENT_REPORT = 79, - WLAN_EID_DIAGNOSTIC_REQUEST = 80, - WLAN_EID_DIAGNOSTIC_REPORT = 81, - WLAN_EID_LOCATION_PARAMS = 82, - WLAN_EID_NON_TX_BSSID_CAP = 83, - WLAN_EID_SSID_LIST = 84, - WLAN_EID_MULTI_BSSID_IDX = 85, - WLAN_EID_FMS_DESCRIPTOR = 86, - WLAN_EID_FMS_REQUEST = 87, - WLAN_EID_FMS_RESPONSE = 88, - WLAN_EID_QOS_TRAFFIC_CAPA = 89, - WLAN_EID_BSS_MAX_IDLE_PERIOD = 90, - WLAN_EID_TSF_REQUEST = 91, - WLAN_EID_TSF_RESPOSNE = 92, - WLAN_EID_WNM_SLEEP_MODE = 93, - WLAN_EID_TIM_BCAST_REQ = 94, - WLAN_EID_TIM_BCAST_RESP = 95, - WLAN_EID_COLL_IF_REPORT = 96, - WLAN_EID_CHANNEL_USAGE = 97, - WLAN_EID_TIME_ZONE = 98, - WLAN_EID_DMS_REQUEST = 99, - WLAN_EID_DMS_RESPONSE = 100, - WLAN_EID_LINK_ID = 101, - WLAN_EID_WAKEUP_SCHEDUL = 102, - WLAN_EID_CHAN_SWITCH_TIMING = 104, - WLAN_EID_PTI_CONTROL = 105, - WLAN_EID_PU_BUFFER_STATUS = 106, - WLAN_EID_INTERWORKING = 107, - WLAN_EID_ADVERTISEMENT_PROTOCOL = 108, - WLAN_EID_EXPEDITED_BW_REQ = 109, - WLAN_EID_QOS_MAP_SET = 110, - WLAN_EID_ROAMING_CONSORTIUM = 111, - WLAN_EID_EMERGENCY_ALERT = 112, - WLAN_EID_MESH_CONFIG = 113, - WLAN_EID_MESH_ID = 114, - WLAN_EID_LINK_METRIC_REPORT = 115, - WLAN_EID_CONGESTION_NOTIFICATION = 116, - WLAN_EID_PEER_MGMT = 117, - WLAN_EID_CHAN_SWITCH_PARAM = 118, - WLAN_EID_MESH_AWAKE_WINDOW = 119, - WLAN_EID_BEACON_TIMING = 120, - WLAN_EID_MCCAOP_SETUP_REQ = 121, - WLAN_EID_MCCAOP_SETUP_RESP = 122, - WLAN_EID_MCCAOP_ADVERT = 123, - WLAN_EID_MCCAOP_TEARDOWN = 124, - WLAN_EID_GANN = 125, - WLAN_EID_RANN = 126, - WLAN_EID_EXT_CAPABILITY = 127, - WLAN_EID_PREQ = 130, - WLAN_EID_PREP = 131, - WLAN_EID_PERR = 132, - WLAN_EID_PXU = 137, - WLAN_EID_PXUC = 138, - WLAN_EID_AUTH_MESH_PEER_EXCH = 139, - WLAN_EID_MIC = 140, - WLAN_EID_DESTINATION_URI = 141, - WLAN_EID_UAPSD_COEX = 142, - WLAN_EID_WAKEUP_SCHEDULE = 143, - WLAN_EID_EXT_SCHEDULE = 144, - WLAN_EID_STA_AVAILABILITY = 145, - WLAN_EID_DMG_TSPEC = 146, - WLAN_EID_DMG_AT = 147, - WLAN_EID_DMG_CAP = 148, - WLAN_EID_CISCO_VENDOR_SPECIFIC = 150, - WLAN_EID_DMG_OPERATION = 151, - WLAN_EID_DMG_BSS_PARAM_CHANGE = 152, - WLAN_EID_DMG_BEAM_REFINEMENT = 153, - WLAN_EID_CHANNEL_MEASURE_FEEDBACK = 154, - WLAN_EID_AWAKE_WINDOW = 157, - WLAN_EID_MULTI_BAND = 158, - WLAN_EID_ADDBA_EXT = 159, - WLAN_EID_NEXT_PCP_LIST = 160, - WLAN_EID_PCP_HANDOVER = 161, - WLAN_EID_DMG_LINK_MARGIN = 162, - WLAN_EID_SWITCHING_STREAM = 163, - WLAN_EID_SESSION_TRANSITION = 164, - WLAN_EID_DYN_TONE_PAIRING_REPORT = 165, - WLAN_EID_CLUSTER_REPORT = 166, - WLAN_EID_RELAY_CAP = 167, - WLAN_EID_RELAY_XFER_PARAM_SET = 168, - WLAN_EID_BEAM_LINK_MAINT = 169, - WLAN_EID_MULTIPLE_MAC_ADDR = 170, - WLAN_EID_U_PID = 171, - WLAN_EID_DMG_LINK_ADAPT_ACK = 172, - WLAN_EID_MCCAOP_ADV_OVERVIEW = 174, - WLAN_EID_QUIET_PERIOD_REQ = 175, - WLAN_EID_QUIET_PERIOD_RESP = 177, - WLAN_EID_EPAC_POLICY = 182, - WLAN_EID_CLISTER_TIME_OFF = 183, - WLAN_EID_INTER_AC_PRIO = 184, - WLAN_EID_SCS_DESCRIPTOR = 185, - WLAN_EID_QLOAD_REPORT = 186, - WLAN_EID_HCCA_TXOP_UPDATE_COUNT = 187, - WLAN_EID_HL_STREAM_ID = 188, - WLAN_EID_GCR_GROUP_ADDR = 189, - WLAN_EID_ANTENNA_SECTOR_ID_PATTERN = 190, - WLAN_EID_VHT_CAPABILITY = 191, - WLAN_EID_VHT_OPERATION = 192, - WLAN_EID_EXTENDED_BSS_LOAD = 193, - WLAN_EID_WIDE_BW_CHANNEL_SWITCH = 194, - WLAN_EID_TX_POWER_ENVELOPE = 195, - WLAN_EID_CHANNEL_SWITCH_WRAPPER = 196, - WLAN_EID_AID = 197, - WLAN_EID_QUIET_CHANNEL = 198, - WLAN_EID_OPMODE_NOTIF = 199, - WLAN_EID_REDUCED_NEIGHBOR_REPORT = 201, - WLAN_EID_AID_REQUEST = 210, - WLAN_EID_AID_RESPONSE = 211, - WLAN_EID_S1G_BCN_COMPAT = 213, - WLAN_EID_S1G_SHORT_BCN_INTERVAL = 214, - WLAN_EID_S1G_TWT = 216, - WLAN_EID_S1G_CAPABILITIES = 217, - WLAN_EID_VENDOR_SPECIFIC = 221, - WLAN_EID_QOS_PARAMETER = 222, - WLAN_EID_S1G_OPERATION = 232, - WLAN_EID_CAG_NUMBER = 237, - WLAN_EID_AP_CSN = 239, - WLAN_EID_FILS_INDICATION = 240, - WLAN_EID_DILS = 241, - WLAN_EID_FRAGMENT = 242, - WLAN_EID_RSNX = 244, - WLAN_EID_EXTENSION = 255, -}; - -struct ieee80211_ext_chansw_ie { - u8 mode; - u8 new_operating_class; - u8 new_ch_num; - u8 count; -}; - -struct ieee80211_msrment_ie { - u8 token; - u8 mode; - u8 type; - u8 request[0]; -}; - -struct ieee80211_tpc_report_ie { - u8 tx_power; - u8 link_margin; -}; - -struct ieee80211_mgmt { - __le16 frame_control; - __le16 duration; - u8 da[6]; - u8 sa[6]; - u8 bssid[6]; - __le16 seq_ctrl; - union { - struct { - __le16 auth_alg; - __le16 auth_transaction; - __le16 status_code; - u8 variable[0]; - } auth; - struct { - __le16 reason_code; - } deauth; - struct { - __le16 capab_info; - __le16 listen_interval; - u8 variable[0]; - } assoc_req; - struct { - __le16 capab_info; - __le16 status_code; - __le16 aid; - u8 variable[0]; - } assoc_resp; - struct { - __le16 capab_info; - __le16 status_code; - __le16 aid; - u8 variable[0]; - } reassoc_resp; - struct { - __le16 capab_info; - __le16 status_code; - u8 variable[0]; - } s1g_assoc_resp; - struct { - __le16 capab_info; - __le16 status_code; - u8 variable[0]; - } s1g_reassoc_resp; - struct { - __le16 capab_info; - __le16 listen_interval; - u8 current_ap[6]; - u8 variable[0]; - } reassoc_req; - struct { - __le16 reason_code; - } disassoc; - struct { - __le64 timestamp; - __le16 beacon_int; - __le16 capab_info; - u8 variable[0]; - } __attribute__((packed)) beacon; - struct { - struct { - struct {} __empty_variable; - u8 variable[0]; - }; - } probe_req; - struct { - __le64 timestamp; - __le16 beacon_int; - __le16 capab_info; - u8 variable[0]; - } __attribute__((packed)) probe_resp; - struct { - u8 category; - union { - struct { - u8 action_code; - u8 dialog_token; - u8 status_code; - u8 variable[0]; - } wme_action; - struct { - u8 action_code; - u8 variable[0]; - } chan_switch; - struct { - u8 action_code; - struct ieee80211_ext_chansw_ie data; - u8 variable[0]; - } ext_chan_switch; - struct { - u8 action_code; - u8 dialog_token; - u8 element_id; - u8 length; - struct ieee80211_msrment_ie msr_elem; - } measurement; - struct { - u8 action_code; - u8 dialog_token; - __le16 capab; - __le16 timeout; - __le16 start_seq_num; - u8 variable[0]; - } addba_req; - struct { - u8 action_code; - u8 dialog_token; - __le16 status; - __le16 capab; - __le16 timeout; - } addba_resp; - struct { - u8 action_code; - __le16 params; - __le16 reason_code; - } __attribute__((packed)) delba; - struct { - u8 action_code; - u8 variable[0]; - } self_prot; - struct { - u8 action_code; - u8 variable[0]; - } mesh_action; - struct { - u8 action; - u8 trans_id[2]; - } sa_query; - struct { - u8 action; - u8 smps_control; - } ht_smps; - struct { - u8 action_code; - u8 chanwidth; - } ht_notify_cw; - struct { - u8 action_code; - u8 dialog_token; - __le16 capability; - u8 variable[0]; - } tdls_discover_resp; - struct { - u8 action_code; - u8 operating_mode; - } vht_opmode_notif; - struct { - u8 action_code; - u8 membership[8]; - u8 position[16]; - } vht_group_notif; - struct { - u8 action_code; - u8 dialog_token; - u8 tpc_elem_id; - u8 tpc_elem_length; - struct ieee80211_tpc_report_ie tpc; - } tpc_report; - struct { - u8 action_code; - u8 dialog_token; - u8 follow_up; - u8 tod[6]; - u8 toa[6]; - __le16 tod_error; - __le16 toa_error; - u8 variable[0]; - } __attribute__((packed)) ftm; - struct { - u8 action_code; - u8 variable[0]; - } s1g; - struct { - u8 action_code; - u8 dialog_token; - u8 follow_up; - u32 tod; - u32 toa; - u8 max_tod_error; - u8 max_toa_error; - } __attribute__((packed)) wnm_timing_msr; - struct { - u8 action_code; - u8 dialog_token; - u8 variable[0]; - } ttlm_req; - struct { - u8 action_code; - u8 dialog_token; - u8 status_code; - u8 variable[0]; - } ttlm_res; - struct { - u8 action_code; - } ttlm_tear_down; - } u; - } action; - struct { - struct {} __empty_body; - u8 body[0]; - }; - } u; -}; - -struct rfkill_ops { - void (*poll)(struct rfkill *, void *); - void (*query)(struct rfkill *, void *); - int (*set_block)(void *, bool); -}; - -struct cfg80211_ops; - -struct cfg80211_coalesce; - -struct cfg80211_registered_device { - const struct cfg80211_ops *ops; - struct list_head list; - struct rfkill_ops rfkill_ops; - struct work_struct rfkill_block; - char country_ie_alpha2[2]; - const struct ieee80211_regdomain *requested_regd; - enum environment_cap env; - int wiphy_idx; - int devlist_generation; - int wdev_id; - int opencount; - wait_queue_head_t dev_wait; - struct list_head beacon_registrations; - spinlock_t beacon_registrations_lock; - int num_running_ifaces; - int num_running_monitor_ifaces; - u64 cookie_counter; - spinlock_t bss_lock; - struct list_head bss_list; - struct rb_root bss_tree; - u32 bss_generation; - u32 bss_entries; - struct cfg80211_scan_request *scan_req; - struct cfg80211_scan_request *int_scan_req; - struct sk_buff *scan_msg; - struct list_head sched_scan_req_list; - time64_t suspend_at; - struct wiphy_work scan_done_wk; - struct genl_info *cur_cmd_info; - struct work_struct conn_work; - struct work_struct event_work; - struct delayed_work dfs_update_channels_wk; - struct wireless_dev *background_radar_wdev; - struct cfg80211_chan_def background_radar_chandef; - struct delayed_work background_cac_done_wk; - struct work_struct background_cac_abort_wk; - u32 crit_proto_nlportid; - struct cfg80211_coalesce *coalesce; - struct work_struct destroy_work; - struct wiphy_work sched_scan_stop_wk; - struct work_struct sched_scan_res_wk; - struct cfg80211_chan_def radar_chandef; - struct work_struct propagate_radar_detect_wk; - struct cfg80211_chan_def cac_done_chandef; - struct work_struct propagate_cac_done_wk; - struct work_struct mgmt_registrations_update_wk; - spinlock_t mgmt_registrations_lock; - struct work_struct wiphy_work; - struct list_head wiphy_work_list; - spinlock_t wiphy_work_lock; - bool suspended; - struct wiphy wiphy; -}; - -struct vif_params; - -struct cfg80211_ap_settings; - -struct cfg80211_ap_update; - -struct station_parameters; - -struct station_del_parameters; - -struct station_info; - -struct mpath_info; - -struct mesh_config; - -struct mesh_setup; - -struct ocb_setup; - -struct bss_parameters; - -struct ieee80211_txq_params; - -struct cfg80211_auth_request; - -struct cfg80211_assoc_request; - -struct cfg80211_deauth_request; - -struct cfg80211_disassoc_request; - -struct cfg80211_connect_params; - -struct cfg80211_ibss_params; - -struct survey_info; - -struct cfg80211_pmksa; - -struct cfg80211_mgmt_tx_params; - -struct mgmt_frame_regs; - -struct cfg80211_gtk_rekey_data; - -struct cfg80211_acl_data; - -struct cfg80211_update_ft_ies_params; - -struct cfg80211_csa_settings; - -struct cfg80211_qos_map; - -struct cfg80211_nan_conf; - -struct cfg80211_nan_func; - -struct cfg80211_txq_stats; - -struct cfg80211_pmk_conf; - -struct cfg80211_external_auth_params; - -struct cfg80211_ftm_responder_stats; - -struct cfg80211_pmsr_request; - -struct cfg80211_update_owe_info; - -struct cfg80211_tid_config; - -struct cfg80211_sar_specs; - -struct cfg80211_color_change_settings; - -struct cfg80211_fils_aad; - -struct link_station_parameters; - -struct link_station_del_parameters; - -struct cfg80211_set_hw_timestamp; - -struct cfg80211_ttlm_params; - -struct cfg80211_ops { - int (*suspend)(struct wiphy *, struct cfg80211_wowlan *); - int (*resume)(struct wiphy *); - void (*set_wakeup)(struct wiphy *, bool); - struct wireless_dev * (*add_virtual_intf)(struct wiphy *, const char *, unsigned char, enum nl80211_iftype, struct vif_params *); - int (*del_virtual_intf)(struct wiphy *, struct wireless_dev *); - int (*change_virtual_intf)(struct wiphy *, struct net_device *, enum nl80211_iftype, struct vif_params *); - int (*add_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int); - void (*del_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int); - int (*add_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, struct key_params *); - int (*get_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, void *, void (*)(void *, struct key_params *)); - int (*del_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *); - int (*set_default_key)(struct wiphy *, struct net_device *, int, u8, bool, bool); - int (*set_default_mgmt_key)(struct wiphy *, struct net_device *, int, u8); - int (*set_default_beacon_key)(struct wiphy *, struct net_device *, int, u8); - int (*start_ap)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *); - int (*change_beacon)(struct wiphy *, struct net_device *, struct cfg80211_ap_update *); - int (*stop_ap)(struct wiphy *, struct net_device *, unsigned int); - int (*add_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *); - int (*del_station)(struct wiphy *, struct net_device *, struct station_del_parameters *); - int (*change_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *); - int (*get_station)(struct wiphy *, struct net_device *, const u8 *, struct station_info *); - int (*dump_station)(struct wiphy *, struct net_device *, int, u8 *, struct station_info *); - int (*add_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *); - int (*del_mpath)(struct wiphy *, struct net_device *, const u8 *); - int (*change_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *); - int (*get_mpath)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *); - int (*dump_mpath)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *); - int (*get_mpp)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *); - int (*dump_mpp)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *); - int (*get_mesh_config)(struct wiphy *, struct net_device *, struct mesh_config *); - int (*update_mesh_config)(struct wiphy *, struct net_device *, u32, const struct mesh_config *); - int (*join_mesh)(struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *); - int (*leave_mesh)(struct wiphy *, struct net_device *); - int (*join_ocb)(struct wiphy *, struct net_device *, struct ocb_setup *); - int (*leave_ocb)(struct wiphy *, struct net_device *); - int (*change_bss)(struct wiphy *, struct net_device *, struct bss_parameters *); - void (*inform_bss)(struct wiphy *, struct cfg80211_bss *, const struct cfg80211_bss_ies *, void *); - int (*set_txq_params)(struct wiphy *, struct net_device *, struct ieee80211_txq_params *); - int (*libertas_set_mesh_channel)(struct wiphy *, struct net_device *, struct ieee80211_channel *); - int (*set_monitor_channel)(struct wiphy *, struct cfg80211_chan_def *); - int (*scan)(struct wiphy *, struct cfg80211_scan_request *); - void (*abort_scan)(struct wiphy *, struct wireless_dev *); - int (*auth)(struct wiphy *, struct net_device *, struct cfg80211_auth_request *); - int (*assoc)(struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); - int (*deauth)(struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); - int (*disassoc)(struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); - int (*connect)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *); - int (*update_connect_params)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); - int (*disconnect)(struct wiphy *, struct net_device *, u16); - int (*join_ibss)(struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); - int (*leave_ibss)(struct wiphy *, struct net_device *); - int (*set_mcast_rate)(struct wiphy *, struct net_device *, int *); - int (*set_wiphy_params)(struct wiphy *, u32); - int (*set_tx_power)(struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); - int (*get_tx_power)(struct wiphy *, struct wireless_dev *, int *); - void (*rfkill_poll)(struct wiphy *); - int (*set_bitrate_mask)(struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); - int (*dump_survey)(struct wiphy *, struct net_device *, int, struct survey_info *); - int (*set_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); - int (*del_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); - int (*flush_pmksa)(struct wiphy *, struct net_device *); - int (*remain_on_channel)(struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int, u64 *); - int (*cancel_remain_on_channel)(struct wiphy *, struct wireless_dev *, u64); - int (*mgmt_tx)(struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *, u64 *); - int (*mgmt_tx_cancel_wait)(struct wiphy *, struct wireless_dev *, u64); - int (*set_power_mgmt)(struct wiphy *, struct net_device *, bool, int); - int (*set_cqm_rssi_config)(struct wiphy *, struct net_device *, s32, u32); - int (*set_cqm_rssi_range_config)(struct wiphy *, struct net_device *, s32, s32); - int (*set_cqm_txe_config)(struct wiphy *, struct net_device *, u32, u32, u32); - void (*update_mgmt_frame_registrations)(struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); - int (*set_antenna)(struct wiphy *, u32, u32); - int (*get_antenna)(struct wiphy *, u32 *, u32 *); - int (*sched_scan_start)(struct wiphy *, struct net_device *, struct cfg80211_sched_scan_request *); - int (*sched_scan_stop)(struct wiphy *, struct net_device *, u64); - int (*set_rekey_data)(struct wiphy *, struct net_device *, struct cfg80211_gtk_rekey_data *); - int (*tdls_mgmt)(struct wiphy *, struct net_device *, const u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); - int (*tdls_oper)(struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation); - int (*probe_client)(struct wiphy *, struct net_device *, const u8 *, u64 *); - int (*set_noack_map)(struct wiphy *, struct net_device *, u16); - int (*get_channel)(struct wiphy *, struct wireless_dev *, unsigned int, struct cfg80211_chan_def *); - int (*start_p2p_device)(struct wiphy *, struct wireless_dev *); - void (*stop_p2p_device)(struct wiphy *, struct wireless_dev *); - int (*set_mac_acl)(struct wiphy *, struct net_device *, const struct cfg80211_acl_data *); - int (*start_radar_detection)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32); - void (*end_cac)(struct wiphy *, struct net_device *); - int (*update_ft_ies)(struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); - int (*crit_proto_start)(struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); - void (*crit_proto_stop)(struct wiphy *, struct wireless_dev *); - int (*set_coalesce)(struct wiphy *, struct cfg80211_coalesce *); - int (*channel_switch)(struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); - int (*set_qos_map)(struct wiphy *, struct net_device *, struct cfg80211_qos_map *); - int (*set_ap_chanwidth)(struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); - int (*add_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); - int (*del_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *); - int (*tdls_channel_switch)(struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); - void (*tdls_cancel_channel_switch)(struct wiphy *, struct net_device *, const u8 *); - int (*start_nan)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); - void (*stop_nan)(struct wiphy *, struct wireless_dev *); - int (*add_nan_func)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_func *); - void (*del_nan_func)(struct wiphy *, struct wireless_dev *, u64); - int (*nan_change_conf)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); - int (*set_multicast_to_unicast)(struct wiphy *, struct net_device *, const bool); - int (*get_txq_stats)(struct wiphy *, struct wireless_dev *, struct cfg80211_txq_stats *); - int (*set_pmk)(struct wiphy *, struct net_device *, const struct cfg80211_pmk_conf *); - int (*del_pmk)(struct wiphy *, struct net_device *, const u8 *); - int (*external_auth)(struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); - int (*tx_control_port)(struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, const __be16, const bool, int, u64 *); - int (*get_ftm_responder_stats)(struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); - int (*start_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); - void (*abort_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); - int (*update_owe_info)(struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); - int (*probe_mesh_link)(struct wiphy *, struct net_device *, const u8 *, size_t); - int (*set_tid_config)(struct wiphy *, struct net_device *, struct cfg80211_tid_config *); - int (*reset_tid_config)(struct wiphy *, struct net_device *, const u8 *, u8); - int (*set_sar_specs)(struct wiphy *, struct cfg80211_sar_specs *); - int (*color_change)(struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); - int (*set_fils_aad)(struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); - int (*set_radar_background)(struct wiphy *, struct cfg80211_chan_def *); - int (*add_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); - int (*mod_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); - int (*del_link_station)(struct wiphy *, struct net_device *, struct link_station_del_parameters *); - int (*set_hw_timestamp)(struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *); - int (*set_ttlm)(struct wiphy *, struct net_device *, struct cfg80211_ttlm_params *); -}; - -struct vif_params { - u32 flags; - int use_4addr; - u8 macaddr[6]; - const u8 *vht_mumimo_groups; - const u8 *vht_mumimo_follow_addr; -}; - -struct cfg80211_mbssid_elems; - -struct cfg80211_rnr_elems; - -struct cfg80211_beacon_data { - unsigned int link_id; - const u8 *head; - const u8 *tail; - const u8 *beacon_ies; - const u8 *proberesp_ies; - const u8 *assocresp_ies; - const u8 *probe_resp; - const u8 *lci; - const u8 *civicloc; - struct cfg80211_mbssid_elems *mbssid_ies; - struct cfg80211_rnr_elems *rnr_ies; - s8 ftm_responder; - size_t head_len; - size_t tail_len; - size_t beacon_ies_len; - size_t proberesp_ies_len; - size_t assocresp_ies_len; - size_t probe_resp_len; - size_t lci_len; - size_t civicloc_len; - struct cfg80211_he_bss_color he_bss_color; - bool he_bss_color_valid; -}; - -struct cfg80211_crypto_settings { - u32 wpa_versions; - u32 cipher_group; - int n_ciphers_pairwise; - u32 ciphers_pairwise[5]; - int n_akm_suites; - u32 akm_suites[10]; - bool control_port; - __be16 control_port_ethertype; - bool control_port_no_encrypt; - bool control_port_over_nl80211; - bool control_port_no_preauth; - const u8 *psk; - const u8 *sae_pwd; - u8 sae_pwd_len; - enum nl80211_sae_pwe_mechanism sae_pwe; -}; - struct cfg80211_fils_discovery { bool update; u32 min_interval; @@ -36622,6 +39305,8 @@ struct cfg80211_mbssid_config { bool ema; }; +struct cfg80211_acl_data; + struct ieee80211_he_operation; struct ieee80211_eht_cap_elem; @@ -36664,20 +39349,9 @@ struct cfg80211_ap_settings { struct cfg80211_mbssid_config mbssid_config; }; -struct cfg80211_mbssid_elems { - u8 cnt; - struct { - const u8 *data; - size_t len; - } elem[0]; -}; - -struct cfg80211_rnr_elems { - u8 cnt; - struct { - const u8 *data; - size_t len; - } elem[0]; +enum nl80211_acl_policy { + NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0, + NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 1, }; struct cfg80211_acl_data { @@ -36703,12 +39377,36 @@ struct ieee80211_eht_operation { u8 optional[0]; }; +struct cfg80211_ap_update; + +typedef void (*btf_trace_rdev_change_beacon)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_update *); + struct cfg80211_ap_update { struct cfg80211_beacon_data beacon; struct cfg80211_fils_discovery fils_discovery; struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp; }; +typedef void (*btf_trace_rdev_stop_ap)(void *, struct wiphy *, struct net_device *, unsigned int); + +typedef void (*btf_trace_rdev_set_rekey_data)(void *, struct wiphy *, struct net_device *); + +typedef void (*btf_trace_rdev_get_mesh_config)(void *, struct wiphy *, struct net_device *); + +typedef void (*btf_trace_rdev_leave_mesh)(void *, struct wiphy *, struct net_device *); + +typedef void (*btf_trace_rdev_leave_ibss)(void *, struct wiphy *, struct net_device *); + +typedef void (*btf_trace_rdev_leave_ocb)(void *, struct wiphy *, struct net_device *); + +typedef void (*btf_trace_rdev_flush_pmksa)(void *, struct wiphy *, struct net_device *); + +typedef void (*btf_trace_rdev_end_cac)(void *, struct wiphy *, struct net_device *); + +struct station_parameters; + +typedef void (*btf_trace_rdev_add_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *); + struct sta_txpwr { s16 power; enum nl80211_tx_power_setting type; @@ -36759,6 +39457,12 @@ struct station_parameters { struct link_station_parameters link_sta_params; }; +typedef void (*btf_trace_rdev_change_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *); + +struct station_del_parameters; + +typedef void (*btf_trace_rdev_del_station)(void *, struct wiphy *, struct net_device *, struct station_del_parameters *); + struct station_del_parameters { const u8 *mac; u8 subtype; @@ -36766,96 +39470,29 @@ struct station_del_parameters { int link_id; }; -struct sta_bss_parameters { - u8 flags; - u8 dtim_period; - u16 beacon_interval; -}; +typedef void (*btf_trace_rdev_get_station)(void *, struct wiphy *, struct net_device *, const u8 *); -struct nl80211_sta_flag_update { - __u32 mask; - __u32 set; -}; +typedef void (*btf_trace_rdev_del_mpath)(void *, struct wiphy *, struct net_device *, const u8 *); -struct cfg80211_tid_stats; +typedef void (*btf_trace_rdev_dump_station)(void *, struct wiphy *, struct net_device *, int, u8 *); -struct station_info { - u64 filled; - u32 connected_time; - u32 inactive_time; - u64 assoc_at; - u64 rx_bytes; - u64 tx_bytes; - u16 llid; - u16 plid; - u8 plink_state; - s8 signal; - s8 signal_avg; - u8 chains; - s8 chain_signal[4]; - s8 chain_signal_avg[4]; - struct rate_info txrate; - struct rate_info rxrate; - u32 rx_packets; - u32 tx_packets; - u32 tx_retries; - u32 tx_failed; - u32 rx_dropped_misc; - struct sta_bss_parameters bss_param; - struct nl80211_sta_flag_update sta_flags; - int generation; - const u8 *assoc_req_ies; - size_t assoc_req_ies_len; - u32 beacon_loss_count; - s64 t_offset; - enum nl80211_mesh_power_mode local_pm; - enum nl80211_mesh_power_mode peer_pm; - enum nl80211_mesh_power_mode nonpeer_pm; - u32 expected_throughput; - u64 tx_duration; - u64 rx_duration; - u64 rx_beacon; - u8 rx_beacon_signal_avg; - u8 connected_to_gate; - struct cfg80211_tid_stats *pertid; - s8 ack_signal; - s8 avg_ack_signal; - u16 airtime_weight; - u32 rx_mpdu_count; - u32 fcs_err_count; - u32 airtime_link_metric; - u8 connected_to_as; - bool mlo_params_valid; - u8 assoc_link_id; - int: 0; - u8 mld_addr[6]; - const u8 *assoc_resp_ies; - size_t assoc_resp_ies_len; -}; +typedef void (*btf_trace_rdev_return_int_station_info)(void *, struct wiphy *, int, struct station_info *); -struct cfg80211_txq_stats { - u32 filled; - u32 backlog_bytes; - u32 backlog_packets; - u32 flows; - u32 drops; - u32 ecn_marks; - u32 overlimit; - u32 overmemory; - u32 collisions; - u32 tx_bytes; - u32 tx_packets; - u32 max_flows; -}; +typedef void (*btf_trace_rdev_add_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); -struct cfg80211_tid_stats { - u32 filled; - u64 rx_msdu; - u64 tx_msdu; - u64 tx_msdu_retries; - u64 tx_msdu_failed; - struct cfg80211_txq_stats txq_stats; -}; +typedef void (*btf_trace_rdev_change_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); + +typedef void (*btf_trace_rdev_get_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); + +typedef void (*btf_trace_rdev_dump_mpath)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *); + +typedef void (*btf_trace_rdev_get_mpp)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); + +typedef void (*btf_trace_rdev_dump_mpp)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *); + +struct mpath_info; + +typedef void (*btf_trace_rdev_return_int_mpath_info)(void *, struct wiphy *, int, struct mpath_info *); struct mpath_info { u32 filled; @@ -36871,39 +39508,13 @@ struct mpath_info { int generation; }; -struct mesh_config { - u16 dot11MeshRetryTimeout; - u16 dot11MeshConfirmTimeout; - u16 dot11MeshHoldingTimeout; - u16 dot11MeshMaxPeerLinks; - u8 dot11MeshMaxRetries; - u8 dot11MeshTTL; - u8 element_ttl; - bool auto_open_plinks; - u32 dot11MeshNbrOffsetMaxNeighbor; - u8 dot11MeshHWMPmaxPREQretries; - u32 path_refresh_time; - u16 min_discovery_timeout; - u32 dot11MeshHWMPactivePathTimeout; - u16 dot11MeshHWMPpreqMinInterval; - u16 dot11MeshHWMPperrMinInterval; - u16 dot11MeshHWMPnetDiameterTraversalTime; - u8 dot11MeshHWMPRootMode; - bool dot11MeshConnectedToMeshGate; - bool dot11MeshConnectedToAuthServer; - u16 dot11MeshHWMPRannInterval; - bool dot11MeshGateAnnouncementProtocol; - bool dot11MeshForwarding; - s32 rssi_threshold; - u16 ht_opmode; - u32 dot11MeshHWMPactivePathToRootTimeout; - u16 dot11MeshHWMProotInterval; - u16 dot11MeshHWMPconfirmationInterval; - enum nl80211_mesh_power_mode power_mode; - u16 dot11MeshAwakeWindowDuration; - u32 plink_timeout; - bool dot11MeshNolearn; -}; +typedef void (*btf_trace_rdev_return_int_mesh_config)(void *, struct wiphy *, int, struct mesh_config *); + +typedef void (*btf_trace_rdev_update_mesh_config)(void *, struct wiphy *, struct net_device *, u32, const struct mesh_config *); + +struct mesh_setup; + +typedef void (*btf_trace_rdev_join_mesh)(void *, struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *); struct mesh_setup { struct cfg80211_chan_def chandef; @@ -36927,9 +39538,9 @@ struct mesh_setup { bool control_port_over_nl80211; }; -struct ocb_setup { - struct cfg80211_chan_def chandef; -}; +struct bss_parameters; + +typedef void (*btf_trace_rdev_change_bss)(void *, struct wiphy *, struct net_device *, struct bss_parameters *); struct bss_parameters { int link_id; @@ -36944,6 +39555,20 @@ struct bss_parameters { s8 p2p_opp_ps; }; +typedef void (*btf_trace_rdev_inform_bss)(void *, struct wiphy *, struct cfg80211_bss *); + +struct ieee80211_txq_params; + +typedef void (*btf_trace_rdev_set_txq_params)(void *, struct wiphy *, struct net_device *, struct ieee80211_txq_params *); + +enum nl80211_ac { + NL80211_AC_VO = 0, + NL80211_AC_VI = 1, + NL80211_AC_BE = 2, + NL80211_AC_BK = 3, + NL80211_NUM_ACS = 4, +}; + struct ieee80211_txq_params { enum nl80211_ac ac; u16 txop; @@ -36953,6 +39578,14 @@ struct ieee80211_txq_params { int link_id; }; +typedef void (*btf_trace_rdev_libertas_set_mesh_channel)(void *, struct wiphy *, struct net_device *, struct ieee80211_channel *); + +typedef void (*btf_trace_rdev_set_monitor_channel)(void *, struct wiphy *, struct cfg80211_chan_def *); + +struct cfg80211_auth_request; + +typedef void (*btf_trace_rdev_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_auth_request *); + struct cfg80211_auth_request { struct cfg80211_bss *bss; const u8 *ie; @@ -36967,10 +39600,9 @@ struct cfg80211_auth_request { const u8 *ap_mld_addr; }; -struct ieee80211_s1g_cap { - u8 capab_info[10]; - u8 supp_mcs_nss[5]; -}; +struct cfg80211_assoc_request; + +typedef void (*btf_trace_rdev_assoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); struct cfg80211_assoc_link { struct cfg80211_bss *bss; @@ -37002,6 +39634,10 @@ struct cfg80211_assoc_request { s8 link_id; }; +struct cfg80211_deauth_request; + +typedef void (*btf_trace_rdev_deauth)(void *, struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); + struct cfg80211_deauth_request { const u8 *bssid; const u8 *ie; @@ -37010,6 +39646,10 @@ struct cfg80211_deauth_request { bool local_state_change; }; +struct cfg80211_disassoc_request; + +typedef void (*btf_trace_rdev_disassoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); + struct cfg80211_disassoc_request { const u8 *ap_addr; const u8 *ie; @@ -37018,6 +39658,29 @@ struct cfg80211_disassoc_request { bool local_state_change; }; +typedef void (*btf_trace_rdev_mgmt_tx_cancel_wait)(void *, struct wiphy *, struct wireless_dev *, u64); + +typedef void (*btf_trace_rdev_set_power_mgmt)(void *, struct wiphy *, struct net_device *, bool, int); + +struct cfg80211_connect_params; + +typedef void (*btf_trace_rdev_connect)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *); + +enum nl80211_mfp { + NL80211_MFP_NO = 0, + NL80211_MFP_REQUIRED = 1, + NL80211_MFP_OPTIONAL = 2, +}; + +enum nl80211_bss_select_attr { + __NL80211_BSS_SELECT_ATTR_INVALID = 0, + NL80211_BSS_SELECT_ATTR_RSSI = 1, + NL80211_BSS_SELECT_ATTR_BAND_PREF = 2, + NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 3, + __NL80211_BSS_SELECT_ATTR_AFTER_LAST = 4, + NL80211_BSS_SELECT_ATTR_MAX = 3, +}; + struct cfg80211_bss_selection { enum nl80211_bss_select_attr behaviour; union { @@ -37062,6 +39725,20 @@ struct cfg80211_connect_params { struct ieee80211_edmg edmg; }; +typedef void (*btf_trace_rdev_update_connect_params)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); + +typedef void (*btf_trace_rdev_set_cqm_rssi_config)(void *, struct wiphy *, struct net_device *, s32, u32); + +typedef void (*btf_trace_rdev_set_cqm_rssi_range_config)(void *, struct wiphy *, struct net_device *, s32, s32); + +typedef void (*btf_trace_rdev_set_cqm_txe_config)(void *, struct wiphy *, struct net_device *, u32, u32, u32); + +typedef void (*btf_trace_rdev_disconnect)(void *, struct wiphy *, struct net_device *, u16); + +struct cfg80211_ibss_params; + +typedef void (*btf_trace_rdev_join_ibss)(void *, struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); + struct cfg80211_ibss_params { const u8 *ssid; const u8 *bssid; @@ -37083,19 +39760,67 @@ struct cfg80211_ibss_params { int wep_tx_key; }; -struct survey_info { - struct ieee80211_channel *channel; - u64 time; - u64 time_busy; - u64 time_ext_busy; - u64 time_rx; - u64 time_tx; - u64 time_scan; - u64 time_bss_rx; - u32 filled; - s8 noise; +struct ocb_setup; + +typedef void (*btf_trace_rdev_join_ocb)(void *, struct wiphy *, struct net_device *, const struct ocb_setup *); + +struct ocb_setup { + struct cfg80211_chan_def chandef; }; +typedef void (*btf_trace_rdev_set_wiphy_params)(void *, struct wiphy *, u32); + +typedef void (*btf_trace_rdev_get_tx_power)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_set_tx_power)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); + +typedef void (*btf_trace_rdev_return_int_int)(void *, struct wiphy *, int, int); + +typedef void (*btf_trace_rdev_set_bitrate_mask)(void *, struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); + +struct mgmt_frame_regs; + +typedef void (*btf_trace_rdev_update_mgmt_frame_registrations)(void *, struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); + +struct mgmt_frame_regs { + u32 global_stypes; + u32 interface_stypes; + u32 global_mcast_stypes; + u32 interface_mcast_stypes; +}; + +typedef void (*btf_trace_rdev_return_int_tx_rx)(void *, struct wiphy *, int, u32, u32); + +typedef void (*btf_trace_rdev_return_void_tx_rx)(void *, struct wiphy *, u32, u32, u32, u32); + +typedef void (*btf_trace_rdev_set_antenna)(void *, struct wiphy *, u32, u32); + +typedef void (*btf_trace_rdev_sched_scan_start)(void *, struct wiphy *, struct net_device *, u64); + +typedef void (*btf_trace_rdev_sched_scan_stop)(void *, struct wiphy *, struct net_device *, u64); + +typedef void (*btf_trace_rdev_tdls_mgmt)(void *, struct wiphy *, struct net_device *, u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); + +typedef void (*btf_trace_rdev_dump_survey)(void *, struct wiphy *, struct net_device *, int); + +typedef void (*btf_trace_rdev_return_int_survey_info)(void *, struct wiphy *, int, struct survey_info *); + +enum nl80211_tdls_operation { + NL80211_TDLS_DISCOVERY_REQ = 0, + NL80211_TDLS_SETUP = 1, + NL80211_TDLS_TEARDOWN = 2, + NL80211_TDLS_ENABLE_LINK = 3, + NL80211_TDLS_DISABLE_LINK = 4, +}; + +typedef void (*btf_trace_rdev_tdls_oper)(void *, struct wiphy *, struct net_device *, u8 *, enum nl80211_tdls_operation); + +typedef void (*btf_trace_rdev_probe_client)(void *, struct wiphy *, struct net_device *, const u8 *); + +struct cfg80211_pmksa; + +typedef void (*btf_trace_rdev_set_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); + struct cfg80211_pmksa { const u8 *bssid; const u8 *pmkid; @@ -37108,6 +39833,18 @@ struct cfg80211_pmksa { u8 pmk_reauth_threshold; }; +typedef void (*btf_trace_rdev_del_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); + +typedef void (*btf_trace_rdev_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int); + +typedef void (*btf_trace_rdev_return_int_cookie)(void *, struct wiphy *, int, u64); + +typedef void (*btf_trace_rdev_cancel_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, u64); + +struct cfg80211_mgmt_tx_params; + +typedef void (*btf_trace_rdev_mgmt_tx)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *); + struct cfg80211_mgmt_tx_params { struct ieee80211_channel *chan; bool offchan; @@ -37121,21 +39858,33 @@ struct cfg80211_mgmt_tx_params { int link_id; }; -struct mgmt_frame_regs { - u32 global_stypes; - u32 interface_stypes; - u32 global_mcast_stypes; - u32 interface_mcast_stypes; -}; +typedef void (*btf_trace_rdev_tx_control_port)(void *, struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, __be16, bool, int); -struct cfg80211_gtk_rekey_data { - const u8 *kek; - const u8 *kck; - const u8 *replay_ctr; - u32 akm; - u8 kek_len; - u8 kck_len; -}; +typedef void (*btf_trace_rdev_set_noack_map)(void *, struct wiphy *, struct net_device *, u16); + +typedef void (*btf_trace_rdev_get_channel)(void *, struct wiphy *, struct wireless_dev *, unsigned int); + +typedef void (*btf_trace_rdev_return_chandef)(void *, struct wiphy *, int, struct cfg80211_chan_def *); + +typedef void (*btf_trace_rdev_start_p2p_device)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_stop_p2p_device)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_start_nan)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); + +typedef void (*btf_trace_rdev_nan_change_conf)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); + +typedef void (*btf_trace_rdev_stop_nan)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_add_nan_func)(void *, struct wiphy *, struct wireless_dev *, const struct cfg80211_nan_func *); + +typedef void (*btf_trace_rdev_del_nan_func)(void *, struct wiphy *, struct wireless_dev *, u64); + +typedef void (*btf_trace_rdev_set_mac_acl)(void *, struct wiphy *, struct net_device *, struct cfg80211_acl_data *); + +struct cfg80211_update_ft_ies_params; + +typedef void (*btf_trace_rdev_update_ft_ies)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); struct cfg80211_update_ft_ies_params { u16 md; @@ -37143,88 +39892,35 @@ struct cfg80211_update_ft_ies_params { size_t ie_len; }; -struct cfg80211_coalesce_rules; - -struct cfg80211_coalesce { - struct cfg80211_coalesce_rules *rules; - int n_rules; +enum nl80211_crit_proto_id { + NL80211_CRIT_PROTO_UNSPEC = 0, + NL80211_CRIT_PROTO_DHCP = 1, + NL80211_CRIT_PROTO_EAPOL = 2, + NL80211_CRIT_PROTO_APIPA = 3, + NUM_NL80211_CRIT_PROTO = 4, }; -struct cfg80211_coalesce_rules { - int delay; - enum nl80211_coalesce_condition condition; - struct cfg80211_pkt_pattern *patterns; - int n_patterns; -}; +typedef void (*btf_trace_rdev_crit_proto_start)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); -struct cfg80211_csa_settings { - struct cfg80211_chan_def chandef; - struct cfg80211_beacon_data beacon_csa; - const u16 *counter_offsets_beacon; - const u16 *counter_offsets_presp; - unsigned int n_counter_offsets_beacon; - unsigned int n_counter_offsets_presp; - struct cfg80211_beacon_data beacon_after; - bool radar_required; - bool block_tx; - u8 count; - u8 link_id; -}; +typedef void (*btf_trace_rdev_crit_proto_stop)(void *, struct wiphy *, struct wireless_dev *); -struct cfg80211_dscp_exception { - u8 dscp; - u8 up; -}; +typedef void (*btf_trace_rdev_channel_switch)(void *, struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); -struct cfg80211_dscp_range { - u8 low; - u8 high; -}; +typedef void (*btf_trace_rdev_set_qos_map)(void *, struct wiphy *, struct net_device *, struct cfg80211_qos_map *); -struct cfg80211_qos_map { - u8 num_des; - struct cfg80211_dscp_exception dscp_exception[21]; - struct cfg80211_dscp_range up[8]; -}; +typedef void (*btf_trace_rdev_set_ap_chanwidth)(void *, struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); -struct cfg80211_nan_conf { - u8 master_pref; - u8 bands; -}; +typedef void (*btf_trace_rdev_add_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); -struct cfg80211_nan_func_filter; +typedef void (*btf_trace_rdev_del_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *); -struct cfg80211_nan_func { - enum nl80211_nan_function_type type; - u8 service_id[6]; - u8 publish_type; - bool close_range; - bool publish_bcast; - bool subscribe_active; - u8 followup_id; - u8 followup_reqid; - struct mac_address followup_dest; - u32 ttl; - const u8 *serv_spec_info; - u8 serv_spec_info_len; - bool srf_include; - const u8 *srf_bf; - u8 srf_bf_len; - u8 srf_bf_idx; - struct mac_address *srf_macs; - int srf_num_macs; - struct cfg80211_nan_func_filter *rx_filters; - struct cfg80211_nan_func_filter *tx_filters; - u8 num_tx_filters; - u8 num_rx_filters; - u8 instance_id; - u64 cookie; -}; +typedef void (*btf_trace_rdev_tdls_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); -struct cfg80211_nan_func_filter { - const u8 *filter; - u8 len; -}; +typedef void (*btf_trace_rdev_tdls_cancel_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *); + +struct cfg80211_pmk_conf; + +typedef void (*btf_trace_rdev_set_pmk)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmk_conf *); struct cfg80211_pmk_conf { const u8 *aa; @@ -37233,6 +39929,17 @@ struct cfg80211_pmk_conf { const u8 *pmk_r0_name; }; +typedef void (*btf_trace_rdev_del_pmk)(void *, struct wiphy *, struct net_device *, const u8 *); + +struct cfg80211_external_auth_params; + +typedef void (*btf_trace_rdev_external_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); + +enum nl80211_external_auth_action { + NL80211_EXTERNAL_AUTH_START = 0, + NL80211_EXTERNAL_AUTH_ABORT = 1, +}; + struct cfg80211_external_auth_params { enum nl80211_external_auth_action action; u8 bssid[6]; @@ -37243,55 +39950,61 @@ struct cfg80211_external_auth_params { u8 mld_addr[6]; }; -struct cfg80211_ftm_responder_stats { - u32 filled; - u32 success_num; - u32 partial_num; - u32 failed_num; - u32 asap_num; - u32 non_asap_num; - u64 total_duration_ms; - u32 unknown_triggers_num; - u32 reschedule_requests_num; - u32 out_of_window_triggers_num; +typedef void (*btf_trace_rdev_start_radar_detection)(void *, struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32); + +typedef void (*btf_trace_rdev_set_mcast_rate)(void *, struct wiphy *, struct net_device *, int *); + +struct cfg80211_coalesce; + +typedef void (*btf_trace_rdev_set_coalesce)(void *, struct wiphy *, struct cfg80211_coalesce *); + +struct cfg80211_coalesce_rules; + +struct cfg80211_coalesce { + struct cfg80211_coalesce_rules *rules; + int n_rules; }; -struct cfg80211_pmsr_ftm_request_peer { - enum nl80211_preamble preamble; - u16 burst_period; - u8 requested: 1; - u8 asap: 1; - u8 request_lci: 1; - u8 request_civicloc: 1; - u8 trigger_based: 1; - u8 non_trigger_based: 1; - u8 lmr_feedback: 1; - u8 num_bursts_exp; - u8 burst_duration; - u8 ftms_per_burst; - u8 ftmr_retries; - u8 bss_color; +enum nl80211_coalesce_condition { + NL80211_COALESCE_CONDITION_MATCH = 0, + NL80211_COALESCE_CONDITION_NO_MATCH = 1, }; -struct cfg80211_pmsr_request_peer { - u8 addr[6]; - struct cfg80211_chan_def chandef; - u8 report_ap_tsf: 1; - struct cfg80211_pmsr_ftm_request_peer ftm; +struct cfg80211_coalesce_rules { + int delay; + enum nl80211_coalesce_condition condition; + struct cfg80211_pkt_pattern *patterns; + int n_patterns; }; -struct cfg80211_pmsr_request { - u64 cookie; - void *drv_data; - u32 n_peers; - u32 nl_portid; - u32 timeout; - u8 mac_addr[6]; - u8 mac_addr_mask[6]; - struct list_head list; - struct cfg80211_pmsr_request_peer peers[0]; +typedef void (*btf_trace_rdev_abort_scan)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_set_multicast_to_unicast)(void *, struct wiphy *, struct net_device *, const bool); + +typedef void (*btf_trace_rdev_get_txq_stats)(void *, struct wiphy *, struct wireless_dev *); + +typedef void (*btf_trace_rdev_get_ftm_responder_stats)(void *, struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); + +typedef void (*btf_trace_rdev_start_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); + +typedef void (*btf_trace_rdev_abort_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); + +struct cfg80211_fils_aad; + +typedef void (*btf_trace_rdev_set_fils_aad)(void *, struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); + +struct cfg80211_fils_aad { + const u8 *macaddr; + const u8 *kek; + u8 kek_len; + const u8 *snonce; + const u8 *anonce; }; +struct cfg80211_update_owe_info; + +typedef void (*btf_trace_rdev_update_owe_info)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); + struct cfg80211_update_owe_info { u8 peer[6]; u16 status; @@ -37301,36 +40014,17 @@ struct cfg80211_update_owe_info { u8 peer_mld_addr[6]; }; -struct cfg80211_tid_cfg { - bool config_override; - u8 tids; - u64 mask; - enum nl80211_tid_config noack; - u8 retry_long; - u8 retry_short; - enum nl80211_tid_config ampdu; - enum nl80211_tid_config rtscts; - enum nl80211_tid_config amsdu; - enum nl80211_tx_rate_setting txrate_type; - struct cfg80211_bitrate_mask txrate_mask; -}; +typedef void (*btf_trace_rdev_probe_mesh_link)(void *, struct wiphy *, struct net_device *, const u8 *, const u8 *, size_t); -struct cfg80211_tid_config { - const u8 *peer; - u32 n_tid_conf; - struct cfg80211_tid_cfg tid_conf[0]; -}; +typedef void (*btf_trace_rdev_set_tid_config)(void *, struct wiphy *, struct net_device *, struct cfg80211_tid_config *); -struct cfg80211_sar_sub_specs { - s32 power; - u32 freq_range_index; -}; +typedef void (*btf_trace_rdev_reset_tid_config)(void *, struct wiphy *, struct net_device *, const u8 *, u8); -struct cfg80211_sar_specs { - enum nl80211_sar_type type; - u32 num_sub_specs; - struct cfg80211_sar_sub_specs sub_specs[0]; -}; +typedef void (*btf_trace_rdev_set_sar_specs)(void *, struct wiphy *, struct cfg80211_sar_specs *); + +struct cfg80211_color_change_settings; + +typedef void (*btf_trace_rdev_color_change)(void *, struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); struct cfg80211_color_change_settings { struct cfg80211_beacon_data beacon_color_change; @@ -37341,38 +40035,21 @@ struct cfg80211_color_change_settings { u8 color; }; -struct cfg80211_fils_aad { - const u8 *macaddr; - const u8 *kek; - u8 kek_len; - const u8 *snonce; - const u8 *anonce; -}; +typedef void (*btf_trace_rdev_set_radar_background)(void *, struct wiphy *, struct cfg80211_chan_def *); -struct link_station_del_parameters { - const u8 *mld_mac; - u32 link_id; -}; +typedef void (*btf_trace_rdev_add_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); -struct cfg80211_set_hw_timestamp { - const u8 *macaddr; - bool enable; -}; +typedef void (*btf_trace_rdev_del_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); -struct cfg80211_ttlm_params { - u16 dlink[8]; - u16 ulink[8]; -}; +typedef void (*btf_trace_cfg80211_return_bool)(void *, bool); -struct cfg80211_mgmt_registration { - struct list_head list; - struct wireless_dev *wdev; - u32 nlportid; - int match_len; - __le16 frame_type; - bool multicast_rx; - u8 match[0]; -}; +typedef void (*btf_trace_cfg80211_notify_new_peer_candidate)(void *, struct net_device *, const u8 *); + +typedef void (*btf_trace_cfg80211_send_rx_auth)(void *, struct net_device *); + +struct cfg80211_rx_assoc_resp_data; + +typedef void (*btf_trace_cfg80211_send_rx_assoc)(void *, struct net_device *, const struct cfg80211_rx_assoc_resp_data *); struct cfg80211_rx_assoc_resp_data { const u8 *buf; @@ -37388,33 +40065,17 @@ struct cfg80211_rx_assoc_resp_data { } links[15]; }; -struct cfg80211_fils_resp_params { - const u8 *kek; - size_t kek_len; - bool update_erp_next_seq_num; - u16 erp_next_seq_num; - const u8 *pmk; - size_t pmk_len; - const u8 *pmkid; -}; +typedef void (*btf_trace_cfg80211_rx_unprot_mlme_mgmt)(void *, struct net_device *, const u8 *, int); -struct cfg80211_connect_resp_params { - int status; - const u8 *req_ie; - size_t req_ie_len; - const u8 *resp_ie; - size_t resp_ie_len; - struct cfg80211_fils_resp_params fils; - enum nl80211_timeout_reason timeout_reason; - const u8 *ap_mld_addr; - u16 valid_links; - struct { - const u8 *addr; - const u8 *bssid; - struct cfg80211_bss *bss; - u16 status; - } links[15]; -}; +typedef void (*btf_trace_cfg80211_rx_mlme_mgmt)(void *, struct net_device *, const u8 *, int); + +typedef void (*btf_trace_cfg80211_tx_mlme_mgmt)(void *, struct net_device *, const u8 *, int, bool); + +typedef void (*btf_trace_cfg80211_send_auth_timeout)(void *, struct net_device *, const u8 *); + +struct cfg80211_assoc_failure; + +typedef void (*btf_trace_cfg80211_send_assoc_failure)(void *, struct net_device *, struct cfg80211_assoc_failure *); struct cfg80211_assoc_failure { const u8 *ap_mld_addr; @@ -37422,22 +40083,28 @@ struct cfg80211_assoc_failure { bool timeout; }; -struct ieee80211_multi_link_elem { - __le16 control; - u8 variable[0]; +enum nl80211_key_type { + NL80211_KEYTYPE_GROUP = 0, + NL80211_KEYTYPE_PAIRWISE = 1, + NL80211_KEYTYPE_PEERKEY = 2, + NUM_NL80211_KEYTYPES = 3, }; -struct element { - u8 id; - u8 datalen; - u8 data[0]; -}; +typedef void (*btf_trace_cfg80211_michael_mic_failure)(void *, struct net_device *, const u8 *, enum nl80211_key_type, int, const u8 *); -struct ieee80211_mle_basic_common_info { - u8 len; - u8 mld_mac_addr[6]; - u8 variable[0]; -}; +typedef void (*btf_trace_cfg80211_ready_on_channel)(void *, struct wireless_dev *, u64, struct ieee80211_channel *, unsigned int); + +typedef void (*btf_trace_cfg80211_ready_on_channel_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); + +typedef void (*btf_trace_cfg80211_tx_mgmt_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); + +typedef void (*btf_trace_cfg80211_new_sta)(void *, struct net_device *, const u8 *, struct station_info *); + +typedef void (*btf_trace_cfg80211_del_sta)(void *, struct net_device *, const u8 *); + +struct cfg80211_rx_info; + +typedef void (*btf_trace_cfg80211_rx_mgmt)(void *, struct wireless_dev *, struct cfg80211_rx_info *); struct cfg80211_rx_info { int freq; @@ -37451,19062 +40118,94 @@ struct cfg80211_rx_info { u64 ack_tstamp; }; -typedef __u32 Elf32_Word; +typedef void (*btf_trace_cfg80211_mgmt_tx_status)(void *, struct wireless_dev *, u64, bool); -struct elf32_note { - Elf32_Word n_namesz; - Elf32_Word n_descsz; - Elf32_Word n_type; -}; - -struct cpuinfo_x86; - -struct cpu_dev { - const char *c_vendor; - const char *c_ident[2]; - void (*c_early_init)(struct cpuinfo_x86 *); - void (*c_bsp_init)(struct cpuinfo_x86 *); - void (*c_init)(struct cpuinfo_x86 *); - void (*c_identify)(struct cpuinfo_x86 *); - void (*c_detect_tlb)(struct cpuinfo_x86 *); - int c_x86_vendor; -}; - -struct cpuinfo_topology { - u32 apicid; - u32 initial_apicid; - u32 pkg_id; - u32 die_id; - u32 cu_id; - u32 core_id; - u32 logical_pkg_id; - u32 logical_die_id; - u32 amd_node_id; - u32 llc_id; - u32 l2c_id; -}; - -struct cpuinfo_x86 { - __u8 x86; - __u8 x86_vendor; - __u8 x86_model; - __u8 x86_stepping; - int x86_tlbsize; - __u32 vmx_capability[5]; - __u8 x86_virt_bits; - __u8 x86_phys_bits; - __u32 extended_cpuid_level; - int cpuid_level; - union { - __u32 x86_capability[23]; - unsigned long x86_capability_alignment; - }; - char x86_vendor_id[16]; - char x86_model_id[64]; - struct cpuinfo_topology topo; - unsigned int x86_cache_size; - int x86_cache_alignment; - int x86_cache_max_rmid; - int x86_cache_occ_scale; - int x86_cache_mbm_width_offset; - int x86_power; - unsigned long loops_per_jiffy; - u64 ppin; - u16 x86_clflush_size; - u16 booted_cores; - u16 cpu_index; - bool smt_active; - u32 microcode; - u8 x86_cache_bits; - unsigned int initialized: 1; -}; - -enum cpuid_leafs { - CPUID_1_EDX = 0, - CPUID_8000_0001_EDX = 1, - CPUID_8086_0001_EDX = 2, - CPUID_LNX_1 = 3, - CPUID_1_ECX = 4, - CPUID_C000_0001_EDX = 5, - CPUID_8000_0001_ECX = 6, - CPUID_LNX_2 = 7, - CPUID_LNX_3 = 8, - CPUID_7_0_EBX = 9, - CPUID_D_1_EAX = 10, - CPUID_LNX_4 = 11, - CPUID_7_1_EAX = 12, - CPUID_8000_0008_EBX = 13, - CPUID_6_EAX = 14, - CPUID_8000_000A_EDX = 15, - CPUID_7_ECX = 16, - CPUID_8000_0007_EBX = 17, - CPUID_7_EDX = 18, - CPUID_8000_001F_EAX = 19, - CPUID_8000_0021_EAX = 20, -}; - -typedef __u8 mtrr_type; - -struct mtrr_ops { - u32 var_regs; - void (*set)(unsigned int, unsigned long, unsigned long, mtrr_type); - void (*get)(unsigned int, unsigned long *, unsigned long *, mtrr_type *); - int (*get_free_region)(unsigned long, unsigned long, int); - int (*validate_add_page)(unsigned long, unsigned long, unsigned int); - int (*have_wrcomb)(); -}; - -struct cache_map { - u64 start; - u64 end; - u64 flags; - u64 type: 8; - u64 fixed: 1; -}; - -struct mtrr_var_range { - __u32 base_lo; - __u32 base_hi; - __u32 mask_lo; - __u32 mask_hi; -}; - -struct mtrr_state_type { - struct mtrr_var_range var_ranges[256]; - mtrr_type fixed_ranges[88]; - unsigned char enabled; - bool have_fixed; - mtrr_type def_type; -}; - -struct fixed_range_block { - int base_msr; - int ranges; -}; - -enum cc_attr { - CC_ATTR_MEM_ENCRYPT = 0, - CC_ATTR_HOST_MEM_ENCRYPT = 1, - CC_ATTR_GUEST_MEM_ENCRYPT = 2, - CC_ATTR_GUEST_STATE_ENCRYPT = 3, - CC_ATTR_GUEST_UNROLL_STRING_IO = 4, - CC_ATTR_GUEST_SEV_SNP = 5, - CC_ATTR_HOTPLUG_DISABLED = 6, -}; - -enum lockdep_ok { - LOCKDEP_STILL_OK = 0, - LOCKDEP_NOW_UNRELIABLE = 1, -}; - -enum x86_topology_domains { - TOPO_SMT_DOMAIN = 0, - TOPO_CORE_DOMAIN = 1, - TOPO_MODULE_DOMAIN = 2, - TOPO_TILE_DOMAIN = 3, - TOPO_DIE_DOMAIN = 4, - TOPO_DIEGRP_DOMAIN = 5, - TOPO_PKG_DOMAIN = 6, - TOPO_MAX_DOMAIN = 7, -}; - -struct pci_hostbridge_probe { - u32 bus; - u32 slot; - u32 vendor; - u32 device; -}; - -struct kcore_list { - struct list_head list; - unsigned long addr; - size_t size; - int type; -}; - -enum kcore_type { - KCORE_TEXT = 0, - KCORE_VMALLOC = 1, - KCORE_RAM = 2, - KCORE_VMEMMAP = 3, - KCORE_USER = 4, -}; - -enum { - UNAME26 = 131072, - ADDR_NO_RANDOMIZE = 262144, - FDPIC_FUNCPTRS = 524288, - MMAP_PAGE_ZERO = 1048576, - ADDR_COMPAT_LAYOUT = 2097152, - READ_IMPLIES_EXEC = 4194304, - ADDR_LIMIT_32BIT = 8388608, - SHORT_INODE = 16777216, - WHOLE_SECONDS = 33554432, - STICKY_TIMEOUTS = 67108864, - ADDR_LIMIT_3GB = 134217728, -}; - -enum e820_type { - E820_TYPE_RAM = 1, - E820_TYPE_RESERVED = 2, - E820_TYPE_ACPI = 3, - E820_TYPE_NVS = 4, - E820_TYPE_UNUSABLE = 5, - E820_TYPE_PMEM = 7, - E820_TYPE_PRAM = 12, - E820_TYPE_SOFT_RESERVED = 4026531839, - E820_TYPE_RESERVED_KERN = 128, -}; - -enum pg_level { - PG_LEVEL_NONE = 0, - PG_LEVEL_4K = 1, - PG_LEVEL_2M = 2, - PG_LEVEL_1G = 3, - PG_LEVEL_512G = 4, - PG_LEVEL_NUM = 5, -}; - -struct x86_mapping_info { - void * (*alloc_pgt_page)(void *); - void *context; - unsigned long page_flag; - unsigned long offset; - bool direct_gbpages; - unsigned long kernpg_flag; -}; - -struct timens_offsets { - struct timespec64 monotonic; - struct timespec64 boottime; -}; - -struct time_namespace { - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; - struct timens_offsets offsets; - struct page *vvar_page; - bool frozen_offsets; -}; - -struct __kernel_timex; - -struct k_itimer; - -struct itimerspec64; - -struct k_clock { - int (*clock_getres)(const clockid_t, struct timespec64 *); - int (*clock_set)(const clockid_t, const struct timespec64 *); - int (*clock_get_timespec)(const clockid_t, struct timespec64 *); - ktime_t (*clock_get_ktime)(const clockid_t); - int (*clock_adj)(const clockid_t, struct __kernel_timex *); - int (*timer_create)(struct k_itimer *); - int (*nsleep)(const clockid_t, int, const struct timespec64 *); - int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *); - int (*timer_del)(struct k_itimer *); - void (*timer_get)(struct k_itimer *, struct itimerspec64 *); - void (*timer_rearm)(struct k_itimer *); - s64 (*timer_forward)(struct k_itimer *, ktime_t); - ktime_t (*timer_remaining)(struct k_itimer *, ktime_t); - int (*timer_try_to_cancel)(struct k_itimer *); - void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool); - void (*timer_wait_running)(struct k_itimer *); -}; - -struct __kernel_timex_timeval { - __kernel_time64_t tv_sec; - long long tv_usec; -}; - -struct __kernel_timex { - unsigned int modes; - long long offset; - long long freq; - long long maxerror; - long long esterror; - int status; - long long constant; - long long precision; - long long tolerance; - struct __kernel_timex_timeval time; - long long tick; - long long ppsfreq; - long long jitter; - int shift; - long long stabil; - long long jitcnt; - long long calcnt; - long long errcnt; - long long stbcnt; - int tai; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -enum alarmtimer_restart { - ALARMTIMER_NORESTART = 0, - ALARMTIMER_RESTART = 1, -}; - -enum alarmtimer_type { - ALARM_REALTIME = 0, - ALARM_BOOTTIME = 1, - ALARM_NUMTYPE = 2, - ALARM_REALTIME_FREEZER = 3, - ALARM_BOOTTIME_FREEZER = 4, -}; - -struct alarm { - struct timerqueue_node node; - struct hrtimer timer; - enum alarmtimer_restart (*function)(struct alarm *, ktime_t); - enum alarmtimer_type type; - int state; - void *data; -}; - -struct cpu_timer { - struct timerqueue_node node; - struct timerqueue_head *head; - struct pid *pid; - struct list_head elist; - int firing; - struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; -}; - -typedef __kernel_timer_t timer_t; - -struct sigqueue; - -struct k_itimer { - struct list_head list; - struct hlist_node t_hash; - spinlock_t it_lock; - const struct k_clock *kclock; - clockid_t it_clock; - timer_t it_id; - int it_active; - s64 it_overrun; - s64 it_overrun_last; - int it_requeue_pending; - int it_sigev_notify; - ktime_t it_interval; - struct signal_struct *it_signal; - union { - struct pid *it_pid; - struct task_struct *it_process; - }; - struct sigqueue *sigq; - union { - struct { - struct hrtimer timer; - } real; - struct cpu_timer cpu; - struct { - struct alarm alarmtimer; - } alarm; - } it; - struct callback_head rcu; -}; - -struct sigqueue { - struct list_head list; - int flags; - kernel_siginfo_t info; - struct ucounts *ucounts; -}; - -struct itimerspec64 { - struct timespec64 it_interval; - struct timespec64 it_value; -}; - -enum hrtimer_mode { - HRTIMER_MODE_ABS = 0, - HRTIMER_MODE_REL = 1, - HRTIMER_MODE_PINNED = 2, - HRTIMER_MODE_SOFT = 4, - HRTIMER_MODE_HARD = 8, - HRTIMER_MODE_ABS_PINNED = 2, - HRTIMER_MODE_REL_PINNED = 3, - HRTIMER_MODE_ABS_SOFT = 4, - HRTIMER_MODE_REL_SOFT = 5, - HRTIMER_MODE_ABS_PINNED_SOFT = 6, - HRTIMER_MODE_REL_PINNED_SOFT = 7, - HRTIMER_MODE_ABS_HARD = 8, - HRTIMER_MODE_REL_HARD = 9, - HRTIMER_MODE_ABS_PINNED_HARD = 10, - HRTIMER_MODE_REL_PINNED_HARD = 11, -}; - -struct sigevent { - sigval_t sigev_value; - int sigev_signo; - int sigev_notify; - union { - int _pad[12]; - int _tid; - struct { - void (*_function)(sigval_t); - void *_attribute; - } _sigev_thread; - } _sigev_un; -}; - -struct __kernel_itimerspec { - struct __kernel_timespec it_interval; - struct __kernel_timespec it_value; -}; - -typedef struct sigevent sigevent_t; - -struct timezone { - int tz_minuteswest; - int tz_dsttime; -}; - -enum error_detector { - ERROR_DETECTOR_KFENCE = 0, - ERROR_DETECTOR_KASAN = 1, - ERROR_DETECTOR_WARN = 2, -}; - -typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); - -struct trace_print_flags { - unsigned long mask; - const char *name; -}; - -struct trace_event_raw_error_report_template { - struct trace_entry ent; - enum error_detector error_detector; - unsigned long id; - char __data[0]; -}; - -struct trace_event_data_offsets_error_report_template {}; - -struct bpf_mem_caches; - -struct bpf_mem_cache; - -struct bpf_mem_alloc { - struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches; - struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache; - struct obj_cgroup *objcg; - bool percpu; - struct work_struct work; -}; - -struct bpf_mem_cache { - struct llist_head free_llist; - local_t active; - struct llist_head free_llist_extra; - struct irq_work refill_work; - struct obj_cgroup *objcg; - int unit_size; - int free_cnt; - int low_watermark; - int high_watermark; - int batch; - int percpu_size; - bool draining; - struct bpf_mem_cache *tgt; - struct llist_head free_by_rcu; - struct llist_node *free_by_rcu_tail; - struct llist_head waiting_for_gp; - struct llist_node *waiting_for_gp_tail; - struct callback_head rcu; - atomic_t call_rcu_in_progress; - struct llist_head free_llist_extra_rcu; - struct llist_head free_by_rcu_ttrace; - struct llist_head waiting_for_gp_ttrace; - struct callback_head rcu_ttrace; - atomic_t call_rcu_ttrace_in_progress; -}; - -struct bpf_mem_caches { - struct bpf_mem_cache cache[11]; -}; - -struct btf_id_dtor_kfunc { - u32 btf_id; - u32 kfunc_btf_id; -}; - -struct bpf_cpumask { - cpumask_t cpumask; - refcount_t usage; -}; - -struct compact_control; - -struct capture_control { - struct compact_control *cc; - struct page *page; -}; - -struct compact_control { - struct list_head freepages[11]; - struct list_head migratepages; - unsigned int nr_freepages; - unsigned int nr_migratepages; - unsigned long free_pfn; - unsigned long migrate_pfn; - unsigned long fast_start_pfn; - struct zone *zone; - unsigned long total_migrate_scanned; - unsigned long total_free_scanned; - unsigned short fast_search_fail; - short search_order; - const gfp_t gfp_mask; - int order; - int migratetype; - const unsigned int alloc_flags; - const int highest_zoneidx; - enum migrate_mode mode; - bool ignore_skip_hint; - bool no_set_skip_hint; - bool ignore_block_suitable; - bool direct_compaction; - bool proactive_compaction; - bool whole_zone; - bool contended; - bool finish_pageblock; - bool alloc_contig; -}; - -enum vm_fault_reason { - VM_FAULT_OOM = 1, - VM_FAULT_SIGBUS = 2, - VM_FAULT_MAJOR = 4, - VM_FAULT_HWPOISON = 16, - VM_FAULT_HWPOISON_LARGE = 32, - VM_FAULT_SIGSEGV = 64, - VM_FAULT_NOPAGE = 256, - VM_FAULT_LOCKED = 512, - VM_FAULT_RETRY = 1024, - VM_FAULT_FALLBACK = 2048, - VM_FAULT_DONE_COW = 4096, - VM_FAULT_NEEDDSYNC = 8192, - VM_FAULT_COMPLETED = 16384, - VM_FAULT_HINDEX_MASK = 983040, -}; - -enum mapping_flags { - AS_EIO = 0, - AS_ENOSPC = 1, - AS_MM_ALL_LOCKS = 2, - AS_UNEVICTABLE = 3, - AS_EXITING = 4, - AS_NO_WRITEBACK_TAGS = 5, - AS_LARGE_FOLIO_SUPPORT = 6, - AS_RELEASE_ALWAYS = 7, - AS_STABLE_WRITES = 8, - AS_UNMOVABLE = 9, -}; - -struct pseudo_fs_context { - const struct super_operations *ops; - const struct xattr_handler * const *xattr; - const struct dentry_operations *dops; - unsigned long magic; -}; - -struct timerfd_ctx { - union { - struct hrtimer tmr; - struct alarm alarm; - } t; - ktime_t tintv; - ktime_t moffs; - wait_queue_head_t wqh; - u64 ticks; - int clockid; - unsigned short expired; - unsigned short settime_flags; - struct callback_head rcu; - struct list_head clist; - spinlock_t cancel_lock; - bool might_cancel; -}; - -typedef struct poll_table_struct poll_table; - -struct kernfs_syscall_ops; - -struct kernfs_root { - struct kernfs_node *kn; - unsigned int flags; - struct idr ino_idr; - u32 last_id_lowbits; - u32 id_highbits; - struct kernfs_syscall_ops *syscall_ops; - struct list_head supers; - wait_queue_head_t deactivate_waitq; - struct rw_semaphore kernfs_rwsem; - struct rw_semaphore kernfs_iattr_rwsem; - struct rw_semaphore kernfs_supers_rwsem; - struct callback_head rcu; -}; - -struct simple_xattrs { - struct rb_root rb_root; - rwlock_t lock; -}; - -struct kernfs_iattrs { - kuid_t ia_uid; - kgid_t ia_gid; - struct timespec64 ia_atime; - struct timespec64 ia_mtime; - struct timespec64 ia_ctime; - struct simple_xattrs xattrs; - atomic_t nr_user_xattrs; - atomic_t user_xattr_size; -}; - -struct kernfs_syscall_ops { - int (*show_options)(struct seq_file *, struct kernfs_root *); - int (*mkdir)(struct kernfs_node *, const char *, umode_t); - int (*rmdir)(struct kernfs_node *); - int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *); - int (*show_path)(struct seq_file *, struct kernfs_node *, struct kernfs_root *); -}; - -enum kernfs_node_type { - KERNFS_DIR = 1, - KERNFS_FILE = 2, - KERNFS_LINK = 4, -}; - -enum kernfs_node_flag { - KERNFS_ACTIVATED = 16, - KERNFS_NS = 32, - KERNFS_HAS_SEQ_SHOW = 64, - KERNFS_HAS_MMAP = 128, - KERNFS_LOCKDEP = 256, - KERNFS_HIDDEN = 512, - KERNFS_SUICIDAL = 1024, - KERNFS_SUICIDED = 2048, - KERNFS_EMPTY_DIR = 4096, - KERNFS_HAS_RELEASE = 8192, - KERNFS_REMOVING = 16384, -}; - -enum kernfs_root_flag { - KERNFS_ROOT_CREATE_DEACTIVATED = 1, - KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2, - KERNFS_ROOT_SUPPORT_EXPORTOP = 4, - KERNFS_ROOT_SUPPORT_USER_XATTR = 8, -}; - -struct simple_xattr { - struct rb_node rb_node; - char *name; - size_t size; - char value[0]; -}; - -enum autofs_notify { - NFY_NONE = 0, - NFY_MOUNT = 1, - NFY_EXPIRE = 2, -}; - -enum dentry_d_lock_class { - DENTRY_D_LOCK_NORMAL = 0, - DENTRY_D_LOCK_NESTED = 1, -}; - -struct autofs_wait_queue; - -struct autofs_sb_info { - u32 magic; - int pipefd; - struct file *pipe; - struct pid *oz_pgrp; - int version; - int sub_version; - int min_proto; - int max_proto; - unsigned int flags; - unsigned long exp_timeout; - unsigned int type; - struct super_block *sb; - struct mutex wq_mutex; - struct mutex pipe_mutex; - spinlock_t fs_lock; - struct autofs_wait_queue *queues; - spinlock_t lookup_lock; - struct list_head active_list; - struct list_head expiring_list; - struct callback_head rcu; -}; - -typedef unsigned int autofs_wqt_t; - -struct autofs_wait_queue { - wait_queue_head_t queue; - struct autofs_wait_queue *next; - autofs_wqt_t wait_queue_token; - struct qstr name; - u32 offset; - u32 dev; - u64 ino; - kuid_t uid; - kgid_t gid; - pid_t pid; - pid_t tgid; - int status; - unsigned int wait_ctr; -}; - -struct autofs_info { - struct dentry *dentry; - int flags; - struct completion expire_complete; - struct list_head active; - struct list_head expiring; - struct autofs_sb_info *sbi; - unsigned long last_used; - int count; - kuid_t uid; - kgid_t gid; - struct callback_head rcu; -}; - -struct autofs_packet_hdr { - int proto_version; - int type; -}; - -struct autofs_packet_expire { - struct autofs_packet_hdr hdr; - int len; - char name[256]; -}; - -enum key_lookup_flag { - KEY_LOOKUP_CREATE = 1, - KEY_LOOKUP_PARTIAL = 2, - KEY_LOOKUP_ALL = 3, -}; - -enum key_state { - KEY_IS_UNINSTANTIATED = 0, - KEY_IS_POSITIVE = 1, -}; - -struct genradix_root; - -struct genradix_node { - union { - struct genradix_node *children[64]; - u8 data[512]; - }; -}; - -struct __genradix { - struct genradix_root *root; -}; - -struct genradix_iter { - size_t offset; - size_t pos; -}; - -typedef enum { - ZSTD_error_no_error = 0, - ZSTD_error_GENERIC = 1, - ZSTD_error_prefix_unknown = 10, - ZSTD_error_version_unsupported = 12, - ZSTD_error_frameParameter_unsupported = 14, - ZSTD_error_frameParameter_windowTooLarge = 16, - ZSTD_error_corruption_detected = 20, - ZSTD_error_checksum_wrong = 22, - ZSTD_error_dictionary_corrupted = 30, - ZSTD_error_dictionary_wrong = 32, - ZSTD_error_dictionaryCreation_failed = 34, - ZSTD_error_parameter_unsupported = 40, - ZSTD_error_parameter_outOfBound = 42, - ZSTD_error_tableLog_tooLarge = 44, - ZSTD_error_maxSymbolValue_tooLarge = 46, - ZSTD_error_maxSymbolValue_tooSmall = 48, - ZSTD_error_stage_wrong = 60, - ZSTD_error_init_missing = 62, - ZSTD_error_memory_allocation = 64, - ZSTD_error_workSpace_tooSmall = 66, - ZSTD_error_dstSize_tooSmall = 70, - ZSTD_error_srcSize_wrong = 72, - ZSTD_error_dstBuffer_null = 74, - ZSTD_error_frameIndex_tooLarge = 100, - ZSTD_error_seekableIO = 102, - ZSTD_error_dstBuffer_wrong = 104, - ZSTD_error_srcBuffer_wrong = 105, - ZSTD_error_maxCode = 120, -} ZSTD_ErrorCode; - -typedef struct { - U16 nextState; - BYTE nbAdditionalBits; - BYTE nbBits; - U32 baseValue; -} ZSTD_seqSymbol; - -typedef U32 HUF_DTable; - -typedef struct { - ZSTD_seqSymbol LLTable[513]; - ZSTD_seqSymbol OFTable[257]; - ZSTD_seqSymbol MLTable[513]; - HUF_DTable hufTable[4097]; - U32 rep[3]; - U32 workspace[157]; -} ZSTD_entropyDTables_t; - -typedef enum { - ZSTD_frame = 0, - ZSTD_skippableFrame = 1, -} ZSTD_frameType_e; - -typedef struct { - unsigned long long frameContentSize; - unsigned long long windowSize; - unsigned int blockSizeMax; - ZSTD_frameType_e frameType; - unsigned int headerSize; - unsigned int dictID; - unsigned int checksumFlag; -} ZSTD_frameHeader; - -typedef enum { - bt_raw = 0, - bt_rle = 1, - bt_compressed = 2, - bt_reserved = 3, -} blockType_e; - -typedef enum { - ZSTDds_getFrameHeaderSize = 0, - ZSTDds_decodeFrameHeader = 1, - ZSTDds_decodeBlockHeader = 2, - ZSTDds_decompressBlock = 3, - ZSTDds_decompressLastBlock = 4, - ZSTDds_checkChecksum = 5, - ZSTDds_decodeSkippableHeader = 6, - ZSTDds_skipFrame = 7, -} ZSTD_dStage; - -typedef enum { - ZSTD_f_zstd1 = 0, - ZSTD_f_zstd1_magicless = 1, -} ZSTD_format_e; - -typedef enum { - ZSTD_d_validateChecksum = 0, - ZSTD_d_ignoreChecksum = 1, -} ZSTD_forceIgnoreChecksum_e; - -typedef void * (*ZSTD_allocFunction)(void *, size_t); - -typedef void (*ZSTD_freeFunction)(void *, void *); - -typedef struct { - ZSTD_allocFunction customAlloc; - ZSTD_freeFunction customFree; - void *opaque; -} ZSTD_customMem; - -typedef enum { - ZSTD_use_indefinitely = -1, - ZSTD_dont_use = 0, - ZSTD_use_once = 1, -} ZSTD_dictUses_e; - -struct ZSTD_DDict_s; - -typedef struct ZSTD_DDict_s ZSTD_DDict; - -typedef struct { - const ZSTD_DDict **ddictPtrTable; - size_t ddictPtrTableSize; - size_t ddictPtrCount; -} ZSTD_DDictHashSet; - -typedef enum { - ZSTD_rmd_refSingleDDict = 0, - ZSTD_rmd_refMultipleDDicts = 1, -} ZSTD_refMultipleDDicts_e; - -typedef enum { - zdss_init = 0, - zdss_loadHeader = 1, - zdss_read = 2, - zdss_load = 3, - zdss_flush = 4, -} ZSTD_dStreamStage; - -typedef enum { - ZSTD_bm_buffered = 0, - ZSTD_bm_stable = 1, -} ZSTD_bufferMode_e; - -struct ZSTD_outBuffer_s { - void *dst; - size_t size; - size_t pos; -}; - -typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; - -typedef enum { - ZSTD_not_in_dst = 0, - ZSTD_in_dst = 1, - ZSTD_split = 2, -} ZSTD_litLocation_e; - -struct ZSTD_DCtx_s { - const ZSTD_seqSymbol *LLTptr; - const ZSTD_seqSymbol *MLTptr; - const ZSTD_seqSymbol *OFTptr; - const HUF_DTable *HUFptr; - ZSTD_entropyDTables_t entropy; - U32 workspace[640]; - const void *previousDstEnd; - const void *prefixStart; - const void *virtualStart; - const void *dictEnd; - size_t expected; - ZSTD_frameHeader fParams; - U64 processedCSize; - U64 decodedSize; - blockType_e bType; - ZSTD_dStage stage; - U32 litEntropy; - U32 fseEntropy; - struct xxh64_state xxhState; - size_t headerSize; - ZSTD_format_e format; - ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum; - U32 validateChecksum; - const BYTE *litPtr; - ZSTD_customMem customMem; - size_t litSize; - size_t rleSize; - size_t staticSize; - int bmi2; - ZSTD_DDict *ddictLocal; - const ZSTD_DDict *ddict; - U32 dictID; - int ddictIsCold; - ZSTD_dictUses_e dictUses; - ZSTD_DDictHashSet *ddictSet; - ZSTD_refMultipleDDicts_e refMultipleDDicts; - ZSTD_dStreamStage streamStage; - char *inBuff; - size_t inBuffSize; - size_t inPos; - size_t maxWindowSize; - char *outBuff; - size_t outBuffSize; - size_t outStart; - size_t outEnd; - size_t lhSize; - U32 hostageByte; - int noForwardProgress; - ZSTD_bufferMode_e outBufferMode; - ZSTD_outBuffer expectedOutBuffer; - BYTE *litBuffer; - const BYTE *litBufferEnd; - ZSTD_litLocation_e litBufferLocation; - BYTE litExtraBuffer[65568]; - BYTE headerBuffer[18]; - size_t oversizedDuration; -}; - -typedef struct ZSTD_DCtx_s ZSTD_DCtx; - -typedef ZSTD_DCtx ZSTD_DStream; - -struct ZSTD_inBuffer_s { - const void *src; - size_t size; - size_t pos; -}; - -typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; - -typedef ZSTD_ErrorCode zstd_error_code; - -typedef ZSTD_DCtx zstd_dctx; - -typedef ZSTD_DStream zstd_dstream; - -typedef ZSTD_outBuffer zstd_out_buffer; - -typedef ZSTD_inBuffer zstd_in_buffer; - -typedef ZSTD_frameHeader zstd_frame_header; - -typedef ZSTD_ErrorCode ERR_enum; - -struct pci_dev_reset_methods { - u16 vendor; - u16 device; - int (*reset)(struct pci_dev *, bool); -}; - -struct pci_dev_acs_enabled { - u16 vendor; - u16 device; - int (*acs_enabled)(struct pci_dev *, u16); -}; - -struct pci_dev_acs_ops { - u16 vendor; - u16 device; - int (*enable_acs)(struct pci_dev *); - int (*disable_acs_redir)(struct pci_dev *); -}; - -enum { - NVME_REG_CAP = 0, - NVME_REG_VS = 8, - NVME_REG_INTMS = 12, - NVME_REG_INTMC = 16, - NVME_REG_CC = 20, - NVME_REG_CSTS = 28, - NVME_REG_NSSR = 32, - NVME_REG_AQA = 36, - NVME_REG_ASQ = 40, - NVME_REG_ACQ = 48, - NVME_REG_CMBLOC = 56, - NVME_REG_CMBSZ = 60, - NVME_REG_BPINFO = 64, - NVME_REG_BPRSEL = 68, - NVME_REG_BPMBL = 72, - NVME_REG_CMBMSC = 80, - NVME_REG_CRTO = 104, - NVME_REG_PMRCAP = 3584, - NVME_REG_PMRCTL = 3588, - NVME_REG_PMRSTS = 3592, - NVME_REG_PMREBS = 3596, - NVME_REG_PMRSWTP = 3600, - NVME_REG_DBS = 4096, -}; - -enum { - NVME_CC_ENABLE = 1, - NVME_CC_EN_SHIFT = 0, - NVME_CC_CSS_SHIFT = 4, - NVME_CC_MPS_SHIFT = 7, - NVME_CC_AMS_SHIFT = 11, - NVME_CC_SHN_SHIFT = 14, - NVME_CC_IOSQES_SHIFT = 16, - NVME_CC_IOCQES_SHIFT = 20, - NVME_CC_CSS_NVM = 0, - NVME_CC_CSS_CSI = 96, - NVME_CC_CSS_MASK = 112, - NVME_CC_AMS_RR = 0, - NVME_CC_AMS_WRRU = 2048, - NVME_CC_AMS_VS = 14336, - NVME_CC_SHN_NONE = 0, - NVME_CC_SHN_NORMAL = 16384, - NVME_CC_SHN_ABRUPT = 32768, - NVME_CC_SHN_MASK = 49152, - NVME_CC_IOSQES = 393216, - NVME_CC_IOCQES = 4194304, - NVME_CC_CRIME = 16777216, -}; - -enum { - NVME_CSTS_RDY = 1, - NVME_CSTS_CFS = 2, - NVME_CSTS_NSSRO = 16, - NVME_CSTS_PP = 32, - NVME_CSTS_SHST_NORMAL = 0, - NVME_CSTS_SHST_OCCUR = 4, - NVME_CSTS_SHST_CMPLT = 8, - NVME_CSTS_SHST_MASK = 12, -}; - -enum { - SWITCHTEC_GAS_MRPC_OFFSET = 0, - SWITCHTEC_GAS_TOP_CFG_OFFSET = 4096, - SWITCHTEC_GAS_SW_EVENT_OFFSET = 6144, - SWITCHTEC_GAS_SYS_INFO_OFFSET = 8192, - SWITCHTEC_GAS_FLASH_INFO_OFFSET = 8704, - SWITCHTEC_GAS_PART_CFG_OFFSET = 16384, - SWITCHTEC_GAS_NTB_OFFSET = 65536, - SWITCHTEC_GAS_PFF_CSR_OFFSET = 1261568, -}; - -enum { - SWITCHTEC_NTB_REG_INFO_OFFSET = 0, - SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, - SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, -}; - -struct pci_fixup { - u16 vendor; - u16 device; - u32 class; - unsigned int class_shift; - int hook_offset; -}; - -struct pci_cap_saved_data { - u16 cap_nr; - bool cap_extended; - unsigned int size; - u32 data[0]; -}; - -struct pci_cap_saved_state { - struct hlist_node next; - struct pci_cap_saved_data cap; -}; - -typedef char *acpi_string; - -struct acpi_table_header { - char signature[4]; - u32 length; - u8 revision; - u8 checksum; - char oem_id[6]; - char oem_table_id[8]; - u32 oem_revision; - char asl_compiler_id[4]; - u32 asl_compiler_revision; -}; - -struct nt_partition_info { - u32 xlink_enabled; - u32 target_part_low; - u32 target_part_high; - u32 reserved; -}; - -struct ntb_info_regs { - u8 partition_count; - u8 partition_id; - u16 reserved1; - u64 ep_map; - u16 requester_id; - u16 reserved2; - u32 reserved3[4]; - struct nt_partition_info ntp_info[48]; -} __attribute__((packed)); - -struct ntb_ctrl_regs { - u32 partition_status; - u32 partition_op; - u32 partition_ctrl; - u32 bar_setup; - u32 bar_error; - u16 lut_table_entries; - u16 lut_table_offset; - u32 lut_error; - u16 req_id_table_size; - u16 req_id_table_offset; - u32 req_id_error; - u32 reserved1[7]; - struct { - u32 ctl; - u32 win_size; - u64 xlate_addr; - } bar_entry[6]; - struct { - u32 win_size; - u32 reserved[3]; - } bar_ext_entry[6]; - u32 reserved2[192]; - u32 req_id_table[512]; - u32 reserved3[256]; - u64 lut_entry[512]; -}; - -struct clk_lookup { - struct list_head node; - const char *dev_id; - const char *con_id; - struct clk *clk; - struct clk_hw *clk_hw; -}; - -struct clk_lookup_alloc { - struct clk_lookup cl; - char dev_id[24]; - char con_id[16]; -}; - -struct dma_buf_list { - struct list_head head; - struct mutex lock; -}; - -enum dma_resv_usage { - DMA_RESV_USAGE_KERNEL = 0, - DMA_RESV_USAGE_WRITE = 1, - DMA_RESV_USAGE_READ = 2, - DMA_RESV_USAGE_BOOKKEEP = 3, -}; - -struct ww_acquire_ctx; - -struct ww_class; - -struct ww_mutex { - struct mutex base; - struct ww_acquire_ctx *ctx; - struct ww_class *ww_class; -}; - -struct dma_resv_list; - -struct dma_resv { - struct ww_mutex lock; - struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; -}; - -struct ww_acquire_ctx { - struct task_struct *task; - unsigned long stamp; - unsigned int acquired; - unsigned short wounded; - unsigned short is_wait_die; - unsigned int done_acquire; - struct ww_class *ww_class; - void *contending_lock; - struct lockdep_map dep_map; - unsigned int deadlock_inject_interval; - unsigned int deadlock_inject_countdown; -}; - -struct ww_class { - atomic_long_t stamp; - struct lock_class_key acquire_key; - struct lock_class_key mutex_key; - const char *acquire_name; - const char *mutex_name; - unsigned int is_wait_die; -}; - -struct dma_fence; - -struct dma_resv_list { - struct callback_head rcu; - u32 num_fences; - u32 max_fences; - struct dma_fence __attribute__((btf_type_tag("rcu"))) *table[0]; -}; - -struct dma_buf; - -struct dma_buf_attach_ops; - -struct dma_buf_attachment { - struct dma_buf *dmabuf; - struct device *dev; - struct list_head node; - struct sg_table *sgt; - enum dma_data_direction dir; - bool peer2peer; - const struct dma_buf_attach_ops *importer_ops; - void *importer_priv; - void *priv; -}; - -struct iosys_map { - union { - void *vaddr_iomem; - void *vaddr; - }; - bool is_iomem; -}; - -struct dma_fence_cb; - -typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); - -struct dma_fence_cb { - struct list_head node; - dma_fence_func_t func; -}; - -struct dma_buf_poll_cb_t { - struct dma_fence_cb cb; - wait_queue_head_t *poll; - __poll_t active; -}; - -struct dma_buf_ops; - -struct dma_buf { - size_t size; - struct file *file; - struct list_head attachments; - const struct dma_buf_ops *ops; - unsigned int vmapping_counter; - struct iosys_map vmap_ptr; - const char *exp_name; - const char *name; - spinlock_t name_lock; - struct module *owner; - struct list_head list_node; - void *priv; - struct dma_resv *resv; - wait_queue_head_t poll; - struct dma_buf_poll_cb_t cb_in; - struct dma_buf_poll_cb_t cb_out; -}; - -struct dma_buf_ops { - bool cache_sgt_mapping; - int (*attach)(struct dma_buf *, struct dma_buf_attachment *); - void (*detach)(struct dma_buf *, struct dma_buf_attachment *); - int (*pin)(struct dma_buf_attachment *); - void (*unpin)(struct dma_buf_attachment *); - struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction); - void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction); - void (*release)(struct dma_buf *); - int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction); - int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction); - int (*mmap)(struct dma_buf *, struct vm_area_struct *); - int (*vmap)(struct dma_buf *, struct iosys_map *); - void (*vunmap)(struct dma_buf *, struct iosys_map *); -}; - -struct dma_fence_ops; - -struct dma_fence { - spinlock_t *lock; - const struct dma_fence_ops *ops; - union { - struct list_head cb_list; - ktime_t timestamp; - struct callback_head rcu; - }; - u64 context; - u64 seqno; - unsigned long flags; - struct kref refcount; - int error; -}; - -struct dma_fence_ops { - bool use_64bit_seqno; - const char * (*get_driver_name)(struct dma_fence *); - const char * (*get_timeline_name)(struct dma_fence *); - bool (*enable_signaling)(struct dma_fence *); - bool (*signaled)(struct dma_fence *); - long (*wait)(struct dma_fence *, bool, long); - void (*release)(struct dma_fence *); - void (*fence_value_str)(struct dma_fence *, char *, int); - void (*timeline_value_str)(struct dma_fence *, char *, int); - void (*set_deadline)(struct dma_fence *, ktime_t); -}; - -struct dma_buf_attach_ops { - bool allow_peer2peer; - void (*move_notify)(struct dma_buf_attachment *); -}; - -struct dma_buf_import_sync_file { - __u32 flags; - __s32 fd; -}; - -struct dma_fence_unwrap { - struct dma_fence *chain; - struct dma_fence *array; - unsigned int index; -}; - -struct dma_buf_export_sync_file { - __u32 flags; - __s32 fd; -}; - -struct sync_file { - struct file *file; - char user_name[32]; - struct list_head sync_file_list; - wait_queue_head_t wq; - unsigned long flags; - struct dma_fence *fence; - struct dma_fence_cb cb; -}; - -struct dma_resv_iter { - struct dma_resv *obj; - enum dma_resv_usage usage; - struct dma_fence *fence; - enum dma_resv_usage fence_usage; - unsigned int index; - struct dma_resv_list *fences; - unsigned int num_fences; - bool is_restarted; -}; - -struct dma_buf_export_info { - const char *exp_name; - struct module *owner; - const struct dma_buf_ops *ops; - size_t size; - int flags; - struct dma_resv *resv; - void *priv; -}; - -struct dma_buf_sync { - __u64 flags; -}; - -enum iwl_power_level { - IWL_POWER_INDEX_1 = 0, - IWL_POWER_INDEX_2 = 1, - IWL_POWER_INDEX_3 = 2, - IWL_POWER_INDEX_4 = 3, - IWL_POWER_INDEX_5 = 4, - IWL_POWER_NUM = 5, -}; - -struct plist_head { - struct list_head node_list; -}; - -enum pm_qos_type { - PM_QOS_UNITIALIZED = 0, - PM_QOS_MAX = 1, - PM_QOS_MIN = 2, -}; - -struct pm_qos_constraints { - struct plist_head list; - s32 target_value; - s32 default_value; - s32 no_constraint_value; - enum pm_qos_type type; - struct blocking_notifier_head *notifiers; -}; - -struct freq_constraints { - struct pm_qos_constraints min_freq; - struct blocking_notifier_head min_freq_notifiers; - struct pm_qos_constraints max_freq; - struct blocking_notifier_head max_freq_notifiers; -}; - -struct pm_qos_flags { - struct list_head list; - s32 effective_flags; -}; - -struct dev_pm_qos_request; - -struct dev_pm_qos { - struct pm_qos_constraints resume_latency; - struct pm_qos_constraints latency_tolerance; - struct freq_constraints freq; - struct pm_qos_flags flags; - struct dev_pm_qos_request *resume_latency_req; - struct dev_pm_qos_request *latency_tolerance_req; - struct dev_pm_qos_request *flags_req; -}; - -struct pm_qos_flags_request { - struct list_head node; - s32 flags; -}; - -enum freq_qos_req_type { - FREQ_QOS_MIN = 1, - FREQ_QOS_MAX = 2, -}; - -struct freq_qos_request { - enum freq_qos_req_type type; - struct plist_node pnode; - struct freq_constraints *qos; -}; - -enum dev_pm_qos_req_type { - DEV_PM_QOS_RESUME_LATENCY = 1, - DEV_PM_QOS_LATENCY_TOLERANCE = 2, - DEV_PM_QOS_MIN_FREQUENCY = 3, - DEV_PM_QOS_MAX_FREQUENCY = 4, - DEV_PM_QOS_FLAGS = 5, -}; - -struct dev_pm_qos_request { - enum dev_pm_qos_req_type type; - union { - struct plist_node pnode; - struct pm_qos_flags_request flr; - struct freq_qos_request freq; - } data; - struct device *dev; -}; - -struct thermal_zone_device; - -typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); - -enum thermal_device_mode { - THERMAL_DEVICE_DISABLED = 0, - THERMAL_DEVICE_ENABLED = 1, -}; - -enum thermal_trend { - THERMAL_TREND_STABLE = 0, - THERMAL_TREND_RAISING = 1, - THERMAL_TREND_DROPPING = 2, -}; - -struct thermal_cooling_device; - -struct thermal_trip; - -struct thermal_zone_device_ops { - int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *); - int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *); - int (*get_temp)(struct thermal_zone_device *, int *); - int (*set_trips)(struct thermal_zone_device *, int, int); - int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); - int (*set_trip_temp)(struct thermal_zone_device *, int, int); - int (*get_crit_temp)(struct thermal_zone_device *, int *); - int (*set_emul_temp)(struct thermal_zone_device *, int); - int (*get_trend)(struct thermal_zone_device *, const struct thermal_trip *, enum thermal_trend *); - void (*hot)(struct thermal_zone_device *); - void (*critical)(struct thermal_zone_device *); -}; - -enum thermal_notify_event { - THERMAL_EVENT_UNSPECIFIED = 0, - THERMAL_EVENT_TEMP_SAMPLE = 1, - THERMAL_TRIP_VIOLATED = 2, - THERMAL_TRIP_CHANGED = 3, - THERMAL_DEVICE_DOWN = 4, - THERMAL_DEVICE_UP = 5, - THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6, - THERMAL_TABLE_CHANGED = 7, - THERMAL_EVENT_KEEP_ALIVE = 8, - THERMAL_TZ_BIND_CDEV = 9, - THERMAL_TZ_UNBIND_CDEV = 10, - THERMAL_INSTANCE_WEIGHT_CHANGED = 11, -}; - -enum thermal_trip_type { - THERMAL_TRIP_ACTIVE = 0, - THERMAL_TRIP_PASSIVE = 1, - THERMAL_TRIP_HOT = 2, - THERMAL_TRIP_CRITICAL = 3, -}; - -struct thermal_trip { - int temperature; - int hysteresis; - int threshold; - enum thermal_trip_type type; - u8 flags; - void *priv; -}; - -struct thermal_attr; - -struct thermal_zone_params; - -struct thermal_governor; - -struct thermal_zone_device { - int id; - char type[20]; - struct device device; - struct completion removal; - struct attribute_group trips_attribute_group; - struct thermal_attr *trip_temp_attrs; - struct thermal_attr *trip_type_attrs; - struct thermal_attr *trip_hyst_attrs; - enum thermal_device_mode mode; - void *devdata; - int num_trips; - unsigned long passive_delay_jiffies; - unsigned long polling_delay_jiffies; - int temperature; - int last_temperature; - int emul_temperature; - int passive; - int prev_low_trip; - int prev_high_trip; - atomic_t need_update; - struct thermal_zone_device_ops ops; - struct thermal_zone_params *tzp; - struct thermal_governor *governor; - void *governor_data; - struct list_head thermal_instances; - struct ida ida; - struct mutex lock; - struct list_head node; - struct delayed_work poll_queue; - enum thermal_notify_event notify_event; - bool suspended; - struct thermal_trip trips[0]; -}; - -struct thermal_attr { - struct device_attribute attr; - char name[20]; -}; - -struct thermal_cooling_device_ops; - -struct thermal_cooling_device { - int id; - const char *type; - unsigned long max_state; - struct device device; - struct device_node *np; - void *devdata; - void *stats; - const struct thermal_cooling_device_ops *ops; - bool updated; - struct mutex lock; - struct list_head thermal_instances; - struct list_head node; -}; - -struct thermal_cooling_device_ops { - int (*get_max_state)(struct thermal_cooling_device *, unsigned long *); - int (*get_cur_state)(struct thermal_cooling_device *, unsigned long *); - int (*set_cur_state)(struct thermal_cooling_device *, unsigned long); - int (*get_requested_power)(struct thermal_cooling_device *, u32 *); - int (*state2power)(struct thermal_cooling_device *, unsigned long, u32 *); - int (*power2state)(struct thermal_cooling_device *, u32, unsigned long *); -}; - -struct thermal_zone_params { - const char *governor_name; - bool no_hwmon; - u32 sustainable_power; - s32 k_po; - s32 k_pu; - s32 k_i; - s32 k_d; - s32 integral_cutoff; - int slope; - int offset; -}; - -struct thermal_governor { - const char *name; - int (*bind_to_tz)(struct thermal_zone_device *); - void (*unbind_from_tz)(struct thermal_zone_device *); - int (*throttle)(struct thermal_zone_device *, const struct thermal_trip *); - void (*update_tz)(struct thermal_zone_device *, enum thermal_notify_event); - struct list_head governor_list; -}; - -typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); - -typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); - -enum xa_lock_type { - XA_LOCK_IRQ = 1, - XA_LOCK_BH = 2, -}; - -struct thermal_instance { - int id; - char name[20]; - struct thermal_zone_device *tz; - struct thermal_cooling_device *cdev; - const struct thermal_trip *trip; - bool initialized; - unsigned long upper; - unsigned long lower; - unsigned long target; - char attr_name[20]; - struct device_attribute attr; - char weight_attr_name[20]; - struct device_attribute weight_attr; - struct list_head tz_node; - struct list_head cdev_node; - unsigned int weight; - bool upper_no_limit; -}; - -struct trace_event_raw_thermal_temperature { - struct trace_entry ent; - u32 __data_loc_thermal_zone; - int id; - int temp_prev; - int temp; - char __data[0]; -}; - -struct trace_event_raw_cdev_update { - struct trace_entry ent; - u32 __data_loc_type; - unsigned long target; - char __data[0]; -}; - -struct trace_event_raw_thermal_zone_trip { - struct trace_entry ent; - u32 __data_loc_thermal_zone; - int id; - int trip; - enum thermal_trip_type trip_type; - char __data[0]; -}; - -typedef unsigned int xa_mark_t; - -struct trace_event_data_offsets_thermal_temperature { - u32 thermal_zone; - const void *thermal_zone_ptr_; -}; - -struct trace_event_data_offsets_cdev_update { - u32 type; - const void *type_ptr_; -}; - -struct trace_event_data_offsets_thermal_zone_trip { - u32 thermal_zone; - const void *thermal_zone_ptr_; -}; - -struct bpf_local_storage_data { - struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; - u8 data[0]; -}; - -struct bpf_local_storage_map_bucket; - -struct bpf_local_storage_map { - struct bpf_map map; - struct bpf_local_storage_map_bucket *buckets; - u32 bucket_log; - u16 elem_size; - u16 cache_idx; - struct bpf_mem_alloc selem_ma; - struct bpf_mem_alloc storage_ma; - bool bpf_ma; -}; - -struct bpf_local_storage_map_bucket { - struct hlist_head list; - raw_spinlock_t lock; -}; - -struct bpf_local_storage_cache { - spinlock_t idx_lock; - u64 idx_usage_counts[16]; -}; - -union bpf_iter_link_info; - -typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); - -typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); - -typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); - -typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); - -typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *); - -struct bpf_iter_reg { - const char *target; - bpf_iter_attach_target_t attach_target; - bpf_iter_detach_target_t detach_target; - bpf_iter_show_fdinfo_t show_fdinfo; - bpf_iter_fill_link_info_t fill_link_info; - bpf_iter_get_func_proto_t get_func_proto; - u32 ctx_arg_info_size; - u32 feature; - struct bpf_ctx_arg_aux ctx_arg_info[2]; - const struct bpf_iter_seq_info *seq_info; -}; - -union bpf_iter_link_info { - struct { - __u32 map_fd; - } map; - struct { - enum bpf_cgroup_iter_order order; - __u32 cgroup_fd; - __u64 cgroup_id; - } cgroup; - struct { - __u32 tid; - __u32 pid; - __u32 pid_fd; - } task; -}; - -enum { - SK_DIAG_BPF_STORAGE_REQ_NONE = 0, - SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, - __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, -}; - -enum { - BPF_LOCAL_STORAGE_GET_F_CREATE = 1, - BPF_SK_STORAGE_GET_F_CREATE = 1, -}; - -enum { - SK_DIAG_BPF_STORAGE_REP_NONE = 0, - SK_DIAG_BPF_STORAGE = 1, - __SK_DIAG_BPF_STORAGE_REP_MAX = 2, -}; - -enum { - SK_DIAG_BPF_STORAGE_NONE = 0, - SK_DIAG_BPF_STORAGE_PAD = 1, - SK_DIAG_BPF_STORAGE_MAP_ID = 2, - SK_DIAG_BPF_STORAGE_MAP_VALUE = 3, - __SK_DIAG_BPF_STORAGE_MAX = 4, -}; - -enum { - BTF_SOCK_TYPE_INET = 0, - BTF_SOCK_TYPE_INET_CONN = 1, - BTF_SOCK_TYPE_INET_REQ = 2, - BTF_SOCK_TYPE_INET_TW = 3, - BTF_SOCK_TYPE_REQ = 4, - BTF_SOCK_TYPE_SOCK = 5, - BTF_SOCK_TYPE_SOCK_COMMON = 6, - BTF_SOCK_TYPE_TCP = 7, - BTF_SOCK_TYPE_TCP_REQ = 8, - BTF_SOCK_TYPE_TCP_TW = 9, - BTF_SOCK_TYPE_TCP6 = 10, - BTF_SOCK_TYPE_UDP = 11, - BTF_SOCK_TYPE_UDP6 = 12, - BTF_SOCK_TYPE_UNIX = 13, - BTF_SOCK_TYPE_MPTCP = 14, - BTF_SOCK_TYPE_SOCKET = 15, - MAX_BTF_SOCK_TYPE = 16, -}; - -struct bpf_local_storage_elem { - struct hlist_node map_node; - struct hlist_node snode; - struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *local_storage; - struct callback_head rcu; - long: 64; - struct bpf_local_storage_data sdata; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); - -typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); - -typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); - -typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); - -struct bpf_sk_storage_diag { - u32 nr_maps; - struct bpf_map *maps[0]; -}; - -struct bpf_iter_meta; - -struct bpf_iter__bpf_sk_storage_map { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - struct sock *sk; - }; - union { - void *value; - }; -}; - -struct bpf_iter_meta { - union { - struct seq_file *seq; - }; - u64 session_id; - u64 seq_num; -}; - -struct bpf_iter_seq_sk_storage_map_info { - struct bpf_map *map; - unsigned int bucket_id; - unsigned int skip_elems; -}; - -struct nf_conntrack_l4proto { - u_int8_t l4proto; - bool allow_clash; - u16 nlattr_size; - bool (*can_early_drop)(const struct nf_conn *); - int (*to_nlattr)(struct sk_buff *, struct nlattr *, struct nf_conn *, bool); - int (*from_nlattr)(struct nlattr **, struct nf_conn *); - int (*tuple_to_nlattr)(struct sk_buff *, const struct nf_conntrack_tuple *); - unsigned int (*nlattr_tuple_size)(); - int (*nlattr_to_tuple)(struct nlattr **, struct nf_conntrack_tuple *, u_int32_t); - const struct nla_policy *nla_policy; - struct { - int (*nlattr_to_obj)(struct nlattr **, struct net *, void *); - int (*obj_to_nlattr)(struct sk_buff *, const void *); - u16 obj_size; - u16 nlattr_max; - const struct nla_policy *nla_policy; - } ctnl_timeout; - void (*print_conntrack)(struct seq_file *, struct nf_conn *); -}; - -struct nf_loginfo { - u_int8_t type; - union { - struct { - u_int32_t copy_len; - u_int16_t group; - u_int16_t qthreshold; - u_int16_t flags; - } ulog; - struct { - u_int8_t level; - u_int8_t logflags; - } log; - } u; -}; - -enum udp_conntrack { - UDP_CT_UNREPLIED = 0, - UDP_CT_REPLIED = 1, - UDP_CT_MAX = 2, -}; - -enum ip_conntrack_events { - IPCT_NEW = 0, - IPCT_RELATED = 1, - IPCT_DESTROY = 2, - IPCT_REPLY = 3, - IPCT_ASSURED = 4, - IPCT_PROTOINFO = 5, - IPCT_HELPER = 6, - IPCT_MARK = 7, - IPCT_SEQADJ = 8, - IPCT_NATSEQADJ = 8, - IPCT_SECMARK = 9, - IPCT_LABEL = 10, - IPCT_SYNPROXY = 11, - __IPCT_MAX = 12, -}; - -enum nf_inet_hooks { - NF_INET_PRE_ROUTING = 0, - NF_INET_LOCAL_IN = 1, - NF_INET_FORWARD = 2, - NF_INET_LOCAL_OUT = 3, - NF_INET_POST_ROUTING = 4, - NF_INET_NUMHOOKS = 5, - NF_INET_INGRESS = 5, -}; - -enum tcp_ca_state { - TCP_CA_Open = 0, - TCP_CA_Disorder = 1, - TCP_CA_CWR = 2, - TCP_CA_Recovery = 3, - TCP_CA_Loss = 4, -}; - -enum tcp_queue { - TCP_FRAG_IN_WRITE_QUEUE = 0, - TCP_FRAG_IN_RTX_QUEUE = 1, -}; - -enum inet_csk_ack_state_t { - ICSK_ACK_SCHED = 1, - ICSK_ACK_TIMER = 2, - ICSK_ACK_PUSHED = 4, - ICSK_ACK_PUSHED2 = 8, - ICSK_ACK_NOW = 16, - ICSK_ACK_NOMEM = 32, -}; - -struct udp_hslot; - -struct udp_table { - struct udp_hslot *hash; - struct udp_hslot *hash2; - unsigned int mask; - unsigned int log; -}; - -struct udp_hslot { - struct hlist_head head; - int count; - spinlock_t lock; -}; - -struct raw_hashinfo { - spinlock_t lock; - struct hlist_head ht[256]; -}; - -struct inet_protosw { - struct list_head list; - unsigned short type; - unsigned short protocol; - struct proto *prot; - const struct proto_ops *ops; - unsigned char flags; -}; - -enum { - XFRM_POLICY_IN = 0, - XFRM_POLICY_OUT = 1, - XFRM_POLICY_FWD = 2, - XFRM_POLICY_MASK = 3, - XFRM_POLICY_MAX = 3, -}; - -enum { - INET_FLAGS_PKTINFO = 0, - INET_FLAGS_TTL = 1, - INET_FLAGS_TOS = 2, - INET_FLAGS_RECVOPTS = 3, - INET_FLAGS_RETOPTS = 4, - INET_FLAGS_PASSSEC = 5, - INET_FLAGS_ORIGDSTADDR = 6, - INET_FLAGS_CHECKSUM = 7, - INET_FLAGS_RECVFRAGSIZE = 8, - INET_FLAGS_RECVERR = 9, - INET_FLAGS_RECVERR_RFC4884 = 10, - INET_FLAGS_FREEBIND = 11, - INET_FLAGS_HDRINCL = 12, - INET_FLAGS_MC_LOOP = 13, - INET_FLAGS_MC_ALL = 14, - INET_FLAGS_TRANSPARENT = 15, - INET_FLAGS_IS_ICSK = 16, - INET_FLAGS_NODEFRAG = 17, - INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, - INET_FLAGS_DEFER_CONNECT = 19, - INET_FLAGS_MC6_LOOP = 20, - INET_FLAGS_RECVERR6_RFC4884 = 21, - INET_FLAGS_MC6_ALL = 22, - INET_FLAGS_AUTOFLOWLABEL_SET = 23, - INET_FLAGS_AUTOFLOWLABEL = 24, - INET_FLAGS_DONTFRAG = 25, - INET_FLAGS_RECVERR6 = 26, - INET_FLAGS_REPFLOW = 27, - INET_FLAGS_RTALERT_ISOLATE = 28, - INET_FLAGS_SNDFLOW = 29, - INET_FLAGS_RTALERT = 30, -}; - -enum { - TCP_ESTABLISHED = 1, - TCP_SYN_SENT = 2, - TCP_SYN_RECV = 3, - TCP_FIN_WAIT1 = 4, - TCP_FIN_WAIT2 = 5, - TCP_TIME_WAIT = 6, - TCP_CLOSE = 7, - TCP_CLOSE_WAIT = 8, - TCP_LAST_ACK = 9, - TCP_LISTEN = 10, - TCP_CLOSING = 11, - TCP_NEW_SYN_RECV = 12, - TCP_BOUND_INACTIVE = 13, - TCP_MAX_STATES = 14, -}; - -enum sock_type { - SOCK_STREAM = 1, - SOCK_DGRAM = 2, - SOCK_RAW = 3, - SOCK_RDM = 4, - SOCK_SEQPACKET = 5, - SOCK_DCCP = 6, - SOCK_PACKET = 10, -}; - -enum { - IPSTATS_MIB_NUM = 0, - IPSTATS_MIB_INPKTS = 1, - IPSTATS_MIB_INOCTETS = 2, - IPSTATS_MIB_INDELIVERS = 3, - IPSTATS_MIB_OUTFORWDATAGRAMS = 4, - IPSTATS_MIB_OUTREQUESTS = 5, - IPSTATS_MIB_OUTOCTETS = 6, - IPSTATS_MIB_INHDRERRORS = 7, - IPSTATS_MIB_INTOOBIGERRORS = 8, - IPSTATS_MIB_INNOROUTES = 9, - IPSTATS_MIB_INADDRERRORS = 10, - IPSTATS_MIB_INUNKNOWNPROTOS = 11, - IPSTATS_MIB_INTRUNCATEDPKTS = 12, - IPSTATS_MIB_INDISCARDS = 13, - IPSTATS_MIB_OUTDISCARDS = 14, - IPSTATS_MIB_OUTNOROUTES = 15, - IPSTATS_MIB_REASMTIMEOUT = 16, - IPSTATS_MIB_REASMREQDS = 17, - IPSTATS_MIB_REASMOKS = 18, - IPSTATS_MIB_REASMFAILS = 19, - IPSTATS_MIB_FRAGOKS = 20, - IPSTATS_MIB_FRAGFAILS = 21, - IPSTATS_MIB_FRAGCREATES = 22, - IPSTATS_MIB_INMCASTPKTS = 23, - IPSTATS_MIB_OUTMCASTPKTS = 24, - IPSTATS_MIB_INBCASTPKTS = 25, - IPSTATS_MIB_OUTBCASTPKTS = 26, - IPSTATS_MIB_INMCASTOCTETS = 27, - IPSTATS_MIB_OUTMCASTOCTETS = 28, - IPSTATS_MIB_INBCASTOCTETS = 29, - IPSTATS_MIB_OUTBCASTOCTETS = 30, - IPSTATS_MIB_CSUMERRORS = 31, - IPSTATS_MIB_NOECTPKTS = 32, - IPSTATS_MIB_ECT1PKTS = 33, - IPSTATS_MIB_ECT0PKTS = 34, - IPSTATS_MIB_CEPKTS = 35, - IPSTATS_MIB_REASM_OVERLAPS = 36, - IPSTATS_MIB_OUTPKTS = 37, - __IPSTATS_MIB_MAX = 38, -}; - -enum { - SOF_TIMESTAMPING_TX_HARDWARE = 1, - SOF_TIMESTAMPING_TX_SOFTWARE = 2, - SOF_TIMESTAMPING_RX_HARDWARE = 4, - SOF_TIMESTAMPING_RX_SOFTWARE = 8, - SOF_TIMESTAMPING_SOFTWARE = 16, - SOF_TIMESTAMPING_SYS_HARDWARE = 32, - SOF_TIMESTAMPING_RAW_HARDWARE = 64, - SOF_TIMESTAMPING_OPT_ID = 128, - SOF_TIMESTAMPING_TX_SCHED = 256, - SOF_TIMESTAMPING_TX_ACK = 512, - SOF_TIMESTAMPING_OPT_CMSG = 1024, - SOF_TIMESTAMPING_OPT_TSONLY = 2048, - SOF_TIMESTAMPING_OPT_STATS = 4096, - SOF_TIMESTAMPING_OPT_PKTINFO = 8192, - SOF_TIMESTAMPING_OPT_TX_SWHW = 16384, - SOF_TIMESTAMPING_BIND_PHC = 32768, - SOF_TIMESTAMPING_OPT_ID_TCP = 65536, - SOF_TIMESTAMPING_LAST = 65536, - SOF_TIMESTAMPING_MASK = 131071, -}; - -enum sock_flags { - SOCK_DEAD = 0, - SOCK_DONE = 1, - SOCK_URGINLINE = 2, - SOCK_KEEPOPEN = 3, - SOCK_LINGER = 4, - SOCK_DESTROY = 5, - SOCK_BROADCAST = 6, - SOCK_TIMESTAMP = 7, - SOCK_ZAPPED = 8, - SOCK_USE_WRITE_QUEUE = 9, - SOCK_DBG = 10, - SOCK_RCVTSTAMP = 11, - SOCK_RCVTSTAMPNS = 12, - SOCK_LOCALROUTE = 13, - SOCK_MEMALLOC = 14, - SOCK_TIMESTAMPING_RX_SOFTWARE = 15, - SOCK_FASYNC = 16, - SOCK_RXQ_OVFL = 17, - SOCK_ZEROCOPY = 18, - SOCK_WIFI_STATUS = 19, - SOCK_NOFCS = 20, - SOCK_FILTER_LOCKED = 21, - SOCK_SELECT_ERR_QUEUE = 22, - SOCK_RCU_FREE = 23, - SOCK_TXTIME = 24, - SOCK_XDP = 25, - SOCK_TSTAMP_NEW = 26, - SOCK_RCVMARK = 27, -}; - -enum { - SKBTX_HW_TSTAMP = 1, - SKBTX_SW_TSTAMP = 2, - SKBTX_IN_PROGRESS = 4, - SKBTX_HW_TSTAMP_USE_CYCLES = 8, - SKBTX_WIFI_STATUS = 16, - SKBTX_HW_TSTAMP_NETDEV = 32, - SKBTX_SCHED_TSTAMP = 64, -}; - -struct icmp6_filter { - __u32 data[8]; -}; - -struct raw6_sock { - struct inet_sock inet; - __u32 checksum; - __u32 offset; - struct icmp6_filter filter; - __u32 ip6mr_table; - struct ipv6_pinfo inet6; -}; - -struct sockaddr_in6 { - unsigned short sin6_family; - __be16 sin6_port; - __be32 sin6_flowinfo; - struct in6_addr sin6_addr; - __u32 sin6_scope_id; -}; - -struct xsk_tx_metadata_compl { - __u64 *tx_timestamp; -}; - -typedef unsigned long netmem_ref; - -struct skb_frag { - netmem_ref netmem; - unsigned int len; - unsigned int offset; -}; - -typedef struct skb_frag skb_frag_t; - -struct skb_shared_info { - __u8 flags; - __u8 meta_len; - __u8 nr_frags; - __u8 tx_flags; - unsigned short gso_size; - unsigned short gso_segs; - struct sk_buff *frag_list; - union { - struct skb_shared_hwtstamps hwtstamps; - struct xsk_tx_metadata_compl xsk_meta; - }; - unsigned int gso_type; - u32 tskey; - atomic_t dataref; - unsigned int xdp_frags_size; - void *destructor_arg; - skb_frag_t frags[17]; -}; - -struct icmpv6_echo { - __be16 identifier; - __be16 sequence; -}; - -struct icmpv6_nd_advt { - __u32 reserved: 5; - __u32 override: 1; - __u32 solicited: 1; - __u32 router: 1; - __u32 reserved2: 24; -}; - -struct icmpv6_nd_ra { - __u8 hop_limit; - __u8 reserved: 3; - __u8 router_pref: 2; - __u8 home_agent: 1; - __u8 other: 1; - __u8 managed: 1; - __be16 rt_lifetime; -}; - -struct icmp6hdr { - __u8 icmp6_type; - __u8 icmp6_code; - __sum16 icmp6_cksum; - union { - __be32 un_data32[1]; - __be16 un_data16[2]; - __u8 un_data8[4]; - struct icmpv6_echo u_echo; - struct icmpv6_nd_advt u_nd_advt; - struct icmpv6_nd_ra u_nd_ra; - } icmp6_dataun; -}; - -struct sockcm_cookie { - u64 transmit_time; - u32 mark; - u32 tsflags; -}; - -struct ipcm6_cookie { - struct sockcm_cookie sockc; - __s16 hlimit; - __s16 tclass; - __u16 gso_size; - __s8 dontfrag; - struct ipv6_txoptions *opt; -}; - -struct raw6_frag_vec { - struct msghdr *msg; - int hlen; - char c[4]; -}; - -struct raw_iter_state { - struct seq_net_private p; - int bucket; -}; - -enum { - Root_NFS = 255, - Root_CIFS = 254, - Root_Generic = 253, - Root_RAM0 = 1048576, -}; - -struct pt_regs_offset { - const char *name; - int offset; -}; - -struct user_regset; - -struct user_regset_view { - const char *name; - const struct user_regset *regsets; - unsigned int n; - u32 e_flags; - u16 e_machine; - u8 ei_osabi; -}; - -struct membuf; - -typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); - -typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void __attribute__((btf_type_tag("user"))) *); - -typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *); - -typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int); - -struct user_regset { - user_regset_get2_fn *regset_get; - user_regset_set_fn *set; - user_regset_active_fn *active; - user_regset_writeback_fn *writeback; - unsigned int n; - unsigned int size; - unsigned int align; - unsigned int bias; - unsigned int core_note_type; -}; - -struct membuf { - void *p; - size_t left; -}; - -enum x86_regset_32 { - REGSET32_GENERAL = 0, - REGSET32_FP = 1, - REGSET32_XFP = 2, - REGSET32_XSTATE = 3, - REGSET32_TLS = 4, - REGSET32_IOPERM = 5, -}; - -enum x86_regset_64 { - REGSET64_GENERAL = 0, - REGSET64_FP = 1, - REGSET64_IOPERM = 2, - REGSET64_XSTATE = 3, - REGSET64_SSP = 4, -}; - -enum perf_type_id { - PERF_TYPE_HARDWARE = 0, - PERF_TYPE_SOFTWARE = 1, - PERF_TYPE_TRACEPOINT = 2, - PERF_TYPE_HW_CACHE = 3, - PERF_TYPE_RAW = 4, - PERF_TYPE_BREAKPOINT = 5, - PERF_TYPE_MAX = 6, -}; - -struct sysrq_key_op { - void (* const handler)(u8); - const char * const help_msg; - const char * const action_msg; - const int enable_mask; -}; - -typedef void (*btf_trace_console)(void *, const char *, size_t); - -struct prb_desc; - -struct printk_info; - -struct prb_desc_ring { - unsigned int count_bits; - struct prb_desc *descs; - struct printk_info *infos; - atomic_long_t head_id; - atomic_long_t tail_id; - atomic_long_t last_finalized_seq; -}; - -struct prb_data_ring { - unsigned int size_bits; - char *data; - atomic_long_t head_lpos; - atomic_long_t tail_lpos; -}; - -struct printk_ringbuffer { - struct prb_desc_ring desc_ring; - struct prb_data_ring text_data_ring; - atomic_long_t fail; -}; - -struct prb_data_blk_lpos { - unsigned long begin; - unsigned long next; -}; - -struct prb_desc { - atomic_long_t state_var; - struct prb_data_blk_lpos text_blk_lpos; -}; - -struct dev_printk_info { - char subsystem[16]; - char device[48]; -}; - -struct printk_info { - u64 seq; - u64 ts_nsec; - u16 text_len; - u8 facility; - u8 flags: 5; - u8 level: 3; - u32 caller_id; - struct dev_printk_info dev_info; -}; - -struct printk_buffers { - char outbuf[2048]; - char scratchbuf[1024]; -}; - -typedef struct { - seqcount_t seqcount; -} seqcount_latch_t; - -struct latched_seq { - seqcount_latch_t latch; - u64 val[2]; -}; - -struct console_cmdline { - char name[16]; - int index; - bool user_specified; - char *options; -}; - -enum devkmsg_log_masks { - DEVKMSG_LOG_MASK_ON = 1, - DEVKMSG_LOG_MASK_OFF = 2, - DEVKMSG_LOG_MASK_LOCK = 4, -}; - -enum printk_info_flags { - LOG_NEWLINE = 2, - LOG_CONT = 8, -}; - -enum cons_flags { - CON_PRINTBUFFER = 1, - CON_CONSDEV = 2, - CON_ENABLED = 4, - CON_BOOT = 8, - CON_ANYTIME = 16, - CON_BRL = 32, - CON_EXTENDED = 64, - CON_SUSPENDED = 128, - CON_NBCON = 256, -}; - -enum con_msg_format_flags { - MSG_FORMAT_DEFAULT = 0, - MSG_FORMAT_SYSLOG = 1, -}; - -enum con_flush_mode { - CONSOLE_FLUSH_PENDING = 0, - CONSOLE_REPLAY_ALL = 1, -}; - -enum kmsg_dump_reason { - KMSG_DUMP_UNDEF = 0, - KMSG_DUMP_PANIC = 1, - KMSG_DUMP_OOPS = 2, - KMSG_DUMP_EMERG = 3, - KMSG_DUMP_SHUTDOWN = 4, - KMSG_DUMP_MAX = 5, -}; - -struct kmsg_dumper { - struct list_head list; - void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason); - enum kmsg_dump_reason max_reason; - bool registered; -}; - -struct trace_event_raw_console { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; -}; - -struct trace_event_data_offsets_console { - u32 msg; - const void *msg_ptr_; -}; - -struct printk_record { - struct printk_info *info; - char *text_buf; - unsigned int text_buf_size; -}; - -struct prb_reserved_entry { - struct printk_ringbuffer *rb; - unsigned long irqflags; - unsigned long id; - unsigned int text_space; -}; - -struct printk_message { - struct printk_buffers *pbufs; - unsigned int outbuf_len; - u64 seq; - unsigned long dropped; -}; - -struct devkmsg_user { - atomic64_t seq; - struct ratelimit_state rs; - struct mutex lock; - struct printk_buffers pbufs; -}; - -struct kmsg_dump_iter { - u64 cur_seq; - u64 next_seq; -}; - -struct context_tracking { - bool active; - int recursion; - atomic_t state; - long dynticks_nesting; - long dynticks_nmi_nesting; -}; - -typedef void (*btf_trace_user_enter)(void *, int); - -typedef void (*btf_trace_user_exit)(void *, int); - -enum ctx_state { - CONTEXT_DISABLED = -1, - CONTEXT_KERNEL = 0, - CONTEXT_IDLE = 1, - CONTEXT_USER = 2, - CONTEXT_GUEST = 3, - CONTEXT_MAX = 4, -}; - -struct trace_event_raw_context_tracking_user { - struct trace_entry ent; - int dummy; - char __data[0]; -}; - -struct trace_event_data_offsets_context_tracking_user {}; - -enum maple_status { - ma_active = 0, - ma_start = 1, - ma_root = 2, - ma_none = 3, - ma_pause = 4, - ma_overflow = 5, - ma_underflow = 6, - ma_error = 7, -}; - -struct xa_node { - unsigned char shift; - unsigned char offset; - unsigned char count; - unsigned char nr_values; - struct xa_node __attribute__((btf_type_tag("rcu"))) *parent; - struct xarray *array; - union { - struct list_head private_list; - struct callback_head callback_head; - }; - void __attribute__((btf_type_tag("rcu"))) *slots[64]; - union { - unsigned long tags[3]; - unsigned long marks[3]; - }; -}; - -struct anon_vma_name { - struct kref kref; - char name[0]; -}; - -struct maple_enode; - -struct maple_alloc; - -struct ma_state { - struct maple_tree *tree; - unsigned long index; - unsigned long last; - struct maple_enode *node; - unsigned long min; - unsigned long max; - struct maple_alloc *alloc; - enum maple_status status; - unsigned char depth; - unsigned char offset; - unsigned char mas_flags; - unsigned char end; -}; - -struct vma_iterator { - struct ma_state mas; -}; - -struct maple_alloc { - unsigned long total; - unsigned char node_count; - unsigned int request_count; - struct maple_alloc *slot[30]; -}; - -struct hstate { - struct mutex resize_lock; - int next_nid_to_alloc; - int next_nid_to_free; - unsigned int order; - unsigned int demote_order; - unsigned long mask; - unsigned long max_huge_pages; - unsigned long nr_huge_pages; - unsigned long free_huge_pages; - unsigned long resv_huge_pages; - unsigned long surplus_huge_pages; - unsigned long nr_overcommit_huge_pages; - struct list_head hugepage_activelist; - struct list_head hugepage_freelists[1024]; - unsigned int max_huge_pages_node[1024]; - unsigned int nr_huge_pages_node[1024]; - unsigned int free_huge_pages_node[1024]; - unsigned int surplus_huge_pages_node[1024]; - struct cftype cgroup_files_dfl[8]; - struct cftype cgroup_files_legacy[10]; - char name[32]; -}; - -struct hugepage_subpool; - -struct hugetlbfs_sb_info { - long max_inodes; - long free_inodes; - spinlock_t stat_lock; - struct hstate *hstate; - struct hugepage_subpool *spool; - kuid_t uid; - kgid_t gid; - umode_t mode; -}; - -struct hugepage_subpool { - spinlock_t lock; - long count; - long max_hpages; - long used_hpages; - struct hstate *hstate; - long min_hpages; - long rsv_hpages; -}; - -struct encoded_page; - -struct mmu_gather_batch { - struct mmu_gather_batch *next; - unsigned int nr; - unsigned int max; - struct encoded_page *encoded_pages[0]; -}; - -struct mmu_gather { - struct mm_struct *mm; - unsigned long start; - unsigned long end; - unsigned int fullmm: 1; - unsigned int need_flush_all: 1; - unsigned int freed_tables: 1; - unsigned int delayed_rmap: 1; - unsigned int cleared_ptes: 1; - unsigned int cleared_pmds: 1; - unsigned int cleared_puds: 1; - unsigned int cleared_p4ds: 1; - unsigned int vma_exec: 1; - unsigned int vma_huge: 1; - unsigned int vma_pfn: 1; - unsigned int batch_count; - struct mmu_gather_batch *active; - struct mmu_gather_batch local; - struct page *__pages[8]; -}; - -struct madvise_walk_private { - struct mmu_gather *tlb; - bool pageout; -}; - -typedef void (*xa_update_node_t)(struct xa_node *); - -struct xa_state { - struct xarray *xa; - unsigned long xa_index; - unsigned char xa_shift; - unsigned char xa_sibs; - unsigned char xa_offset; - unsigned char xa_pad; - struct xa_node *xa_node; - struct xa_node *xa_alloc; - xa_update_node_t xa_update; - struct list_lru *xa_lru; -}; - -struct mmu_notifier_range { - unsigned long start; - unsigned long end; -}; - -typedef unsigned int zap_flags_t; - -struct zap_details { - struct folio *single_folio; - bool even_cows; - zap_flags_t zap_flags; -}; - -enum kernel_read_file_id { - READING_UNKNOWN = 0, - READING_FIRMWARE = 1, - READING_MODULE = 2, - READING_KEXEC_IMAGE = 3, - READING_KEXEC_INITRAMFS = 4, - READING_POLICY = 5, - READING_X509_CERTIFICATE = 6, - READING_MAX_ID = 7, -}; - -enum { - SECTION_MARKED_PRESENT_BIT = 0, - SECTION_HAS_MEM_MAP_BIT = 1, - SECTION_IS_ONLINE_BIT = 2, - SECTION_IS_EARLY_BIT = 3, - SECTION_MAP_LAST_BIT = 4, -}; - -struct mem_section_usage { - struct callback_head rcu; - unsigned long subsection_map[1]; - unsigned long pageblock_flags[0]; -}; - -struct mem_section { - unsigned long section_mem_map; - struct mem_section_usage *usage; -}; - -enum btrfs_reserve_flush_enum { - BTRFS_RESERVE_NO_FLUSH = 0, - BTRFS_RESERVE_FLUSH_LIMIT = 1, - BTRFS_RESERVE_FLUSH_EVICT = 2, - BTRFS_RESERVE_FLUSH_DATA = 3, - BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE = 4, - BTRFS_RESERVE_FLUSH_ALL = 5, - BTRFS_RESERVE_FLUSH_ALL_STEAL = 6, - BTRFS_RESERVE_FLUSH_EMERGENCY = 7, -}; - -struct btrfs_delayed_ref_node { - struct rb_node ref_node; - struct list_head add_list; - u64 bytenr; - u64 num_bytes; - u64 seq; - refcount_t refs; - int ref_mod; - unsigned int action: 8; - unsigned int type: 8; -}; - -struct btrfs_delayed_extent_op; - -struct btrfs_delayed_ref_head { - u64 bytenr; - u64 num_bytes; - struct rb_node href_node; - struct mutex mutex; - refcount_t refs; - spinlock_t lock; - struct rb_root_cached ref_tree; - struct list_head ref_add_list; - struct btrfs_delayed_extent_op *extent_op; - int total_ref_mod; - int ref_mod; - u64 owning_root; - u64 reserved_bytes; - bool must_insert_reserved; - bool is_data; - bool is_system; - bool processing; -}; - -struct btrfs_delayed_extent_op { - struct btrfs_disk_key key; - u8 level; - bool update_key; - bool update_flags; - u64 flags_to_set; -}; - -struct btrfs_delayed_tree_ref { - struct btrfs_delayed_ref_node node; - u64 root; - u64 parent; - int level; -}; - -struct btrfs_delayed_data_ref { - struct btrfs_delayed_ref_node node; - u64 root; - u64 parent; - u64 objectid; - u64 offset; -}; - -struct btrfs_qgroup_extent_record { - struct rb_node node; - u64 bytenr; - u64 num_bytes; - u32 data_rsv; - u64 data_rsv_refroot; - struct ulist *old_roots; -}; - -struct ipc_ids { - int in_use; - unsigned short seq; - struct rw_semaphore rwsem; - struct idr ipcs_idr; - int max_idx; - int last_idx; - struct rhashtable key_ht; -}; - -struct ipc_namespace { - struct ipc_ids ids[3]; - int sem_ctls[4]; - int used_sems; - unsigned int msg_ctlmax; - unsigned int msg_ctlmnb; - unsigned int msg_ctlmni; - struct percpu_counter percpu_msg_bytes; - struct percpu_counter percpu_msg_hdrs; - size_t shm_ctlmax; - size_t shm_ctlall; - unsigned long shm_tot; - int shm_ctlmni; - int shm_rmid_forced; - struct notifier_block ipcns_nb; - struct vfsmount *mq_mnt; - unsigned int mq_queues_count; - unsigned int mq_queues_max; - unsigned int mq_msg_max; - unsigned int mq_msgsize_max; - unsigned int mq_msg_default; - unsigned int mq_msgsize_default; - struct ctl_table_set mq_set; - struct ctl_table_header *mq_sysctls; - struct ctl_table_set ipc_set; - struct ctl_table_header *ipc_sysctls; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct llist_node mnt_llist; - struct ns_common ns; -}; - -struct msg_msgseg; - -struct msg_msg { - struct list_head m_list; - long m_type; - size_t m_ts; - struct msg_msgseg *next; - void *security; -}; - -struct msg_msgseg { - struct msg_msgseg *next; -}; - -enum async_tx_flags { - ASYNC_TX_XOR_ZERO_DST = 1, - ASYNC_TX_XOR_DROP_DST = 2, - ASYNC_TX_ACK = 4, - ASYNC_TX_FENCE = 8, - ASYNC_TX_PQ_XOR_DST = 16, -}; - -enum submit_disposition { - ASYNC_TX_SUBMITTED = 0, - ASYNC_TX_CHANNEL_SWITCH = 1, - ASYNC_TX_DIRECT_SUBMIT = 2, -}; - -enum dma_transaction_type { - DMA_MEMCPY = 0, - DMA_XOR = 1, - DMA_PQ = 2, - DMA_XOR_VAL = 3, - DMA_PQ_VAL = 4, - DMA_MEMSET = 5, - DMA_MEMSET_SG = 6, - DMA_INTERRUPT = 7, - DMA_PRIVATE = 8, - DMA_ASYNC_TX = 9, - DMA_SLAVE = 10, - DMA_CYCLIC = 11, - DMA_INTERLEAVE = 12, - DMA_COMPLETION_NO_ORDER = 13, - DMA_REPEAT = 14, - DMA_LOAD_EOT = 15, - DMA_TX_TYPE_END = 16, -}; - -struct async_submit_ctl { - enum async_tx_flags flags; - struct dma_async_tx_descriptor *depend_tx; - dma_async_tx_callback cb_fn; - void *cb_param; - void *scribble; -}; - -typedef s16 int16_t; - -typedef int16_t S16; - -typedef struct { - FSE_CTable CTable[59]; - U32 scratchBuffer[41]; - unsigned int count[13]; - S16 norm[13]; -} HUF_CompressWeightsWksp; - -typedef struct { - HUF_CompressWeightsWksp wksp; - BYTE bitsToWeight[13]; - BYTE huffWeight[255]; -} HUF_WriteCTableWksp; - -struct nodeElt_s { - U32 count; - U16 parent; - BYTE byte; - BYTE nbBits; -}; - -typedef struct nodeElt_s nodeElt; - -typedef nodeElt huffNodeTable[512]; - -typedef struct { - U16 base; - U16 curr; -} rankPos; - -typedef struct { - huffNodeTable huffNodeTbl; - rankPos rankPosition[192]; -} HUF_buildCTable_wksp_tables; - -typedef struct { - unsigned int count[256]; - HUF_CElt CTable[257]; - union { - HUF_buildCTable_wksp_tables buildCTable_wksp; - HUF_WriteCTableWksp writeCTable_wksp; - U32 hist_wksp[1024]; - } wksps; -} HUF_compress_tables_t; - -typedef struct { - size_t bitContainer[2]; - size_t bitPos[2]; - BYTE *startPtr; - BYTE *ptr; - BYTE *endPtr; -} HUF_CStream_t; - -typedef enum { - HUF_singleStream = 0, - HUF_fourStreams = 1, -} HUF_nbStreams_e; - -enum asn1_opcode { - ASN1_OP_MATCH = 0, - ASN1_OP_MATCH_OR_SKIP = 1, - ASN1_OP_MATCH_ACT = 2, - ASN1_OP_MATCH_ACT_OR_SKIP = 3, - ASN1_OP_MATCH_JUMP = 4, - ASN1_OP_MATCH_JUMP_OR_SKIP = 5, - ASN1_OP_MATCH_ANY = 8, - ASN1_OP_MATCH_ANY_OR_SKIP = 9, - ASN1_OP_MATCH_ANY_ACT = 10, - ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11, - ASN1_OP_COND_MATCH_OR_SKIP = 17, - ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19, - ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21, - ASN1_OP_COND_MATCH_ANY = 24, - ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25, - ASN1_OP_COND_MATCH_ANY_ACT = 26, - ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27, - ASN1_OP_COND_FAIL = 28, - ASN1_OP_COMPLETE = 29, - ASN1_OP_ACT = 30, - ASN1_OP_MAYBE_ACT = 31, - ASN1_OP_END_SEQ = 32, - ASN1_OP_END_SET = 33, - ASN1_OP_END_SEQ_OF = 34, - ASN1_OP_END_SET_OF = 35, - ASN1_OP_END_SEQ_ACT = 36, - ASN1_OP_END_SET_ACT = 37, - ASN1_OP_END_SEQ_OF_ACT = 38, - ASN1_OP_END_SET_OF_ACT = 39, - ASN1_OP_RETURN = 40, - ASN1_OP__NR = 41, -}; - -enum asn1_tag { - ASN1_EOC = 0, - ASN1_BOOL = 1, - ASN1_INT = 2, - ASN1_BTS = 3, - ASN1_OTS = 4, - ASN1_NULL = 5, - ASN1_OID = 6, - ASN1_ODE = 7, - ASN1_EXT = 8, - ASN1_REAL = 9, - ASN1_ENUM = 10, - ASN1_EPDV = 11, - ASN1_UTF8STR = 12, - ASN1_RELOID = 13, - ASN1_SEQ = 16, - ASN1_SET = 17, - ASN1_NUMSTR = 18, - ASN1_PRNSTR = 19, - ASN1_TEXSTR = 20, - ASN1_VIDSTR = 21, - ASN1_IA5STR = 22, - ASN1_UNITIM = 23, - ASN1_GENTIM = 24, - ASN1_GRASTR = 25, - ASN1_VISSTR = 26, - ASN1_GENSTR = 27, - ASN1_UNISTR = 28, - ASN1_CHRSTR = 29, - ASN1_BMPSTR = 30, - ASN1_LONG_TAG = 31, -}; - -enum asn1_method { - ASN1_PRIM = 0, - ASN1_CONS = 1, -}; - -typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); - -struct asn1_decoder { - const unsigned char *machine; - size_t machlen; - const asn1_action_t *actions; -}; - -enum smbios_attr_enum { - SMBIOS_ATTR_NONE = 0, - SMBIOS_ATTR_LABEL_SHOW = 1, - SMBIOS_ATTR_INSTANCE_SHOW = 2, -}; - -enum dmi_device_type { - DMI_DEV_TYPE_ANY = 0, - DMI_DEV_TYPE_OTHER = 1, - DMI_DEV_TYPE_UNKNOWN = 2, - DMI_DEV_TYPE_VIDEO = 3, - DMI_DEV_TYPE_SCSI = 4, - DMI_DEV_TYPE_ETHERNET = 5, - DMI_DEV_TYPE_TOKENRING = 6, - DMI_DEV_TYPE_SOUND = 7, - DMI_DEV_TYPE_PATA = 8, - DMI_DEV_TYPE_SATA = 9, - DMI_DEV_TYPE_SAS = 10, - DMI_DEV_TYPE_IPMI = -1, - DMI_DEV_TYPE_OEM_STRING = -2, - DMI_DEV_TYPE_DEV_ONBOARD = -3, - DMI_DEV_TYPE_DEV_SLOT = -4, -}; - -enum acpi_attr_enum { - ACPI_ATTR_LABEL_SHOW = 0, - ACPI_ATTR_INDEX_SHOW = 1, -}; - -enum utf16_endian { - UTF16_HOST_ENDIAN = 0, - UTF16_LITTLE_ENDIAN = 1, - UTF16_BIG_ENDIAN = 2, -}; - -typedef u16 wchar_t; - -struct dmi_device { - struct list_head list; - int type; - const char *name; - void *device_data; -}; - -struct dmi_dev_onboard { - struct dmi_device dev; - int instance; - int segment; - int bus; - int devfn; -}; - -typedef struct { - __u8 b[16]; -} guid_t; - -enum { - ACPI_REFCLASS_LOCAL = 0, - ACPI_REFCLASS_ARG = 1, - ACPI_REFCLASS_REFOF = 2, - ACPI_REFCLASS_INDEX = 3, - ACPI_REFCLASS_TABLE = 4, - ACPI_REFCLASS_NAME = 5, - ACPI_REFCLASS_DEBUG = 6, - ACPI_REFCLASS_MAX = 6, -}; - -typedef enum { - ACPI_IMODE_LOAD_PASS1 = 1, - ACPI_IMODE_LOAD_PASS2 = 2, - ACPI_IMODE_EXECUTE = 3, -} acpi_interpreter_mode; - -struct acpi_table_desc { - acpi_physical_address address; - struct acpi_table_header *pointer; - u32 length; - union acpi_name_union signature; - acpi_owner_id owner_id; - u8 flags; - u16 validation_count; -}; - -struct acpi_fan_fps { - u64 control; - u64 trip_point; - u64 speed; - u64 noise_level; - u64 power; - char name[20]; - struct device_attribute dev_attr; -}; - -struct acpi_fan_fst { - u64 revision; - u64 control; - u64 speed; -}; - -struct acpi_fan_fif { - u8 revision; - u8 fine_grain_ctrl; - u8 step_size; - u8 low_speed_notification; -}; - -struct acpi_fan { - bool acpi4; - struct acpi_fan_fif fif; - struct acpi_fan_fps *fps; - int fps_count; - struct thermal_cooling_device *cdev; - struct device_attribute fst_speed; - struct device_attribute fine_grain_control; -}; - -struct probe; - -struct kobj_map { - struct probe *probes[255]; - struct mutex *lock; -}; - -typedef struct kobject *kobj_probe_t(dev_t, int *, void *); - -struct probe { - struct probe *next; - dev_t dev; - unsigned long range; - struct module *owner; - kobj_probe_t *get; - int (*lock)(dev_t, void *); - void *data; -}; - -struct msi_domain_template { - char name[48]; - struct irq_chip chip; - struct msi_domain_ops ops; - struct msi_domain_info info; -}; - -typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); - -struct platform_msi_priv_data { - struct device *dev; - void *host_data; - msi_alloc_info_t arg; - irq_write_msi_msg_t write_msg; - int devid; -}; - -enum { - MSI_FLAG_USE_DEF_DOM_OPS = 1, - MSI_FLAG_USE_DEF_CHIP_OPS = 2, - MSI_FLAG_ACTIVATE_EARLY = 4, - MSI_FLAG_MUST_REACTIVATE = 8, - MSI_FLAG_DEV_SYSFS = 16, - MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 32, - MSI_FLAG_FREE_MSI_DESCS = 64, - MSI_FLAG_USE_DEV_FWNODE = 128, - MSI_FLAG_PARENT_PM_DEV = 256, - MSI_GENERIC_FLAGS_MASK = 65535, - MSI_DOMAIN_FLAGS_MASK = 4294901760, - MSI_FLAG_MULTI_PCI_MSI = 65536, - MSI_FLAG_PCI_MSIX = 131072, - MSI_FLAG_LEVEL_CAPABLE = 262144, - MSI_FLAG_MSIX_CONTIGUOUS = 524288, - MSI_FLAG_PCI_MSIX_ALLOC_DYN = 1048576, - MSI_FLAG_PCI_IMS = 2097152, -}; - -enum msi_domain_ids { - MSI_DEFAULT_DOMAIN = 0, - MSI_SECONDARY_DOMAIN = 1, - MSI_MAX_DEVICE_IRQDOMAINS = 2, -}; - -enum { - IRQCHIP_SET_TYPE_MASKED = 1, - IRQCHIP_EOI_IF_HANDLED = 2, - IRQCHIP_MASK_ON_SUSPEND = 4, - IRQCHIP_ONOFFLINE_ENABLED = 8, - IRQCHIP_SKIP_SET_WAKE = 16, - IRQCHIP_ONESHOT_SAFE = 32, - IRQCHIP_EOI_THREADED = 64, - IRQCHIP_SUPPORTS_LEVEL_MSI = 128, - IRQCHIP_SUPPORTS_NMI = 256, - IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, - IRQCHIP_AFFINITY_PRE_STARTUP = 1024, - IRQCHIP_IMMUTABLE = 2048, -}; - -enum { - IRQ_DOMAIN_FLAG_HIERARCHY = 1, - IRQ_DOMAIN_NAME_ALLOCATED = 2, - IRQ_DOMAIN_FLAG_IPI_PER_CPU = 4, - IRQ_DOMAIN_FLAG_IPI_SINGLE = 8, - IRQ_DOMAIN_FLAG_MSI = 16, - IRQ_DOMAIN_FLAG_ISOLATED_MSI = 32, - IRQ_DOMAIN_FLAG_NO_MAP = 64, - IRQ_DOMAIN_FLAG_MSI_PARENT = 256, - IRQ_DOMAIN_FLAG_MSI_DEVICE = 512, - IRQ_DOMAIN_FLAG_NONCORE = 65536, -}; - -enum ata_completion_errors { - AC_ERR_OK = 0, - AC_ERR_DEV = 1, - AC_ERR_HSM = 2, - AC_ERR_TIMEOUT = 4, - AC_ERR_MEDIA = 8, - AC_ERR_ATA_BUS = 16, - AC_ERR_HOST_BUS = 32, - AC_ERR_SYSTEM = 64, - AC_ERR_INVALID = 128, - AC_ERR_OTHER = 256, - AC_ERR_NODEV_HINT = 512, - AC_ERR_NCQ = 1024, -}; - -struct ata_link; - -typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); - -typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); - -typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); - -enum ata_lpm_policy { - ATA_LPM_UNKNOWN = 0, - ATA_LPM_MAX_POWER = 1, - ATA_LPM_MED_POWER = 2, - ATA_LPM_MED_POWER_WITH_DIPM = 3, - ATA_LPM_MIN_POWER_WITH_PARTIAL = 4, - ATA_LPM_MIN_POWER = 5, -}; - -enum sw_activity { - OFF = 0, - BLINK_ON = 1, - BLINK_OFF = 2, -}; - -struct ata_queued_cmd; - -struct ata_port; - -struct ata_device; - -struct ata_taskfile; - -struct ata_host; - -struct ata_port_operations { - int (*qc_defer)(struct ata_queued_cmd *); - int (*check_atapi_dma)(struct ata_queued_cmd *); - enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); - unsigned int (*qc_issue)(struct ata_queued_cmd *); - void (*qc_fill_rtf)(struct ata_queued_cmd *); - void (*qc_ncq_fill_rtf)(struct ata_port *, u64); - int (*cable_detect)(struct ata_port *); - unsigned int (*mode_filter)(struct ata_device *, unsigned int); - void (*set_piomode)(struct ata_port *, struct ata_device *); - void (*set_dmamode)(struct ata_port *, struct ata_device *); - int (*set_mode)(struct ata_link *, struct ata_device **); - unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); - void (*dev_config)(struct ata_device *); - void (*freeze)(struct ata_port *); - void (*thaw)(struct ata_port *); - ata_prereset_fn_t prereset; - ata_reset_fn_t softreset; - ata_reset_fn_t hardreset; - ata_postreset_fn_t postreset; - ata_prereset_fn_t pmp_prereset; - ata_reset_fn_t pmp_softreset; - ata_reset_fn_t pmp_hardreset; - ata_postreset_fn_t pmp_postreset; - void (*error_handler)(struct ata_port *); - void (*lost_interrupt)(struct ata_port *); - void (*post_internal_cmd)(struct ata_queued_cmd *); - void (*sched_eh)(struct ata_port *); - void (*end_eh)(struct ata_port *); - int (*scr_read)(struct ata_link *, unsigned int, u32 *); - int (*scr_write)(struct ata_link *, unsigned int, u32); - void (*pmp_attach)(struct ata_port *); - void (*pmp_detach)(struct ata_port *); - int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); - int (*port_suspend)(struct ata_port *, pm_message_t); - int (*port_resume)(struct ata_port *); - int (*port_start)(struct ata_port *); - void (*port_stop)(struct ata_port *); - void (*host_stop)(struct ata_host *); - void (*sff_dev_select)(struct ata_port *, unsigned int); - void (*sff_set_devctl)(struct ata_port *, u8); - u8 (*sff_check_status)(struct ata_port *); - u8 (*sff_check_altstatus)(struct ata_port *); - void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); - void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); - void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); - unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); - void (*sff_irq_on)(struct ata_port *); - bool (*sff_irq_check)(struct ata_port *); - void (*sff_irq_clear)(struct ata_port *); - void (*sff_drain_fifo)(struct ata_queued_cmd *); - void (*bmdma_setup)(struct ata_queued_cmd *); - void (*bmdma_start)(struct ata_queued_cmd *); - void (*bmdma_stop)(struct ata_queued_cmd *); - u8 (*bmdma_status)(struct ata_port *); - ssize_t (*em_show)(struct ata_port *, char *); - ssize_t (*em_store)(struct ata_port *, const char *, size_t); - ssize_t (*sw_activity_show)(struct ata_device *, char *); - ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); - ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); - const struct ata_port_operations *inherits; -}; - -struct ata_taskfile { - unsigned long flags; - u8 protocol; - u8 ctl; - u8 hob_feature; - u8 hob_nsect; - u8 hob_lbal; - u8 hob_lbam; - u8 hob_lbah; - union { - u8 error; - u8 feature; - }; - u8 nsect; - u8 lbal; - u8 lbam; - u8 lbah; - u8 device; - union { - u8 status; - u8 command; - }; - u32 auxiliary; -}; - -typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); - -struct ata_queued_cmd { - struct ata_port *ap; - struct ata_device *dev; - struct scsi_cmnd *scsicmd; - void (*scsidone)(struct scsi_cmnd *); - struct ata_taskfile tf; - u8 cdb[16]; - unsigned long flags; - unsigned int tag; - unsigned int hw_tag; - unsigned int n_elem; - unsigned int orig_n_elem; - int dma_dir; - unsigned int sect_size; - unsigned int nbytes; - unsigned int extrabytes; - unsigned int curbytes; - struct scatterlist sgent; - struct scatterlist *sg; - struct scatterlist *cursg; - unsigned int cursg_ofs; - unsigned int err_mask; - struct ata_taskfile result_tf; - ata_qc_cb_t complete_fn; - void *private_data; - void *lldd_task; -}; - -struct ata_ioports { - void *cmd_addr; - void *data_addr; - void *error_addr; - void *feature_addr; - void *nsect_addr; - void *lbal_addr; - void *lbam_addr; - void *lbah_addr; - void *device_addr; - void *status_addr; - void *command_addr; - void *altstatus_addr; - void *ctl_addr; - void *bmdma_addr; - void *scr_addr; -}; - -struct ata_eh_info { - struct ata_device *dev; - u32 serror; - unsigned int err_mask; - unsigned int action; - unsigned int dev_action[2]; - unsigned int flags; - unsigned int probe_mask; - char desc[80]; - int desc_len; -}; - -struct ata_eh_context { - struct ata_eh_info i; - int tries[2]; - int cmd_timeout_idx[16]; - unsigned int classes[2]; - unsigned int did_probe_mask; - unsigned int unloaded_mask; - unsigned int saved_ncq_enabled; - u8 saved_xfer_mode[2]; - unsigned long last_reset; -}; - -struct ata_ering_entry { - unsigned int eflags; - unsigned int err_mask; - u64 timestamp; -}; - -struct ata_ering { - int cursor; - struct ata_ering_entry ring[32]; -}; - -struct ata_cpr_log; - -struct ata_device { - struct ata_link *link; - unsigned int devno; - unsigned int horkage; - unsigned long flags; - struct scsi_device *sdev; - void *private_data; - union acpi_object *gtf_cache; - unsigned int gtf_filter; - struct device tdev; - u64 n_sectors; - u64 n_native_sectors; - unsigned int class; - unsigned long unpark_deadline; - u8 pio_mode; - u8 dma_mode; - u8 xfer_mode; - unsigned int xfer_shift; - unsigned int multi_count; - unsigned int max_sectors; - unsigned int cdb_len; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - u16 cylinders; - u16 heads; - u16 sectors; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - u16 id[256]; - u32 gscr[128]; - }; - u8 devslp_timing[8]; - u8 ncq_send_recv_cmds[20]; - u8 ncq_non_data_cmds[64]; - u32 zac_zoned_cap; - u32 zac_zones_optimal_open; - u32 zac_zones_optimal_nonseq; - u32 zac_zones_max_open; - struct ata_cpr_log *cpr_log; - u8 cdl[512]; - int spdn_cnt; - struct ata_ering ering; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct ata_link { - struct ata_port *ap; - int pmp; - struct device tdev; - unsigned int active_tag; - u32 sactive; - unsigned int flags; - u32 saved_scontrol; - unsigned int hw_sata_spd_limit; - unsigned int sata_spd_limit; - unsigned int sata_spd; - enum ata_lpm_policy lpm_policy; - struct ata_eh_info eh_info; - struct ata_eh_context eh_context; - long: 64; - long: 64; - long: 64; - long: 64; - struct ata_device device[2]; - unsigned long last_lpm_change; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct ata_port_stats { - unsigned long unhandled_irq; - unsigned long idle_irq; - unsigned long rw_reqbuf; -}; - -typedef u64 async_cookie_t; - -struct ata_acpi_drive { - u32 pio; - u32 dma; -}; - -struct ata_acpi_gtm { - struct ata_acpi_drive drive[2]; - u32 flags; -}; - -struct ata_bmdma_prd; - -struct ata_port { - struct Scsi_Host *scsi_host; - struct ata_port_operations *ops; - spinlock_t *lock; - unsigned long flags; - unsigned int pflags; - unsigned int print_id; - unsigned int local_port_no; - unsigned int port_no; - struct ata_ioports ioaddr; - u8 ctl; - u8 last_ctl; - struct ata_link *sff_pio_task_link; - struct delayed_work sff_pio_task; - struct ata_bmdma_prd *bmdma_prd; - dma_addr_t bmdma_prd_dma; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - unsigned int cbl; - struct ata_queued_cmd qcmd[33]; - u64 qc_active; - int nr_active_links; - struct ata_link link; - struct ata_link *slave_link; - int nr_pmp_links; - struct ata_link *pmp_link; - struct ata_link *excl_link; - struct ata_port_stats stats; - struct ata_host *host; - struct device *dev; - struct device tdev; - struct mutex scsi_scan_mutex; - struct delayed_work hotplug_task; - struct delayed_work scsi_rescan_task; - unsigned int hsm_task_state; - struct list_head eh_done_q; - wait_queue_head_t eh_wait_q; - int eh_tries; - struct completion park_req_pending; - pm_message_t pm_mesg; - enum ata_lpm_policy target_lpm_policy; - struct timer_list fastdrain_timer; - unsigned int fastdrain_cnt; - async_cookie_t cookie; - int em_message_type; - void *private_data; - struct ata_acpi_gtm __acpi_init_gtm; - u8 *ncq_sense_buf; - long: 64; - long: 64; - long: 64; - long: 64; - u8 sector_buf[512]; -}; - -struct ata_cpr { - u8 num; - u8 num_storage_elements; - u64 start_lba; - u64 num_lbas; -}; - -struct ata_cpr_log { - u8 nr_cpr; - struct ata_cpr cpr[0]; -}; - -struct ata_bmdma_prd { - __le32 addr; - __le32 flags_len; -}; - -struct ata_host { - spinlock_t lock; - struct device *dev; - void * const *iomap; - unsigned int n_ports; - unsigned int n_tags; - void *private_data; - struct ata_port_operations *ops; - unsigned long flags; - struct kref kref; - struct mutex eh_mutex; - struct task_struct *eh_owner; - struct ata_port *simplex_claimed; - struct ata_port *ports[0]; -}; - -enum phy_mode { - PHY_MODE_INVALID = 0, - PHY_MODE_USB_HOST = 1, - PHY_MODE_USB_HOST_LS = 2, - PHY_MODE_USB_HOST_FS = 3, - PHY_MODE_USB_HOST_HS = 4, - PHY_MODE_USB_HOST_SS = 5, - PHY_MODE_USB_DEVICE = 6, - PHY_MODE_USB_DEVICE_LS = 7, - PHY_MODE_USB_DEVICE_FS = 8, - PHY_MODE_USB_DEVICE_HS = 9, - PHY_MODE_USB_DEVICE_SS = 10, - PHY_MODE_USB_OTG = 11, - PHY_MODE_UFS_HS_A = 12, - PHY_MODE_UFS_HS_B = 13, - PHY_MODE_PCIE = 14, - PHY_MODE_ETHERNET = 15, - PHY_MODE_MIPI_DPHY = 16, - PHY_MODE_SATA = 17, - PHY_MODE_LVDS = 18, - PHY_MODE_DP = 19, -}; - -enum phy_media { - PHY_MEDIA_DEFAULT = 0, - PHY_MEDIA_SR = 1, - PHY_MEDIA_DAC = 2, -}; - -enum { - AHCI_MAX_PORTS = 32, - AHCI_MAX_SG = 168, - AHCI_DMA_BOUNDARY = 4294967295, - AHCI_MAX_CMDS = 32, - AHCI_CMD_SZ = 32, - AHCI_CMD_SLOT_SZ = 1024, - AHCI_RX_FIS_SZ = 256, - AHCI_CMD_TBL_CDB = 64, - AHCI_CMD_TBL_HDR_SZ = 128, - AHCI_CMD_TBL_SZ = 2816, - AHCI_CMD_TBL_AR_SZ = 90112, - AHCI_PORT_PRIV_DMA_SZ = 91392, - AHCI_PORT_PRIV_FBS_DMA_SZ = 95232, - AHCI_IRQ_ON_SG = 2147483648, - AHCI_CMD_ATAPI = 32, - AHCI_CMD_WRITE = 64, - AHCI_CMD_PREFETCH = 128, - AHCI_CMD_RESET = 256, - AHCI_CMD_CLR_BUSY = 1024, - RX_FIS_PIO_SETUP = 32, - RX_FIS_D2H_REG = 64, - RX_FIS_SDB = 88, - RX_FIS_UNK = 96, - HOST_CAP = 0, - HOST_CTL = 4, - HOST_IRQ_STAT = 8, - HOST_PORTS_IMPL = 12, - HOST_VERSION = 16, - HOST_EM_LOC = 28, - HOST_EM_CTL = 32, - HOST_CAP2 = 36, - HOST_RESET = 1, - HOST_IRQ_EN = 2, - HOST_MRSM = 4, - HOST_AHCI_EN = 2147483648, - HOST_CAP_SXS = 32, - HOST_CAP_EMS = 64, - HOST_CAP_CCC = 128, - HOST_CAP_PART = 8192, - HOST_CAP_SSC = 16384, - HOST_CAP_PIO_MULTI = 32768, - HOST_CAP_FBS = 65536, - HOST_CAP_PMP = 131072, - HOST_CAP_ONLY = 262144, - HOST_CAP_CLO = 16777216, - HOST_CAP_LED = 33554432, - HOST_CAP_ALPM = 67108864, - HOST_CAP_SSS = 134217728, - HOST_CAP_MPS = 268435456, - HOST_CAP_SNTF = 536870912, - HOST_CAP_NCQ = 1073741824, - HOST_CAP_64 = 2147483648, - HOST_CAP2_BOH = 1, - HOST_CAP2_NVMHCI = 2, - HOST_CAP2_APST = 4, - HOST_CAP2_SDS = 8, - HOST_CAP2_SADM = 16, - HOST_CAP2_DESO = 32, - PORT_LST_ADDR = 0, - PORT_LST_ADDR_HI = 4, - PORT_FIS_ADDR = 8, - PORT_FIS_ADDR_HI = 12, - PORT_IRQ_STAT = 16, - PORT_IRQ_MASK = 20, - PORT_CMD = 24, - PORT_TFDATA = 32, - PORT_SIG = 36, - PORT_CMD_ISSUE = 56, - PORT_SCR_STAT = 40, - PORT_SCR_CTL = 44, - PORT_SCR_ERR = 48, - PORT_SCR_ACT = 52, - PORT_SCR_NTF = 60, - PORT_FBS = 64, - PORT_DEVSLP = 68, - PORT_IRQ_COLD_PRES = 2147483648, - PORT_IRQ_TF_ERR = 1073741824, - PORT_IRQ_HBUS_ERR = 536870912, - PORT_IRQ_HBUS_DATA_ERR = 268435456, - PORT_IRQ_IF_ERR = 134217728, - PORT_IRQ_IF_NONFATAL = 67108864, - PORT_IRQ_OVERFLOW = 16777216, - PORT_IRQ_BAD_PMP = 8388608, - PORT_IRQ_PHYRDY = 4194304, - PORT_IRQ_DMPS = 128, - PORT_IRQ_CONNECT = 64, - PORT_IRQ_SG_DONE = 32, - PORT_IRQ_UNK_FIS = 16, - PORT_IRQ_SDB_FIS = 8, - PORT_IRQ_DMAS_FIS = 4, - PORT_IRQ_PIOS_FIS = 2, - PORT_IRQ_D2H_REG_FIS = 1, - PORT_IRQ_FREEZE = 683671632, - PORT_IRQ_ERROR = 2025848912, - DEF_PORT_IRQ = 2025848959, - PORT_CMD_ASP = 134217728, - PORT_CMD_ALPE = 67108864, - PORT_CMD_ATAPI = 16777216, - PORT_CMD_FBSCP = 4194304, - PORT_CMD_ESP = 2097152, - PORT_CMD_CPD = 1048576, - PORT_CMD_MPSP = 524288, - PORT_CMD_HPCP = 262144, - PORT_CMD_PMP = 131072, - PORT_CMD_LIST_ON = 32768, - PORT_CMD_FIS_ON = 16384, - PORT_CMD_FIS_RX = 16, - PORT_CMD_CLO = 8, - PORT_CMD_POWER_ON = 4, - PORT_CMD_SPIN_UP = 2, - PORT_CMD_START = 1, - PORT_CMD_ICC_MASK = 4026531840, - PORT_CMD_ICC_ACTIVE = 268435456, - PORT_CMD_ICC_PARTIAL = 536870912, - PORT_CMD_ICC_SLUMBER = 1610612736, - PORT_CMD_CAP = 8126464, - PORT_FBS_DWE_OFFSET = 16, - PORT_FBS_ADO_OFFSET = 12, - PORT_FBS_DEV_OFFSET = 8, - PORT_FBS_DEV_MASK = 3840, - PORT_FBS_SDE = 4, - PORT_FBS_DEC = 2, - PORT_FBS_EN = 1, - PORT_DEVSLP_DM_OFFSET = 25, - PORT_DEVSLP_DM_MASK = 503316480, - PORT_DEVSLP_DITO_OFFSET = 15, - PORT_DEVSLP_MDAT_OFFSET = 10, - PORT_DEVSLP_DETO_OFFSET = 2, - PORT_DEVSLP_DSP = 2, - PORT_DEVSLP_ADSE = 1, - AHCI_HFLAG_NO_NCQ = 1, - AHCI_HFLAG_IGN_IRQ_IF_ERR = 2, - AHCI_HFLAG_IGN_SERR_INTERNAL = 4, - AHCI_HFLAG_32BIT_ONLY = 8, - AHCI_HFLAG_MV_PATA = 16, - AHCI_HFLAG_NO_MSI = 32, - AHCI_HFLAG_NO_PMP = 64, - AHCI_HFLAG_SECT255 = 256, - AHCI_HFLAG_YES_NCQ = 512, - AHCI_HFLAG_NO_SUSPEND = 1024, - AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = 2048, - AHCI_HFLAG_NO_SNTF = 4096, - AHCI_HFLAG_NO_FPDMA_AA = 8192, - AHCI_HFLAG_YES_FBS = 16384, - AHCI_HFLAG_DELAY_ENGINE = 32768, - AHCI_HFLAG_NO_DEVSLP = 131072, - AHCI_HFLAG_NO_FBS = 262144, - AHCI_HFLAG_MULTI_MSI = 1048576, - AHCI_HFLAG_WAKE_BEFORE_STOP = 4194304, - AHCI_HFLAG_YES_ALPM = 8388608, - AHCI_HFLAG_NO_WRITE_TO_RO = 16777216, - AHCI_HFLAG_SUSPEND_PHYS = 33554432, - AHCI_HFLAG_NO_SXS = 67108864, - AHCI_HFLAG_43BIT_ONLY = 134217728, - AHCI_HFLAG_INTEL_PCS_QUIRK = 268435456, - AHCI_FLAG_COMMON = 393346, - ICH_MAP = 144, - PCS_6 = 146, - PCS_7 = 148, - EM_MAX_SLOTS = 15, - EM_MAX_RETRY = 5, - EM_CTL_RST = 512, - EM_CTL_TM = 256, - EM_CTL_MR = 1, - EM_CTL_ALHD = 67108864, - EM_CTL_XMT = 33554432, - EM_CTL_SMB = 16777216, - EM_CTL_SGPIO = 524288, - EM_CTL_SES = 262144, - EM_CTL_SAFTE = 131072, - EM_CTL_LED = 65536, - EM_MSG_TYPE_LED = 1, - EM_MSG_TYPE_SAFTE = 2, - EM_MSG_TYPE_SES2 = 4, - EM_MSG_TYPE_SGPIO = 8, -}; - -enum ata_lpm_hints { - ATA_LPM_EMPTY = 1, - ATA_LPM_HIPM = 2, - ATA_LPM_WAKE_ONLY = 4, -}; - -enum { - ATA_MAX_DEVICES = 2, - ATA_MAX_PRD = 256, - ATA_SECT_SIZE = 512, - ATA_MAX_SECTORS_128 = 128, - ATA_MAX_SECTORS = 256, - ATA_MAX_SECTORS_1024 = 1024, - ATA_MAX_SECTORS_LBA48 = 65535, - ATA_MAX_SECTORS_TAPE = 65535, - ATA_MAX_TRIM_RNUM = 64, - ATA_ID_WORDS = 256, - ATA_ID_CONFIG = 0, - ATA_ID_CYLS = 1, - ATA_ID_HEADS = 3, - ATA_ID_SECTORS = 6, - ATA_ID_SERNO = 10, - ATA_ID_BUF_SIZE = 21, - ATA_ID_FW_REV = 23, - ATA_ID_PROD = 27, - ATA_ID_MAX_MULTSECT = 47, - ATA_ID_DWORD_IO = 48, - ATA_ID_TRUSTED = 48, - ATA_ID_CAPABILITY = 49, - ATA_ID_OLD_PIO_MODES = 51, - ATA_ID_OLD_DMA_MODES = 52, - ATA_ID_FIELD_VALID = 53, - ATA_ID_CUR_CYLS = 54, - ATA_ID_CUR_HEADS = 55, - ATA_ID_CUR_SECTORS = 56, - ATA_ID_MULTSECT = 59, - ATA_ID_LBA_CAPACITY = 60, - ATA_ID_SWDMA_MODES = 62, - ATA_ID_MWDMA_MODES = 63, - ATA_ID_PIO_MODES = 64, - ATA_ID_EIDE_DMA_MIN = 65, - ATA_ID_EIDE_DMA_TIME = 66, - ATA_ID_EIDE_PIO = 67, - ATA_ID_EIDE_PIO_IORDY = 68, - ATA_ID_ADDITIONAL_SUPP = 69, - ATA_ID_QUEUE_DEPTH = 75, - ATA_ID_SATA_CAPABILITY = 76, - ATA_ID_SATA_CAPABILITY_2 = 77, - ATA_ID_FEATURE_SUPP = 78, - ATA_ID_MAJOR_VER = 80, - ATA_ID_COMMAND_SET_1 = 82, - ATA_ID_COMMAND_SET_2 = 83, - ATA_ID_CFSSE = 84, - ATA_ID_CFS_ENABLE_1 = 85, - ATA_ID_CFS_ENABLE_2 = 86, - ATA_ID_CSF_DEFAULT = 87, - ATA_ID_UDMA_MODES = 88, - ATA_ID_HW_CONFIG = 93, - ATA_ID_SPG = 98, - ATA_ID_LBA_CAPACITY_2 = 100, - ATA_ID_SECTOR_SIZE = 106, - ATA_ID_WWN = 108, - ATA_ID_LOGICAL_SECTOR_SIZE = 117, - ATA_ID_COMMAND_SET_3 = 119, - ATA_ID_COMMAND_SET_4 = 120, - ATA_ID_LAST_LUN = 126, - ATA_ID_DLF = 128, - ATA_ID_CSFO = 129, - ATA_ID_CFA_POWER = 160, - ATA_ID_CFA_KEY_MGMT = 162, - ATA_ID_CFA_MODES = 163, - ATA_ID_DATA_SET_MGMT = 169, - ATA_ID_SCT_CMD_XPORT = 206, - ATA_ID_ROT_SPEED = 217, - ATA_ID_PIO4 = 2, - ATA_ID_SERNO_LEN = 20, - ATA_ID_FW_REV_LEN = 8, - ATA_ID_PROD_LEN = 40, - ATA_ID_WWN_LEN = 8, - ATA_PCI_CTL_OFS = 2, - ATA_PIO0 = 1, - ATA_PIO1 = 3, - ATA_PIO2 = 7, - ATA_PIO3 = 15, - ATA_PIO4 = 31, - ATA_PIO5 = 63, - ATA_PIO6 = 127, - ATA_PIO4_ONLY = 16, - ATA_SWDMA0 = 1, - ATA_SWDMA1 = 3, - ATA_SWDMA2 = 7, - ATA_SWDMA2_ONLY = 4, - ATA_MWDMA0 = 1, - ATA_MWDMA1 = 3, - ATA_MWDMA2 = 7, - ATA_MWDMA3 = 15, - ATA_MWDMA4 = 31, - ATA_MWDMA12_ONLY = 6, - ATA_MWDMA2_ONLY = 4, - ATA_UDMA0 = 1, - ATA_UDMA1 = 3, - ATA_UDMA2 = 7, - ATA_UDMA3 = 15, - ATA_UDMA4 = 31, - ATA_UDMA5 = 63, - ATA_UDMA6 = 127, - ATA_UDMA7 = 255, - ATA_UDMA24_ONLY = 20, - ATA_UDMA_MASK_40C = 7, - ATA_PRD_SZ = 8, - ATA_PRD_TBL_SZ = 2048, - ATA_PRD_EOT = -2147483648, - ATA_DMA_TABLE_OFS = 4, - ATA_DMA_STATUS = 2, - ATA_DMA_CMD = 0, - ATA_DMA_WR = 8, - ATA_DMA_START = 1, - ATA_DMA_INTR = 4, - ATA_DMA_ERR = 2, - ATA_DMA_ACTIVE = 1, - ATA_HOB = 128, - ATA_NIEN = 2, - ATA_LBA = 64, - ATA_DEV1 = 16, - ATA_DEVICE_OBS = 160, - ATA_DEVCTL_OBS = 8, - ATA_BUSY = 128, - ATA_DRDY = 64, - ATA_DF = 32, - ATA_DSC = 16, - ATA_DRQ = 8, - ATA_CORR = 4, - ATA_SENSE = 2, - ATA_ERR = 1, - ATA_SRST = 4, - ATA_ICRC = 128, - ATA_BBK = 128, - ATA_UNC = 64, - ATA_MC = 32, - ATA_IDNF = 16, - ATA_MCR = 8, - ATA_ABORTED = 4, - ATA_TRK0NF = 2, - ATA_AMNF = 1, - ATAPI_LFS = 240, - ATAPI_EOM = 2, - ATAPI_ILI = 1, - ATAPI_IO = 2, - ATAPI_COD = 1, - ATA_REG_DATA = 0, - ATA_REG_ERR = 1, - ATA_REG_NSECT = 2, - ATA_REG_LBAL = 3, - ATA_REG_LBAM = 4, - ATA_REG_LBAH = 5, - ATA_REG_DEVICE = 6, - ATA_REG_STATUS = 7, - ATA_REG_FEATURE = 1, - ATA_REG_CMD = 7, - ATA_REG_BYTEL = 4, - ATA_REG_BYTEH = 5, - ATA_REG_DEVSEL = 6, - ATA_REG_IRQ = 2, - ATA_CMD_DEV_RESET = 8, - ATA_CMD_CHK_POWER = 229, - ATA_CMD_STANDBY = 226, - ATA_CMD_IDLE = 227, - ATA_CMD_EDD = 144, - ATA_CMD_DOWNLOAD_MICRO = 146, - ATA_CMD_DOWNLOAD_MICRO_DMA = 147, - ATA_CMD_NOP = 0, - ATA_CMD_FLUSH = 231, - ATA_CMD_FLUSH_EXT = 234, - ATA_CMD_ID_ATA = 236, - ATA_CMD_ID_ATAPI = 161, - ATA_CMD_SERVICE = 162, - ATA_CMD_READ = 200, - ATA_CMD_READ_EXT = 37, - ATA_CMD_READ_QUEUED = 38, - ATA_CMD_READ_STREAM_EXT = 43, - ATA_CMD_READ_STREAM_DMA_EXT = 42, - ATA_CMD_WRITE = 202, - ATA_CMD_WRITE_EXT = 53, - ATA_CMD_WRITE_QUEUED = 54, - ATA_CMD_WRITE_STREAM_EXT = 59, - ATA_CMD_WRITE_STREAM_DMA_EXT = 58, - ATA_CMD_WRITE_FUA_EXT = 61, - ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, - ATA_CMD_FPDMA_READ = 96, - ATA_CMD_FPDMA_WRITE = 97, - ATA_CMD_NCQ_NON_DATA = 99, - ATA_CMD_FPDMA_SEND = 100, - ATA_CMD_FPDMA_RECV = 101, - ATA_CMD_PIO_READ = 32, - ATA_CMD_PIO_READ_EXT = 36, - ATA_CMD_PIO_WRITE = 48, - ATA_CMD_PIO_WRITE_EXT = 52, - ATA_CMD_READ_MULTI = 196, - ATA_CMD_READ_MULTI_EXT = 41, - ATA_CMD_WRITE_MULTI = 197, - ATA_CMD_WRITE_MULTI_EXT = 57, - ATA_CMD_WRITE_MULTI_FUA_EXT = 206, - ATA_CMD_SET_FEATURES = 239, - ATA_CMD_SET_MULTI = 198, - ATA_CMD_PACKET = 160, - ATA_CMD_VERIFY = 64, - ATA_CMD_VERIFY_EXT = 66, - ATA_CMD_WRITE_UNCORR_EXT = 69, - ATA_CMD_STANDBYNOW1 = 224, - ATA_CMD_IDLEIMMEDIATE = 225, - ATA_CMD_SLEEP = 230, - ATA_CMD_INIT_DEV_PARAMS = 145, - ATA_CMD_READ_NATIVE_MAX = 248, - ATA_CMD_READ_NATIVE_MAX_EXT = 39, - ATA_CMD_SET_MAX = 249, - ATA_CMD_SET_MAX_EXT = 55, - ATA_CMD_READ_LOG_EXT = 47, - ATA_CMD_WRITE_LOG_EXT = 63, - ATA_CMD_READ_LOG_DMA_EXT = 71, - ATA_CMD_WRITE_LOG_DMA_EXT = 87, - ATA_CMD_TRUSTED_NONDATA = 91, - ATA_CMD_TRUSTED_RCV = 92, - ATA_CMD_TRUSTED_RCV_DMA = 93, - ATA_CMD_TRUSTED_SND = 94, - ATA_CMD_TRUSTED_SND_DMA = 95, - ATA_CMD_PMP_READ = 228, - ATA_CMD_PMP_READ_DMA = 233, - ATA_CMD_PMP_WRITE = 232, - ATA_CMD_PMP_WRITE_DMA = 235, - ATA_CMD_CONF_OVERLAY = 177, - ATA_CMD_SEC_SET_PASS = 241, - ATA_CMD_SEC_UNLOCK = 242, - ATA_CMD_SEC_ERASE_PREP = 243, - ATA_CMD_SEC_ERASE_UNIT = 244, - ATA_CMD_SEC_FREEZE_LOCK = 245, - ATA_CMD_SEC_DISABLE_PASS = 246, - ATA_CMD_CONFIG_STREAM = 81, - ATA_CMD_SMART = 176, - ATA_CMD_MEDIA_LOCK = 222, - ATA_CMD_MEDIA_UNLOCK = 223, - ATA_CMD_DSM = 6, - ATA_CMD_CHK_MED_CRD_TYP = 209, - ATA_CMD_CFA_REQ_EXT_ERR = 3, - ATA_CMD_CFA_WRITE_NE = 56, - ATA_CMD_CFA_TRANS_SECT = 135, - ATA_CMD_CFA_ERASE = 192, - ATA_CMD_CFA_WRITE_MULT_NE = 205, - ATA_CMD_REQ_SENSE_DATA = 11, - ATA_CMD_SANITIZE_DEVICE = 180, - ATA_CMD_ZAC_MGMT_IN = 74, - ATA_CMD_ZAC_MGMT_OUT = 159, - ATA_CMD_RESTORE = 16, - ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, - ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, - ATA_SUBCMD_FPDMA_SEND_DSM = 0, - ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, - ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, - ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, - ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, - ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, - ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, - ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, - ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, - ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, - ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, - ATA_LOG_DIRECTORY = 0, - ATA_LOG_SATA_NCQ = 16, - ATA_LOG_NCQ_NON_DATA = 18, - ATA_LOG_NCQ_SEND_RECV = 19, - ATA_LOG_CDL = 24, - ATA_LOG_CDL_SIZE = 512, - ATA_LOG_IDENTIFY_DEVICE = 48, - ATA_LOG_SENSE_NCQ = 15, - ATA_LOG_SENSE_NCQ_SIZE = 1024, - ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, - ATA_LOG_SUPPORTED_CAPABILITIES = 3, - ATA_LOG_CURRENT_SETTINGS = 4, - ATA_LOG_SECURITY = 6, - ATA_LOG_SATA_SETTINGS = 8, - ATA_LOG_ZONED_INFORMATION = 9, - ATA_LOG_DEVSLP_OFFSET = 48, - ATA_LOG_DEVSLP_SIZE = 8, - ATA_LOG_DEVSLP_MDAT = 0, - ATA_LOG_DEVSLP_MDAT_MASK = 31, - ATA_LOG_DEVSLP_DETO = 1, - ATA_LOG_DEVSLP_VALID = 7, - ATA_LOG_DEVSLP_VALID_MASK = 128, - ATA_LOG_NCQ_PRIO_OFFSET = 9, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, - ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, - ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, - ATA_LOG_NCQ_SEND_RECV_SIZE = 20, - ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, - ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, - ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, - ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, - ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, - ATA_LOG_NCQ_NON_DATA_SIZE = 64, - ATA_CMD_READ_LONG = 34, - ATA_CMD_READ_LONG_ONCE = 35, - ATA_CMD_WRITE_LONG = 50, - ATA_CMD_WRITE_LONG_ONCE = 51, - SETFEATURES_XFER = 3, - XFER_UDMA_7 = 71, - XFER_UDMA_6 = 70, - XFER_UDMA_5 = 69, - XFER_UDMA_4 = 68, - XFER_UDMA_3 = 67, - XFER_UDMA_2 = 66, - XFER_UDMA_1 = 65, - XFER_UDMA_0 = 64, - XFER_MW_DMA_4 = 36, - XFER_MW_DMA_3 = 35, - XFER_MW_DMA_2 = 34, - XFER_MW_DMA_1 = 33, - XFER_MW_DMA_0 = 32, - XFER_SW_DMA_2 = 18, - XFER_SW_DMA_1 = 17, - XFER_SW_DMA_0 = 16, - XFER_PIO_6 = 14, - XFER_PIO_5 = 13, - XFER_PIO_4 = 12, - XFER_PIO_3 = 11, - XFER_PIO_2 = 10, - XFER_PIO_1 = 9, - XFER_PIO_0 = 8, - XFER_PIO_SLOW = 0, - SETFEATURES_WC_ON = 2, - SETFEATURES_WC_OFF = 130, - SETFEATURES_RA_ON = 170, - SETFEATURES_RA_OFF = 85, - SETFEATURES_AAM_ON = 66, - SETFEATURES_AAM_OFF = 194, - SETFEATURES_SPINUP = 7, - SETFEATURES_SPINUP_TIMEOUT = 30000, - SETFEATURES_SATA_ENABLE = 16, - SETFEATURES_SATA_DISABLE = 144, - SETFEATURES_CDL = 13, - SATA_FPDMA_OFFSET = 1, - SATA_FPDMA_AA = 2, - SATA_DIPM = 3, - SATA_FPDMA_IN_ORDER = 4, - SATA_AN = 5, - SATA_SSP = 6, - SATA_DEVSLP = 9, - SETFEATURE_SENSE_DATA = 195, - SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, - ATA_SET_MAX_ADDR = 0, - ATA_SET_MAX_PASSWD = 1, - ATA_SET_MAX_LOCK = 2, - ATA_SET_MAX_UNLOCK = 3, - ATA_SET_MAX_FREEZE_LOCK = 4, - ATA_SET_MAX_PASSWD_DMA = 5, - ATA_SET_MAX_UNLOCK_DMA = 6, - ATA_DCO_RESTORE = 192, - ATA_DCO_FREEZE_LOCK = 193, - ATA_DCO_IDENTIFY = 194, - ATA_DCO_SET = 195, - ATA_SMART_ENABLE = 216, - ATA_SMART_READ_VALUES = 208, - ATA_SMART_READ_THRESHOLDS = 209, - ATA_DSM_TRIM = 1, - ATA_SMART_LBAM_PASS = 79, - ATA_SMART_LBAH_PASS = 194, - ATAPI_PKT_DMA = 1, - ATAPI_DMADIR = 4, - ATAPI_CDB_LEN = 16, - SATA_PMP_MAX_PORTS = 15, - SATA_PMP_CTRL_PORT = 15, - SATA_PMP_GSCR_DWORDS = 128, - SATA_PMP_GSCR_PROD_ID = 0, - SATA_PMP_GSCR_REV = 1, - SATA_PMP_GSCR_PORT_INFO = 2, - SATA_PMP_GSCR_ERROR = 32, - SATA_PMP_GSCR_ERROR_EN = 33, - SATA_PMP_GSCR_FEAT = 64, - SATA_PMP_GSCR_FEAT_EN = 96, - SATA_PMP_PSCR_STATUS = 0, - SATA_PMP_PSCR_ERROR = 1, - SATA_PMP_PSCR_CONTROL = 2, - SATA_PMP_FEAT_BIST = 1, - SATA_PMP_FEAT_PMREQ = 2, - SATA_PMP_FEAT_DYNSSC = 4, - SATA_PMP_FEAT_NOTIFY = 8, - ATA_CBL_NONE = 0, - ATA_CBL_PATA40 = 1, - ATA_CBL_PATA80 = 2, - ATA_CBL_PATA40_SHORT = 3, - ATA_CBL_PATA_UNK = 4, - ATA_CBL_PATA_IGN = 5, - ATA_CBL_SATA = 6, - SCR_STATUS = 0, - SCR_ERROR = 1, - SCR_CONTROL = 2, - SCR_ACTIVE = 3, - SCR_NOTIFICATION = 4, - SERR_DATA_RECOVERED = 1, - SERR_COMM_RECOVERED = 2, - SERR_DATA = 256, - SERR_PERSISTENT = 512, - SERR_PROTOCOL = 1024, - SERR_INTERNAL = 2048, - SERR_PHYRDY_CHG = 65536, - SERR_PHY_INT_ERR = 131072, - SERR_COMM_WAKE = 262144, - SERR_10B_8B_ERR = 524288, - SERR_DISPARITY = 1048576, - SERR_CRC = 2097152, - SERR_HANDSHAKE = 4194304, - SERR_LINK_SEQ_ERR = 8388608, - SERR_TRANS_ST_ERROR = 16777216, - SERR_UNRECOG_FIS = 33554432, - SERR_DEV_XCHG = 67108864, -}; - -enum { - LIBATA_MAX_PRD = 128, - LIBATA_DUMB_MAX_PRD = 64, - ATA_DEF_QUEUE = 1, - ATA_MAX_QUEUE = 32, - ATA_TAG_INTERNAL = 32, - ATA_SHORT_PAUSE = 16, - ATAPI_MAX_DRAIN = 16384, - ATA_ALL_DEVICES = 3, - ATA_SHT_EMULATED = 1, - ATA_SHT_THIS_ID = -1, - ATA_TFLAG_LBA48 = 1, - ATA_TFLAG_ISADDR = 2, - ATA_TFLAG_DEVICE = 4, - ATA_TFLAG_WRITE = 8, - ATA_TFLAG_LBA = 16, - ATA_TFLAG_FUA = 32, - ATA_TFLAG_POLLING = 64, - ATA_DFLAG_LBA = 1, - ATA_DFLAG_LBA48 = 2, - ATA_DFLAG_CDB_INTR = 4, - ATA_DFLAG_NCQ = 8, - ATA_DFLAG_FLUSH_EXT = 16, - ATA_DFLAG_ACPI_PENDING = 32, - ATA_DFLAG_ACPI_FAILED = 64, - ATA_DFLAG_AN = 128, - ATA_DFLAG_TRUSTED = 256, - ATA_DFLAG_FUA = 512, - ATA_DFLAG_DMADIR = 1024, - ATA_DFLAG_NCQ_SEND_RECV = 2048, - ATA_DFLAG_NCQ_PRIO = 4096, - ATA_DFLAG_CDL = 8192, - ATA_DFLAG_CFG_MASK = 16383, - ATA_DFLAG_PIO = 16384, - ATA_DFLAG_NCQ_OFF = 32768, - ATA_DFLAG_SLEEPING = 65536, - ATA_DFLAG_DUBIOUS_XFER = 131072, - ATA_DFLAG_NO_UNLOAD = 262144, - ATA_DFLAG_UNLOCK_HPA = 524288, - ATA_DFLAG_INIT_MASK = 1048575, - ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, - ATA_DFLAG_CDL_ENABLED = 2097152, - ATA_DFLAG_DETACH = 16777216, - ATA_DFLAG_DETACHED = 33554432, - ATA_DFLAG_DA = 67108864, - ATA_DFLAG_DEVSLP = 134217728, - ATA_DFLAG_ACPI_DISABLED = 268435456, - ATA_DFLAG_D_SENSE = 536870912, - ATA_DFLAG_ZAC = 1073741824, - ATA_DFLAG_FEATURES_MASK = 201341696, - ATA_DEV_UNKNOWN = 0, - ATA_DEV_ATA = 1, - ATA_DEV_ATA_UNSUP = 2, - ATA_DEV_ATAPI = 3, - ATA_DEV_ATAPI_UNSUP = 4, - ATA_DEV_PMP = 5, - ATA_DEV_PMP_UNSUP = 6, - ATA_DEV_SEMB = 7, - ATA_DEV_SEMB_UNSUP = 8, - ATA_DEV_ZAC = 9, - ATA_DEV_ZAC_UNSUP = 10, - ATA_DEV_NONE = 11, - ATA_LFLAG_NO_HRST = 2, - ATA_LFLAG_NO_SRST = 4, - ATA_LFLAG_ASSUME_ATA = 8, - ATA_LFLAG_ASSUME_SEMB = 16, - ATA_LFLAG_ASSUME_CLASS = 24, - ATA_LFLAG_NO_RETRY = 32, - ATA_LFLAG_DISABLED = 64, - ATA_LFLAG_SW_ACTIVITY = 128, - ATA_LFLAG_NO_LPM = 256, - ATA_LFLAG_RST_ONCE = 512, - ATA_LFLAG_CHANGED = 1024, - ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, - ATA_FLAG_SLAVE_POSS = 1, - ATA_FLAG_SATA = 2, - ATA_FLAG_NO_LPM = 4, - ATA_FLAG_NO_LOG_PAGE = 32, - ATA_FLAG_NO_ATAPI = 64, - ATA_FLAG_PIO_DMA = 128, - ATA_FLAG_PIO_LBA48 = 256, - ATA_FLAG_PIO_POLLING = 512, - ATA_FLAG_NCQ = 1024, - ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, - ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, - ATA_FLAG_DEBUGMSG = 8192, - ATA_FLAG_FPDMA_AA = 16384, - ATA_FLAG_IGN_SIMPLEX = 32768, - ATA_FLAG_NO_IORDY = 65536, - ATA_FLAG_ACPI_SATA = 131072, - ATA_FLAG_AN = 262144, - ATA_FLAG_PMP = 524288, - ATA_FLAG_FPDMA_AUX = 1048576, - ATA_FLAG_EM = 2097152, - ATA_FLAG_SW_ACTIVITY = 4194304, - ATA_FLAG_NO_DIPM = 8388608, - ATA_FLAG_SAS_HOST = 16777216, - ATA_PFLAG_EH_PENDING = 1, - ATA_PFLAG_EH_IN_PROGRESS = 2, - ATA_PFLAG_FROZEN = 4, - ATA_PFLAG_RECOVERED = 8, - ATA_PFLAG_LOADING = 16, - ATA_PFLAG_SCSI_HOTPLUG = 64, - ATA_PFLAG_INITIALIZING = 128, - ATA_PFLAG_RESETTING = 256, - ATA_PFLAG_UNLOADING = 512, - ATA_PFLAG_UNLOADED = 1024, - ATA_PFLAG_RESUMING = 65536, - ATA_PFLAG_SUSPENDED = 131072, - ATA_PFLAG_PM_PENDING = 262144, - ATA_PFLAG_INIT_GTM_VALID = 524288, - ATA_PFLAG_PIO32 = 1048576, - ATA_PFLAG_PIO32CHANGE = 2097152, - ATA_PFLAG_EXTERNAL = 4194304, - ATA_QCFLAG_ACTIVE = 1, - ATA_QCFLAG_DMAMAP = 2, - ATA_QCFLAG_RTF_FILLED = 4, - ATA_QCFLAG_IO = 8, - ATA_QCFLAG_RESULT_TF = 16, - ATA_QCFLAG_CLEAR_EXCL = 32, - ATA_QCFLAG_QUIET = 64, - ATA_QCFLAG_RETRY = 128, - ATA_QCFLAG_HAS_CDL = 256, - ATA_QCFLAG_EH = 65536, - ATA_QCFLAG_SENSE_VALID = 131072, - ATA_QCFLAG_EH_SCHEDULED = 262144, - ATA_QCFLAG_EH_SUCCESS_CMD = 524288, - ATA_HOST_SIMPLEX = 1, - ATA_HOST_STARTED = 2, - ATA_HOST_PARALLEL_SCAN = 4, - ATA_HOST_IGNORE_ATA = 8, - ATA_HOST_NO_PART = 16, - ATA_HOST_NO_SSC = 32, - ATA_HOST_NO_DEVSLP = 64, - ATA_TMOUT_BOOT = 30000, - ATA_TMOUT_BOOT_QUICK = 7000, - ATA_TMOUT_INTERNAL_QUICK = 5000, - ATA_TMOUT_MAX_PARK = 30000, - ATA_TMOUT_FF_WAIT_LONG = 2000, - ATA_TMOUT_FF_WAIT = 800, - ATA_WAIT_AFTER_RESET = 150, - ATA_TMOUT_PMP_SRST_WAIT = 10000, - ATA_TMOUT_SPURIOUS_PHY = 10000, - BUS_UNKNOWN = 0, - BUS_DMA = 1, - BUS_IDLE = 2, - BUS_NOINTR = 3, - BUS_NODATA = 4, - BUS_TIMER = 5, - BUS_PIO = 6, - BUS_EDD = 7, - BUS_IDENTIFY = 8, - BUS_PACKET = 9, - PORT_UNKNOWN = 0, - PORT_ENABLED = 1, - PORT_DISABLED = 2, - ATA_NR_PIO_MODES = 7, - ATA_NR_MWDMA_MODES = 5, - ATA_NR_UDMA_MODES = 8, - ATA_SHIFT_PIO = 0, - ATA_SHIFT_MWDMA = 7, - ATA_SHIFT_UDMA = 12, - ATA_SHIFT_PRIO = 6, - ATA_PRIO_HIGH = 2, - ATA_DMA_PAD_SZ = 4, - ATA_ERING_SIZE = 32, - ATA_DEFER_LINK = 1, - ATA_DEFER_PORT = 2, - ATA_EH_DESC_LEN = 80, - ATA_EH_REVALIDATE = 1, - ATA_EH_SOFTRESET = 2, - ATA_EH_HARDRESET = 4, - ATA_EH_RESET = 6, - ATA_EH_ENABLE_LINK = 8, - ATA_EH_PARK = 32, - ATA_EH_GET_SUCCESS_SENSE = 64, - ATA_EH_SET_ACTIVE = 128, - ATA_EH_PERDEV_MASK = 225, - ATA_EH_ALL_ACTIONS = 15, - ATA_EHI_HOTPLUGGED = 1, - ATA_EHI_NO_AUTOPSY = 4, - ATA_EHI_QUIET = 8, - ATA_EHI_NO_RECOVERY = 16, - ATA_EHI_DID_SOFTRESET = 65536, - ATA_EHI_DID_HARDRESET = 131072, - ATA_EHI_PRINTINFO = 262144, - ATA_EHI_SETMODE = 524288, - ATA_EHI_POST_SETMODE = 1048576, - ATA_EHI_DID_RESET = 196608, - ATA_EHI_TO_SLAVE_MASK = 12, - ATA_EH_MAX_TRIES = 5, - ATA_LINK_RESUME_TRIES = 5, - ATA_EH_DEV_TRIES = 3, - ATA_EH_PMP_TRIES = 5, - ATA_EH_PMP_LINK_TRIES = 3, - SATA_PMP_RW_TIMEOUT = 3000, - ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, - ATA_HORKAGE_DIAGNOSTIC = 1, - ATA_HORKAGE_NODMA = 2, - ATA_HORKAGE_NONCQ = 4, - ATA_HORKAGE_MAX_SEC_128 = 8, - ATA_HORKAGE_BROKEN_HPA = 16, - ATA_HORKAGE_DISABLE = 32, - ATA_HORKAGE_HPA_SIZE = 64, - ATA_HORKAGE_IVB = 256, - ATA_HORKAGE_STUCK_ERR = 512, - ATA_HORKAGE_BRIDGE_OK = 1024, - ATA_HORKAGE_ATAPI_MOD16_DMA = 2048, - ATA_HORKAGE_FIRMWARE_WARN = 4096, - ATA_HORKAGE_1_5_GBPS = 8192, - ATA_HORKAGE_NOSETXFER = 16384, - ATA_HORKAGE_BROKEN_FPDMA_AA = 32768, - ATA_HORKAGE_DUMP_ID = 65536, - ATA_HORKAGE_MAX_SEC_LBA48 = 131072, - ATA_HORKAGE_ATAPI_DMADIR = 262144, - ATA_HORKAGE_NO_NCQ_TRIM = 524288, - ATA_HORKAGE_NOLPM = 1048576, - ATA_HORKAGE_WD_BROKEN_LPM = 2097152, - ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304, - ATA_HORKAGE_NO_DMA_LOG = 8388608, - ATA_HORKAGE_NOTRIM = 16777216, - ATA_HORKAGE_MAX_SEC_1024 = 33554432, - ATA_HORKAGE_MAX_TRIM_128M = 67108864, - ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728, - ATA_HORKAGE_NO_ID_DEV_LOG = 268435456, - ATA_HORKAGE_NO_LOG_DIR = 536870912, - ATA_HORKAGE_NO_FUA = 1073741824, - ATA_DMA_MASK_ATA = 1, - ATA_DMA_MASK_ATAPI = 2, - ATA_DMA_MASK_CFA = 4, - ATAPI_READ = 0, - ATAPI_WRITE = 1, - ATAPI_READ_CD = 2, - ATAPI_PASS_THRU = 3, - ATAPI_MISC = 4, - ATA_TIMING_SETUP = 1, - ATA_TIMING_ACT8B = 2, - ATA_TIMING_REC8B = 4, - ATA_TIMING_CYC8B = 8, - ATA_TIMING_8BIT = 14, - ATA_TIMING_ACTIVE = 16, - ATA_TIMING_RECOVER = 32, - ATA_TIMING_DMACK_HOLD = 64, - ATA_TIMING_CYCLE = 128, - ATA_TIMING_UDMA = 256, - ATA_TIMING_ALL = 511, - ATA_ACPI_FILTER_SETXFER = 1, - ATA_ACPI_FILTER_LOCK = 2, - ATA_ACPI_FILTER_DIPM = 4, - ATA_ACPI_FILTER_FPDMA_OFFSET = 8, - ATA_ACPI_FILTER_FPDMA_AA = 16, - ATA_ACPI_FILTER_DEFAULT = 7, -}; - -enum ata_link_iter_mode { - ATA_LITER_EDGE = 0, - ATA_LITER_HOST_FIRST = 1, - ATA_LITER_PMP_FIRST = 2, -}; - -enum ata_prot_flags { - ATA_PROT_FLAG_PIO = 1, - ATA_PROT_FLAG_DMA = 2, - ATA_PROT_FLAG_NCQ = 4, - ATA_PROT_FLAG_ATAPI = 8, - ATA_PROT_UNKNOWN = 255, - ATA_PROT_NODATA = 0, - ATA_PROT_PIO = 1, - ATA_PROT_DMA = 2, - ATA_PROT_NCQ_NODATA = 4, - ATA_PROT_NCQ = 6, - ATAPI_PROT_NODATA = 8, - ATAPI_PROT_PIO = 9, - ATAPI_PROT_DMA = 10, -}; - -struct ahci_em_priv { - enum sw_activity blink_policy; - struct timer_list timer; - unsigned long saved_activity; - unsigned long activity; - unsigned long led_state; - struct ata_link *link; -}; - -struct ahci_sg { - __le32 addr; - __le32 addr_hi; - __le32 reserved; - __le32 flags_size; -}; - -struct ahci_cmd_hdr; - -struct ahci_port_priv { - struct ata_link *active_link; - struct ahci_cmd_hdr *cmd_slot; - dma_addr_t cmd_slot_dma; - void *cmd_tbl; - dma_addr_t cmd_tbl_dma; - void *rx_fis; - dma_addr_t rx_fis_dma; - unsigned int ncq_saw_d2h: 1; - unsigned int ncq_saw_dmas: 1; - unsigned int ncq_saw_sdb: 1; - spinlock_t lock; - u32 intr_mask; - bool fbs_supported; - bool fbs_enabled; - int fbs_last_dev; - struct ahci_em_priv em_priv[15]; - char *irq_desc; -}; - -struct ahci_cmd_hdr { - __le32 opts; - __le32 status; - __le32 tbl_addr; - __le32 tbl_addr_hi; - __le32 reserved[4]; -}; - -struct regulator; - -struct clk_bulk_data; - -struct phy; - -struct ahci_host_priv { - unsigned int flags; - u32 mask_port_map; - void *mmio; - u32 cap; - u32 cap2; - u32 version; - u32 port_map; - u32 saved_cap; - u32 saved_cap2; - u32 saved_port_map; - u32 saved_port_cap[32]; - u32 em_loc; - u32 em_buf_sz; - u32 em_msg_type; - u32 remapped_nvme; - bool got_runtime_pm; - unsigned int n_clks; - struct clk_bulk_data *clks; - unsigned int f_rsts; - struct reset_control *rsts; - struct regulator **target_pwrs; - struct regulator *ahci_regulator; - struct regulator *phy_regulator; - struct phy **phys; - unsigned int nports; - void *plat_data; - unsigned int irq; - void (*start_engine)(struct ata_port *); - int (*stop_engine)(struct ata_port *); - irqreturn_t (*irq_handler)(int, void *); - int (*get_irq_vector)(struct ata_host *, int); -}; - -struct clk_bulk_data { - const char *id; - struct clk *clk; -}; - -struct phy_attrs { - u32 bus_width; - u32 max_link_rate; - enum phy_mode mode; -}; - -struct phy_ops; - -struct phy { - struct device dev; - int id; - const struct phy_ops *ops; - struct mutex mutex; - int init_count; - int power_count; - struct phy_attrs attrs; - struct regulator *pwr; - struct dentry *debugfs; -}; - -union phy_configure_opts; - -struct phy_ops { - int (*init)(struct phy *); - int (*exit)(struct phy *); - int (*power_on)(struct phy *); - int (*power_off)(struct phy *); - int (*set_mode)(struct phy *, enum phy_mode, int); - int (*set_media)(struct phy *, enum phy_media); - int (*set_speed)(struct phy *, int); - int (*configure)(struct phy *, union phy_configure_opts *); - int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *); - int (*reset)(struct phy *); - int (*calibrate)(struct phy *); - int (*connect)(struct phy *, int); - int (*disconnect)(struct phy *, int); - void (*release)(struct phy *); - struct module *owner; -}; - -struct phy_configure_opts_mipi_dphy { - unsigned int clk_miss; - unsigned int clk_post; - unsigned int clk_pre; - unsigned int clk_prepare; - unsigned int clk_settle; - unsigned int clk_term_en; - unsigned int clk_trail; - unsigned int clk_zero; - unsigned int d_term_en; - unsigned int eot; - unsigned int hs_exit; - unsigned int hs_prepare; - unsigned int hs_settle; - unsigned int hs_skip; - unsigned int hs_trail; - unsigned int hs_zero; - unsigned int init; - unsigned int lpx; - unsigned int ta_get; - unsigned int ta_go; - unsigned int ta_sure; - unsigned int wakeup; - unsigned long hs_clk_rate; - unsigned long lp_clk_rate; - unsigned char lanes; -}; - -struct phy_configure_opts_dp { - unsigned int link_rate; - unsigned int lanes; - unsigned int voltage[4]; - unsigned int pre[4]; - u8 ssc: 1; - u8 set_rate: 1; - u8 set_lanes: 1; - u8 set_voltages: 1; -}; - -struct phy_configure_opts_lvds { - unsigned int bits_per_lane_and_dclk_cycle; - unsigned long differential_clk_rate; - unsigned int lanes; - bool is_slave; -}; - -union phy_configure_opts { - struct phy_configure_opts_mipi_dphy mipi_dphy; - struct phy_configure_opts_dp dp; - struct phy_configure_opts_lvds lvds; -}; - -struct ata_port_info { - unsigned long flags; - unsigned long link_flags; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - struct ata_port_operations *port_ops; - void *private_data; -}; - -enum iwl_trans_status { - STATUS_SYNC_HCMD_ACTIVE = 0, - STATUS_DEVICE_ENABLED = 1, - STATUS_TPOWER_PMI = 2, - STATUS_INT_ENABLED = 3, - STATUS_RFKILL_HW = 4, - STATUS_RFKILL_OPMODE = 5, - STATUS_FW_ERROR = 6, - STATUS_TRANS_GOING_IDLE = 7, - STATUS_TRANS_IDLE = 8, - STATUS_TRANS_DEAD = 9, - STATUS_SUPPRESS_CMD_ERROR_ONCE = 10, -}; - -enum iwl_error_event_table_status { - IWL_ERROR_EVENT_TABLE_LMAC1 = 1, - IWL_ERROR_EVENT_TABLE_LMAC2 = 2, - IWL_ERROR_EVENT_TABLE_UMAC = 4, - IWL_ERROR_EVENT_TABLE_TCM1 = 8, - IWL_ERROR_EVENT_TABLE_TCM2 = 16, - IWL_ERROR_EVENT_TABLE_RCM1 = 32, - IWL_ERROR_EVENT_TABLE_RCM2 = 64, -}; - -struct iwl_fw_ini_trigger_tlv; - -struct iwl_fw_dump_desc; - -struct iwl_fwrt_dump_data { - union { - struct { - struct iwl_fw_ini_trigger_tlv *trig; - struct iwl_rx_packet *fw_pkt; - }; - struct { - const struct iwl_fw_dump_desc *desc; - bool monitor_only; - }; - }; -}; - -struct iwl_fwrt_wk_data { - u8 idx; - struct delayed_work wk; - struct iwl_fwrt_dump_data dump_data; -}; - -struct iwl_txf_iter_data { - int fifo; - int lmac; - u32 fifo_size; - u8 internal_txf; -}; - -struct iwl_fw_paging { - dma_addr_t fw_paging_phys; - struct page *fw_paging_block; - u32 fw_paging_size; - u32 fw_offs; -}; - -struct iwl_fwrt_shared_mem_cfg { - int num_lmacs; - int num_txfifo_entries; - struct { - u32 txfifo_size[15]; - u32 rxfifo1_size; - } lmac[2]; - u32 rxfifo2_size; - u32 rxfifo2_control_size; - u32 internal_txfifo_addr; - u32 internal_txfifo_size[6]; -}; - -struct iwl_sar_profile_chain { - u8 subbands[11]; -}; - -struct iwl_sar_profile { - bool enabled; - struct iwl_sar_profile_chain chains[4]; -}; - -struct iwl_geo_profile_band { - u8 max; - u8 chains[2]; -}; - -struct iwl_geo_profile { - struct iwl_geo_profile_band bands[3]; -}; - -struct iwl_ppag_chain { - s8 subbands[11]; -}; - -struct iwl_sar_offset_mapping_cmd { - u8 offset_map[338]; - __le16 reserved; -}; - -struct iwl_uats_table_cmd { - u8 offset_map[338]; - __le16 reserved; -}; - -struct iwl_fw_runtime_ops; - -struct iwl_fw_runtime { - struct iwl_trans *trans; - const struct iwl_fw *fw; - struct device *dev; - const struct iwl_fw_runtime_ops *ops; - void *ops_ctx; - const struct iwl_dump_sanitize_ops *sanitize_ops; - void *sanitize_ctx; - struct iwl_fw_paging fw_paging_db[33]; - u16 num_of_paging_blk; - u16 num_of_pages_in_last_blk; - enum iwl_ucode_type cur_fw_img; - struct iwl_fwrt_shared_mem_cfg smem_cfg; - long: 0; - struct { - struct iwl_fwrt_wk_data wks[5]; - unsigned long active_wks; - u8 conf; - unsigned long non_collect_ts_start[27]; - u32 *d3_debug_data; - u32 lmac_err_id[2]; - u32 tcm_err_id[2]; - u32 rcm_err_id[2]; - u32 umac_err_id; - struct iwl_txf_iter_data txf_iter_data; - struct { - u8 type; - u8 subtype; - u32 lmac_major; - u32 lmac_minor; - u32 umac_major; - u32 umac_minor; - } fw_ver; - } dump; - struct { - u64 seq; - } timestamp; - struct iwl_sar_profile sar_profiles[4]; - u8 sar_chain_a_profile; - u8 sar_chain_b_profile; - u8 reduced_power_flags; - struct iwl_geo_profile geo_profiles[8]; - long: 0; - u32 geo_rev; - u32 geo_num_profiles; - bool geo_enabled; - struct iwl_ppag_chain ppag_chains[2]; - long: 0; - u32 ppag_flags; - u8 ppag_ver; - struct iwl_sar_offset_mapping_cmd sgom_table; - bool sgom_enabled; - struct iwl_uats_table_cmd uats_table; - u8 uefi_tables_lock_status; - bool uats_enabled; -} __attribute__((packed)); - -struct iwl_fw_runtime_ops { - void (*dump_start)(void *); - void (*dump_end)(void *); - bool (*fw_running)(void *); - int (*send_hcmd)(void *, struct iwl_host_cmd *); - bool (*d3_debug_enable)(void *); -}; - -struct iwl_fw_ini_trigger_tlv { - struct iwl_fw_ini_header hdr; - __le32 time_point; - __le32 trigger_reason; - __le32 apply_policy; - __le32 dump_delay; - __le32 occurrences; - __le32 reserved; - __le32 ignore_consec; - __le32 reset_fw; - __le32 multi_dut; - __le64 regions_mask; - __le32 data[0]; -} __attribute__((packed)); - -struct iwl_fw_error_dump_trigger_desc { - __le32 type; - u8 data[0]; -}; - -struct iwl_fw_dump_desc { - size_t len; - struct iwl_fw_error_dump_trigger_desc trig_desc; -}; - -struct iwl_umac_error_event_table { - u32 valid; - u32 error_id; - u32 blink1; - u32 blink2; - u32 ilink1; - u32 ilink2; - u32 data1; - u32 data2; - u32 data3; - u32 umac_major; - u32 umac_minor; - u32 frame_pointer; - u32 stack_pointer; - u32 cmd_header; - u32 nic_isr_pref; -}; - -struct iwl_error_event_table { - u32 valid; - u32 error_id; - u32 trm_hw_status0; - u32 trm_hw_status1; - u32 blink2; - u32 ilink1; - u32 ilink2; - u32 data1; - u32 data2; - u32 data3; - u32 bcon_time; - u32 tsf_low; - u32 tsf_hi; - u32 gp1; - u32 gp2; - u32 fw_rev_type; - u32 major; - u32 minor; - u32 hw_ver; - u32 brd_ver; - u32 log_pc; - u32 frame_ptr; - u32 stack_ptr; - u32 hcmd; - u32 isr0; - u32 isr1; - u32 isr2; - u32 isr3; - u32 isr4; - u32 last_cmd_id; - u32 wait_event; - u32 l2p_control; - u32 l2p_duration; - u32 l2p_mhvalid; - u32 l2p_addr_match; - u32 lmpm_pmg_sel; - u32 u_timestamp; - u32 flow_handler; -}; - -struct iwl_tcm_error_event_table { - u32 valid; - u32 error_id; - u32 blink2; - u32 ilink1; - u32 ilink2; - u32 data1; - u32 data2; - u32 data3; - u32 logpc; - u32 frame_pointer; - u32 stack_pointer; - u32 msgid; - u32 isr; - u32 hw_status[5]; - u32 sw_status[1]; - u32 reserved[4]; -}; - -struct iwl_rcm_error_event_table { - u32 valid; - u32 error_id; - u32 blink2; - u32 ilink1; - u32 ilink2; - u32 data1; - u32 data2; - u32 data3; - u32 logpc; - u32 frame_pointer; - u32 stack_pointer; - u32 msgid; - u32 isr; - u32 frame_hw_status; - u32 mbx_lmac_to_rcm_req; - u32 mbx_rcm_to_lmac_req; - u32 mh_ctl; - u32 mh_addr1_lo; - u32 mh_info; - u32 mh_err; - u32 reserved[3]; -}; - -enum set_key_cmd { - SET_KEY = 0, - DISABLE_KEY = 1, -}; - -enum sta_notify_cmd { - STA_NOTIFY_SLEEP = 0, - STA_NOTIFY_AWAKE = 1, -}; - -enum ieee80211_sta_state { - IEEE80211_STA_NOTEXIST = 0, - IEEE80211_STA_NONE = 1, - IEEE80211_STA_AUTH = 2, - IEEE80211_STA_ASSOC = 3, - IEEE80211_STA_AUTHORIZED = 4, -}; - -enum ieee80211_roc_type { - IEEE80211_ROC_TYPE_NORMAL = 0, - IEEE80211_ROC_TYPE_MGMT_TX = 1, -}; - -enum ieee80211_frame_release_type { - IEEE80211_FRAME_RELEASE_PSPOLL = 0, - IEEE80211_FRAME_RELEASE_UAPSD = 1, -}; - -enum ieee80211_chanctx_switch_mode { - CHANCTX_SWMODE_REASSIGN_VIF = 0, - CHANCTX_SWMODE_SWAP_CONTEXTS = 1, -}; - -enum ieee80211_reconfig_type { - IEEE80211_RECONFIG_TYPE_RESTART = 0, - IEEE80211_RECONFIG_TYPE_SUSPEND = 1, -}; - -enum ieee80211_neg_ttlm_res { - NEG_TTLM_RES_ACCEPT = 0, - NEG_TTLM_RES_REJECT = 1, - NEG_TTLM_RES_SUGGEST_PREFERRED = 2, -}; - -struct ieee80211_tx_control; - -struct ieee80211_scan_request; - -struct ieee80211_low_level_stats; - -struct ieee80211_ampdu_params; - -struct ieee80211_event; - -struct ieee80211_prep_tx_info; - -struct ieee80211_vif_chanctx_switch; - -struct ieee80211_tdls_ch_sw_params; - -struct ieee80211_twt_setup; - -struct ieee80211_ops { - void (*tx)(struct ieee80211_hw *, struct ieee80211_tx_control *, struct sk_buff *); - int (*start)(struct ieee80211_hw *); - void (*stop)(struct ieee80211_hw *); - int (*suspend)(struct ieee80211_hw *, struct cfg80211_wowlan *); - int (*resume)(struct ieee80211_hw *); - void (*set_wakeup)(struct ieee80211_hw *, bool); - int (*add_interface)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*change_interface)(struct ieee80211_hw *, struct ieee80211_vif *, enum nl80211_iftype, bool); - void (*remove_interface)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*config)(struct ieee80211_hw *, u32); - void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); - void (*vif_cfg_changed)(struct ieee80211_hw *, struct ieee80211_vif *, u64); - void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); - int (*start_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); - void (*stop_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); - u64 (*prepare_multicast)(struct ieee80211_hw *, struct netdev_hw_addr_list *); - void (*configure_filter)(struct ieee80211_hw *, unsigned int, unsigned int *, u64); - void (*config_iface_filter)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, unsigned int); - int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool); - int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *); - void (*update_tkip_key)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32, u16 *); - void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *); - void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int); - int (*hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_scan_request *); - void (*cancel_hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*sched_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_sched_scan_request *, struct ieee80211_scan_ies *); - int (*sched_scan_stop)(struct ieee80211_hw *, struct ieee80211_vif *); - void (*sw_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, const u8 *); - void (*sw_scan_complete)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*get_stats)(struct ieee80211_hw *, struct ieee80211_low_level_stats *); - void (*get_key_seq)(struct ieee80211_hw *, struct ieee80211_key_conf *, struct ieee80211_key_seq *); - int (*set_frag_threshold)(struct ieee80211_hw *, u32); - int (*set_rts_threshold)(struct ieee80211_hw *, u32); - int (*sta_add)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*sta_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*sta_notify)(struct ieee80211_hw *, struct ieee80211_vif *, enum sta_notify_cmd, struct ieee80211_sta *); - int (*sta_set_txpwr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*sta_state)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state); - void (*sta_pre_rcu_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u32); - void (*sta_rate_tbl_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*sta_statistics)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct station_info *); - int (*conf_tx)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, u16, const struct ieee80211_tx_queue_params *); - u64 (*get_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); - void (*set_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, u64); - void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64); - void (*reset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*tx_last_beacon)(struct ieee80211_hw *); - int (*ampdu_action)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_ampdu_params *); - int (*get_survey)(struct ieee80211_hw *, int, struct survey_info *); - void (*rfkill_poll)(struct ieee80211_hw *); - void (*set_coverage_class)(struct ieee80211_hw *, s16); - void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool); - void (*flush_sta)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); - int (*set_antenna)(struct ieee80211_hw *, u32, u32); - int (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *); - int (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type); - int (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*set_ringparam)(struct ieee80211_hw *, u32, u32); - void (*get_ringparam)(struct ieee80211_hw *, u32 *, u32 *, u32 *, u32 *); - bool (*tx_frames_pending)(struct ieee80211_hw *); - int (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *); - void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *); - void (*allow_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); - void (*release_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); - int (*get_et_sset_count)(struct ieee80211_hw *, struct ieee80211_vif *, int); - void (*get_et_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct ethtool_stats *, u64 *); - void (*get_et_strings)(struct ieee80211_hw *, struct ieee80211_vif *, u32, u8 *); - void (*mgd_prepare_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); - void (*mgd_complete_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); - void (*mgd_protect_tdls_discover)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int); - int (*add_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *); - void (*remove_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *); - void (*change_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *, u32); - int (*assign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); - void (*unassign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); - int (*switch_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode); - void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type); - void (*ipv6_addr_change)(struct ieee80211_hw *, struct ieee80211_vif *, struct inet6_dev *); - void (*channel_switch_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_chan_def *); - int (*pre_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); - int (*post_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); - void (*abort_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); - void (*channel_switch_rx_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); - int (*join_ibss)(struct ieee80211_hw *, struct ieee80211_vif *); - void (*leave_ibss)(struct ieee80211_hw *, struct ieee80211_vif *); - u32 (*get_expected_throughput)(struct ieee80211_hw *, struct ieee80211_sta *); - int (*get_txpower)(struct ieee80211_hw *, struct ieee80211_vif *, int *); - int (*tdls_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8, struct cfg80211_chan_def *, struct sk_buff *, u32); - void (*tdls_cancel_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*tdls_recv_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_tdls_ch_sw_params *); - void (*wake_tx_queue)(struct ieee80211_hw *, struct ieee80211_txq *); - void (*sync_rx_queues)(struct ieee80211_hw *); - int (*start_nan)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *); - int (*stop_nan)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*nan_change_conf)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *, u32); - int (*add_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_nan_func *); - void (*del_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, u8); - bool (*can_aggregate_in_amsdu)(struct ieee80211_hw *, struct sk_buff *, struct sk_buff *); - int (*get_ftm_responder_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_ftm_responder_stats *); - int (*start_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *); - void (*abort_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *); - int (*set_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct cfg80211_tid_config *); - int (*reset_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8); - void (*update_vif_offload)(struct ieee80211_hw *, struct ieee80211_vif *); - void (*sta_set_4addr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool); - int (*set_sar_specs)(struct ieee80211_hw *, const struct cfg80211_sar_specs *); - void (*sta_set_decap_offload)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool); - void (*add_twt_setup)(struct ieee80211_hw *, struct ieee80211_sta *, struct ieee80211_twt_setup *); - void (*twt_teardown_request)(struct ieee80211_hw *, struct ieee80211_sta *, u8); - int (*set_radar_background)(struct ieee80211_hw *, struct cfg80211_chan_def *); - int (*net_fill_forward_path)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct net_device_path_ctx *, struct net_device_path *); - bool (*can_activate_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16); - int (*change_vif_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16, u16, struct ieee80211_bss_conf **); - int (*change_sta_links)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u16, u16); - int (*set_hw_timestamp)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_set_hw_timestamp *); - int (*net_setup_tc)(struct ieee80211_hw *, struct ieee80211_vif *, struct net_device *, enum tc_setup_type, void *); - enum ieee80211_neg_ttlm_res (*can_neg_ttlm)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_neg_ttlm *); -}; - -struct ieee80211_tx_control { - struct ieee80211_sta *sta; -}; - -struct ieee80211_scan_request { - struct ieee80211_scan_ies ies; - struct cfg80211_scan_request req; -}; - -struct ieee80211_low_level_stats { - unsigned int dot11ACKFailureCount; - unsigned int dot11RTSFailureCount; - unsigned int dot11FCSErrorCount; - unsigned int dot11RTSSuccessCount; -}; - -enum ieee80211_ampdu_mlme_action { - IEEE80211_AMPDU_RX_START = 0, - IEEE80211_AMPDU_RX_STOP = 1, - IEEE80211_AMPDU_TX_START = 2, - IEEE80211_AMPDU_TX_STOP_CONT = 3, - IEEE80211_AMPDU_TX_STOP_FLUSH = 4, - IEEE80211_AMPDU_TX_STOP_FLUSH_CONT = 5, - IEEE80211_AMPDU_TX_OPERATIONAL = 6, -}; - -struct ieee80211_ampdu_params { - enum ieee80211_ampdu_mlme_action action; - struct ieee80211_sta *sta; - u16 tid; - u16 ssn; - u16 buf_size; - bool amsdu; - u16 timeout; -}; - -enum ieee80211_event_type { - RSSI_EVENT = 0, - MLME_EVENT = 1, - BAR_RX_EVENT = 2, - BA_FRAME_TIMEOUT = 3, -}; - -enum ieee80211_rssi_event_data { - RSSI_EVENT_HIGH = 0, - RSSI_EVENT_LOW = 1, -}; - -struct ieee80211_rssi_event { - enum ieee80211_rssi_event_data data; -}; - -enum ieee80211_mlme_event_data { - AUTH_EVENT = 0, - ASSOC_EVENT = 1, - DEAUTH_RX_EVENT = 2, - DEAUTH_TX_EVENT = 3, -}; - -enum ieee80211_mlme_event_status { - MLME_SUCCESS = 0, - MLME_DENIED = 1, - MLME_TIMEOUT = 2, -}; - -struct ieee80211_mlme_event { - enum ieee80211_mlme_event_data data; - enum ieee80211_mlme_event_status status; - u16 reason; -}; - -struct ieee80211_ba_event { - struct ieee80211_sta *sta; - u16 tid; - u16 ssn; -}; - -struct ieee80211_event { - enum ieee80211_event_type type; - union { - struct ieee80211_rssi_event rssi; - struct ieee80211_mlme_event mlme; - struct ieee80211_ba_event ba; - } u; -}; - -struct ieee80211_prep_tx_info { - u16 duration; - u16 subtype; - u8 success: 1; - int link_id; -}; - -struct ieee80211_vif_chanctx_switch { - struct ieee80211_vif *vif; - struct ieee80211_bss_conf *link_conf; - struct ieee80211_chanctx_conf *old_ctx; - struct ieee80211_chanctx_conf *new_ctx; -}; - -struct ieee80211_tdls_ch_sw_params { - struct ieee80211_sta *sta; - struct cfg80211_chan_def *chandef; - u8 action_code; - u32 status; - u32 timestamp; - u16 switch_time; - u16 switch_timeout; - struct sk_buff *tmpl_skb; - u32 ch_sw_tm_ie; -}; - -struct ieee80211_twt_setup { - u8 dialog_token; - u8 element_id; - u8 length; - u8 control; - u8 params[0]; -}; - -enum rtw_fw_feature { - FW_FEATURE_SIG = 1, - FW_FEATURE_LPS_C2H = 2, - FW_FEATURE_LCLK = 4, - FW_FEATURE_PG = 8, - FW_FEATURE_TX_WAKE = 16, - FW_FEATURE_BCN_FILTER = 32, - FW_FEATURE_NOTIFY_SCAN = 64, - FW_FEATURE_ADAPTIVITY = 128, - FW_FEATURE_SCAN_OFFLOAD = 256, - FW_FEATURE_MAX = 2147483648, -}; - -enum ieee80211_vif_flags { - IEEE80211_VIF_BEACON_FILTER = 1, - IEEE80211_VIF_SUPPORTS_CQM_RSSI = 2, - IEEE80211_VIF_SUPPORTS_UAPSD = 4, - IEEE80211_VIF_GET_NOA_UPDATE = 8, - IEEE80211_VIF_EML_ACTIVE = 16, - IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = 32, -}; - -enum rtw_port { - RTW_PORT_0 = 0, - RTW_PORT_1 = 1, - RTW_PORT_2 = 2, - RTW_PORT_3 = 3, - RTW_PORT_4 = 4, - RTW_PORT_NUM = 5, -}; - -enum rtw_vif_port_set { - PORT_SET_MAC_ADDR = 1, - PORT_SET_BSSID = 2, - PORT_SET_NET_TYPE = 4, - PORT_SET_AID = 8, - PORT_SET_BCN_CTRL = 16, -}; - -enum ieee80211_conf_changed { - IEEE80211_CONF_CHANGE_SMPS = 2, - IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = 4, - IEEE80211_CONF_CHANGE_MONITOR = 8, - IEEE80211_CONF_CHANGE_PS = 16, - IEEE80211_CONF_CHANGE_POWER = 32, - IEEE80211_CONF_CHANGE_CHANNEL = 64, - IEEE80211_CONF_CHANGE_RETRY_LIMITS = 128, - IEEE80211_CONF_CHANGE_IDLE = 256, -}; - -enum ieee80211_conf_flags { - IEEE80211_CONF_MONITOR = 1, - IEEE80211_CONF_PS = 2, - IEEE80211_CONF_IDLE = 4, - IEEE80211_CONF_OFFCHANNEL = 8, -}; - -enum ieee80211_bss_change { - BSS_CHANGED_ASSOC = 1LL, - BSS_CHANGED_ERP_CTS_PROT = 2LL, - BSS_CHANGED_ERP_PREAMBLE = 4LL, - BSS_CHANGED_ERP_SLOT = 8LL, - BSS_CHANGED_HT = 16LL, - BSS_CHANGED_BASIC_RATES = 32LL, - BSS_CHANGED_BEACON_INT = 64LL, - BSS_CHANGED_BSSID = 128LL, - BSS_CHANGED_BEACON = 256LL, - BSS_CHANGED_BEACON_ENABLED = 512LL, - BSS_CHANGED_CQM = 1024LL, - BSS_CHANGED_IBSS = 2048LL, - BSS_CHANGED_ARP_FILTER = 4096LL, - BSS_CHANGED_QOS = 8192LL, - BSS_CHANGED_IDLE = 16384LL, - BSS_CHANGED_SSID = 32768LL, - BSS_CHANGED_AP_PROBE_RESP = 65536LL, - BSS_CHANGED_PS = 131072LL, - BSS_CHANGED_TXPOWER = 262144LL, - BSS_CHANGED_P2P_PS = 524288LL, - BSS_CHANGED_BEACON_INFO = 1048576LL, - BSS_CHANGED_BANDWIDTH = 2097152LL, - BSS_CHANGED_OCB = 4194304LL, - BSS_CHANGED_MU_GROUPS = 8388608LL, - BSS_CHANGED_KEEP_ALIVE = 16777216LL, - BSS_CHANGED_MCAST_RATE = 33554432LL, - BSS_CHANGED_FTM_RESPONDER = 67108864LL, - BSS_CHANGED_TWT = 134217728LL, - BSS_CHANGED_HE_OBSS_PD = 268435456LL, - BSS_CHANGED_HE_BSS_COLOR = 536870912LL, - BSS_CHANGED_FILS_DISCOVERY = 1073741824LL, - BSS_CHANGED_UNSOL_BCAST_PROBE_RESP = -2147483648LL, - BSS_CHANGED_MLD_VALID_LINKS = 8589934592LL, - BSS_CHANGED_MLD_TTLM = 17179869184LL, -}; - -enum ieee80211_filter_flags { - FIF_ALLMULTI = 2, - FIF_FCSFAIL = 4, - FIF_PLCPFAIL = 8, - FIF_BCN_PRBRESP_PROMISC = 16, - FIF_CONTROL = 32, - FIF_OTHER_BSS = 64, - FIF_PSPOLL = 128, - FIF_PROBE_REQ = 256, - FIF_MCAST_ACTION = 512, -}; - -enum rtw_hw_key_type { - RTW_CAM_NONE = 0, - RTW_CAM_WEP40 = 1, - RTW_CAM_TKIP = 2, - RTW_CAM_AES = 4, - RTW_CAM_WEP104 = 5, -}; - -enum ieee80211_rate_control_changed { - IEEE80211_RC_BW_CHANGED = 1, - IEEE80211_RC_SMPS_CHANGED = 2, - IEEE80211_RC_SUPP_RATES_CHANGED = 4, - IEEE80211_RC_NSS_CHANGED = 8, -}; - -enum nl80211_sta_info { - __NL80211_STA_INFO_INVALID = 0, - NL80211_STA_INFO_INACTIVE_TIME = 1, - NL80211_STA_INFO_RX_BYTES = 2, - NL80211_STA_INFO_TX_BYTES = 3, - NL80211_STA_INFO_LLID = 4, - NL80211_STA_INFO_PLID = 5, - NL80211_STA_INFO_PLINK_STATE = 6, - NL80211_STA_INFO_SIGNAL = 7, - NL80211_STA_INFO_TX_BITRATE = 8, - NL80211_STA_INFO_RX_PACKETS = 9, - NL80211_STA_INFO_TX_PACKETS = 10, - NL80211_STA_INFO_TX_RETRIES = 11, - NL80211_STA_INFO_TX_FAILED = 12, - NL80211_STA_INFO_SIGNAL_AVG = 13, - NL80211_STA_INFO_RX_BITRATE = 14, - NL80211_STA_INFO_BSS_PARAM = 15, - NL80211_STA_INFO_CONNECTED_TIME = 16, - NL80211_STA_INFO_STA_FLAGS = 17, - NL80211_STA_INFO_BEACON_LOSS = 18, - NL80211_STA_INFO_T_OFFSET = 19, - NL80211_STA_INFO_LOCAL_PM = 20, - NL80211_STA_INFO_PEER_PM = 21, - NL80211_STA_INFO_NONPEER_PM = 22, - NL80211_STA_INFO_RX_BYTES64 = 23, - NL80211_STA_INFO_TX_BYTES64 = 24, - NL80211_STA_INFO_CHAIN_SIGNAL = 25, - NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 26, - NL80211_STA_INFO_EXPECTED_THROUGHPUT = 27, - NL80211_STA_INFO_RX_DROP_MISC = 28, - NL80211_STA_INFO_BEACON_RX = 29, - NL80211_STA_INFO_BEACON_SIGNAL_AVG = 30, - NL80211_STA_INFO_TID_STATS = 31, - NL80211_STA_INFO_RX_DURATION = 32, - NL80211_STA_INFO_PAD = 33, - NL80211_STA_INFO_ACK_SIGNAL = 34, - NL80211_STA_INFO_ACK_SIGNAL_AVG = 35, - NL80211_STA_INFO_RX_MPDUS = 36, - NL80211_STA_INFO_FCS_ERROR_COUNT = 37, - NL80211_STA_INFO_CONNECTED_TO_GATE = 38, - NL80211_STA_INFO_TX_DURATION = 39, - NL80211_STA_INFO_AIRTIME_WEIGHT = 40, - NL80211_STA_INFO_AIRTIME_LINK_METRIC = 41, - NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 42, - NL80211_STA_INFO_CONNECTED_TO_AS = 43, - __NL80211_STA_INFO_AFTER_LAST = 44, - NL80211_STA_INFO_MAX = 43, -}; - -enum rtw_txq_flags { - RTW_TXQ_AMPDU = 0, - RTW_TXQ_BLOCK_BA = 1, -}; - -enum ieee80211_ac_numbers { - IEEE80211_AC_VO = 0, - IEEE80211_AC_VI = 1, - IEEE80211_AC_BE = 2, - IEEE80211_AC_BK = 3, -}; - -struct rtw_txq { - struct list_head list; - unsigned long flags; -}; - -struct rtw_iter_bitrate_mask_data { - struct rtw_dev *rtwdev; - struct ieee80211_vif *vif; - const struct cfg80211_bitrate_mask *mask; -}; - -struct cpufreq_policy; - -struct cpufreq_governor { - char name[16]; - int (*init)(struct cpufreq_policy *); - void (*exit)(struct cpufreq_policy *); - int (*start)(struct cpufreq_policy *); - void (*stop)(struct cpufreq_policy *); - void (*limits)(struct cpufreq_policy *); - ssize_t (*show_setspeed)(struct cpufreq_policy *, char *); - int (*store_setspeed)(struct cpufreq_policy *, unsigned int); - struct list_head governor_list; - struct module *owner; - u8 flags; -}; - -struct cpufreq_cpuinfo { - unsigned int max_freq; - unsigned int min_freq; - unsigned int transition_latency; -}; - -enum cpufreq_table_sorting { - CPUFREQ_TABLE_UNSORTED = 0, - CPUFREQ_TABLE_SORTED_ASCENDING = 1, - CPUFREQ_TABLE_SORTED_DESCENDING = 2, -}; - -struct cpufreq_stats; - -struct cpufreq_frequency_table; - -struct cpufreq_policy { - cpumask_var_t cpus; - cpumask_var_t related_cpus; - cpumask_var_t real_cpus; - unsigned int shared_type; - unsigned int cpu; - struct clk *clk; - struct cpufreq_cpuinfo cpuinfo; - unsigned int min; - unsigned int max; - unsigned int cur; - unsigned int suspend_freq; - unsigned int policy; - unsigned int last_policy; - struct cpufreq_governor *governor; - void *governor_data; - char last_governor[16]; - struct work_struct update; - struct freq_constraints constraints; - struct freq_qos_request *min_freq_req; - struct freq_qos_request *max_freq_req; - struct cpufreq_frequency_table *freq_table; - enum cpufreq_table_sorting freq_table_sorted; - struct list_head policy_list; - struct kobject kobj; - struct completion kobj_unregister; - struct rw_semaphore rwsem; - bool fast_switch_possible; - bool fast_switch_enabled; - bool strict_target; - bool efficiencies_available; - unsigned int transition_delay_us; - bool dvfs_possible_from_any_cpu; - bool boost_enabled; - unsigned int cached_target_freq; - unsigned int cached_resolved_idx; - bool transition_ongoing; - spinlock_t transition_lock; - wait_queue_head_t transition_wait; - struct task_struct *transition_task; - struct cpufreq_stats *stats; - void *driver_data; - struct thermal_cooling_device *cdev; - struct notifier_block nb_min; - struct notifier_block nb_max; -}; - -struct cpufreq_frequency_table { - unsigned int flags; - unsigned int driver_data; - unsigned int frequency; -}; - -struct cpuidle_driver; - -struct cpuidle_device; - -struct cpuidle_governor { - char name[16]; - struct list_head governor_list; - unsigned int rating; - int (*enable)(struct cpuidle_driver *, struct cpuidle_device *); - void (*disable)(struct cpuidle_driver *, struct cpuidle_device *); - int (*select)(struct cpuidle_driver *, struct cpuidle_device *, bool *); - void (*reflect)(struct cpuidle_device *, int); -}; - -struct cpuidle_state { - char name[16]; - char desc[32]; - s64 exit_latency_ns; - s64 target_residency_ns; - unsigned int flags; - unsigned int exit_latency; - int power_usage; - unsigned int target_residency; - int (*enter)(struct cpuidle_device *, struct cpuidle_driver *, int); - int (*enter_dead)(struct cpuidle_device *, int); - int (*enter_s2idle)(struct cpuidle_device *, struct cpuidle_driver *, int); -}; - -struct cpuidle_driver { - const char *name; - struct module *owner; - unsigned int bctimer: 1; - struct cpuidle_state states[10]; - int state_count; - int safe_state_index; - struct cpumask *cpumask; - const char *governor; -}; - -struct cpuidle_state_usage { - unsigned long long disable; - unsigned long long usage; - u64 time_ns; - unsigned long long above; - unsigned long long below; - unsigned long long rejected; - unsigned long long s2idle_usage; - unsigned long long s2idle_time; -}; - -struct cpuidle_driver_kobj; - -struct cpuidle_state_kobj; - -struct cpuidle_device_kobj; - -struct cpuidle_device { - unsigned int registered: 1; - unsigned int enabled: 1; - unsigned int poll_time_limit: 1; - unsigned int cpu; - ktime_t next_hrtimer; - int last_state_idx; - u64 last_residency_ns; - u64 poll_limit_ns; - u64 forced_idle_latency_limit_ns; - struct cpuidle_state_usage states_usage[10]; - struct cpuidle_state_kobj *kobjs[10]; - struct cpuidle_driver_kobj *kobj_driver; - struct cpuidle_device_kobj *kobj_dev; - struct list_head device_list; -}; - -struct menu_device { - int needs_update; - int tick_wakeup; - u64 next_timer_ns; - unsigned int bucket; - unsigned int correction_factor[12]; - unsigned int intervals[8]; - int interval_ptr; -}; - -typedef s64 int64_t; - -struct screen_info { - __u8 orig_x; - __u8 orig_y; - __u16 ext_mem_k; - __u16 orig_video_page; - __u8 orig_video_mode; - __u8 orig_video_cols; - __u8 flags; - __u8 unused2; - __u16 orig_video_ega_bx; - __u16 unused3; - __u8 orig_video_lines; - __u8 orig_video_isVGA; - __u16 orig_video_points; - __u16 lfb_width; - __u16 lfb_height; - __u16 lfb_depth; - __u32 lfb_base; - __u32 lfb_size; - __u16 cl_magic; - __u16 cl_offset; - __u16 lfb_linelength; - __u8 red_size; - __u8 red_pos; - __u8 green_size; - __u8 green_pos; - __u8 blue_size; - __u8 blue_pos; - __u8 rsvd_size; - __u8 rsvd_pos; - __u16 vesapm_seg; - __u16 vesapm_off; - __u16 pages; - __u16 vesa_attributes; - __u32 capabilities; - __u32 ext_lfb_base; - __u8 _reserved[2]; -} __attribute__((packed)); - -struct simplefb_platform_data { - u32 width; - u32 height; - u32 stride; - const char *format; -}; - -enum { - NETIF_F_SG_BIT = 0, - NETIF_F_IP_CSUM_BIT = 1, - __UNUSED_NETIF_F_1 = 2, - NETIF_F_HW_CSUM_BIT = 3, - NETIF_F_IPV6_CSUM_BIT = 4, - NETIF_F_HIGHDMA_BIT = 5, - NETIF_F_FRAGLIST_BIT = 6, - NETIF_F_HW_VLAN_CTAG_TX_BIT = 7, - NETIF_F_HW_VLAN_CTAG_RX_BIT = 8, - NETIF_F_HW_VLAN_CTAG_FILTER_BIT = 9, - NETIF_F_VLAN_CHALLENGED_BIT = 10, - NETIF_F_GSO_BIT = 11, - NETIF_F_LLTX_BIT = 12, - NETIF_F_NETNS_LOCAL_BIT = 13, - NETIF_F_GRO_BIT = 14, - NETIF_F_LRO_BIT = 15, - NETIF_F_GSO_SHIFT = 16, - NETIF_F_TSO_BIT = 16, - NETIF_F_GSO_ROBUST_BIT = 17, - NETIF_F_TSO_ECN_BIT = 18, - NETIF_F_TSO_MANGLEID_BIT = 19, - NETIF_F_TSO6_BIT = 20, - NETIF_F_FSO_BIT = 21, - NETIF_F_GSO_GRE_BIT = 22, - NETIF_F_GSO_GRE_CSUM_BIT = 23, - NETIF_F_GSO_IPXIP4_BIT = 24, - NETIF_F_GSO_IPXIP6_BIT = 25, - NETIF_F_GSO_UDP_TUNNEL_BIT = 26, - NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT = 27, - NETIF_F_GSO_PARTIAL_BIT = 28, - NETIF_F_GSO_TUNNEL_REMCSUM_BIT = 29, - NETIF_F_GSO_SCTP_BIT = 30, - NETIF_F_GSO_ESP_BIT = 31, - NETIF_F_GSO_UDP_BIT = 32, - NETIF_F_GSO_UDP_L4_BIT = 33, - NETIF_F_GSO_FRAGLIST_BIT = 34, - NETIF_F_GSO_LAST = 34, - NETIF_F_FCOE_CRC_BIT = 35, - NETIF_F_SCTP_CRC_BIT = 36, - NETIF_F_FCOE_MTU_BIT = 37, - NETIF_F_NTUPLE_BIT = 38, - NETIF_F_RXHASH_BIT = 39, - NETIF_F_RXCSUM_BIT = 40, - NETIF_F_NOCACHE_COPY_BIT = 41, - NETIF_F_LOOPBACK_BIT = 42, - NETIF_F_RXFCS_BIT = 43, - NETIF_F_RXALL_BIT = 44, - NETIF_F_HW_VLAN_STAG_TX_BIT = 45, - NETIF_F_HW_VLAN_STAG_RX_BIT = 46, - NETIF_F_HW_VLAN_STAG_FILTER_BIT = 47, - NETIF_F_HW_L2FW_DOFFLOAD_BIT = 48, - NETIF_F_HW_TC_BIT = 49, - NETIF_F_HW_ESP_BIT = 50, - NETIF_F_HW_ESP_TX_CSUM_BIT = 51, - NETIF_F_RX_UDP_TUNNEL_PORT_BIT = 52, - NETIF_F_HW_TLS_TX_BIT = 53, - NETIF_F_HW_TLS_RX_BIT = 54, - NETIF_F_GRO_HW_BIT = 55, - NETIF_F_HW_TLS_RECORD_BIT = 56, - NETIF_F_GRO_FRAGLIST_BIT = 57, - NETIF_F_HW_MACSEC_BIT = 58, - NETIF_F_GRO_UDP_FWD_BIT = 59, - NETIF_F_HW_HSR_TAG_INS_BIT = 60, - NETIF_F_HW_HSR_TAG_RM_BIT = 61, - NETIF_F_HW_HSR_FWD_BIT = 62, - NETIF_F_HW_HSR_DUP_BIT = 63, - NETDEV_FEATURE_COUNT = 64, -}; - -enum { - SKB_GSO_TCPV4 = 1, - SKB_GSO_DODGY = 2, - SKB_GSO_TCP_ECN = 4, - SKB_GSO_TCP_FIXEDID = 8, - SKB_GSO_TCPV6 = 16, - SKB_GSO_FCOE = 32, - SKB_GSO_GRE = 64, - SKB_GSO_GRE_CSUM = 128, - SKB_GSO_IPXIP4 = 256, - SKB_GSO_IPXIP6 = 512, - SKB_GSO_UDP_TUNNEL = 1024, - SKB_GSO_UDP_TUNNEL_CSUM = 2048, - SKB_GSO_PARTIAL = 4096, - SKB_GSO_TUNNEL_REMCSUM = 8192, - SKB_GSO_SCTP = 16384, - SKB_GSO_ESP = 32768, - SKB_GSO_UDP = 65536, - SKB_GSO_UDP_L4 = 131072, - SKB_GSO_FRAGLIST = 262144, -}; - -struct offload_callbacks { - struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t); - struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *); - int (*gro_complete)(struct sk_buff *, int); -}; - -struct packet_offload { - __be16 type; - u16 priority; - struct offload_callbacks callbacks; - struct list_head list; -}; - -struct skb_gso_cb { - union { - int mac_offset; - int data_offset; - }; - int encap_level; - __wsum csum; - __u16 csum_start; -}; - -enum nf_ct_sysctl_index { - NF_SYSCTL_CT_MAX = 0, - NF_SYSCTL_CT_COUNT = 1, - NF_SYSCTL_CT_BUCKETS = 2, - NF_SYSCTL_CT_CHECKSUM = 3, - NF_SYSCTL_CT_LOG_INVALID = 4, - NF_SYSCTL_CT_EXPECT_MAX = 5, - NF_SYSCTL_CT_ACCT = 6, - NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 7, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 8, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 9, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 10, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 11, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 12, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 13, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 14, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 15, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 16, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 17, - NF_SYSCTL_CT_PROTO_TCP_LOOSE = 18, - NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 19, - NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 20, - NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 21, - NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 22, - NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 23, - NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 24, - NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 25, - __NF_SYSCTL_CT_LAST_SYSCTL = 26, -}; - -enum tcp_conntrack { - TCP_CONNTRACK_NONE = 0, - TCP_CONNTRACK_SYN_SENT = 1, - TCP_CONNTRACK_SYN_RECV = 2, - TCP_CONNTRACK_ESTABLISHED = 3, - TCP_CONNTRACK_FIN_WAIT = 4, - TCP_CONNTRACK_CLOSE_WAIT = 5, - TCP_CONNTRACK_LAST_ACK = 6, - TCP_CONNTRACK_TIME_WAIT = 7, - TCP_CONNTRACK_CLOSE = 8, - TCP_CONNTRACK_LISTEN = 9, - TCP_CONNTRACK_MAX = 10, - TCP_CONNTRACK_IGNORE = 11, - TCP_CONNTRACK_RETRANS = 12, - TCP_CONNTRACK_UNACK = 13, - TCP_CONNTRACK_TIMEOUT_MAX = 14, -}; - -enum nf_ct_ext_id { - NF_CT_EXT_HELPER = 0, - NF_CT_EXT_NAT = 1, - NF_CT_EXT_SEQADJ = 2, - NF_CT_EXT_ACCT = 3, - NF_CT_EXT_NUM = 4, -}; - -struct nf_conntrack_net { - atomic_t count; - unsigned int expect_count; - unsigned int users4; - unsigned int users6; - unsigned int users_bridge; - struct ctl_table_header *sysctl_header; -}; - -struct ct_iter_state { - struct seq_net_private p; - struct hlist_nulls_head *hash; - unsigned int htable_size; - unsigned int bucket; - u_int64_t time_now; -}; - -struct nf_conn_counter { - atomic64_t packets; - atomic64_t bytes; -}; - -struct nf_conn_acct { - struct nf_conn_counter counter[2]; -}; - -struct xt_action_param; - -struct xt_mtchk_param; - -struct xt_mtdtor_param; - -struct xt_match { - struct list_head list; - const char name[29]; - u_int8_t revision; - bool (*match)(const struct sk_buff *, struct xt_action_param *); - int (*checkentry)(const struct xt_mtchk_param *); - void (*destroy)(const struct xt_mtdtor_param *); - struct module *me; - const char *table; - unsigned int matchsize; - unsigned int usersize; - unsigned int hooks; - unsigned short proto; - unsigned short family; -}; - -struct xt_target; - -struct xt_action_param { - union { - const struct xt_match *match; - const struct xt_target *target; - }; - union { - const void *matchinfo; - const void *targinfo; - }; - const struct nf_hook_state *state; - unsigned int thoff; - u16 fragoff; - bool hotdrop; -}; - -struct xt_tgchk_param; - -struct xt_tgdtor_param; - -struct xt_target { - struct list_head list; - const char name[29]; - u_int8_t revision; - unsigned int (*target)(struct sk_buff *, const struct xt_action_param *); - int (*checkentry)(const struct xt_tgchk_param *); - void (*destroy)(const struct xt_tgdtor_param *); - struct module *me; - const char *table; - unsigned int targetsize; - unsigned int usersize; - unsigned int hooks; - unsigned short proto; - unsigned short family; -}; - -struct xt_tgchk_param { - struct net *net; - const char *table; - const void *entryinfo; - const struct xt_target *target; - void *targinfo; - unsigned int hook_mask; - u_int8_t family; - bool nft_compat; -}; - -struct xt_tgdtor_param { - struct net *net; - const struct xt_target *target; - void *targinfo; - u_int8_t family; -}; - -struct xt_mtchk_param { - struct net *net; - const char *table; - const void *entryinfo; - const struct xt_match *match; - void *matchinfo; - unsigned int hook_mask; - u_int8_t family; - bool nft_compat; -}; - -struct xt_mtdtor_param { - struct net *net; - const struct xt_match *match; - void *matchinfo; - u_int8_t family; -}; - -struct xt_cgroup_info_v0 { - __u32 id; - __u32 invert; -}; - -struct xt_cgroup_info_v1 { - __u8 has_path; - __u8 has_classid; - __u8 invert_path; - __u8 invert_classid; - char path[4096]; - __u32 classid; - void *priv; -}; - -struct xt_cgroup_info_v2 { - __u8 has_path; - __u8 has_classid; - __u8 invert_path; - __u8 invert_classid; - union { - char path[512]; - __u32 classid; - }; - void *priv; -}; - -struct snmp_mib { - const char *name; - int entry; -}; - -enum { - ICMP_MIB_NUM = 0, - ICMP_MIB_INMSGS = 1, - ICMP_MIB_INERRORS = 2, - ICMP_MIB_INDESTUNREACHS = 3, - ICMP_MIB_INTIMEEXCDS = 4, - ICMP_MIB_INPARMPROBS = 5, - ICMP_MIB_INSRCQUENCHS = 6, - ICMP_MIB_INREDIRECTS = 7, - ICMP_MIB_INECHOS = 8, - ICMP_MIB_INECHOREPS = 9, - ICMP_MIB_INTIMESTAMPS = 10, - ICMP_MIB_INTIMESTAMPREPS = 11, - ICMP_MIB_INADDRMASKS = 12, - ICMP_MIB_INADDRMASKREPS = 13, - ICMP_MIB_OUTMSGS = 14, - ICMP_MIB_OUTERRORS = 15, - ICMP_MIB_OUTDESTUNREACHS = 16, - ICMP_MIB_OUTTIMEEXCDS = 17, - ICMP_MIB_OUTPARMPROBS = 18, - ICMP_MIB_OUTSRCQUENCHS = 19, - ICMP_MIB_OUTREDIRECTS = 20, - ICMP_MIB_OUTECHOS = 21, - ICMP_MIB_OUTECHOREPS = 22, - ICMP_MIB_OUTTIMESTAMPS = 23, - ICMP_MIB_OUTTIMESTAMPREPS = 24, - ICMP_MIB_OUTADDRMASKS = 25, - ICMP_MIB_OUTADDRMASKREPS = 26, - ICMP_MIB_CSUMERRORS = 27, - ICMP_MIB_RATELIMITGLOBAL = 28, - ICMP_MIB_RATELIMITHOST = 29, - __ICMP_MIB_MAX = 30, -}; - -enum { - TCP_MIB_NUM = 0, - TCP_MIB_RTOALGORITHM = 1, - TCP_MIB_RTOMIN = 2, - TCP_MIB_RTOMAX = 3, - TCP_MIB_MAXCONN = 4, - TCP_MIB_ACTIVEOPENS = 5, - TCP_MIB_PASSIVEOPENS = 6, - TCP_MIB_ATTEMPTFAILS = 7, - TCP_MIB_ESTABRESETS = 8, - TCP_MIB_CURRESTAB = 9, - TCP_MIB_INSEGS = 10, - TCP_MIB_OUTSEGS = 11, - TCP_MIB_RETRANSSEGS = 12, - TCP_MIB_INERRS = 13, - TCP_MIB_OUTRSTS = 14, - TCP_MIB_CSUMERRORS = 15, - __TCP_MIB_MAX = 16, -}; - -enum { - NDA_UNSPEC = 0, - NDA_DST = 1, - NDA_LLADDR = 2, - NDA_CACHEINFO = 3, - NDA_PROBES = 4, - NDA_VLAN = 5, - NDA_PORT = 6, - NDA_VNI = 7, - NDA_IFINDEX = 8, - NDA_MASTER = 9, - NDA_LINK_NETNSID = 10, - NDA_SRC_VNI = 11, - NDA_PROTOCOL = 12, - NDA_NH_ID = 13, - NDA_FDB_EXT_ATTRS = 14, - NDA_FLAGS_EXT = 15, - NDA_NDM_STATE_MASK = 16, - NDA_NDM_FLAGS_MASK = 17, - __NDA_MAX = 18, -}; - -enum { - NFEA_UNSPEC = 0, - NFEA_ACTIVITY_NOTIFY = 1, - NFEA_DONT_REFRESH = 2, - __NFEA_MAX = 3, -}; - -enum { - FDB_NOTIFY_BIT = 1, - FDB_NOTIFY_INACTIVE_BIT = 2, -}; - -struct mac_addr { - unsigned char addr[6]; -}; - -typedef struct mac_addr mac_addr; - -struct net_bridge_fdb_key { - mac_addr addr; - u16 vlan_id; -}; - -struct net_bridge_fdb_entry { - struct rhash_head rhnode; - struct net_bridge_port *dst; - struct net_bridge_fdb_key key; - struct hlist_node fdb_node; - unsigned long flags; - long: 64; - long: 64; - unsigned long updated; - unsigned long used; - struct callback_head rcu; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct __una_u32 { - u32 x; -}; - -struct __fdb_entry { - __u8 mac_addr[6]; - __u8 port_no; - __u8 is_local; - __u32 ageing_timer_value; - __u8 port_hi; - __u8 pad0; - __u16 unused; -}; - -struct nda_cacheinfo { - __u32 ndm_confirmed; - __u32 ndm_used; - __u32 ndm_updated; - __u32 ndm_refcnt; -}; - -struct pci_raw_ops { - int (*read)(unsigned int, unsigned int, unsigned int, int, int, u32 *); - int (*write)(unsigned int, unsigned int, unsigned int, int, int, u32); -}; - -typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); - -typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); - -typedef void (*btf_trace_softirq_entry)(void *, unsigned int); - -typedef void (*btf_trace_softirq_exit)(void *, unsigned int); - -typedef void (*btf_trace_softirq_raise)(void *, unsigned int); - -struct tasklet_struct; - -typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); - -struct tasklet_struct { - struct tasklet_struct *next; - unsigned long state; - atomic_t count; - bool use_callback; - union { - void (*func)(unsigned long); - void (*callback)(struct tasklet_struct *); - }; - unsigned long data; -}; - -typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); - -struct softirq_action { - void (*action)(struct softirq_action *); -}; - -struct tasklet_head { - struct tasklet_struct *head; - struct tasklet_struct **tail; -}; - -struct smp_hotplug_thread { - struct task_struct * __attribute__((btf_type_tag("percpu"))) *store; - struct list_head list; - int (*thread_should_run)(unsigned int); - void (*thread_fn)(unsigned int); - void (*create)(unsigned int); - void (*setup)(unsigned int); - void (*cleanup)(unsigned int, bool); - void (*park)(unsigned int); - void (*unpark)(unsigned int); - bool selfparking; - const char *thread_comm; -}; - -enum { - HI_SOFTIRQ = 0, - TIMER_SOFTIRQ = 1, - NET_TX_SOFTIRQ = 2, - NET_RX_SOFTIRQ = 3, - BLOCK_SOFTIRQ = 4, - IRQ_POLL_SOFTIRQ = 5, - TASKLET_SOFTIRQ = 6, - SCHED_SOFTIRQ = 7, - HRTIMER_SOFTIRQ = 8, - RCU_SOFTIRQ = 9, - NR_SOFTIRQS = 10, -}; - -enum { - TASKLET_STATE_SCHED = 0, - TASKLET_STATE_RUN = 1, -}; - -struct trace_event_raw_irq_handler_entry { - struct trace_entry ent; - int irq; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_irq_handler_exit { - struct trace_entry ent; - int irq; - int ret; - char __data[0]; -}; - -struct trace_event_raw_softirq { - struct trace_entry ent; - unsigned int vec; - char __data[0]; -}; - -struct trace_event_raw_tasklet { - struct trace_entry ent; - void *tasklet; - void *func; - char __data[0]; -}; - -struct trace_event_data_offsets_irq_handler_entry { - u32 name; - const void *name_ptr_; -}; - -struct wait_bit_queue_entry { - struct wait_bit_key key; - struct wait_queue_entry wq_entry; -}; - -struct trace_event_data_offsets_irq_handler_exit {}; - -struct trace_event_data_offsets_softirq {}; - -struct trace_event_data_offsets_tasklet {}; - -struct snapshot_handle { - unsigned int cur; - void *buffer; - int sync_read; -}; - -struct snapshot_data { - struct snapshot_handle handle; - int swap; - int mode; - bool frozen; - bool ready; - bool platform_support; - bool free_bitmaps; - dev_t dev; -}; - -struct miscdevice { - int minor; - const char *name; - const struct file_operations *fops; - struct list_head list; - struct device *parent; - struct device *this_device; - const struct attribute_group **groups; - const char *nodename; - umode_t mode; -}; - -typedef int suspend_state_t; - -struct resume_swap_area { - __kernel_loff_t offset; - __u32 dev; -} __attribute__((packed)); - -struct __kernel_old_timeval { - __kernel_long_t tv_sec; - __kernel_long_t tv_usec; -}; - -struct __kernel_old_itimerval { - struct __kernel_old_timeval it_interval; - struct __kernel_old_timeval it_value; -}; - -typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); - -typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); - -typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); - -typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); - -typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int); - -typedef void (*btf_trace_rpm_status)(void *, struct device *, enum rpm_status); - -struct trace_event_raw_rpm_internal { - struct trace_entry ent; - u32 __data_loc_name; - int flags; - int usage_count; - int disable_depth; - int runtime_auto; - int request_pending; - int irq_safe; - int child_count; - char __data[0]; -}; - -struct trace_event_raw_rpm_return_int { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long ip; - int ret; - char __data[0]; -}; - -struct trace_event_raw_rpm_status { - struct trace_entry ent; - u32 __data_loc_name; - int status; - char __data[0]; -}; - -struct trace_event_data_offsets_rpm_internal { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_rpm_return_int { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_rpm_status { - u32 name; - const void *name_ptr_; -}; - -struct callchain_cpus_entries { - struct callback_head callback_head; - struct perf_callchain_entry *cpu_entries[0]; -}; - -enum perf_callchain_context { - PERF_CONTEXT_HV = 18446744073709551584ULL, - PERF_CONTEXT_KERNEL = 18446744073709551488ULL, - PERF_CONTEXT_USER = 18446744073709551104ULL, - PERF_CONTEXT_GUEST = 18446744073709549568ULL, - PERF_CONTEXT_GUEST_KERNEL = 18446744073709549440ULL, - PERF_CONTEXT_GUEST_USER = 18446744073709549056ULL, - PERF_CONTEXT_MAX = 18446744073709547521ULL, -}; - -struct perf_event_mmap_page; - -struct perf_buffer { - refcount_t refcount; - struct callback_head callback_head; - int nr_pages; - int overwrite; - int paused; - atomic_t poll; - local_t head; - unsigned int nest; - local_t events; - local_t wakeup; - local_t lost; - long watermark; - long aux_watermark; - spinlock_t event_lock; - struct list_head event_list; - atomic_t mmap_count; - unsigned long mmap_locked; - struct user_struct *mmap_user; - long aux_head; - unsigned int aux_nest; - long aux_wakeup; - unsigned long aux_pgoff; - int aux_nr_pages; - int aux_overwrite; - atomic_t aux_mmap_count; - unsigned long aux_mmap_locked; - void (*free_aux)(void *); - refcount_t aux_refcount; - int aux_in_sampling; - void **aux_pages; - void *aux_priv; - struct perf_event_mmap_page *user_page; - void *data_pages[0]; -}; - -struct perf_event_mmap_page { - __u32 version; - __u32 compat_version; - __u32 lock; - __u32 index; - __s64 offset; - __u64 time_enabled; - __u64 time_running; - union { - __u64 capabilities; - struct { - __u64 cap_bit0: 1; - __u64 cap_bit0_is_deprecated: 1; - __u64 cap_user_rdpmc: 1; - __u64 cap_user_time: 1; - __u64 cap_user_time_zero: 1; - __u64 cap_user_time_short: 1; - __u64 cap_____res: 58; - }; - }; - __u16 pmc_width; - __u16 time_shift; - __u32 time_mult; - __u64 time_offset; - __u64 time_zero; - __u32 size; - __u32 __reserved_1; - __u64 time_cycles; - __u64 time_mask; - __u8 __reserved[928]; - __u64 data_head; - __u64 data_tail; - __u64 data_offset; - __u64 data_size; - __u64 aux_head; - __u64 aux_tail; - __u64 aux_offset; - __u64 aux_size; -}; - -struct perf_callchain_entry_ctx { - struct perf_callchain_entry *entry; - u32 max_stack; - u32 nr; - short contexts; - bool contexts_maxed; -}; - -enum { - FOLL_WRITE = 1, - FOLL_GET = 2, - FOLL_DUMP = 4, - FOLL_FORCE = 8, - FOLL_NOWAIT = 16, - FOLL_NOFAULT = 32, - FOLL_HWPOISON = 64, - FOLL_ANON = 128, - FOLL_LONGTERM = 256, - FOLL_SPLIT_PMD = 512, - FOLL_PCI_P2PDMA = 1024, - FOLL_INTERRUPTIBLE = 2048, - FOLL_HONOR_NUMA_FAULT = 4096, -}; - -struct bh_lru { - struct buffer_head *bhs[16]; -}; - -struct bh_accounting { - int nr; - int ratelimit; -}; - -enum page_memcg_data_flags { - MEMCG_DATA_OBJCGS = 1, - MEMCG_DATA_KMEM = 2, - __NR_MEMCG_DATA_FLAGS = 4, -}; - -enum hk_type { - HK_TYPE_TIMER = 0, - HK_TYPE_RCU = 1, - HK_TYPE_MISC = 2, - HK_TYPE_SCHED = 3, - HK_TYPE_TICK = 4, - HK_TYPE_DOMAIN = 5, - HK_TYPE_WQ = 6, - HK_TYPE_MANAGED_IRQ = 7, - HK_TYPE_KTHREAD = 8, - HK_TYPE_MAX = 9, -}; - -struct postprocess_bh_ctx { - struct work_struct work; - struct buffer_head *bh; -}; - -struct iomap_folio_ops; - -struct iomap { - u64 addr; - loff_t offset; - u64 length; - u16 type; - u16 flags; - struct block_device *bdev; - struct dax_device *dax_dev; - void *inline_data; - void *private; - const struct iomap_folio_ops *folio_ops; - u64 validity_cookie; -}; - -struct iomap_iter; - -struct iomap_folio_ops { - struct folio * (*get_folio)(struct iomap_iter *, loff_t, unsigned int); - void (*put_folio)(struct inode *, loff_t, unsigned int, struct folio *); - bool (*iomap_valid)(struct inode *, const struct iomap *); -}; - -struct iomap_iter { - struct inode *inode; - loff_t pos; - u64 len; - s64 processed; - unsigned int flags; - struct iomap iomap; - struct iomap srcmap; - void *private; -}; - -typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); - -enum { - Opt_direct = 0, - Opt_fd = 1, - Opt_gid = 2, - Opt_ignore = 3, - Opt_indirect = 4, - Opt_maxproto = 5, - Opt_minproto = 6, - Opt_offset = 7, - Opt_pgrp = 8, - Opt_strictexpire = 9, - Opt_uid = 10, -}; - -struct autofs_fs_context { - kuid_t uid; - kgid_t gid; - int pgrp; - bool pgrp_set; -}; - -enum btrfs_inline_ref_type { - BTRFS_REF_TYPE_INVALID = 0, - BTRFS_REF_TYPE_BLOCK = 1, - BTRFS_REF_TYPE_DATA = 2, - BTRFS_REF_TYPE_ANY = 3, -}; - -enum { - ____TRANS_FREEZABLE_BIT = 0, - __TRANS_FREEZABLE = 1, - ____TRANS_FREEZABLE_SEQ = 0, - ____TRANS_START_BIT = 1, - __TRANS_START = 2, - ____TRANS_START_SEQ = 1, - ____TRANS_ATTACH_BIT = 2, - __TRANS_ATTACH = 4, - ____TRANS_ATTACH_SEQ = 2, - ____TRANS_JOIN_BIT = 3, - __TRANS_JOIN = 8, - ____TRANS_JOIN_SEQ = 3, - ____TRANS_JOIN_NOLOCK_BIT = 4, - __TRANS_JOIN_NOLOCK = 16, - ____TRANS_JOIN_NOLOCK_SEQ = 4, - ____TRANS_DUMMY_BIT = 5, - __TRANS_DUMMY = 32, - ____TRANS_DUMMY_SEQ = 5, - ____TRANS_JOIN_NOSTART_BIT = 6, - __TRANS_JOIN_NOSTART = 64, - ____TRANS_JOIN_NOSTART_SEQ = 6, -}; - -enum { - BTRFS_ROOT_IN_TRANS_SETUP = 0, - BTRFS_ROOT_SHAREABLE = 1, - BTRFS_ROOT_TRACK_DIRTY = 2, - BTRFS_ROOT_IN_RADIX = 3, - BTRFS_ROOT_ORPHAN_ITEM_INSERTED = 4, - BTRFS_ROOT_DEFRAG_RUNNING = 5, - BTRFS_ROOT_FORCE_COW = 6, - BTRFS_ROOT_MULTI_LOG_TASKS = 7, - BTRFS_ROOT_DIRTY = 8, - BTRFS_ROOT_DELETING = 9, - BTRFS_ROOT_DEAD_RELOC_TREE = 10, - BTRFS_ROOT_DEAD_TREE = 11, - BTRFS_ROOT_HAS_LOG_TREE = 12, - BTRFS_ROOT_QGROUP_FLUSHING = 13, - BTRFS_ROOT_ORPHAN_CLEANUP = 14, - BTRFS_ROOT_UNFINISHED_DROP = 15, - BTRFS_ROOT_RESET_LOCKDEP_CLASS = 16, -}; - -enum { - EXTENT_BUFFER_UPTODATE = 0, - EXTENT_BUFFER_DIRTY = 1, - EXTENT_BUFFER_CORRUPT = 2, - EXTENT_BUFFER_READAHEAD = 3, - EXTENT_BUFFER_TREE_REF = 4, - EXTENT_BUFFER_STALE = 5, - EXTENT_BUFFER_WRITEBACK = 6, - EXTENT_BUFFER_READ_ERR = 7, - EXTENT_BUFFER_UNMAPPED = 8, - EXTENT_BUFFER_IN_TREE = 9, - EXTENT_BUFFER_WRITE_ERR = 10, - EXTENT_BUFFER_ZONED_ZEROOUT = 11, - EXTENT_BUFFER_READING = 12, -}; - -struct btrfs_inode_extref { - __le64 parent_objectid; - __le64 index; - __le16 name_len; - __u8 name[0]; -} __attribute__((packed)); - -struct btrfs_inode_ref { - __le64 index; - __le16 name_len; -} __attribute__((packed)); - -struct btrfs_extent_item { - __le64 refs; - __le64 generation; - __le64 flags; -}; - -struct btrfs_tree_block_info { - struct btrfs_disk_key key; - __u8 level; -}; - -struct extent_inode_elem { - u64 inum; - u64 offset; - u64 num_bytes; - struct extent_inode_elem *next; -}; - -struct btrfs_extent_inline_ref { - __u8 type; - __le64 offset; -} __attribute__((packed)); - -struct btrfs_backref_node; - -struct btrfs_backref_edge { - struct list_head list[2]; - struct btrfs_backref_node *node[2]; -}; - -struct btrfs_backref_node { - struct { - struct rb_node rb_node; - u64 bytenr; - }; - u64 new_bytenr; - u64 owner; - struct list_head list; - struct list_head upper; - struct list_head lower; - struct btrfs_root *root; - struct extent_buffer *eb; - unsigned int level: 8; - unsigned int cowonly: 1; - unsigned int lowest: 1; - unsigned int locked: 1; - unsigned int processed: 1; - unsigned int checked: 1; - unsigned int pending: 1; - unsigned int detached: 1; - unsigned int is_reloc_root: 1; -}; - -struct prelim_ref { - struct rb_node rbnode; - u64 root_id; - struct btrfs_key key_for_search; - u8 level; - int count; - struct extent_inode_elem *inode_list; - u64 parent; - u64 wanted_disk_byte; -}; - -struct btrfs_shared_data_ref { - __le32 count; -}; - -struct btrfs_extent_data_ref { - __le64 root; - __le64 objectid; - __le64 offset; - __le32 count; -} __attribute__((packed)); - -struct rb_simple_node { - struct rb_node rb_node; - u64 bytenr; -}; - -struct btrfs_key_ptr { - struct btrfs_disk_key key; - __le64 blockptr; - __le64 generation; -} __attribute__((packed)); - -struct ulist_iterator { - struct list_head *cur_list; -}; - -struct ulist_node { - u64 val; - u64 aux; - struct list_head list; - struct rb_node rb_node; -}; - -struct preftree { - struct rb_root_cached root; - unsigned int count; -}; - -struct preftrees { - struct preftree direct; - struct preftree indirect; - struct preftree indirect_missing_keys; -}; - -struct btrfs_backref_share_check_ctx; - -struct share_check { - struct btrfs_backref_share_check_ctx *ctx; - struct btrfs_root *root; - u64 inum; - u64 data_bytenr; - u64 data_extent_gen; - int share_count; - int self_ref_count; - bool have_delayed_delete_refs; -}; - -struct btrfs_backref_shared_cache_entry { - u64 bytenr; - u64 gen; - bool is_shared; -}; - -struct btrfs_backref_share_check_ctx { - struct ulist refs; - u64 curr_leaf_bytenr; - u64 prev_leaf_bytenr; - struct btrfs_backref_shared_cache_entry path_cache_entries[8]; - bool use_path_cache; - struct { - u64 bytenr; - bool is_shared; - } prev_extents_cache[8]; - int prev_extents_cache_slot; -}; - -typedef int iterate_extent_inodes_t(u64, u64, u64, u64, void *); - -struct btrfs_backref_walk_ctx { - u64 bytenr; - u64 extent_item_pos; - bool ignore_extent_item_pos; - bool skip_inode_ref_list; - struct btrfs_trans_handle *trans; - struct btrfs_fs_info *fs_info; - u64 time_seq; - struct ulist *refs; - struct ulist *roots; - bool (*cache_lookup)(u64, void *, const u64 **, int *); - void (*cache_store)(u64, const struct ulist *, void *); - iterate_extent_inodes_t *indirect_ref_iterator; - int (*check_extent_item)(u64, const struct btrfs_extent_item *, const struct extent_buffer *, void *); - bool (*skip_data_ref)(u64, u64, u64, void *); - void *user_ctx; -}; - -struct btrfs_tree_parent_check { - u64 owner_root; - u64 transid; - struct btrfs_key first_key; - bool has_first_key; - u8 level; -}; - -struct btrfs_seq_list { - struct list_head list; - u64 seq; -}; - -struct btrfs_data_container; - -struct inode_fs_paths { - struct btrfs_path *btrfs_path; - struct btrfs_root *fs_root; - struct btrfs_data_container *fspath; -}; - -struct btrfs_data_container { - __u32 bytes_left; - __u32 bytes_missing; - __u32 elem_cnt; - __u32 elem_missed; - __u64 val[0]; -}; - -struct btrfs_backref_iter { - u64 bytenr; - struct btrfs_path *path; - struct btrfs_fs_info *fs_info; - struct btrfs_key cur_key; - u32 item_ptr; - u32 cur_ptr; - u32 end_ptr; -}; - -struct btrfs_backref_cache { - struct rb_root rb_root; - struct btrfs_backref_node *path[8]; - struct list_head pending[8]; - struct list_head leaves; - struct list_head changed; - struct list_head detached; - u64 last_trans; - int nr_nodes; - int nr_edges; - struct list_head pending_edge; - struct list_head useless_node; - struct btrfs_fs_info *fs_info; - bool is_reloc; -}; - -struct crypto_aead; - -struct aead_request; - -struct aead_alg { - int (*setkey)(struct crypto_aead *, const u8 *, unsigned int); - int (*setauthsize)(struct crypto_aead *, unsigned int); - int (*encrypt)(struct aead_request *); - int (*decrypt)(struct aead_request *); - int (*init)(struct crypto_aead *); - void (*exit)(struct crypto_aead *); - unsigned int ivsize; - unsigned int maxauthsize; - unsigned int chunksize; - struct crypto_alg base; -}; - -struct aead_instance { - void (*free)(struct aead_instance *); - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct aead_alg alg; - }; -}; - -struct crypto_aead { - unsigned int authsize; - unsigned int reqsize; - struct crypto_tfm base; -}; - -struct aead_request { - struct crypto_async_request base; - unsigned int assoclen; - unsigned int cryptlen; - u8 *iv; - struct scatterlist *src; - struct scatterlist *dst; - void *__ctx[0]; -}; - -struct shash_instance { - void (*free)(struct shash_instance *); - union { - struct { - char head[104]; - struct crypto_instance base; - } s; - struct shash_alg alg; - }; -}; - -struct crypto_aead_spawn { - struct crypto_spawn base; -}; - -struct crypto_ahash_spawn { - struct crypto_spawn base; -}; - -struct ccm_instance_ctx { - struct crypto_skcipher_spawn ctr; - struct crypto_ahash_spawn mac; -}; - -struct crypto_ahash { - bool using_shash; - unsigned int statesize; - unsigned int reqsize; - struct crypto_tfm base; -}; - -struct ahash_request { - struct crypto_async_request base; - unsigned int nbytes; - struct scatterlist *src; - u8 *result; - void *priv; - void *__ctx[0]; -}; - -struct crypto_ccm_req_priv_ctx { - u8 odata[16]; - u8 idata[16]; - u8 auth_tag[16]; - u32 flags; - struct scatterlist src[3]; - struct scatterlist dst[3]; - union { - struct ahash_request ahreq; - struct skcipher_request skreq; - }; -}; - -struct cbcmac_tfm_ctx { - struct crypto_cipher *child; -}; - -struct cbcmac_desc_ctx { - unsigned int len; - u8 dg[0]; -}; - -struct crypto_ccm_ctx { - struct crypto_ahash *mac; - struct crypto_skcipher *ctr; -}; - -struct crypto_rfc4309_ctx { - struct crypto_aead *child; - u8 nonce[3]; -}; - -struct crypto_rfc4309_req_ctx { - struct scatterlist src[3]; - struct scatterlist dst[3]; - struct aead_request subreq; -}; - -struct io_issue_def { - unsigned int needs_file: 1; - unsigned int plug: 1; - unsigned int hash_reg_file: 1; - unsigned int unbound_nonreg_file: 1; - unsigned int pollin: 1; - unsigned int pollout: 1; - unsigned int poll_exclusive: 1; - unsigned int buffer_select: 1; - unsigned int not_supported: 1; - unsigned int audit_skip: 1; - unsigned int ioprio: 1; - unsigned int iopoll: 1; - unsigned int iopoll_queue: 1; - unsigned int manual_alloc: 1; - unsigned int vectored: 1; - int (*issue)(struct io_kiocb *, unsigned int); - int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); -}; - -struct io_cache_entry { - struct io_wq_work_node node; -}; - -struct io_rsrc_put { - u64 tag; - union { - void *rsrc; - struct file *file; - struct io_mapped_ubuf *buf; - }; -}; - -struct io_rsrc_node { - union { - struct io_cache_entry cache; - struct io_ring_ctx *ctx; - }; - int refs; - bool empty; - u16 type; - struct list_head node; - struct io_rsrc_put item; -}; - -struct io_mapped_ubuf { - u64 ubuf; - u64 ubuf_end; - unsigned int nr_bvecs; - unsigned long acct_pages; - struct bio_vec bvec[0]; -}; - -struct io_uring_buf_ring; - -struct io_buffer_list { - union { - struct list_head buf_list; - struct { - struct page **buf_pages; - struct io_uring_buf_ring *buf_ring; - }; - struct callback_head rcu; - }; - __u16 bgid; - __u16 buf_nr_pages; - __u16 nr_entries; - __u16 head; - __u16 mask; - __u8 is_buf_ring; - __u8 is_mmap; - __u8 is_ready; -}; - -struct io_uring_buf { - __u64 addr; - __u32 len; - __u16 bid; - __u16 resv; -}; - -struct io_uring_buf_ring { - union { - struct { - __u64 resv1; - __u32 resv2; - __u16 resv3; - __u16 tail; - }; - struct { - struct {} __empty_bufs; - struct io_uring_buf bufs[0]; - }; - }; -}; - -struct io_sq_data { - refcount_t refs; - atomic_t park_pending; - struct mutex lock; - struct list_head ctx_list; - struct task_struct *thread; - struct wait_queue_head wait; - unsigned int sq_thread_idle; - int sq_cpu; - pid_t task_pid; - pid_t task_tgid; - u64 work_time; - unsigned long state; - struct completion exited; -}; - -struct io_rsrc_data { - struct io_ring_ctx *ctx; - u64 **tags; - unsigned int nr; - u16 rsrc_type; - bool quiesce; -}; - -struct io_buffer { - struct list_head list; - __u64 addr; - __u32 len; - __u16 bid; - __u16 bgid; -}; +typedef void (*btf_trace_cfg80211_control_port_tx_status)(void *, struct wireless_dev *, u64, bool); -struct io_poll { - struct file *file; - struct wait_queue_head *head; - __poll_t events; - int retries; - struct wait_queue_entry wait; -}; - -struct async_poll { - union { - struct io_poll poll; - struct io_cache_entry cache; - }; - struct io_poll *double_poll; -}; - -struct io_cold_def { - unsigned short async_size; - const char *name; - int (*prep_async)(struct io_kiocb *); - void (*cleanup)(struct io_kiocb *); - void (*fail)(struct io_kiocb *); -}; - -enum io_uring_op { - IORING_OP_NOP = 0, - IORING_OP_READV = 1, - IORING_OP_WRITEV = 2, - IORING_OP_FSYNC = 3, - IORING_OP_READ_FIXED = 4, - IORING_OP_WRITE_FIXED = 5, - IORING_OP_POLL_ADD = 6, - IORING_OP_POLL_REMOVE = 7, - IORING_OP_SYNC_FILE_RANGE = 8, - IORING_OP_SENDMSG = 9, - IORING_OP_RECVMSG = 10, - IORING_OP_TIMEOUT = 11, - IORING_OP_TIMEOUT_REMOVE = 12, - IORING_OP_ACCEPT = 13, - IORING_OP_ASYNC_CANCEL = 14, - IORING_OP_LINK_TIMEOUT = 15, - IORING_OP_CONNECT = 16, - IORING_OP_FALLOCATE = 17, - IORING_OP_OPENAT = 18, - IORING_OP_CLOSE = 19, - IORING_OP_FILES_UPDATE = 20, - IORING_OP_STATX = 21, - IORING_OP_READ = 22, - IORING_OP_WRITE = 23, - IORING_OP_FADVISE = 24, - IORING_OP_MADVISE = 25, - IORING_OP_SEND = 26, - IORING_OP_RECV = 27, - IORING_OP_OPENAT2 = 28, - IORING_OP_EPOLL_CTL = 29, - IORING_OP_SPLICE = 30, - IORING_OP_PROVIDE_BUFFERS = 31, - IORING_OP_REMOVE_BUFFERS = 32, - IORING_OP_TEE = 33, - IORING_OP_SHUTDOWN = 34, - IORING_OP_RENAMEAT = 35, - IORING_OP_UNLINKAT = 36, - IORING_OP_MKDIRAT = 37, - IORING_OP_SYMLINKAT = 38, - IORING_OP_LINKAT = 39, - IORING_OP_MSG_RING = 40, - IORING_OP_FSETXATTR = 41, - IORING_OP_SETXATTR = 42, - IORING_OP_FGETXATTR = 43, - IORING_OP_GETXATTR = 44, - IORING_OP_SOCKET = 45, - IORING_OP_URING_CMD = 46, - IORING_OP_SEND_ZC = 47, - IORING_OP_SENDMSG_ZC = 48, - IORING_OP_READ_MULTISHOT = 49, - IORING_OP_WAITID = 50, - IORING_OP_FUTEX_WAIT = 51, - IORING_OP_FUTEX_WAKE = 52, - IORING_OP_FUTEX_WAITV = 53, - IORING_OP_FIXED_FD_INSTALL = 54, - IORING_OP_FTRUNCATE = 55, - IORING_OP_LAST = 56, -}; - -typedef unsigned int FSE_DTable; - -typedef struct { - U16 tableLog; - U16 fastMode; -} FSE_DTableHeader; - -typedef struct { - unsigned short newState; - unsigned char symbol; - unsigned char nbBits; -} FSE_decode_t; - -typedef struct { - short ncount[256]; - FSE_DTable dtable[0]; -} FSE_DecompressWksp; - -typedef struct { - size_t bitContainer; - unsigned int bitsConsumed; - const char *ptr; - const char *start; - const char *limitPtr; -} BIT_DStream_t; - -typedef struct { - size_t state; - const void *table; -} FSE_DState_t; - -typedef enum { - BIT_DStream_unfinished = 0, - BIT_DStream_endOfBuffer = 1, - BIT_DStream_completed = 2, - BIT_DStream_overflow = 3, -} BIT_DStream_status; - -struct raid6_recov_calls { - void (*data2)(int, size_t, int, int, void **); - void (*datap)(int, size_t, int, void **); - int (*valid)(); - const char *name; - int priority; -}; - -struct raid6_calls { - void (*gen_syndrome)(int, size_t, void **); - void (*xor_syndrome)(int, int, int, size_t, void **); - int (*valid)(); - const char *name; - int priority; -}; - -typedef u64 unative_t; - -struct raid6_avx512_constants { - u64 x1d[8]; -}; - -typedef void (*btf_trace_read_msr)(void *, unsigned int, u64, int); - -typedef void (*btf_trace_write_msr)(void *, unsigned int, u64, int); - -typedef void (*btf_trace_rdpmc)(void *, unsigned int, u64, int); - -struct msr { - union { - struct { - u32 l; - u32 h; - }; - u64 q; - }; -}; - -struct trace_event_raw_msr_trace_class { - struct trace_entry ent; - unsigned int msr; - u64 val; - int failed; - char __data[0]; -}; - -struct trace_event_data_offsets_msr_trace_class {}; - -struct acpi_object_list { - u32 count; - union acpi_object *pointer; -}; - -struct klist_node; - -struct klist { - spinlock_t k_lock; - struct list_head k_list; - void (*get)(struct klist_node *); - void (*put)(struct klist_node *); -}; - -struct klist_node { - void *n_klist; - struct list_head n_node; - struct kref n_ref; -}; - -struct device_private { - struct klist klist_children; - struct klist_node knode_parent; - struct klist_node knode_driver; - struct klist_node knode_bus; - struct klist_node knode_class; - struct list_head deferred_probe; - struct device_driver *async_driver; - char *deferred_probe_reason; - struct device *device; - u8 dead: 1; -}; - -struct driver_private { - struct kobject kobj; - struct klist klist_devices; - struct klist_node knode_bus; - struct module_kobject *mkobj; - struct device_driver *driver; -}; - -struct transport_container; - -struct transport_class { - struct class class; - int (*setup)(struct transport_container *, struct device *, struct device *); - int (*configure)(struct transport_container *, struct device *, struct device *); - int (*remove)(struct transport_container *, struct device *, struct device *); -}; - -struct attribute_container { - struct list_head node; - struct klist containers; - struct class *class; - const struct attribute_group *grp; - struct device_attribute **attrs; - int (*match)(struct attribute_container *, struct device *); - unsigned long flags; -}; - -struct transport_container { - struct attribute_container ac; - const struct attribute_group *statistics; -}; - -enum spi_signal_type { - SPI_SIGNAL_UNKNOWN = 1, - SPI_SIGNAL_SE = 2, - SPI_SIGNAL_LVD = 3, - SPI_SIGNAL_HVD = 4, -}; - -struct anon_transport_class { - struct transport_class tclass; - struct attribute_container container; -}; - -enum scsi_msg_byte { - COMMAND_COMPLETE = 0, - EXTENDED_MESSAGE = 1, - SAVE_POINTERS = 2, - RESTORE_POINTERS = 3, - DISCONNECT = 4, - INITIATOR_ERROR = 5, - ABORT_TASK_SET = 6, - MESSAGE_REJECT = 7, - NOP = 8, - MSG_PARITY_ERROR = 9, - LINKED_CMD_COMPLETE = 10, - LINKED_FLG_CMD_COMPLETE = 11, - TARGET_RESET = 12, - ABORT_TASK = 13, - CLEAR_TASK_SET = 14, - INITIATE_RECOVERY = 15, - RELEASE_RECOVERY = 16, - TERMINATE_IO_PROC = 17, - CLEAR_ACA = 22, - LOGICAL_UNIT_RESET = 23, - SIMPLE_QUEUE_TAG = 32, - HEAD_OF_QUEUE_TAG = 33, - ORDERED_QUEUE_TAG = 34, - IGNORE_WIDE_RESIDUE = 35, - ACA = 36, - QAS_REQUEST = 85, - BUS_DEVICE_RESET = 12, - ABORT = 6, -}; - -enum scsi_devinfo_key { - SCSI_DEVINFO_GLOBAL = 0, - SCSI_DEVINFO_SPI = 1, -}; - -enum spi_compare_returns { - SPI_COMPARE_SUCCESS = 0, - SPI_COMPARE_FAILURE = 1, - SPI_COMPARE_SKIP_TEST = 2, -}; - -enum { - BLK_MQ_REQ_NOWAIT = 1, - BLK_MQ_REQ_RESERVED = 2, - BLK_MQ_REQ_PM = 4, -}; - -enum { - SPI_BLIST_NOIUS = 1, -}; - -struct spi_transport_attrs { - int period; - int min_period; - int offset; - int max_offset; - unsigned int width: 1; - unsigned int max_width: 1; - unsigned int iu: 1; - unsigned int max_iu: 1; - unsigned int dt: 1; - unsigned int qas: 1; - unsigned int max_qas: 1; - unsigned int wr_flow: 1; - unsigned int rd_strm: 1; - unsigned int rti: 1; - unsigned int pcomp_en: 1; - unsigned int hold_mcs: 1; - unsigned int initial_dv: 1; - unsigned long flags; - unsigned int support_sync: 1; - unsigned int support_wide: 1; - unsigned int support_dt: 1; - unsigned int support_dt_only; - unsigned int support_ius; - unsigned int support_qas; - unsigned int dv_pending: 1; - unsigned int dv_in_progress: 1; - struct mutex dv_mutex; -}; - -struct scsi_transport_template { - struct transport_container host_attrs; - struct transport_container target_attrs; - struct transport_container device_attrs; - int (*user_scan)(struct Scsi_Host *, uint, uint, u64); - int device_size; - int device_private_offset; - int target_size; - int target_private_offset; - int host_size; - unsigned int create_work_queue: 1; - void (*eh_strategy_handler)(struct Scsi_Host *); -}; - -struct spi_function_template; - -struct spi_internal { - struct scsi_transport_template t; - struct spi_function_template *f; -}; - -struct spi_function_template { - void (*get_period)(struct scsi_target *); - void (*set_period)(struct scsi_target *, int); - void (*get_offset)(struct scsi_target *); - void (*set_offset)(struct scsi_target *, int); - void (*get_width)(struct scsi_target *); - void (*set_width)(struct scsi_target *, int); - void (*get_iu)(struct scsi_target *); - void (*set_iu)(struct scsi_target *, int); - void (*get_dt)(struct scsi_target *); - void (*set_dt)(struct scsi_target *, int); - void (*get_qas)(struct scsi_target *); - void (*set_qas)(struct scsi_target *, int); - void (*get_wr_flow)(struct scsi_target *); - void (*set_wr_flow)(struct scsi_target *, int); - void (*get_rd_strm)(struct scsi_target *); - void (*set_rd_strm)(struct scsi_target *, int); - void (*get_rti)(struct scsi_target *); - void (*set_rti)(struct scsi_target *, int); - void (*get_pcomp_en)(struct scsi_target *); - void (*set_pcomp_en)(struct scsi_target *, int); - void (*get_hold_mcs)(struct scsi_target *); - void (*set_hold_mcs)(struct scsi_target *, int); - void (*get_signalling)(struct Scsi_Host *); - void (*set_signalling)(struct Scsi_Host *, enum spi_signal_type); - int (*deny_binding)(struct scsi_target *); - unsigned long show_period: 1; - unsigned long show_offset: 1; - unsigned long show_width: 1; - unsigned long show_iu: 1; - unsigned long show_dt: 1; - unsigned long show_qas: 1; - unsigned long show_wr_flow: 1; - unsigned long show_rd_strm: 1; - unsigned long show_rti: 1; - unsigned long show_pcomp_en: 1; - unsigned long show_hold_mcs: 1; -}; - -struct spi_host_attrs { - enum spi_signal_type signalling; -}; - -struct work_queue_wrapper { - struct work_struct work; - struct scsi_device *sdev; -}; - -struct scsi_sense_hdr { - u8 response_code; - u8 sense_key; - u8 asc; - u8 ascq; - u8 byte4; - u8 byte5; - u8 byte6; - u8 additional_length; -}; - -struct scsi_failure { - int result; - u8 sense; - u8 asc; - u8 ascq; - s8 allowed; - s8 retries; -}; - -struct scsi_failures { - int total_allowed; - int total_retries; - struct scsi_failure *failure_definitions; -}; - -struct scsi_exec_args { - unsigned char *sense; - unsigned int sense_len; - struct scsi_sense_hdr *sshdr; - blk_mq_req_flags_t req_flags; - int scmd_flags; - int *resid; - struct scsi_failures *failures; -}; - -enum iwl_phy_db_section_type { - IWL_PHY_DB_CFG = 1, - IWL_PHY_DB_CALIB_NCH = 2, - IWL_PHY_DB_UNUSED = 3, - IWL_PHY_DB_CALIB_CHG_PAPD = 4, - IWL_PHY_DB_CALIB_CHG_TXP = 5, - IWL_PHY_DB_MAX = 6, -}; - -enum iwl_hcmd_dataflag { - IWL_HCMD_DFL_NOCOPY = 1, - IWL_HCMD_DFL_DUP = 2, -}; - -struct iwl_calib_res_notif_phy_db { - __le16 type; - __le16 length; - u8 data[0]; -}; - -struct iwl_phy_db_entry { - u16 size; - u8 *data; -}; - -struct iwl_phy_db { - struct iwl_phy_db_entry cfg; - struct iwl_phy_db_entry calib_nch; - int n_group_papd; - struct iwl_phy_db_entry *calib_ch_group_papd; - int n_group_txp; - struct iwl_phy_db_entry *calib_ch_group_txp; - struct iwl_trans *trans; -}; - -struct iwl_phy_db_cmd { - __le16 type; - __le16 length; - u8 data[0]; -}; - -enum rs_column_mode { - RS_INVALID = 0, - RS_LEGACY = 1, - RS_SISO = 2, - RS_MIMO2 = 3, -}; - -enum rs_column { - RS_COLUMN_LEGACY_ANT_A = 0, - RS_COLUMN_LEGACY_ANT_B = 1, - RS_COLUMN_SISO_ANT_A = 2, - RS_COLUMN_SISO_ANT_B = 3, - RS_COLUMN_SISO_ANT_A_SGI = 4, - RS_COLUMN_SISO_ANT_B_SGI = 5, - RS_COLUMN_MIMO2 = 6, - RS_COLUMN_MIMO2_SGI = 7, - RS_COLUMN_LAST = 7, - RS_COLUMN_COUNT = 8, - RS_COLUMN_INVALID = 9, -}; - -struct iwl_mvm; - -struct rs_rate; - -struct rs_tx_column; - -typedef bool (*allow_column_func_t)(struct iwl_mvm *, struct ieee80211_sta *, struct rs_rate *, const struct rs_tx_column *); - -struct rs_tx_column { - enum rs_column_mode mode; - u8 ant; - bool sgi; - enum rs_column next_columns[7]; - allow_column_func_t checks[3]; -}; - -struct mvm_statistics_rx_phy_v2 { - __le32 ina_cnt; - __le32 fina_cnt; - __le32 plcp_err; - __le32 crc32_err; - __le32 overrun_err; - __le32 early_overrun_err; - __le32 crc32_good; - __le32 false_alarm_cnt; - __le32 fina_sync_err_cnt; - __le32 sfd_timeout; - __le32 fina_timeout; - __le32 unresponded_rts; - __le32 rxe_frame_lmt_overrun; - __le32 sent_ack_cnt; - __le32 sent_cts_cnt; - __le32 sent_ba_rsp_cnt; - __le32 dsp_self_kill; - __le32 mh_format_err; - __le32 re_acq_main_rssi_sum; - __le32 reserved; -}; - -struct mvm_statistics_rx_non_phy_v3 { - __le32 bogus_cts; - __le32 bogus_ack; - __le32 non_bssid_frames; - __le32 filtered_frames; - __le32 non_channel_beacons; - __le32 channel_beacons; - __le32 num_missed_bcon; - __le32 adc_rx_saturation_time; - __le32 ina_detection_search_time; - __le32 beacon_silence_rssi_a; - __le32 beacon_silence_rssi_b; - __le32 beacon_silence_rssi_c; - __le32 interference_data_flag; - __le32 channel_load; - __le32 dsp_false_alarms; - __le32 beacon_rssi_a; - __le32 beacon_rssi_b; - __le32 beacon_rssi_c; - __le32 beacon_energy_a; - __le32 beacon_energy_b; - __le32 beacon_energy_c; - __le32 num_bt_kills; - __le32 mac_id; - __le32 directed_data_mpdu; -}; - -struct mvm_statistics_rx_ht_phy_v1 { - __le32 plcp_err; - __le32 overrun_err; - __le32 early_overrun_err; - __le32 crc32_good; - __le32 crc32_err; - __le32 mh_format_err; - __le32 agg_crc32_good; - __le32 agg_mpdu_cnt; - __le32 agg_cnt; - __le32 unsupport_mcs; -}; - -struct mvm_statistics_rx_v3 { - struct mvm_statistics_rx_phy_v2 ofdm; - struct mvm_statistics_rx_phy_v2 cck; - struct mvm_statistics_rx_non_phy_v3 general; - struct mvm_statistics_rx_ht_phy_v1 ofdm_ht; -}; - -struct mvm_statistics_rx_phy { - __le32 unresponded_rts; - __le32 rxe_frame_lmt_overrun; - __le32 sent_ba_rsp_cnt; - __le32 dsp_self_kill; - __le32 reserved; -}; - -struct mvm_statistics_rx_non_phy { - __le32 bogus_cts; - __le32 bogus_ack; - __le32 non_channel_beacons; - __le32 channel_beacons; - __le32 num_missed_bcon; - __le32 adc_rx_saturation_time; - __le32 ina_detection_search_time; - __le32 beacon_silence_rssi_a; - __le32 beacon_silence_rssi_b; - __le32 beacon_silence_rssi_c; - __le32 interference_data_flag; - __le32 channel_load; - __le32 beacon_rssi_a; - __le32 beacon_rssi_b; - __le32 beacon_rssi_c; - __le32 beacon_energy_a; - __le32 beacon_energy_b; - __le32 beacon_energy_c; - __le32 num_bt_kills; - __le32 mac_id; -}; - -struct mvm_statistics_rx_ht_phy { - __le32 mh_format_err; - __le32 agg_mpdu_cnt; - __le32 agg_cnt; - __le32 unsupport_mcs; -}; - -struct mvm_statistics_rx { - struct mvm_statistics_rx_phy ofdm; - struct mvm_statistics_rx_phy cck; - struct mvm_statistics_rx_non_phy general; - struct mvm_statistics_rx_ht_phy ofdm_ht; -}; - -enum iwl_mvm_queue_status { - IWL_MVM_QUEUE_FREE = 0, - IWL_MVM_QUEUE_RESERVED = 1, - IWL_MVM_QUEUE_READY = 2, - IWL_MVM_QUEUE_SHARED = 3, -}; - -struct iwl_mvm_dqa_txq_info { - u8 ra_sta_id; - bool reserved; - u8 mac80211_ac; - u8 txq_tid; - u16 tid_bitmap; - unsigned long last_frame_time[9]; - enum iwl_mvm_queue_status status; -}; - -struct iwl_mvm_tvqm_txq_info { - u8 sta_id; - u8 txq_tid; -}; - -enum iwl_mvm_tdls_cs_state { - IWL_MVM_TDLS_SW_IDLE = 0, - IWL_MVM_TDLS_SW_REQ_SENT = 1, - IWL_MVM_TDLS_SW_RESP_RCVD = 2, - IWL_MVM_TDLS_SW_REQ_RCVD = 3, - IWL_MVM_TDLS_SW_ACTIVE = 4, -}; +typedef void (*btf_trace_cfg80211_rx_control_port)(void *, struct net_device *, struct sk_buff *, bool, int); -struct iwl_nvm_section { - u16 length; - const u8 *data; -}; - -struct iwl_rx_phy_info { - u8 non_cfg_phy_cnt; - u8 cfg_phy_cnt; - u8 stat_id; - u8 reserved1; - __le32 system_timestamp; - __le64 timestamp; - __le32 beacon_time_stamp; - __le16 phy_flags; - __le16 channel; - __le32 non_cfg_phy[8]; - __le32 rate_n_flags; - __le32 byte_count; - u8 mac_active_msk; - u8 mac_context_info; - __le16 frame_time; -} __attribute__((packed)); - -enum iwl_mvm_scan_type { - IWL_SCAN_TYPE_NOT_SET = 0, - IWL_SCAN_TYPE_UNASSOC = 1, - IWL_SCAN_TYPE_WILD = 2, - IWL_SCAN_TYPE_MILD = 3, - IWL_SCAN_TYPE_FRAGMENTED = 4, - IWL_SCAN_TYPE_FAST_BALANCE = 5, -}; - -enum iwl_mvm_sched_scan_pass_all_states { - SCHED_SCAN_PASS_ALL_DISABLED = 0, - SCHED_SCAN_PASS_ALL_ENABLED = 1, - SCHED_SCAN_PASS_ALL_FOUND = 2, -}; - -struct iwl_mvm_int_sta { - u32 sta_id; - u8 type; - u32 tfd_queue_msk; -}; - -enum iwl_sf_state { - SF_LONG_DELAY_ON = 0, - SF_FULL_ON = 1, - SF_UNINIT = 2, - SF_INIT_OFF = 3, - SF_HW_NUM_STATES = 4, -}; - -struct iwl_mvm_phy_ctxt { - u16 id; - u16 color; - u32 ref; - enum nl80211_chan_width width; - struct ieee80211_channel *channel; - u32 center_freq1; - bool rlc_disabled; - u32 channel_load_by_us; -}; - -struct iwl_bt_coex_profile_notif { - __le32 mbox_msg[4]; - __le32 msg_idx; - __le32 bt_ci_compliance; - __le32 primary_ch_lut; - __le32 secondary_ch_lut; - __le32 bt_activity_grading; - u8 ttc_status; - u8 rrc_status; - u8 wifi_loss_low_rssi; - u8 wifi_loss_mid_high_rssi; -}; - -struct iwl_bt_coex_ci_cmd { - __le64 bt_primary_ci; - __le32 primary_ch_phy_id; - __le64 bt_secondary_ci; - __le32 secondary_ch_phy_id; -} __attribute__((packed)); - -enum iwl_bt_force_ant_mode { - BT_FORCE_ANT_DIS = 0, - BT_FORCE_ANT_AUTO = 1, - BT_FORCE_ANT_BT = 2, - BT_FORCE_ANT_WIFI = 3, - BT_FORCE_ANT_MAX = 4, -}; - -struct iwl_mvm_tt_mgmt { - struct delayed_work ct_kill_exit; - bool dynamic_smps; - u32 tx_backoff; - u32 min_backoff; - struct iwl_tt_params params; - bool throttle; -}; - -struct iwl_mvm_thermal_device { - struct thermal_trip trips[8]; - struct thermal_zone_device *tzone; -}; - -struct iwl_mvm_cooling_device { - u32 cur_state; - struct thermal_cooling_device *cdev; -}; - -struct ewma_rate { - unsigned long internal; -}; - -struct iwl_mvm_tcm_mac { - struct { - u32 pkts[4]; - u32 airtime; - } tx; - struct { - u32 pkts[4]; - u32 airtime; - u32 last_ampdu_ref; - } rx; - struct { - u64 rx_bytes; - struct ewma_rate rate; - bool detected; - } uapsd_nonagg_detect; - bool opened_rx_ba_sessions; -}; - -enum iwl_mvm_traffic_load { - IWL_MVM_TRAFFIC_LOW = 0, - IWL_MVM_TRAFFIC_MEDIUM = 1, - IWL_MVM_TRAFFIC_HIGH = 2, -}; - -struct iwl_mvm_tcm { - struct delayed_work work; - spinlock_t lock; - unsigned long ts; - unsigned long ll_ts; - unsigned long uapsd_nonagg_ts; - bool paused; - struct iwl_mvm_tcm_mac data[4]; - struct { - u32 elapsed; - u32 airtime[4]; - enum iwl_mvm_traffic_load load[4]; - enum iwl_mvm_traffic_load band_load[6]; - enum iwl_mvm_traffic_load global_load; - bool low_latency[4]; - bool change[4]; - } result; -}; - -struct iwl_time_quota_data { - __le32 id_and_color; - __le32 quota; - __le32 max_duration; - __le32 low_latency; -}; - -struct iwl_time_quota_cmd { - struct iwl_time_quota_data quotas[4]; -}; - -enum iwl_mcc_source { - MCC_SOURCE_OLD_FW = 0, - MCC_SOURCE_ME = 1, - MCC_SOURCE_BIOS = 2, - MCC_SOURCE_3G_LTE_HOST = 3, - MCC_SOURCE_3G_LTE_DEVICE = 4, - MCC_SOURCE_WIFI = 5, - MCC_SOURCE_RESERVED = 6, - MCC_SOURCE_DEFAULT = 7, - MCC_SOURCE_UNINITIALIZED = 8, - MCC_SOURCE_MCC_API = 9, - MCC_SOURCE_GET_CURRENT = 16, - MCC_SOURCE_GETTING_MCC_TEST_MODE = 17, -}; - -enum ptp_pin_function { - PTP_PF_NONE = 0, - PTP_PF_EXTTS = 1, - PTP_PF_PEROUT = 2, - PTP_PF_PHYSYNC = 3, -}; - -struct ptp_pin_desc; - -struct ptp_system_timestamp; - -struct system_device_crosststamp; - -struct ptp_clock_request; - -struct ptp_clock_info { - struct module *owner; - char name[32]; - s32 max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int n_pins; - int pps; - struct ptp_pin_desc *pin_config; - int (*adjfine)(struct ptp_clock_info *, long); - int (*adjphase)(struct ptp_clock_info *, s32); - s32 (*getmaxphase)(struct ptp_clock_info *); - int (*adjtime)(struct ptp_clock_info *, s64); - int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); - int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); - int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); - int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); - int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); - long (*do_aux_work)(struct ptp_clock_info *); -}; - -struct ptp_clock; - -struct ptp_data { - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct delayed_work dwork; - u32 last_gp2; - u32 wrap_counter; - u32 scale_update_gp2; - u64 scale_update_adj_time_ns; - u64 scaled_freq; - s64 delta; -}; - -struct iwl_phy_specific_cfg { - __le32 filter_cfg_chains[4]; -}; - -struct iwl_time_sync_data { - struct sk_buff_head frame_list; - u8 peer_addr[6]; - bool active; -}; - -struct iwl_mei_scan_filter { - bool is_mei_limited_scan; - struct sk_buff_head scan_res; - struct work_struct scan_work; -}; - -struct iwl_mvm_vif; - -struct iwl_mei_nvm; - -struct iwl_mvm_csme_conn_info; - -struct iwl_mcast_filter_cmd; - -struct iwl_mvm_baid_data; - -struct iwl_mvm { - struct device *dev; - struct iwl_trans *trans; - const struct iwl_fw *fw; - const struct iwl_cfg *cfg; - struct iwl_phy_db *phy_db; - struct ieee80211_hw *hw; - struct mutex mutex; - struct list_head async_handlers_list; - spinlock_t async_handlers_lock; - struct work_struct async_handlers_wk; - struct wiphy_work async_handlers_wiphy_wk; - struct work_struct roc_done_wk; - unsigned long init_status; - unsigned long status; - u32 queue_sync_cookie; - long: 0; - unsigned long queue_sync_state; - struct iwl_mvm_vif *bf_allowed_vif; - bool hw_registered; - bool rfkill_safe_init_done; - u8 cca_40mhz_workaround; - int: 0; - u32 ampdu_ref; - bool ampdu_toggle; - long: 0; - struct iwl_notif_wait_data notif_wait; - union { - struct mvm_statistics_rx_v3 rx_stats_v3; - struct mvm_statistics_rx rx_stats; - }; - struct { - u64 rx_time; - u64 tx_time; - u64 on_time_rf; - u64 on_time_scan; - } radio_stats; - struct { - u64 rx_time; - u64 tx_time; - u64 on_time_rf; - u64 on_time_scan; - } accu_radio_stats; - struct list_head add_stream_txqs; - union { - struct iwl_mvm_dqa_txq_info queue_info[32]; - struct iwl_mvm_tvqm_txq_info tvqm_info[512]; - }; - struct work_struct add_stream_wk; - spinlock_t add_stream_lock; - const char *nvm_file_name; - struct iwl_nvm_data *nvm_data; - struct iwl_mei_nvm *mei_nvm_data; - struct iwl_mvm_csme_conn_info __attribute__((btf_type_tag("rcu"))) *csme_conn_info; - bool mei_rfkill_blocked; - bool mei_registered; - long: 0; - struct work_struct sap_connected_wk; - struct iwl_nvm_data *temp_nvm_data; - struct iwl_nvm_section nvm_sections[13]; - struct iwl_fw_runtime fwrt; - struct mac_address addresses[5]; - struct iwl_rx_phy_info last_phy_info; - long: 0; - struct ieee80211_sta __attribute__((btf_type_tag("rcu"))) *fw_id_to_mac_id[16]; - struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *fw_id_to_link_sta[16]; - unsigned long fw_link_ids_map; - u8 rx_ba_sessions; - int: 0; - u32 rts_threshold; - unsigned int scan_status; - long: 0; - size_t scan_cmd_size; - void *scan_cmd; - struct iwl_mcast_filter_cmd *mcast_filter_cmd; - enum iwl_mvm_scan_type scan_type; - enum iwl_mvm_scan_type hb_scan_type; - enum iwl_mvm_sched_scan_pass_all_states sched_scan_pass_all; - long: 0; - struct delayed_work scan_timeout_dwork; - unsigned int max_scans; - u32 scan_uid_status[4]; - long: 0; - u64 scan_start; - struct iwl_mvm_vif *scan_vif; - u8 scan_link_id; - u8 scan_rx_ant; - int: 0; - struct iwl_mvm_int_sta aux_sta; - struct iwl_mvm_int_sta snif_sta; - bool last_ebs_successful; - u8 scan_last_antenna_idx; - u8 mgmt_last_antenna_idx; - u8 set_tx_ant; - u8 set_rx_ant; - int: 0; - enum iwl_sf_state sf_state; - struct dentry *debugfs_dir; - struct iwl_mvm_phy_ctxt phy_ctxts[3]; - struct list_head time_event_list; - spinlock_t time_event_lock; - unsigned long fw_key_table[1]; - u8 fw_key_deleted[16]; - struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *vif_id_to_mac[4]; - struct ieee80211_bss_conf __attribute__((btf_type_tag("rcu"))) *link_id_to_link_conf[4]; - s8 fw_restart; - long: 0; - u8 *error_recovery_buf; - struct ieee80211_vif *p2p_device_vif; - struct wiphy_wowlan_support wowlan; - int gtk_ivlen; - int gtk_icvlen; - int ptk_ivlen; - int ptk_icvlen; - struct ieee80211_scan_ies nd_ies; - struct cfg80211_match_set *nd_match_sets; - int n_nd_match_sets; - long: 0; - struct ieee80211_channel **nd_channels; - int n_nd_channels; - bool net_detect; - u8 offload_tid; - long: 0; - wait_queue_head_t rx_sync_waitq; - struct iwl_bt_coex_profile_notif last_bt_notif; - struct iwl_bt_coex_ci_cmd last_bt_ci_cmd; - u8 bt_tx_prio; - int: 0; - enum iwl_bt_force_ant_mode bt_force_ant_mode; - struct list_head aux_roc_te_list; - struct iwl_mvm_tt_mgmt thermal_throttle; - struct iwl_mvm_thermal_device tz_device; - struct iwl_mvm_cooling_device cooling_dev; - s32 temperature; - bool temperature_test; - bool fw_static_smps_request; - long: 0; - unsigned long bt_coex_last_tcm_ts; - struct iwl_mvm_tcm tcm; - u8 uapsd_noagg_bssid_write_idx; - short: 0; - struct mac_address uapsd_noagg_bssids[20]; - struct iwl_time_quota_cmd last_quota_cmd; - u16 aux_queue; - u16 snif_queue; - u16 probe_queue; - u16 p2p_dev_queue; - u8 ps_disabled; - int: 0; - u32 ext_clock_valid; - struct ieee80211_vif *csme_vif; - struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *csa_vif; - struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *csa_tx_blocked_vif; - u8 csa_tx_block_bcn_timeout; - int: 0; - u32 ap_last_beacon_gp2; - bool ibss_manager; - bool lar_regdom_set; - int: 0; - enum iwl_mcc_source mcc_src; - struct { - struct delayed_work dwork; - enum iwl_mvm_tdls_cs_state state; - u8 cur_sta_id; - struct { - u8 sta_id; - u8 op_class; - bool initiator; - struct cfg80211_chan_def chandef; - struct sk_buff *skb; - u32 ch_sw_tm_ie; - u32 sent_timestamp; - } peer; - } tdls_cs; - u32 ciphers[10]; - struct cfg80211_ftm_responder_stats ftm_resp_stats; - struct { - struct cfg80211_pmsr_request *req; - struct wireless_dev *req_wdev; - struct list_head loc_list; - int responses[5]; - struct { - struct list_head resp; - } smooth; - struct list_head pasn_list; - } ftm_initiator; - struct list_head resp_pasn_list; - struct ptp_data ptp_data; - struct { - u8 range_resp; - } cmd_ver; - long: 0; - struct ieee80211_vif *nan_vif; - struct iwl_mvm_baid_data __attribute__((btf_type_tag("rcu"))) *baid_map[32]; - bool drop_bcn_ap_mode; - long: 0; - struct delayed_work cs_tx_unblock_dwork; - bool monitor_on; - u8 monitor_p80; - __le16 cur_aid; - u8 cur_bssid[6]; - struct iwl_phy_specific_cfg phy_filters; - long: 0; - unsigned long last_6ghz_passive_scan_jiffies; - unsigned long last_reset_or_resume_time_jiffies; - bool sta_remove_requires_queue_remove; - bool mld_api_is_used; - bool pldr_sync; - long: 0; - struct iwl_time_sync_data time_sync; - struct iwl_mei_scan_filter mei_scan_filter; - bool statistics_clear; - long: 0; -} __attribute__((packed)); - -struct iwl_mvm_vif_bf_data { - bool bf_enabled; - bool ba_enabled; - int ave_beacon_signal; - int last_cqm_event; - int bt_coex_min_thold; - int bt_coex_max_thold; - int last_bt_coex_event; -}; - -enum iwl_tsf_id { - TSF_ID_A = 0, - TSF_ID_B = 1, - TSF_ID_C = 2, - TSF_ID_D = 3, - NUM_TSF_IDS = 4, -}; +typedef void (*btf_trace_cfg80211_cqm_rssi_notify)(void *, struct net_device *, enum nl80211_cqm_rssi_threshold_event, s32); -struct iwl_mvm_time_event_data { - struct ieee80211_vif *vif; - struct list_head list; - unsigned long end_jiffies; - u32 duration; - bool running; - u32 uid; - u32 id; - s8 link_id; -}; - -struct iwl_probe_resp_data; - -struct iwl_mvm_vif_link_info { - u8 bssid[6]; - u8 ap_sta_id; - u8 fw_link_id; - struct iwl_mvm_int_sta bcast_sta; - struct iwl_mvm_int_sta mcast_sta; - struct { - u32 num_beacons; - u32 accu_num_beacons; - u8 avg_signal; - } beacon_stats; - enum ieee80211_smps_mode smps_requests[4]; - struct iwl_probe_resp_data __attribute__((btf_type_tag("rcu"))) *probe_resp_data; - struct ieee80211_key_conf *igtk; - bool he_ru_2mhz_block; - bool active; - bool listen_lmac; - u16 cab_queue; - struct iwl_mvm_phy_ctxt *phy_ctxt; - struct ieee80211_tx_queue_params queue_params[4]; - u16 mgmt_queue; -}; - -struct iwl_mvm_vif { - struct iwl_mvm *mvm; - u16 id; - u16 color; - bool associated; - u8 ap_assoc_sta_count; - bool uploaded; - bool ap_ibss_active; - bool pm_enabled; - bool monitor_active; - bool esr_active; - bool bt_coex_esr_disabled; - u8 low_latency: 6; - u8 low_latency_actual: 1; - u8 authorized: 1; - bool ps_disabled; - u32 ap_beacon_time; - struct iwl_mvm_vif_bf_data bf_data; - struct { - u8 kck[24]; - u8 kek[32]; - size_t kek_len; - size_t kck_len; - u32 akm; - __le64 replay_ctr; - bool valid; - } rekey_data; - int tx_key_idx; - bool seqno_valid; - u16 seqno; - struct in6_addr target_ipv6_addrs[12]; - unsigned long tentative_addrs[1]; - int num_target_ipv6_addrs; - u8 uapsd_misbehaving_ap_addr[6]; - struct delayed_work uapsd_nonagg_detected_wk; - bool csa_countdown; - bool csa_failed; - bool csa_bcn_pending; - u16 csa_target_freq; - u16 csa_count; - u16 csa_misbehave; - struct delayed_work csa_work; - enum iwl_tsf_id tsf_id; - struct iwl_mvm_time_event_data time_event_data; - struct iwl_mvm_time_event_data hs_time_event_data; - netdev_features_t features; - struct ieee80211_sta *ap_sta; - struct ieee80211_key_conf *ap_early_keys[4]; - struct { - struct ieee80211_key_conf __attribute__((btf_type_tag("rcu"))) *keys[2]; - } bcn_prot; - struct iwl_mvm_vif_link_info deflink; - struct iwl_mvm_vif_link_info *link[15]; -}; - -struct iwl_p2p_noa_attr { - u8 id; - u8 len_low; - u8 len_high; - u8 idx; - u8 ctwin; - struct ieee80211_p2p_noa_desc desc[2]; - u8 reserved; -}; - -struct iwl_probe_resp_data_notif { - __le32 mac_id; - __le32 noa_active; - struct iwl_p2p_noa_attr noa_attr; - u8 csa_counter; - u8 reserved[3]; -}; - -struct iwl_probe_resp_data { - struct callback_head callback_head; - struct iwl_probe_resp_data_notif notif; - int noa_len; -}; - -struct iwl_mei_nvm { - u8 hw_addr[6]; - u8 n_hw_addrs; - u8 reserved; - u32 radio_cfg; - u32 caps; - u32 nvm_version; - u32 channels[110]; -}; - -struct iwl_mei_conn_info { - u8 lp_state; - u8 auth_mode; - u8 ssid_len; - u8 channel; - u8 band; - u8 pairwise_cipher; - u8 bssid[6]; - u8 ssid[32]; -}; - -struct iwl_mvm_csme_conn_info { - struct callback_head callback_head; - struct iwl_mei_conn_info conn_info; -}; - -struct iwl_mcast_filter_cmd { - u8 filter_own; - u8 port_id; - u8 count; - u8 pass_all; - u8 bssid[6]; - u8 reserved[2]; - u8 addr_list[0]; -}; - -struct ptp_pin_desc { - char name[64]; - unsigned int index; - unsigned int func; - unsigned int chan; - unsigned int rsv[5]; -}; - -struct ptp_system_timestamp { - struct timespec64 pre_ts; - struct timespec64 post_ts; -}; - -struct system_device_crosststamp { - ktime_t device; - ktime_t sys_realtime; - ktime_t sys_monoraw; -}; - -struct ptp_extts_request { - unsigned int index; - unsigned int flags; - unsigned int rsv[2]; -}; - -struct ptp_clock_time { - __s64 sec; - __u32 nsec; - __u32 reserved; -}; - -struct ptp_perout_request { - union { - struct ptp_clock_time start; - struct ptp_clock_time phase; - }; - struct ptp_clock_time period; - unsigned int index; - unsigned int flags; - union { - struct ptp_clock_time on; - unsigned int rsv[4]; - }; -}; +typedef void (*btf_trace_cfg80211_reg_can_beacon)(void *, struct wiphy *, struct cfg80211_chan_def *, enum nl80211_iftype, bool); -struct ptp_clock_request { - enum { - PTP_CLK_REQ_EXTTS = 0, - PTP_CLK_REQ_PEROUT = 1, - PTP_CLK_REQ_PPS = 2, - } type; - union { - struct ptp_extts_request extts; - struct ptp_perout_request perout; - }; -}; - -struct iwl_mvm_reorder_buffer { - u16 head_sn; - u16 num_stored; - u16 buf_size; - int queue; - u16 last_amsdu; - u8 last_sub_index; - bool valid; - spinlock_t lock; - struct iwl_mvm *mvm; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct iwl_mvm_reorder_buf_entry { - struct sk_buff_head frames; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct iwl_mvm_baid_data { - struct callback_head callback_head; - u32 sta_mask; - u8 tid; - u8 baid; - u16 timeout; - u16 entries_per_queue; - unsigned long last_rx; - struct timer_list session_timer; - struct iwl_mvm_baid_data __attribute__((btf_type_tag("rcu"))) **rcu_ptr; - struct iwl_mvm *mvm; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct iwl_mvm_reorder_buffer reorder_buf[16]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct iwl_mvm_reorder_buf_entry entries[0]; -}; - -enum iwl_table_type___2 { - LQ_NONE___2 = 0, - LQ_LEGACY_G = 1, - LQ_LEGACY_A = 2, - LQ_HT_SISO = 3, - LQ_HT_MIMO2 = 4, - LQ_VHT_SISO = 5, - LQ_VHT_MIMO2 = 6, - LQ_HE_SISO = 7, - LQ_HE_MIMO2 = 8, - LQ_MAX___2 = 9, -}; - -struct rs_rate { - int index; - enum iwl_table_type___2 type; - u8 ant; - u32 bw; - bool sgi; - bool ldpc; - bool stbc; - bool bfer; -}; - -struct iwl_rs_rate_info { - u8 plcp; - u8 plcp_ht_siso; - u8 plcp_ht_mimo2; - u8 plcp_vht_siso; - u8 plcp_vht_mimo2; - u8 prev_rs; - u8 next_rs; -}; - -struct rs_init_rate_info { - s8 rssi; - u8 rate_idx; -}; - -struct ieee80211_tx_status; +typedef void (*btf_trace_cfg80211_chandef_dfs_required)(void *, struct wiphy *, struct cfg80211_chan_def *); -struct ieee80211_tx_rate_control; +typedef void (*btf_trace_cfg80211_ch_switch_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int); -struct rate_control_ops { - unsigned long capa; - const char *name; - void * (*alloc)(struct ieee80211_hw *); - void (*add_debugfs)(struct ieee80211_hw *, void *, struct dentry *); - void (*free)(void *); - void * (*alloc_sta)(void *, struct ieee80211_sta *, gfp_t); - void (*rate_init)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *); - void (*rate_update)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *, u32); - void (*free_sta)(void *, struct ieee80211_sta *, void *); - void (*tx_status_ext)(void *, struct ieee80211_supported_band *, void *, struct ieee80211_tx_status *); - void (*tx_status)(void *, struct ieee80211_supported_band *, struct ieee80211_sta *, void *, struct sk_buff *); - void (*get_rate)(void *, struct ieee80211_sta *, void *, struct ieee80211_tx_rate_control *); - void (*add_sta_debugfs)(void *, void *, struct dentry *); - u32 (*get_expected_throughput)(void *); -}; - -struct ieee80211_tx_info; +typedef void (*btf_trace_cfg80211_ch_switch_started_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int); -struct ieee80211_rate_status; +typedef void (*btf_trace_cfg80211_radar_event)(void *, struct wiphy *, struct cfg80211_chan_def *, bool); -struct ieee80211_tx_status { - struct ieee80211_sta *sta; - struct ieee80211_tx_info *info; - struct sk_buff *skb; - struct ieee80211_rate_status *rates; - ktime_t ack_hwtstamp; - u8 n_rates; - struct list_head *free_list; +enum nl80211_radar_event { + NL80211_RADAR_DETECTED = 0, + NL80211_RADAR_CAC_FINISHED = 1, + NL80211_RADAR_CAC_ABORTED = 2, + NL80211_RADAR_NOP_FINISHED = 3, + NL80211_RADAR_PRE_CAC_EXPIRED = 4, + NL80211_RADAR_CAC_STARTED = 5, }; -struct ieee80211_tx_rate { - s8 idx; - u16 count: 5; - u16 flags: 11; -} __attribute__((packed)); +typedef void (*btf_trace_cfg80211_cac_event)(void *, struct net_device *, enum nl80211_radar_event); -typedef u32 codel_time_t; +typedef void (*btf_trace_cfg80211_rx_spurious_frame)(void *, struct net_device *, const u8 *); -struct ieee80211_tx_info { - u32 flags; - u32 band: 3; - u32 status_data_idr: 1; - u32 status_data: 13; - u32 hw_queue: 4; - u32 tx_time_est: 10; - union { - struct { - union { - struct { - struct ieee80211_tx_rate rates[4]; - s8 rts_cts_rate_idx; - u8 use_rts: 1; - u8 use_cts_prot: 1; - u8 short_preamble: 1; - u8 skip_table: 1; - u8 antennas: 2; - }; - unsigned long jiffies; - }; - struct ieee80211_vif *vif; - struct ieee80211_key_conf *hw_key; - u32 flags; - codel_time_t enqueue_time; - } control; - struct { - u64 cookie; - } ack; - struct { - struct ieee80211_tx_rate rates[4]; - s32 ack_signal; - u8 ampdu_ack_len; - u8 ampdu_len; - u8 antenna; - u8 pad; - u16 tx_time; - u8 flags; - u8 pad2; - void *status_driver_data[2]; - } status; - struct { - struct ieee80211_tx_rate driver_rates[4]; - u8 pad[4]; - void *rate_driver_data[3]; - }; - void *driver_data[5]; - }; -}; +typedef void (*btf_trace_cfg80211_rx_unexpected_4addr_frame)(void *, struct net_device *, const u8 *); -struct ieee80211_rate_status { - struct rate_info rate_idx; - u8 try_count; - u8 tx_power_idx; -}; +typedef void (*btf_trace_cfg80211_ibss_joined)(void *, struct net_device *, const u8 *, struct ieee80211_channel *); -struct ieee80211_tx_rate_control { - struct ieee80211_hw *hw; - struct ieee80211_supported_band *sband; - struct ieee80211_bss_conf *bss_conf; - struct sk_buff *skb; - struct ieee80211_tx_rate reported_rate; - bool rts; - bool short_preamble; - u32 rate_idx_mask; - u8 *rate_idx_mcs_mask; - bool bss; -}; +typedef void (*btf_trace_cfg80211_probe_status)(void *, struct net_device *, const u8 *, u64, bool); -enum iwl_mvm_agg_state { - IWL_AGG_OFF___2 = 0, - IWL_AGG_QUEUED = 1, - IWL_AGG_STARTING___2 = 2, - IWL_AGG_ON___2 = 3, - IWL_EMPTYING_HW_QUEUE_ADDBA___2 = 4, - IWL_EMPTYING_HW_QUEUE_DELBA___2 = 5, -}; +typedef void (*btf_trace_cfg80211_cqm_pktloss_notify)(void *, struct net_device *, const u8 *, u32); -enum { - IWL_RATE_1M_INDEX___2 = 0, - IWL_FIRST_CCK_RATE___2 = 0, - IWL_RATE_2M_INDEX___2 = 1, - IWL_RATE_5M_INDEX___2 = 2, - IWL_RATE_11M_INDEX___2 = 3, - IWL_LAST_CCK_RATE___2 = 3, - IWL_RATE_6M_INDEX___2 = 4, - IWL_FIRST_OFDM_RATE___2 = 4, - IWL_RATE_MCS_0_INDEX = 4, - IWL_FIRST_HT_RATE = 4, - IWL_FIRST_VHT_RATE = 4, - IWL_RATE_9M_INDEX___2 = 5, - IWL_RATE_12M_INDEX___2 = 6, - IWL_RATE_MCS_1_INDEX = 6, - IWL_RATE_18M_INDEX___2 = 7, - IWL_RATE_MCS_2_INDEX = 7, - IWL_RATE_24M_INDEX___2 = 8, - IWL_RATE_MCS_3_INDEX = 8, - IWL_RATE_36M_INDEX___2 = 9, - IWL_RATE_MCS_4_INDEX = 9, - IWL_RATE_48M_INDEX___2 = 10, - IWL_RATE_MCS_5_INDEX = 10, - IWL_RATE_54M_INDEX___2 = 11, - IWL_RATE_MCS_6_INDEX = 11, - IWL_LAST_NON_HT_RATE = 11, - IWL_RATE_60M_INDEX___2 = 12, - IWL_RATE_MCS_7_INDEX = 12, - IWL_LAST_HT_RATE = 12, - IWL_RATE_MCS_8_INDEX = 13, - IWL_RATE_MCS_9_INDEX = 14, - IWL_LAST_VHT_RATE = 14, - IWL_RATE_MCS_10_INDEX = 15, - IWL_RATE_MCS_11_INDEX = 16, - IWL_LAST_HE_RATE = 16, - IWL_RATE_COUNT_LEGACY___2 = 12, - IWL_RATE_COUNT___2 = 17, - IWL_RATE_INVM_INDEX___2 = 17, - IWL_RATE_INVALID___2 = 17, -}; +typedef void (*btf_trace_cfg80211_gtk_rekey_notify)(void *, struct net_device *, const u8 *); -enum mac80211_tx_info_flags { - IEEE80211_TX_CTL_REQ_TX_STATUS = 1, - IEEE80211_TX_CTL_ASSIGN_SEQ = 2, - IEEE80211_TX_CTL_NO_ACK = 4, - IEEE80211_TX_CTL_CLEAR_PS_FILT = 8, - IEEE80211_TX_CTL_FIRST_FRAGMENT = 16, - IEEE80211_TX_CTL_SEND_AFTER_DTIM = 32, - IEEE80211_TX_CTL_AMPDU = 64, - IEEE80211_TX_CTL_INJECTED = 128, - IEEE80211_TX_STAT_TX_FILTERED = 256, - IEEE80211_TX_STAT_ACK = 512, - IEEE80211_TX_STAT_AMPDU = 1024, - IEEE80211_TX_STAT_AMPDU_NO_BACK = 2048, - IEEE80211_TX_CTL_RATE_CTRL_PROBE = 4096, - IEEE80211_TX_INTFL_OFFCHAN_TX_OK = 8192, - IEEE80211_TX_CTL_HW_80211_ENCAP = 16384, - IEEE80211_TX_INTFL_RETRIED = 32768, - IEEE80211_TX_INTFL_DONT_ENCRYPT = 65536, - IEEE80211_TX_CTL_NO_PS_BUFFER = 131072, - IEEE80211_TX_CTL_MORE_FRAMES = 262144, - IEEE80211_TX_INTFL_RETRANSMISSION = 524288, - IEEE80211_TX_INTFL_MLME_CONN_TX = 1048576, - IEEE80211_TX_INTFL_NL80211_FRAME_TX = 2097152, - IEEE80211_TX_CTL_LDPC = 4194304, - IEEE80211_TX_CTL_STBC = 25165824, - IEEE80211_TX_CTL_TX_OFFCHAN = 33554432, - IEEE80211_TX_INTFL_TKIP_MIC_FAILURE = 67108864, - IEEE80211_TX_CTL_NO_CCK_RATE = 134217728, - IEEE80211_TX_STATUS_EOSP = 268435456, - IEEE80211_TX_CTL_USE_MINRATE = 536870912, - IEEE80211_TX_CTL_DONTFRAG = 1073741824, - IEEE80211_TX_STAT_NOACK_TRANSMITTED = 2147483648, -}; +typedef void (*btf_trace_cfg80211_pmksa_candidate_notify)(void *, struct net_device *, int, const u8 *, bool); -enum { - RS_STATE_SEARCH_CYCLE_STARTED = 0, - RS_STATE_SEARCH_CYCLE_ENDED = 1, - RS_STATE_STAY_IN_COLUMN = 2, -}; +typedef void (*btf_trace_cfg80211_report_obss_beacon)(void *, struct wiphy *, const u8 *, size_t, int, int); -enum rs_action { - RS_ACTION_STAY = 0, - RS_ACTION_DOWNSCALE = -1, - RS_ACTION_UPSCALE = 1, -}; +typedef void (*btf_trace_cfg80211_tdls_oper_request)(void *, struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation, u16); -enum iwl_ucode_tlv_api { - IWL_UCODE_TLV_API_FRAGMENTED_SCAN = 8, - IWL_UCODE_TLV_API_WIFI_MCC_UPDATE = 9, - IWL_UCODE_TLV_API_LQ_SS_PARAMS = 18, - IWL_UCODE_TLV_API_NEW_VERSION = 20, - IWL_UCODE_TLV_API_SCAN_TSF_REPORT = 28, - IWL_UCODE_TLV_API_TKIP_MIC_KEYS = 29, - IWL_UCODE_TLV_API_STA_TYPE = 30, - IWL_UCODE_TLV_API_NAN2_VER2 = 31, - IWL_UCODE_TLV_API_ADAPTIVE_DWELL = 32, - IWL_UCODE_TLV_API_OCE = 33, - IWL_UCODE_TLV_API_NEW_BEACON_TEMPLATE = 34, - IWL_UCODE_TLV_API_NEW_RX_STATS = 35, - IWL_UCODE_TLV_API_WOWLAN_KEY_MATERIAL = 36, - IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY = 38, - IWL_UCODE_TLV_API_DEPRECATE_TTAK = 41, - IWL_UCODE_TLV_API_ADAPTIVE_DWELL_V2 = 42, - IWL_UCODE_TLV_API_FRAG_EBS = 44, - IWL_UCODE_TLV_API_REDUCE_TX_POWER = 45, - IWL_UCODE_TLV_API_SHORT_BEACON_NOTIF = 46, - IWL_UCODE_TLV_API_BEACON_FILTER_V4 = 47, - IWL_UCODE_TLV_API_REGULATORY_NVM_INFO = 48, - IWL_UCODE_TLV_API_FTM_NEW_RANGE_REQ = 49, - IWL_UCODE_TLV_API_SCAN_OFFLOAD_CHANS = 50, - IWL_UCODE_TLV_API_MBSSID_HE = 52, - IWL_UCODE_TLV_API_WOWLAN_TCP_SYN_WAKE = 53, - IWL_UCODE_TLV_API_FTM_RTT_ACCURACY = 54, - IWL_UCODE_TLV_API_SAR_TABLE_VER = 55, - IWL_UCODE_TLV_API_REDUCED_SCAN_CONFIG = 56, - IWL_UCODE_TLV_API_ADWELL_HB_DEF_N_AP = 57, - IWL_UCODE_TLV_API_SCAN_EXT_CHAN_VER = 58, - IWL_UCODE_TLV_API_BAND_IN_RX_DATA = 59, - IWL_UCODE_TLV_API_NO_HOST_DISABLE_TX = 66, - IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR = 67, - IWL_UCODE_TLV_API_SMART_FIFO_OFFLOAD = 68, - NUM_IWL_UCODE_TLV_API = 69, -}; +typedef void (*btf_trace_cfg80211_scan_done)(void *, struct cfg80211_scan_request *, struct cfg80211_scan_info *); -enum iwl_ucode_tlv_capa { - IWL_UCODE_TLV_CAPA_D0I3_SUPPORT = 0, - IWL_UCODE_TLV_CAPA_LAR_SUPPORT = 1, - IWL_UCODE_TLV_CAPA_UMAC_SCAN = 2, - IWL_UCODE_TLV_CAPA_BEAMFORMER = 3, - IWL_UCODE_TLV_CAPA_TDLS_SUPPORT = 6, - IWL_UCODE_TLV_CAPA_TXPOWER_INSERTION_SUPPORT = 8, - IWL_UCODE_TLV_CAPA_DS_PARAM_SET_IE_SUPPORT = 9, - IWL_UCODE_TLV_CAPA_WFA_TPC_REP_IE_SUPPORT = 10, - IWL_UCODE_TLV_CAPA_QUIET_PERIOD_SUPPORT = 11, - IWL_UCODE_TLV_CAPA_DQA_SUPPORT = 12, - IWL_UCODE_TLV_CAPA_TDLS_CHANNEL_SWITCH = 13, - IWL_UCODE_TLV_CAPA_CNSLDTD_D3_D0_IMG = 17, - IWL_UCODE_TLV_CAPA_HOTSPOT_SUPPORT = 18, - IWL_UCODE_TLV_CAPA_CSUM_SUPPORT = 21, - IWL_UCODE_TLV_CAPA_RADIO_BEACON_STATS = 22, - IWL_UCODE_TLV_CAPA_P2P_SCM_UAPSD = 26, - IWL_UCODE_TLV_CAPA_BT_COEX_PLCR = 28, - IWL_UCODE_TLV_CAPA_LAR_MULTI_MCC = 29, - IWL_UCODE_TLV_CAPA_BT_COEX_RRC = 30, - IWL_UCODE_TLV_CAPA_GSCAN_SUPPORT = 31, - IWL_UCODE_TLV_CAPA_FRAGMENTED_PNVM_IMG = 32, - IWL_UCODE_TLV_CAPA_SOC_LATENCY_SUPPORT = 37, - IWL_UCODE_TLV_CAPA_STA_PM_NOTIF = 38, - IWL_UCODE_TLV_CAPA_BINDING_CDB_SUPPORT = 39, - IWL_UCODE_TLV_CAPA_CDB_SUPPORT = 40, - IWL_UCODE_TLV_CAPA_D0I3_END_FIRST = 41, - IWL_UCODE_TLV_CAPA_TLC_OFFLOAD = 43, - IWL_UCODE_TLV_CAPA_DYNAMIC_QUOTA = 44, - IWL_UCODE_TLV_CAPA_COEX_SCHEMA_2 = 45, - IWL_UCODE_TLV_CAPA_CHANNEL_SWITCH_CMD = 46, - IWL_UCODE_TLV_CAPA_FTM_CALIBRATED = 47, - IWL_UCODE_TLV_CAPA_ULTRA_HB_CHANNELS = 48, - IWL_UCODE_TLV_CAPA_CS_MODIFY = 49, - IWL_UCODE_TLV_CAPA_SET_LTR_GEN2 = 50, - IWL_UCODE_TLV_CAPA_SET_PPAG = 52, - IWL_UCODE_TLV_CAPA_TAS_CFG = 53, - IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD = 54, - IWL_UCODE_TLV_CAPA_PROTECTED_TWT = 56, - IWL_UCODE_TLV_CAPA_FW_RESET_HANDSHAKE = 57, - IWL_UCODE_TLV_CAPA_PASSIVE_6GHZ_SCAN = 58, - IWL_UCODE_TLV_CAPA_HIDDEN_6GHZ_SCAN = 59, - IWL_UCODE_TLV_CAPA_BROADCAST_TWT = 60, - IWL_UCODE_TLV_CAPA_COEX_HIGH_PRIO = 61, - IWL_UCODE_TLV_CAPA_RFIM_SUPPORT = 62, - IWL_UCODE_TLV_CAPA_BAID_ML_SUPPORT = 63, - IWL_UCODE_TLV_CAPA_EXTENDED_DTS_MEASURE = 64, - IWL_UCODE_TLV_CAPA_SHORT_PM_TIMEOUTS = 65, - IWL_UCODE_TLV_CAPA_BT_MPLUT_SUPPORT = 67, - IWL_UCODE_TLV_CAPA_MULTI_QUEUE_RX_SUPPORT = 68, - IWL_UCODE_TLV_CAPA_CSA_AND_TBTT_OFFLOAD = 70, - IWL_UCODE_TLV_CAPA_BEACON_ANT_SELECTION = 71, - IWL_UCODE_TLV_CAPA_BEACON_STORING = 72, - IWL_UCODE_TLV_CAPA_LAR_SUPPORT_V3 = 73, - IWL_UCODE_TLV_CAPA_CT_KILL_BY_FW = 74, - IWL_UCODE_TLV_CAPA_TEMP_THS_REPORT_SUPPORT = 75, - IWL_UCODE_TLV_CAPA_CTDP_SUPPORT = 76, - IWL_UCODE_TLV_CAPA_USNIFFER_UNIFIED = 77, - IWL_UCODE_TLV_CAPA_EXTEND_SHARED_MEM_CFG = 80, - IWL_UCODE_TLV_CAPA_LQM_SUPPORT = 81, - IWL_UCODE_TLV_CAPA_TX_POWER_ACK = 84, - IWL_UCODE_TLV_CAPA_D3_DEBUG = 87, - IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT = 88, - IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT = 89, - IWL_UCODE_TLV_CAPA_CSI_REPORTING = 90, - IWL_UCODE_TLV_CAPA_DBG_SUSPEND_RESUME_CMD_SUPP = 92, - IWL_UCODE_TLV_CAPA_DBG_BUF_ALLOC_CMD_SUPP = 93, - IWL_UCODE_TLV_CAPA_MLME_OFFLOAD = 96, - IWL_UCODE_TLV_CAPA_PSC_CHAN_SUPPORT = 98, - IWL_UCODE_TLV_CAPA_BIGTK_SUPPORT = 100, - IWL_UCODE_TLV_CAPA_SPP_AMSDU_SUPPORT = 103, - IWL_UCODE_TLV_CAPA_DRAM_FRAG_SUPPORT = 104, - IWL_UCODE_TLV_CAPA_DUMP_COMPLETE_SUPPORT = 105, - IWL_UCODE_TLV_CAPA_SYNCED_TIME = 106, - IWL_UCODE_TLV_CAPA_TIME_SYNC_BOTH_FTM_TM = 108, - IWL_UCODE_TLV_CAPA_BIGTK_TX_SUPPORT = 109, - IWL_UCODE_TLV_CAPA_MLD_API_SUPPORT = 110, - IWL_UCODE_TLV_CAPA_SCAN_DONT_TOGGLE_ANT = 111, - IWL_UCODE_TLV_CAPA_PPAG_CHINA_BIOS_SUPPORT = 112, - IWL_UCODE_TLV_CAPA_OFFLOAD_BTM_SUPPORT = 113, - IWL_UCODE_TLV_CAPA_STA_EXP_MFP_SUPPORT = 114, - IWL_UCODE_TLV_CAPA_SNIFF_VALIDATE_SUPPORT = 116, - IWL_UCODE_TLV_CAPA_CHINA_22_REG_SUPPORT = 117, - IWL_UCODE_TLV_CAPA_SECURE_LTF_SUPPORT = 121, - NUM_IWL_UCODE_TLV_CAPA = 122, -}; +typedef void (*btf_trace_cfg80211_sched_scan_stopped)(void *, struct wiphy *, u64); -enum tpc_action { - TPC_ACTION_STAY = 0, - TPC_ACTION_DECREASE = 1, - TPC_ACTION_INCREASE = 2, - TPC_ACTION_NO_RESTIRCTION = 3, -}; +typedef void (*btf_trace_cfg80211_sched_scan_results)(void *, struct wiphy *, u64); -enum iwl_power_scheme { - IWL_POWER_SCHEME_CAM = 1, - IWL_POWER_SCHEME_BPS = 2, - IWL_POWER_SCHEME_LP = 3, +enum ieee80211_privacy { + IEEE80211_PRIVACY_ON = 0, + IEEE80211_PRIVACY_OFF = 1, + IEEE80211_PRIVACY_ANY = 2, }; -enum ieee80211_vht_chanwidth { - IEEE80211_VHT_CHANWIDTH_USE_HT = 0, - IEEE80211_VHT_CHANWIDTH_80MHZ = 1, - IEEE80211_VHT_CHANWIDTH_160MHZ = 2, - IEEE80211_VHT_CHANWIDTH_80P80MHZ = 3, -}; +typedef void (*btf_trace_cfg80211_get_bss)(void *, struct wiphy *, struct ieee80211_channel *, const u8 *, const u8 *, size_t, enum ieee80211_bss_type, enum ieee80211_privacy); -enum ieee80211_vht_mcs_support { - IEEE80211_VHT_MCS_SUPPORT_0_7 = 0, - IEEE80211_VHT_MCS_SUPPORT_0_8 = 1, - IEEE80211_VHT_MCS_SUPPORT_0_9 = 2, - IEEE80211_VHT_MCS_NOT_SUPPORTED = 3, -}; +struct cfg80211_inform_bss; -struct iwl_mvm_tid_data { - u16 seq_number; - u16 next_reclaimed; - u32 rate_n_flags; - u8 lq_color; - bool amsdu_in_ampdu_allowed; - enum iwl_mvm_agg_state state; - u16 txq_id; - u16 ssn; - u16 tx_time; - unsigned long tpt_meas_start; - u32 tx_count_last; - u32 tx_count; -}; +typedef void (*btf_trace_cfg80211_inform_bss_frame)(void *, struct wiphy *, struct cfg80211_inform_bss *, struct ieee80211_mgmt *, size_t); -struct lq_sta_pers_rs_fw { - u32 sta_id; +struct cfg80211_inform_bss { + struct ieee80211_channel *chan; + s32 signal; + u64 boottime_ns; + u64 parent_tsf; + u8 parent_bssid[6]; u8 chains; s8 chain_signal[4]; - s8 last_rssi; - struct iwl_mvm *drv; -}; - -struct iwl_lq_sta_rs_fw { - u32 last_rate_n_flags; - struct lq_sta_pers_rs_fw pers; -}; - -struct iwl_lq_cmd { - u8 sta_id; - u8 reduced_tpc; - __le16 control; - u8 flags; - u8 mimo_delim; - u8 single_stream_ant_msk; - u8 dual_stream_ant_msk; - u8 initial_rate_index[4]; - __le16 agg_time_limit; - u8 agg_disable_start_th; - u8 agg_frame_cnt_limit; - __le32 reserved2; - __le32 rs_table[16]; - __le32 ss_params; -}; - -struct iwl_rate_scale_data___2 { - u64 data; - s32 success_counter; - s32 success_ratio; - s32 counter; - s32 average_tpt; -}; - -struct iwl_scale_tbl_info___2 { - struct rs_rate rate; - enum rs_column column; - const u16 *expected_tpt; - struct iwl_rate_scale_data___2 win[17]; - struct iwl_rate_scale_data___2 tpc_win[16]; -}; - -struct rs_rate_stats { - u64 success; - u64 total; -}; - -struct lq_sta_pers { - u8 chains; - s8 chain_signal[4]; - s8 last_rssi; - u16 max_agg_bufsize; - struct rs_rate_stats tx_stats[136]; - struct iwl_mvm *drv; - spinlock_t lock; -}; - -struct iwl_lq_sta___2 { - u8 active_tbl; - u8 rs_state; - u8 search_better_tbl; - s32 last_tpt; - u32 table_count_limit; - u32 max_failure_limit; - u32 max_success_limit; - u32 table_count; - u32 total_failed; - u32 total_success; - u64 flush_timer; - u32 visited_columns; - u64 last_tx; - bool is_vht; - bool ldpc; - bool stbc_capable; - bool bfer_capable; - enum nl80211_band band; - unsigned long active_legacy_rate; - unsigned long active_siso_rate; - unsigned long active_mimo2_rate; - u8 max_legacy_rate_idx; - u8 max_siso_rate_idx; - u8 max_mimo2_rate_idx; - struct rs_rate optimal_rate; - unsigned long optimal_rate_mask; - const struct rs_init_rate_info *optimal_rates; - int optimal_nentries; - u8 missed_rate_counter; - struct iwl_lq_cmd lq; - struct iwl_scale_tbl_info___2 lq_info[2]; - u8 tx_agg_tid_en; - u32 last_rate_n_flags; - u8 is_agg; - int tpc_reduce; - struct lq_sta_pers pers; -}; - -struct iwl_mvm_link_sta { - struct callback_head callback_head; - u32 sta_id; - union { - struct iwl_lq_sta_rs_fw rs_fw; - struct iwl_lq_sta___2 rs_drv; - } lq_sta; - u16 orig_amsdu_len; - u8 avg_energy; -}; - -struct iwl_mvm_key_pn; - -struct iwl_mvm_rxq_dup_data; - -struct iwl_mvm_sta { - u32 tfd_queue_msk; - u32 mac_id_n_color; - u16 tid_disable_agg; - u8 sta_type; - enum ieee80211_sta_state sta_state; - bool bt_reduced_txpower; - bool next_status_eosp; - bool authorized; - spinlock_t lock; - struct iwl_mvm_tid_data tid_data[9]; - u8 tid_to_baid[8]; - struct ieee80211_vif *vif; - struct iwl_mvm_key_pn __attribute__((btf_type_tag("rcu"))) *ptk_pn[4]; - struct iwl_mvm_rxq_dup_data *dup_data; - u8 reserved_queue; - s8 tx_protection; - bool tt_tx_protection; - bool disable_tx; - u16 amsdu_enabled; - u16 max_amsdu_len; - bool sleeping; - u8 agg_tids; - u8 sleep_tx_count; - u8 tx_ant; - u32 pairwise_cipher; - struct iwl_mvm_link_sta deflink; - struct iwl_mvm_link_sta __attribute__((btf_type_tag("rcu"))) *link[15]; -}; - -struct iwl_mvm_key_pn { - struct callback_head callback_head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct { - u8 pn[48]; - long: 64; - long: 64; - } q[0]; -}; - -struct iwl_mvm_rxq_dup_data { - __le16 last_seq[9]; - u8 last_sub_frame[9]; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct iwl_rate_mcs_info { - char mbps[12]; - char mcs[12]; -}; - -typedef unsigned int iwl_ucode_tlv_capa_t; - -typedef unsigned int iwl_ucode_tlv_api_t; - -struct rs_bfer_active_iter_data { - struct ieee80211_sta *exclude_sta; - struct iwl_mvm_sta *bfer_mvmsta; -}; - -struct ieee80211_qos_hdr { - __le16 frame_control; - __le16 duration_id; - u8 addr1[6]; - u8 addr2[6]; - u8 addr3[6]; - __le16 seq_ctrl; - __le16 qos_ctrl; -}; - -struct ieee80211_qos_hdr_4addr { - __le16 frame_control; - __le16 duration_id; - u8 addr1[6]; - u8 addr2[6]; - u8 addr3[6]; - __le16 seq_ctrl; - u8 addr4[6]; - __le16 qos_ctrl; -}; - -enum ps2_disposition { - PS2_PROCESS = 0, - PS2_IGNORE = 1, - PS2_ERROR = 2, -}; - -struct ps2dev; - -typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); - -typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); - -struct ps2dev { - struct serio *serio; - struct mutex cmd_mutex; - wait_queue_head_t wait; - unsigned long flags; - u8 cmdbuf[8]; - u8 cmdcnt; - u8 nak; - ps2_pre_receive_handler_t pre_receive_handler; - ps2_receive_handler_t receive_handler; -}; - -struct vivaldi_data { - u32 function_row_physmap[24]; - unsigned int num_function_row_keys; -}; - -struct input_dev; - -struct atkbd { - struct ps2dev ps2dev; - struct input_dev *dev; - char name[64]; - char phys[32]; - unsigned short id; - unsigned short keycode[512]; - unsigned long force_release_mask[8]; - unsigned char set; - bool translated; - bool extra; - bool write; - bool softrepeat; - bool softraw; - bool scroll; - bool enabled; - unsigned char emul; - bool resend; - bool release; - unsigned long xl_bit; - unsigned int last; - unsigned long time; - unsigned long err_count; - struct delayed_work event_work; - unsigned long event_jiffies; - unsigned long event_mask; - struct mutex mutex; - struct vivaldi_data vdata; -}; - -struct input_id { - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; -}; - -struct input_keymap_entry; - -struct ff_device; - -struct input_dev_poller; - -struct input_mt; - -struct input_absinfo; - -struct input_handle; - -struct input_value; - -struct input_dev { - const char *name; - const char *phys; - const char *uniq; - struct input_id id; - unsigned long propbit[1]; - unsigned long evbit[1]; - unsigned long keybit[12]; - unsigned long relbit[1]; - unsigned long absbit[1]; - unsigned long mscbit[1]; - unsigned long ledbit[1]; - unsigned long sndbit[1]; - unsigned long ffbit[2]; - unsigned long swbit[1]; - unsigned int hint_events_per_packet; - unsigned int keycodemax; - unsigned int keycodesize; - void *keycode; - int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *); - int (*getkeycode)(struct input_dev *, struct input_keymap_entry *); - struct ff_device *ff; - struct input_dev_poller *poller; - unsigned int repeat_key; - struct timer_list timer; - int rep[2]; - struct input_mt *mt; - struct input_absinfo *absinfo; - unsigned long key[12]; - unsigned long led[1]; - unsigned long snd[1]; - unsigned long sw[1]; - int (*open)(struct input_dev *); - void (*close)(struct input_dev *); - int (*flush)(struct input_dev *, struct file *); - int (*event)(struct input_dev *, unsigned int, unsigned int, int); - struct input_handle __attribute__((btf_type_tag("rcu"))) *grab; - spinlock_t event_lock; - struct mutex mutex; - unsigned int users; - bool going_away; - struct device dev; - struct list_head h_list; - struct list_head node; - unsigned int num_vals; - unsigned int max_vals; - struct input_value *vals; - bool devres_managed; - ktime_t timestamp[3]; - bool inhibited; -}; - -struct input_keymap_entry { - __u8 flags; - __u8 len; - __u16 index; - __u32 keycode; - __u8 scancode[32]; -}; - -struct ff_effect; - -struct ff_device { - int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *); - int (*erase)(struct input_dev *, int); - int (*playback)(struct input_dev *, int, int); - void (*set_gain)(struct input_dev *, u16); - void (*set_autocenter)(struct input_dev *, u16); - void (*destroy)(struct ff_device *); - void *private; - unsigned long ffbit[2]; - struct mutex mutex; - int max_effects; - struct ff_effect *effects; - struct file *effect_owners[0]; -}; - -struct ff_envelope { - __u16 attack_length; - __u16 attack_level; - __u16 fade_length; - __u16 fade_level; -}; - -struct ff_constant_effect { - __s16 level; - struct ff_envelope envelope; -}; - -struct ff_ramp_effect { - __s16 start_level; - __s16 end_level; - struct ff_envelope envelope; -}; - -struct ff_periodic_effect { - __u16 waveform; - __u16 period; - __s16 magnitude; - __s16 offset; - __u16 phase; - struct ff_envelope envelope; - __u32 custom_len; - __s16 __attribute__((btf_type_tag("user"))) *custom_data; -}; - -struct ff_condition_effect { - __u16 right_saturation; - __u16 left_saturation; - __s16 right_coeff; - __s16 left_coeff; - __u16 deadband; - __s16 center; -}; - -struct ff_rumble_effect { - __u16 strong_magnitude; - __u16 weak_magnitude; -}; - -struct ff_trigger { - __u16 button; - __u16 interval; -}; - -struct ff_replay { - __u16 length; - __u16 delay; -}; - -struct ff_effect { - __u16 type; - __s16 id; - __u16 direction; - struct ff_trigger trigger; - struct ff_replay replay; - union { - struct ff_constant_effect constant; - struct ff_ramp_effect ramp; - struct ff_periodic_effect periodic; - struct ff_condition_effect condition[2]; - struct ff_rumble_effect rumble; - } u; -}; - -struct input_absinfo { - __s32 value; - __s32 minimum; - __s32 maximum; - __s32 fuzz; - __s32 flat; - __s32 resolution; -}; - -struct input_handler; - -struct input_handle { - void *private; - int open; - const char *name; - struct input_dev *dev; - struct input_handler *handler; - struct list_head d_node; - struct list_head h_node; -}; - -struct input_device_id; - -struct input_handler { - void *private; - void (*event)(struct input_handle *, unsigned int, unsigned int, int); - void (*events)(struct input_handle *, const struct input_value *, unsigned int); - bool (*filter)(struct input_handle *, unsigned int, unsigned int, int); - bool (*match)(struct input_handler *, struct input_dev *); - int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *); - void (*disconnect)(struct input_handle *); - void (*start)(struct input_handle *); - bool legacy_minors; - int minor; - const char *name; - const struct input_device_id *id_table; - struct list_head h_list; - struct list_head node; -}; - -struct input_value { - __u16 type; - __u16 code; - __s32 value; -}; - -struct input_device_id { - kernel_ulong_t flags; - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; - kernel_ulong_t evbit[1]; - kernel_ulong_t keybit[12]; - kernel_ulong_t relbit[1]; - kernel_ulong_t absbit[1]; - kernel_ulong_t mscbit[1]; - kernel_ulong_t ledbit[1]; - kernel_ulong_t sndbit[1]; - kernel_ulong_t ffbit[2]; - kernel_ulong_t swbit[1]; - kernel_ulong_t propbit[1]; - kernel_ulong_t driver_info; -}; - -struct pps_device; - -struct pps_source_info { - char name[32]; - char path[32]; - int mode; - void (*echo)(struct pps_device *, int, void *); - struct module *owner; - struct device *dev; -}; - -struct pps_ktime { - __s64 sec; - __s32 nsec; - __u32 flags; -}; - -struct pps_kparams { - int api_version; - int mode; - struct pps_ktime assert_off_tu; - struct pps_ktime clear_off_tu; -}; - -struct pps_device { - struct pps_source_info info; - struct pps_kparams params; - __u32 assert_sequence; - __u32 clear_sequence; - struct pps_ktime assert_tu; - struct pps_ktime clear_tu; - int current_mode; - unsigned int last_ev; - wait_queue_head_t queue; - unsigned int id; - const void *lookup_cookie; - struct cdev cdev; - struct device *dev; - struct fasync_struct *async_queue; - spinlock_t lock; -}; - -struct pps_kinfo { - __u32 assert_sequence; - __u32 clear_sequence; - struct pps_ktime assert_tu; - struct pps_ktime clear_tu; - int current_mode; -}; - -struct pps_fdata { - struct pps_kinfo info; - struct pps_ktime timeout; -}; - -struct pps_bind_args { - int tsformat; - int edge; - int consumer; -}; - -enum reboot_mode { - REBOOT_UNDEFINED = -1, - REBOOT_COLD = 0, - REBOOT_WARM = 1, - REBOOT_HARD = 2, - REBOOT_SOFT = 3, - REBOOT_GPIO = 4, -}; - -enum sys_off_mode { - SYS_OFF_MODE_POWER_OFF_PREPARE = 0, - SYS_OFF_MODE_POWER_OFF = 1, - SYS_OFF_MODE_RESTART_PREPARE = 2, - SYS_OFF_MODE_RESTART = 3, -}; - -struct sys_off_data { - int mode; - void *cb_data; - const char *cmd; - struct device *dev; -}; - -struct vlan_hdr { - __be16 h_vlan_TCI; - __be16 h_vlan_encapsulated_proto; -}; - -struct tso_t { - int next_frag_idx; - int size; - void *data; - u16 ip_id; - u8 tlen; - bool ipv6; - u32 tcp_seq; -}; - -enum { - ETHTOOL_A_RSS_UNSPEC = 0, - ETHTOOL_A_RSS_HEADER = 1, - ETHTOOL_A_RSS_CONTEXT = 2, - ETHTOOL_A_RSS_HFUNC = 3, - ETHTOOL_A_RSS_INDIR = 4, - ETHTOOL_A_RSS_HKEY = 5, - ETHTOOL_A_RSS_INPUT_XFRM = 6, - __ETHTOOL_A_RSS_CNT = 7, - ETHTOOL_A_RSS_MAX = 6, -}; - -struct rss_req_info { - struct ethnl_req_info base; - u32 rss_context; -}; - -struct rss_reply_data { - struct ethnl_reply_data base; - u32 indir_size; - u32 hkey_size; - u32 hfunc; - u32 input_xfrm; - u32 *indir_table; - u8 *hkey; -}; - -struct nft_object_ops; - -struct nft_ctx; - -struct nft_object_type { - const struct nft_object_ops * (*select_ops)(const struct nft_ctx *, const struct nlattr * const *); - const struct nft_object_ops *ops; - struct list_head list; - u32 type; - unsigned int maxattr; - u8 family; - struct module *owner; - const struct nla_policy *policy; -}; - -struct nft_object; - -struct nft_regs; - -struct nft_pktinfo; - -struct nft_object_ops { - void (*eval)(struct nft_object *, struct nft_regs *, const struct nft_pktinfo *); - unsigned int size; - int (*init)(const struct nft_ctx *, const struct nlattr * const *, struct nft_object *); - void (*destroy)(const struct nft_ctx *, struct nft_object *); - int (*dump)(struct sk_buff *, struct nft_object *, bool); - void (*update)(struct nft_object *, struct nft_object *); - const struct nft_object_type *type; -}; - -struct nft_table; - -struct nft_object_hash_key { - const char *name; - const struct nft_table *table; -}; - -struct nft_object { - struct list_head list; - struct rhlist_head rhlhead; - struct nft_object_hash_key key; - u32 genmask: 2; - u32 use; - u64 handle; - u16 udlen; - u8 *udata; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - const struct nft_object_ops *ops; - unsigned char data[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct rhltable { - struct rhashtable ht; -}; - -struct nft_table { - struct list_head list; - struct rhltable chains_ht; - struct list_head chains; - struct list_head sets; - struct list_head objects; - struct list_head flowtables; - u64 hgenerator; - u64 handle; - u32 use; - u16 family: 6; - u16 flags: 8; - u16 genmask: 2; - u32 nlpid; - char *name; - u16 udlen; - u8 *udata; - u8 validate_state; -}; - -struct nft_chain; - -struct nft_verdict { - u32 code; - struct nft_chain *chain; -}; - -struct nft_regs { - union { - u32 data[20]; - struct nft_verdict verdict; - }; -}; - -struct nft_rule_blob; - -struct nft_chain { - struct nft_rule_blob __attribute__((btf_type_tag("rcu"))) *blob_gen_0; - struct nft_rule_blob __attribute__((btf_type_tag("rcu"))) *blob_gen_1; - struct list_head rules; - struct list_head list; - struct rhlist_head rhlhead; - struct nft_table *table; - u64 handle; - u32 use; - u8 flags: 5; - u8 bound: 1; - u8 genmask: 2; - char *name; - u16 udlen; - u8 *udata; - struct nft_rule_blob *blob_next; -}; - -struct nft_rule_blob { - unsigned long size; - unsigned char data[0]; -}; - -struct nft_pktinfo { - struct sk_buff *skb; - const struct nf_hook_state *state; - u8 flags; - u8 tprot; - u16 fragoff; - u16 thoff; - u16 inneroff; -}; - -struct nft_ctx { - struct net *net; - struct nft_table *table; - struct nft_chain *chain; - const struct nlattr * const *nla; - u32 portid; - u32 seq; - u16 flags; - u8 family; - u8 level; - bool report; -}; - -struct nft_expr_ops; - -struct nft_expr_type { - const struct nft_expr_ops * (*select_ops)(const struct nft_ctx *, const struct nlattr * const *); - void (*release_ops)(const struct nft_expr_ops *); - const struct nft_expr_ops *ops; - const struct nft_expr_ops *inner_ops; - struct list_head list; - const char *name; - struct module *owner; - const struct nla_policy *policy; - unsigned int maxattr; - u8 family; - u8 flags; -}; - -enum nft_trans_phase { - NFT_TRANS_PREPARE = 0, - NFT_TRANS_PREPARE_ERROR = 1, - NFT_TRANS_ABORT = 2, - NFT_TRANS_COMMIT = 3, - NFT_TRANS_RELEASE = 4, -}; - -struct nft_expr; - -struct nft_data; - -struct nft_regs_track; - -struct nft_offload_ctx; - -struct nft_flow_rule; - -struct flow_stats; - -struct nft_expr_ops { - void (*eval)(const struct nft_expr *, struct nft_regs *, const struct nft_pktinfo *); - int (*clone)(struct nft_expr *, const struct nft_expr *); - unsigned int size; - int (*init)(const struct nft_ctx *, const struct nft_expr *, const struct nlattr * const *); - void (*activate)(const struct nft_ctx *, const struct nft_expr *); - void (*deactivate)(const struct nft_ctx *, const struct nft_expr *, enum nft_trans_phase); - void (*destroy)(const struct nft_ctx *, const struct nft_expr *); - void (*destroy_clone)(const struct nft_ctx *, const struct nft_expr *); - int (*dump)(struct sk_buff *, const struct nft_expr *, bool); - int (*validate)(const struct nft_ctx *, const struct nft_expr *, const struct nft_data **); - bool (*reduce)(struct nft_regs_track *, const struct nft_expr *); - bool (*gc)(struct net *, const struct nft_expr *); - int (*offload)(struct nft_offload_ctx *, struct nft_flow_rule *, const struct nft_expr *); - bool (*offload_action)(const struct nft_expr *); - void (*offload_stats)(struct nft_expr *, const struct flow_stats *); - const struct nft_expr_type *type; - void *data; -}; - -struct nft_expr { - const struct nft_expr_ops *ops; - unsigned char data[0]; -}; - -struct nft_data { - union { - u32 data[4]; - struct nft_verdict verdict; - }; -}; - -struct nft_regs_track { - struct { - const struct nft_expr *selector; - const struct nft_expr *bitwise; - u8 num_reg; - } regs[20]; - const struct nft_expr *cur; - const struct nft_expr *last; -}; - -enum nft_offload_dep_type { - NFT_OFFLOAD_DEP_UNSPEC = 0, - NFT_OFFLOAD_DEP_NETWORK = 1, - NFT_OFFLOAD_DEP_TRANSPORT = 2, -}; - -struct nft_offload_reg { - u32 key; - u32 len; - u32 base_offset; - u32 offset; - u32 flags; - struct nft_data data; - struct nft_data mask; -}; - -struct nft_offload_ctx { - struct { - enum nft_offload_dep_type type; - __be16 l3num; - u8 protonum; - } dep; - unsigned int num_actions; - struct net *net; - struct nft_offload_reg regs[24]; -}; - -struct flow_dissector { - unsigned long long used_keys; - unsigned short offset[33]; -}; - -struct flow_dissector_key_basic { - __be16 n_proto; - u8 ip_proto; - u8 padding; -}; - -struct flow_dissector_key_control { - u16 thoff; - u16 addr_type; - u32 flags; -}; - -struct flow_dissector_key_ipv4_addrs { - __be32 src; - __be32 dst; -}; - -struct flow_dissector_key_ipv6_addrs { - struct in6_addr src; - struct in6_addr dst; -}; - -struct flow_dissector_key_ports { - union { - __be32 ports; - struct { - __be16 src; - __be16 dst; - }; - }; -}; - -struct flow_dissector_key_ip { - __u8 tos; - __u8 ttl; -}; - -struct flow_dissector_key_vlan { - union { - struct { - u16 vlan_id: 12; - u16 vlan_dei: 1; - u16 vlan_priority: 3; - }; - __be16 vlan_tci; - }; - __be16 vlan_tpid; - __be16 vlan_eth_type; - u16 padding; -}; - -struct flow_dissector_key_eth_addrs { - unsigned char dst[6]; - unsigned char src[6]; -}; - -struct flow_dissector_key_meta { - int ingress_ifindex; - u16 ingress_iftype; - u8 l2_miss; -}; - -struct nft_flow_key { - struct flow_dissector_key_basic basic; - struct flow_dissector_key_control control; - union { - struct flow_dissector_key_ipv4_addrs ipv4; - struct flow_dissector_key_ipv6_addrs ipv6; - }; - struct flow_dissector_key_ports tp; - struct flow_dissector_key_ip ip; - struct flow_dissector_key_vlan vlan; - struct flow_dissector_key_vlan cvlan; - struct flow_dissector_key_eth_addrs eth_addrs; - struct flow_dissector_key_meta meta; -}; - -struct nft_flow_match { - struct flow_dissector dissector; - struct nft_flow_key key; - struct nft_flow_key mask; -}; - -struct flow_rule; - -struct nft_flow_rule { - __be16 proto; - struct nft_flow_match match; - struct flow_rule *rule; -}; - -struct flow_match { - struct flow_dissector *dissector; - void *mask; - void *key; -}; - -enum flow_action_id { - FLOW_ACTION_ACCEPT = 0, - FLOW_ACTION_DROP = 1, - FLOW_ACTION_TRAP = 2, - FLOW_ACTION_GOTO = 3, - FLOW_ACTION_REDIRECT = 4, - FLOW_ACTION_MIRRED = 5, - FLOW_ACTION_REDIRECT_INGRESS = 6, - FLOW_ACTION_MIRRED_INGRESS = 7, - FLOW_ACTION_VLAN_PUSH = 8, - FLOW_ACTION_VLAN_POP = 9, - FLOW_ACTION_VLAN_MANGLE = 10, - FLOW_ACTION_TUNNEL_ENCAP = 11, - FLOW_ACTION_TUNNEL_DECAP = 12, - FLOW_ACTION_MANGLE = 13, - FLOW_ACTION_ADD = 14, - FLOW_ACTION_CSUM = 15, - FLOW_ACTION_MARK = 16, - FLOW_ACTION_PTYPE = 17, - FLOW_ACTION_PRIORITY = 18, - FLOW_ACTION_RX_QUEUE_MAPPING = 19, - FLOW_ACTION_WAKE = 20, - FLOW_ACTION_QUEUE = 21, - FLOW_ACTION_SAMPLE = 22, - FLOW_ACTION_POLICE = 23, - FLOW_ACTION_CT = 24, - FLOW_ACTION_CT_METADATA = 25, - FLOW_ACTION_MPLS_PUSH = 26, - FLOW_ACTION_MPLS_POP = 27, - FLOW_ACTION_MPLS_MANGLE = 28, - FLOW_ACTION_GATE = 29, - FLOW_ACTION_PPPOE_PUSH = 30, - FLOW_ACTION_JUMP = 31, - FLOW_ACTION_PIPE = 32, - FLOW_ACTION_VLAN_PUSH_ETH = 33, - FLOW_ACTION_VLAN_POP_ETH = 34, - FLOW_ACTION_CONTINUE = 35, - NUM_FLOW_ACTIONS = 36, -}; - -enum flow_action_hw_stats { - FLOW_ACTION_HW_STATS_IMMEDIATE = 1, - FLOW_ACTION_HW_STATS_DELAYED = 2, - FLOW_ACTION_HW_STATS_ANY = 3, - FLOW_ACTION_HW_STATS_DISABLED = 4, - FLOW_ACTION_HW_STATS_DONT_CARE = 7, -}; - -typedef void (*action_destr)(void *); - -enum flow_action_mangle_base { - FLOW_ACT_MANGLE_UNSPEC = 0, - FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1, - FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2, - FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3, - FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4, - FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5, -}; - -struct psample_group; - -struct action_gate_entry; - -struct nf_flowtable; - -struct flow_action_cookie; - -struct flow_action_entry { - enum flow_action_id id; - u32 hw_index; - unsigned long cookie; - u64 miss_cookie; - enum flow_action_hw_stats hw_stats; - action_destr destructor; - void *destructor_priv; - union { - u32 chain_index; - struct net_device *dev; - struct { - u16 vid; - __be16 proto; - u8 prio; - } vlan; - struct { - unsigned char dst[6]; - unsigned char src[6]; - } vlan_push_eth; - struct { - enum flow_action_mangle_base htype; - u32 offset; - u32 mask; - u32 val; - } mangle; - struct ip_tunnel_info *tunnel; - u32 csum_flags; - u32 mark; - u16 ptype; - u16 rx_queue; - u32 priority; - struct { - u32 ctx; - u32 index; - u8 vf; - } queue; - struct { - struct psample_group *psample_group; - u32 rate; - u32 trunc_size; - bool truncate; - } sample; - struct { - u32 burst; - u64 rate_bytes_ps; - u64 peakrate_bytes_ps; - u32 avrate; - u16 overhead; - u64 burst_pkt; - u64 rate_pkt_ps; - u32 mtu; - struct { - enum flow_action_id act_id; - u32 extval; - } exceed; - struct { - enum flow_action_id act_id; - u32 extval; - } notexceed; - } police; - struct { - int action; - u16 zone; - struct nf_flowtable *flow_table; - } ct; - struct { - unsigned long cookie; - u32 mark; - u32 labels[4]; - bool orig_dir; - } ct_metadata; - struct { - u32 label; - __be16 proto; - u8 tc; - u8 bos; - u8 ttl; - } mpls_push; - struct { - __be16 proto; - } mpls_pop; - struct { - u32 label; - u8 tc; - u8 bos; - u8 ttl; - } mpls_mangle; - struct { - s32 prio; - u64 basetime; - u64 cycletime; - u64 cycletimeext; - u32 num_entries; - struct action_gate_entry *entries; - } gate; - struct { - u16 sid; - } pppoe; - }; - struct flow_action_cookie *user_cookie; -}; - -struct flow_action { - unsigned int num_entries; - struct flow_action_entry entries[0]; -}; - -struct flow_rule { - struct flow_match match; - struct flow_action action; -}; - -struct nf_flowtable_type; - -struct nf_flowtable { - unsigned int flags; - int priority; - struct rhashtable rhashtable; - struct list_head list; - const struct nf_flowtable_type *type; - struct delayed_work gc_work; - struct flow_block flow_block; - struct rw_semaphore flow_block_lock; - possible_net_t net; -}; - -enum flow_block_command { - FLOW_BLOCK_BIND = 0, - FLOW_BLOCK_UNBIND = 1, -}; - -enum flow_offload_tuple_dir { - FLOW_OFFLOAD_DIR_ORIGINAL = 0, - FLOW_OFFLOAD_DIR_REPLY = 1, -}; - -struct flow_offload; - -struct nf_flow_rule; - -struct nf_flowtable_type { - struct list_head list; - int family; - int (*init)(struct nf_flowtable *); - bool (*gc)(const struct flow_offload *); - int (*setup)(struct nf_flowtable *, struct net_device *, enum flow_block_command); - int (*action)(struct net *, struct flow_offload *, enum flow_offload_tuple_dir, struct nf_flow_rule *); - void (*free)(struct nf_flowtable *); - void (*get)(struct nf_flowtable *); - void (*put)(struct nf_flowtable *); - nf_hookfn *hook; - struct module *owner; -}; - -struct flow_offload_tuple { - union { - struct in_addr src_v4; - struct in6_addr src_v6; - }; - union { - struct in_addr dst_v4; - struct in6_addr dst_v6; - }; - struct { - __be16 src_port; - __be16 dst_port; - }; - int iifidx; - u8 l3proto; - u8 l4proto; - struct { - u16 id; - __be16 proto; - } encap[2]; - struct {} __hash; - u8 dir: 2; - u8 xmit_type: 3; - u8 encap_num: 2; - char: 1; - u8 in_vlan_ingress: 2; - u16 mtu; - union { - struct { - struct dst_entry *dst_cache; - u32 dst_cookie; - }; - struct { - u32 ifidx; - u32 hw_ifidx; - u8 h_source[6]; - u8 h_dest[6]; - } out; - struct { - u32 iifidx; - } tc; - }; -}; - -struct flow_offload_tuple_rhash { - struct rhash_head node; - struct flow_offload_tuple tuple; -}; - -struct flow_offload { - struct flow_offload_tuple_rhash tuplehash[2]; - struct nf_conn *ct; - unsigned long flags; - u16 type; - u32 timeout; - struct callback_head callback_head; -}; - -struct flow_dissector_key_keyid { - __be32 keyid; -}; - -struct flow_dissector_key_tcp { - __be16 flags; -}; - -struct nf_flow_key { - struct flow_dissector_key_meta meta; - struct flow_dissector_key_control control; - struct flow_dissector_key_control enc_control; - struct flow_dissector_key_basic basic; - struct flow_dissector_key_vlan vlan; - struct flow_dissector_key_vlan cvlan; - union { - struct flow_dissector_key_ipv4_addrs ipv4; - struct flow_dissector_key_ipv6_addrs ipv6; - }; - struct flow_dissector_key_keyid enc_key_id; - union { - struct flow_dissector_key_ipv4_addrs enc_ipv4; - struct flow_dissector_key_ipv6_addrs enc_ipv6; - }; - struct flow_dissector_key_tcp tcp; - struct flow_dissector_key_ports tp; -}; - -struct nf_flow_match { - struct flow_dissector dissector; - struct nf_flow_key key; - struct nf_flow_key mask; -}; - -struct nf_flow_rule { - struct nf_flow_match match; - struct flow_rule *rule; -}; - -struct flow_action_cookie { - u32 cookie_len; - u8 cookie[0]; -}; - -struct flow_stats { - u64 pkts; - u64 bytes; - u64 drops; - u64 lastused; - enum flow_action_hw_stats used_hw_stats; - bool used_hw_stats_valid; -}; - -enum nft_counter_attributes { - NFTA_COUNTER_UNSPEC = 0, - NFTA_COUNTER_BYTES = 1, - NFTA_COUNTER_PACKETS = 2, - NFTA_COUNTER_PAD = 3, - __NFTA_COUNTER_MAX = 4, -}; - -struct nft_counter { - s64 bytes; - s64 packets; -}; - -struct nft_counter_percpu_priv { - struct nft_counter __attribute__((btf_type_tag("percpu"))) *counter; -}; - -struct net_protocol { - int (*handler)(struct sk_buff *); - int (*err_handler)(struct sk_buff *, u32); - unsigned int no_policy: 1; - unsigned int icmp_strict_tag_validation: 1; - u32 secret; -}; - -struct udp_seq_afinfo { - sa_family_t family; - struct udp_table *udp_table; -}; - -struct ip6_ra_chain { - struct ip6_ra_chain *next; - struct sock *sk; - int sel; - void (*destructor)(struct sock *); -}; - -struct seg6_pernet_data { - struct mutex lock; - struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; -}; - -enum { - INET_ECN_NOT_ECT = 0, - INET_ECN_ECT_1 = 1, - INET_ECN_ECT_0 = 2, - INET_ECN_CE = 3, - INET_ECN_MASK = 3, -}; - -struct udp_sock { - struct inet_sock inet; - unsigned long udp_flags; - int pending; - __u8 encap_type; - __u16 len; - __u16 gso_size; - __u16 pcslen; - __u16 pcrlen; - int (*encap_rcv)(struct sock *, struct sk_buff *); - void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); - int (*encap_err_lookup)(struct sock *, struct sk_buff *); - void (*encap_destroy)(struct sock *); - struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); - int (*gro_complete)(struct sock *, struct sk_buff *, int); - long: 64; - struct sk_buff_head reader_queue; - int forward_deficit; - int forward_threshold; - bool peeking_with_offset; - long: 64; - long: 64; - long: 64; -}; - -struct ipv6_sr_hdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 type; - __u8 segments_left; - __u8 first_segment; - __u8 flags; - __u16 tag; - struct in6_addr segments[0]; -}; - -struct __kernel_sockaddr_storage { - union { - struct { - __kernel_sa_family_t ss_family; - char __data[126]; - }; - void *__align; - }; -}; - -struct group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; -}; - -struct compat_group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; -} __attribute__((packed)); - -struct group_filter { - union { - struct { - __u32 gf_interface_aux; - struct __kernel_sockaddr_storage gf_group_aux; - __u32 gf_fmode_aux; - __u32 gf_numsrc_aux; - struct __kernel_sockaddr_storage gf_slist[1]; - }; - struct { - __u32 gf_interface; - struct __kernel_sockaddr_storage gf_group; - __u32 gf_fmode; - __u32 gf_numsrc; - struct __kernel_sockaddr_storage gf_slist_flex[0]; - }; - }; -}; - -struct in6_flowlabel_req { - struct in6_addr flr_dst; - __be32 flr_label; - __u8 flr_action; - __u8 flr_share; - __u16 flr_flags; - __u16 flr_expires; - __u16 flr_linger; - __u32 __flr_pad; -}; - -struct ipv6_mreq { - struct in6_addr ipv6mr_multiaddr; - int ipv6mr_ifindex; -}; - -struct group_req { - __u32 gr_interface; - struct __kernel_sockaddr_storage gr_group; -}; - -struct ip6_mtuinfo { - struct sockaddr_in6 ip6m_addr; - __u32 ip6m_mtu; -}; - -struct ip_sf_list { - struct ip_sf_list *sf_next; - unsigned long sf_count[2]; - __be32 sf_inaddr; - unsigned char sf_gsresp; - unsigned char sf_oldin; - unsigned char sf_crcount; -}; - -union net_bridge_eht_addr { - __be32 ip4; - struct in6_addr ip6; -}; - -struct net_bridge_mcast_gc { - struct hlist_node gc_node; - void (*destroy)(struct net_bridge_mcast_gc *); -}; - -struct net_bridge_port_group; - -struct net_bridge_group_eht_set { - struct rb_node rb_node; - union net_bridge_eht_addr src_addr; - struct rb_root entry_tree; - struct timer_list timer; - struct net_bridge_port_group *pg; - struct net_bridge *br; - struct net_bridge_mcast_gc mcast_gc; -}; - -struct net_bridge_port_group_sg_key { - struct net_bridge_port *port; - struct br_ip addr; -}; - -struct net_bridge_port_group { - struct net_bridge_port_group __attribute__((btf_type_tag("rcu"))) *next; - struct net_bridge_port_group_sg_key key; - unsigned char eth_addr[6]; - unsigned char flags; - unsigned char filter_mode; - unsigned char grp_query_rexmit_cnt; - unsigned char rt_protocol; - struct hlist_head src_list; - unsigned int src_ents; - struct timer_list timer; - struct timer_list rexmit_timer; - struct hlist_node mglist; - struct rb_root eht_set_tree; - struct rb_root eht_host_tree; - struct rhash_head rhnode; - struct net_bridge_mcast_gc mcast_gc; - struct callback_head rcu; -}; - -struct net_bridge_group_eht_host; - -struct net_bridge_group_eht_set_entry { - struct rb_node rb_node; - struct hlist_node host_list; - union net_bridge_eht_addr h_addr; - struct timer_list timer; - struct net_bridge *br; - struct net_bridge_group_eht_set *eht_set; - struct net_bridge_group_eht_host *h_parent; - struct net_bridge_mcast_gc mcast_gc; -}; - -struct net_bridge_group_eht_host { - struct rb_node rb_node; - union net_bridge_eht_addr h_addr; - struct hlist_head set_entries; - unsigned int num_entries; - unsigned char filter_mode; - struct net_bridge_port_group *pg; -}; - -struct net_bridge_group_src { - struct hlist_node node; - struct br_ip addr; - struct net_bridge_port_group *pg; - u8 flags; - u8 src_query_rexmit_cnt; - struct timer_list timer; - struct net_bridge *br; - struct net_bridge_mcast_gc mcast_gc; - struct callback_head rcu; -}; - -struct saved_msr; - -struct saved_msrs { - unsigned int num; - struct saved_msr *array; -}; - -struct desc_ptr { - unsigned short size; - unsigned long address; -} __attribute__((packed)); - -struct saved_context { - struct pt_regs regs; - u16 ds; - u16 es; - u16 fs; - u16 gs; - unsigned long kernelmode_gs_base; - unsigned long usermode_gs_base; - unsigned long fs_base; - unsigned long cr0; - unsigned long cr2; - unsigned long cr3; - unsigned long cr4; - u64 misc_enable; - struct saved_msrs saved_msrs; - unsigned long efer; - u16 gdt_pad; - struct desc_ptr gdt_desc; - u16 idt_pad; - struct desc_ptr idt; - u16 ldt; - u16 tss; - unsigned long tr; - unsigned long safety; - unsigned long return_address; - bool misc_enable_saved; -} __attribute__((packed)); - -struct msr_info { - u32 msr_no; - struct msr reg; - struct msr __attribute__((btf_type_tag("percpu"))) *msrs; - int err; -}; - -struct saved_msr { - bool valid; - struct msr_info info; -}; - -enum { - DESC_TSS = 9, - DESC_LDT = 2, - DESCTYPE_S = 16, -}; - -struct gdt_page { - struct desc_struct gdt[16]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *); - -struct ldttss_desc { - u16 limit0; - u16 base0; - u16 base1: 8; - u16 type: 5; - u16 dpl: 2; - u16 p: 1; - u16 limit1: 4; - u16 zero0: 3; - u16 g: 1; - u16 base2: 8; - u32 base3; - u32 zero1; -}; - -typedef struct ldttss_desc tss_desc; - -struct entry_stack { - char stack[4096]; -}; - -struct entry_stack_page { - struct entry_stack stack; -}; - -struct cea_exception_stacks { - char DF_stack_guard[4096]; - char DF_stack[8192]; - char NMI_stack_guard[4096]; - char NMI_stack[8192]; - char DB_stack_guard[4096]; - char DB_stack[8192]; - char MCE_stack_guard[4096]; - char MCE_stack[8192]; - char VC_stack_guard[4096]; - char VC_stack[8192]; - char VC2_stack_guard[4096]; - char VC2_stack[8192]; - char IST_top_guard[4096]; -}; - -struct debug_store { - u64 bts_buffer_base; - u64 bts_index; - u64 bts_absolute_maximum; - u64 bts_interrupt_threshold; - u64 pebs_buffer_base; - u64 pebs_index; - u64 pebs_absolute_maximum; - u64 pebs_interrupt_threshold; - u64 pebs_event_reset[48]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct debug_store_buffers { - char bts_buffer[65536]; - char pebs_buffer[65536]; -}; - -struct cpu_entry_area { - char gdt[4096]; - struct entry_stack_page entry_stack_page; - struct tss_struct tss; - struct cea_exception_stacks estacks; - struct debug_store cpu_debug_store; - struct debug_store_buffers cpu_debug_buffers; -}; - -struct msr_enumeration { - u32 msr_no; - u32 feature; -}; - -struct tlb_state_shared { - bool is_lazy; -}; - -struct flush_tlb_info { - struct mm_struct *mm; - unsigned long start; - unsigned long end; - u64 new_tlb_gen; - unsigned int initiating_cpu; - u8 stride_shift; - u8 freed_tables; -}; - -enum tlb_flush_reason { - TLB_FLUSH_ON_TASK_SWITCH = 0, - TLB_REMOTE_SHOOTDOWN = 1, - TLB_LOCAL_SHOOTDOWN = 2, - TLB_LOCAL_MM_SHOOTDOWN = 3, - TLB_REMOTE_SEND_IPI = 4, - NR_TLB_FLUSH_REASONS = 5, -}; - -enum sysctl_writes_mode { - SYSCTL_WRITES_LEGACY = -1, - SYSCTL_WRITES_WARN = 0, - SYSCTL_WRITES_STRICT = 1, -}; - -struct do_proc_dointvec_minmax_conv_param { - int *min; - int *max; -}; - -struct do_proc_douintvec_minmax_conv_param { - unsigned int *min; - unsigned int *max; -}; - -struct boot_triggers { - const char *event; - char *trigger; -}; - -typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); - -struct eventfs_entry { - const char *name; - eventfs_callback callback; -}; - -struct ftrace_func_command { - struct list_head list; - char *name; - int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); -}; - -struct ftrace_probe_ops { - void (*func)(unsigned long, unsigned long, struct trace_array *, struct ftrace_probe_ops *, void *); - int (*init)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *, void **); - void (*free)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *); - int (*print)(struct seq_file *, unsigned long, struct ftrace_probe_ops *, void *); -}; - -enum { - EVENT_FILE_FL_ENABLED_BIT = 0, - EVENT_FILE_FL_RECORDED_CMD_BIT = 1, - EVENT_FILE_FL_RECORDED_TGID_BIT = 2, - EVENT_FILE_FL_FILTERED_BIT = 3, - EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, - EVENT_FILE_FL_SOFT_MODE_BIT = 5, - EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, - EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, - EVENT_FILE_FL_TRIGGER_COND_BIT = 8, - EVENT_FILE_FL_PID_FILTER_BIT = 9, - EVENT_FILE_FL_WAS_ENABLED_BIT = 10, - EVENT_FILE_FL_FREED_BIT = 11, -}; - -enum { - TRACE_PIDS = 1, - TRACE_NO_PIDS = 2, -}; - -enum { - FILTER_OTHER = 0, - FILTER_STATIC_STRING = 1, - FILTER_DYN_STRING = 2, - FILTER_RDYN_STRING = 3, - FILTER_PTR_STRING = 4, - FILTER_TRACE_FN = 5, - FILTER_CPUMASK = 6, - FILTER_COMM = 7, - FILTER_CPU = 8, - FILTER_STACKTRACE = 9, -}; - -enum trace_flag_type { - TRACE_FLAG_IRQS_OFF = 1, - TRACE_FLAG_IRQS_NOSUPPORT = 2, - TRACE_FLAG_NEED_RESCHED = 4, - TRACE_FLAG_HARDIRQ = 8, - TRACE_FLAG_SOFTIRQ = 16, - TRACE_FLAG_PREEMPT_RESCHED = 32, - TRACE_FLAG_NMI = 64, - TRACE_FLAG_BH_OFF = 128, -}; - -enum trace_iterator_flags { - TRACE_ITER_PRINT_PARENT = 1, - TRACE_ITER_SYM_OFFSET = 2, - TRACE_ITER_SYM_ADDR = 4, - TRACE_ITER_VERBOSE = 8, - TRACE_ITER_RAW = 16, - TRACE_ITER_HEX = 32, - TRACE_ITER_BIN = 64, - TRACE_ITER_BLOCK = 128, - TRACE_ITER_FIELDS = 256, - TRACE_ITER_PRINTK = 512, - TRACE_ITER_ANNOTATE = 1024, - TRACE_ITER_USERSTACKTRACE = 2048, - TRACE_ITER_SYM_USEROBJ = 4096, - TRACE_ITER_PRINTK_MSGONLY = 8192, - TRACE_ITER_CONTEXT_INFO = 16384, - TRACE_ITER_LATENCY_FMT = 32768, - TRACE_ITER_RECORD_CMD = 65536, - TRACE_ITER_RECORD_TGID = 131072, - TRACE_ITER_OVERWRITE = 262144, - TRACE_ITER_STOP_ON_FREE = 524288, - TRACE_ITER_IRQ_INFO = 1048576, - TRACE_ITER_MARKERS = 2097152, - TRACE_ITER_EVENT_FORK = 4194304, - TRACE_ITER_PAUSE_ON_TRACE = 8388608, - TRACE_ITER_HASH_PTR = 16777216, - TRACE_ITER_FUNCTION = 33554432, - TRACE_ITER_FUNC_FORK = 67108864, - TRACE_ITER_DISPLAY_GRAPH = 134217728, - TRACE_ITER_STACKTRACE = 268435456, -}; - -enum { - TRACE_ARRAY_FL_GLOBAL = 1, -}; - -enum { - FORMAT_HEADER = 1, - FORMAT_FIELD_SEPERATOR = 2, - FORMAT_PRINTFMT = 3, -}; - -enum lockdown_reason { - LOCKDOWN_NONE = 0, - LOCKDOWN_MODULE_SIGNATURE = 1, - LOCKDOWN_DEV_MEM = 2, - LOCKDOWN_EFI_TEST = 3, - LOCKDOWN_KEXEC = 4, - LOCKDOWN_HIBERNATION = 5, - LOCKDOWN_PCI_ACCESS = 6, - LOCKDOWN_IOPORT = 7, - LOCKDOWN_MSR = 8, - LOCKDOWN_ACPI_TABLES = 9, - LOCKDOWN_DEVICE_TREE = 10, - LOCKDOWN_PCMCIA_CIS = 11, - LOCKDOWN_TIOCSSERIAL = 12, - LOCKDOWN_MODULE_PARAMETERS = 13, - LOCKDOWN_MMIOTRACE = 14, - LOCKDOWN_DEBUGFS = 15, - LOCKDOWN_XMON_WR = 16, - LOCKDOWN_BPF_WRITE_USER = 17, - LOCKDOWN_DBG_WRITE_KERNEL = 18, - LOCKDOWN_RTAS_ERROR_INJECTION = 19, - LOCKDOWN_INTEGRITY_MAX = 20, - LOCKDOWN_KCORE = 21, - LOCKDOWN_KPROBES = 22, - LOCKDOWN_BPF_READ_KERNEL = 23, - LOCKDOWN_DBG_READ_KERNEL = 24, - LOCKDOWN_PERF = 25, - LOCKDOWN_TRACEFS = 26, - LOCKDOWN_XMON_RW = 27, - LOCKDOWN_XFRM_SECRET = 28, - LOCKDOWN_CONFIDENTIALITY_MAX = 29, -}; - -struct ftrace_event_field { - struct list_head link; - const char *name; - const char *type; - int filter_type; - int offset; - int size; - int is_signed; - int len; -}; - -struct module_string { - struct list_head next; - struct module *module; - char *str; -}; - -struct trace_parser { - bool cont; - char *buffer; - unsigned int idx; - unsigned int size; -}; - -struct event_probe_data { - struct trace_event_file *file; - unsigned long count; - int ref; - bool enable; -}; - -typedef int (*ftrace_mapper_func)(void *); - -enum { - BTF_KIND_UNKN = 0, - BTF_KIND_INT = 1, - BTF_KIND_PTR = 2, - BTF_KIND_ARRAY = 3, - BTF_KIND_STRUCT = 4, - BTF_KIND_UNION = 5, - BTF_KIND_ENUM = 6, - BTF_KIND_FWD = 7, - BTF_KIND_TYPEDEF = 8, - BTF_KIND_VOLATILE = 9, - BTF_KIND_CONST = 10, - BTF_KIND_RESTRICT = 11, - BTF_KIND_FUNC = 12, - BTF_KIND_FUNC_PROTO = 13, - BTF_KIND_VAR = 14, - BTF_KIND_DATASEC = 15, - BTF_KIND_FLOAT = 16, - BTF_KIND_DECL_TAG = 17, - BTF_KIND_TYPE_TAG = 18, - BTF_KIND_ENUM64 = 19, - NR_BTF_KINDS = 20, - BTF_KIND_MAX = 19, -}; - -enum lru_status { - LRU_REMOVED = 0, - LRU_REMOVED_RETRY = 1, - LRU_ROTATE = 2, - LRU_SKIP = 3, - LRU_RETRY = 4, - LRU_STOP = 5, -}; - -struct reciprocal_value { - u32 m; - u8 sh1; - u8 sh2; -}; - -struct kmem_cache_order_objects { - unsigned int x; -}; - -struct kmem_cache_cpu; - -struct kmem_cache_node; - -struct kmem_cache { - struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab; - slab_flags_t flags; - unsigned long min_partial; - unsigned int size; - unsigned int object_size; - struct reciprocal_value reciprocal_size; - unsigned int offset; - unsigned int cpu_partial; - unsigned int cpu_partial_slabs; - struct kmem_cache_order_objects oo; - struct kmem_cache_order_objects min; - gfp_t allocflags; - int refcount; - void (*ctor)(void *); - unsigned int inuse; - unsigned int align; - unsigned int red_left_pad; - const char *name; - struct list_head list; - struct kobject kobj; - unsigned int remote_node_defrag_ratio; - struct kmem_cache_node *node[1024]; -}; - -typedef unsigned __int128 __u128; - -typedef __u128 u128; - -typedef u128 freelist_full_t; - -typedef union { - struct { - void *freelist; - unsigned long counter; - }; - freelist_full_t full; -} freelist_aba_t; - -struct slab; - -struct kmem_cache_cpu { - union { - struct { - void **freelist; - unsigned long tid; - }; - freelist_aba_t freelist_tid; - }; - struct slab *slab; - struct slab *partial; - local_lock_t lock; -}; - -struct list_lru_memcg { - struct callback_head rcu; - struct list_lru_one node[0]; -}; - -typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); - -struct list_lru_memcg_table { - struct list_lru_memcg *mlru; - struct mem_cgroup *memcg; -}; - -typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int); - -typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int); - -typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int); - -typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int); - -typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct page *, struct file *, int, int, int); - -typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct page *, unsigned long, bool, unsigned long, struct file *, int, int); - -struct collapse_control { - bool is_khugepaged; - u32 node_load[1024]; - nodemask_t alloc_nmask; -}; - -struct kobj_attribute { - struct attribute attr; - ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *); - ssize_t (*store)(struct kobject *, struct kobj_attribute *, const char *, size_t); -}; - -struct khugepaged_mm_slot; - -struct khugepaged_scan { - struct list_head mm_head; - struct khugepaged_mm_slot *mm_slot; - unsigned long address; -}; - -struct mm_slot { - struct hlist_node hash; - struct list_head mm_node; - struct mm_struct *mm; -}; - -struct khugepaged_mm_slot { - struct mm_slot slot; -}; - -enum scan_result { - SCAN_FAIL = 0, - SCAN_SUCCEED = 1, - SCAN_PMD_NULL = 2, - SCAN_PMD_NONE = 3, - SCAN_PMD_MAPPED = 4, - SCAN_EXCEED_NONE_PTE = 5, - SCAN_EXCEED_SWAP_PTE = 6, - SCAN_EXCEED_SHARED_PTE = 7, - SCAN_PTE_NON_PRESENT = 8, - SCAN_PTE_UFFD_WP = 9, - SCAN_PTE_MAPPED_HUGEPAGE = 10, - SCAN_PAGE_RO = 11, - SCAN_LACK_REFERENCED_PAGE = 12, - SCAN_PAGE_NULL = 13, - SCAN_SCAN_ABORT = 14, - SCAN_PAGE_COUNT = 15, - SCAN_PAGE_LRU = 16, - SCAN_PAGE_LOCK = 17, - SCAN_PAGE_ANON = 18, - SCAN_PAGE_COMPOUND = 19, - SCAN_ANY_PROCESS = 20, - SCAN_VMA_NULL = 21, - SCAN_VMA_CHECK = 22, - SCAN_ADDRESS_RANGE = 23, - SCAN_DEL_PAGE_LRU = 24, - SCAN_ALLOC_HUGE_PAGE_FAIL = 25, - SCAN_CGROUP_CHARGE_FAIL = 26, - SCAN_TRUNCATED = 27, - SCAN_PAGE_HAS_PRIVATE = 28, - SCAN_STORE_FAILED = 29, - SCAN_COPY_MC = 30, - SCAN_PAGE_FILLED = 31, -}; - -enum transparent_hugepage_flag { - TRANSPARENT_HUGEPAGE_UNSUPPORTED = 0, - TRANSPARENT_HUGEPAGE_FLAG = 1, - TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2, - TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3, - TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4, - TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5, - TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6, - TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7, - TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8, -}; - -enum migratetype { - MIGRATE_UNMOVABLE = 0, - MIGRATE_MOVABLE = 1, - MIGRATE_RECLAIMABLE = 2, - MIGRATE_PCPTYPES = 3, - MIGRATE_HIGHATOMIC = 3, - MIGRATE_TYPES = 4, -}; - -enum vm_event_item { - PGPGIN = 0, - PGPGOUT = 1, - PSWPIN = 2, - PSWPOUT = 3, - PGALLOC_DMA = 4, - PGALLOC_DMA32 = 5, - PGALLOC_NORMAL = 6, - PGALLOC_MOVABLE = 7, - ALLOCSTALL_DMA = 8, - ALLOCSTALL_DMA32 = 9, - ALLOCSTALL_NORMAL = 10, - ALLOCSTALL_MOVABLE = 11, - PGSCAN_SKIP_DMA = 12, - PGSCAN_SKIP_DMA32 = 13, - PGSCAN_SKIP_NORMAL = 14, - PGSCAN_SKIP_MOVABLE = 15, - PGFREE = 16, - PGACTIVATE = 17, - PGDEACTIVATE = 18, - PGLAZYFREE = 19, - PGFAULT = 20, - PGMAJFAULT = 21, - PGLAZYFREED = 22, - PGREFILL = 23, - PGREUSE = 24, - PGSTEAL_KSWAPD = 25, - PGSTEAL_DIRECT = 26, - PGSTEAL_KHUGEPAGED = 27, - PGSCAN_KSWAPD = 28, - PGSCAN_DIRECT = 29, - PGSCAN_KHUGEPAGED = 30, - PGSCAN_DIRECT_THROTTLE = 31, - PGSCAN_ANON = 32, - PGSCAN_FILE = 33, - PGSTEAL_ANON = 34, - PGSTEAL_FILE = 35, - PGSCAN_ZONE_RECLAIM_FAILED = 36, - PGINODESTEAL = 37, - SLABS_SCANNED = 38, - KSWAPD_INODESTEAL = 39, - KSWAPD_LOW_WMARK_HIT_QUICKLY = 40, - KSWAPD_HIGH_WMARK_HIT_QUICKLY = 41, - PAGEOUTRUN = 42, - PGROTATED = 43, - DROP_PAGECACHE = 44, - DROP_SLAB = 45, - OOM_KILL = 46, - PGMIGRATE_SUCCESS = 47, - PGMIGRATE_FAIL = 48, - THP_MIGRATION_SUCCESS = 49, - THP_MIGRATION_FAIL = 50, - THP_MIGRATION_SPLIT = 51, - COMPACTMIGRATE_SCANNED = 52, - COMPACTFREE_SCANNED = 53, - COMPACTISOLATED = 54, - COMPACTSTALL = 55, - COMPACTFAIL = 56, - COMPACTSUCCESS = 57, - KCOMPACTD_WAKE = 58, - KCOMPACTD_MIGRATE_SCANNED = 59, - KCOMPACTD_FREE_SCANNED = 60, - HTLB_BUDDY_PGALLOC = 61, - HTLB_BUDDY_PGALLOC_FAIL = 62, - UNEVICTABLE_PGCULLED = 63, - UNEVICTABLE_PGSCANNED = 64, - UNEVICTABLE_PGRESCUED = 65, - UNEVICTABLE_PGMLOCKED = 66, - UNEVICTABLE_PGMUNLOCKED = 67, - UNEVICTABLE_PGCLEARED = 68, - UNEVICTABLE_PGSTRANDED = 69, - THP_FAULT_ALLOC = 70, - THP_FAULT_FALLBACK = 71, - THP_FAULT_FALLBACK_CHARGE = 72, - THP_COLLAPSE_ALLOC = 73, - THP_COLLAPSE_ALLOC_FAILED = 74, - THP_FILE_ALLOC = 75, - THP_FILE_FALLBACK = 76, - THP_FILE_FALLBACK_CHARGE = 77, - THP_FILE_MAPPED = 78, - THP_SPLIT_PAGE = 79, - THP_SPLIT_PAGE_FAILED = 80, - THP_DEFERRED_SPLIT_PAGE = 81, - THP_SPLIT_PMD = 82, - THP_SCAN_EXCEED_NONE_PTE = 83, - THP_SCAN_EXCEED_SWAP_PTE = 84, - THP_SCAN_EXCEED_SHARED_PTE = 85, - THP_SPLIT_PUD = 86, - THP_ZERO_PAGE_ALLOC = 87, - THP_ZERO_PAGE_ALLOC_FAILED = 88, - THP_SWPOUT = 89, - THP_SWPOUT_FALLBACK = 90, - SWAP_RA = 91, - SWAP_RA_HIT = 92, - ZSWPIN = 93, - ZSWPOUT = 94, - ZSWPWB = 95, - DIRECT_MAP_LEVEL2_SPLIT = 96, - DIRECT_MAP_LEVEL3_SPLIT = 97, - NR_VM_EVENT_ITEMS = 98, -}; - -enum sgp_type { - SGP_READ = 0, - SGP_NOALLOC = 1, - SGP_CACHE = 2, - SGP_WRITE = 3, - SGP_FALLOC = 4, -}; - -enum ttu_flags { - TTU_SPLIT_HUGE_PMD = 4, - TTU_IGNORE_MLOCK = 8, - TTU_SYNC = 16, - TTU_HWPOISON = 32, - TTU_BATCH_FLUSH = 64, - TTU_RMAP_LOCKED = 128, -}; - -enum node_stat_item { - NR_LRU_BASE = 0, - NR_INACTIVE_ANON = 0, - NR_ACTIVE_ANON = 1, - NR_INACTIVE_FILE = 2, - NR_ACTIVE_FILE = 3, - NR_UNEVICTABLE = 4, - NR_SLAB_RECLAIMABLE_B = 5, - NR_SLAB_UNRECLAIMABLE_B = 6, - NR_ISOLATED_ANON = 7, - NR_ISOLATED_FILE = 8, - WORKINGSET_NODES = 9, - WORKINGSET_REFAULT_BASE = 10, - WORKINGSET_REFAULT_ANON = 10, - WORKINGSET_REFAULT_FILE = 11, - WORKINGSET_ACTIVATE_BASE = 12, - WORKINGSET_ACTIVATE_ANON = 12, - WORKINGSET_ACTIVATE_FILE = 13, - WORKINGSET_RESTORE_BASE = 14, - WORKINGSET_RESTORE_ANON = 14, - WORKINGSET_RESTORE_FILE = 15, - WORKINGSET_NODERECLAIM = 16, - NR_ANON_MAPPED = 17, - NR_FILE_MAPPED = 18, - NR_FILE_PAGES = 19, - NR_FILE_DIRTY = 20, - NR_WRITEBACK = 21, - NR_WRITEBACK_TEMP = 22, - NR_SHMEM = 23, - NR_SHMEM_THPS = 24, - NR_SHMEM_PMDMAPPED = 25, - NR_FILE_THPS = 26, - NR_FILE_PMDMAPPED = 27, - NR_ANON_THPS = 28, - NR_VMSCAN_WRITE = 29, - NR_VMSCAN_IMMEDIATE = 30, - NR_DIRTIED = 31, - NR_WRITTEN = 32, - NR_THROTTLED_WRITTEN = 33, - NR_KERNEL_MISC_RECLAIMABLE = 34, - NR_FOLL_PIN_ACQUIRED = 35, - NR_FOLL_PIN_RELEASED = 36, - NR_KERNEL_STACK_KB = 37, - NR_PAGETABLE = 38, - NR_SECONDARY_PAGETABLE = 39, - NR_SWAPCACHE = 40, - PGDEMOTE_KSWAPD = 41, - PGDEMOTE_DIRECT = 42, - PGDEMOTE_KHUGEPAGED = 43, - NR_VM_NODE_STAT_ITEMS = 44, -}; - -struct trace_event_raw_mm_khugepaged_scan_pmd { - struct trace_entry ent; - struct mm_struct *mm; - unsigned long pfn; - bool writable; - int referenced; - int none_or_zero; - int status; - int unmapped; - char __data[0]; -}; - -struct trace_event_raw_mm_collapse_huge_page { - struct trace_entry ent; - struct mm_struct *mm; - int isolated; - int status; - char __data[0]; -}; - -struct trace_event_raw_mm_collapse_huge_page_isolate { - struct trace_entry ent; - unsigned long pfn; - int none_or_zero; - int referenced; - bool writable; - int status; - char __data[0]; -}; - -struct trace_event_raw_mm_collapse_huge_page_swapin { - struct trace_entry ent; - struct mm_struct *mm; - int swapped_in; - int referenced; - int ret; - char __data[0]; -}; - -struct trace_event_raw_mm_khugepaged_scan_file { - struct trace_entry ent; - struct mm_struct *mm; - unsigned long pfn; - u32 __data_loc_filename; - int present; - int swap; - int result; - char __data[0]; -}; - -struct trace_event_raw_mm_khugepaged_collapse_file { - struct trace_entry ent; - struct mm_struct *mm; - unsigned long hpfn; - unsigned long index; - unsigned long addr; - bool is_shmem; - u32 __data_loc_filename; - int nr; - int result; - char __data[0]; -}; - -struct ptdesc { - unsigned long __page_flags; - union { - struct callback_head pt_rcu_head; - struct list_head pt_list; - struct { - unsigned long _pt_pad_1; - pgtable_t pmd_huge_pte; - }; - }; - unsigned long __page_mapping; - union { - unsigned long pt_index; - struct mm_struct *pt_mm; - atomic_t pt_frag_refcount; - }; - union { - unsigned long _pt_pad_2; - spinlock_t *ptl; - }; - unsigned int __page_type; - atomic_t __page_refcount; - unsigned long pt_memcg_data; -}; - -struct trace_event_data_offsets_mm_khugepaged_scan_file { - u32 filename; - const void *filename_ptr_; -}; - -struct trace_event_data_offsets_mm_khugepaged_collapse_file { - u32 filename; - const void *filename_ptr_; -}; - -struct trace_event_data_offsets_mm_khugepaged_scan_pmd {}; - -struct trace_event_data_offsets_mm_collapse_huge_page {}; - -struct trace_event_data_offsets_mm_collapse_huge_page_isolate {}; - -struct trace_event_data_offsets_mm_collapse_huge_page_swapin {}; - -struct mb_cache { - struct hlist_bl_head *c_hash; - int c_bucket_bits; - unsigned long c_max_entries; - spinlock_t c_list_lock; - struct list_head c_list; - unsigned long c_entry_count; - struct shrinker *c_shrink; - struct work_struct c_shrink_work; -}; - -struct tracefs_dir_ops { - int (*mkdir)(const char *); - int (*rmdir)(const char *); -}; - -struct tree_descr { - const char *name; - const struct file_operations *ops; - int mode; -}; - -struct match_token { - int token; - const char *pattern; -}; - -enum { - Opt_uid___2 = 0, - Opt_gid___2 = 1, - Opt_mode = 2, - Opt_err = 3, -}; - -enum { - TRACEFS_EVENT_INODE = 2, - TRACEFS_EVENT_TOP_INODE = 4, - TRACEFS_GID_PERM_SET = 8, - TRACEFS_UID_PERM_SET = 16, - TRACEFS_INSTANCE_INODE = 32, -}; - -enum fsnotify_data_type { - FSNOTIFY_EVENT_NONE = 0, - FSNOTIFY_EVENT_PATH = 1, - FSNOTIFY_EVENT_INODE = 2, - FSNOTIFY_EVENT_DENTRY = 3, - FSNOTIFY_EVENT_ERROR = 4, -}; - -enum inode_i_mutex_lock_class { - I_MUTEX_NORMAL = 0, - I_MUTEX_PARENT = 1, - I_MUTEX_CHILD = 2, - I_MUTEX_XATTR = 3, - I_MUTEX_NONDIR2 = 4, - I_MUTEX_PARENT2 = 5, -}; - -struct tracefs_inode { - struct inode vfs_inode; - unsigned long flags; - void *private; -}; - -struct tracefs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; -}; - -struct tracefs_fs_info { - struct tracefs_mount_opts mount_opts; -}; - -typedef struct { - char *from; - char *to; -} substring_t; - -struct eventfs_attr { - int mode; - kuid_t uid; - kgid_t gid; -}; - -struct eventfs_inode { - union { - struct list_head list; - struct callback_head rcu; - }; - struct list_head children; - const struct eventfs_entry *entries; - const char *name; - struct eventfs_attr *entry_attrs; - void *data; - struct eventfs_attr attr; - struct kref kref; - unsigned int is_freed: 1; - unsigned int is_events: 1; - unsigned int nr_entries: 30; - unsigned int ino; -}; - -struct crypto_rng { - struct crypto_tfm base; -}; - -struct rng_alg { - int (*generate)(struct crypto_rng *, const u8 *, unsigned int, u8 *, unsigned int); - int (*seed)(struct crypto_rng *, const u8 *, unsigned int); - void (*set_ent)(struct crypto_rng *, const u8 *, unsigned int); - unsigned int seedsize; - struct crypto_alg base; -}; - -struct crypto_istat_rng { - atomic64_t generate_cnt; - atomic64_t generate_tlen; - atomic64_t seed_cnt; - atomic64_t err_cnt; -}; - -enum { - IO_EVENTFD_OP_SIGNAL_BIT = 0, - IO_EVENTFD_OP_FREE_BIT = 1, -}; - -enum { - IORING_REGISTER_BUFFERS = 0, - IORING_UNREGISTER_BUFFERS = 1, - IORING_REGISTER_FILES = 2, - IORING_UNREGISTER_FILES = 3, - IORING_REGISTER_EVENTFD = 4, - IORING_UNREGISTER_EVENTFD = 5, - IORING_REGISTER_FILES_UPDATE = 6, - IORING_REGISTER_EVENTFD_ASYNC = 7, - IORING_REGISTER_PROBE = 8, - IORING_REGISTER_PERSONALITY = 9, - IORING_UNREGISTER_PERSONALITY = 10, - IORING_REGISTER_RESTRICTIONS = 11, - IORING_REGISTER_ENABLE_RINGS = 12, - IORING_REGISTER_FILES2 = 13, - IORING_REGISTER_FILES_UPDATE2 = 14, - IORING_REGISTER_BUFFERS2 = 15, - IORING_REGISTER_BUFFERS_UPDATE = 16, - IORING_REGISTER_IOWQ_AFF = 17, - IORING_UNREGISTER_IOWQ_AFF = 18, - IORING_REGISTER_IOWQ_MAX_WORKERS = 19, - IORING_REGISTER_RING_FDS = 20, - IORING_UNREGISTER_RING_FDS = 21, - IORING_REGISTER_PBUF_RING = 22, - IORING_UNREGISTER_PBUF_RING = 23, - IORING_REGISTER_SYNC_CANCEL = 24, - IORING_REGISTER_FILE_ALLOC_RANGE = 25, - IORING_REGISTER_PBUF_STATUS = 26, - IORING_REGISTER_NAPI = 27, - IORING_UNREGISTER_NAPI = 28, - IORING_REGISTER_LAST = 29, - IORING_REGISTER_USE_REGISTERED_RING = 2147483648, -}; - -enum { - IORING_RSRC_FILE = 0, - IORING_RSRC_BUFFER = 1, -}; - -enum { - IORING_RESTRICTION_REGISTER_OP = 0, - IORING_RESTRICTION_SQE_OP = 1, - IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, - IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, - IORING_RESTRICTION_LAST = 4, -}; - -struct io_tctx_node { - struct list_head ctx_node; - struct task_struct *task; - struct io_ring_ctx *ctx; -}; - -struct xa_limit { - u32 max; - u32 min; -}; - -struct io_uring_file_index_range { - __u32 off; - __u32 len; - __u64 resv; -}; - -struct io_uring_probe_op { - __u8 op; - __u8 resv; - __u16 flags; - __u32 resv2; -}; - -struct io_uring_probe { - __u8 last_op; - __u8 ops_len; - __u16 resv; - __u32 resv2[3]; - struct io_uring_probe_op ops[0]; -}; - -struct io_uring_restriction { - __u16 opcode; - union { - __u8 register_op; - __u8 sqe_op; - __u8 sqe_flags; - }; - __u8 resv; - __u32 resv2[3]; -}; - -struct apd_private_data; - -struct apd_device_desc { - unsigned int fixed_clk_rate; - struct property_entry *properties; - int (*setup)(struct apd_private_data *); -}; - -struct apd_private_data { - struct clk *clk; - struct acpi_device *adev; - const struct apd_device_desc *dev_desc; -}; - -enum acpi_bus_device_type { - ACPI_BUS_TYPE_DEVICE = 0, - ACPI_BUS_TYPE_POWER = 1, - ACPI_BUS_TYPE_PROCESSOR = 2, - ACPI_BUS_TYPE_THERMAL = 3, - ACPI_BUS_TYPE_POWER_BUTTON = 4, - ACPI_BUS_TYPE_SLEEP_BUTTON = 5, - ACPI_BUS_TYPE_ECDT_EC = 6, - ACPI_BUS_DEVICE_TYPE_COUNT = 7, -}; - -struct acpi_power_resource; - -struct acpi_power_resource_entry { - struct list_head node; - struct acpi_power_resource *resource; -}; - -struct acpi_power_resource { - struct acpi_device device; - struct list_head list_node; - u32 system_level; - u32 order; - unsigned int ref_count; - u8 state; - struct mutex resource_lock; - struct list_head dependents; -}; - -struct acpi_power_dependent_device { - struct device *dev; - struct list_head node; -}; - -struct acpi_common_descriptor { - void *common_pointer; - u8 descriptor_type; -}; - -union acpi_descriptor { - struct acpi_common_descriptor common; - union acpi_operand_object object; - struct acpi_namespace_node node; - union acpi_parse_object op; -}; - -struct acpi_resource_irq { - u8 descriptor_length; - u8 triggering; - u8 polarity; - u8 shareable; - u8 wake_capable; - u8 interrupt_count; - union { - u8 interrupt; - struct { - struct {} __Empty_interrupts; - u8 interrupts[0]; - }; - }; -}; - -struct acpi_resource_dma { - u8 type; - u8 bus_master; - u8 transfer; - u8 channel_count; - union { - u8 channel; - struct { - struct {} __Empty_channels; - u8 channels[0]; - }; - }; -}; - -struct acpi_resource_start_dependent { - u8 descriptor_length; - u8 compatibility_priority; - u8 performance_robustness; -}; - -struct acpi_resource_io { - u8 io_decode; - u8 alignment; - u8 address_length; - u16 minimum; - u16 maximum; -} __attribute__((packed)); - -struct acpi_resource_fixed_io { - u16 address; - u8 address_length; -} __attribute__((packed)); - -struct acpi_resource_fixed_dma { - u16 request_lines; - u16 channels; - u8 width; -} __attribute__((packed)); - -struct acpi_resource_vendor { - u16 byte_length; - u8 byte_data[0]; -}; - -struct acpi_resource_vendor_typed { - u16 byte_length; - u8 uuid_subtype; - u8 uuid[16]; - u8 byte_data[0]; -} __attribute__((packed)); - -struct acpi_resource_end_tag { - u8 checksum; -}; - -struct acpi_resource_memory24 { - u8 write_protect; - u16 minimum; - u16 maximum; - u16 alignment; - u16 address_length; -} __attribute__((packed)); - -struct acpi_resource_memory32 { - u8 write_protect; - u32 minimum; - u32 maximum; - u32 alignment; - u32 address_length; -} __attribute__((packed)); - -struct acpi_resource_fixed_memory32 { - u8 write_protect; - u32 address; - u32 address_length; -} __attribute__((packed)); - -struct acpi_memory_attribute { - u8 write_protect; - u8 caching; - u8 range_type; - u8 translation; -}; - -struct acpi_io_attribute { - u8 range_type; - u8 translation; - u8 translation_type; - u8 reserved1; -}; - -union acpi_resource_attribute { - struct acpi_memory_attribute mem; - struct acpi_io_attribute io; - u8 type_specific; -}; - -struct acpi_address16_attribute { - u16 granularity; - u16 minimum; - u16 maximum; - u16 translation_offset; - u16 address_length; -}; - -struct acpi_resource_source { - u8 index; - u16 string_length; - char *string_ptr; -} __attribute__((packed)); - -struct acpi_resource_address16 { - u8 resource_type; - u8 producer_consumer; - u8 decode; - u8 min_address_fixed; - u8 max_address_fixed; - union acpi_resource_attribute info; - struct acpi_address16_attribute address; - struct acpi_resource_source resource_source; -} __attribute__((packed)); - -struct acpi_address32_attribute { - u32 granularity; - u32 minimum; - u32 maximum; - u32 translation_offset; - u32 address_length; -}; - -struct acpi_resource_address32 { - u8 resource_type; - u8 producer_consumer; - u8 decode; - u8 min_address_fixed; - u8 max_address_fixed; - union acpi_resource_attribute info; - struct acpi_address32_attribute address; - struct acpi_resource_source resource_source; -} __attribute__((packed)); - -struct acpi_address64_attribute { - u64 granularity; - u64 minimum; - u64 maximum; - u64 translation_offset; - u64 address_length; -}; - -struct acpi_resource_address64 { - u8 resource_type; - u8 producer_consumer; - u8 decode; - u8 min_address_fixed; - u8 max_address_fixed; - union acpi_resource_attribute info; - struct acpi_address64_attribute address; - struct acpi_resource_source resource_source; -} __attribute__((packed)); - -struct acpi_resource_extended_address64 { - u8 resource_type; - u8 producer_consumer; - u8 decode; - u8 min_address_fixed; - u8 max_address_fixed; - union acpi_resource_attribute info; - u8 revision_ID; - struct acpi_address64_attribute address; - u64 type_specific; -} __attribute__((packed)); - -struct acpi_resource_extended_irq { - u8 producer_consumer; - u8 triggering; - u8 polarity; - u8 shareable; - u8 wake_capable; - u8 interrupt_count; - struct acpi_resource_source resource_source; - union { - u32 interrupt; - struct { - struct {} __Empty_interrupts; - u32 interrupts[0]; - }; - }; -} __attribute__((packed)); - -struct acpi_resource_generic_register { - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_size; - u64 address; -} __attribute__((packed)); - -struct acpi_resource_gpio { - u8 revision_id; - u8 connection_type; - u8 producer_consumer; - u8 pin_config; - u8 shareable; - u8 wake_capable; - u8 io_restriction; - u8 triggering; - u8 polarity; - u16 drive_strength; - u16 debounce_timeout; - u16 pin_table_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u16 *pin_table; - u8 *vendor_data; -} __attribute__((packed)); - -struct acpi_resource_i2c_serialbus { - u8 revision_id; - u8 type; - u8 producer_consumer; - u8 slave_mode; - u8 connection_sharing; - u8 type_revision_id; - u16 type_data_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u8 *vendor_data; - u8 access_mode; - u16 slave_address; - u32 connection_speed; -} __attribute__((packed)); - -struct acpi_resource_spi_serialbus { - u8 revision_id; - u8 type; - u8 producer_consumer; - u8 slave_mode; - u8 connection_sharing; - u8 type_revision_id; - u16 type_data_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u8 *vendor_data; - u8 wire_mode; - u8 device_polarity; - u8 data_bit_length; - u8 clock_phase; - u8 clock_polarity; - u16 device_selection; - u32 connection_speed; -} __attribute__((packed)); - -struct acpi_resource_uart_serialbus { - u8 revision_id; - u8 type; - u8 producer_consumer; - u8 slave_mode; - u8 connection_sharing; - u8 type_revision_id; - u16 type_data_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u8 *vendor_data; - u8 endian; - u8 data_bits; - u8 stop_bits; - u8 flow_control; - u8 parity; - u8 lines_enabled; - u16 rx_fifo_size; - u16 tx_fifo_size; - u32 default_baud_rate; -} __attribute__((packed)); - -struct acpi_resource_csi2_serialbus { - u8 revision_id; - u8 type; - u8 producer_consumer; - u8 slave_mode; - u8 connection_sharing; - u8 type_revision_id; - u16 type_data_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u8 *vendor_data; - u8 local_port_instance; - u8 phy_type; -} __attribute__((packed)); - -struct acpi_resource_common_serialbus { - u8 revision_id; - u8 type; - u8 producer_consumer; - u8 slave_mode; - u8 connection_sharing; - u8 type_revision_id; - u16 type_data_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u8 *vendor_data; -} __attribute__((packed)); - -struct acpi_resource_pin_function { - u8 revision_id; - u8 pin_config; - u8 shareable; - u16 function_number; - u16 pin_table_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u16 *pin_table; - u8 *vendor_data; -} __attribute__((packed)); - -struct acpi_resource_pin_config { - u8 revision_id; - u8 producer_consumer; - u8 shareable; - u8 pin_config_type; - u32 pin_config_value; - u16 pin_table_length; - u16 vendor_length; - struct acpi_resource_source resource_source; - u16 *pin_table; - u8 *vendor_data; -} __attribute__((packed)); - -struct acpi_resource_label { - u16 string_length; - char *string_ptr; -} __attribute__((packed)); - -struct acpi_resource_pin_group { - u8 revision_id; - u8 producer_consumer; - u16 pin_table_length; - u16 vendor_length; - u16 *pin_table; - struct acpi_resource_label resource_label; - u8 *vendor_data; -} __attribute__((packed)); - -struct acpi_resource_pin_group_function { - u8 revision_id; - u8 producer_consumer; - u8 shareable; - u16 function_number; - u16 vendor_length; - struct acpi_resource_source resource_source; - struct acpi_resource_label resource_source_label; - u8 *vendor_data; -} __attribute__((packed)); - -struct acpi_resource_pin_group_config { - u8 revision_id; - u8 producer_consumer; - u8 shareable; - u8 pin_config_type; - u32 pin_config_value; - u16 vendor_length; - struct acpi_resource_source resource_source; - struct acpi_resource_label resource_source_label; - u8 *vendor_data; -} __attribute__((packed)); - -struct acpi_resource_clock_input { - u8 revision_id; - u8 mode; - u8 scale; - u16 frequency_divisor; - u32 frequency_numerator; - struct acpi_resource_source resource_source; -} __attribute__((packed)); - -struct acpi_resource_address { - u8 resource_type; - u8 producer_consumer; - u8 decode; - u8 min_address_fixed; - u8 max_address_fixed; - union acpi_resource_attribute info; -}; - -union acpi_resource_data { - struct acpi_resource_irq irq; - struct acpi_resource_dma dma; - struct acpi_resource_start_dependent start_dpf; - struct acpi_resource_io io; - struct acpi_resource_fixed_io fixed_io; - struct acpi_resource_fixed_dma fixed_dma; - struct acpi_resource_vendor vendor; - struct acpi_resource_vendor_typed vendor_typed; - struct acpi_resource_end_tag end_tag; - struct acpi_resource_memory24 memory24; - struct acpi_resource_memory32 memory32; - struct acpi_resource_fixed_memory32 fixed_memory32; - struct acpi_resource_address16 address16; - struct acpi_resource_address32 address32; - struct acpi_resource_address64 address64; - struct acpi_resource_extended_address64 ext_address64; - struct acpi_resource_extended_irq extended_irq; - struct acpi_resource_generic_register generic_reg; - struct acpi_resource_gpio gpio; - struct acpi_resource_i2c_serialbus i2c_serial_bus; - struct acpi_resource_spi_serialbus spi_serial_bus; - struct acpi_resource_uart_serialbus uart_serial_bus; - struct acpi_resource_csi2_serialbus csi2_serial_bus; - struct acpi_resource_common_serialbus common_serial_bus; - struct acpi_resource_pin_function pin_function; - struct acpi_resource_pin_config pin_config; - struct acpi_resource_pin_group pin_group; - struct acpi_resource_pin_group_function pin_group_function; - struct acpi_resource_pin_group_config pin_group_config; - struct acpi_resource_clock_input clock_input; - struct acpi_resource_address address; -}; - -struct acpi_resource { - u32 type; - u32 length; - union acpi_resource_data data; -}; - -struct aml_resource_small_header { - u8 descriptor_type; -}; - -struct aml_resource_large_header { - u8 descriptor_type; - u16 resource_length; -} __attribute__((packed)); - -struct aml_resource_irq { - u8 descriptor_type; - u16 irq_mask; - u8 flags; -} __attribute__((packed)); - -struct aml_resource_dma { - u8 descriptor_type; - u8 dma_channel_mask; - u8 flags; -}; - -struct aml_resource_start_dependent { - u8 descriptor_type; - u8 flags; -}; - -struct aml_resource_end_dependent { - u8 descriptor_type; -}; - -struct aml_resource_io { - u8 descriptor_type; - u8 flags; - u16 minimum; - u16 maximum; - u8 alignment; - u8 address_length; -}; - -struct aml_resource_fixed_io { - u8 descriptor_type; - u16 address; - u8 address_length; -} __attribute__((packed)); - -struct aml_resource_fixed_dma { - u8 descriptor_type; - u16 request_lines; - u16 channels; - u8 width; -} __attribute__((packed)); - -struct aml_resource_vendor_small { - u8 descriptor_type; -}; - -struct aml_resource_end_tag { - u8 descriptor_type; - u8 checksum; -}; - -struct aml_resource_memory24 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u16 minimum; - u16 maximum; - u16 alignment; - u16 address_length; -} __attribute__((packed)); - -struct aml_resource_generic_register { - u8 descriptor_type; - u16 resource_length; - u8 address_space_id; - u8 bit_width; - u8 bit_offset; - u8 access_size; - u64 address; -} __attribute__((packed)); - -struct aml_resource_vendor_large { - u8 descriptor_type; - u16 resource_length; -} __attribute__((packed)); - -struct aml_resource_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 minimum; - u32 maximum; - u32 alignment; - u32 address_length; -} __attribute__((packed)); - -struct aml_resource_fixed_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 address; - u32 address_length; -} __attribute__((packed)); - -struct aml_resource_address16 { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; - u16 granularity; - u16 minimum; - u16 maximum; - u16 translation_offset; - u16 address_length; -} __attribute__((packed)); - -struct aml_resource_address32 { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; - u32 granularity; - u32 minimum; - u32 maximum; - u32 translation_offset; - u32 address_length; -} __attribute__((packed)); - -struct aml_resource_address64 { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; - u64 granularity; - u64 minimum; - u64 maximum; - u64 translation_offset; - u64 address_length; -} __attribute__((packed)); - -struct aml_resource_extended_address64 { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; - u8 revision_ID; - u8 reserved; - u64 granularity; - u64 minimum; - u64 maximum; - u64 translation_offset; - u64 address_length; - u64 type_specific; -} __attribute__((packed)); - -struct aml_resource_extended_irq { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u8 interrupt_count; - union { - u32 interrupt; - struct { - struct {} __Empty_interrupts; - u32 interrupts[0]; - }; - }; -} __attribute__((packed)); - -struct aml_resource_gpio { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 connection_type; - u16 flags; - u16 int_flags; - u8 pin_config; - u16 drive_strength; - u16 debounce_timeout; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_i2c_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 connection_speed; - u16 slave_address; -} __attribute__((packed)); - -struct aml_resource_spi_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 connection_speed; - u8 data_bit_length; - u8 clock_phase; - u8 clock_polarity; - u16 device_selection; -} __attribute__((packed)); - -struct aml_resource_uart_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 default_baud_rate; - u16 rx_fifo_size; - u16 tx_fifo_size; - u8 parity; - u8 lines_enabled; -} __attribute__((packed)); - -struct aml_resource_csi2_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; -} __attribute__((packed)); - -struct aml_resource_common_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; -} __attribute__((packed)); - -struct aml_resource_pin_function { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config; - u16 function_number; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_config { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config_type; - u32 pin_config_value; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 pin_table_offset; - u16 label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group_function { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 function_number; - u8 res_source_index; - u16 res_source_offset; - u16 res_source_label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group_config { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config_type; - u32 pin_config_value; - u8 res_source_index; - u16 res_source_offset; - u16 res_source_label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_clock_input { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 frequency_divisor; - u32 frequency_numerator; -} __attribute__((packed)); - -struct aml_resource_address { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; -} __attribute__((packed)); - -union aml_resource { - u8 descriptor_type; - struct aml_resource_small_header small_header; - struct aml_resource_large_header large_header; - struct aml_resource_irq irq; - struct aml_resource_dma dma; - struct aml_resource_start_dependent start_dpf; - struct aml_resource_end_dependent end_dpf; - struct aml_resource_io io; - struct aml_resource_fixed_io fixed_io; - struct aml_resource_fixed_dma fixed_dma; - struct aml_resource_vendor_small vendor_small; - struct aml_resource_end_tag end_tag; - struct aml_resource_memory24 memory24; - struct aml_resource_generic_register generic_reg; - struct aml_resource_vendor_large vendor_large; - struct aml_resource_memory32 memory32; - struct aml_resource_fixed_memory32 fixed_memory32; - struct aml_resource_address16 address16; - struct aml_resource_address32 address32; - struct aml_resource_address64 address64; - struct aml_resource_extended_address64 ext_address64; - struct aml_resource_extended_irq extended_irq; - struct aml_resource_gpio gpio; - struct aml_resource_i2c_serialbus i2c_serial_bus; - struct aml_resource_spi_serialbus spi_serial_bus; - struct aml_resource_uart_serialbus uart_serial_bus; - struct aml_resource_csi2_serialbus csi2_serial_bus; - struct aml_resource_common_serialbus common_serial_bus; - struct aml_resource_pin_function pin_function; - struct aml_resource_pin_config pin_config; - struct aml_resource_pin_group pin_group; - struct aml_resource_pin_group_function pin_group_function; - struct aml_resource_pin_group_config pin_group_config; - struct aml_resource_clock_input clock_input; - struct aml_resource_address address; - u32 dword_item; - u16 word_item; - u8 byte_item; -}; - -struct acpi_rsconvert_info { - u8 opcode; - u8 resource_offset; - u8 aml_offset; - u8 value; -}; - -struct pnp_protocol; - -struct pnp_card; - -struct pnp_driver; - -struct pnp_card_link; - -struct pnp_id; - -struct pnp_dev { - struct device dev; - u64 dma_mask; - unsigned int number; - int status; - struct list_head global_list; - struct list_head protocol_list; - struct list_head card_list; - struct list_head rdev_list; - struct pnp_protocol *protocol; - struct pnp_card *card; - struct pnp_driver *driver; - struct pnp_card_link *card_link; - struct pnp_id *id; - int active; - int capabilities; - unsigned int num_dependent_sets; - struct list_head resources; - struct list_head options; - char name[50]; - int flags; - struct proc_dir_entry *procent; - void *data; -}; - -struct pnp_protocol { - struct list_head protocol_list; - char *name; - int (*get)(struct pnp_dev *); - int (*set)(struct pnp_dev *); - int (*disable)(struct pnp_dev *); - bool (*can_wakeup)(struct pnp_dev *); - int (*suspend)(struct pnp_dev *, pm_message_t); - int (*resume)(struct pnp_dev *); - unsigned char number; - struct device dev; - struct list_head cards; - struct list_head devices; -}; - -struct pnp_card { - struct device dev; - unsigned char number; - struct list_head global_list; - struct list_head protocol_list; - struct list_head devices; - struct pnp_protocol *protocol; - struct pnp_id *id; - char name[50]; - unsigned char pnpver; - unsigned char productver; - unsigned int serial; - unsigned char checksum; - struct proc_dir_entry *procdir; -}; - -struct pnp_id { - char id[8]; - struct pnp_id *next; -}; - -struct pnp_device_id; - -struct pnp_driver { - const char *name; - const struct pnp_device_id *id_table; - unsigned int flags; - int (*probe)(struct pnp_dev *, const struct pnp_device_id *); - void (*remove)(struct pnp_dev *); - void (*shutdown)(struct pnp_dev *); - int (*suspend)(struct pnp_dev *, pm_message_t); - int (*resume)(struct pnp_dev *); - struct device_driver driver; -}; - -struct pnp_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; -}; - -struct pnp_card_driver; - -struct pnp_card_link { - struct pnp_card *card; - struct pnp_card_driver *driver; - void *driver_data; - pm_message_t pm_state; -}; - -struct pnp_card_device_id; - -struct pnp_card_driver { - struct list_head global_list; - char *name; - const struct pnp_card_device_id *id_table; - unsigned int flags; - int (*probe)(struct pnp_card_link *, const struct pnp_card_device_id *); - void (*remove)(struct pnp_card_link *); - int (*suspend)(struct pnp_card_link *, pm_message_t); - int (*resume)(struct pnp_card_link *); - struct pnp_driver link; -}; - -struct pnp_card_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; - struct { - __u8 id[8]; - } devs[8]; -}; - -enum dma_fence_flag_bits { - DMA_FENCE_FLAG_SIGNALED_BIT = 0, - DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, - DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, - DMA_FENCE_FLAG_USER_BITS = 3, -}; - -struct dma_fence_array { - struct dma_fence base; - spinlock_t lock; - unsigned int num_fences; - atomic_t num_pending; - struct dma_fence **fences; - struct irq_work work; -}; - -enum e1000_mac_type___2 { - e1000_82571 = 0, - e1000_82572 = 1, - e1000_82573 = 2, - e1000_82574 = 3, - e1000_82583 = 4, - e1000_80003es2lan = 5, - e1000_ich8lan = 6, - e1000_ich9lan = 7, - e1000_ich10lan = 8, - e1000_pchlan = 9, - e1000_pch2lan = 10, - e1000_pch_lpt = 11, - e1000_pch_spt = 12, - e1000_pch_cnp = 13, - e1000_pch_tgp = 14, - e1000_pch_adp = 15, - e1000_pch_mtp = 16, - e1000_pch_lnp = 17, - e1000_pch_ptp = 18, - e1000_pch_nvp = 19, -}; - -enum e1000_phy_type___2 { - e1000_phy_unknown___2 = 0, - e1000_phy_none___2 = 1, - e1000_phy_m88___2 = 2, - e1000_phy_igp___2 = 3, - e1000_phy_igp_2___2 = 4, - e1000_phy_gg82563___2 = 5, - e1000_phy_igp_3___2 = 6, - e1000_phy_ife___2 = 7, - e1000_phy_bm = 8, - e1000_phy_82578 = 9, - e1000_phy_82577 = 10, - e1000_phy_82579 = 11, - e1000_phy_i217 = 12, -}; - -enum e1000_serdes_link_state { - e1000_serdes_link_down = 0, - e1000_serdes_link_autoneg_progress = 1, - e1000_serdes_link_autoneg_complete = 2, - e1000_serdes_link_forced_up = 3, -}; - -enum e1000_nvm_type___2 { - e1000_nvm_unknown___2 = 0, - e1000_nvm_none___2 = 1, - e1000_nvm_eeprom_spi___2 = 2, - e1000_nvm_flash_hw___2 = 3, - e1000_nvm_flash_sw___2 = 4, -}; - -enum e1000_ulp_state { - e1000_ulp_state_unknown = 0, - e1000_ulp_state_off = 1, - e1000_ulp_state_on = 2, -}; - -struct e1000_dev_spec_82571 { - bool laa_is_present; - u32 smb_counter; -}; - -struct e1000_dev_spec_80003es2lan { - bool mdic_wa_enable; -}; - -struct e1000_shadow_ram { - u16 value; - bool modified; -}; - -struct e1000_dev_spec_ich8lan { - bool kmrn_lock_loss_workaround_enabled; - struct e1000_shadow_ram shadow_ram[2048]; - bool nvm_k1_enabled; - bool eee_disable; - u16 eee_lp_ability; - enum e1000_ulp_state ulp_state; -}; - -struct e1000_hw___2; - -struct e1000_mac_operations___2 { - s32 (*id_led_init)(struct e1000_hw___2 *); - s32 (*blink_led)(struct e1000_hw___2 *); - bool (*check_mng_mode)(struct e1000_hw___2 *); - s32 (*check_for_link)(struct e1000_hw___2 *); - s32 (*cleanup_led)(struct e1000_hw___2 *); - void (*clear_hw_cntrs)(struct e1000_hw___2 *); - void (*clear_vfta)(struct e1000_hw___2 *); - s32 (*get_bus_info)(struct e1000_hw___2 *); - void (*set_lan_id)(struct e1000_hw___2 *); - s32 (*get_link_up_info)(struct e1000_hw___2 *, u16 *, u16 *); - s32 (*led_on)(struct e1000_hw___2 *); - s32 (*led_off)(struct e1000_hw___2 *); - void (*update_mc_addr_list)(struct e1000_hw___2 *, u8 *, u32); - s32 (*reset_hw)(struct e1000_hw___2 *); - s32 (*init_hw)(struct e1000_hw___2 *); - s32 (*setup_link)(struct e1000_hw___2 *); - s32 (*setup_physical_interface)(struct e1000_hw___2 *); - s32 (*setup_led)(struct e1000_hw___2 *); - void (*write_vfta)(struct e1000_hw___2 *, u32, u32); - void (*config_collision_dist)(struct e1000_hw___2 *); - int (*rar_set)(struct e1000_hw___2 *, u8 *, u32); - s32 (*read_mac_addr)(struct e1000_hw___2 *); - u32 (*rar_get_count)(struct e1000_hw___2 *); -}; - -struct e1000_mac_info___2 { - struct e1000_mac_operations___2 ops; - u8 addr[6]; - u8 perm_addr[6]; - enum e1000_mac_type___2 type; - u32 collision_delta; - u32 ledctl_default; - u32 ledctl_mode1; - u32 ledctl_mode2; - u32 mc_filter_type; - u32 tx_packet_delta; - u32 txcw; - u16 current_ifs_val; - u16 ifs_max_val; - u16 ifs_min_val; - u16 ifs_ratio; - u16 ifs_step_size; - u16 mta_reg_count; - u32 mta_shadow[128]; - u16 rar_entry_count; - u8 forced_speed_duplex; - bool adaptive_ifs; - bool has_fwsm; - bool arc_subsystem_valid; - bool autoneg; - bool autoneg_failed; - bool get_link_status; - bool in_ifs_mode; - bool serdes_has_link; - bool tx_pkt_filtering; - enum e1000_serdes_link_state serdes_link_state; -}; - -struct e1000_fc_info___2 { - u32 high_water; - u32 low_water; - u16 pause_time; - u16 refresh_time; - bool send_xon; - bool strict_ieee; - enum e1000_fc_mode current_mode; - enum e1000_fc_mode requested_mode; -}; - -struct e1000_phy_operations___2 { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*cfg_on_link_up)(struct e1000_hw___2 *); - s32 (*check_polarity)(struct e1000_hw___2 *); - s32 (*check_reset_block)(struct e1000_hw___2 *); - s32 (*commit)(struct e1000_hw___2 *); - s32 (*force_speed_duplex)(struct e1000_hw___2 *); - s32 (*get_cfg_done)(struct e1000_hw___2 *); - s32 (*get_cable_length)(struct e1000_hw___2 *); - s32 (*get_info)(struct e1000_hw___2 *); - s32 (*set_page)(struct e1000_hw___2 *, u16); - s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *); - s32 (*read_reg_locked)(struct e1000_hw___2 *, u32, u16 *); - s32 (*read_reg_page)(struct e1000_hw___2 *, u32, u16 *); - void (*release)(struct e1000_hw___2 *); - s32 (*reset)(struct e1000_hw___2 *); - s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*write_reg)(struct e1000_hw___2 *, u32, u16); - s32 (*write_reg_locked)(struct e1000_hw___2 *, u32, u16); - s32 (*write_reg_page)(struct e1000_hw___2 *, u32, u16); - void (*power_up)(struct e1000_hw___2 *); - void (*power_down)(struct e1000_hw___2 *); -}; - -struct e1000_phy_info___2 { - struct e1000_phy_operations___2 ops; - enum e1000_phy_type___2 type; - enum e1000_1000t_rx_status local_rx; - enum e1000_1000t_rx_status remote_rx; - enum e1000_ms_type ms_type; - enum e1000_ms_type original_ms_type; - enum e1000_rev_polarity cable_polarity; - enum e1000_smart_speed smart_speed; - u32 addr; - u32 id; - u32 reset_delay_us; - u32 revision; - enum e1000_media_type media_type; - u16 autoneg_advertised; - u16 autoneg_mask; - u16 cable_length; - u16 max_cable_length; - u16 min_cable_length; - u8 mdix; - bool disable_polarity_correction; - bool is_mdix; - bool polarity_correction; - bool speed_downgraded; - bool autoneg_wait_to_complete; -}; - -struct e1000_nvm_operations___2 { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *); - void (*release)(struct e1000_hw___2 *); - void (*reload)(struct e1000_hw___2 *); - s32 (*update)(struct e1000_hw___2 *); - s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *); - s32 (*validate)(struct e1000_hw___2 *); - s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *); -}; - -struct e1000_nvm_info___2 { - struct e1000_nvm_operations___2 ops; - enum e1000_nvm_type___2 type; - enum e1000_nvm_override override; - u32 flash_bank_size; - u32 flash_base_addr; - u16 word_size; - u16 delay_usec; - u16 address_bits; - u16 opcode_bits; - u16 page_size; -}; - -struct e1000_bus_info___2 { - enum e1000_bus_width width; - u16 func; -}; - -struct e1000_adapter; - -struct e1000_hw___2 { - struct e1000_adapter *adapter; - void *hw_addr; - void *flash_address; - struct e1000_mac_info___2 mac; - struct e1000_fc_info___2 fc; - struct e1000_phy_info___2 phy; - struct e1000_nvm_info___2 nvm; - struct e1000_bus_info___2 bus; - struct e1000_host_mng_dhcp_cookie mng_cookie; - union { - struct e1000_dev_spec_82571 e82571; - struct e1000_dev_spec_80003es2lan e80003es2lan; - struct e1000_dev_spec_ich8lan ich8lan; - } dev_spec; -}; - -struct e1000_hw_stats { - u64 crcerrs; - u64 algnerrc; - u64 symerrs; - u64 rxerrc; - u64 mpc; - u64 scc; - u64 ecol; - u64 mcc; - u64 latecol; - u64 colc; - u64 dc; - u64 tncrs; - u64 sec; - u64 cexterr; - u64 rlec; - u64 xonrxc; - u64 xontxc; - u64 xoffrxc; - u64 xofftxc; - u64 fcruc; - u64 prc64; - u64 prc127; - u64 prc255; - u64 prc511; - u64 prc1023; - u64 prc1522; - u64 gprc; - u64 bprc; - u64 mprc; - u64 gptc; - u64 gorc; - u64 gotc; - u64 rnbc; - u64 ruc; - u64 rfc; - u64 roc; - u64 rjc; - u64 mgprc; - u64 mgpdc; - u64 mgptc; - u64 tor; - u64 tot; - u64 tpr; - u64 tpt; - u64 ptc64; - u64 ptc127; - u64 ptc255; - u64 ptc511; - u64 ptc1023; - u64 ptc1522; - u64 mptc; - u64 bptc; - u64 tsctc; - u64 tsctfc; - u64 iac; - u64 icrxptc; - u64 icrxatc; - u64 ictxptc; - u64 ictxatc; - u64 ictxqec; - u64 ictxqmtc; - u64 icrxdmtc; - u64 icrxoc; -}; - -struct e1000_phy_stats { - u32 idle_errors; - u32 receive_errors; -}; - -struct e1000_phy_regs { - u16 bmcr; - u16 bmsr; - u16 advertise; - u16 lpa; - u16 expansion; - u16 ctrl1000; - u16 stat1000; - u16 estatus; -}; - -struct e1000_buffer; - -struct e1000_ring { - struct e1000_adapter *adapter; - void *desc; - dma_addr_t dma; - unsigned int size; - unsigned int count; - u16 next_to_use; - u16 next_to_clean; - void *head; - void *tail; - struct e1000_buffer *buffer_info; - char name[21]; - u32 ims_val; - u32 itr_val; - void *itr_register; - int set_itr; - struct sk_buff *rx_skb_top; -}; - -struct hwtstamp_config { - int flags; - int tx_type; - int rx_filter; -}; - -struct cyclecounter { - u64 (*read)(const struct cyclecounter *); - u64 mask; - u32 mult; - u32 shift; -}; - -struct timecounter { - const struct cyclecounter *cc; - u64 cycle_last; - u64 nsec; - u64 mask; - u64 frac; -}; - -struct pm_qos_request { - struct plist_node node; - struct pm_qos_constraints *qos; -}; - -struct e1000_info; - -struct msix_entry; - -struct e1000_adapter { - struct timer_list watchdog_timer; - struct timer_list phy_info_timer; - struct timer_list blink_timer; - struct work_struct reset_task; - struct work_struct watchdog_task; - const struct e1000_info *ei; - unsigned long active_vlans[64]; - u32 bd_number; - u32 rx_buffer_len; - u16 mng_vlan_id; - u16 link_speed; - u16 link_duplex; - u16 eeprom_vers; - unsigned long state; - u32 itr; - u32 itr_setting; - u16 tx_itr; - u16 rx_itr; - long: 64; - long: 64; - struct e1000_ring *tx_ring; - u32 tx_fifo_limit; - struct napi_struct napi; - unsigned int uncorr_errors; - unsigned int corr_errors; - unsigned int restart_queue; - u32 txd_cmd; - bool detect_tx_hung; - bool tx_hang_recheck; - u8 tx_timeout_factor; - u32 tx_int_delay; - u32 tx_abs_int_delay; - unsigned int total_tx_bytes; - unsigned int total_tx_packets; - unsigned int total_rx_bytes; - unsigned int total_rx_packets; - u64 tpt_old; - u64 colc_old; - u32 gotc; - u64 gotc_old; - u32 tx_timeout_count; - u32 tx_fifo_head; - u32 tx_head_addr; - u32 tx_fifo_size; - u32 tx_dma_failed; - u32 tx_hwtstamp_timeouts; - u32 tx_hwtstamp_skipped; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - bool (*clean_rx)(struct e1000_ring *, int *, int); - void (*alloc_rx_buf)(struct e1000_ring *, int, gfp_t); - struct e1000_ring *rx_ring; - u32 rx_int_delay; - u32 rx_abs_int_delay; - u64 hw_csum_err; - u64 hw_csum_good; - u64 rx_hdr_split; - u32 gorc; - u64 gorc_old; - u32 alloc_rx_buff_failed; - u32 rx_dma_failed; - u32 rx_hwtstamp_cleared; - unsigned int rx_ps_pages; - u16 rx_ps_bsize0; - u32 max_frame_size; - u32 min_frame_size; - struct net_device *netdev; - struct pci_dev *pdev; - struct e1000_hw___2 hw; - spinlock_t stats64_lock; - struct e1000_hw_stats stats; - struct e1000_phy_info___2 phy_info; - struct e1000_phy_stats phy_stats; - struct e1000_phy_regs phy_regs; - struct e1000_ring test_tx_ring; - struct e1000_ring test_rx_ring; - u32 test_icr; - u32 msg_enable; - unsigned int num_vectors; - struct msix_entry *msix_entries; - int int_mode; - u32 eiac_mask; - u32 eeprom_wol; - u32 wol; - u32 pba; - u32 max_hw_frame_size; - bool fc_autoneg; - unsigned int flags; - unsigned int flags2; - struct work_struct downshift_task; - struct work_struct update_phy_task; - struct work_struct print_hang_task; - int phy_hang_count; - u16 tx_ring_count; - u16 rx_ring_count; - struct hwtstamp_config hwtstamp_config; - struct delayed_work systim_overflow_work; - struct sk_buff *tx_hwtstamp_skb; - unsigned long tx_hwtstamp_start; - struct work_struct tx_hwtstamp_work; - spinlock_t systim_lock; - struct cyclecounter cc; - struct timecounter tc; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct pm_qos_request pm_qos_req; - long ptp_delta; - u16 eee_advert; -}; - -struct e1000_info { - enum e1000_mac_type___2 mac; - unsigned int flags; - unsigned int flags2; - u32 pba; - u32 max_hw_frame_size; - s32 (*get_variants)(struct e1000_adapter *); - const struct e1000_mac_operations___2 *mac_ops; - const struct e1000_phy_operations___2 *phy_ops; - const struct e1000_nvm_operations___2 *nvm_ops; -}; - -struct e1000_ps_page; - -struct e1000_buffer { - dma_addr_t dma; - struct sk_buff *skb; - union { - struct { - unsigned long time_stamp; - u16 length; - u16 next_to_watch; - unsigned int segs; - unsigned int bytecount; - u16 mapped_as_page; - }; - struct { - struct e1000_ps_page *ps_pages; - struct page *page; - }; - }; -}; - -struct e1000_ps_page { - struct page *page; - u64 dma; -}; - -struct msix_entry { - u32 vector; - u16 entry; -}; - -enum iwl_fw_sta_type { - STATION_TYPE_PEER = 0, - STATION_TYPE_BCAST_MGMT = 1, - STATION_TYPE_MCAST = 2, - STATION_TYPE_AUX = 3, -}; - -enum iwl_mvm_dqa_txq { - IWL_MVM_DQA_CMD_QUEUE = 0, - IWL_MVM_DQA_AUX_QUEUE = 1, - IWL_MVM_DQA_P2P_DEVICE_QUEUE = 2, - IWL_MVM_DQA_INJECT_MONITOR_QUEUE = 2, - IWL_MVM_DQA_GCAST_QUEUE = 3, - IWL_MVM_DQA_BSS_CLIENT_QUEUE = 4, - IWL_MVM_DQA_MIN_MGMT_QUEUE = 5, - IWL_MVM_DQA_MAX_MGMT_QUEUE = 8, - IWL_MVM_DQA_AP_PROBE_RESP_QUEUE = 9, - IWL_MVM_DQA_MIN_DATA_QUEUE = 10, - IWL_MVM_DQA_MAX_DATA_QUEUE = 30, -}; - -enum iwl_mvm_status { - IWL_MVM_STATUS_HW_RFKILL = 0, - IWL_MVM_STATUS_HW_CTKILL = 1, - IWL_MVM_STATUS_ROC_RUNNING = 2, - IWL_MVM_STATUS_HW_RESTART_REQUESTED = 3, - IWL_MVM_STATUS_IN_HW_RESTART = 4, - IWL_MVM_STATUS_ROC_AUX_RUNNING = 5, - IWL_MVM_STATUS_FIRMWARE_RUNNING = 6, - IWL_MVM_STATUS_IN_D3 = 7, - IWL_MVM_STATUS_SUPPRESS_ERROR_LOG_ONCE = 8, - IWL_MVM_STATUS_STARTING = 9, -}; - -enum iwl_mvm_command_groups { - LEGACY_GROUP = 0, - LONG_GROUP = 1, - SYSTEM_GROUP = 2, - MAC_CONF_GROUP = 3, - PHY_OPS_GROUP = 4, - DATA_PATH_GROUP = 5, - SCAN_GROUP = 6, - NAN_GROUP = 7, - LOCATION_GROUP = 8, - PROT_OFFLOAD_GROUP = 11, - REGULATORY_AND_NVM_GROUP = 12, - DEBUG_GROUP = 15, - STATISTICS_GROUP = 16, -}; - -enum iwl_mac_conf_subcmd_ids { - LOW_LATENCY_CMD = 3, - CHANNEL_SWITCH_TIME_EVENT_CMD = 4, - MISSED_VAP_NOTIF = 250, - SESSION_PROTECTION_CMD = 5, - CANCEL_CHANNEL_SWITCH_CMD = 6, - MAC_CONFIG_CMD = 8, - LINK_CONFIG_CMD = 9, - STA_CONFIG_CMD = 10, - AUX_STA_CMD = 11, - STA_REMOVE_CMD = 12, - STA_DISABLE_TX_CMD = 13, - ROC_CMD = 14, - ROC_NOTIF = 248, - SESSION_PROTECTION_NOTIF = 251, - PROBE_RESPONSE_DATA_NOTIF = 252, - CHANNEL_SWITCH_START_NOTIF = 255, - CHANNEL_SWITCH_ERROR_NOTIF = 249, -}; - -enum iwl_ctxt_id_and_color { - FW_CTXT_ID_POS = 0, - FW_CTXT_ID_MSK = 255, - FW_CTXT_COLOR_POS = 8, - FW_CTXT_COLOR_MSK = 65280, - FW_CTXT_INVALID = 4294967295, -}; - -enum iwl_data_path_subcmd_ids { - DQA_ENABLE_CMD = 0, - UPDATE_MU_GROUPS_CMD = 1, - TRIGGER_RX_QUEUES_NOTIF_CMD = 2, - WNM_PLATFORM_PTM_REQUEST_CMD = 3, - WNM_80211V_TIMING_MEASUREMENT_CONFIG_CMD = 4, - STA_HE_CTXT_CMD = 7, - RLC_CONFIG_CMD = 8, - RFH_QUEUE_CONFIG_CMD = 13, - TLC_MNG_CONFIG_CMD = 15, - HE_AIR_SNIFFER_CONFIG_CMD = 19, - CHEST_COLLECTOR_FILTER_CONFIG_CMD = 20, - RX_BAID_ALLOCATION_CONFIG_CMD = 22, - SCD_QUEUE_CONFIG_CMD = 23, - SEC_KEY_CMD = 24, - MONITOR_NOTIF = 244, - RX_NO_DATA_NOTIF = 245, - THERMAL_DUAL_CHAIN_REQUEST = 246, - TLC_MNG_UPDATE_NOTIF = 247, - STA_PM_NOTIF = 253, - MU_GROUP_MGMT_NOTIF = 254, - RX_QUEUES_NOTIFICATION = 255, -}; - -enum iwl_scd_queue_cfg_operation { - IWL_SCD_QUEUE_ADD = 0, - IWL_SCD_QUEUE_REMOVE = 1, - IWL_SCD_QUEUE_MODIFY = 2, -}; - -enum iwl_rx_baid_action { - IWL_RX_BAID_ACTION_ADD = 0, - IWL_RX_BAID_ACTION_MODIFY = 1, - IWL_RX_BAID_ACTION_REMOVE = 2, -}; - -struct iwl_mvm_aux_sta_cmd { - __le32 sta_id; - __le32 lmac_id; - u8 mac_addr[6]; - __le16 reserved_for_mac_addr; -}; - -struct iwl_he_pkt_ext_v2 { - u8 pkt_ext_qam_th[20]; -}; - -struct iwl_mvm_sta_cfg_cmd { - __le32 sta_id; - __le32 link_id; - u8 peer_mld_address[6]; - __le16 reserved_for_peer_mld_address; - u8 peer_link_address[6]; - __le16 reserved_for_peer_link_address; - __le32 station_type; - __le32 assoc_id; - __le32 beamform_flags; - __le32 mfp; - __le32 mimo; - __le32 mimo_protection; - __le32 ack_enabled; - __le32 trig_rnd_alloc; - __le32 tx_ampdu_spacing; - __le32 tx_ampdu_max_size; - __le32 sp_length; - __le32 uapsd_acs; - struct iwl_he_pkt_ext_v2 pkt_ext; - __le32 htc_flags; -}; - -struct iwl_mvm_remove_sta_cmd { - __le32 sta_id; -}; - -struct iwl_scd_queue_cfg_cmd { - __le32 operation; - union { - struct { - __le32 sta_mask; - u8 tid; - u8 reserved[3]; - __le32 flags; - __le32 cb_size; - __le64 bc_dram_addr; - __le64 tfdq_dram_addr; - } add; - struct { - __le32 sta_mask; - __le32 tid; - } remove; - struct { - __le32 old_sta_mask; - __le32 tid; - __le32 new_sta_mask; - } modify; - } u; -} __attribute__((packed)); - -struct iwl_mvm_txq { - struct list_head list; - u16 txq_id; - atomic_t tx_request; - unsigned long state; -}; - -struct iwl_mvm_sta_disable_tx_cmd { - __le32 sta_id; - __le32 disable; -}; - -struct iwl_rx_baid_cfg_cmd_alloc { - __le32 sta_id_mask; - u8 tid; - u8 reserved[3]; - __le16 ssn; - __le16 win_size; -}; - -struct iwl_rx_baid_cfg_cmd_modify { - __le32 old_sta_id_mask; - __le32 new_sta_id_mask; - __le32 tid; -}; - -struct iwl_rx_baid_cfg_cmd_remove_v1 { - __le32 baid; -}; - -struct iwl_rx_baid_cfg_cmd_remove { - __le32 sta_id_mask; - __le32 tid; -}; - -struct iwl_rx_baid_cfg_cmd { - __le32 action; - union { - struct iwl_rx_baid_cfg_cmd_alloc alloc; - struct iwl_rx_baid_cfg_cmd_modify modify; - struct iwl_rx_baid_cfg_cmd_remove_v1 remove_v1; - struct iwl_rx_baid_cfg_cmd_remove remove; - }; -}; - -struct input_mt_slot { - int abs[14]; - unsigned int frame; - unsigned int key; -}; - -struct input_mt { - int trkid; - int num_slots; - int slot; - unsigned int flags; - unsigned int frame; - int *red; - struct input_mt_slot slots[0]; -}; - -struct touchscreen_properties { - unsigned int max_x; - unsigned int max_y; - bool invert_x; - bool invert_y; - bool swap_x_y; -}; - -struct input_mt_pos { - s16 x; - s16 y; -}; - -struct stripe { - struct dm_dev *dev; - sector_t physical_start; - atomic_t error_count; -}; - -struct stripe_c { - uint32_t stripes; - int stripes_shift; - sector_t stripe_width; - uint32_t chunk_size; - int chunk_size_shift; - struct dm_target *ti; - struct work_struct trigger_event; - struct stripe stripe[0]; -}; - -struct atomic_notifier_head { - spinlock_t lock; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; -}; - -struct fib_notifier_net { - struct list_head fib_notifier_ops; - struct atomic_notifier_head fib_chain; -}; - -enum ethtool_podl_pse_admin_state { - ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1, - ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED = 2, - ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED = 3, -}; - -enum ethtool_podl_pse_pw_d_status { - ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1, - ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED = 2, - ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING = 3, - ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING = 4, - ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP = 5, - ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE = 6, - ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR = 7, -}; - -enum { - ETHTOOL_A_PSE_UNSPEC = 0, - ETHTOOL_A_PSE_HEADER = 1, - ETHTOOL_A_PODL_PSE_ADMIN_STATE = 2, - ETHTOOL_A_PODL_PSE_ADMIN_CONTROL = 3, - ETHTOOL_A_PODL_PSE_PW_D_STATUS = 4, - __ETHTOOL_A_PSE_CNT = 5, - ETHTOOL_A_PSE_MAX = 4, -}; - -struct pse_control_status { - enum ethtool_podl_pse_admin_state podl_admin_state; - enum ethtool_podl_pse_pw_d_status podl_pw_status; -}; - -struct pse_reply_data { - struct ethnl_reply_data base; - struct pse_control_status status; -}; - -struct pse_control_config { - enum ethtool_podl_pse_admin_state admin_cotrol; -}; - -enum tcp_synack_type { - TCP_SYNACK_NORMAL = 0, - TCP_SYNACK_FASTOPEN = 1, - TCP_SYNACK_COOKIE = 2, -}; - -struct tcp_request_sock_ops; - -struct tcp_request_sock { - struct inet_request_sock req; - const struct tcp_request_sock_ops *af_specific; - u64 snt_synack; - bool tfo_listener; - bool is_mptcp; - bool req_usec_ts; - u32 txhash; - u32 rcv_isn; - u32 snt_isn; - u32 ts_off; - u32 last_oow_ack_time; - u32 rcv_nxt; - u8 syn_tos; -}; - -struct tcp_request_sock_ops { - u16 mss_clamp; - __u32 (*cookie_init_seq)(const struct sk_buff *, __u16 *); - struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *); - u32 (*init_seq)(const struct sk_buff *); - u32 (*init_ts_off)(const struct net *, const struct sk_buff *); - int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); -}; - -struct module_version_attribute { - struct module_attribute mattr; - const char *module_name; - const char *version; -}; - -struct stp_proto { - unsigned char group_address[6]; - void (*rcv)(const struct stp_proto *, struct sk_buff *, struct net_device *); - void *data; -}; - -enum br_boolopt_id { - BR_BOOLOPT_NO_LL_LEARN = 0, - BR_BOOLOPT_MCAST_VLAN_SNOOPING = 1, - BR_BOOLOPT_MST_ENABLE = 2, - BR_BOOLOPT_MAX = 3, -}; - -enum switchdev_notifier_type { - SWITCHDEV_FDB_ADD_TO_BRIDGE = 1, - SWITCHDEV_FDB_DEL_TO_BRIDGE = 2, - SWITCHDEV_FDB_ADD_TO_DEVICE = 3, - SWITCHDEV_FDB_DEL_TO_DEVICE = 4, - SWITCHDEV_FDB_OFFLOADED = 5, - SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6, - SWITCHDEV_PORT_OBJ_ADD = 7, - SWITCHDEV_PORT_OBJ_DEL = 8, - SWITCHDEV_PORT_ATTR_SET = 9, - SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10, - SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11, - SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12, - SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13, - SWITCHDEV_VXLAN_FDB_OFFLOADED = 14, - SWITCHDEV_BRPORT_OFFLOADED = 15, - SWITCHDEV_BRPORT_UNOFFLOADED = 16, - SWITCHDEV_BRPORT_REPLAY = 17, -}; - -struct netdev_notifier_pre_changeaddr_info { - struct netdev_notifier_info info; - const unsigned char *dev_addr; -}; - -enum mac80211_scan_state { - SCAN_DECISION = 0, - SCAN_SET_CHANNEL = 1, - SCAN_SEND_PROBE = 2, - SCAN_SUSPEND = 3, - SCAN_RESUME = 4, - SCAN_ABORT = 5, -}; - -enum ieee80211_internal_tkip_state { - TKIP_STATE_NOT_INIT = 0, - TKIP_STATE_PHASE1_DONE = 1, - TKIP_STATE_PHASE1_HW_UPLOADED = 2, -}; - -enum ieee80211_conn_mode { - IEEE80211_CONN_MODE_S1G = 0, - IEEE80211_CONN_MODE_LEGACY = 1, - IEEE80211_CONN_MODE_HT = 2, - IEEE80211_CONN_MODE_VHT = 3, - IEEE80211_CONN_MODE_HE = 4, - IEEE80211_CONN_MODE_EHT = 5, -}; - -enum ieee80211_conn_bw_limit { - IEEE80211_CONN_BW_LIMIT_20 = 0, - IEEE80211_CONN_BW_LIMIT_40 = 1, - IEEE80211_CONN_BW_LIMIT_80 = 2, - IEEE80211_CONN_BW_LIMIT_160 = 3, - IEEE80211_CONN_BW_LIMIT_320 = 4, -}; - -struct wiphy_delayed_work { - struct wiphy_work work; - struct wiphy *wiphy; - struct timer_list timer; -}; - -struct ieee80211_sta_tx_tspec { - unsigned long time_slice_start; - u32 admitted_time; - u8 tsid; - s8 up; - u32 consumed_tx_time; - enum { - TX_TSPEC_ACTION_NONE = 0, - TX_TSPEC_ACTION_DOWNGRADE = 1, - TX_TSPEC_ACTION_STOP_DOWNGRADE = 2, - } action; - bool downgraded; -}; - -struct ieee80211_adv_ttlm_info { - u16 switch_time; - u32 duration; - u16 map; - bool active; -}; - -struct ieee80211_mgd_auth_data; - -struct ieee80211_mgd_assoc_data; - -struct ieee80211_if_managed { - struct timer_list timer; - struct timer_list conn_mon_timer; - struct timer_list bcn_mon_timer; - struct wiphy_work monitor_work; - struct wiphy_work beacon_connection_loss_work; - struct wiphy_work csa_connection_drop_work; - unsigned long beacon_timeout; - unsigned long probe_timeout; - int probe_send_count; - bool nullfunc_failed; - u8 connection_loss: 1; - u8 driver_disconnect: 1; - u8 reconnect: 1; - u8 associated: 1; - struct ieee80211_mgd_auth_data *auth_data; - struct ieee80211_mgd_assoc_data *assoc_data; - bool powersave; - bool broken_ap; - unsigned int flags; - u16 mcast_seq_last; - bool status_acked; - bool status_received; - __le16 status_fc; - enum { - IEEE80211_MFP_DISABLED = 0, - IEEE80211_MFP_OPTIONAL = 1, - IEEE80211_MFP_REQUIRED = 2, - } mfp; - unsigned int uapsd_queues; - unsigned int uapsd_max_sp_len; - u8 use_4addr; - int rssi_min_thold; - int rssi_max_thold; - struct ieee80211_ht_cap ht_capa; - struct ieee80211_ht_cap ht_capa_mask; - struct ieee80211_vht_cap vht_capa; - struct ieee80211_vht_cap vht_capa_mask; - struct ieee80211_s1g_cap s1g_capa; - struct ieee80211_s1g_cap s1g_capa_mask; - u8 tdls_peer[6]; - struct wiphy_delayed_work tdls_peer_del_work; - struct sk_buff *orig_teardown_skb; - struct sk_buff *teardown_skb; - spinlock_t teardown_lock; - bool tdls_wider_bw_prohibited; - struct ieee80211_sta_tx_tspec tx_tspec[4]; - struct wiphy_delayed_work tx_tspec_wk; - u8 *assoc_req_ies; - size_t assoc_req_ies_len; - struct wiphy_delayed_work ml_reconf_work; - u16 removed_links; - struct wiphy_delayed_work ttlm_work; - struct ieee80211_adv_ttlm_info ttlm_info; - u8 dialog_token_alloc; - struct wiphy_delayed_work neg_ttlm_timeout_work; -}; - -struct ieee80211_mgd_auth_data { - struct cfg80211_bss *bss; - unsigned long timeout; - int tries; - u16 algorithm; - u16 expected_transaction; - u8 key[13]; - u8 key_len; - u8 key_idx; - bool done; - bool waiting; - bool peer_confirmed; - bool timeout_started; - int link_id; - u8 ap_addr[6]; - u16 sae_trans; - u16 sae_status; - size_t data_len; - u8 data[0]; -}; - -struct ieee80211_conn_settings { - enum ieee80211_conn_mode mode; - enum ieee80211_conn_bw_limit bw_limit; -}; - -struct ieee80211_mgd_assoc_data { - struct { - struct cfg80211_bss *bss; - u8 addr[6]; - u8 ap_ht_param; - struct ieee80211_vht_cap ap_vht_cap; - long: 0; - size_t elems_len; - u8 *elems; - struct ieee80211_conn_settings conn; - u16 status; - bool disabled; - long: 0; - } __attribute__((packed)) link[15]; - u8 ap_addr[6]; - const u8 *supp_rates; - u8 supp_rates_len; - unsigned long timeout; - int tries; - u8 prev_ap_addr[6]; - u8 ssid[32]; - u8 ssid_len; - bool wmm; - bool uapsd; - bool need_beacon; - bool synced; - bool timeout_started; - bool comeback; - bool s1g; - bool spp_amsdu; - unsigned int assoc_link_id; - u8 fils_nonces[32]; - u8 fils_kek[64]; - size_t fils_kek_len; - size_t ie_len; - u8 *ie_pos; - u8 ie[0]; -}; - -struct beacon_data; - -struct ieee80211_if_ibss { - struct timer_list timer; - struct wiphy_work csa_connection_drop_work; - unsigned long last_scan_completed; - u32 basic_rates; - bool fixed_bssid; - bool fixed_channel; - bool privacy; - bool control_port; - bool userspace_handles_dfs; - short: 0; - u8 bssid[6]; - u8 ssid[32]; - u8 ssid_len; - u8 ie_len; - u8 *ie; - struct cfg80211_chan_def chandef; - unsigned long ibss_join_req; - struct beacon_data __attribute__((btf_type_tag("rcu"))) *presp; - struct ieee80211_ht_cap ht_capa; - struct ieee80211_ht_cap ht_capa_mask; - spinlock_t incomplete_lock; - struct list_head incomplete_stations; - enum { - IEEE80211_IBSS_MLME_SEARCH = 0, - IEEE80211_IBSS_MLME_JOINED = 1, - } state; -}; - -struct ieee80211_meshconf_ie; - -struct beacon_data { - u8 *head; - u8 *tail; - int head_len; - int tail_len; - struct ieee80211_meshconf_ie *meshconf; - u16 cntdwn_counter_offsets[2]; - u8 cntdwn_current_counter; - struct cfg80211_mbssid_elems *mbssid_ies; - struct cfg80211_rnr_elems *rnr_ies; - struct callback_head callback_head; -}; - -struct ieee80211_meshconf_ie { - u8 meshconf_psel; - u8 meshconf_pmetric; - u8 meshconf_congest; - u8 meshconf_synch; - u8 meshconf_auth; - u8 meshconf_form; - u8 meshconf_cap; -}; - -struct mesh_preq_queue { - struct list_head list; - u8 dst[6]; - u8 flags; -}; - -struct mesh_stats { - __u32 fwded_mcast; - __u32 fwded_unicast; - __u32 fwded_frames; - __u32 dropped_frames_ttl; - __u32 dropped_frames_no_route; -}; - -struct ps_data { - u8 tim[256]; - struct sk_buff_head bc_buf; - atomic_t num_sta_ps; - int dtim_count; - bool dtim_bc_mc; -}; - -struct mesh_table { - struct hlist_head known_gates; - spinlock_t gates_lock; - struct rhashtable rhead; - struct hlist_head walk_head; - spinlock_t walk_lock; - atomic_t entries; -}; - -struct mesh_tx_cache { - struct rhashtable rht; - struct hlist_head walk_head; - spinlock_t walk_lock; -}; - -struct mesh_rmc; - -struct ieee80211_mesh_sync_ops; - -struct mesh_csa_settings; - -struct ieee80211_if_mesh { - struct timer_list housekeeping_timer; - struct timer_list mesh_path_timer; - struct timer_list mesh_path_root_timer; - unsigned long wrkq_flags; - unsigned long mbss_changed[1]; - bool userspace_handles_dfs; - u8 mesh_id[32]; - size_t mesh_id_len; - u8 mesh_pp_id; - u8 mesh_pm_id; - u8 mesh_cc_id; - u8 mesh_sp_id; - u8 mesh_auth_id; - u32 sn; - u32 preq_id; - atomic_t mpaths; - unsigned long last_sn_update; - unsigned long next_perr; - unsigned long last_preq; - struct mesh_rmc *rmc; - spinlock_t mesh_preq_queue_lock; - struct mesh_preq_queue preq_queue; - int preq_queue_len; - struct mesh_stats mshstats; - struct mesh_config mshcfg; - atomic_t estab_plinks; - atomic_t mesh_seqnum; - bool accepting_plinks; - int num_gates; - struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon; - const u8 *ie; - u8 ie_len; - enum { - IEEE80211_MESH_SEC_NONE = 0, - IEEE80211_MESH_SEC_AUTHED = 1, - IEEE80211_MESH_SEC_SECURED = 2, - } security; - bool user_mpm; - const struct ieee80211_mesh_sync_ops *sync_ops; - s64 sync_offset_clockdrift_max; - spinlock_t sync_offset_lock; - enum nl80211_mesh_power_mode nonpeer_pm; - int ps_peers_light_sleep; - int ps_peers_deep_sleep; - struct ps_data ps; - struct mesh_csa_settings __attribute__((btf_type_tag("rcu"))) *csa; - enum { - IEEE80211_MESH_CSA_ROLE_NONE = 0, - IEEE80211_MESH_CSA_ROLE_INIT = 1, - IEEE80211_MESH_CSA_ROLE_REPEATER = 2, - } csa_role; - u8 chsw_ttl; - u16 pre_value; - int meshconf_offset; - struct mesh_table mesh_paths; - struct mesh_table mpp_paths; - int mesh_paths_generation; - int mpp_paths_generation; - struct mesh_tx_cache tx_cache; -}; - -struct ieee80211_sub_if_data; - -struct ieee80211_mesh_sync_ops { - void (*rx_bcn_presp)(struct ieee80211_sub_if_data *, u16, struct ieee80211_mgmt *, unsigned int, const struct ieee80211_meshconf_ie *, struct ieee80211_rx_status *); - void (*adjust_tsf)(struct ieee80211_sub_if_data *, struct beacon_data *); -}; - -struct ieee80211_if_ap { - struct list_head vlans; - struct ps_data ps; - atomic_t num_mcast_sta; - bool multicast_to_unicast; - bool active; -}; - -struct sta_info; - -struct ieee80211_if_vlan { - struct list_head list; - struct sta_info __attribute__((btf_type_tag("rcu"))) *sta; - atomic_t num_mcast_sta; -}; - -struct ieee80211_if_ocb { - struct timer_list housekeeping_timer; - unsigned long wrkq_flags; - spinlock_t incomplete_lock; - struct list_head incomplete_stations; - bool joined; -}; - -struct ieee80211_if_mntr { - u32 flags; - u8 mu_follow_addr[6]; - struct list_head list; -}; - -struct ieee80211_if_nan { - struct cfg80211_nan_conf conf; - spinlock_t func_lock; - struct idr function_inst_ids; -}; - -struct ieee80211_fragment_entry { - struct sk_buff_head skb_list; - unsigned long first_frag_time; - u16 seq; - u16 extra_len; - u16 last_frag; - u8 rx_queue; - u8 check_sequential_pn: 1; - u8 is_protected: 1; - u8 last_pn[6]; - unsigned int key_color; -}; - -struct ieee80211_fragment_cache { - struct ieee80211_fragment_entry entries[4]; - unsigned int next; -}; - -struct ewma_beacon_signal { - unsigned long internal; -}; - -struct ieee80211_link_data_managed { - u8 bssid[6]; - u8 dtim_period; - enum ieee80211_smps_mode req_smps; - enum ieee80211_smps_mode driver_smps_mode; - struct ieee80211_conn_settings conn; - s16 p2p_noa_index; - bool tdls_chan_switch_prohibited; - bool have_beacon; - bool tracking_signal_avg; - bool disable_wmm_tracking; - bool operating_11g_mode; - bool csa_waiting_bcn; - bool csa_ignored_same_chan; - struct wiphy_delayed_work chswitch_work; - struct wiphy_work request_smps_work; - struct wiphy_work recalc_smps; - bool beacon_crc_valid; - u32 beacon_crc; - struct ewma_beacon_signal ave_beacon_signal; - int last_ave_beacon_signal; - unsigned int count_beacon_signal; - unsigned int beacon_loss_count; - int last_cqm_event_signal; - int wmm_last_param_set; - int mu_edca_last_param_set; - u8 bss_param_ch_cnt; -}; - -struct probe_resp; - -struct fils_discovery_data; - -struct unsol_bcast_probe_resp_data; - -struct ieee80211_link_data_ap { - struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon; - struct probe_resp __attribute__((btf_type_tag("rcu"))) *probe_resp; - struct fils_discovery_data __attribute__((btf_type_tag("rcu"))) *fils_discovery; - struct unsol_bcast_probe_resp_data __attribute__((btf_type_tag("rcu"))) *unsol_bcast_probe_resp; - struct cfg80211_beacon_data *next_beacon; -}; - -struct ieee80211_key; - -struct ieee80211_chanctx; - -struct ieee80211_link_data { - struct ieee80211_sub_if_data *sdata; - unsigned int link_id; - struct list_head assigned_chanctx_list; - struct list_head reserved_chanctx_list; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8]; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_multicast_key; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_mgmt_key; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_beacon_key; - struct wiphy_work csa_finalize_work; - bool operating_11g_mode; - struct ieee80211_chan_req csa_chanreq; - struct wiphy_work color_change_finalize_work; - struct delayed_work color_collision_detect_work; - u64 color_bitmap; - struct ieee80211_chanctx *reserved_chanctx; - struct ieee80211_chan_req reserved; - bool reserved_radar_required; - bool reserved_ready; - u8 needed_rx_chains; - enum ieee80211_smps_mode smps_mode; - int user_power_level; - int ap_power_level; - bool radar_required; - struct wiphy_delayed_work dfs_cac_timer_work; - union { - struct ieee80211_link_data_managed mgd; - struct ieee80211_link_data_ap ap; - } u; - struct ieee80211_tx_queue_params tx_conf[4]; - struct ieee80211_bss_conf *conf; -}; - -struct ieee80211_local; - -struct mac80211_qos_map; - -struct ieee80211_sub_if_data { - struct list_head list; - struct wireless_dev wdev; - struct list_head key_list; - int crypto_tx_tailroom_needed_cnt; - int crypto_tx_tailroom_pending_dec; - struct wiphy_delayed_work dec_tailroom_needed_wk; - struct net_device *dev; - struct ieee80211_local *local; - unsigned int flags; - unsigned long state; - bool csa_blocked_tx; - char name[16]; - struct ieee80211_fragment_cache frags; - u16 noack_map; - u8 wmm_acm; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *keys[4]; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_unicast_key; - u16 sequence_number; - u16 mld_mcast_seq; - __be16 control_port_protocol; - bool control_port_no_encrypt; - bool control_port_no_preauth; - bool control_port_over_nl80211; - atomic_t num_tx_queued; - struct mac80211_qos_map __attribute__((btf_type_tag("rcu"))) *qos_map; - struct wiphy_work work; - struct sk_buff_head skb_queue; - struct sk_buff_head status_queue; - struct ieee80211_if_ap *bss; - u32 rc_rateidx_mask[6]; - bool rc_has_mcs_mask[6]; - u8 rc_rateidx_mcs_mask[60]; - bool rc_has_vht_mcs_mask[6]; - u16 rc_rateidx_vht_mcs_mask[48]; - u32 beacon_rateidx_mask[6]; - bool beacon_rate_set; - union { - struct ieee80211_if_ap ap; - struct ieee80211_if_vlan vlan; - struct ieee80211_if_managed mgd; - struct ieee80211_if_ibss ibss; - struct ieee80211_if_mesh mesh; - struct ieee80211_if_ocb ocb; - struct ieee80211_if_mntr mntr; - struct ieee80211_if_nan nan; - } u; - struct ieee80211_link_data deflink; - struct ieee80211_link_data __attribute__((btf_type_tag("rcu"))) *link[15]; - struct wiphy_work activate_links_work; - u16 desired_active_links; - struct ieee80211_vif vif; -}; - -struct fq_flow; - -struct fq { - struct fq_flow *flows; - unsigned long *flows_bitmap; - struct list_head tin_backlog; - spinlock_t lock; - u32 flows_cnt; - u32 limit; - u32 memory_limit; - u32 memory_usage; - u32 quantum; - u32 backlog; - u32 overlimit; - u32 overmemory; - u32 collisions; -}; - -struct codel_params { - codel_time_t target; - codel_time_t ce_threshold; - codel_time_t interval; - u32 mtu; - bool ecn; - u8 ce_threshold_selector; - u8 ce_threshold_mask; -}; - -struct arc4_ctx { - u32 S[256]; - u32 x; - u32 y; -}; - -struct codel_vars; - -struct rate_control_ref; - -struct ieee80211_local { - struct ieee80211_hw hw; - struct fq fq; - struct codel_vars *cvars; - struct codel_params cparams; - spinlock_t active_txq_lock[4]; - struct list_head active_txqs[4]; - u16 schedule_round[4]; - spinlock_t handle_wake_tx_queue_lock; - u16 airtime_flags; - u32 aql_txq_limit_low[4]; - u32 aql_txq_limit_high[4]; - u32 aql_threshold; - atomic_t aql_total_pending_airtime; - atomic_t aql_ac_pending_airtime[4]; - const struct ieee80211_ops *ops; - struct workqueue_struct *workqueue; - unsigned long queue_stop_reasons[16]; - int q_stop_reasons[176]; - spinlock_t queue_stop_reason_lock; - int open_count; - int monitors; - int cooked_mntrs; - int fif_fcsfail; - int fif_plcpfail; - int fif_control; - int fif_other_bss; - int fif_pspoll; - int fif_probe_req; - bool probe_req_reg; - bool rx_mcast_action_reg; - unsigned int filter_flags; - bool wiphy_ciphers_allocated; - struct cfg80211_chan_def dflt_chandef; - bool emulate_chanctx; - spinlock_t filter_lock; - struct wiphy_work reconfig_filter; - struct netdev_hw_addr_list mc_list; - bool tim_in_locked_section; - bool suspended; - bool suspending; - bool resuming; - bool quiescing; - bool started; - bool in_reconfig; - bool reconfig_failure; - bool wowlan; - struct wiphy_work radar_detected_work; - u8 rx_chains; - u8 sband_allocated; - int tx_headroom; - struct tasklet_struct tasklet; - struct sk_buff_head skb_queue; - struct sk_buff_head skb_queue_unreliable; - spinlock_t rx_path_lock; - spinlock_t tim_lock; - unsigned long num_sta; - struct list_head sta_list; - struct rhltable sta_hash; - struct rhltable link_sta_hash; - struct timer_list sta_cleanup; - int sta_generation; - struct sk_buff_head pending[16]; - struct tasklet_struct tx_pending_tasklet; - struct tasklet_struct wake_txqs_tasklet; - atomic_t agg_queue_stop[16]; - atomic_t iff_allmultis; - struct rate_control_ref *rate_ctrl; - struct arc4_ctx wep_tx_ctx; - struct arc4_ctx wep_rx_ctx; - u32 wep_iv; - struct list_head interfaces; - struct list_head mon_list; - struct mutex iflist_mtx; - unsigned long scanning; - struct cfg80211_ssid scan_ssid; - struct cfg80211_scan_request *int_scan_req; - struct cfg80211_scan_request __attribute__((btf_type_tag("rcu"))) *scan_req; - struct ieee80211_scan_request *hw_scan_req; - struct cfg80211_chan_def scan_chandef; - enum nl80211_band hw_scan_band; - int scan_channel_idx; - int scan_ies_len; - int hw_scan_ies_bufsize; - struct cfg80211_scan_info scan_info; - struct wiphy_work sched_scan_stopped_work; - struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *sched_scan_sdata; - struct cfg80211_sched_scan_request __attribute__((btf_type_tag("rcu"))) *sched_scan_req; - u8 scan_addr[6]; - unsigned long leave_oper_channel_time; - enum mac80211_scan_state next_scan_state; - struct wiphy_delayed_work scan_work; - struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *scan_sdata; - struct ieee80211_channel *tmp_channel; - struct list_head chanctx_list; - int total_ps_buffered; - bool pspolling; - struct ieee80211_sub_if_data *ps_sdata; - struct wiphy_work dynamic_ps_enable_work; - struct wiphy_work dynamic_ps_disable_work; - struct timer_list dynamic_ps_timer; - struct notifier_block ifa_notifier; - struct notifier_block ifa6_notifier; - int dynamic_ps_forced_timeout; - int user_power_level; - struct work_struct restart_work; - struct wiphy_delayed_work roc_work; - struct list_head roc_list; - struct wiphy_work hw_roc_start; - struct wiphy_work hw_roc_done; - unsigned long hw_roc_start_time; - u64 roc_cookie_counter; - struct idr ack_status_frames; - spinlock_t ack_status_lock; - struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *p2p_sdata; - struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *monitor_sdata; - struct ieee80211_chan_req monitor_chanreq; - u8 ext_capa[8]; - bool wbrf_supported; -}; - -struct fq_tin; - -struct fq_flow { - struct fq_tin *tin; - struct list_head flowchain; - struct sk_buff_head queue; - u32 backlog; - int deficit; -}; - -struct fq_tin { - struct list_head new_flows; - struct list_head old_flows; - struct list_head tin_list; - struct fq_flow default_flow; - u32 backlog_bytes; - u32 backlog_packets; - u32 overlimit; - u32 collisions; - u32 flows; - u32 tx_bytes; - u32 tx_packets; -}; - -struct codel_vars { - u32 count; - u32 lastcount; - bool dropping; - u16 rec_inv_sqrt; - codel_time_t first_above_time; - codel_time_t drop_next; - codel_time_t ldelay; -}; - -struct tkip_ctx { - u16 p1k[5]; - u32 p1k_iv32; - enum ieee80211_internal_tkip_state state; -}; - -struct tkip_ctx_rx { - struct tkip_ctx ctx; - u32 iv32; - u16 iv16; -}; - -struct ieee80211_key { - struct ieee80211_local *local; - struct ieee80211_sub_if_data *sdata; - struct sta_info *sta; - struct list_head list; - unsigned int flags; - union { - struct { - spinlock_t txlock; - struct tkip_ctx tx; - struct tkip_ctx_rx rx[16]; - u32 mic_failures; - } tkip; - struct { - u8 rx_pn[102]; - struct crypto_aead *tfm; - u32 replays; - } ccmp; - struct { - u8 rx_pn[6]; - struct crypto_shash *tfm; - u32 replays; - u32 icverrors; - } aes_cmac; - struct { - u8 rx_pn[6]; - struct crypto_aead *tfm; - u32 replays; - u32 icverrors; - } aes_gmac; - struct { - u8 rx_pn[102]; - struct crypto_aead *tfm; - u32 replays; - } gcmp; - struct { - u8 rx_pn[272]; - } gen; - } u; - unsigned int color; - struct ieee80211_key_conf conf; -}; - -struct airtime_info { - u64 rx_airtime; - u64 tx_airtime; - unsigned long last_active; - s32 deficit; - atomic_t aql_tx_pending; - u32 aql_limit_low; - u32 aql_limit_high; -}; - -struct tid_ampdu_rx; - -struct tid_ampdu_tx; - -struct sta_ampdu_mlme { - struct tid_ampdu_rx __attribute__((btf_type_tag("rcu"))) *tid_rx[16]; - u8 tid_rx_token[16]; - unsigned long tid_rx_timer_expired[1]; - unsigned long tid_rx_stop_requested[1]; - unsigned long tid_rx_manage_offl[1]; - unsigned long agg_session_valid[1]; - unsigned long unexpected_agg[1]; - struct wiphy_work work; - struct tid_ampdu_tx __attribute__((btf_type_tag("rcu"))) *tid_tx[16]; - struct tid_ampdu_tx *tid_start_tx[16]; - unsigned long last_addba_req_time[16]; - u8 addba_req_num[16]; - u8 dialog_token_allocator; -}; - -struct ieee80211_sta_rx_stats { - unsigned long packets; - unsigned long last_rx; - unsigned long num_duplicates; - unsigned long fragments; - unsigned long dropped; - int last_signal; - u8 chains; - s8 chain_signal_last[4]; - u32 last_rate; - struct u64_stats_sync syncp; - u64 bytes; - u64 msdu[17]; -}; - -struct ewma_signal { - unsigned long internal; -}; - -struct ewma_avg_signal { - unsigned long internal; -}; - -struct link_sta_info { - u8 addr[6]; - u8 link_id; - u8 op_mode_nss; - u8 capa_nss; - struct rhlist_head link_hash_node; - struct sta_info *sta; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8]; - struct ieee80211_sta_rx_stats __attribute__((btf_type_tag("percpu"))) *pcpu_rx_stats; - struct ieee80211_sta_rx_stats rx_stats; - struct { - struct ewma_signal signal; - struct ewma_signal chain_signal[4]; - } rx_stats_avg; - struct { - unsigned long filtered; - unsigned long retry_failed; - unsigned long retry_count; - unsigned int lost_packets; - unsigned long last_pkt_time; - u64 msdu_retries[17]; - u64 msdu_failed[17]; - unsigned long last_ack; - s8 last_ack_signal; - bool ack_signal_filled; - struct ewma_avg_signal avg_ack_signal; - } status_stats; - struct { - u64 packets[4]; - u64 bytes[4]; - struct ieee80211_tx_rate last_rate; - struct rate_info last_rate_info; - u64 msdu[17]; - } tx_stats; - enum ieee80211_sta_rx_bandwidth cur_max_bandwidth; - struct ieee80211_link_sta *pub; -}; - -struct ieee80211_fast_tx; - -struct ieee80211_fast_rx; - -struct sta_info { - struct list_head list; - struct list_head free_list; - struct callback_head callback_head; - struct rhlist_head hash_node; - u8 addr[6]; - struct ieee80211_local *local; - struct ieee80211_sub_if_data *sdata; - struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *ptk[4]; - u8 ptk_idx; - struct rate_control_ref *rate_ctrl; - void *rate_ctrl_priv; - spinlock_t rate_ctrl_lock; - spinlock_t lock; - struct ieee80211_fast_tx __attribute__((btf_type_tag("rcu"))) *fast_tx; - struct ieee80211_fast_rx __attribute__((btf_type_tag("rcu"))) *fast_rx; - struct work_struct drv_deliver_wk; - u16 listen_interval; - bool dead; - bool removed; - bool uploaded; - enum ieee80211_sta_state sta_state; - unsigned long _flags; - spinlock_t ps_lock; - struct sk_buff_head ps_tx_buf[4]; - struct sk_buff_head tx_filtered[4]; - unsigned long driver_buffered_tids; - unsigned long txq_buffered_tids; - u64 assoc_at; - long last_connected; - __le16 last_seq_ctrl[17]; - u16 tid_seq[16]; - struct airtime_info airtime[4]; - u16 airtime_weight; - struct sta_ampdu_mlme ampdu_mlme; - struct codel_params cparams; - u8 reserved_tid; - s8 amsdu_mesh_control; - struct cfg80211_chan_def tdls_chandef; - struct ieee80211_fragment_cache frags; - struct ieee80211_sta_aggregates cur; - struct link_sta_info deflink; - struct link_sta_info __attribute__((btf_type_tag("rcu"))) *link[15]; - struct ieee80211_sta sta; -}; - -struct ieee80211_fast_tx { - struct ieee80211_key *key; - u8 hdr_len; - u8 sa_offs; - u8 da_offs; - u8 pn_offs; - u8 band; - short: 0; - u8 hdr[56]; - struct callback_head callback_head; -}; - -struct ieee80211_fast_rx { - struct net_device *dev; - enum nl80211_iftype vif_type; - u8 vif_addr[6]; - u8 rfc1042_hdr[6]; - __be16 control_port_protocol; - __le16 expected_ds_bits; - u8 icv_len; - u8 key: 1; - u8 internal_forward: 1; - u8 uses_rss: 1; - u8 da_offs; - u8 sa_offs; - struct callback_head callback_head; -}; - -struct tid_ampdu_rx { - struct callback_head callback_head; - spinlock_t reorder_lock; - u64 reorder_buf_filtered; - struct sk_buff_head *reorder_buf; - unsigned long *reorder_time; - struct sta_info *sta; - struct timer_list session_timer; - struct timer_list reorder_timer; - unsigned long last_rx; - u16 head_seq_num; - u16 stored_mpdu_num; - u16 ssn; - u16 buf_size; - u16 timeout; - u8 tid; - u8 auto_seq: 1; - u8 removed: 1; - u8 started: 1; -}; - -struct tid_ampdu_tx { - struct callback_head callback_head; - struct timer_list session_timer; - struct timer_list addba_resp_timer; - struct sk_buff_head pending; - struct sta_info *sta; - unsigned long state; - unsigned long last_tx; - u16 timeout; - u8 dialog_token; - u8 stop_initiator; - bool tx_stop; - u16 buf_size; - u16 ssn; - u16 failed_bar_ssn; - bool bar_pending; - bool amsdu; - u8 tid; -}; - -struct mac80211_qos_map { - struct cfg80211_qos_map qos_map; - struct callback_head callback_head; -}; - -enum ieee80211_chanctx_replace_state { - IEEE80211_CHANCTX_REPLACE_NONE = 0, - IEEE80211_CHANCTX_WILL_BE_REPLACED = 1, - IEEE80211_CHANCTX_REPLACES_OTHER = 2, -}; - -enum ieee80211_chanctx_mode { - IEEE80211_CHANCTX_SHARED = 0, - IEEE80211_CHANCTX_EXCLUSIVE = 1, -}; - -struct ieee80211_chanctx { - struct list_head list; - struct callback_head callback_head; - struct list_head assigned_links; - struct list_head reserved_links; - enum ieee80211_chanctx_replace_state replace_state; - struct ieee80211_chanctx *replace_ctx; - enum ieee80211_chanctx_mode mode; - bool driver_present; - struct ieee80211_chan_req req; - struct ieee80211_chanctx_conf conf; -}; - -struct probe_resp { - struct callback_head callback_head; - int len; - u16 cntdwn_counter_offsets[2]; - u8 data[0]; -}; - -struct fils_discovery_data { - struct callback_head callback_head; - int len; - u8 data[0]; -}; - -struct unsol_bcast_probe_resp_data { - struct callback_head callback_head; - int len; - u8 data[0]; -}; - -struct mesh_csa_settings { - struct callback_head callback_head; - struct cfg80211_csa_settings settings; -}; - -enum ieee80211_spectrum_mgmt_actioncode { - WLAN_ACTION_SPCT_MSR_REQ = 0, - WLAN_ACTION_SPCT_MSR_RPRT = 1, - WLAN_ACTION_SPCT_TPC_REQ = 2, - WLAN_ACTION_SPCT_TPC_RPRT = 3, - WLAN_ACTION_SPCT_CHL_SWITCH = 4, -}; - -struct ieee80211_he_6ghz_oper { - u8 primary; - u8 control; - u8 ccfs0; - u8 ccfs1; - u8 minrate; -}; - -struct ieee80211_eht_operation_info { - u8 control; - u8 ccfs0; - u8 ccfs1; - u8 optional[0]; -}; - -struct ieee80211_ht_operation { - u8 primary_chan; - u8 ht_param; - __le16 operation_mode; - __le16 stbc_param; - u8 basic_set[16]; -}; - -struct ieee80211_vht_operation { - u8 chan_width; - u8 center_freq_seg0_idx; - u8 center_freq_seg1_idx; - __le16 basic_mcs_set; -} __attribute__((packed)); - -struct ieee80211_wide_bw_chansw_ie { - u8 new_channel_width; - u8 new_center_freq_seg0; - u8 new_center_freq_seg1; -}; - -struct ieee80211_tdls_lnkie; - -struct ieee80211_ch_switch_timing; - -struct ieee80211_tim_ie; - -struct ieee80211_he_spr; - -struct ieee80211_mu_edca_param_set; - -struct ieee80211_rann_ie; - -struct ieee80211_channel_sw_ie; - -struct ieee80211_timeout_interval_ie; - -struct ieee80211_sec_chan_offs_ie; - -struct ieee80211_mesh_chansw_params_ie; - -struct ieee80211_bss_max_idle_period_ie; - -struct ieee80211_multiple_bssid_configuration; - -struct ieee80211_bssid_index; - -struct ieee80211_addba_ext_ie; - -struct ieee80211_s1g_oper_ie; - -struct ieee80211_s1g_bcn_compat_ie; - -struct ieee80211_aid_response_ie; - -struct ieee80211_bandwidth_indication; - -struct ieee80211_ttlm_elem; - -struct ieee80211_mle_per_sta_profile; - -struct ieee802_11_elems { - const u8 *ie_start; - size_t total_len; - u32 crc; - const struct ieee80211_tdls_lnkie *lnk_id; - const struct ieee80211_ch_switch_timing *ch_sw_timing; - const u8 *ext_capab; - const u8 *ssid; - const u8 *supp_rates; - const u8 *ds_params; - const struct ieee80211_tim_ie *tim; - const u8 *rsn; - const u8 *rsnx; - const u8 *erp_info; - const u8 *ext_supp_rates; - const u8 *wmm_info; - const u8 *wmm_param; - const struct ieee80211_ht_cap *ht_cap_elem; - const struct ieee80211_ht_operation *ht_operation; - const struct ieee80211_vht_cap *vht_cap_elem; - const struct ieee80211_vht_operation *vht_operation; - const struct ieee80211_meshconf_ie *mesh_config; - const u8 *he_cap; - const struct ieee80211_he_operation *he_operation; - const struct ieee80211_he_spr *he_spr; - const struct ieee80211_mu_edca_param_set *mu_edca_param_set; - const struct ieee80211_he_6ghz_capa *he_6ghz_capa; - const struct ieee80211_tx_pwr_env *tx_pwr_env[8]; - const u8 *uora_element; - const u8 *mesh_id; - const u8 *peering; - const __le16 *awake_window; - const u8 *preq; - const u8 *prep; - const u8 *perr; - const struct ieee80211_rann_ie *rann; - const struct ieee80211_channel_sw_ie *ch_switch_ie; - const struct ieee80211_ext_chansw_ie *ext_chansw_ie; - const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie; - const u8 *max_channel_switch_time; - const u8 *country_elem; - const u8 *pwr_constr_elem; - const u8 *cisco_dtpc_elem; - const struct ieee80211_timeout_interval_ie *timeout_int; - const u8 *opmode_notif; - const struct ieee80211_sec_chan_offs_ie *sec_chan_offs; - struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie; - const struct ieee80211_bss_max_idle_period_ie *max_idle_period_ie; - const struct ieee80211_multiple_bssid_configuration *mbssid_config_ie; - const struct ieee80211_bssid_index *bssid_index; - u8 max_bssid_indicator; - u8 dtim_count; - u8 dtim_period; - const struct ieee80211_addba_ext_ie *addba_ext_ie; - const struct ieee80211_s1g_cap *s1g_capab; - const struct ieee80211_s1g_oper_ie *s1g_oper; - const struct ieee80211_s1g_bcn_compat_ie *s1g_bcn_compat; - const struct ieee80211_aid_response_ie *aid_resp; - const struct ieee80211_eht_cap_elem *eht_cap; - const struct ieee80211_eht_operation *eht_operation; - const struct ieee80211_multi_link_elem *ml_basic; - const struct ieee80211_multi_link_elem *ml_reconf; - const struct ieee80211_bandwidth_indication *bandwidth_indication; - const struct ieee80211_ttlm_elem *ttlm[2]; - u8 ext_capab_len; - u8 ssid_len; - u8 supp_rates_len; - u8 tim_len; - u8 rsn_len; - u8 rsnx_len; - u8 ext_supp_rates_len; - u8 wmm_info_len; - u8 wmm_param_len; - u8 he_cap_len; - u8 mesh_id_len; - u8 peering_len; - u8 preq_len; - u8 prep_len; - u8 perr_len; - u8 country_elem_len; - u8 bssid_index_len; - u8 tx_pwr_env_len[8]; - u8 tx_pwr_env_num; - u8 eht_cap_len; - size_t ml_basic_len; - size_t ml_reconf_len; - u8 ttlm_num; - struct ieee80211_mle_per_sta_profile *prof; - size_t sta_prof_len; - u8 parse_error; -}; - -struct ieee80211_tdls_lnkie { - u8 ie_type; - u8 ie_len; - u8 bssid[6]; - u8 init_sta[6]; - u8 resp_sta[6]; -}; - -struct ieee80211_ch_switch_timing { - __le16 switch_time; - __le16 switch_timeout; -}; - -struct ieee80211_tim_ie { - u8 dtim_count; - u8 dtim_period; - u8 bitmap_ctrl; - union { - u8 required_octet; - struct { - struct {} __empty_virtual_map; - u8 virtual_map[0]; - }; - }; -}; - -struct ieee80211_he_spr { - u8 he_sr_control; - u8 optional[0]; -}; - -struct ieee80211_mu_edca_param_set { - u8 mu_qos_info; - struct ieee80211_he_mu_edca_param_ac_rec ac_be; - struct ieee80211_he_mu_edca_param_ac_rec ac_bk; - struct ieee80211_he_mu_edca_param_ac_rec ac_vi; - struct ieee80211_he_mu_edca_param_ac_rec ac_vo; -}; - -struct ieee80211_rann_ie { - u8 rann_flags; - u8 rann_hopcount; - u8 rann_ttl; - u8 rann_addr[6]; - __le32 rann_seq; - __le32 rann_interval; - __le32 rann_metric; -} __attribute__((packed)); - -struct ieee80211_channel_sw_ie { - u8 mode; - u8 new_ch_num; - u8 count; -}; - -struct ieee80211_timeout_interval_ie { - u8 type; - __le32 value; -} __attribute__((packed)); - -struct ieee80211_sec_chan_offs_ie { - u8 sec_chan_offs; -}; - -struct ieee80211_mesh_chansw_params_ie { - u8 mesh_ttl; - u8 mesh_flags; - __le16 mesh_reason; - __le16 mesh_pre_value; -}; - -struct ieee80211_bss_max_idle_period_ie { - __le16 max_idle_period; - u8 idle_options; -} __attribute__((packed)); - -struct ieee80211_multiple_bssid_configuration { - u8 bssid_count; - u8 profile_periodicity; -}; - -struct ieee80211_bssid_index { - u8 bssid_index; - u8 dtim_period; - u8 dtim_count; -}; - -struct ieee80211_addba_ext_ie { - u8 data; -}; - -struct ieee80211_s1g_oper_ie { - u8 ch_width; - u8 oper_class; - u8 primary_ch; - u8 oper_ch; - __le16 basic_mcs_nss; -}; - -struct ieee80211_s1g_bcn_compat_ie { - __le16 compat_info; - __le16 beacon_int; - __le32 tsf_completion; -}; - -struct ieee80211_aid_response_ie { - __le16 aid; - u8 switch_count; - __le16 response_int; -} __attribute__((packed)); - -struct ieee80211_bandwidth_indication { - u8 params; - struct ieee80211_eht_operation_info info; -}; - -struct ieee80211_ttlm_elem { - u8 control; - u8 optional[0]; -}; - -struct ieee80211_mle_per_sta_profile { - __le16 control; - u8 sta_info_len; - u8 variable[0]; -} __attribute__((packed)); - -struct ieee80211_csa_ie { - struct ieee80211_chan_req chanreq; - u8 mode; - u8 count; - u8 ttl; - u16 pre_value; - u16 reason_code; - u32 max_switch_time; -}; - -struct amd_nb_bus_dev_range { - u8 bus; - u8 dev_base; - u8 dev_limit; -}; - -struct amd_northbridge; - -struct amd_northbridge_info { - u16 num; - u64 flags; - struct amd_northbridge *nb; -}; - -struct amd_l3_cache { - unsigned int indices; - u8 subcaches[4]; -}; - -struct threshold_bank; - -struct amd_northbridge { - struct pci_dev *root; - struct pci_dev *misc; - struct pci_dev *link; - struct amd_l3_cache l3_cache; - struct threshold_bank *bank4; -}; - -struct threshold_block; - -struct threshold_bank { - struct kobject *kobj; - struct threshold_block *blocks; - refcount_t cpus; - unsigned int shared; -}; - -struct threshold_block { - unsigned int block; - unsigned int bank; - unsigned int cpu; - u32 address; - u16 interrupt_enable; - bool interrupt_capable; - u16 threshold_limit; - struct kobject kobj; - struct list_head miscj; -}; - -struct core_vma_metadata; - -struct coredump_params { - const kernel_siginfo_t *siginfo; - struct file *file; - unsigned long limit; - unsigned long mm_flags; - int cpu; - loff_t written; - loff_t pos; - loff_t to_skip; - int vma_count; - size_t vma_data_size; - struct core_vma_metadata *vma_meta; -}; - -struct core_vma_metadata { - unsigned long start; - unsigned long end; - unsigned long flags; - unsigned long dump_size; - unsigned long pgoff; - struct file *file; -}; - -typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); - -typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); - -enum sig_handler { - HANDLER_CURRENT = 0, - HANDLER_SIG_DFL = 1, - HANDLER_EXIT = 2, -}; - -enum { - TRACE_SIGNAL_DELIVERED = 0, - TRACE_SIGNAL_IGNORED = 1, - TRACE_SIGNAL_ALREADY_PENDING = 2, - TRACE_SIGNAL_OVERFLOW_FAIL = 3, - TRACE_SIGNAL_LOSE_INFO = 4, -}; - -enum siginfo_layout { - SIL_KILL = 0, - SIL_TIMER = 1, - SIL_POLL = 2, - SIL_FAULT = 3, - SIL_FAULT_TRAPNO = 4, - SIL_FAULT_MCEERR = 5, - SIL_FAULT_BNDERR = 6, - SIL_FAULT_PKUERR = 7, - SIL_FAULT_PERF_EVENT = 8, - SIL_CHLD = 9, - SIL_RT = 10, - SIL_SYS = 11, -}; - -enum { - TASK_COMM_LEN = 16, -}; - -enum rlimit_type { - UCOUNT_RLIMIT_NPROC = 0, - UCOUNT_RLIMIT_MSGQUEUE = 1, - UCOUNT_RLIMIT_SIGPENDING = 2, - UCOUNT_RLIMIT_MEMLOCK = 3, - UCOUNT_RLIMIT_COUNTS = 4, -}; - -struct trace_event_raw_signal_generate { - struct trace_entry ent; - int sig; - int errno; - int code; - char comm[16]; - pid_t pid; - int group; - int result; - char __data[0]; -}; - -struct trace_event_raw_signal_deliver { - struct trace_entry ent; - int sig; - int errno; - int code; - unsigned long sa_handler; - unsigned long sa_flags; - char __data[0]; -}; - -struct multiprocess_signals { - sigset_t signal; - struct hlist_node node; -}; - -struct siginfo { - union { - struct { - int si_signo; - int si_errno; - int si_code; - union __sifields _sifields; - }; - int _si_pad[32]; - }; -}; - -typedef struct siginfo siginfo_t; - -struct sigaltstack { - void __attribute__((btf_type_tag("user"))) *ss_sp; - int ss_flags; - __kernel_size_t ss_size; -}; - -typedef struct sigaltstack stack_t; - -typedef unsigned long old_sigset_t; - -struct ksignal { - struct k_sigaction ka; - kernel_siginfo_t info; - int sig; -}; - -struct trace_event_data_offsets_signal_generate {}; - -struct trace_event_data_offsets_signal_deliver {}; - -struct tracer_stat; - -struct stat_session { - struct list_head session_list; - struct tracer_stat *ts; - struct rb_root stat_root; - struct mutex stat_mutex; - struct dentry *file; -}; - -struct tracer_stat { - const char *name; - void * (*stat_start)(struct tracer_stat *); - void * (*stat_next)(void *, int); - cmp_func_t stat_cmp; - int (*stat_show)(struct seq_file *, void *); - void (*stat_release)(void *); - int (*stat_headers)(struct seq_file *); -}; - -struct stat_node { - struct rb_node node; - void *stat; -}; - -enum bpf_type_flag { - PTR_MAYBE_NULL = 256, - MEM_RDONLY = 512, - MEM_RINGBUF = 1024, - MEM_USER = 2048, - MEM_PERCPU = 4096, - OBJ_RELEASE = 8192, - PTR_UNTRUSTED = 16384, - MEM_UNINIT = 32768, - DYNPTR_TYPE_LOCAL = 65536, - DYNPTR_TYPE_RINGBUF = 131072, - MEM_FIXED_SIZE = 262144, - MEM_ALLOC = 524288, - PTR_TRUSTED = 1048576, - MEM_RCU = 2097152, - NON_OWN_REF = 4194304, - DYNPTR_TYPE_SKB = 8388608, - DYNPTR_TYPE_XDP = 16777216, - __BPF_TYPE_FLAG_MAX = 16777217, - __BPF_TYPE_LAST_FLAG = 16777216, -}; - -enum bpf_stack_slot_type { - STACK_INVALID = 0, - STACK_SPILL = 1, - STACK_MISC = 2, - STACK_ZERO = 3, - STACK_DYNPTR = 4, - STACK_ITER = 5, -}; - -enum fsnotify_obj_type { - FSNOTIFY_OBJ_TYPE_ANY = -1, - FSNOTIFY_OBJ_TYPE_INODE = 0, - FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1, - FSNOTIFY_OBJ_TYPE_SB = 2, - FSNOTIFY_OBJ_TYPE_COUNT = 3, - FSNOTIFY_OBJ_TYPE_DETACHED = 3, -}; - -struct inotify_group_private_data { - spinlock_t idr_lock; - struct idr idr; - struct ucounts *ucounts; -}; - -struct fsnotify_ops; - -struct fsnotify_event; - -struct fsnotify_group { - const struct fsnotify_ops *ops; - refcount_t refcnt; - spinlock_t notification_lock; - struct list_head notification_list; - wait_queue_head_t notification_waitq; - unsigned int q_len; - unsigned int max_events; - unsigned int priority; - bool shutdown; - int flags; - unsigned int owner_flags; - struct mutex mark_mutex; - atomic_t user_waits; - struct list_head marks_list; - struct fasync_struct *fsn_fa; - struct fsnotify_event *overflow_event; - struct mem_cgroup *memcg; - union { - void *private; - struct inotify_group_private_data inotify_data; - }; -}; - -struct fsnotify_iter_info; - -struct fsnotify_mark; - -struct fsnotify_ops { - int (*handle_event)(struct fsnotify_group *, u32, const void *, int, struct inode *, const struct qstr *, u32, struct fsnotify_iter_info *); - int (*handle_inode_event)(struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32); - void (*free_group_priv)(struct fsnotify_group *); - void (*freeing_mark)(struct fsnotify_mark *, struct fsnotify_group *); - void (*free_event)(struct fsnotify_group *, struct fsnotify_event *); - void (*free_mark)(struct fsnotify_mark *); -}; - -struct fsnotify_iter_info { - struct fsnotify_mark *marks[5]; - struct fsnotify_group *current_group; - unsigned int report_mask; - int srcu_idx; -}; - -struct fsnotify_mark { - __u32 mask; - refcount_t refcnt; - struct fsnotify_group *group; - struct list_head g_list; - spinlock_t lock; - struct hlist_node obj_list; - struct fsnotify_mark_connector *connector; - __u32 ignore_mask; - unsigned int flags; -}; - -struct fsnotify_event { - struct list_head list; -}; - -typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); - -typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); - -typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); - -typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); - -typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, u64, unsigned int, struct iomap *); - -typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); - -typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); - -typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); - -struct trace_event_raw_iomap_readpage_class { - struct trace_entry ent; - dev_t dev; - u64 ino; - int nr_pages; - char __data[0]; -}; - -struct trace_event_raw_iomap_range_class { - struct trace_entry ent; - dev_t dev; - u64 ino; - loff_t size; - loff_t offset; - u64 length; - char __data[0]; -}; - -struct trace_event_raw_iomap_class { - struct trace_entry ent; - dev_t dev; - u64 ino; - u64 addr; - loff_t offset; - u64 length; - u16 type; - u16 flags; - dev_t bdev; - char __data[0]; -}; - -struct trace_event_raw_iomap_writepage_map { - struct trace_entry ent; - dev_t dev; - u64 ino; - u64 pos; - u64 dirty_len; - u64 addr; - loff_t offset; - u64 length; - u16 type; - u16 flags; - dev_t bdev; - char __data[0]; -}; - -struct trace_event_raw_iomap_iter { - struct trace_entry ent; - dev_t dev; - u64 ino; - loff_t pos; - u64 length; - s64 processed; - unsigned int flags; - const void *ops; - unsigned long caller; - char __data[0]; -}; - -struct trace_event_raw_iomap_dio_rw_begin { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - size_t count; - size_t done_before; - int ki_flags; - unsigned int dio_flags; - bool aio; - char __data[0]; -}; - -struct trace_event_raw_iomap_dio_complete { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - int ki_flags; - bool aio; - int error; - ssize_t ret; - char __data[0]; -}; - -struct trace_event_data_offsets_iomap_readpage_class {}; - -struct trace_event_data_offsets_iomap_range_class {}; - -struct trace_event_data_offsets_iomap_class {}; - -struct trace_event_data_offsets_iomap_writepage_map {}; - -struct trace_event_data_offsets_iomap_iter {}; - -struct trace_event_data_offsets_iomap_dio_rw_begin {}; - -struct trace_event_data_offsets_iomap_dio_complete {}; - -struct iomap_ops { - int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); - int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); -}; - -enum { - ES_WRITTEN_B = 0, - ES_UNWRITTEN_B = 1, - ES_DELAYED_B = 2, - ES_HOLE_B = 3, - ES_REFERENCED_B = 4, - ES_FLAGS = 5, -}; - -enum { - SB_UNFROZEN = 0, - SB_FREEZE_WRITE = 1, - SB_FREEZE_PAGEFAULT = 2, - SB_FREEZE_FS = 3, - SB_FREEZE_COMPLETE = 4, -}; - -typedef unsigned short __kernel_uid16_t; - -typedef __kernel_uid16_t uid16_t; - -typedef unsigned short __kernel_gid16_t; - -typedef __kernel_gid16_t gid16_t; - -struct ext4_io_end; - -typedef struct ext4_io_end ext4_io_end_t; - -struct ext4_io_submit { - struct writeback_control *io_wbc; - struct bio *io_bio; - ext4_io_end_t *io_end; - sector_t io_next_block; -}; - -struct mpage_da_data { - struct inode *inode; - struct writeback_control *wbc; - unsigned int can_map: 1; - unsigned long first_page; - unsigned long next_page; - unsigned long last_page; - struct ext4_map_blocks map; - struct ext4_io_submit io_submit; - unsigned int do_map: 1; - unsigned int scanned_until_end: 1; - unsigned int journalled_more_data: 1; -}; - -struct ext4_io_end { - struct list_head list; - handle_t *handle; - struct inode *inode; - struct bio *bio; - unsigned int flag; - refcount_t count; - struct list_head list_vec; -}; - -struct ext4_io_end_vec { - struct list_head list; - loff_t offset; - ssize_t size; -}; - -struct ext4_group_desc { - __le32 bg_block_bitmap_lo; - __le32 bg_inode_bitmap_lo; - __le32 bg_inode_table_lo; - __le16 bg_free_blocks_count_lo; - __le16 bg_free_inodes_count_lo; - __le16 bg_used_dirs_count_lo; - __le16 bg_flags; - __le32 bg_exclude_bitmap_lo; - __le16 bg_block_bitmap_csum_lo; - __le16 bg_inode_bitmap_csum_lo; - __le16 bg_itable_unused_lo; - __le16 bg_checksum; - __le32 bg_block_bitmap_hi; - __le32 bg_inode_bitmap_hi; - __le32 bg_inode_table_hi; - __le16 bg_free_blocks_count_hi; - __le16 bg_free_inodes_count_hi; - __le16 bg_used_dirs_count_hi; - __le16 bg_itable_unused_hi; - __le32 bg_exclude_bitmap_hi; - __le16 bg_block_bitmap_csum_hi; - __le16 bg_inode_bitmap_csum_hi; - __u32 bg_reserved; -}; - -struct rtattr { - unsigned short rta_len; - unsigned short rta_type; -}; - -struct crypto_sync_skcipher; - -struct aead_geniv_ctx { - spinlock_t lock; - struct crypto_aead *child; - struct crypto_sync_skcipher *sknull; - u8 salt[0]; -}; - -typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); - -typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); - -typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); - -typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); - -typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); - -typedef void (*btf_trace_block_rq_insert)(void *, struct request *); - -typedef void (*btf_trace_block_rq_issue)(void *, struct request *); - -typedef void (*btf_trace_block_rq_merge)(void *, struct request *); - -typedef void (*btf_trace_block_io_start)(void *, struct request *); - -typedef void (*btf_trace_block_io_done)(void *, struct request *); - -typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); - -typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); - -typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); - -typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); - -typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); - -typedef void (*btf_trace_block_getrq)(void *, struct bio *); - -typedef void (*btf_trace_block_plug)(void *, struct request_queue *); - -typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); - -typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); - -typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); - -typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); - -enum { - PERCPU_REF_INIT_ATOMIC = 1, - PERCPU_REF_INIT_DEAD = 2, - PERCPU_REF_ALLOW_REINIT = 4, -}; - -enum blkg_rwstat_type { - BLKG_RWSTAT_READ = 0, - BLKG_RWSTAT_WRITE = 1, - BLKG_RWSTAT_SYNC = 2, - BLKG_RWSTAT_ASYNC = 3, - BLKG_RWSTAT_DISCARD = 4, - BLKG_RWSTAT_NR = 5, - BLKG_RWSTAT_TOTAL = 5, -}; - -enum { - IOPRIO_CLASS_NONE = 0, - IOPRIO_CLASS_RT = 1, - IOPRIO_CLASS_BE = 2, - IOPRIO_CLASS_IDLE = 3, - IOPRIO_CLASS_INVALID = 7, -}; - -enum { - IOPRIO_HINT_NONE = 0, - IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, - IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, - IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, - IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, - IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, - IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, - IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, -}; - -enum stat_group { - STAT_READ = 0, - STAT_WRITE = 1, - STAT_DISCARD = 2, - STAT_FLUSH = 3, - NR_STAT_GROUPS = 4, -}; - -struct blk_plug_cb; - -typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); - -struct blk_plug_cb { - struct list_head list; - blk_plug_cb_fn callback; - void *data; -}; - -struct trace_event_raw_block_buffer { - struct trace_entry ent; - dev_t dev; - sector_t sector; - size_t size; - char __data[0]; -}; - -struct trace_event_raw_block_rq_requeue { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - u32 __data_loc_cmd; - char __data[0]; -}; - -struct trace_event_raw_block_rq_completion { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - int error; - char rwbs[8]; - u32 __data_loc_cmd; - char __data[0]; -}; - -struct trace_event_raw_block_rq { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - unsigned int bytes; - char rwbs[8]; - char comm[16]; - u32 __data_loc_cmd; - char __data[0]; -}; - -struct trace_event_raw_block_bio_complete { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - int error; - char rwbs[8]; - char __data[0]; -}; - -struct trace_event_raw_block_bio { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - char comm[16]; - char __data[0]; -}; - -struct trace_event_raw_block_plug { - struct trace_entry ent; - char comm[16]; - char __data[0]; -}; - -struct trace_event_raw_block_unplug { - struct trace_entry ent; - int nr_rq; - char comm[16]; - char __data[0]; -}; - -struct trace_event_raw_block_split { - struct trace_entry ent; - dev_t dev; - sector_t sector; - sector_t new_sector; - char rwbs[8]; - char comm[16]; - char __data[0]; -}; - -struct trace_event_raw_block_bio_remap { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - dev_t old_dev; - sector_t old_sector; - char rwbs[8]; - char __data[0]; -}; - -struct trace_event_raw_block_rq_remap { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - dev_t old_dev; - sector_t old_sector; - unsigned int nr_bios; - char rwbs[8]; - char __data[0]; -}; - -struct throtl_service_queue { - struct throtl_service_queue *parent_sq; - struct list_head queued[2]; - unsigned int nr_queued[2]; - struct rb_root_cached pending_tree; - unsigned int nr_pending; - unsigned long first_pending_disptime; - struct timer_list pending_timer; -}; - -struct throtl_grp; - -struct throtl_qnode { - struct list_head node; - struct bio_list bios; - struct throtl_grp *tg; -}; - -struct blkg_rwstat { - struct percpu_counter cpu_cnt[5]; - atomic64_t aux_cnt[5]; -}; - -struct throtl_grp { - struct blkg_policy_data pd; - struct rb_node rb_node; - struct throtl_data *td; - struct throtl_service_queue service_queue; - struct throtl_qnode qnode_on_self[2]; - struct throtl_qnode qnode_on_parent[2]; - unsigned long disptime; - unsigned int flags; - bool has_rules_bps[2]; - bool has_rules_iops[2]; - uint64_t bps[4]; - uint64_t bps_conf[4]; - unsigned int iops[4]; - unsigned int iops_conf[4]; - uint64_t bytes_disp[2]; - unsigned int io_disp[2]; - unsigned long last_low_overflow_time[2]; - uint64_t last_bytes_disp[2]; - unsigned int last_io_disp[2]; - long long carryover_bytes[2]; - int carryover_ios[2]; - unsigned long last_check_time; - unsigned long latency_target; - unsigned long latency_target_conf; - unsigned long slice_start[2]; - unsigned long slice_end[2]; - unsigned long last_finish_time; - unsigned long checked_last_finish_time; - unsigned long avg_idletime; - unsigned long idletime_threshold; - unsigned long idletime_threshold_conf; - unsigned int bio_cnt; - unsigned int bad_bio_cnt; - unsigned long bio_cnt_reset_time; - struct blkg_rwstat stat_bytes; - struct blkg_rwstat stat_ios; -}; - -typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); - -typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); - -typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); - -typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); - -typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); - -typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); - -typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); - -typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); - -typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); - -struct blkcg_policy { - int plid; - struct cftype *dfl_cftypes; - struct cftype *legacy_cftypes; - blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; - blkcg_pol_free_cpd_fn *cpd_free_fn; - blkcg_pol_alloc_pd_fn *pd_alloc_fn; - blkcg_pol_init_pd_fn *pd_init_fn; - blkcg_pol_online_pd_fn *pd_online_fn; - blkcg_pol_offline_pd_fn *pd_offline_fn; - blkcg_pol_free_pd_fn *pd_free_fn; - blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; - blkcg_pol_stat_pd_fn *pd_stat_fn; -}; - -struct trace_event_data_offsets_block_buffer {}; - -struct trace_event_data_offsets_block_rq_requeue { - u32 cmd; - const void *cmd_ptr_; -}; - -struct trace_event_data_offsets_block_rq_completion { - u32 cmd; - const void *cmd_ptr_; -}; - -struct trace_event_data_offsets_block_rq { - u32 cmd; - const void *cmd_ptr_; -}; - -struct trace_event_data_offsets_block_bio_complete {}; - -struct trace_event_data_offsets_block_bio {}; - -struct trace_event_data_offsets_block_plug {}; - -struct trace_event_data_offsets_block_unplug {}; - -struct trace_event_data_offsets_block_split {}; - -struct trace_event_data_offsets_block_bio_remap {}; - -struct trace_event_data_offsets_block_rq_remap {}; - -enum con_scroll { - SM_UP = 0, - SM_DOWN = 1, -}; - -enum vesa_blank_mode { - VESA_NO_BLANKING = 0, - VESA_VSYNC_SUSPEND = 1, - VESA_HSYNC_SUSPEND = 2, - VESA_POWERDOWN = 3, - VESA_BLANK_MAX = 3, -}; - -enum vc_intensity { - VCI_HALF_BRIGHT = 0, - VCI_NORMAL = 1, - VCI_BOLD = 2, - VCI_MASK = 3, -}; - -struct vc_data; - -struct console_font; - -struct consw { - struct module *owner; - const char * (*con_startup)(); - void (*con_init)(struct vc_data *, bool); - void (*con_deinit)(struct vc_data *); - void (*con_clear)(struct vc_data *, unsigned int, unsigned int, unsigned int); - void (*con_putc)(struct vc_data *, u16, unsigned int, unsigned int); - void (*con_putcs)(struct vc_data *, const u16 *, unsigned int, unsigned int, unsigned int); - void (*con_cursor)(struct vc_data *, bool); - bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int); - bool (*con_switch)(struct vc_data *); - bool (*con_blank)(struct vc_data *, enum vesa_blank_mode, bool); - int (*con_font_set)(struct vc_data *, const struct console_font *, unsigned int, unsigned int); - int (*con_font_get)(struct vc_data *, struct console_font *, unsigned int); - int (*con_font_default)(struct vc_data *, struct console_font *, const char *); - int (*con_resize)(struct vc_data *, unsigned int, unsigned int, bool); - void (*con_set_palette)(struct vc_data *, const unsigned char *); - void (*con_scrolldelta)(struct vc_data *, int); - bool (*con_set_origin)(struct vc_data *); - void (*con_save_screen)(struct vc_data *); - u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool); - void (*con_invert_region)(struct vc_data *, u16 *, int); - void (*con_debug_enter)(struct vc_data *); - void (*con_debug_leave)(struct vc_data *); -}; - -struct vc_state { - unsigned int x; - unsigned int y; - unsigned char color; - unsigned char Gx_charset[2]; - unsigned int charset: 1; - enum vc_intensity intensity; - bool italic; - bool underline; - bool blink; - bool reverse; -}; - -struct console_font { - unsigned int width; - unsigned int height; - unsigned int charcount; - unsigned char *data; -}; - -struct vt_mode { - char mode; - char waitv; - short relsig; - short acqsig; - short frsig; -}; - -struct uni_pagedict; - -struct vc_data { - struct tty_port port; - struct vc_state state; - struct vc_state saved_state; - unsigned short vc_num; - unsigned int vc_cols; - unsigned int vc_rows; - unsigned int vc_size_row; - unsigned int vc_scan_lines; - unsigned int vc_cell_height; - unsigned long vc_origin; - unsigned long vc_scr_end; - unsigned long vc_visible_origin; - unsigned int vc_top; - unsigned int vc_bottom; - const struct consw *vc_sw; - unsigned short *vc_screenbuf; - unsigned int vc_screenbuf_size; - unsigned char vc_mode; - unsigned char vc_attr; - unsigned char vc_def_color; - unsigned char vc_ulcolor; - unsigned char vc_itcolor; - unsigned char vc_halfcolor; - unsigned int vc_cursor_type; - unsigned short vc_complement_mask; - unsigned short vc_s_complement_mask; - unsigned long vc_pos; - unsigned short vc_hi_font_mask; - struct console_font vc_font; - unsigned short vc_video_erase_char; - unsigned int vc_state; - unsigned int vc_npar; - unsigned int vc_par[16]; - struct vt_mode vt_mode; - struct pid *vt_pid; - int vt_newvt; - wait_queue_head_t paste_wait; - unsigned int vc_disp_ctrl: 1; - unsigned int vc_toggle_meta: 1; - unsigned int vc_decscnm: 1; - unsigned int vc_decom: 1; - unsigned int vc_decawm: 1; - unsigned int vc_deccm: 1; - unsigned int vc_decim: 1; - unsigned int vc_priv: 3; - unsigned int vc_need_wrap: 1; - unsigned int vc_can_do_color: 1; - unsigned int vc_report_mouse: 2; - unsigned char vc_utf: 1; - unsigned char vc_utf_count; - int vc_utf_char; - unsigned long vc_tab_stop[4]; - unsigned char vc_palette[48]; - unsigned short *vc_translate; - unsigned int vc_bell_pitch; - unsigned int vc_bell_duration; - unsigned short vc_cur_blink_ms; - struct vc_data **vc_display_fg; - struct uni_pagedict *uni_pagedict; - struct uni_pagedict **uni_pagedict_loc; - u32 **vc_uni_lines; -}; - -typedef u8 acpi_adr_space_type; - -struct acpi_create_field_info { - struct acpi_namespace_node *region_node; - struct acpi_namespace_node *field_node; - struct acpi_namespace_node *register_node; - struct acpi_namespace_node *data_register_node; - struct acpi_namespace_node *connection_node; - u8 *resource_buffer; - u32 bank_value; - u32 field_bit_position; - u32 field_bit_length; - u16 resource_length; - u16 pin_number_index; - u8 field_flags; - u8 attribute; - u8 field_type; - u8 access_length; -}; - -enum { - MATCH_MTR = 0, - MATCH_MEQ = 1, - MATCH_MLE = 2, - MATCH_MLT = 3, - MATCH_MGE = 4, - MATCH_MGT = 5, -}; - -struct acpi_predefined_names { - const char *name; - u8 type; - char *val; -}; - -typedef u32 acpi_name; - -typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); - -typedef u32 phys_cpuid_t; - -struct acpi_processor_flags { - u8 power: 1; - u8 performance: 1; - u8 throttling: 1; - u8 limit: 1; - u8 bm_control: 1; - u8 bm_check: 1; - u8 has_cst: 1; - u8 has_lpi: 1; - u8 power_setup_done: 1; - u8 bm_rld_set: 1; - u8 need_hotplug_init: 1; -}; - -struct acpi_processor_cx { - u8 valid; - u8 type; - u32 address; - u8 entry_method; - u8 index; - u32 latency; - u8 bm_sts_skip; - char desc[32]; -}; - -struct acpi_lpi_state { - u32 min_residency; - u32 wake_latency; - u32 flags; - u32 arch_flags; - u32 res_cnt_freq; - u32 enable_parent_state; - u64 address; - u8 index; - u8 entry_method; - char desc[32]; -}; - -struct acpi_processor_power { - int count; - union { - struct acpi_processor_cx states[8]; - struct acpi_lpi_state lpi_states[8]; - }; - int timer_broadcast_on_state; -}; - -struct acpi_pct_register { - u8 descriptor; - u16 length; - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 reserved; - u64 address; -} __attribute__((packed)); - -struct acpi_tsd_package { - u64 num_entries; - u64 revision; - u64 domain; - u64 coord_type; - u64 num_processors; -}; - -struct acpi_processor_tx { - u16 power; - u16 performance; -}; - -struct acpi_processor_tx_tss; - -struct acpi_processor; - -struct acpi_processor_throttling { - unsigned int state; - unsigned int platform_limit; - struct acpi_pct_register control_register; - struct acpi_pct_register status_register; - unsigned int state_count; - struct acpi_processor_tx_tss *states_tss; - struct acpi_tsd_package domain_info; - cpumask_var_t shared_cpu_map; - int (*acpi_processor_get_throttling)(struct acpi_processor *); - int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); - u32 address; - u8 duty_offset; - u8 duty_width; - u8 tsd_valid_flag; - unsigned int shared_type; - struct acpi_processor_tx states[16]; -}; - -struct acpi_processor_lx { - int px; - int tx; -}; - -struct acpi_processor_limit { - struct acpi_processor_lx state; - struct acpi_processor_lx thermal; - struct acpi_processor_lx user; -}; - -struct acpi_processor_performance; - -struct acpi_processor { - acpi_handle handle; - u32 acpi_id; - phys_cpuid_t phys_id; - u32 id; - u32 pblk; - int performance_platform_limit; - int throttling_platform_limit; - struct acpi_processor_flags flags; - struct acpi_processor_power power; - struct acpi_processor_performance *performance; - struct acpi_processor_throttling throttling; - struct acpi_processor_limit limit; - struct thermal_cooling_device *cdev; - struct device *dev; - struct freq_qos_request perflib_req; - struct freq_qos_request thermal_req; -}; - -struct acpi_psd_package { - u64 num_entries; - u64 revision; - u64 domain; - u64 coord_type; - u64 num_processors; -}; - -struct acpi_processor_px; - -struct acpi_processor_performance { - unsigned int state; - unsigned int platform_limit; - struct acpi_pct_register control_register; - struct acpi_pct_register status_register; - unsigned int state_count; - struct acpi_processor_px *states; - struct acpi_psd_package domain_info; - cpumask_var_t shared_cpu_map; - unsigned int shared_type; -}; - -struct acpi_processor_px { - u64 core_frequency; - u64 power; - u64 transition_latency; - u64 bus_master_latency; - u64 control; - u64 status; -}; - -struct acpi_processor_tx_tss { - u64 freqpercentage; - u64 power; - u64 transition_latency; - u64 control; - u64 status; -}; - -struct exar8250; - -struct exar8250_board { - unsigned int num_ports; - unsigned int reg_shift; - int (*setup)(struct exar8250 *, struct pci_dev *, struct uart_8250_port *, int); - void (*exit)(struct pci_dev *); -}; - -struct exar8250 { - unsigned int nr; - struct exar8250_board *board; - void *virt; - int line[0]; -}; - -struct exar8250_platform { - int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); - const struct serial_rs485 *rs485_supported; - int (*register_gpio)(struct pci_dev *, struct uart_8250_port *); - void (*unregister_gpio)(struct uart_8250_port *); -}; - -struct mii_if_info { - int phy_id; - int advertising; - int phy_id_mask; - int reg_num_mask; - unsigned int full_duplex: 1; - unsigned int force_media: 1; - unsigned int supports_gmii: 1; - struct net_device *dev; - int (*mdio_read)(struct net_device *, int, int); - void (*mdio_write)(struct net_device *, int, int, int); -}; - -struct ethtool_cmd { - __u32 cmd; - __u32 supported; - __u32 advertising; - __u16 speed; - __u8 duplex; - __u8 port; - __u8 phy_address; - __u8 transceiver; - __u8 autoneg; - __u8 mdio_support; - __u32 maxtxpkt; - __u32 maxrxpkt; - __u16 speed_hi; - __u8 eth_tp_mdix; - __u8 eth_tp_mdix_ctrl; - __u32 lp_advertising; - __u32 reserved[2]; -}; - -struct mii_ioctl_data { - __u16 phy_id; - __u16 reg_num; - __u16 val_in; - __u16 val_out; -}; - -enum iwl_system_subcmd_ids { - SHARED_MEM_CFG_CMD = 0, - SOC_CONFIGURATION_CMD = 1, - INIT_EXTENDED_CFG_CMD = 3, - FW_ERROR_RECOVERY_CMD = 7, - RFI_CONFIG_CMD = 11, - RFI_GET_FREQ_TABLE_CMD = 12, - SYSTEM_FEATURES_CONTROL_CMD = 13, - SYSTEM_STATISTICS_CMD = 15, - SYSTEM_STATISTICS_END_NOTIF = 253, - RFI_DEACTIVATE_NOTIF = 255, -}; - -enum iwl_legacy_cmds { - UCODE_ALIVE_NTFY = 1, - REPLY_ERROR___2 = 2, - ECHO_CMD = 3, - INIT_COMPLETE_NOTIF = 4, - PHY_CONTEXT_CMD = 8, - DBG_CFG = 9, - SCAN_ITERATION_COMPLETE_UMAC = 181, - SCAN_CFG_CMD = 12, - SCAN_REQ_UMAC = 13, - SCAN_ABORT_UMAC = 14, - SCAN_COMPLETE_UMAC = 15, - BA_WINDOW_STATUS_NOTIFICATION_ID = 19, - ADD_STA_KEY = 23, - ADD_STA = 24, - REMOVE_STA = 25, - TX_CMD = 28, - TXPATH_FLUSH = 30, - MGMT_MCAST_KEY = 31, - SCD_QUEUE_CFG = 29, - WEP_KEY = 32, - SHARED_MEM_CFG = 37, - TDLS_CHANNEL_SWITCH_CMD = 39, - TDLS_CHANNEL_SWITCH_NOTIFICATION = 170, - TDLS_CONFIG_CMD = 167, - MAC_CONTEXT_CMD = 40, - TIME_EVENT_CMD = 41, - TIME_EVENT_NOTIFICATION = 42, - BINDING_CONTEXT_CMD = 43, - TIME_QUOTA_CMD = 44, - NON_QOS_TX_COUNTER_CMD = 45, - LEDS_CMD = 72, - LQ_CMD = 78, - FW_PAGING_BLOCK_CMD = 79, - SCAN_OFFLOAD_REQUEST_CMD = 81, - SCAN_OFFLOAD_ABORT_CMD = 82, - HOT_SPOT_CMD = 83, - WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION = 103, - WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION = 104, - SCAN_OFFLOAD_COMPLETE = 109, - SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 110, - MATCH_FOUND_NOTIFICATION = 217, - SCAN_ITERATION_COMPLETE = 231, - PHY_CONFIGURATION_CMD = 106, - CALIB_RES_NOTIF_PHY_DB = 107, - PHY_DB_CMD = 108, - POWER_TABLE_CMD___2 = 119, - PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 120, - LTR_CONFIG = 238, - REPLY_THERMAL_MNG_BACKOFF = 126, - NVM_ACCESS_CMD = 136, - BEACON_NOTIFICATION___2 = 144, - BEACON_TEMPLATE_CMD = 145, - TX_ANT_CONFIGURATION_CMD___2 = 152, - STATISTICS_CMD = 156, - STATISTICS_NOTIFICATION___2 = 157, - EOSP_NOTIFICATION = 158, - REDUCE_TX_POWER_CMD = 159, - MISSED_BEACONS_NOTIFICATION___2 = 162, - MAC_PM_POWER_TABLE = 169, - MFUART_LOAD_NOTIFICATION = 177, - RSS_CONFIG_CMD = 179, - REPLY_RX_PHY_CMD___2 = 192, - REPLY_RX_MPDU_CMD___2 = 193, - BAR_FRAME_RELEASE = 194, - FRAME_RELEASE = 195, - BA_NOTIF = 197, - MCC_UPDATE_CMD = 200, - MCC_CHUB_UPDATE_CMD = 201, - MARKER_CMD = 203, - BT_PROFILE_NOTIFICATION = 206, - BT_CONFIG = 155, - BT_COEX_UPDATE_REDUCED_TXP = 92, - BT_COEX_CI = 93, - REPLY_SF_CFG_CMD = 209, - REPLY_BEACON_FILTERING_CMD = 210, - DTS_MEASUREMENT_NOTIFICATION = 221, - LDBG_CONFIG_CMD = 246, - DEBUG_LOG_MSG = 247, - MCAST_FILTER_CMD = 208, - D3_CONFIG_CMD = 211, - PROT_OFFLOAD_CONFIG_CMD = 212, - D0I3_END_CMD = 237, - WOWLAN_PATTERNS = 224, - WOWLAN_CONFIGURATION = 225, - WOWLAN_TSC_RSC_PARAM = 226, - WOWLAN_TKIP_PARAM = 227, - WOWLAN_KEK_KCK_MATERIAL = 228, - WOWLAN_GET_STATUSES = 229, - SCAN_OFFLOAD_PROFILES_QUERY_CMD = 86, -}; - -struct iwl_shared_mem_lmac_cfg { - __le32 txfifo_addr; - __le32 txfifo_size[15]; - __le32 rxfifo1_addr; - __le32 rxfifo1_size; -}; - -struct iwl_shared_mem_cfg { - __le32 shared_mem_addr; - __le32 shared_mem_size; - __le32 sample_buff_addr; - __le32 sample_buff_size; - __le32 rxfifo2_addr; - __le32 rxfifo2_size; - __le32 page_buff_addr; - __le32 page_buff_size; - __le32 lmac_num; - struct iwl_shared_mem_lmac_cfg lmac_smem[3]; - __le32 rxfifo2_control_addr; - __le32 rxfifo2_control_size; -}; - -struct iwl_shared_mem_cfg_v2 { - __le32 shared_mem_addr; - __le32 shared_mem_size; - __le32 sample_buff_addr; - __le32 sample_buff_size; - __le32 txfifo_addr; - __le32 txfifo_size[8]; - __le32 rxfifo_size[2]; - __le32 page_buff_addr; - __le32 page_buff_size; - __le32 rxfifo_addr; - __le32 internal_txfifo_addr; - __le32 internal_txfifo_size[6]; -}; - -enum data_queue_qid { - QID_AC_VO = 0, - QID_AC_VI = 1, - QID_AC_BE = 2, - QID_AC_BK = 3, - QID_HCCA = 4, - QID_MGMT = 13, - QID_RX = 14, - QID_OTHER = 15, - QID_BEACON = 16, - QID_ATIM = 17, -}; - -enum dev_state { - STATE_DEEP_SLEEP = 0, - STATE_SLEEP = 1, - STATE_STANDBY = 2, - STATE_AWAKE = 3, - STATE_RADIO_ON = 4, - STATE_RADIO_OFF = 5, - STATE_RADIO_IRQ_ON = 6, - STATE_RADIO_IRQ_OFF = 7, -}; - -enum ifs { - IFS_BACKOFF = 0, - IFS_SIFS = 1, - IFS_NEW_BACKOFF = 2, - IFS_NONE = 3, -}; - -enum txop { - TXOP_HTTXOP = 0, - TXOP_PIFS = 1, - TXOP_SIFS = 2, - TXOP_BACKOFF = 3, -}; - -enum rate_modulation { - RATE_MODE_CCK = 0, - RATE_MODE_OFDM = 1, - RATE_MODE_HT_MIX = 2, - RATE_MODE_HT_GREENFIELD = 3, -}; - -enum cipher { - CIPHER_NONE = 0, - CIPHER_WEP64 = 1, - CIPHER_WEP128 = 2, - CIPHER_TKIP = 3, - CIPHER_AES = 4, - CIPHER_CKIP64 = 5, - CIPHER_CKIP128 = 6, - CIPHER_TKIP_NO_MIC = 7, - CIPHER_MAX = 4, -}; - -enum mac80211_rx_encoding { - RX_ENC_LEGACY = 0, - RX_ENC_HT = 1, - RX_ENC_VHT = 2, - RX_ENC_HE = 3, - RX_ENC_EHT = 4, -}; - -enum rate_info_bw { - RATE_INFO_BW_20 = 0, - RATE_INFO_BW_5 = 1, - RATE_INFO_BW_10 = 2, - RATE_INFO_BW_40 = 3, - RATE_INFO_BW_80 = 4, - RATE_INFO_BW_160 = 5, - RATE_INFO_BW_HE_RU = 6, - RATE_INFO_BW_320 = 7, - RATE_INFO_BW_EHT_RU = 8, - RATE_INFO_BW_1 = 9, - RATE_INFO_BW_2 = 10, - RATE_INFO_BW_4 = 11, - RATE_INFO_BW_8 = 12, - RATE_INFO_BW_16 = 13, -}; - -enum tsf_sync { - TSF_SYNC_NONE = 0, - TSF_SYNC_INFRA = 1, - TSF_SYNC_ADHOC = 2, - TSF_SYNC_AP_NONE = 3, -}; - -enum antenna { - ANTENNA_SW_DIVERSITY = 0, - ANTENNA_A = 1, - ANTENNA_B = 2, - ANTENNA_HW_DIVERSITY = 3, -}; - -enum rt2x00_chip_intf { - RT2X00_CHIP_INTF_PCI = 0, - RT2X00_CHIP_INTF_PCIE = 1, - RT2X00_CHIP_INTF_USB = 2, - RT2X00_CHIP_INTF_SOC = 3, -}; - -enum rt2x00_state_flags { - DEVICE_STATE_PRESENT = 0, - DEVICE_STATE_REGISTERED_HW = 1, - DEVICE_STATE_INITIALIZED = 2, - DEVICE_STATE_STARTED = 3, - DEVICE_STATE_ENABLED_RADIO = 4, - DEVICE_STATE_SCANNING = 5, - DEVICE_STATE_FLUSHING = 6, - DEVICE_STATE_RESET = 7, - CONFIG_CHANNEL_HT40 = 8, - CONFIG_POWERSAVING = 9, - CONFIG_HT_DISABLED = 10, - CONFIG_MONITORING = 11, - TX_STATUS_READING = 12, -}; - -enum rt2x00usb_vendor_request { - USB_DEVICE_MODE = 1, - USB_SINGLE_WRITE = 2, - USB_SINGLE_READ = 3, - USB_MULTI_WRITE = 6, - USB_MULTI_READ = 7, - USB_EEPROM_WRITE = 8, - USB_EEPROM_READ = 9, - USB_LED_CONTROL = 10, - USB_RX_CONTROL = 12, -}; - -enum queue_index { - Q_INDEX = 0, - Q_INDEX_DMA_DONE = 1, - Q_INDEX_DONE = 2, - Q_INDEX_MAX = 3, -}; - -enum queue_entry_flags { - ENTRY_BCN_ASSIGNED = 0, - ENTRY_BCN_ENABLED = 1, - ENTRY_OWNER_DEVICE_DATA = 2, - ENTRY_DATA_PENDING = 3, - ENTRY_DATA_IO_FAILED = 4, - ENTRY_DATA_STATUS_PENDING = 5, -}; - -enum rt2x00_capability_flags { - REQUIRE_FIRMWARE = 0, - REQUIRE_BEACON_GUARD = 1, - REQUIRE_ATIM_QUEUE = 2, - REQUIRE_DMA = 3, - REQUIRE_COPY_IV = 4, - REQUIRE_L2PAD = 5, - REQUIRE_TXSTATUS_FIFO = 6, - REQUIRE_TASKLET_CONTEXT = 7, - REQUIRE_SW_SEQNO = 8, - REQUIRE_HT_TX_DESC = 9, - REQUIRE_PS_AUTOWAKE = 10, - REQUIRE_DELAYED_RFKILL = 11, - CAPABILITY_HW_BUTTON = 12, - CAPABILITY_HW_CRYPTO = 13, - CAPABILITY_POWER_LIMIT = 14, - CAPABILITY_CONTROL_FILTERS = 15, - CAPABILITY_CONTROL_FILTER_PSPOLL = 16, - CAPABILITY_PRE_TBTT_INTERRUPT = 17, - CAPABILITY_LINK_TUNING = 18, - CAPABILITY_FRAME_TYPE = 19, - CAPABILITY_RF_SEQUENCE = 20, - CAPABILITY_EXTERNAL_LNA_A = 21, - CAPABILITY_EXTERNAL_LNA_BG = 22, - CAPABILITY_DOUBLE_ANTENNA = 23, - CAPABILITY_BT_COEXIST = 24, - CAPABILITY_VCO_RECALIBRATION = 25, - CAPABILITY_EXTERNAL_PA_TX0 = 26, - CAPABILITY_EXTERNAL_PA_TX1 = 27, - CAPABILITY_RESTART_HW = 28, -}; - -enum txdone_entry_desc_flags { - TXDONE_UNKNOWN = 0, - TXDONE_SUCCESS = 1, - TXDONE_FALLBACK = 2, - TXDONE_FAILURE = 3, - TXDONE_EXCESSIVE_RETRY = 4, - TXDONE_AMPDU = 5, - TXDONE_NO_ACK_REQ = 6, -}; - -struct data_queue; - -struct queue_entry { - unsigned long flags; - unsigned long last_action; - struct data_queue *queue; - struct sk_buff *skb; - unsigned int entry_idx; - void *priv_data; -}; - -struct rt2x00_dev; - -struct data_queue { - struct rt2x00_dev *rt2x00dev; - struct queue_entry *entries; - enum data_queue_qid qid; - unsigned long flags; - struct mutex status_lock; - spinlock_t tx_lock; - spinlock_t index_lock; - unsigned int count; - unsigned short limit; - unsigned short threshold; - unsigned short length; - unsigned short index[3]; - unsigned short wd_count; - unsigned int wd_idx; - unsigned short txop; - unsigned short aifs; - unsigned short cw_min; - unsigned short cw_max; - unsigned short data_size; - unsigned char desc_size; - unsigned char winfo_size; - unsigned short priv_size; - unsigned short usb_endpoint; - unsigned short usb_maxpacket; -}; - -struct rt2x00_chip { - u16 rt; - u16 rf; - u16 rev; - enum rt2x00_chip_intf intf; -}; - -struct rf_channel; - -struct channel_info; - -struct hw_mode_spec { - unsigned int supported_bands; - unsigned int supported_rates; - unsigned int num_channels; - const struct rf_channel *channels; - const struct channel_info *channels_info; - struct ieee80211_sta_ht_cap ht; -}; - -struct antenna_setup { - enum antenna rx; - enum antenna tx; - u8 rx_chain_num; - u8 tx_chain_num; -}; - -union csr { - void *base; - void *cache; -}; - -struct link_qual { - int rssi; - int false_cca; - u8 vgc_level; - u8 vgc_level_reg; - int rx_success; - int rx_failed; - int tx_success; - int tx_failed; -}; - -struct link_ant { - unsigned int flags; - struct antenna_setup active; - int rssi_history; - struct ewma_rssi rssi_ant; -}; - -struct link { - u32 count; - struct link_qual qual; - struct link_ant ant; - struct ewma_rssi avg_rssi; - struct delayed_work work; - struct delayed_work watchdog_work; - unsigned int watchdog_interval; - unsigned int watchdog; - struct delayed_work agc_work; - struct delayed_work vco_work; -}; - -struct rt2x00_ops; - -struct rt2x00_chan_survey; - -struct rt2x00_dev { - struct device *dev; - const struct rt2x00_ops *ops; + u8 restrict_use: 1; + u8 use_for: 7; + u8 cannot_use_reasons; void *drv_data; - struct ieee80211_hw *hw; - struct ieee80211_supported_band bands[6]; - struct rt2x00_chan_survey *chan_survey; - enum nl80211_band curr_band; - int curr_freq; - unsigned long flags; - unsigned long cap_flags; - int irq; - const char *name; - struct rt2x00_chip chip; - struct hw_mode_spec spec; - struct antenna_setup default_ant; - union csr csr; - struct mutex csr_mutex; - struct mutex conf_mutex; - unsigned int packet_filter; - unsigned int intf_ap_count; - unsigned int intf_sta_count; - unsigned int intf_associated; - unsigned int intf_beaconing; - struct ieee80211_iface_limit if_limits_ap; - struct ieee80211_iface_combination if_combinations[1]; - struct link link; - __le16 *eeprom; - u32 *rf; - short lna_gain; - u16 tx_power; - u8 short_retry; - u8 long_retry; - u8 rssi_offset; - u8 freq_offset; - u16 aid; - u16 beacon_int; - u16 rxdma_busy; - u16 txdma_busy; - unsigned long last_beacon; - struct ieee80211_low_level_stats low_level_stats; - struct workqueue_struct *workqueue; - struct work_struct intf_work; - struct work_struct rxdone_work; - struct work_struct txdone_work; - struct delayed_work autowakeup_work; - struct work_struct sleep_work; - unsigned int data_queues; - struct data_queue *rx; - struct data_queue *tx; - struct data_queue *bcn; - struct data_queue *atim; - const struct firmware *fw; - struct { - union { - struct __kfifo kfifo; - u32 *type; - const u32 *const_type; - char (*rectype)[0]; - u32 *ptr; - const u32 *ptr_const; - }; - u32 buf[0]; - } txstatus_fifo; - struct hrtimer txstatus_timer; - struct tasklet_struct txstatus_tasklet; - struct tasklet_struct pretbtt_tasklet; - struct tasklet_struct tbtt_tasklet; - struct tasklet_struct rxdone_tasklet; - struct tasklet_struct autowake_tasklet; - int rf_channel; - spinlock_t irqmask_lock; - struct list_head bar_list; - spinlock_t bar_list_lock; - unsigned int extra_tx_headroom; - struct usb_anchor *anchor; - unsigned int num_proto_errs; - struct clk *clk; }; -struct rt2x00lib_ops; +typedef void (*btf_trace_cfg80211_return_bss)(void *, struct cfg80211_bss *); -struct rt2x00_ops { - const char *name; - const unsigned int drv_data_size; - const unsigned int max_ap_intf; - const unsigned int eeprom_size; - const unsigned int rf_size; - const unsigned int tx_queues; - void (*queue_init)(struct data_queue *); - const struct rt2x00lib_ops *lib; - const void *drv; - const struct ieee80211_ops *hw; -}; - -struct txentry_desc; - -struct rxdone_entry_desc; - -struct rt2x00lib_crypto; - -struct rt2x00_intf; - -struct rt2x00intf_conf; - -struct rt2x00lib_erp; - -struct rt2x00lib_conf; - -struct rt2x00lib_ops { - irq_handler_t irq_handler; - void (*txstatus_tasklet)(struct tasklet_struct *); - void (*pretbtt_tasklet)(struct tasklet_struct *); - void (*tbtt_tasklet)(struct tasklet_struct *); - void (*rxdone_tasklet)(struct tasklet_struct *); - void (*autowake_tasklet)(struct tasklet_struct *); - int (*probe_hw)(struct rt2x00_dev *); - char * (*get_firmware_name)(struct rt2x00_dev *); - int (*check_firmware)(struct rt2x00_dev *, const u8 *, const size_t); - int (*load_firmware)(struct rt2x00_dev *, const u8 *, const size_t); - int (*initialize)(struct rt2x00_dev *); - void (*uninitialize)(struct rt2x00_dev *); - bool (*get_entry_state)(struct queue_entry *); - void (*clear_entry)(struct queue_entry *); - int (*set_device_state)(struct rt2x00_dev *, enum dev_state); - int (*rfkill_poll)(struct rt2x00_dev *); - void (*link_stats)(struct rt2x00_dev *, struct link_qual *); - void (*reset_tuner)(struct rt2x00_dev *, struct link_qual *); - void (*link_tuner)(struct rt2x00_dev *, struct link_qual *, const u32); - void (*gain_calibration)(struct rt2x00_dev *); - void (*vco_calibration)(struct rt2x00_dev *); - void (*watchdog)(struct rt2x00_dev *); - void (*start_queue)(struct data_queue *); - void (*kick_queue)(struct data_queue *); - void (*stop_queue)(struct data_queue *); - void (*flush_queue)(struct data_queue *, bool); - void (*tx_dma_done)(struct queue_entry *); - void (*write_tx_desc)(struct queue_entry *, struct txentry_desc *); - void (*write_tx_data)(struct queue_entry *, struct txentry_desc *); - void (*write_beacon)(struct queue_entry *, struct txentry_desc *); - void (*clear_beacon)(struct queue_entry *); - int (*get_tx_data_len)(struct queue_entry *); - void (*fill_rxdone)(struct queue_entry *, struct rxdone_entry_desc *); - int (*config_shared_key)(struct rt2x00_dev *, struct rt2x00lib_crypto *, struct ieee80211_key_conf *); - int (*config_pairwise_key)(struct rt2x00_dev *, struct rt2x00lib_crypto *, struct ieee80211_key_conf *); - void (*config_filter)(struct rt2x00_dev *, const unsigned int); - void (*config_intf)(struct rt2x00_dev *, struct rt2x00_intf *, struct rt2x00intf_conf *, const unsigned int); - void (*config_erp)(struct rt2x00_dev *, struct rt2x00lib_erp *, u32); - void (*config_ant)(struct rt2x00_dev *, struct antenna_setup *); - void (*config)(struct rt2x00_dev *, struct rt2x00lib_conf *, const unsigned int); - void (*pre_reset_hw)(struct rt2x00_dev *); - int (*sta_add)(struct rt2x00_dev *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*sta_remove)(struct rt2x00_dev *, struct ieee80211_sta *); -}; - -struct txentry_desc { - unsigned long flags; - u16 length; - u16 header_length; - union { - struct { - u16 length_high; - u16 length_low; - u16 signal; - u16 service; - enum ifs ifs; - } plcp; - struct { - u16 mcs; - u8 stbc; - u8 ba_size; - u8 mpdu_density; - enum txop txop; - int wcid; - } ht; - } u; - enum rate_modulation rate_mode; - short retry_limit; - enum cipher cipher; - u16 key_idx; - u16 iv_offset; - u16 iv_len; -}; - -struct rxdone_entry_desc { - u64 timestamp; - int signal; - int rssi; - int size; - int flags; - int dev_flags; - u16 rate_mode; - u16 enc_flags; - enum mac80211_rx_encoding encoding; - enum rate_info_bw bw; - u8 cipher; - u8 cipher_status; - __le32 iv[2]; - __le32 icv; -}; - -struct rt2x00lib_crypto { - enum cipher cipher; - enum set_key_cmd cmd; - const u8 *address; - u32 bssidx; - u8 key[16]; - u8 tx_mic[8]; - u8 rx_mic[8]; - int wcid; -}; - -struct rt2x00_intf { - struct mutex beacon_skb_mutex; - struct queue_entry *beacon; - bool enable_beacon; - unsigned long delayed_flags; - atomic_t seqno; -}; - -struct rt2x00intf_conf { - enum nl80211_iftype type; - enum tsf_sync sync; - __le32 mac[2]; - __le32 bssid[2]; -}; - -struct rt2x00lib_erp { - int short_preamble; - int cts_protection; - u32 basic_rates; - int slot_time; - short sifs; - short pifs; - short difs; - short eifs; - u16 beacon_int; - u16 ht_opmode; -}; - -struct rf_channel { - int channel; - u32 rf1; - u32 rf2; - u32 rf3; - u32 rf4; -}; - -struct channel_info { - unsigned int flags; - short max_power; - short default_power1; - short default_power2; - short default_power3; -}; - -struct rt2x00lib_conf { - struct ieee80211_conf *conf; - struct rf_channel rf; - struct channel_info channel; -}; - -struct rt2x00_chan_survey { - u64 time_idle; - u64 time_busy; - u64 time_ext_busy; -}; - -struct skb_frame_desc { - u8 flags; - u8 desc_len; - u8 tx_rate_idx; - u8 tx_rate_flags; - void *desc; - __le32 iv[2]; - dma_addr_t skb_dma; - struct ieee80211_sta *sta; -}; - -struct queue_entry_priv_usb { - struct urb *urb; -}; - -struct queue_entry_priv_usb_bcn { - struct urb *urb; - unsigned int guardian_data; - struct urb *guardian_urb; -}; - -struct rt2x00_field32 { - u32 bit_offset; - u32 bit_mask; -}; - -struct rt2x00_async_read_data { - __le32 reg; - struct usb_ctrlrequest cr; - struct rt2x00_dev *rt2x00dev; - bool (*callback)(struct rt2x00_dev *, int, u32); -}; - -struct rtc_device; - -struct rtc_timer { - struct timerqueue_node node; - ktime_t period; - void (*func)(struct rtc_device *); - struct rtc_device *rtc; - int enabled; -}; - -typedef __u64 timeu64_t; - -struct rtc_class_ops; - -struct rtc_device { - struct device dev; - struct module *owner; - int id; - const struct rtc_class_ops *ops; - struct mutex ops_lock; - struct cdev char_dev; - unsigned long flags; - unsigned long irq_data; - spinlock_t irq_lock; - wait_queue_head_t irq_queue; - struct fasync_struct *async_queue; - int irq_freq; - int max_user_freq; - struct timerqueue_head timerqueue; - struct rtc_timer aie_timer; - struct rtc_timer uie_rtctimer; - struct hrtimer pie_timer; - int pie_enabled; - struct work_struct irqwork; - unsigned long set_offset_nsec; - unsigned long features[1]; - time64_t range_min; - timeu64_t range_max; - timeu64_t alarm_offset_max; - time64_t start_secs; - time64_t offset_secs; - bool set_start_time; -}; - -struct rtc_time; - -struct rtc_wkalrm; - -struct rtc_param; - -struct rtc_class_ops { - int (*ioctl)(struct device *, unsigned int, unsigned long); - int (*read_time)(struct device *, struct rtc_time *); - int (*set_time)(struct device *, struct rtc_time *); - int (*read_alarm)(struct device *, struct rtc_wkalrm *); - int (*set_alarm)(struct device *, struct rtc_wkalrm *); - int (*proc)(struct device *, struct seq_file *); - int (*alarm_irq_enable)(struct device *, unsigned int); - int (*read_offset)(struct device *, long *); - int (*set_offset)(struct device *, long); - int (*param_get)(struct device *, struct rtc_param *); - int (*param_set)(struct device *, struct rtc_param *); -}; - -struct rtc_time { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; -}; - -struct rtc_wkalrm { - unsigned char enabled; - unsigned char pending; - struct rtc_time time; -}; - -struct rtc_param { - __u64 param; - union { - __u64 uvalue; - __s64 svalue; - __u64 ptr; - }; - __u32 index; - __u32 __pad; -}; - -struct dm_rq_target_io; - -struct dm_rq_clone_bio_info { - struct bio *orig; - struct dm_rq_target_io *tio; - struct bio clone; -}; - -struct kthread_work; - -typedef void (*kthread_work_func_t)(struct kthread_work *); - -struct kthread_worker; - -struct kthread_work { - struct list_head node; - kthread_work_func_t func; - struct kthread_worker *worker; - int canceling; -}; - -struct dm_rq_target_io { - struct mapped_device *md; - struct dm_target *ti; - struct request *orig; - struct request *clone; - struct kthread_work work; - blk_status_t error; - union map_info info; - struct dm_stats_aux stats_aux; - unsigned long duration_jiffies; - unsigned int n_sectors; - unsigned int completed; -}; - -struct kthread_worker { - unsigned int flags; - raw_spinlock_t lock; - struct list_head work_list; - struct list_head delayed_work_list; - struct task_struct *task; - struct kthread_work *current_work; -}; - -struct pppoe_tag { - __be16 tag_type; - __be16 tag_len; - char tag_data[0]; -}; - -struct pppoe_hdr { - __u8 type: 4; - __u8 ver: 4; - __u8 code; - __be16 sid; - __be16 length; - struct pppoe_tag tag[0]; -}; - -enum flow_dissector_key_id { - FLOW_DISSECTOR_KEY_CONTROL = 0, - FLOW_DISSECTOR_KEY_BASIC = 1, - FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, - FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, - FLOW_DISSECTOR_KEY_PORTS = 4, - FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, - FLOW_DISSECTOR_KEY_ICMP = 6, - FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, - FLOW_DISSECTOR_KEY_TIPC = 8, - FLOW_DISSECTOR_KEY_ARP = 9, - FLOW_DISSECTOR_KEY_VLAN = 10, - FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, - FLOW_DISSECTOR_KEY_GRE_KEYID = 12, - FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, - FLOW_DISSECTOR_KEY_ENC_KEYID = 14, - FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, - FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, - FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, - FLOW_DISSECTOR_KEY_ENC_PORTS = 18, - FLOW_DISSECTOR_KEY_MPLS = 19, - FLOW_DISSECTOR_KEY_TCP = 20, - FLOW_DISSECTOR_KEY_IP = 21, - FLOW_DISSECTOR_KEY_CVLAN = 22, - FLOW_DISSECTOR_KEY_ENC_IP = 23, - FLOW_DISSECTOR_KEY_ENC_OPTS = 24, - FLOW_DISSECTOR_KEY_META = 25, - FLOW_DISSECTOR_KEY_CT = 26, - FLOW_DISSECTOR_KEY_HASH = 27, - FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, - FLOW_DISSECTOR_KEY_PPPOE = 29, - FLOW_DISSECTOR_KEY_L2TPV3 = 30, - FLOW_DISSECTOR_KEY_CFM = 31, - FLOW_DISSECTOR_KEY_IPSEC = 32, - FLOW_DISSECTOR_KEY_MAX = 33, -}; - -struct flow_dissector_key { - enum flow_dissector_key_id key_id; - size_t offset; -}; - -struct ib_device; - -struct devlink; - -enum devlink_port_type { - DEVLINK_PORT_TYPE_NOTSET = 0, - DEVLINK_PORT_TYPE_AUTO = 1, - DEVLINK_PORT_TYPE_ETH = 2, - DEVLINK_PORT_TYPE_IB = 3, -}; - -enum devlink_port_flavour { - DEVLINK_PORT_FLAVOUR_PHYSICAL = 0, - DEVLINK_PORT_FLAVOUR_CPU = 1, - DEVLINK_PORT_FLAVOUR_DSA = 2, - DEVLINK_PORT_FLAVOUR_PCI_PF = 3, - DEVLINK_PORT_FLAVOUR_PCI_VF = 4, - DEVLINK_PORT_FLAVOUR_VIRTUAL = 5, - DEVLINK_PORT_FLAVOUR_UNUSED = 6, - DEVLINK_PORT_FLAVOUR_PCI_SF = 7, -}; - -struct devlink_port_phys_attrs { - u32 port_number; - u32 split_subport_number; -}; - -struct devlink_port_pci_pf_attrs { - u32 controller; - u16 pf; - u8 external: 1; -}; - -struct devlink_port_pci_vf_attrs { - u32 controller; - u16 pf; - u16 vf; - u8 external: 1; -}; - -struct devlink_port_pci_sf_attrs { - u32 controller; - u32 sf; - u16 pf; - u8 external: 1; -}; - -struct devlink_port_attrs { - u8 split: 1; - u8 splittable: 1; - u32 lanes; - enum devlink_port_flavour flavour; - struct netdev_phys_item_id switch_id; - union { - struct devlink_port_phys_attrs phys; - struct devlink_port_pci_pf_attrs pci_pf; - struct devlink_port_pci_vf_attrs pci_vf; - struct devlink_port_pci_sf_attrs pci_sf; - }; -}; - -struct devlink_linecard; - -struct devlink_port_ops; - -struct devlink_rate; - -struct devlink_port { - struct list_head list; - struct list_head region_list; - struct devlink *devlink; - const struct devlink_port_ops *ops; - unsigned int index; - spinlock_t type_lock; - enum devlink_port_type type; - enum devlink_port_type desired_type; - union { - struct { - struct net_device *netdev; - int ifindex; - char ifname[16]; - } type_eth; - struct { - struct ib_device *ibdev; - } type_ib; - }; - struct devlink_port_attrs attrs; - u8 attrs_set: 1; - u8 switch_port: 1; - u8 registered: 1; - u8 initialized: 1; - struct delayed_work type_warn_dw; - struct list_head reporter_list; - struct devlink_rate *devlink_rate; - struct devlink_linecard *linecard; - u32 rel_index; -}; - -enum devlink_port_fn_state { - DEVLINK_PORT_FN_STATE_INACTIVE = 0, - DEVLINK_PORT_FN_STATE_ACTIVE = 1, -}; - -enum devlink_port_fn_opstate { - DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, - DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, -}; - -struct devlink_port_ops { - int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); - int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_type_set)(struct devlink_port *, enum devlink_port_type); - int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); - int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); - int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); - int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); -}; - -enum devlink_rate_type { - DEVLINK_RATE_TYPE_LEAF = 0, - DEVLINK_RATE_TYPE_NODE = 1, -}; - -struct devlink_rate { - struct list_head list; - enum devlink_rate_type type; - struct devlink *devlink; - void *priv; - u64 tx_share; - u64 tx_max; - struct devlink_rate *parent; - union { - struct devlink_port *devlink_port; - struct { - char *name; - refcount_t refcnt; - }; - }; - u32 tx_priority; - u32 tx_weight; -}; - -enum netns_bpf_attach_type { - NETNS_BPF_INVALID = -1, - NETNS_BPF_FLOW_DISSECTOR = 0, - NETNS_BPF_SK_LOOKUP = 1, - MAX_NETNS_BPF_ATTACH_TYPE = 2, -}; - -enum { - TCA_FLOWER_KEY_CT_FLAGS_NEW = 1, - TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 2, - TCA_FLOWER_KEY_CT_FLAGS_RELATED = 4, - TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 8, - TCA_FLOWER_KEY_CT_FLAGS_INVALID = 16, - TCA_FLOWER_KEY_CT_FLAGS_REPLY = 32, - __TCA_FLOWER_KEY_CT_FLAGS_MAX = 33, -}; - -enum flow_dissect_ret { - FLOW_DISSECT_RET_OUT_GOOD = 0, - FLOW_DISSECT_RET_OUT_BAD = 1, - FLOW_DISSECT_RET_PROTO_AGAIN = 2, - FLOW_DISSECT_RET_IPPROTO_AGAIN = 3, - FLOW_DISSECT_RET_CONTINUE = 4, -}; - -enum bpf_ret_code { - BPF_OK = 0, - BPF_DROP = 2, - BPF_REDIRECT = 7, - BPF_LWT_REROUTE = 128, - BPF_FLOW_DISSECTOR_CONTINUE = 129, -}; - -enum batadv_packettype { - BATADV_IV_OGM = 0, - BATADV_BCAST = 1, - BATADV_CODED = 2, - BATADV_ELP = 3, - BATADV_OGM2 = 4, - BATADV_MCAST = 5, - BATADV_UNICAST = 64, - BATADV_UNICAST_FRAG = 65, - BATADV_UNICAST_4ADDR = 66, - BATADV_ICMP = 67, - BATADV_UNICAST_TVLV = 68, -}; - -struct _flow_keys_digest_data { - __be16 n_proto; - u8 ip_proto; - u8 padding; - __be32 ports; - __be32 src; - __be32 dst; -}; - -union tcp_word_hdr { - struct tcphdr hdr; - __be32 words[5]; -}; - -struct mpls_label { - __be32 entry; -}; +typedef void (*btf_trace_cfg80211_return_uint)(void *, unsigned int); -struct flow_dissector_mpls_lse { - u32 mpls_ttl: 8; - u32 mpls_bos: 1; - u32 mpls_tc: 3; - u32 mpls_label: 20; -}; - -struct flow_dissector_key_mpls { - struct flow_dissector_mpls_lse ls[7]; - u8 used_lses; -}; - -struct batadv_unicast_packet { - __u8 packet_type; - __u8 version; - __u8 ttl; - __u8 ttvn; - __u8 dest[6]; -}; - -struct flow_dissector_key_arp { - __u32 sip; - __u32 tip; - __u8 op; - unsigned char sha[6]; - unsigned char tha[6]; -}; - -struct tipc_basic_hdr { - __be32 w[4]; -}; - -struct flow_dissector_key_cfm { - u8 mdl_ver; - u8 opcode; -}; - -struct flow_dissector_key_icmp { - struct { - u8 type; - u8 code; - }; - u16 id; -}; - -struct icmphdr { - __u8 type; - __u8 code; - __sum16 checksum; - union { - struct { - __be16 id; - __be16 sequence; - } echo; - __be32 gateway; - struct { - __be16 __unused; - __be16 mtu; - } frag; - __u8 reserved[4]; - } un; -}; - -struct gre_base_hdr { - __be16 flags; - __be16 protocol; -}; - -struct ip_esp_hdr { - __be32 spi; - __be32 seq_no; - __u8 enc_data[0]; -}; - -struct flow_dissector_key_ipsec { - __be32 spi; -}; - -struct ip_auth_hdr { - __u8 nexthdr; - __u8 hdrlen; - __be16 reserved; - __be32 spi; - __be32 seq_no; - __u8 auth_data[0]; -}; - -struct flow_dissector_key_l2tpv3 { - __be32 session_id; -}; - -struct bpf_flow_keys { - __u16 nhoff; - __u16 thoff; - __u16 addr_proto; - __u8 is_frag; - __u8 is_first_frag; - __u8 is_encap; - __u8 ip_proto; - __be16 n_proto; - __be16 sport; - __be16 dport; - union { - struct { - __be32 ipv4_src; - __be32 ipv4_dst; - }; - struct { - __u32 ipv6_src[4]; - __u32 ipv6_dst[4]; - }; - }; - __u32 flags; - __be32 flow_label; -}; - -struct flow_dissector_key_tipc { - __be32 key; -}; - -struct flow_dissector_key_addrs { - union { - struct flow_dissector_key_ipv4_addrs v4addrs; - struct flow_dissector_key_ipv6_addrs v6addrs; - struct flow_dissector_key_tipc tipckey; - }; -}; +typedef void (*btf_trace_cfg80211_return_u32)(void *, u32); -struct flow_dissector_key_tags { - u32 flow_label; -}; - -struct flow_keys { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; - struct flow_dissector_key_tags tags; - struct flow_dissector_key_vlan vlan; - struct flow_dissector_key_vlan cvlan; - struct flow_dissector_key_keyid keyid; - struct flow_dissector_key_ports ports; - struct flow_dissector_key_icmp icmp; - struct flow_dissector_key_addrs addrs; - long: 0; -}; - -struct flow_keys_basic { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; -}; - -struct flow_dissector_key_ct { - u16 ct_state; - u16 ct_zone; - u32 ct_mark; - u32 ct_labels[4]; -}; - -struct nf_conn_labels { - unsigned long bits[2]; -}; - -struct flow_dissector_key_enc_opts { - u8 data[255]; - u8 len; - __be16 dst_opt_type; -}; - -struct flow_dissector_key_hash { - u32 hash; -}; - -struct bpf_flow_dissector { - struct bpf_flow_keys *flow_keys; - const struct sk_buff *skb; - const void *data; - const void *data_end; -}; - -struct clock_identity { - u8 id[8]; -}; - -struct port_identity { - struct clock_identity clock_identity; - __be16 port_number; -}; - -struct ptp_header { - u8 tsmt; - u8 ver; - __be16 message_length; - u8 domain_number; - u8 reserved1; - u8 flag_field[2]; - __be64 correction; - __be32 reserved2; - struct port_identity source_port_identity; - __be16 sequence_id; - u8 control; - u8 log_message_interval; -} __attribute__((packed)); - -struct hsr_tag { - __be16 path_and_LSDU_size; - __be16 sequence_nr; - __be16 encap_proto; -}; - -struct frag_hdr { - __u8 nexthdr; - __u8 reserved; - __be16 frag_off; - __be32 identification; -}; - -struct flow_dissector_key_num_of_vlans { - u8 num_of_vlans; -}; - -struct flow_dissector_key_pppoe { - __be16 session_id; - __be16 ppp_proto; - __be16 type; -}; - -struct flow_keys_digest { - u8 data[16]; -}; - -enum ip_conntrack_expect_events { - IPEXP_NEW = 0, - IPEXP_DESTROY = 1, -}; +struct cfg80211_wowlan_wakeup; -struct nf_conn_help { - struct nf_conntrack_helper __attribute__((btf_type_tag("rcu"))) *helper; - struct hlist_head expectations; - u8 expecting[4]; - long: 0; - char data[32]; -}; - -struct nf_conntrack_zone { - u16 id; - u8 flags; - u8 dir; -}; - -struct ct_expect_iter_state { - struct seq_net_private p; - unsigned int bucket; -}; - -enum nf_hook_ops_type { - NF_HOOK_OP_UNDEFINED = 0, - NF_HOOK_OP_NF_TABLES = 1, - NF_HOOK_OP_BPF = 2, -}; - -struct nf_hook_ops { - nf_hookfn *hook; - struct net_device *dev; - void *priv; - u8 pf; - enum nf_hook_ops_type hook_ops_type: 8; - unsigned int hooknum; - int priority; -}; - -struct xt_table_info; - -struct xt_table { - struct list_head list; - unsigned int valid_hooks; - struct xt_table_info *private; - struct nf_hook_ops *ops; - struct module *me; - u_int8_t af; - int priority; - const char name[32]; -}; - -struct xt_table_info { - unsigned int size; - unsigned int number; - unsigned int initial_entries; - unsigned int hook_entry[5]; - unsigned int underflow[5]; - unsigned int stacksize; - void ***jumpstack; - unsigned char entries[0]; -}; - -struct ipt_ip { - struct in_addr src; - struct in_addr dst; - struct in_addr smsk; - struct in_addr dmsk; - char iniface[16]; - char outiface[16]; - unsigned char iniface_mask[16]; - unsigned char outiface_mask[16]; - __u16 proto; - __u8 flags; - __u8 invflags; -}; - -struct xt_counters { - __u64 pcnt; - __u64 bcnt; -}; - -struct ipt_entry { - struct ipt_ip ip; - unsigned int nfcache; - __u16 target_offset; - __u16 next_offset; - unsigned int comefrom; - struct xt_counters counters; - unsigned char elems[0]; -}; - -struct xt_entry_target { - union { - struct { - __u16 target_size; - char name[29]; - __u8 revision; - } user; - struct { - __u16 target_size; - struct xt_target *target; - } kernel; - __u16 target_size; - } u; - unsigned char data[0]; -}; - -struct xt_standard_target { - struct xt_entry_target target; - int verdict; -}; - -struct ipt_standard { - struct ipt_entry entry; - struct xt_standard_target target; -}; - -struct ipt_replace { - char name[32]; - unsigned int valid_hooks; - unsigned int num_entries; - unsigned int size; - unsigned int hook_entry[5]; - unsigned int underflow[5]; - unsigned int num_counters; - struct xt_counters __attribute__((btf_type_tag("user"))) *counters; - struct ipt_entry entries[0]; -}; - -enum { - BR_VLFLAG_PER_PORT_STATS = 1, - BR_VLFLAG_ADDED_BY_SWITCHDEV = 2, - BR_VLFLAG_MCAST_ENABLED = 4, - BR_VLFLAG_GLOBAL_MCAST_ENABLED = 8, - BR_VLFLAG_NEIGH_SUPPRESS_ENABLED = 16, -}; - -enum { - __ND_OPT_PREFIX_INFO_END = 0, - ND_OPT_SOURCE_LL_ADDR = 1, - ND_OPT_TARGET_LL_ADDR = 2, - ND_OPT_PREFIX_INFO = 3, - ND_OPT_REDIRECT_HDR = 4, - ND_OPT_MTU = 5, - ND_OPT_NONCE = 14, - __ND_OPT_ARRAY_MAX = 15, - ND_OPT_ROUTE_INFO = 24, - ND_OPT_RDNSS = 25, - ND_OPT_DNSSL = 31, - ND_OPT_6CO = 34, - ND_OPT_CAPTIVE_PORTAL = 37, - ND_OPT_PREF64 = 38, - __ND_OPT_MAX = 39, -}; - -struct br_input_skb_cb { - struct net_device *brdev; - u16 frag_max_size; - u8 igmp; - u8 mrouters_only: 1; - u8 proxyarp_replied: 1; - u8 src_port_isolated: 1; - u8 br_netfilter_broute: 1; - u32 backup_nhid; -}; - -struct nd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - __u8 opt[0]; -}; - -struct netdev_nested_priv { - unsigned char flags; - void *data; -}; - -enum ieee80211_elems_parse_error { - IEEE80211_PARSE_ERR_INVALID_END = 1, - IEEE80211_PARSE_ERR_DUP_ELEM = 2, - IEEE80211_PARSE_ERR_BAD_ELEM_SIZE = 4, - IEEE80211_PARSE_ERR_UNEXPECTED_ELEM = 8, - IEEE80211_PARSE_ERR_DUP_NEST_ML_BASIC = 16, -}; - -enum ieee80211_mle_subelems { - IEEE80211_MLE_SUBELEM_PER_STA_PROFILE = 0, - IEEE80211_MLE_SUBELEM_FRAGMENT = 254, -}; - -enum ieee80211_rate_flags { - IEEE80211_RATE_SHORT_PREAMBLE = 1, - IEEE80211_RATE_MANDATORY_A = 2, - IEEE80211_RATE_MANDATORY_B = 4, - IEEE80211_RATE_MANDATORY_G = 8, - IEEE80211_RATE_ERP_G = 16, - IEEE80211_RATE_SUPPORTS_5MHZ = 32, - IEEE80211_RATE_SUPPORTS_10MHZ = 64, -}; - -struct ieee80211_elems_parse { - struct ieee802_11_elems elems; - const struct element *ml_basic_elem; - const struct element *ml_reconf_elem; - size_t scratch_len; - u8 *scratch_pos; - u8 scratch[0]; -}; - -struct ieee80211_elems_parse_params { - enum ieee80211_conn_mode mode; - const u8 *start; - size_t len; - bool action; - u64 filter; - u32 crc; - struct cfg80211_bss *bss; - int link_id; - bool from_ap; -}; - -struct mesh_rmc { - struct hlist_head bucket[256]; - u32 idx_mask; -}; - -enum ieee80211_hw_flags { - IEEE80211_HW_HAS_RATE_CONTROL = 0, - IEEE80211_HW_RX_INCLUDES_FCS = 1, - IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 2, - IEEE80211_HW_SIGNAL_UNSPEC = 3, - IEEE80211_HW_SIGNAL_DBM = 4, - IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC = 5, - IEEE80211_HW_SPECTRUM_MGMT = 6, - IEEE80211_HW_AMPDU_AGGREGATION = 7, - IEEE80211_HW_SUPPORTS_PS = 8, - IEEE80211_HW_PS_NULLFUNC_STACK = 9, - IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 10, - IEEE80211_HW_MFP_CAPABLE = 11, - IEEE80211_HW_WANT_MONITOR_VIF = 12, - IEEE80211_HW_NO_AUTO_VIF = 13, - IEEE80211_HW_SW_CRYPTO_CONTROL = 14, - IEEE80211_HW_SUPPORT_FAST_XMIT = 15, - IEEE80211_HW_REPORTS_TX_ACK_STATUS = 16, - IEEE80211_HW_CONNECTION_MONITOR = 17, - IEEE80211_HW_QUEUE_CONTROL = 18, - IEEE80211_HW_SUPPORTS_PER_STA_GTK = 19, - IEEE80211_HW_AP_LINK_PS = 20, - IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 21, - IEEE80211_HW_SUPPORTS_RC_TABLE = 22, - IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 23, - IEEE80211_HW_TIMING_BEACON_ONLY = 24, - IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 25, - IEEE80211_HW_CHANCTX_STA_CSA = 26, - IEEE80211_HW_SUPPORTS_CLONED_SKBS = 27, - IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS = 28, - IEEE80211_HW_TDLS_WIDER_BW = 29, - IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU = 30, - IEEE80211_HW_BEACON_TX_STATUS = 31, - IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR = 32, - IEEE80211_HW_SUPPORTS_REORDERING_BUFFER = 33, - IEEE80211_HW_USES_RSS = 34, - IEEE80211_HW_TX_AMSDU = 35, - IEEE80211_HW_TX_FRAG_LIST = 36, - IEEE80211_HW_REPORTS_LOW_ACK = 37, - IEEE80211_HW_SUPPORTS_TX_FRAG = 38, - IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA = 39, - IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP = 40, - IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP = 41, - IEEE80211_HW_BUFF_MMPDU_TXQ = 42, - IEEE80211_HW_SUPPORTS_VHT_EXT_NSS_BW = 43, - IEEE80211_HW_STA_MMPDU_TXQ = 44, - IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN = 45, - IEEE80211_HW_SUPPORTS_MULTI_BSSID = 46, - IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID = 47, - IEEE80211_HW_AMPDU_KEYBORDER_SUPPORT = 48, - IEEE80211_HW_SUPPORTS_TX_ENCAP_OFFLOAD = 49, - IEEE80211_HW_SUPPORTS_RX_DECAP_OFFLOAD = 50, - IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP = 51, - IEEE80211_HW_DETECTS_COLOR_COLLISION = 52, - IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX = 53, - IEEE80211_HW_DISALLOW_PUNCTURING = 54, - IEEE80211_HW_HANDLES_QUIET_CSA = 55, - NUM_IEEE80211_HW_FLAGS = 56, -}; - -enum ieee80211_sta_info_flags { - WLAN_STA_AUTH = 0, - WLAN_STA_ASSOC = 1, - WLAN_STA_PS_STA = 2, - WLAN_STA_AUTHORIZED = 3, - WLAN_STA_SHORT_PREAMBLE = 4, - WLAN_STA_WDS = 5, - WLAN_STA_CLEAR_PS_FILT = 6, - WLAN_STA_MFP = 7, - WLAN_STA_BLOCK_BA = 8, - WLAN_STA_PS_DRIVER = 9, - WLAN_STA_PSPOLL = 10, - WLAN_STA_TDLS_PEER = 11, - WLAN_STA_TDLS_PEER_AUTH = 12, - WLAN_STA_TDLS_INITIATOR = 13, - WLAN_STA_TDLS_CHAN_SWITCH = 14, - WLAN_STA_TDLS_OFF_CHANNEL = 15, - WLAN_STA_TDLS_WIDER_BW = 16, - WLAN_STA_UAPSD = 17, - WLAN_STA_SP = 18, - WLAN_STA_4ADDR_EVENT = 19, - WLAN_STA_INSERTED = 20, - WLAN_STA_RATE_CONTROL = 21, - WLAN_STA_TOFFSET_KNOWN = 22, - WLAN_STA_MPSP_OWNER = 23, - WLAN_STA_MPSP_RECIPIENT = 24, - WLAN_STA_PS_DELIVER = 25, - WLAN_STA_USES_ENCRYPTION = 26, - WLAN_STA_DECAP_OFFLOAD = 27, - NUM_WLAN_STA_FLAGS = 28, -}; - -enum ieee80211_agg_stop_reason { - AGG_STOP_DECLINED = 0, - AGG_STOP_LOCAL_REQUEST = 1, - AGG_STOP_PEER_REQUEST = 2, - AGG_STOP_DESTROY_STA = 3, -}; - -enum ieee80211_max_queues { - IEEE80211_MAX_QUEUES = 16, - IEEE80211_MAX_QUEUE_MAP = 65535, -}; - -enum queue_stop_reason { - IEEE80211_QUEUE_STOP_REASON_DRIVER = 0, - IEEE80211_QUEUE_STOP_REASON_PS = 1, - IEEE80211_QUEUE_STOP_REASON_CSA = 2, - IEEE80211_QUEUE_STOP_REASON_AGGREGATION = 3, - IEEE80211_QUEUE_STOP_REASON_SUSPEND = 4, - IEEE80211_QUEUE_STOP_REASON_SKB_ADD = 5, - IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL = 6, - IEEE80211_QUEUE_STOP_REASON_FLUSH = 7, - IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN = 8, - IEEE80211_QUEUE_STOP_REASON_RESERVE_TID = 9, - IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE = 10, - IEEE80211_QUEUE_STOP_REASONS = 11, -}; - -enum ieee80211_sdata_state_bits { - SDATA_STATE_RUNNING = 0, - SDATA_STATE_OFFCHANNEL = 1, - SDATA_STATE_OFFCHANNEL_BEACON_STOPPED = 2, -}; +typedef void (*btf_trace_cfg80211_report_wowlan_wakeup)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_wowlan_wakeup *); struct cfg80211_wowlan_nd_info; @@ -56542,21434 +40241,6 @@ struct cfg80211_wowlan_nd_match { u32 channels[0]; }; -struct rethook; - -struct rethook_node { - struct callback_head rcu; - struct llist_node llist; - struct rethook *rethook; - unsigned long ret_addr; - unsigned long frame; -}; - -struct rethook { - void *data; - void (*handler)(struct rethook_node *, void *, unsigned long, struct pt_regs *); - struct objpool_head pool; - struct callback_head rcu; -}; - -enum { - IORES_DESC_NONE = 0, - IORES_DESC_CRASH_KERNEL = 1, - IORES_DESC_ACPI_TABLES = 2, - IORES_DESC_ACPI_NV_STORAGE = 3, - IORES_DESC_PERSISTENT_MEMORY = 4, - IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5, - IORES_DESC_DEVICE_PRIVATE_MEMORY = 6, - IORES_DESC_RESERVED = 7, - IORES_DESC_SOFT_RESERVED = 8, - IORES_DESC_CXL = 9, -}; - -typedef unsigned long kimage_entry_t; - -struct kexec_segment { - union { - void __attribute__((btf_type_tag("user"))) *buf; - void *kbuf; - }; - size_t bufsz; - unsigned long mem; - size_t memsz; -}; - -struct kimage_arch { - p4d_t *p4d; - pud_t *pud; - pmd_t *pmd; - pte_t *pte; -}; - -struct kimage { - kimage_entry_t head; - kimage_entry_t *entry; - kimage_entry_t *last_entry; - unsigned long start; - struct page *control_code_page; - struct page *swap_page; - void *vmcoreinfo_data_copy; - unsigned long nr_segments; - struct kexec_segment segment[16]; - struct list_head control_pages; - struct list_head dest_pages; - struct list_head unusable_pages; - unsigned long control_page; - unsigned int type: 1; - unsigned int preserve_context: 1; - unsigned int file_mode: 1; - struct kimage_arch arch; - void *elf_headers; - unsigned long elf_headers_sz; - unsigned long elf_load_addr; -}; - -struct init_pgtable_data { - struct x86_mapping_info *info; - pgd_t *level4p; -}; - -enum { - IRQ_STARTUP_NORMAL = 0, - IRQ_STARTUP_MANAGED = 1, - IRQ_STARTUP_ABORT = 2, -}; - -enum { - IRQS_AUTODETECT = 1, - IRQS_SPURIOUS_DISABLED = 2, - IRQS_POLL_INPROGRESS = 8, - IRQS_ONESHOT = 32, - IRQS_REPLAY = 64, - IRQS_WAITING = 128, - IRQS_PENDING = 512, - IRQS_SUSPENDED = 2048, - IRQS_TIMINGS = 4096, - IRQS_NMI = 8192, - IRQS_SYSFS = 16384, -}; - -enum { - IRQD_TRIGGER_MASK = 15, - IRQD_SETAFFINITY_PENDING = 256, - IRQD_ACTIVATED = 512, - IRQD_NO_BALANCING = 1024, - IRQD_PER_CPU = 2048, - IRQD_AFFINITY_SET = 4096, - IRQD_LEVEL = 8192, - IRQD_WAKEUP_STATE = 16384, - IRQD_MOVE_PCNTXT = 32768, - IRQD_IRQ_DISABLED = 65536, - IRQD_IRQ_MASKED = 131072, - IRQD_IRQ_INPROGRESS = 262144, - IRQD_WAKEUP_ARMED = 524288, - IRQD_FORWARDED_TO_VCPU = 1048576, - IRQD_AFFINITY_MANAGED = 2097152, - IRQD_IRQ_STARTED = 4194304, - IRQD_MANAGED_SHUTDOWN = 8388608, - IRQD_SINGLE_TARGET = 16777216, - IRQD_DEFAULT_TRIGGER_SET = 33554432, - IRQD_CAN_RESERVE = 67108864, - IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, - IRQD_AFFINITY_ON_ACTIVATE = 268435456, - IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, - IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, -}; - -enum { - _IRQ_DEFAULT_INIT_FLAGS = 0, - _IRQ_PER_CPU = 512, - _IRQ_LEVEL = 256, - _IRQ_NOPROBE = 1024, - _IRQ_NOREQUEST = 2048, - _IRQ_NOTHREAD = 65536, - _IRQ_NOAUTOEN = 4096, - _IRQ_MOVE_PCNTXT = 16384, - _IRQ_NO_BALANCING = 8192, - _IRQ_NESTED_THREAD = 32768, - _IRQ_PER_CPU_DEVID = 131072, - _IRQ_IS_POLLED = 262144, - _IRQ_DISABLE_UNLAZY = 524288, - _IRQ_HIDDEN = 1048576, - _IRQ_NO_DEBUG = 2097152, - _IRQF_MODIFY_MASK = 2096911, -}; - -enum { - IRQ_TYPE_NONE = 0, - IRQ_TYPE_EDGE_RISING = 1, - IRQ_TYPE_EDGE_FALLING = 2, - IRQ_TYPE_EDGE_BOTH = 3, - IRQ_TYPE_LEVEL_HIGH = 4, - IRQ_TYPE_LEVEL_LOW = 8, - IRQ_TYPE_LEVEL_MASK = 12, - IRQ_TYPE_SENSE_MASK = 15, - IRQ_TYPE_DEFAULT = 15, - IRQ_TYPE_PROBE = 16, - IRQ_LEVEL = 256, - IRQ_PER_CPU = 512, - IRQ_NOPROBE = 1024, - IRQ_NOREQUEST = 2048, - IRQ_NOAUTOEN = 4096, - IRQ_NO_BALANCING = 8192, - IRQ_MOVE_PCNTXT = 16384, - IRQ_NESTED_THREAD = 32768, - IRQ_NOTHREAD = 65536, - IRQ_PER_CPU_DEVID = 131072, - IRQ_IS_POLLED = 262144, - IRQ_DISABLE_UNLAZY = 524288, - IRQ_HIDDEN = 1048576, - IRQ_NO_DEBUG = 2097152, -}; - -struct posix_clock; - -struct posix_clock_context; - -struct posix_clock_operations { - struct module *owner; - int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); - int (*clock_gettime)(struct posix_clock *, struct timespec64 *); - int (*clock_getres)(struct posix_clock *, struct timespec64 *); - int (*clock_settime)(struct posix_clock *, const struct timespec64 *); - long (*ioctl)(struct posix_clock_context *, unsigned int, unsigned long); - int (*open)(struct posix_clock_context *, fmode_t); - __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); - int (*release)(struct posix_clock_context *); - ssize_t (*read)(struct posix_clock_context *, uint, char __attribute__((btf_type_tag("user"))) *, size_t); -}; - -struct posix_clock { - struct posix_clock_operations ops; - struct cdev cdev; - struct device *dev; - struct rw_semaphore rwsem; - bool zombie; -}; - -struct posix_clock_context { - struct posix_clock *clk; - void *private_clkdata; -}; - -struct posix_clock_desc { - struct file *fp; - struct posix_clock *clk; -}; - -struct cgroup_taskset { - struct list_head src_csets; - struct list_head dst_csets; - int nr_tasks; - int ssid; - struct list_head *csets; - struct css_set *cur_cset; - struct task_struct *cur_task; -}; - -struct cgroup_iter_priv { - struct cgroup_subsys_state *start_css; - bool visited_all; - bool terminate; - int order; -}; - -struct bpf_iter__cgroup { - union { - struct bpf_iter_meta *meta; - }; - union { - struct cgroup *cgroup; - }; -}; - -struct bpf_iter_css { - __u64 __opaque[3]; -}; - -struct bpf_iter_css_kern { - struct cgroup_subsys_state *start; - struct cgroup_subsys_state *pos; - unsigned int flags; -}; - -struct slab { - unsigned long __page_flags; - struct kmem_cache *slab_cache; - union { - struct { - union { - struct list_head slab_list; - struct { - struct slab *next; - int slabs; - }; - }; - union { - struct { - void *freelist; - union { - unsigned long counters; - struct { - unsigned int inuse: 16; - unsigned int objects: 15; - unsigned int frozen: 1; - }; - }; - }; - freelist_aba_t freelist_counter; - }; - }; - struct callback_head callback_head; - }; - unsigned int __unused; - atomic_t __page_refcount; - unsigned long memcg_data; -}; - -struct kmem_cache_node { - spinlock_t list_lock; - unsigned long nr_partial; - struct list_head partial; -}; - -struct slub_flush_work { - struct work_struct work; - struct kmem_cache *s; - bool skip; -}; - -struct slab_attribute { - struct attribute attr; - ssize_t (*show)(struct kmem_cache *, char *); - ssize_t (*store)(struct kmem_cache *, const char *, size_t); -}; - -struct saved_alias { - struct kmem_cache *s; - const char *name; - struct saved_alias *next; -}; - -enum slab_state { - DOWN = 0, - PARTIAL = 1, - UP = 2, - FULL = 3, -}; - -enum stat_item { - ALLOC_FASTPATH = 0, - ALLOC_SLOWPATH = 1, - FREE_FASTPATH = 2, - FREE_SLOWPATH = 3, - FREE_FROZEN = 4, - FREE_ADD_PARTIAL = 5, - FREE_REMOVE_PARTIAL = 6, - ALLOC_FROM_PARTIAL = 7, - ALLOC_SLAB = 8, - ALLOC_REFILL = 9, - ALLOC_NODE_MISMATCH = 10, - FREE_SLAB = 11, - CPUSLAB_FLUSH = 12, - DEACTIVATE_FULL = 13, - DEACTIVATE_EMPTY = 14, - DEACTIVATE_TO_HEAD = 15, - DEACTIVATE_TO_TAIL = 16, - DEACTIVATE_REMOTE_FREES = 17, - DEACTIVATE_BYPASS = 18, - ORDER_FALLBACK = 19, - CMPXCHG_DOUBLE_CPU_FAIL = 20, - CMPXCHG_DOUBLE_FAIL = 21, - CPU_PARTIAL_ALLOC = 22, - CPU_PARTIAL_FREE = 23, - CPU_PARTIAL_NODE = 24, - CPU_PARTIAL_DRAIN = 25, - NR_SLUB_STAT_ITEMS = 26, -}; - -enum track_item { - TRACK_ALLOC = 0, - TRACK_FREE = 1, -}; - -enum { - ZONELIST_FALLBACK = 0, - ZONELIST_NOFALLBACK = 1, - MAX_ZONELISTS = 2, -}; - -enum slab_stat_type { - SL_ALL = 0, - SL_PARTIAL = 1, - SL_CPU = 2, - SL_OBJECTS = 3, - SL_TOTAL = 4, -}; - -typedef struct { - unsigned long v; -} freeptr_t; - -struct detached_freelist { - struct slab *slab; - void *tail; - void *freelist; - int cnt; - struct kmem_cache *s; -}; - -struct partial_context { - gfp_t flags; - unsigned int orig_size; - void *object; -}; - -typedef unsigned long long cycles_t; - -union __u128_halves { - u128 full; - struct { - u64 low; - u64 high; - }; -}; - -struct kmem_obj_info { - void *kp_ptr; - struct slab *kp_slab; - void *kp_objp; - unsigned long kp_data_offset; - struct kmem_cache *kp_slab_cache; - void *kp_ret; - void *kp_stack[16]; - void *kp_free_stack[16]; -}; - -typedef u32 depot_stack_handle_t; - -struct track { - unsigned long addr; - depot_stack_handle_t handle; - int cpu; - int pid; - unsigned long when; -}; - -enum zone_stat_item { - NR_FREE_PAGES = 0, - NR_ZONE_LRU_BASE = 1, - NR_ZONE_INACTIVE_ANON = 1, - NR_ZONE_ACTIVE_ANON = 2, - NR_ZONE_INACTIVE_FILE = 3, - NR_ZONE_ACTIVE_FILE = 4, - NR_ZONE_UNEVICTABLE = 5, - NR_ZONE_WRITE_PENDING = 6, - NR_MLOCK = 7, - NR_BOUNCE = 8, - NR_FREE_CMA_PAGES = 9, - NR_VM_ZONE_STAT_ITEMS = 10, -}; - -struct sysinfo { - __kernel_long_t uptime; - __kernel_ulong_t loads[3]; - __kernel_ulong_t totalram; - __kernel_ulong_t freeram; - __kernel_ulong_t sharedram; - __kernel_ulong_t bufferram; - __kernel_ulong_t totalswap; - __kernel_ulong_t freeswap; - __u16 procs; - __u16 pad; - __kernel_ulong_t totalhigh; - __kernel_ulong_t freehigh; - __u32 mem_unit; - char _f[0]; -}; - -typedef struct { - int val[2]; -} __kernel_fsid_t; - -struct kstatfs { - long f_type; - long f_bsize; - u64 f_blocks; - u64 f_bfree; - u64 f_bavail; - u64 f_files; - u64 f_ffree; - __kernel_fsid_t f_fsid; - long f_namelen; - long f_frsize; - long f_flags; - long f_spare[4]; -}; - -struct fid { - union { - struct { - u32 ino; - u32 gen; - u32 parent_ino; - u32 parent_gen; - } i32; - struct { - u64 ino; - u32 gen; - } __attribute__((packed)) i64; - struct { - u32 block; - u16 partref; - u16 parent_partref; - u32 generation; - u32 parent_block; - u32 parent_generation; - } udf; - struct { - struct {} __empty_raw; - __u32 raw[0]; - }; - }; -}; - -enum isofs_file_format { - isofs_file_normal = 0, - isofs_file_sparse = 1, - isofs_file_compressed = 2, -}; - -enum { - Opt_block = 0, - Opt_check_r = 1, - Opt_check_s = 2, - Opt_cruft = 3, - Opt_gid___3 = 4, - Opt_ignore___2 = 5, - Opt_iocharset = 6, - Opt_map_a = 7, - Opt_map_n = 8, - Opt_map_o = 9, - Opt_mode___2 = 10, - Opt_nojoliet = 11, - Opt_norock = 12, - Opt_sb = 13, - Opt_session = 14, - Opt_uid___3 = 15, - Opt_unhide = 16, - Opt_utf8 = 17, - Opt_err___2 = 18, - Opt_nocompress = 19, - Opt_hide = 20, - Opt_showassoc = 21, - Opt_dmode = 22, - Opt_overriderockperm = 23, -}; - -typedef __kernel_long_t __kernel_off_t; - -typedef __kernel_off_t off_t; - -struct iso_inode_info { - unsigned long i_iget5_block; - unsigned long i_iget5_offset; - unsigned int i_first_extent; - unsigned char i_file_format; - unsigned char i_format_parm[3]; - unsigned long i_next_section_block; - unsigned long i_next_section_offset; - off_t i_section_size; - struct inode vfs_inode; -}; - -struct isofs_iget5_callback_data { - unsigned long block; - unsigned long offset; -}; - -struct iso_directory_record { - __u8 length[1]; - __u8 ext_attr_length[1]; - __u8 extent[8]; - __u8 size[8]; - __u8 date[7]; - __u8 flags[1]; - __u8 file_unit_size[1]; - __u8 interleave[1]; - __u8 volume_sequence_number[4]; - __u8 name_len[1]; - char name[0]; -}; - -struct iso_volume_descriptor { - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 data[2041]; -}; - -struct hs_volume_descriptor { - __u8 foo[8]; - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 data[2033]; -}; - -struct iso_primary_descriptor { - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 unused1[1]; - char system_id[32]; - char volume_id[32]; - __u8 unused2[8]; - __u8 volume_space_size[8]; - __u8 unused3[32]; - __u8 volume_set_size[4]; - __u8 volume_sequence_number[4]; - __u8 logical_block_size[4]; - __u8 path_table_size[8]; - __u8 type_l_path_table[4]; - __u8 opt_type_l_path_table[4]; - __u8 type_m_path_table[4]; - __u8 opt_type_m_path_table[4]; - __u8 root_directory_record[34]; - char volume_set_id[128]; - char publisher_id[128]; - char preparer_id[128]; - char application_id[128]; - char copyright_file_id[37]; - char abstract_file_id[37]; - char bibliographic_file_id[37]; - __u8 creation_date[17]; - __u8 modification_date[17]; - __u8 expiration_date[17]; - __u8 effective_date[17]; - __u8 file_structure_version[1]; - __u8 unused4[1]; - __u8 application_data[512]; - __u8 unused5[653]; -}; - -struct iso_supplementary_descriptor { - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 flags[1]; - char system_id[32]; - char volume_id[32]; - __u8 unused2[8]; - __u8 volume_space_size[8]; - __u8 escape[32]; - __u8 volume_set_size[4]; - __u8 volume_sequence_number[4]; - __u8 logical_block_size[4]; - __u8 path_table_size[8]; - __u8 type_l_path_table[4]; - __u8 opt_type_l_path_table[4]; - __u8 type_m_path_table[4]; - __u8 opt_type_m_path_table[4]; - __u8 root_directory_record[34]; - char volume_set_id[128]; - char publisher_id[128]; - char preparer_id[128]; - char application_id[128]; - char copyright_file_id[37]; - char abstract_file_id[37]; - char bibliographic_file_id[37]; - __u8 creation_date[17]; - __u8 modification_date[17]; - __u8 expiration_date[17]; - __u8 effective_date[17]; - __u8 file_structure_version[1]; - __u8 unused4[1]; - __u8 application_data[512]; - __u8 unused5[653]; -}; - -struct hs_primary_descriptor { - __u8 foo[8]; - __u8 type[1]; - __u8 id[5]; - __u8 version[1]; - __u8 unused1[1]; - char system_id[32]; - char volume_id[32]; - __u8 unused2[8]; - __u8 volume_space_size[8]; - __u8 unused3[32]; - __u8 volume_set_size[4]; - __u8 volume_sequence_number[4]; - __u8 logical_block_size[4]; - __u8 path_table_size[8]; - __u8 type_l_path_table[4]; - __u8 unused4[28]; - __u8 root_directory_record[34]; -}; - -struct nls_table; - -struct isofs_sb_info { - unsigned long s_ninodes; - unsigned long s_nzones; - unsigned long s_firstdatazone; - unsigned long s_log_zone_size; - unsigned long s_max_size; - int s_rock_offset; - s32 s_sbsector; - unsigned char s_joliet_level; - unsigned char s_mapping; - unsigned char s_check; - unsigned char s_session; - unsigned int s_high_sierra: 1; - unsigned int s_rock: 2; - unsigned int s_cruft: 1; - unsigned int s_nocompress: 1; - unsigned int s_hide: 1; - unsigned int s_showassoc: 1; - unsigned int s_overriderockperm: 1; - unsigned int s_uid_set: 1; - unsigned int s_gid_set: 1; - umode_t s_fmode; - umode_t s_dmode; - kgid_t s_gid; - kuid_t s_uid; - struct nls_table *s_nls_iocharset; -}; - -struct nls_table { - const char *charset; - const char *alias; - int (*uni2char)(wchar_t, unsigned char *, int); - int (*char2uni)(const unsigned char *, int, wchar_t *); - const unsigned char *charset2lower; - const unsigned char *charset2upper; - struct module *owner; - struct nls_table *next; -}; - -struct iso9660_options { - unsigned int rock: 1; - unsigned int joliet: 1; - unsigned int cruft: 1; - unsigned int hide: 1; - unsigned int showassoc: 1; - unsigned int nocompress: 1; - unsigned int overriderockperm: 1; - unsigned int uid_set: 1; - unsigned int gid_set: 1; - unsigned char map; - unsigned char check; - unsigned int blocksize; - umode_t fmode; - umode_t dmode; - kgid_t gid; - kuid_t uid; - char *iocharset; - s32 session; - s32 sbsector; -}; - -struct fuse_forget_one { - uint64_t nodeid; - uint64_t nlookup; -}; - -struct fuse_forget_link { - struct fuse_forget_one forget_one; - struct fuse_forget_link *next; -}; - -struct fuse_iqueue_ops; - -struct fuse_iqueue { - unsigned int connected; - spinlock_t lock; - wait_queue_head_t waitq; - u64 reqctr; - struct list_head pending; - struct list_head interrupts; - struct fuse_forget_link forget_list_head; - struct fuse_forget_link *forget_list_tail; - int forget_batch; - struct fasync_struct *fasync; - const struct fuse_iqueue_ops *ops; - void *priv; -}; - -struct fuse_sync_bucket; - -struct fuse_conn { - spinlock_t lock; - refcount_t count; - atomic_t dev_count; - struct callback_head rcu; - kuid_t user_id; - kgid_t group_id; - struct pid_namespace *pid_ns; - struct user_namespace *user_ns; - unsigned int max_read; - unsigned int max_write; - unsigned int max_pages; - unsigned int max_pages_limit; - struct fuse_iqueue iq; - atomic64_t khctr; - struct rb_root polled_files; - unsigned int max_background; - unsigned int congestion_threshold; - unsigned int num_background; - unsigned int active_background; - struct list_head bg_queue; - spinlock_t bg_lock; - int initialized; - int blocked; - wait_queue_head_t blocked_waitq; - unsigned int connected; - bool aborted; - unsigned int conn_error: 1; - unsigned int conn_init: 1; - unsigned int async_read: 1; - unsigned int abort_err: 1; - unsigned int atomic_o_trunc: 1; - unsigned int export_support: 1; - unsigned int writeback_cache: 1; - unsigned int parallel_dirops: 1; - unsigned int handle_killpriv: 1; - unsigned int cache_symlinks: 1; - unsigned int legacy_opts_show: 1; - unsigned int handle_killpriv_v2: 1; - unsigned int no_open: 1; - unsigned int no_opendir: 1; - unsigned int no_fsync: 1; - unsigned int no_fsyncdir: 1; - unsigned int no_flush: 1; - unsigned int no_setxattr: 1; - unsigned int setxattr_ext: 1; - unsigned int no_getxattr: 1; - unsigned int no_listxattr: 1; - unsigned int no_removexattr: 1; - unsigned int no_lock: 1; - unsigned int no_access: 1; - unsigned int no_create: 1; - unsigned int no_interrupt: 1; - unsigned int no_bmap: 1; - unsigned int no_poll: 1; - unsigned int big_writes: 1; - unsigned int dont_mask: 1; - unsigned int no_flock: 1; - unsigned int no_fallocate: 1; - unsigned int no_rename2: 1; - unsigned int auto_inval_data: 1; - unsigned int explicit_inval_data: 1; - unsigned int do_readdirplus: 1; - unsigned int readdirplus_auto: 1; - unsigned int async_dio: 1; - unsigned int no_lseek: 1; - unsigned int posix_acl: 1; - unsigned int default_permissions: 1; - unsigned int allow_other: 1; - unsigned int no_copy_file_range: 1; - unsigned int destroy: 1; - unsigned int delete_stale: 1; - unsigned int no_control: 1; - unsigned int no_force_umount: 1; - unsigned int auto_submounts: 1; - unsigned int sync_fs: 1; - unsigned int init_security: 1; - unsigned int create_supp_group: 1; - unsigned int inode_dax: 1; - unsigned int no_tmpfile: 1; - unsigned int direct_io_allow_mmap: 1; - unsigned int no_statx: 1; - unsigned int passthrough: 1; - int max_stack_depth; - atomic_t num_waiting; - unsigned int minor; - struct list_head entry; - dev_t dev; - struct dentry *ctl_dentry[5]; - int ctl_ndents; - u32 scramble_key[4]; - atomic64_t attr_version; - void (*release)(struct fuse_conn *); - struct rw_semaphore killsb; - struct list_head devices; - struct list_head mounts; - struct fuse_sync_bucket __attribute__((btf_type_tag("rcu"))) *curr_bucket; - struct idr backing_files_map; -}; - -struct fuse_iqueue_ops { - void (*wake_forget_and_unlock)(struct fuse_iqueue *); - void (*wake_interrupt_and_unlock)(struct fuse_iqueue *); - void (*wake_pending_and_unlock)(struct fuse_iqueue *); - void (*release)(struct fuse_iqueue *); -}; - -struct fuse_sync_bucket { - atomic_t count; - wait_queue_head_t waitq; - struct callback_head rcu; -}; - -struct workspace_manager; - -struct btrfs_compress_op { - struct workspace_manager *workspace_manager; - unsigned int max_level; - unsigned int default_level; -}; - -struct workspace_manager { - struct list_head idle_ws; - spinlock_t ws_lock; - int free_ws; - atomic_t total_ws; - wait_queue_head_t ws_wait; -}; - -enum btrfs_compression_type { - BTRFS_COMPRESS_NONE = 0, - BTRFS_COMPRESS_ZLIB = 1, - BTRFS_COMPRESS_LZO = 2, - BTRFS_COMPRESS_ZSTD = 3, - BTRFS_NR_COMPRESS_TYPES = 4, -}; - -typedef unsigned char Byte; - -typedef unsigned long uLong; - -struct internal_state; - -struct z_stream_s { - const Byte *next_in; - uLong avail_in; - uLong total_in; - Byte *next_out; - uLong avail_out; - uLong total_out; - char *msg; - struct internal_state *state; - void *workspace; - int data_type; - uLong adler; - uLong reserved; -}; - -typedef struct z_stream_s z_stream; - -struct workspace { - z_stream strm; - char *buf; - unsigned int buf_size; - struct list_head list; - int level; -}; - -struct internal_state { - int dummy; -}; - -typedef z_stream *z_streamp; - -struct btrfs_bio; - -typedef void (*btrfs_bio_end_io_t)(struct btrfs_bio *); - -struct btrfs_ordered_sum; - -struct btrfs_bio { - struct btrfs_inode *inode; - u64 file_offset; - union { - struct { - u8 *csum; - u8 csum_inline[64]; - struct bvec_iter saved_iter; - }; - struct { - struct btrfs_ordered_extent *ordered; - struct btrfs_ordered_sum *sums; - u64 orig_physical; - }; - struct btrfs_tree_parent_check parent_check; - }; - btrfs_bio_end_io_t end_io; - void *private; - unsigned int mirror_num; - atomic_t pending_ios; - struct work_struct end_io_work; - struct btrfs_fs_info *fs_info; - struct bio bio; -}; - -struct compressed_bio { - unsigned int nr_pages; - struct page **compressed_pages; - u64 start; - unsigned int len; - unsigned int compressed_len; - u8 compress_type; - bool writeback; - union { - struct btrfs_bio *orig_bbio; - struct work_struct write_end_work; - }; - struct btrfs_bio bbio; -}; - -enum rq_qos_id { - RQ_QOS_WBT = 0, - RQ_QOS_LATENCY = 1, - RQ_QOS_COST = 2, -}; - -struct rq_qos_ops; - -struct rq_qos { - const struct rq_qos_ops *ops; - struct gendisk *disk; - enum rq_qos_id id; - struct rq_qos *next; - struct dentry *debugfs_dir; -}; - -struct rq_qos_ops { - void (*throttle)(struct rq_qos *, struct bio *); - void (*track)(struct rq_qos *, struct request *, struct bio *); - void (*merge)(struct rq_qos *, struct request *, struct bio *); - void (*issue)(struct rq_qos *, struct request *); - void (*requeue)(struct rq_qos *, struct request *); - void (*done)(struct rq_qos *, struct request *); - void (*done_bio)(struct rq_qos *, struct bio *); - void (*cleanup)(struct rq_qos *, struct bio *); - void (*queue_depth_changed)(struct rq_qos *); - void (*exit)(struct rq_qos *); - const struct blk_mq_debugfs_attr *debugfs_attrs; -}; - -struct ioc_gq; - -struct ioc_now; - -typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); - -struct iocg_stat { - u64 usage_us; - u64 wait_us; - u64 indebt_us; - u64 indelay_us; -}; - -struct ioc; - -struct iocg_pcpu_stat; - -struct ioc_gq { - struct blkg_policy_data pd; - struct ioc *ioc; - u32 cfg_weight; - u32 weight; - u32 active; - u32 inuse; - u32 last_inuse; - s64 saved_margin; - sector_t cursor; - atomic64_t vtime; - atomic64_t done_vtime; - u64 abs_vdebt; - u64 delay; - u64 delay_at; - atomic64_t active_period; - struct list_head active_list; - u64 child_active_sum; - u64 child_inuse_sum; - u64 child_adjusted_sum; - int hweight_gen; - u32 hweight_active; - u32 hweight_inuse; - u32 hweight_donating; - u32 hweight_after_donation; - struct list_head walk_list; - struct list_head surplus_list; - struct wait_queue_head waitq; - struct hrtimer waitq_timer; - u64 activated_at; - struct iocg_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat; - struct iocg_stat stat; - struct iocg_stat last_stat; - u64 last_stat_abs_vusage; - u64 usage_delta_us; - u64 wait_since; - u64 indebt_since; - u64 indelay_since; - int level; - struct ioc_gq *ancestors[0]; -}; - -struct ioc_params { - u32 qos[6]; - u64 i_lcoefs[6]; - u64 lcoefs[6]; - u32 too_fast_vrate_pct; - u32 too_slow_vrate_pct; -}; - -struct ioc_margins { - s64 min; - s64 low; - s64 target; -}; - -enum ioc_running { - IOC_IDLE = 0, - IOC_RUNNING = 1, - IOC_STOP = 2, -}; - -struct ioc_pcpu_stat; - -struct ioc { - struct rq_qos rqos; - bool enabled; - struct ioc_params params; - struct ioc_margins margins; - u32 period_us; - u32 timer_slack_ns; - u64 vrate_min; - u64 vrate_max; - spinlock_t lock; - struct timer_list timer; - struct list_head active_iocgs; - struct ioc_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat; - enum ioc_running running; - atomic64_t vtime_rate; - u64 vtime_base_rate; - s64 vtime_err; - seqcount_spinlock_t period_seqcount; - u64 period_at; - u64 period_at_vtime; - atomic64_t cur_period; - int busy_level; - bool weights_updated; - atomic_t hweight_gen; - u64 dfgv_period_at; - u64 dfgv_period_rem; - u64 dfgv_usage_us_sum; - u64 autop_too_fast_at; - u64 autop_too_slow_at; - int autop_idx; - bool user_qos_params: 1; - bool user_cost_model: 1; -}; - -struct ioc_missed { - local_t nr_met; - local_t nr_missed; - u32 last_met; - u32 last_missed; -}; - -struct ioc_pcpu_stat { - struct ioc_missed missed[2]; - local64_t rq_wait_ns; - u64 last_rq_wait_ns; -}; - -struct iocg_pcpu_stat { - local64_t abs_vusage; -}; - -struct ioc_now { - u64 now_ns; - u64 now; - u64 vnow; -}; - -typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); - -typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); - -typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); - -typedef void (*btf_trace_iocost_inuse_adjust)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); - -typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int); - -typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64); - -enum { - MILLION = 1000000, - MIN_PERIOD = 1000, - MAX_PERIOD = 1000000, - MARGIN_MIN_PCT = 10, - MARGIN_LOW_PCT = 20, - MARGIN_TARGET_PCT = 50, - INUSE_ADJ_STEP_PCT = 25, - TIMER_SLACK_PCT = 1, - WEIGHT_ONE = 65536, -}; - -enum { - QOS_RPPM = 0, - QOS_RLAT = 1, - QOS_WPPM = 2, - QOS_WLAT = 3, - QOS_MIN = 4, - QOS_MAX = 5, - NR_QOS_PARAMS = 6, -}; - -enum { - QOS_ENABLE = 0, - QOS_CTRL = 1, - NR_QOS_CTRL_PARAMS = 2, -}; - -enum { - VTIME_PER_SEC_SHIFT = 37ULL, - VTIME_PER_SEC = 137438953472ULL, - VTIME_PER_USEC = 137438ULL, - VTIME_PER_NSEC = 137ULL, - VRATE_MIN_PPM = 10000ULL, - VRATE_MAX_PPM = 100000000ULL, - VRATE_MIN = 1374ULL, - VRATE_CLAMP_ADJ_PCT = 4ULL, - AUTOP_CYCLE_NSEC = 10000000000ULL, -}; - -enum { - AUTOP_INVALID = 0, - AUTOP_HDD = 1, - AUTOP_SSD_QD1 = 2, - AUTOP_SSD_DFL = 3, - AUTOP_SSD_FAST = 4, -}; - -enum { - RQ_WAIT_BUSY_PCT = 5, - UNBUSY_THR_PCT = 75, - MIN_DELAY_THR_PCT = 500, - MAX_DELAY_THR_PCT = 25000, - MIN_DELAY = 250, - MAX_DELAY = 250000, - DFGV_USAGE_PCT = 50, - DFGV_PERIOD = 100000, - MAX_LAGGING_PERIODS = 10, - IOC_PAGE_SHIFT = 12, - IOC_PAGE_SIZE = 4096, - IOC_SECT_TO_PAGE_SHIFT = 3, - LCOEF_RANDIO_PAGES = 4096, -}; - -enum { - I_LCOEF_RBPS = 0, - I_LCOEF_RSEQIOPS = 1, - I_LCOEF_RRANDIOPS = 2, - I_LCOEF_WBPS = 3, - I_LCOEF_WSEQIOPS = 4, - I_LCOEF_WRANDIOPS = 5, - NR_I_LCOEFS = 6, -}; - -enum { - LCOEF_RPAGE = 0, - LCOEF_RSEQIO = 1, - LCOEF_RRANDIO = 2, - LCOEF_WPAGE = 3, - LCOEF_WSEQIO = 4, - LCOEF_WRANDIO = 5, - NR_LCOEFS = 6, -}; - -enum { - COST_CTRL = 0, - COST_MODEL = 1, - NR_COST_CTRL_PARAMS = 2, -}; - -struct trace_event_raw_iocost_iocg_state { - struct trace_entry ent; - u32 __data_loc_devname; - u32 __data_loc_cgroup; - u64 now; - u64 vnow; - u64 vrate; - u64 last_period; - u64 cur_period; - u64 vtime; - u32 weight; - u32 inuse; - u64 hweight_active; - u64 hweight_inuse; - char __data[0]; -}; - -struct trace_event_raw_iocg_inuse_update { - struct trace_entry ent; - u32 __data_loc_devname; - u32 __data_loc_cgroup; - u64 now; - u32 old_inuse; - u32 new_inuse; - u64 old_hweight_inuse; - u64 new_hweight_inuse; - char __data[0]; -}; - -struct trace_event_raw_iocost_ioc_vrate_adj { - struct trace_entry ent; - u32 __data_loc_devname; - u64 old_vrate; - u64 new_vrate; - int busy_level; - u32 read_missed_ppm; - u32 write_missed_ppm; - u32 rq_wait_pct; - int nr_lagging; - int nr_shortages; - char __data[0]; -}; - -struct trace_event_raw_iocost_iocg_forgive_debt { - struct trace_entry ent; - u32 __data_loc_devname; - u32 __data_loc_cgroup; - u64 now; - u64 vnow; - u32 usage_pct; - u64 old_debt; - u64 new_debt; - u64 old_delay; - u64 new_delay; - char __data[0]; -}; - -struct ioc_cgrp { - struct blkcg_policy_data cpd; - unsigned int dfl_weight; -}; - -struct iocg_wait { - struct wait_queue_entry wait; - struct bio *bio; - u64 abs_cost; - bool committed; -}; - -struct trace_event_data_offsets_iocost_iocg_state { - u32 devname; - const void *devname_ptr_; - u32 cgroup; - const void *cgroup_ptr_; -}; - -struct trace_event_data_offsets_iocg_inuse_update { - u32 devname; - const void *devname_ptr_; - u32 cgroup; - const void *cgroup_ptr_; -}; - -struct trace_event_data_offsets_iocost_ioc_vrate_adj { - u32 devname; - const void *devname_ptr_; -}; - -struct trace_event_data_offsets_iocost_iocg_forgive_debt { - u32 devname; - const void *devname_ptr_; - u32 cgroup; - const void *cgroup_ptr_; -}; - -struct blkg_conf_ctx { - char *input; - char *body; - struct block_device *bdev; - struct blkcg_gq *blkg; -}; - -struct iocg_wake_ctx { - struct ioc_gq *iocg; - u32 hw_inuse; - s64 vbudget; -}; - -typedef u32 acpi_event_status; - -typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *); - -struct acpi_gpe_device_info { - u32 index; - u32 next_block_base_index; - acpi_status status; - struct acpi_namespace_node *gpe_device; -}; - -struct acpi_generic_address { - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_width; - u64 address; -} __attribute__((packed)); - -struct pnp_resource { - struct list_head list; - struct resource res; -}; - -struct pnp_port { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; -}; - -typedef struct { - unsigned long bits[4]; -} pnp_irq_mask_t; - -struct pnp_irq { - pnp_irq_mask_t map; - unsigned char flags; -}; - -struct pnp_dma { - unsigned char map; - unsigned char flags; -}; - -struct pnp_mem { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; -}; - -struct pnp_option { - struct list_head list; - unsigned int flags; - unsigned long type; - union { - struct pnp_port port; - struct pnp_irq irq; - struct pnp_dma dma; - struct pnp_mem mem; - } u; -}; - -struct internal_container { - struct klist_node node; - struct attribute_container *cont; - struct device classdev; -}; - -struct klist_iter { - struct klist *i_klist; - struct klist_node *i_cur; -}; - -typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); - -struct trace_event_raw_dma_fence { - struct trace_entry ent; - u32 __data_loc_driver; - u32 __data_loc_timeline; - unsigned int context; - unsigned int seqno; - char __data[0]; -}; - -struct default_wait_cb { - struct dma_fence_cb base; - struct task_struct *task; -}; - -struct trace_event_data_offsets_dma_fence { - u32 driver; - const void *driver_ptr_; - u32 timeline; - const void *timeline_ptr_; -}; - -struct iwl_mvm_sta_state_ops { - int (*add_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*update_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*rm_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*mac_ctxt_changed)(struct iwl_mvm *, struct ieee80211_vif *, bool); -}; - -struct iwl_mvm_roc_ops { - int (*add_aux_sta_for_hs20)(struct iwl_mvm *, u32); - int (*link)(struct iwl_mvm *, struct ieee80211_vif *); -}; - -struct iwl_mvm_switch_vif_chanctx_ops { - int (*__assign_vif_chanctx)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *, bool); - void (*__unassign_vif_chanctx)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *, bool); -}; - -enum iwl_scan_status { - IWL_MVM_SCAN_REGULAR = 1, - IWL_MVM_SCAN_SCHED = 2, - IWL_MVM_SCAN_NETDETECT = 4, - IWL_MVM_SCAN_STOPPING_REGULAR = 256, - IWL_MVM_SCAN_STOPPING_SCHED = 512, - IWL_MVM_SCAN_STOPPING_NETDETECT = 1024, - IWL_MVM_SCAN_REGULAR_MASK = 257, - IWL_MVM_SCAN_SCHED_MASK = 514, - IWL_MVM_SCAN_NETDETECT_MASK = 1028, - IWL_MVM_SCAN_STOPPING_MASK = 65280, - IWL_MVM_SCAN_MASK = 255, -}; - -enum iwl_mvm_smps_type_request { - IWL_MVM_SMPS_REQ_BT_COEX = 0, - IWL_MVM_SMPS_REQ_TT = 1, - IWL_MVM_SMPS_REQ_PROT = 2, - IWL_MVM_SMPS_REQ_FW = 3, - NUM_IWL_MVM_SMPS_REQ = 4, -}; - -enum iwl_link_ctx_modify_flags { - LINK_CONTEXT_MODIFY_ACTIVE = 1, - LINK_CONTEXT_MODIFY_RATES_INFO = 2, - LINK_CONTEXT_MODIFY_PROTECT_FLAGS = 4, - LINK_CONTEXT_MODIFY_QOS_PARAMS = 8, - LINK_CONTEXT_MODIFY_BEACON_TIMING = 16, - LINK_CONTEXT_MODIFY_HE_PARAMS = 32, - LINK_CONTEXT_MODIFY_BSS_COLOR_DISABLE = 64, - LINK_CONTEXT_MODIFY_EHT_PARAMS = 128, - LINK_CONTEXT_MODIFY_ALL = 255, -}; - -struct iwl_mvm_link_sel_data { - u8 link_id; - enum nl80211_band band; - enum nl80211_chan_width width; - bool active; -}; - -struct update_util_data { - void (*func)(struct update_util_data *, u64, unsigned int); -}; - -struct policy_dbs_info; - -struct cpu_dbs_info { - u64 prev_cpu_idle; - u64 prev_update_time; - u64 prev_cpu_nice; - unsigned int prev_load; - struct update_util_data update_util; - struct policy_dbs_info *policy_dbs; -}; - -struct dbs_data; - -struct policy_dbs_info { - struct cpufreq_policy *policy; - struct mutex update_mutex; - u64 last_sample_time; - s64 sample_delay_ns; - atomic_t work_count; - struct irq_work irq_work; - struct work_struct work; - struct dbs_data *dbs_data; - struct list_head list; - unsigned int rate_mult; - unsigned int idle_periods; - bool is_shared; - bool work_in_progress; -}; - -struct gov_attr_set { - struct kobject kobj; - struct list_head policy_list; - struct mutex update_lock; - int usage_count; -}; - -struct dbs_governor; - -struct dbs_data { - struct gov_attr_set attr_set; - struct dbs_governor *gov; - void *tuners; - unsigned int ignore_nice_load; - unsigned int sampling_rate; - unsigned int sampling_down_factor; - unsigned int up_threshold; - unsigned int io_is_busy; -}; - -struct dbs_governor { - struct cpufreq_governor gov; - struct kobj_type kobj_type; - struct dbs_data *gdbs_data; - unsigned int (*gov_dbs_update)(struct cpufreq_policy *); - struct policy_dbs_info * (*alloc)(); - void (*free)(struct policy_dbs_info *); - int (*init)(struct dbs_data *); - void (*exit)(struct dbs_data *); - void (*start)(struct cpufreq_policy *); -}; - -enum cpu_usage_stat { - CPUTIME_USER = 0, - CPUTIME_NICE = 1, - CPUTIME_SYSTEM = 2, - CPUTIME_SOFTIRQ = 3, - CPUTIME_IRQ = 4, - CPUTIME_IDLE = 5, - CPUTIME_IOWAIT = 6, - CPUTIME_STEAL = 7, - CPUTIME_GUEST = 8, - CPUTIME_GUEST_NICE = 9, - NR_STATS = 10, -}; - -struct kernel_cpustat { - u64 cpustat[10]; -}; - -typedef int (*dr_match_t)(struct device *, void *, void *); - -struct net_device_devres { - struct net_device *ndev; -}; - -enum { - CTRL_CMD_UNSPEC = 0, - CTRL_CMD_NEWFAMILY = 1, - CTRL_CMD_DELFAMILY = 2, - CTRL_CMD_GETFAMILY = 3, - CTRL_CMD_NEWOPS = 4, - CTRL_CMD_DELOPS = 5, - CTRL_CMD_GETOPS = 6, - CTRL_CMD_NEWMCAST_GRP = 7, - CTRL_CMD_DELMCAST_GRP = 8, - CTRL_CMD_GETMCAST_GRP = 9, - CTRL_CMD_GETPOLICY = 10, - __CTRL_CMD_MAX = 11, -}; - -enum genl_validate_flags { - GENL_DONT_VALIDATE_STRICT = 1, - GENL_DONT_VALIDATE_DUMP = 2, - GENL_DONT_VALIDATE_DUMP_STRICT = 4, -}; - -enum { - CTRL_ATTR_UNSPEC = 0, - CTRL_ATTR_FAMILY_ID = 1, - CTRL_ATTR_FAMILY_NAME = 2, - CTRL_ATTR_VERSION = 3, - CTRL_ATTR_HDRSIZE = 4, - CTRL_ATTR_MAXATTR = 5, - CTRL_ATTR_OPS = 6, - CTRL_ATTR_MCAST_GROUPS = 7, - CTRL_ATTR_POLICY = 8, - CTRL_ATTR_OP_POLICY = 9, - CTRL_ATTR_OP = 10, - __CTRL_ATTR_MAX = 11, -}; - -enum { - CTRL_ATTR_OP_UNSPEC = 0, - CTRL_ATTR_OP_ID = 1, - CTRL_ATTR_OP_FLAGS = 2, - __CTRL_ATTR_OP_MAX = 3, -}; - -enum { - CTRL_ATTR_MCAST_GRP_UNSPEC = 0, - CTRL_ATTR_MCAST_GRP_NAME = 1, - CTRL_ATTR_MCAST_GRP_ID = 2, - __CTRL_ATTR_MCAST_GRP_MAX = 3, -}; - -enum { - CTRL_ATTR_POLICY_UNSPEC = 0, - CTRL_ATTR_POLICY_DO = 1, - CTRL_ATTR_POLICY_DUMP = 2, - __CTRL_ATTR_POLICY_DUMP_MAX = 3, - CTRL_ATTR_POLICY_DUMP_MAX = 2, -}; - -struct genl_op_iter { - const struct genl_family *family; - struct genl_split_ops doit; - struct genl_split_ops dumpit; - int cmd_idx; - int entry_idx; - u32 cmd; - u8 flags; -}; - -typedef int (*netlink_filter_fn)(struct sock *, struct sk_buff *, void *); - -struct genl_dumpit_info { - struct genl_split_ops op; - struct genl_info info; -}; - -struct netlink_policy_dump_state; - -struct ctrl_dump_policy_ctx { - struct netlink_policy_dump_state *state; - const struct genl_family *rt; - struct genl_op_iter *op_iter; - u32 op; - u16 fam_id; - u8 dump_map: 1; - u8 single_op: 1; -}; - -struct netlink_kernel_cfg { - unsigned int groups; - unsigned int flags; - void (*input)(struct sk_buff *); - struct mutex *cb_mutex; - int (*bind)(struct net *, int); - void (*unbind)(struct net *, int); - void (*release)(struct sock *, unsigned long *); -}; - -struct genl_start_context { - const struct genl_family *family; - struct nlmsghdr *nlh; - struct netlink_ext_ack *extack; - const struct genl_split_ops *ops; - int hdrlen; -}; - -struct netlink_dump_control { - int (*start)(struct netlink_callback *); - int (*dump)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - struct netlink_ext_ack *extack; - void *data; - struct module *module; - u32 min_dump_alloc; - int flags; -}; - -enum nfnl_abort_action { - NFNL_ABORT_NONE = 0, - NFNL_ABORT_AUTOLOAD = 1, - NFNL_ABORT_VALIDATE = 2, -}; - -struct nfnl_callback; - -struct nfnetlink_subsystem { - const char *name; - __u8 subsys_id; - __u8 cb_count; - const struct nfnl_callback *cb; - struct module *owner; - int (*commit)(struct net *, struct sk_buff *); - int (*abort)(struct net *, struct sk_buff *, enum nfnl_abort_action); - bool (*valid_genid)(struct net *, u32); -}; - -enum nfnl_callback_type { - NFNL_CB_UNSPEC = 0, - NFNL_CB_MUTEX = 1, - NFNL_CB_RCU = 2, - NFNL_CB_BATCH = 3, -}; - -struct nfnl_info; - -struct nfnl_callback { - int (*call)(struct sk_buff *, const struct nfnl_info *, const struct nlattr * const *); - const struct nla_policy *policy; - enum nfnl_callback_type type; - __u16 attr_count; -}; - -struct nfgenmsg; - -struct nfnl_info { - struct net *net; - struct sock *sk; - const struct nlmsghdr *nlh; - const struct nfgenmsg *nfmsg; - struct netlink_ext_ack *extack; -}; - -struct nfgenmsg { - __u8 nfgen_family; - __u8 version; - __be16 res_id; -}; - -enum nfnl_cthelper_type { - NFCTH_UNSPEC = 0, - NFCTH_NAME = 1, - NFCTH_TUPLE = 2, - NFCTH_QUEUE_NUM = 3, - NFCTH_POLICY = 4, - NFCTH_PRIV_DATA_LEN = 5, - NFCTH_STATUS = 6, - __NFCTH_MAX = 7, -}; - -enum nfnl_cthelper_tuple_type { - NFCTH_TUPLE_UNSPEC = 0, - NFCTH_TUPLE_L3PROTONUM = 1, - NFCTH_TUPLE_L4PROTONUM = 2, - __NFCTH_TUPLE_MAX = 3, -}; - -enum nf_ct_helper_flags { - NF_CT_HELPER_F_USERSPACE = 1, - NF_CT_HELPER_F_CONFIGURED = 2, -}; - -enum nfnl_cthelper_policy_type { - NFCTH_POLICY_SET_UNSPEC = 0, - NFCTH_POLICY_SET_NUM = 1, - NFCTH_POLICY_SET = 2, - NFCTH_POLICY_SET1 = 2, - NFCTH_POLICY_SET2 = 3, - NFCTH_POLICY_SET3 = 4, - NFCTH_POLICY_SET4 = 5, - __NFCTH_POLICY_SET_MAX = 6, -}; - -enum nfnl_cthelper_pol_type { - NFCTH_POLICY_UNSPEC = 0, - NFCTH_POLICY_NAME = 1, - NFCTH_POLICY_EXPECT_MAX = 2, - NFCTH_POLICY_EXPECT_TIMEOUT = 3, - __NFCTH_POLICY_MAX = 4, -}; - -enum ctattr_help { - CTA_HELP_UNSPEC = 0, - CTA_HELP_NAME = 1, - CTA_HELP_INFO = 2, - __CTA_HELP_MAX = 3, -}; - -enum nfnl_cthelper_msg_types { - NFNL_MSG_CTHELPER_NEW = 0, - NFNL_MSG_CTHELPER_GET = 1, - NFNL_MSG_CTHELPER_DEL = 2, - NFNL_MSG_CTHELPER_MAX = 3, -}; - -struct nfnl_cthelper { - struct list_head list; - struct nf_conntrack_helper helper; -}; - -struct ip_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - __be32 sl_addr[0]; -}; - -struct cmsghdr { - __kernel_size_t cmsg_len; - int cmsg_level; - int cmsg_type; -}; - -struct in_pktinfo { - int ipi_ifindex; - struct in_addr ipi_spec_dst; - struct in_addr ipi_addr; -}; - -struct sock_ee_data_rfc4884 { - __u16 len; - __u8 flags; - __u8 reserved; -}; - -struct sock_extended_err { - __u32 ee_errno; - __u8 ee_origin; - __u8 ee_type; - __u8 ee_code; - __u8 ee_pad; - __u32 ee_info; - union { - __u32 ee_data; - struct sock_ee_data_rfc4884 ee_rfc4884; - }; -}; - -struct sock_exterr_skb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - struct sock_extended_err ee; - u16 addr_offset; - __be16 port; - u8 opt_stats: 1; - u8 unused: 7; -}; - -struct ip_mreq_source { - __be32 imr_multiaddr; - __be32 imr_interface; - __be32 imr_sourceaddr; -}; - -struct ip_msfilter { - __be32 imsf_multiaddr; - __be32 imsf_interface; - __u32 imsf_fmode; - __u32 imsf_numsrc; - union { - __be32 imsf_slist[1]; - struct { - struct {} __empty_imsf_slist_flex; - __be32 imsf_slist_flex[0]; - }; - }; -}; - -struct ipcm_cookie { - struct sockcm_cookie sockc; - __be32 addr; - int oif; - struct ip_options_rcu *opt; - __u8 protocol; - __u8 ttl; - __s16 tos; - char priority; - __u16 gso_size; -}; - -struct inet6_protocol { - int (*handler)(struct sk_buff *); - int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); - unsigned int flags; - u32 secret; -}; - -struct pci_mmcfg_region { - struct list_head list; - struct resource res; - u64 address; - char *virt; - u16 segment; - u8 start_bus; - u8 end_bus; - char name[30]; -}; - -struct pci_mmcfg_hostbridge_probe { - u32 bus; - u32 devfn; - u32 vendor; - u32 device; - const char * (*probe)(); -}; - -struct acpi_table_mcfg { - struct acpi_table_header header; - u8 reserved[8]; -}; - -struct acpi_mcfg_allocation { - u64 address; - u16 pci_segment; - u8 start_bus_number; - u8 end_bus_number; - u32 reserved; -}; - -typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); - -typedef struct { - u32 type; - u32 pad; - u64 phys_addr; - u64 virt_addr; - u64 num_pages; - u64 attribute; -} efi_memory_desc_t; - -typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); - -typedef bool (*check_reserved_t)(u64, u64, enum e820_type); - -struct rapl_pmu; - -struct rapl_pmus { - struct pmu pmu; - unsigned int maxdie; - struct rapl_pmu *pmus[0]; -}; - -struct rapl_pmu { - raw_spinlock_t lock; - int n_active; - int cpu; - struct list_head active_list; - struct pmu *pmu; - ktime_t timer_interval; - struct hrtimer hrtimer; -}; - -enum rapl_unit_quirk { - RAPL_UNIT_QUIRK_NONE = 0, - RAPL_UNIT_QUIRK_INTEL_HSW = 1, - RAPL_UNIT_QUIRK_INTEL_SPR = 2, -}; - -struct perf_msr; - -struct rapl_model { - struct perf_msr *rapl_msrs; - unsigned long events; - unsigned int msr_power_unit; - enum rapl_unit_quirk unit_quirk; -}; - -struct perf_msr { - u64 msr; - struct attribute_group *grp; - bool (*test)(int, void *); - bool no_check; - u64 mask; -}; - -struct perf_pmu_events_attr { - struct device_attribute attr; - u64 id; - const char *event_str; -}; - -enum perf_rapl_events { - PERF_RAPL_PP0 = 0, - PERF_RAPL_PKG = 1, - PERF_RAPL_RAM = 2, - PERF_RAPL_PP1 = 3, - PERF_RAPL_PSYS = 4, - PERF_RAPL_MAX = 5, - NR_RAPL_DOMAINS = 5, -}; - -enum perf_event_task_context { - perf_invalid_context = -1, - perf_hw_context = 0, - perf_sw_context = 1, - perf_nr_task_contexts = 2, -}; - -struct arch_uprobe; - -struct uprobe_xol_ops { - bool (*emulate)(struct arch_uprobe *, struct pt_regs *); - int (*pre_xol)(struct arch_uprobe *, struct pt_regs *); - int (*post_xol)(struct arch_uprobe *, struct pt_regs *); - void (*abort)(struct arch_uprobe *, struct pt_regs *); -}; - -struct arch_uprobe { - union { - u8 insn[16]; - u8 ixol[16]; - }; - const struct uprobe_xol_ops *ops; - union { - struct { - s32 offs; - u8 ilen; - u8 opc1; - } branch; - struct { - u8 fixups; - u8 ilen; - } defparam; - struct { - u8 reg_offset; - u8 ilen; - } push; - }; -}; - -enum die_val { - DIE_OOPS = 1, - DIE_INT3 = 2, - DIE_DEBUG = 3, - DIE_PANIC = 4, - DIE_NMI = 5, - DIE_DIE = 6, - DIE_KERNELDEBUG = 7, - DIE_TRAP = 8, - DIE_GPF = 9, - DIE_CALL = 10, - DIE_PAGE_FAULT = 11, - DIE_NMIUNKNOWN = 12, -}; - -enum rp_check { - RP_CHECK_CALL = 0, - RP_CHECK_CHAIN_CALL = 1, - RP_CHECK_RET = 2, -}; - -enum insn_mode { - INSN_MODE_32 = 0, - INSN_MODE_64 = 1, - INSN_MODE_KERN = 2, - INSN_NUM_MODES = 3, -}; - -typedef int insn_value_t; - -typedef unsigned char insn_byte_t; - -struct insn_field { - union { - insn_value_t value; - insn_byte_t bytes[4]; - }; - unsigned char got; - unsigned char nbytes; -}; - -typedef unsigned int insn_attr_t; - -struct insn { - struct insn_field prefixes; - struct insn_field rex_prefix; - struct insn_field vex_prefix; - struct insn_field opcode; - struct insn_field modrm; - struct insn_field sib; - struct insn_field displacement; - union { - struct insn_field immediate; - struct insn_field moffset1; - struct insn_field immediate1; - }; - union { - struct insn_field moffset2; - struct insn_field immediate2; - }; - int emulate_prefix_size; - insn_attr_t attr; - unsigned char opnd_bytes; - unsigned char addr_bytes; - unsigned char length; - unsigned char x86_64; - const insn_byte_t *kaddr; - const insn_byte_t *end_kaddr; - const insn_byte_t *next_byte; -}; - -struct die_args { - struct pt_regs *regs; - const char *str; - long err; - int trapnr; - int signr; -}; - -enum uv_system_type { - UV_NONE = 0, - UV_LEGACY_APIC = 1, - UV_X2APIC = 2, -}; - -struct acpi_subtable_header { - u8 type; - u8 length; -}; - -struct acpi_srat_x2apic_cpu_affinity { - struct acpi_subtable_header header; - u16 reserved; - u32 proximity_domain; - u32 apic_id; - u32 flags; - u32 clock_domain; - u32 reserved2; -}; - -struct acpi_srat_cpu_affinity { - struct acpi_subtable_header header; - u8 proximity_domain_lo; - u8 apic_id; - u32 flags; - u8 local_sapic_eid; - u8 proximity_domain_hi[3]; - u32 clock_domain; -}; - -typedef struct { - u64 signature; - u32 revision; - u32 headersize; - u32 crc32; - u32 reserved; -} efi_table_hdr_t; - -union efi_simple_text_input_protocol; - -typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; - -union efi_simple_text_output_protocol; - -typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; - -typedef unsigned long efi_status_t; - -typedef struct { - u16 year; - u8 month; - u8 day; - u8 hour; - u8 minute; - u8 second; - u8 pad1; - u32 nanosecond; - s16 timezone; - u8 daylight; - u8 pad2; -} efi_time_t; - -typedef struct { - u32 resolution; - u32 accuracy; - u8 sets_to_zero; -} efi_time_cap_t; - -typedef u8 efi_bool_t; - -typedef u16 efi_char16_t; - -typedef guid_t efi_guid_t; - -typedef struct { - efi_guid_t guid; - u32 headersize; - u32 flags; - u32 imagesize; -} efi_capsule_header_t; - -typedef struct { - efi_table_hdr_t hdr; - u32 get_time; - u32 set_time; - u32 get_wakeup_time; - u32 set_wakeup_time; - u32 set_virtual_address_map; - u32 convert_pointer; - u32 get_variable; - u32 get_next_variable; - u32 set_variable; - u32 get_next_high_mono_count; - u32 reset_system; - u32 update_capsule; - u32 query_capsule_caps; - u32 query_variable_info; -} efi_runtime_services_32_t; - -typedef union { - struct { - efi_table_hdr_t hdr; - efi_status_t (*get_time)(efi_time_t *, efi_time_cap_t *); - efi_status_t (*set_time)(efi_time_t *); - efi_status_t (*get_wakeup_time)(efi_bool_t *, efi_bool_t *, efi_time_t *); - efi_status_t (*set_wakeup_time)(efi_bool_t, efi_time_t *); - efi_status_t (*set_virtual_address_map)(unsigned long, unsigned long, u32, efi_memory_desc_t *); - void *convert_pointer; - efi_status_t (*get_variable)(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); - efi_status_t (*get_next_variable)(unsigned long *, efi_char16_t *, efi_guid_t *); - efi_status_t (*set_variable)(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); - efi_status_t (*get_next_high_mono_count)(u32 *); - void (*reset_system)(int, efi_status_t, unsigned long, efi_char16_t *); - efi_status_t (*update_capsule)(efi_capsule_header_t **, unsigned long, unsigned long); - efi_status_t (*query_capsule_caps)(efi_capsule_header_t **, unsigned long, u64 *, int *); - efi_status_t (*query_variable_info)(u32, u64 *, u64 *, u64 *); - }; - efi_runtime_services_32_t mixed_mode; -} efi_runtime_services_t; - -union efi_boot_services; - -typedef union efi_boot_services efi_boot_services_t; - -typedef struct { - efi_table_hdr_t hdr; - u32 fw_vendor; - u32 fw_revision; - u32 con_in_handle; - u32 con_in; - u32 con_out_handle; - u32 con_out; - u32 stderr_handle; - u32 stderr; - u32 runtime; - u32 boottime; - u32 nr_tables; - u32 tables; -} efi_system_table_32_t; - -typedef union { - struct { - efi_table_hdr_t hdr; - unsigned long fw_vendor; - u32 fw_revision; - unsigned long con_in_handle; - efi_simple_text_input_protocol_t *con_in; - unsigned long con_out_handle; - efi_simple_text_output_protocol_t *con_out; - unsigned long stderr_handle; - unsigned long stderr; - efi_runtime_services_t *runtime; - efi_boot_services_t *boottime; - unsigned long nr_tables; - unsigned long tables; - }; - efi_system_table_32_t mixed_mode; -} efi_system_table_t; - -typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); - -struct dma_sgt_handle { - struct sg_table sgt; - struct page **pages; -}; - -struct io_tlb_area; - -struct io_tlb_slot; - -struct io_tlb_pool { - phys_addr_t start; - phys_addr_t end; - void *vaddr; - unsigned long nslabs; - bool late_alloc; - unsigned int nareas; - unsigned int area_nslabs; - struct io_tlb_area *areas; - struct io_tlb_slot *slots; -}; - -struct io_tlb_mem { - struct io_tlb_pool defpool; - unsigned long nslabs; - struct dentry *debugfs; - bool force_bounce; - bool for_alloc; - atomic_long_t total_used; - atomic_long_t used_hiwater; - atomic_long_t transient_nslabs; -}; - -struct dma_map_ops { - unsigned int flags; - void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, unsigned long); - void (*free)(struct device *, size_t, void *, dma_addr_t, unsigned long); - struct page * (*alloc_pages)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t); - void (*free_pages)(struct device *, size_t, struct page *, dma_addr_t, enum dma_data_direction); - struct sg_table * (*alloc_noncontiguous)(struct device *, size_t, enum dma_data_direction, gfp_t, unsigned long); - void (*free_noncontiguous)(struct device *, size_t, struct sg_table *, enum dma_data_direction); - int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, unsigned long); - int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, unsigned long); - dma_addr_t (*map_page)(struct device *, struct page *, unsigned long, size_t, enum dma_data_direction, unsigned long); - void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long); - int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long); - void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long); - dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, unsigned long); - void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long); - void (*sync_single_for_cpu)(struct device *, dma_addr_t, size_t, enum dma_data_direction); - void (*sync_single_for_device)(struct device *, dma_addr_t, size_t, enum dma_data_direction); - void (*sync_sg_for_cpu)(struct device *, struct scatterlist *, int, enum dma_data_direction); - void (*sync_sg_for_device)(struct device *, struct scatterlist *, int, enum dma_data_direction); - void (*cache_sync)(struct device *, void *, size_t, enum dma_data_direction); - int (*dma_supported)(struct device *, u64); - u64 (*get_required_mask)(struct device *); - size_t (*max_mapping_size)(struct device *); - size_t (*opt_mapping_size)(); - unsigned long (*get_merge_boundary)(struct device *); -}; - -struct dma_devres { - size_t size; - void *vaddr; - dma_addr_t dma_handle; - unsigned long attrs; -}; - -enum futex_access { - FUTEX_READ = 0, - FUTEX_WRITE = 1, -}; - -enum { - FUTEX_STATE_OK = 0, - FUTEX_STATE_EXITING = 1, - FUTEX_STATE_DEAD = 2, -}; - -struct rt_waiter_node { - struct rb_node entry; - int prio; - u64 deadline; -}; - -struct rt_mutex_base; - -struct rt_mutex_waiter { - struct rt_waiter_node tree; - struct rt_waiter_node pi_tree; - struct task_struct *task; - struct rt_mutex_base *lock; - unsigned int wake_state; - struct ww_acquire_ctx *ww_ctx; -}; - -struct rt_mutex_base { - raw_spinlock_t wait_lock; - struct rb_root_cached waiters; - struct task_struct *owner; -}; - -union futex_key { - struct { - u64 i_seq; - unsigned long pgoff; - unsigned int offset; - } shared; - struct { - union { - struct mm_struct *mm; - u64 __tmp; - }; - unsigned long address; - unsigned int offset; - } private; - struct { - u64 ptr; - unsigned long word; - unsigned int offset; - } both; -}; - -struct futex_pi_state { - struct list_head list; - struct rt_mutex_base pi_mutex; - struct task_struct *owner; - refcount_t refcount; - union futex_key key; -}; - -struct wake_q_head; - -struct futex_q; - -typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); - -struct futex_q { - struct plist_node list; - struct task_struct *task; - spinlock_t *lock_ptr; - futex_wake_fn *wake; - void *wake_data; - union futex_key key; - struct futex_pi_state *pi_state; - struct rt_mutex_waiter *rt_waiter; - union futex_key *requeue_pi_key; - u32 bitset; - atomic_t requeue_state; -}; - -struct wake_q_head { - struct wake_q_node *first; - struct wake_q_node **lastp; -}; - -struct futex_hash_bucket { - atomic_t waiters; - spinlock_t lock; - struct plist_head chain; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct hrtimer_sleeper { - struct hrtimer timer; - struct task_struct *task; -}; - -struct rt_wake_q_head { - struct wake_q_head head; - struct task_struct *rtlock_task; -}; - -struct trace_bprintk_fmt { - struct list_head list; - const char *fmt; -}; - -struct bpf_cgroup_storage_map { - struct bpf_map map; - spinlock_t lock; - struct rb_root root; - struct list_head list; -}; - -enum bpf_cgroup_storage_type { - BPF_CGROUP_STORAGE_SHARED = 0, - BPF_CGROUP_STORAGE_PERCPU = 1, - __BPF_CGROUP_STORAGE_MAX = 2, -}; - -struct btf_member { - __u32 name_off; - __u32 type; - __u32 offset; -}; - -typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); - -typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); - -typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); - -struct vfree_deferred { - struct llist_head list; - struct work_struct wq; -}; - -struct vmap_block_queue { - spinlock_t lock; - struct list_head free; - struct xarray vmap_blocks; -}; - -struct vmap_pool { - struct list_head head; - unsigned long len; -}; - -struct rb_list { - struct rb_root root; - struct list_head head; - spinlock_t lock; -}; - -struct vmap_node { - struct vmap_pool pool[256]; - spinlock_t pool_lock; - bool skip_populate; - struct rb_list busy; - struct rb_list lazy; - struct list_head purge_list; - struct work_struct purge_work; - unsigned long nr_purged; -}; - -struct rb_augment_callbacks { - void (*propagate)(struct rb_node *, struct rb_node *); - void (*copy)(struct rb_node *, struct rb_node *); - void (*rotate)(struct rb_node *, struct rb_node *); -}; - -struct vmap_area { - unsigned long va_start; - unsigned long va_end; - struct rb_node rb_node; - struct list_head list; - union { - unsigned long subtree_max_size; - struct vm_struct *vm; - }; - unsigned long flags; -}; - -enum memcg_stat_item { - MEMCG_SWAP = 44, - MEMCG_SOCK = 45, - MEMCG_PERCPU_B = 46, - MEMCG_VMALLOC = 47, - MEMCG_KMEM = 48, - MEMCG_ZSWAP_B = 49, - MEMCG_ZSWAPPED = 50, - MEMCG_NR_STAT = 51, -}; - -enum fit_type { - NOTHING_FIT = 0, - FL_FIT_TYPE = 1, - LE_FIT_TYPE = 2, - RE_FIT_TYPE = 3, - NE_FIT_TYPE = 4, -}; - -typedef unsigned int kasan_vmalloc_flags_t; - -struct trace_event_raw_alloc_vmap_area { - struct trace_entry ent; - unsigned long addr; - unsigned long size; - unsigned long align; - unsigned long vstart; - unsigned long vend; - int failed; - char __data[0]; -}; - -struct trace_event_raw_purge_vmap_area_lazy { - struct trace_entry ent; - unsigned long start; - unsigned long end; - unsigned int npurged; - char __data[0]; -}; - -struct trace_event_raw_free_vmap_area_noflush { - struct trace_entry ent; - unsigned long va_start; - unsigned long nr_lazy; - unsigned long nr_lazy_max; - char __data[0]; -}; - -struct vmap_block { - spinlock_t lock; - struct vmap_area *va; - unsigned long free; - unsigned long dirty; - unsigned long used_map[4]; - unsigned long dirty_min; - unsigned long dirty_max; - struct list_head free_list; - struct callback_head callback_head; - struct list_head purge; -}; - -typedef unsigned int pgtbl_mod_mask; - -struct trace_event_data_offsets_alloc_vmap_area {}; - -struct trace_event_data_offsets_purge_vmap_area_lazy {}; - -struct trace_event_data_offsets_free_vmap_area_noflush {}; - -struct inotify_inode_mark { - struct fsnotify_mark fsn_mark; - int wd; -}; - -struct inotify_event_info { - struct fsnotify_event fse; - u32 mask; - int wd; - u32 sync_cookie; - int name_len; - char name[0]; -}; - -enum { - BIOSET_NEED_BVECS = 1, - BIOSET_NEED_RESCUER = 2, - BIOSET_PERCPU_CACHE = 4, -}; - -struct iomap_ioend { - struct list_head io_list; - u16 io_type; - u16 io_flags; - struct inode *io_inode; - size_t io_size; - loff_t io_offset; - sector_t io_sector; - struct bio io_bio; -}; - -struct iomap_readpage_ctx { - struct folio *cur_folio; - bool cur_folio_in_bio; - struct bio *bio; - struct readahead_control *rac; -}; - -struct iomap_folio_state { - spinlock_t state_lock; - unsigned int read_bytes_pending; - atomic_t write_bytes_pending; - unsigned long state[0]; -}; - -typedef int (*iomap_punch_t)(struct inode *, loff_t, loff_t); - -struct folio_iter { - struct folio *folio; - size_t offset; - size_t length; - struct folio *_next; - size_t _seg_count; - int _i; -}; - -typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); - -struct iomap_writeback_ops; - -struct iomap_writepage_ctx { - struct iomap iomap; - struct iomap_ioend *ioend; - const struct iomap_writeback_ops *ops; - u32 nr_folios; -}; - -struct iomap_writeback_ops { - int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t, unsigned int); - int (*prepare_ioend)(struct iomap_ioend *, int); - void (*discard_folio)(struct folio *, loff_t); -}; - -typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); - -enum bio_post_read_step { - STEP_INITIAL = 0, - STEP_DECRYPT = 1, - STEP_VERITY = 2, - STEP_MAX = 3, -}; - -struct bio_post_read_ctx { - struct bio *bio; - struct work_struct work; - unsigned int cur_step; - unsigned int enabled_steps; -}; - -enum btrfs_rbio_ops { - BTRFS_RBIO_WRITE = 0, - BTRFS_RBIO_READ_REBUILD = 1, - BTRFS_RBIO_PARITY_SCRUB = 2, -}; - -struct btrfs_plug_cb { - struct blk_plug_cb cb; - struct btrfs_fs_info *info; - struct list_head rbio_list; -}; - -struct btrfs_stripe_hash { - struct list_head hash_list; - spinlock_t lock; -}; - -struct btrfs_stripe_hash_table { - struct list_head stripe_cache; - spinlock_t cache_lock; - int cache_size; - struct btrfs_stripe_hash table[0]; -}; - -struct sector_ptr; - -struct btrfs_raid_bio { - struct btrfs_io_context *bioc; - struct list_head hash_list; - struct list_head stripe_cache; - struct work_struct work; - struct bio_list bio_list; - spinlock_t bio_list_lock; - struct list_head plug_list; - unsigned long flags; - enum btrfs_rbio_ops operation; - u16 nr_pages; - u16 nr_sectors; - u8 nr_data; - u8 real_stripes; - u8 stripe_npages; - u8 stripe_nsectors; - u8 scrubp; - int bio_list_bytes; - refcount_t refs; - atomic_t stripes_pending; - wait_queue_head_t io_wait; - unsigned long dbitmap; - unsigned long finish_pbitmap; - struct page **stripe_pages; - struct sector_ptr *bio_sectors; - struct sector_ptr *stripe_sectors; - void **finish_pointers; - unsigned long *error_bitmap; - u8 *csum_buf; - unsigned long *csum_bitmap; -}; - -struct sector_ptr { - struct page *page; - unsigned int pgoff: 24; - unsigned int uptodate: 8; -}; - -struct raid56_bio_trace_info { - u64 devid; - u32 offset; - u8 stripe_nr; -}; - -struct bvec_iter_all { - struct bio_vec bv; - int idx; - unsigned int done; -}; - -struct crypto_rfc4543_instance_ctx { - struct crypto_aead_spawn aead; -}; - -struct gcm_instance_ctx { - struct crypto_skcipher_spawn ctr; - struct crypto_ahash_spawn ghash; -}; - -struct crypto_wait { - struct completion completion; - int err; -}; - -typedef struct { - __be64 a; - __be64 b; -} be128; - -struct crypto_gcm_ghash_ctx { - unsigned int cryptlen; - struct scatterlist *src; - int (*complete)(struct aead_request *, u32); -}; - -struct crypto_gcm_req_priv_ctx { - u8 iv[16]; - u8 auth_tag[16]; - u8 iauth_tag[16]; - struct scatterlist src[3]; - struct scatterlist dst[3]; - struct scatterlist sg; - struct crypto_gcm_ghash_ctx ghash_ctx; - union { - struct ahash_request ahreq; - struct skcipher_request skreq; - } u; -}; - -struct crypto_gcm_ctx { - struct crypto_skcipher *ctr; - struct crypto_ahash *ghash; -}; - -struct crypto_sync_skcipher { - struct crypto_skcipher base; -}; - -struct crypto_rfc4543_ctx { - struct crypto_aead *child; - struct crypto_sync_skcipher *null; - u8 nonce[4]; -}; - -struct crypto_rfc4106_ctx { - struct crypto_aead *child; - u8 nonce[4]; -}; - -struct crypto_rfc4106_req_ctx { - struct scatterlist src[3]; - struct scatterlist dst[3]; - struct aead_request subreq; -}; - -struct crypto_rfc4543_req_ctx { - struct aead_request subreq; -}; - -struct blk_rq_stat; - -struct blk_stat_callback { - struct list_head list; - struct timer_list timer; - struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; - int (*bucket_fn)(const struct request *); - unsigned int buckets; - struct blk_rq_stat *stat; - void (*timer_fn)(struct blk_stat_callback *); - void *data; - struct callback_head rcu; -}; - -struct blk_rq_stat { - u64 mean; - u64 min; - u64 max; - u32 nr_samples; - u64 batch; -}; - -struct blk_queue_stats { - struct list_head callbacks; - spinlock_t lock; - int accounting; -}; - -typedef uint8_t U8; - -typedef struct { - int deltaFindState; - U32 deltaNbBits; -} FSE_symbolCompressionTransform; - -typedef enum { - ZSTD_noDict = 0, - ZSTD_extDict = 1, - ZSTD_dictMatchState = 2, - ZSTD_dedicatedDictSearch = 3, -} ZSTD_dictMode_e; - -typedef struct { - rawSeqStore_t seqStore; - U32 startPosInBlock; - U32 endPosInBlock; - U32 offset; -} ZSTD_optLdm_t; - -typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); - -struct repcodes_s { - U32 rep[3]; -}; - -typedef struct repcodes_s repcodes_t; - -typedef struct { - ptrdiff_t value; - const void *stateTable; - const void *symbolTT; - unsigned int stateLog; -} FSE_CState_t; - -enum { - AML_FIELD_ACCESS_ANY = 0, - AML_FIELD_ACCESS_BYTE = 1, - AML_FIELD_ACCESS_WORD = 2, - AML_FIELD_ACCESS_DWORD = 3, - AML_FIELD_ACCESS_QWORD = 4, - AML_FIELD_ACCESS_BUFFER = 5, -}; - -union acpi_predefined_info; - -struct acpi_evaluate_info { - struct acpi_namespace_node *prefix_node; - const char *relative_pathname; - union acpi_operand_object **parameters; - struct acpi_namespace_node *node; - union acpi_operand_object *obj_desc; - char *full_pathname; - const union acpi_predefined_info *predefined; - union acpi_operand_object *return_object; - union acpi_operand_object *parent_package; - u32 return_flags; - u32 return_btype; - u16 param_count; - u16 node_flags; - u8 pass_number; - u8 return_object_type; - u8 flags; -}; - -struct acpi_name_info { - char name[4]; - u16 argument_list; - u8 expected_btypes; -} __attribute__((packed)); - -struct acpi_package_info { - u8 type; - u8 object_type1; - u8 count1; - u8 object_type2; - u8 count2; - u16 reserved; -} __attribute__((packed)); - -struct acpi_package_info2 { - u8 type; - u8 count; - u8 object_type[4]; - u8 reserved; -}; - -struct acpi_package_info3 { - u8 type; - u8 count; - u8 object_type[2]; - u8 tail_object_type; - u16 reserved; -} __attribute__((packed)); - -struct acpi_package_info4 { - u8 type; - u8 object_type1; - u8 count1; - u8 sub_object_types; - u8 pkg_count; - u16 reserved; -} __attribute__((packed)); - -union acpi_predefined_info { - struct acpi_name_info info; - struct acpi_package_info ret_info; - struct acpi_package_info2 ret_info2; - struct acpi_package_info3 ret_info3; - struct acpi_package_info4 ret_info4; -}; - -struct pnp_info_buffer { - char *buffer; - char *curr; - unsigned long size; - unsigned long len; - int stop; - int error; -}; - -typedef struct pnp_info_buffer pnp_info_buffer_t; - -struct pipe_buffer; - -struct pipe_inode_info { - struct mutex mutex; - wait_queue_head_t rd_wait; - wait_queue_head_t wr_wait; - unsigned int head; - unsigned int tail; - unsigned int max_usage; - unsigned int ring_size; - unsigned int nr_accounted; - unsigned int readers; - unsigned int writers; - unsigned int files; - unsigned int r_counter; - unsigned int w_counter; - bool poll_usage; - struct page *tmp_page; - struct fasync_struct *fasync_readers; - struct fasync_struct *fasync_writers; - struct pipe_buffer *bufs; - struct user_struct *user; -}; - -struct pipe_buf_operations; - -struct pipe_buffer { - struct page *page; - unsigned int offset; - unsigned int len; - const struct pipe_buf_operations *ops; - unsigned int flags; - unsigned long private; -}; - -struct pipe_buf_operations { - int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *); - void (*release)(struct pipe_inode_info *, struct pipe_buffer *); - bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *); - bool (*get)(struct pipe_inode_info *, struct pipe_buffer *); -}; - -struct memdev { - const char *name; - const struct file_operations *fops; - fmode_t fmode; - umode_t mode; -}; - -struct splice_desc; - -typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); - -struct splice_desc { - size_t total_len; - unsigned int len; - unsigned int flags; - union { - void __attribute__((btf_type_tag("user"))) *userptr; - struct file *file; - void *data; - } u; - void (*splice_eof)(struct splice_desc *); - loff_t pos; - loff_t *opos; - size_t num_spliced; - bool need_wakeup; -}; - -enum ru_state { - RU_SUSPENDED = 0, - RU_RUNNING = 1, - RU_UNINITIALIZED = -1, -}; - -enum scb_cmd_lo { - cuc_nop = 0, - ruc_start = 1, - ruc_load_base = 6, - cuc_start = 16, - cuc_resume = 32, - cuc_dump_addr = 64, - cuc_dump_stats = 80, - cuc_load_base = 96, - cuc_dump_reset = 112, -}; - -struct rfd { - __le16 status; - __le16 command; - __le32 link; - __le32 rbd; - __le16 actual_size; - __le16 size; -}; - -enum mac { - mac_82557_D100_A = 0, - mac_82557_D100_B = 1, - mac_82557_D100_C = 2, - mac_82558_D101_A4 = 4, - mac_82558_D101_B0 = 5, - mac_82559_D101M = 8, - mac_82559_D101S = 9, - mac_82550_D102 = 12, - mac_82550_D102_C = 13, - mac_82551_E = 14, - mac_82551_F = 15, - mac_82551_10 = 16, - mac_unknown = 255, -}; - -enum phy___2 { - phy_100a = 992, - phy_100c = 55575208, - phy_82555_tx = 22020776, - phy_nsc_tx = 1543512064, - phy_82562_et = 53478056, - phy_82562_em = 52429480, - phy_82562_ek = 51380904, - phy_82562_eh = 24117928, - phy_82552_v = 3496017997, - phy_unknown = 4294967295, -}; - -struct param_range { - u32 min; - u32 max; - u32 count; -}; - -struct params { - struct param_range rfds; - struct param_range cbs; -}; - -enum loopback { - lb_none = 0, - lb_mac = 1, - lb_phy = 3, -}; - -struct rx; - -struct csr___2; - -struct cb; - -struct mem; - -struct nic { - u32 msg_enable; - struct net_device *netdev; - struct pci_dev *pdev; - u16 (*mdio_ctrl)(struct nic *, u32, u32, u32, u16); - long: 64; - long: 64; - long: 64; - long: 64; - struct rx *rxs; - struct rx *rx_to_use; - struct rx *rx_to_clean; - struct rfd blank_rfd; - enum ru_state ru_running; - long: 64; - long: 64; - spinlock_t cb_lock; - spinlock_t cmd_lock; - struct csr___2 *csr; - enum scb_cmd_lo cuc_cmd; - unsigned int cbs_avail; - struct napi_struct napi; - struct cb *cbs; - struct cb *cb_to_use; - struct cb *cb_to_send; - struct cb *cb_to_clean; - __le16 tx_command; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - enum { - ich = 1, - promiscuous = 2, - multicast_all = 4, - wol_magic = 8, - ich_10h_workaround = 16, - } flags; - enum mac mac; - enum phy___2 phy; - struct params params; - struct timer_list watchdog; - struct mii_if_info mii; - struct work_struct tx_timeout_task; - enum loopback loopback; - struct mem *mem; - dma_addr_t dma_addr; - struct dma_pool *cbs_pool; - dma_addr_t cbs_dma_addr; - u8 adaptive_ifs; - u8 tx_threshold; - u32 tx_frames; - u32 tx_collisions; - u32 tx_deferred; - u32 tx_single_collisions; - u32 tx_multiple_collisions; - u32 tx_fc_pause; - u32 tx_tco_frames; - u32 rx_fc_pause; - u32 rx_fc_unsupported; - u32 rx_tco_frames; - u32 rx_short_frame_errors; - u32 rx_over_length_errors; - u16 eeprom_wc; - __le16 eeprom[256]; - spinlock_t mdio_lock; - const struct firmware *fw; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct rx { - struct rx *next; - struct rx *prev; - struct sk_buff *skb; - dma_addr_t dma_addr; -}; - -struct csr___2 { - struct { - u8 status; - u8 stat_ack; - u8 cmd_lo; - u8 cmd_hi; - u32 gen_ptr; - } scb; - u32 port; - u16 flash_ctrl; - u8 eeprom_ctrl_lo; - u8 eeprom_ctrl_hi; - u32 mdi_ctrl; - u32 rx_dma_count; -}; - -struct config { - u8 byte_count: 6; - u8 pad0: 2; - u8 rx_fifo_limit: 4; - u8 tx_fifo_limit: 3; - u8 pad1: 1; - u8 adaptive_ifs; - u8 mwi_enable: 1; - u8 type_enable: 1; - u8 read_align_enable: 1; - u8 term_write_cache_line: 1; - u8 pad3: 4; - u8 rx_dma_max_count: 7; - u8 pad4: 1; - u8 tx_dma_max_count: 7; - u8 dma_max_count_enable: 1; - u8 late_scb_update: 1; - u8 direct_rx_dma: 1; - u8 tno_intr: 1; - u8 cna_intr: 1; - u8 standard_tcb: 1; - u8 standard_stat_counter: 1; - u8 rx_save_overruns: 1; - u8 rx_save_bad_frames: 1; - u8 rx_discard_short_frames: 1; - u8 tx_underrun_retry: 2; - u8 pad7: 2; - u8 rx_extended_rfd: 1; - u8 tx_two_frames_in_fifo: 1; - u8 tx_dynamic_tbd: 1; - u8 mii_mode: 1; - u8 pad8: 6; - u8 csma_disabled: 1; - u8 rx_tcpudp_checksum: 1; - u8 pad9: 3; - u8 vlan_arp_tco: 1; - u8 link_status_wake: 1; - u8 arp_wake: 1; - u8 mcmatch_wake: 1; - u8 pad10: 3; - u8 no_source_addr_insertion: 1; - u8 preamble_length: 2; - u8 loopback: 2; - u8 linear_priority: 3; - u8 pad11: 5; - u8 linear_priority_mode: 1; - u8 pad12: 3; - u8 ifs: 4; - u8 ip_addr_lo; - u8 ip_addr_hi; - u8 promiscuous_mode: 1; - u8 broadcast_disabled: 1; - u8 wait_after_win: 1; - u8 pad15_1: 1; - u8 ignore_ul_bit: 1; - u8 crc_16_bit: 1; - u8 pad15_2: 1; - u8 crs_or_cdt: 1; - u8 fc_delay_lo; - u8 fc_delay_hi; - u8 rx_stripping: 1; - u8 tx_padding: 1; - u8 rx_crc_transfer: 1; - u8 rx_long_ok: 1; - u8 fc_priority_threshold: 3; - u8 pad18: 1; - u8 addr_wake: 1; - u8 magic_packet_disable: 1; - u8 fc_disable: 1; - u8 fc_restop: 1; - u8 fc_restart: 1; - u8 fc_reject: 1; - u8 full_duplex_force: 1; - u8 full_duplex_pin: 1; - u8 pad20_1: 5; - u8 fc_priority_location: 1; - u8 multi_ia: 1; - u8 pad20_2: 1; - u8 pad21_1: 3; - u8 multicast_all: 1; - u8 pad21_2: 4; - u8 rx_d102_mode: 1; - u8 rx_vlan_drop: 1; - u8 pad22: 6; - u8 pad_d102[9]; -}; - -struct multi { - __le16 count; - u8 addr[386]; -}; - -struct cb { - __le16 status; - __le16 command; - __le32 link; - union { - u8 iaaddr[6]; - __le32 ucode[134]; - struct config config; - struct multi multi; - struct { - u32 tbd_array; - u16 tcb_byte_count; - u8 threshold; - u8 tbd_count; - struct { - __le32 buf_addr; - __le16 size; - u16 eol; - } tbd; - } tcb; - __le32 dump_buffer_addr; - } u; - struct cb *next; - struct cb *prev; - dma_addr_t dma_addr; - struct sk_buff *skb; -}; - -struct stats { - __le32 tx_good_frames; - __le32 tx_max_collisions; - __le32 tx_late_collisions; - __le32 tx_underruns; - __le32 tx_lost_crs; - __le32 tx_deferred; - __le32 tx_single_collisions; - __le32 tx_multiple_collisions; - __le32 tx_total_collisions; - __le32 rx_good_frames; - __le32 rx_crc_errors; - __le32 rx_alignment_errors; - __le32 rx_resource_errors; - __le32 rx_overrun_errors; - __le32 rx_cdt_errors; - __le32 rx_short_frame_errors; - __le32 fc_xmt_pause; - __le32 fc_rcv_pause; - __le32 fc_rcv_unsupported; - __le16 xmt_tco_frames; - __le16 rcv_tco_frames; - __le32 complete; -}; - -struct mem { - struct { - u32 signature; - u32 result; - } selftest; - struct stats stats; - u8 dump_buf[596]; -}; - -enum { - NETIF_MSG_DRV_BIT = 0, - NETIF_MSG_PROBE_BIT = 1, - NETIF_MSG_LINK_BIT = 2, - NETIF_MSG_TIMER_BIT = 3, - NETIF_MSG_IFDOWN_BIT = 4, - NETIF_MSG_IFUP_BIT = 5, - NETIF_MSG_RX_ERR_BIT = 6, - NETIF_MSG_TX_ERR_BIT = 7, - NETIF_MSG_TX_QUEUED_BIT = 8, - NETIF_MSG_INTR_BIT = 9, - NETIF_MSG_TX_DONE_BIT = 10, - NETIF_MSG_RX_STATUS_BIT = 11, - NETIF_MSG_PKTDATA_BIT = 12, - NETIF_MSG_HW_BIT = 13, - NETIF_MSG_WOL_BIT = 14, - NETIF_MSG_CLASS_COUNT = 15, -}; - -enum eeprom_offsets { - eeprom_cnfg_mdix = 3, - eeprom_phy_iface = 6, - eeprom_id = 10, - eeprom_config_asf = 13, - eeprom_smbus_addr = 144, -}; - -enum eeprom_id { - eeprom_id_wol = 32, -}; - -enum cb_command { - cb_nop = 0, - cb_iaaddr = 1, - cb_config = 2, - cb_multi = 3, - cb_tx = 4, - cb_ucode = 5, - cb_dump = 6, - cb_tx_sf = 8, - cb_tx_nc = 16, - cb_cid = 7936, - cb_i = 8192, - cb_s = 16384, - cb_el = 32768, -}; - -enum port { - software_reset = 0, - selftest = 1, - selective_reset = 2, -}; - -enum cb_status { - cb_complete = 32768, - cb_ok = 8192, -}; - -enum mdi_ctrl { - mdi_write = 67108864, - mdi_read = 134217728, - mdi_ready = 268435456, -}; - -enum scb_cmd_hi { - irq_mask_none = 0, - irq_mask_all = 1, - irq_sw_gen = 2, -}; - -enum scb_stat_ack { - stat_ack_not_ours = 0, - stat_ack_sw_gen = 4, - stat_ack_rnr = 16, - stat_ack_cu_idle = 32, - stat_ack_frame_rx = 64, - stat_ack_cu_cmd_done = 128, - stat_ack_not_present = 255, - stat_ack_rx = 84, - stat_ack_tx = 160, -}; - -enum netdev_queue_state_t { - __QUEUE_STATE_DRV_XOFF = 0, - __QUEUE_STATE_STACK_XOFF = 1, - __QUEUE_STATE_FROZEN = 2, -}; - -enum eeprom_op { - op_write = 5, - op_read = 6, - op_ewds = 16, - op_ewen = 19, -}; - -enum eeprom_ctrl_lo { - eesk = 1, - eecs = 2, - eedi = 4, - eedo = 8, -}; - -enum ethtool_test_flags { - ETH_TEST_FL_OFFLINE = 1, - ETH_TEST_FL_FAILED = 2, - ETH_TEST_FL_EXTERNAL_LB = 4, - ETH_TEST_FL_EXTERNAL_LB_DONE = 8, -}; - -enum ethtool_stringset { - ETH_SS_TEST = 0, - ETH_SS_STATS = 1, - ETH_SS_PRIV_FLAGS = 2, - ETH_SS_NTUPLE_FILTERS = 3, - ETH_SS_FEATURES = 4, - ETH_SS_RSS_HASH_FUNCS = 5, - ETH_SS_TUNABLES = 6, - ETH_SS_PHY_STATS = 7, - ETH_SS_PHY_TUNABLES = 8, - ETH_SS_LINK_MODES = 9, - ETH_SS_MSG_CLASSES = 10, - ETH_SS_WOL_MODES = 11, - ETH_SS_SOF_TIMESTAMPING = 12, - ETH_SS_TS_TX_TYPES = 13, - ETH_SS_TS_RX_FILTERS = 14, - ETH_SS_UDP_TUNNEL_TYPES = 15, - ETH_SS_STATS_STD = 16, - ETH_SS_STATS_ETH_PHY = 17, - ETH_SS_STATS_ETH_MAC = 18, - ETH_SS_STATS_ETH_CTRL = 19, - ETH_SS_STATS_RMON = 20, - ETH_SS_COUNT = 21, -}; - -enum led_state { - led_on = 1, - led_off = 4, - led_on_559 = 5, - led_on_557 = 7, -}; - -enum scb_status { - rus_no_res = 8, - rus_ready = 16, - rus_mask = 60, -}; - -enum cuc_dump { - cuc_dump_complete = 40965, - cuc_dump_reset_complete = 40967, -}; - -enum eeprom_cnfg_mdix { - eeprom_mdix_enabled = 128, -}; - -enum eeprom_phy_iface { - NoSuchPhy = 0, - I82553AB = 1, - I82553C = 2, - I82503 = 3, - DP83840 = 4, - S80C240 = 5, - S80C24 = 6, - I82555 = 7, - DP83840A = 10, -}; - -enum eeprom_config_asf { - eeprom_asf = 32768, - eeprom_gcl = 16384, -}; - -struct netdev_hw_addr { - struct list_head list; - struct rb_node node; - unsigned char addr[32]; - unsigned char type; - bool global_use; - int sync_cnt; - int refcount; - int synced; - struct callback_head callback_head; -}; - -enum { - RXON_DEV_TYPE_AP = 1, - RXON_DEV_TYPE_ESS = 3, - RXON_DEV_TYPE_IBSS = 4, - RXON_DEV_TYPE_SNIFFER = 6, - RXON_DEV_TYPE_CP = 7, - RXON_DEV_TYPE_2STA = 8, - RXON_DEV_TYPE_P2P = 9, -}; - -enum { - CHANNEL_MODE_LEGACY = 0, - CHANNEL_MODE_PURE_40 = 1, - CHANNEL_MODE_MIXED = 2, - CHANNEL_MODE_RESERVED = 3, -}; - -enum iwlagn_chain_noise_state { - IWL_CHAIN_NOISE_ALIVE = 0, - IWL_CHAIN_NOISE_ACCUMULATE = 1, - IWL_CHAIN_NOISE_CALIBRATED = 2, - IWL_CHAIN_NOISE_DONE = 3, -}; - -enum { - IWL_CALIB_ENABLE_ALL = 0, - IWL_SENSITIVITY_CALIB_DISABLED = 1, - IWL_CHAIN_NOISE_CALIB_DISABLED = 2, - IWL_TX_POWER_CALIB_DISABLED = 4, - IWL_CALIB_DISABLE_ALL = 4294967295, -}; - -struct iwl_notification_wait { - struct list_head list; - bool (*fn)(struct iwl_notif_wait_data *, struct iwl_rx_packet *, void *); - void *fn_data; - u16 cmds[5]; - u8 n_cmds; - bool triggered; - bool aborted; -}; - -struct iwl_rxon_assoc_cmd { - __le32 flags; - __le32 filter_flags; - u8 ofdm_basic_rates; - u8 cck_basic_rates; - __le16 reserved1; - u8 ofdm_ht_single_stream_basic_rates; - u8 ofdm_ht_dual_stream_basic_rates; - u8 ofdm_ht_triple_stream_basic_rates; - u8 reserved2; - __le16 rx_chain_select_flags; - __le16 acquisition_data; - __le32 reserved3; -}; - -struct iwl_calib_hdr { - u8 op_code; - u8 first_group; - u8 groups_num; - u8 data_valid; -}; - -struct iwl_calib_chain_noise_reset_cmd { - struct iwl_calib_hdr hdr; - u8 data[0]; -}; - -struct iwl_wipan_slot { - __le16 width; - u8 type; - u8 reserved; -}; - -struct iwl_wipan_params_cmd { - __le16 flags; - u8 reserved; - u8 num_slots; - struct iwl_wipan_slot slots[10]; -}; - -enum usb_otg_state { - OTG_STATE_UNDEFINED = 0, - OTG_STATE_B_IDLE = 1, - OTG_STATE_B_SRP_INIT = 2, - OTG_STATE_B_PERIPHERAL = 3, - OTG_STATE_B_WAIT_ACON = 4, - OTG_STATE_B_HOST = 5, - OTG_STATE_A_IDLE = 6, - OTG_STATE_A_WAIT_VRISE = 7, - OTG_STATE_A_WAIT_BCON = 8, - OTG_STATE_A_HOST = 9, - OTG_STATE_A_SUSPEND = 10, - OTG_STATE_A_PERIPHERAL = 11, - OTG_STATE_A_WAIT_VFALL = 12, - OTG_STATE_A_VBUS_ERR = 13, -}; - -enum usb_dr_mode { - USB_DR_MODE_UNKNOWN = 0, - USB_DR_MODE_HOST = 1, - USB_DR_MODE_PERIPHERAL = 2, - USB_DR_MODE_OTG = 3, -}; - -struct usb_dynids { - spinlock_t lock; - struct list_head list; -}; - -struct usb_device_id; - -struct usb_driver { - const char *name; - int (*probe)(struct usb_interface *, const struct usb_device_id *); - void (*disconnect)(struct usb_interface *); - int (*unlocked_ioctl)(struct usb_interface *, unsigned int, void *); - int (*suspend)(struct usb_interface *, pm_message_t); - int (*resume)(struct usb_interface *); - int (*reset_resume)(struct usb_interface *); - int (*pre_reset)(struct usb_interface *); - int (*post_reset)(struct usb_interface *); - const struct usb_device_id *id_table; - const struct attribute_group **dev_groups; - struct usb_dynids dynids; - struct device_driver driver; - unsigned int no_dynamic_id: 1; - unsigned int supports_autosuspend: 1; - unsigned int disable_hub_initiated_lpm: 1; - unsigned int soft_unbind: 1; -}; - -struct usb_device_id { - __u16 match_flags; - __u16 idVendor; - __u16 idProduct; - __u16 bcdDevice_lo; - __u16 bcdDevice_hi; - __u8 bDeviceClass; - __u8 bDeviceSubClass; - __u8 bDeviceProtocol; - __u8 bInterfaceClass; - __u8 bInterfaceSubClass; - __u8 bInterfaceProtocol; - __u8 bInterfaceNumber; - kernel_ulong_t driver_info; -}; - -enum usb3_link_state { - USB3_LPM_U0 = 0, - USB3_LPM_U1 = 1, - USB3_LPM_U2 = 2, - USB3_LPM_U3 = 3, -}; - -enum usb_dev_authorize_policy { - USB_DEVICE_AUTHORIZE_NONE = 0, - USB_DEVICE_AUTHORIZE_ALL = 1, - USB_DEVICE_AUTHORIZE_INTERNAL = 2, -}; - -enum snoop_when { - SUBMIT = 0, - COMPLETE = 1, -}; - -struct usb_dev_state { - struct list_head list; - struct usb_device *dev; - struct file *file; - spinlock_t lock; - struct list_head async_pending; - struct list_head async_completed; - struct list_head memory_list; - wait_queue_head_t wait; - wait_queue_head_t wait_for_resume; - unsigned int discsignr; - struct pid *disc_pid; - const struct cred *cred; - sigval_t disccontext; - unsigned long ifclaimed; - u32 disabled_bulk_eps; - unsigned long interface_allowed_mask; - int not_yet_resumed; - bool suspend_allowed; - bool privileges_dropped; -}; - -struct usb_tt { - struct usb_device *hub; - int multi; - unsigned int think_time; - void *hcpriv; - spinlock_t lock; - struct list_head clear_list; - struct work_struct clear_work; -}; - -struct usb_memory; - -struct async { - struct list_head asynclist; - struct usb_dev_state *ps; - struct pid *pid; - const struct cred *cred; - unsigned int signr; - unsigned int ifnum; - void __attribute__((btf_type_tag("user"))) *userbuffer; - void __attribute__((btf_type_tag("user"))) *userurb; - sigval_t userurb_sigval; - struct urb *urb; - struct usb_memory *usbm; - unsigned int mem_usage; - int status; - u8 bulk_addr; - u8 bulk_status; -}; - -struct usb_memory { - struct list_head memlist; - int vma_use_count; - int urb_use_count; - u32 size; - void *mem; - dma_addr_t dma_handle; - unsigned long vm_start; - struct usb_dev_state *ps; -}; - -struct giveback_urb_bh { - bool running; - bool high_prio; - spinlock_t lock; - struct list_head head; - struct work_struct bh; - struct usb_host_endpoint *completing_ep; -}; - -struct hc_driver; - -struct usb_phy; - -struct usb_phy_roothub; - -struct gen_pool; - -struct usb_hcd { - struct usb_bus self; - struct kref kref; - const char *product_desc; - int speed; - char irq_descr[24]; - struct timer_list rh_timer; - struct urb *status_urb; - struct work_struct wakeup_work; - struct work_struct died_work; - const struct hc_driver *driver; - struct usb_phy *usb_phy; - struct usb_phy_roothub *phy_roothub; - unsigned long flags; - enum usb_dev_authorize_policy dev_policy; - unsigned int rh_registered: 1; - unsigned int rh_pollable: 1; - unsigned int msix_enabled: 1; - unsigned int msi_enabled: 1; - unsigned int skip_phy_initialization: 1; - unsigned int uses_new_polling: 1; - unsigned int has_tt: 1; - unsigned int amd_resume_bug: 1; - unsigned int can_do_streams: 1; - unsigned int tpl_support: 1; - unsigned int cant_recv_wakeups: 1; - unsigned int irq; - void *regs; - resource_size_t rsrc_start; - resource_size_t rsrc_len; - unsigned int power_budget; - struct giveback_urb_bh high_prio_bh; - struct giveback_urb_bh low_prio_bh; - struct mutex *address0_mutex; - struct mutex *bandwidth_mutex; - struct usb_hcd *shared_hcd; - struct usb_hcd *primary_hcd; - struct dma_pool *pool[4]; - int state; - struct gen_pool *localmem_pool; - unsigned long hcd_priv[0]; -}; - -struct hc_driver { - const char *description; - const char *product_desc; - size_t hcd_priv_size; - irqreturn_t (*irq)(struct usb_hcd *); - int flags; - int (*reset)(struct usb_hcd *); - int (*start)(struct usb_hcd *); - int (*pci_suspend)(struct usb_hcd *, bool); - int (*pci_resume)(struct usb_hcd *, pm_message_t); - int (*pci_poweroff_late)(struct usb_hcd *, bool); - void (*stop)(struct usb_hcd *); - void (*shutdown)(struct usb_hcd *); - int (*get_frame_number)(struct usb_hcd *); - int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); - int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); - int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); - void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); - void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); - void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); - int (*hub_status_data)(struct usb_hcd *, char *); - int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); - int (*bus_suspend)(struct usb_hcd *); - int (*bus_resume)(struct usb_hcd *); - int (*start_port_reset)(struct usb_hcd *, unsigned int); - unsigned long (*get_resuming_ports)(struct usb_hcd *); - void (*relinquish_port)(struct usb_hcd *, int); - int (*port_handed_over)(struct usb_hcd *, int); - void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); - int (*alloc_dev)(struct usb_hcd *, struct usb_device *); - void (*free_dev)(struct usb_hcd *, struct usb_device *); - int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); - int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); - int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); - void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); - int (*address_device)(struct usb_hcd *, struct usb_device *, unsigned int); - int (*enable_device)(struct usb_hcd *, struct usb_device *); - int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); - int (*reset_device)(struct usb_hcd *, struct usb_device *); - int (*update_device)(struct usb_hcd *, struct usb_device *); - int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); - int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); - int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); - int (*find_raw_port_number)(struct usb_hcd *, int); - int (*port_power)(struct usb_hcd *, int, bool); - int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int); -}; - -struct usbdevfs_iso_packet_desc { - unsigned int length; - unsigned int actual_length; - unsigned int status; -}; - -struct usbdevfs_urb { - unsigned char type; - unsigned char endpoint; - int status; - unsigned int flags; - void __attribute__((btf_type_tag("user"))) *buffer; - int buffer_length; - int actual_length; - int start_frame; - union { - int number_of_packets; - unsigned int stream_id; - }; - int error_count; - unsigned int signr; - void __attribute__((btf_type_tag("user"))) *usercontext; - struct usbdevfs_iso_packet_desc iso_frame_desc[0]; -}; - -struct usbdevfs_ioctl { - int ifno; - int ioctl_code; - void __attribute__((btf_type_tag("user"))) *data; -}; - -struct usbdevfs_getdriver { - unsigned int interface; - char driver[256]; -}; - -struct usbdevfs_bulktransfer { - unsigned int ep; - unsigned int len; - unsigned int timeout; - void __attribute__((btf_type_tag("user"))) *data; -}; - -struct usbdevfs_disconnect_claim { - unsigned int interface; - unsigned int flags; - char driver[256]; -}; - -struct usbdevfs_ctrltransfer { - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; - __u32 timeout; - void __attribute__((btf_type_tag("user"))) *data; -}; - -struct usbdevfs_connectinfo { - unsigned int devnum; - unsigned char slow; -}; - -struct usbdevfs_setinterface { - unsigned int interface; - unsigned int altsetting; -}; - -struct usbdevfs_disconnectsignal { - unsigned int signr; - void __attribute__((btf_type_tag("user"))) *context; -}; - -struct usbdevfs_conninfo_ex { - __u32 size; - __u32 busnum; - __u32 devnum; - __u32 speed; - __u8 num_ports; - __u8 ports[7]; -}; - -struct usbdevfs_streams { - unsigned int num_streams; - unsigned int num_eps; - unsigned char eps[0]; -}; - -struct led_trigger {}; - -enum rc_filter_type { - RC_FILTER_NORMAL = 0, - RC_FILTER_WAKEUP = 1, - RC_FILTER_MAX = 2, -}; - -struct rc_filter_attribute { - struct device_attribute attr; - enum rc_filter_type type; - bool mask; -}; - -enum rc_driver_type { - RC_DRIVER_SCANCODE = 0, - RC_DRIVER_IR_RAW = 1, - RC_DRIVER_IR_RAW_TX = 2, -}; - -struct rc_scancode_filter { - u32 data; - u32 mask; -}; - -struct ir_raw_event_ctrl; - -struct rc_dev { - struct device dev; - bool managed_alloc; - const struct attribute_group *sysfs_groups[5]; - const char *device_name; - const char *input_phys; - struct input_id input_id; - const char *driver_name; - const char *map_name; - struct rc_map rc_map; - struct mutex lock; - unsigned int minor; - struct ir_raw_event_ctrl *raw; - struct input_dev *input_dev; - enum rc_driver_type driver_type; - bool idle; - bool encode_wakeup; - u64 allowed_protocols; - u64 enabled_protocols; - u64 allowed_wakeup_protocols; - enum rc_proto wakeup_protocol; - struct rc_scancode_filter scancode_filter; - struct rc_scancode_filter scancode_wakeup_filter; - u32 scancode_mask; - u32 users; - void *priv; - spinlock_t keylock; - bool keypressed; - unsigned long keyup_jiffies; - struct timer_list timer_keyup; - struct timer_list timer_repeat; - u32 last_keycode; - enum rc_proto last_protocol; - u64 last_scancode; - u8 last_toggle; - u32 timeout; - u32 min_timeout; - u32 max_timeout; - u32 rx_resolution; - u32 tx_resolution; - bool registered; - int (*change_protocol)(struct rc_dev *, u64 *); - int (*open)(struct rc_dev *); - void (*close)(struct rc_dev *); - int (*s_tx_mask)(struct rc_dev *, u32); - int (*s_tx_carrier)(struct rc_dev *, u32); - int (*s_tx_duty_cycle)(struct rc_dev *, u32); - int (*s_rx_carrier_range)(struct rc_dev *, u32, u32); - int (*tx_ir)(struct rc_dev *, unsigned int *, unsigned int); - void (*s_idle)(struct rc_dev *, bool); - int (*s_wideband_receiver)(struct rc_dev *, int); - int (*s_carrier_report)(struct rc_dev *, int); - int (*s_filter)(struct rc_dev *, struct rc_scancode_filter *); - int (*s_wakeup_filter)(struct rc_dev *, struct rc_scancode_filter *); - int (*s_timeout)(struct rc_dev *, unsigned int); -}; - -struct ir_raw_event { - union { - u32 duration; - u32 carrier; - }; - u8 duty_cycle; - unsigned int pulse: 1; - unsigned int overflow: 1; - unsigned int timeout: 1; - unsigned int carrier_report: 1; -}; - -struct nec_dec { - int state; - unsigned int count; - u32 bits; - bool is_nec_x; - bool necx_repeat; -}; - -struct rc5_dec { - int state; - u32 bits; - unsigned int count; - bool is_rc5x; -}; - -struct rc6_dec { - int state; - u8 header; - u32 body; - bool toggle; - unsigned int count; - unsigned int wanted_bits; -}; - -struct sony_dec { - int state; - u32 bits; - unsigned int count; -}; - -struct jvc_dec { - int state; - u16 bits; - u16 old_bits; - unsigned int count; - bool first; - bool toggle; -}; - -struct sanyo_dec { - int state; - unsigned int count; - u64 bits; -}; - -struct sharp_dec { - int state; - unsigned int count; - u32 bits; - unsigned int pulse_len; -}; - -struct mce_kbd_dec { - spinlock_t keylock; - struct timer_list rx_timeout; - int state; - u8 header; - u32 body; - unsigned int count; - unsigned int wanted_bits; -}; - -struct xmp_dec { - int state; - unsigned int count; - u32 durations[16]; -}; - -struct ir_raw_event_ctrl { - struct list_head list; - struct task_struct *thread; - struct { - union { - struct __kfifo kfifo; - struct ir_raw_event *type; - const struct ir_raw_event *const_type; - char (*rectype)[0]; - struct ir_raw_event *ptr; - const struct ir_raw_event *ptr_const; - }; - struct ir_raw_event buf[512]; - } kfifo; - ktime_t last_event; - struct rc_dev *dev; - spinlock_t edge_spinlock; - struct timer_list edge_handle; - struct ir_raw_event prev_ev; - struct ir_raw_event this_ev; - struct nec_dec nec; - struct rc5_dec rc5; - struct rc6_dec rc6; - struct sony_dec sony; - struct jvc_dec jvc; - struct sanyo_dec sanyo; - struct sharp_dec sharp; - struct mce_kbd_dec mce_kbd; - struct xmp_dec xmp; -}; - -struct lirc_scancode { - __u64 timestamp; - __u16 flags; - __u16 rc_proto; - __u32 keycode; - __u64 scancode; -}; - -enum nvmem_type { - NVMEM_TYPE_UNKNOWN = 0, - NVMEM_TYPE_EEPROM = 1, - NVMEM_TYPE_OTP = 2, - NVMEM_TYPE_BATTERY_BACKED = 3, - NVMEM_TYPE_FRAM = 4, -}; - -enum gpiod_flags { - GPIOD_ASIS = 0, - GPIOD_IN = 1, - GPIOD_OUT_LOW = 3, - GPIOD_OUT_HIGH = 7, - GPIOD_OUT_LOW_OPEN_DRAIN = 11, - GPIOD_OUT_HIGH_OPEN_DRAIN = 15, -}; - -enum { - NVMEM_ADD = 1, - NVMEM_REMOVE = 2, - NVMEM_CELL_ADD = 3, - NVMEM_CELL_REMOVE = 4, - NVMEM_LAYOUT_ADD = 5, - NVMEM_LAYOUT_REMOVE = 6, -}; - -typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); - -struct nvmem_device; - -struct nvmem_cell_entry { - const char *name; - int offset; - size_t raw_len; - int bytes; - int bit_offset; - int nbits; - nvmem_cell_post_process_t read_post_process; - void *priv; - struct device_node *np; - struct nvmem_device *nvmem; - struct list_head node; -}; - -typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); - -typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); - -struct nvmem_cell_info; - -struct nvmem_keepout; - -struct nvmem_layout; - -struct nvmem_device { - struct module *owner; - struct device dev; - struct list_head node; - int stride; - int word_size; - int id; - struct kref refcnt; - size_t size; - bool read_only; - bool root_only; - int flags; - enum nvmem_type type; - struct bin_attribute eeprom; - struct device *base_dev; - struct list_head cells; - void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); - const struct nvmem_keepout *keepout; - unsigned int nkeepout; - nvmem_reg_read_t reg_read; - nvmem_reg_write_t reg_write; - struct gpio_desc *wp_gpio; - struct nvmem_layout *layout; - void *priv; - bool sysfs_cells_populated; -}; - -struct nvmem_cell_info { - const char *name; - unsigned int offset; - size_t raw_len; - unsigned int bytes; - unsigned int bit_offset; - unsigned int nbits; - struct device_node *np; - nvmem_cell_post_process_t read_post_process; - void *priv; -}; - -struct nvmem_keepout { - unsigned int start; - unsigned int end; - unsigned char value; -}; - -struct nvmem_layout { - struct device dev; - struct nvmem_device *nvmem; - int (*add_cells)(struct nvmem_layout *); -}; - -struct nvmem_cell_table { - const char *nvmem_name; - const struct nvmem_cell_info *cells; - size_t ncells; - struct list_head node; -}; - -struct nvmem_cell_lookup { - const char *nvmem_name; - const char *cell_name; - const char *dev_id; - const char *con_id; - struct list_head node; -}; - -struct nvmem_cell { - struct nvmem_cell_entry *entry; - const char *id; - int index; -}; - -struct nvmem_config { - struct device *dev; - const char *name; - int id; - struct module *owner; - const struct nvmem_cell_info *cells; - int ncells; - bool add_legacy_fixed_of_cells; - void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); - const struct nvmem_keepout *keepout; - unsigned int nkeepout; - enum nvmem_type type; - bool read_only; - bool root_only; - bool ignore_wp; - struct nvmem_layout *layout; - struct device_node *of_node; - nvmem_reg_read_t reg_read; - nvmem_reg_write_t reg_write; - int size; - int word_size; - int stride; - void *priv; - bool compat; - struct device *base_dev; -}; - -enum tc_mq_command { - TC_MQ_CREATE = 0, - TC_MQ_DESTROY = 1, - TC_MQ_STATS = 2, - TC_MQ_GRAFT = 3, -}; - -struct tc_qopt_offload_stats { - struct gnet_stats_basic_sync *bstats; - struct gnet_stats_queue *qstats; -}; - -struct tc_mq_opt_offload_graft_params { - unsigned long queue; - u32 child_handle; -}; - -struct tc_mq_qopt_offload { - enum tc_mq_command command; - u32 handle; - union { - struct tc_qopt_offload_stats stats; - struct tc_mq_opt_offload_graft_params graft_params; - }; -}; - -struct mq_sched { - struct Qdisc **qdiscs; -}; - -struct nf_queue_entry; - -struct nf_queue_handler { - int (*outfn)(struct nf_queue_entry *, unsigned int); - void (*nf_hook_drop)(struct net *); -}; - -struct nf_queue_entry { - struct list_head list; - struct sk_buff *skb; - unsigned int id; - unsigned int hook_index; - struct net_device *physin; - struct net_device *physout; - struct nf_hook_state state; - u16 size; -}; - -enum skb_ext_id { - SKB_EXT_BRIDGE_NF = 0, - SKB_EXT_NUM = 1, -}; - -struct nf_bridge_info { - enum { - BRNF_PROTO_UNCHANGED = 0, - BRNF_PROTO_8021Q = 1, - BRNF_PROTO_PPPOE = 2, - } orig_proto: 8; - u8 pkt_otherhost: 1; - u8 in_prerouting: 1; - u8 bridged_dnat: 1; - u8 sabotage_in_done: 1; - __u16 frag_max_size; - int physinif; - struct net_device *physoutdev; - union { - __be32 ipv4_daddr; - struct in6_addr ipv6_daddr; - char neigh_header[8]; - }; -}; - -struct ip_rt_info { - __be32 daddr; - __be32 saddr; - u_int8_t tos; - u_int32_t mark; -}; - -struct ip6_rt_info { - struct in6_addr daddr; - struct in6_addr saddr; - u_int32_t mark; -}; - -struct ipv6_rpl_sr_hdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 type; - __u8 segments_left; - __u32 cmpre: 4; - __u32 cmpri: 4; - __u32 reserved: 4; - __u32 pad: 4; - __u32 reserved1: 16; - union { - struct { - struct {} __empty_addr; - struct in6_addr addr[0]; - }; - struct { - struct {} __empty_data; - __u8 data[0]; - }; - } segments; -}; - -struct nf_ipv6_ops { - void (*route_input)(struct sk_buff *); - int (*fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); - int (*reroute)(struct sk_buff *, const struct nf_queue_entry *); -}; - -struct ip6_fraglist_iter { - struct ipv6hdr *tmp_hdr; - struct sk_buff *frag; - int offset; - unsigned int hlen; - __be32 frag_id; - u8 nexthdr; -}; - -struct ip6_frag_state { - u8 *prevhdr; - unsigned int hlen; - unsigned int mtu; - unsigned int left; - int offset; - int ptr; - int hroom; - int troom; - __be32 frag_id; - u8 nexthdr; -}; - -struct nf_bridge_frag_data; - -enum syscall_work_bit { - SYSCALL_WORK_BIT_SECCOMP = 0, - SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1, - SYSCALL_WORK_BIT_SYSCALL_TRACE = 2, - SYSCALL_WORK_BIT_SYSCALL_EMU = 3, - SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4, - SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5, - SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6, -}; - -typedef void (*btf_trace_notifier_register)(void *, void *); - -typedef void (*btf_trace_notifier_unregister)(void *, void *); - -typedef void (*btf_trace_notifier_run)(void *, void *); - -struct trace_event_raw_notifier_info { - struct trace_entry ent; - void *cb; - char __data[0]; -}; - -struct trace_event_data_offsets_notifier_info {}; - -struct srcu_notifier_head { - struct mutex mutex; - struct srcu_usage srcuu; - struct srcu_struct srcu; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; -}; - -struct ptrace_sud_config { - __u64 mode; - __u64 selector; - __u64 offset; - __u64 len; -}; - -struct kprobe_insn_cache { - struct mutex mutex; - void * (*alloc)(); - void (*free)(void *); - const char *sym; - struct list_head pages; - size_t insn_size; - int nr_garbage; -}; - -typedef u8 kprobe_opcode_t; - -struct kprobe; - -typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); - -typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long); - -struct arch_specific_insn { - kprobe_opcode_t *insn; - unsigned int boostable: 1; - unsigned char size; - union { - unsigned char opcode; - struct { - unsigned char type; - } jcc; - struct { - unsigned char type; - unsigned char asize; - } loop; - struct { - unsigned char reg; - } indirect; - }; - s32 rel32; - void (*emulate_op)(struct kprobe *, struct pt_regs *); - int tp_len; -}; - -struct kprobe { - struct hlist_node hlist; - struct list_head list; - unsigned long nmissed; - kprobe_opcode_t *addr; - const char *symbol_name; - unsigned int offset; - kprobe_pre_handler_t pre_handler; - kprobe_post_handler_t post_handler; - kprobe_opcode_t opcode; - struct arch_specific_insn ainsn; - u32 flags; -}; - -enum kprobe_slot_state { - SLOT_CLEAN = 0, - SLOT_DIRTY = 1, - SLOT_USED = 2, -}; - -enum perf_record_ksymbol_type { - PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, - PERF_RECORD_KSYMBOL_TYPE_BPF = 1, - PERF_RECORD_KSYMBOL_TYPE_OOL = 2, - PERF_RECORD_KSYMBOL_TYPE_MAX = 3, -}; - -enum mod_mem_type { - MOD_TEXT = 0, - MOD_DATA = 1, - MOD_RODATA = 2, - MOD_RO_AFTER_INIT = 3, - MOD_INIT_TEXT = 4, - MOD_INIT_DATA = 5, - MOD_INIT_RODATA = 6, - MOD_MEM_NUM_TYPES = 7, - MOD_INVALID = -1, -}; - -struct kprobe_insn_page { - struct list_head list; - kprobe_opcode_t *insns; - struct kprobe_insn_cache *cache; - int nused; - int ngarbage; - char slot_used[0]; -}; - -struct arch_optimized_insn { - kprobe_opcode_t copied_insn[4]; - kprobe_opcode_t *insn; - size_t size; -}; - -struct optimized_kprobe { - struct kprobe kp; - struct list_head list; - struct arch_optimized_insn optinsn; -}; - -struct prev_kprobe { - struct kprobe *kp; - unsigned long status; - unsigned long old_flags; - unsigned long saved_flags; -}; - -struct kprobe_ctlblk { - unsigned long kprobe_status; - unsigned long kprobe_old_flags; - unsigned long kprobe_saved_flags; - struct prev_kprobe prev_kprobe; -}; - -struct kprobe_blacklist_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; -}; - -struct kretprobe_instance; - -typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); - -struct kretprobe { - struct kprobe kp; - kretprobe_handler_t handler; - kretprobe_handler_t entry_handler; - int maxactive; - int nmissed; - size_t data_size; - struct rethook *rh; -}; - -struct kretprobe_instance { - struct rethook_node node; - char data[0]; -}; - -typedef void (*rethook_handler_t)(struct rethook_node *, void *, unsigned long, struct pt_regs *); - -enum { - BPF_RINGBUF_BUSY_BIT = 2147483648, - BPF_RINGBUF_DISCARD_BIT = 1073741824, - BPF_RINGBUF_HDR_SZ = 8, -}; - -enum { - BPF_RB_NO_WAKEUP = 1, - BPF_RB_FORCE_WAKEUP = 2, -}; - -enum { - BPF_RB_AVAIL_DATA = 0, - BPF_RB_RING_SIZE = 1, - BPF_RB_CONS_POS = 2, - BPF_RB_PROD_POS = 3, -}; - -typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); - -typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); - -typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); - -typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); - -typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); - -struct bpf_dynptr_kern; - -typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); - -struct bpf_dynptr_kern { - void *data; - u32 size; - u32 offset; -}; - -typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); - -typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); - -typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); - -struct bpf_ringbuf { - wait_queue_head_t waitq; - struct irq_work work; - u64 mask; - struct page **pages; - int nr_pages; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - spinlock_t spinlock; - atomic_t busy; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long consumer_pos; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long producer_pos; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - char data[0]; -}; - -struct bpf_ringbuf_map { - struct bpf_map map; - struct bpf_ringbuf *rb; -}; - -struct bpf_ringbuf_hdr { - u32 len; - u32 pg_off; -}; - -struct dma_page { - struct list_head page_list; - void *vaddr; - dma_addr_t dma; -}; - -struct dma_block; - -struct dma_pool { - struct list_head page_list; - spinlock_t lock; - struct dma_block *next_block; - size_t nr_blocks; - size_t nr_active; - size_t nr_pages; - struct device *dev; - unsigned int size; - unsigned int allocation; - unsigned int boundary; - char name[32]; - struct list_head pools; -}; - -struct dma_block { - struct dma_block *next_block; - dma_addr_t dma; -}; - -struct char_device_struct { - struct char_device_struct *next; - unsigned int major; - unsigned int baseminor; - int minorct; - char name[64]; - struct cdev *cdev; -}; - -enum fsnotify_iter_type { - FSNOTIFY_ITER_TYPE_INODE = 0, - FSNOTIFY_ITER_TYPE_VFSMOUNT = 1, - FSNOTIFY_ITER_TYPE_SB = 2, - FSNOTIFY_ITER_TYPE_PARENT = 3, - FSNOTIFY_ITER_TYPE_INODE2 = 4, - FSNOTIFY_ITER_TYPE_COUNT = 5, -}; - -struct fs_error_report { - int error; - struct inode *inode; - struct super_block *sb; -}; - -struct name_snapshot { - struct qstr name; - unsigned char inline_name[40]; -}; - -struct journal_block_tag3_s { - __be32 t_blocknr; - __be32 t_flags; - __be32 t_blocknr_high; - __be32 t_checksum; -}; - -typedef struct journal_block_tag3_s journal_block_tag3_t; - -struct commit_header { - __be32 h_magic; - __be32 h_blocktype; - __be32 h_sequence; - unsigned char h_chksum_type; - unsigned char h_chksum_size; - unsigned char h_padding[2]; - __be32 h_chksum[8]; - __be64 h_commit_sec; - __be32 h_commit_nsec; -}; - -struct jbd2_journal_block_tail { - __be32 t_checksum; -}; - -struct jbd2_journal_revoke_header_s { - journal_header_t r_header; - __be32 r_count; -}; - -typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; - -struct journal_block_tag_s { - __be32 t_blocknr; - __be16 t_checksum; - __be16 t_flags; - __be32 t_blocknr_high; -}; - -typedef struct journal_block_tag_s journal_block_tag_t; - -struct recovery_info { - tid_t start_transaction; - tid_t end_transaction; - unsigned long head_block; - int nr_replays; - int nr_revokes; - int nr_revoke_hits; -}; - -struct btrfs_dir_item { - struct btrfs_disk_key location; - __le64 transid; - __le16 data_len; - __le16 name_len; - __u8 type; -} __attribute__((packed)); - -struct blkg_rwstat_sample { - u64 cnt[5]; -}; - -typedef long mpi_limb_signed_t; - -struct karatsuba_ctx { - struct karatsuba_ctx *next; - mpi_ptr_t tspace; - mpi_size_t tspace_size; - mpi_ptr_t tp; - mpi_size_t tp_size; -}; - -enum support_mode { - ALLOW_LEGACY = 0, - DENY_LEGACY = 1, -}; - -struct msi_map { - int index; - int virq; -}; - -struct acpi_pcc_info { - u8 subspace_id; - u16 length; - u8 *internal_buffer; -}; - -struct mbox_client { - struct device *dev; - bool tx_block; - unsigned long tx_tout; - bool knows_txdone; - void (*rx_callback)(struct mbox_client *, void *); - void (*tx_prepare)(struct mbox_client *, void *); - void (*tx_done)(struct mbox_client *, void *, int); -}; - -struct pcc_mbox_chan; - -struct pcc_data { - struct pcc_mbox_chan *pcc_chan; - void *pcc_comm_addr; - struct completion done; - struct mbox_client cl; - struct acpi_pcc_info ctx; -}; - -struct mbox_chan; - -struct pcc_mbox_chan { - struct mbox_chan *mchan; - u64 shmem_base_addr; - u64 shmem_size; - u32 latency; - u32 max_access_rate; - u16 min_turnaround_time; -}; - -struct mbox_controller; - -struct mbox_chan { - struct mbox_controller *mbox; - unsigned int txdone_method; - struct mbox_client *cl; - struct completion tx_complete; - void *active_req; - unsigned int msg_count; - unsigned int msg_free; - void *msg_data[20]; - spinlock_t lock; - void *con_priv; -}; - -struct mbox_chan_ops; - -struct of_phandle_args; - -struct mbox_controller { - struct device *dev; - const struct mbox_chan_ops *ops; - struct mbox_chan *chans; - int num_chans; - bool txdone_irq; - bool txdone_poll; - unsigned int txpoll_period; - struct mbox_chan * (*of_xlate)(struct mbox_controller *, const struct of_phandle_args *); - struct hrtimer poll_hrt; - spinlock_t poll_hrt_lock; - struct list_head node; -}; - -struct mbox_chan_ops { - int (*send_data)(struct mbox_chan *, void *); - int (*flush)(struct mbox_chan *, unsigned long); - int (*startup)(struct mbox_chan *); - void (*shutdown)(struct mbox_chan *); - bool (*last_tx_done)(struct mbox_chan *); - bool (*peek_data)(struct mbox_chan *); -}; - -struct of_phandle_args { - struct device_node *np; - int args_count; - uint32_t args[16]; -}; - -typedef u64 acpi_integer; - -struct acpi_rw_lock { - void *writer_mutex; - void *reader_mutex; - u32 num_readers; -}; - -struct acpi_pnp_device_id { - u32 length; - char *string; -}; - -struct acpi_pnp_device_id_list { - u32 count; - u32 list_size; - struct acpi_pnp_device_id ids[0]; -}; - -struct acpi_get_devices_info { - acpi_walk_callback user_function; - void *context; - const char *hid; -}; - -struct ldsem_waiter { - struct list_head list; - struct task_struct *task; -}; - -struct dma_fence_chain { - struct dma_fence base; - struct dma_fence __attribute__((btf_type_tag("rcu"))) *prev; - u64 prev_seqno; - struct dma_fence *fence; - union { - struct dma_fence_cb cb; - struct irq_work work; - }; - spinlock_t lock; -}; - -enum ata_dev_iter_mode { - ATA_DITER_ENABLED = 0, - ATA_DITER_ENABLED_REVERSE = 1, - ATA_DITER_ALL = 2, - ATA_DITER_ALL_REVERSE = 3, -}; - -enum iwl_pcie_fw_reset_state { - FW_RESET_IDLE = 0, - FW_RESET_REQUESTED = 1, - FW_RESET_OK = 2, - FW_RESET_ERROR = 3, -}; - -enum iwl_pcie_imr_status { - IMR_D2S_IDLE = 0, - IMR_D2S_REQUESTED = 1, - IMR_D2S_COMPLETED = 2, - IMR_D2S_ERROR = 3, -}; - -enum iwl_shared_irq_flags { - IWL_SHARED_IRQ_NON_RX = 1, - IWL_SHARED_IRQ_FIRST_RSS = 2, -}; - -enum msix_fh_int_causes { - MSIX_FH_INT_CAUSES_Q0 = 1, - MSIX_FH_INT_CAUSES_Q1 = 2, - MSIX_FH_INT_CAUSES_D2S_CH0_NUM = 65536, - MSIX_FH_INT_CAUSES_D2S_CH1_NUM = 131072, - MSIX_FH_INT_CAUSES_S2D = 524288, - MSIX_FH_INT_CAUSES_FH_ERR = 2097152, -}; - -enum msix_hw_int_causes { - MSIX_HW_INT_CAUSES_REG_ALIVE = 1, - MSIX_HW_INT_CAUSES_REG_WAKEUP = 2, - MSIX_HW_INT_CAUSES_REG_IML = 2, - MSIX_HW_INT_CAUSES_REG_RESET_DONE = 4, - MSIX_HW_INT_CAUSES_REG_TOP_FATAL_ERR = 8, - MSIX_HW_INT_CAUSES_REG_SW_ERR_BZ = 32, - MSIX_HW_INT_CAUSES_REG_CT_KILL = 64, - MSIX_HW_INT_CAUSES_REG_RF_KILL = 128, - MSIX_HW_INT_CAUSES_REG_PERIODIC = 256, - MSIX_HW_INT_CAUSES_REG_SW_ERR = 33554432, - MSIX_HW_INT_CAUSES_REG_SCD = 67108864, - MSIX_HW_INT_CAUSES_REG_FH_TX = 134217728, - MSIX_HW_INT_CAUSES_REG_HW_ERR = 536870912, - MSIX_HW_INT_CAUSES_REG_HAP = 1073741824, -}; - -enum { - NAPI_STATE_SCHED = 0, - NAPI_STATE_MISSED = 1, - NAPI_STATE_DISABLE = 2, - NAPI_STATE_NPSVC = 3, - NAPI_STATE_LISTED = 4, - NAPI_STATE_NO_BUSY_POLL = 5, - NAPI_STATE_IN_BUSY_POLL = 6, - NAPI_STATE_PREFER_BUSY_POLL = 7, - NAPI_STATE_THREADED = 8, - NAPI_STATE_SCHED_THREADED = 9, -}; - -struct iwl_rx_mem_buffer { - dma_addr_t page_dma; - struct page *page; - struct list_head list; - u32 offset; - u16 vid; - bool invalid; -}; - -struct iwl_rb_allocator { - atomic_t req_pending; - atomic_t req_ready; - struct list_head rbd_allocated; - struct list_head rbd_empty; - spinlock_t lock; - struct workqueue_struct *alloc_wq; - struct work_struct rx_alloc; -}; - -struct isr_statistics { - u32 hw; - u32 sw; - u32 err_code; - u32 sch; - u32 alive; - u32 rfkill; - u32 ctkill; - u32 wakeup; - u32 rx; - u32 tx; - u32 unhandled; -}; - -struct iwl_dram_regions { - struct iwl_dram_data drams[64]; - struct iwl_dram_data prph_scratch_mem_desc; - u8 n_regions; -}; - -struct iwl_rxq; - -struct iwl_context_info; - -struct iwl_context_info_gen3; - -struct iwl_prph_info; - -struct iwl_prph_scratch; - -struct iwl_trans_pcie { - struct iwl_rxq *rxq; - struct iwl_rx_mem_buffer *rx_pool; - struct iwl_rx_mem_buffer **global_table; - struct iwl_rb_allocator rba; - union { - struct iwl_context_info *ctxt_info; - struct iwl_context_info_gen3 *ctxt_info_gen3; - }; - struct iwl_prph_info *prph_info; - struct iwl_prph_scratch *prph_scratch; - void *iml; - dma_addr_t ctxt_info_dma_addr; - dma_addr_t prph_info_dma_addr; - dma_addr_t prph_scratch_dma_addr; - dma_addr_t iml_dma_addr; - struct iwl_trans *trans; - struct net_device napi_dev; - __le32 *ict_tbl; - dma_addr_t ict_tbl_dma; - int ict_index; - bool use_ict; - bool is_down; - bool opmode_down; - s8 debug_rfkill; - struct isr_statistics isr_stats; - spinlock_t irq_lock; - struct mutex mutex; - u32 inta_mask; - u32 scd_base_addr; - struct iwl_dma_ptr kw; - struct iwl_dram_regions pnvm_data; - struct iwl_dram_regions reduced_tables_data; - struct iwl_txq *txq_memory; - struct pci_dev *pci_dev; - u8 *hw_base; - bool ucode_write_complete; - bool sx_complete; - wait_queue_head_t ucode_write_waitq; - wait_queue_head_t sx_waitq; - u8 n_no_reclaim_cmds; - u8 no_reclaim_cmds[6]; - u16 num_rx_bufs; - enum iwl_amsdu_size rx_buf_size; - bool scd_set_active; - bool pcie_dbg_dumped_once; - u32 rx_page_order; - u32 rx_buf_bytes; - u32 supported_dma_mask; - spinlock_t alloc_page_lock; - struct page *alloc_page; - u32 alloc_page_used; - spinlock_t reg_lock; - bool cmd_hold_nic_awake; - struct msix_entry msix_entries[16]; - bool msix_enabled; - u8 shared_vec_mask; - u32 alloc_vecs; - u32 def_irq; - u32 fh_init_mask; - u32 hw_init_mask; - u32 fh_mask; - u32 hw_mask; - cpumask_t affinity_mask[16]; - u16 tx_cmd_queue_size; - bool in_rescan; - void *base_rb_stts; - dma_addr_t base_rb_stts_dma; - bool fw_reset_handshake; - enum iwl_pcie_fw_reset_state fw_reset_state; - wait_queue_head_t fw_reset_waitq; - enum iwl_pcie_imr_status imr_status; - wait_queue_head_t imr_waitq; - char rf_name[32]; -}; - -struct iwl_rxq { - int id; - void *bd; - dma_addr_t bd_dma; - void *used_bd; - dma_addr_t used_bd_dma; - u32 read; - u32 write; - u32 free_count; - u32 used_count; - u32 write_actual; - u32 queue_size; - struct list_head rx_free; - struct list_head rx_used; - bool need_update; - bool next_rb_is_fragment; - void *rb_stts; - dma_addr_t rb_stts_dma; - spinlock_t lock; - struct napi_struct napi; - struct iwl_rx_mem_buffer *queue[256]; -}; - -struct iwl_context_info_version { - __le16 mac_id; - __le16 version; - __le16 size; - __le16 reserved; -}; - -struct iwl_context_info_control { - __le32 control_flags; - __le32 reserved; -}; - -struct iwl_context_info_rbd_cfg { - __le64 free_rbd_addr; - __le64 used_rbd_addr; - __le64 status_wr_ptr; -}; - -struct iwl_context_info_hcmd_cfg { - __le64 cmd_queue_addr; - u8 cmd_queue_size; - u8 reserved[7]; -}; - -struct iwl_context_info_dump_cfg { - __le64 core_dump_addr; - __le32 core_dump_size; - __le32 reserved; -}; - -struct iwl_context_info_early_dbg_cfg { - __le64 early_debug_addr; - __le32 early_debug_size; - __le32 reserved; -}; - -struct iwl_context_info_pnvm_cfg { - __le64 platform_nvm_addr; - __le32 platform_nvm_size; - __le32 reserved; -}; - -struct iwl_context_info_dram { - __le64 umac_img[64]; - __le64 lmac_img[64]; - __le64 virtual_img[64]; -}; - -struct iwl_context_info { - struct iwl_context_info_version version; - struct iwl_context_info_control control; - __le64 reserved0; - struct iwl_context_info_rbd_cfg rbd_cfg; - struct iwl_context_info_hcmd_cfg hcmd_cfg; - __le32 reserved1[4]; - struct iwl_context_info_dump_cfg dump_cfg; - struct iwl_context_info_early_dbg_cfg edbg_cfg; - struct iwl_context_info_pnvm_cfg pnvm_cfg; - __le32 reserved2[16]; - struct iwl_context_info_dram dram; - __le32 reserved3[16]; -}; - -struct iwl_context_info_gen3 { - __le16 version; - __le16 size; - __le32 config; - __le64 prph_info_base_addr; - __le64 cr_head_idx_arr_base_addr; - __le64 tr_tail_idx_arr_base_addr; - __le64 cr_tail_idx_arr_base_addr; - __le64 tr_head_idx_arr_base_addr; - __le16 cr_idx_arr_size; - __le16 tr_idx_arr_size; - __le64 mtr_base_addr; - __le64 mcr_base_addr; - __le16 mtr_size; - __le16 mcr_size; - __le16 mtr_doorbell_vec; - __le16 mcr_doorbell_vec; - __le16 mtr_msi_vec; - __le16 mcr_msi_vec; - u8 mtr_opt_header_size; - u8 mtr_opt_footer_size; - u8 mcr_opt_header_size; - u8 mcr_opt_footer_size; - __le16 msg_rings_ctrl_flags; - __le16 prph_info_msi_vec; - __le64 prph_scratch_base_addr; - __le32 prph_scratch_size; - __le32 reserved; -} __attribute__((packed)); - -struct iwl_prph_info { - __le32 boot_stage_mirror; - __le32 ipc_status_mirror; - __le32 sleep_notif; - __le32 reserved; -}; - -struct iwl_prph_scratch_version { - __le16 mac_id; - __le16 version; - __le16 size; - __le16 reserved; -}; - -struct iwl_prph_scratch_control { - __le32 control_flags; - __le32 reserved; -}; - -struct iwl_prph_scratch_pnvm_cfg { - __le64 pnvm_base_addr; - __le32 pnvm_size; - __le32 reserved; -}; - -struct iwl_prph_scratch_hwm_cfg { - __le64 hwm_base_addr; - __le32 hwm_size; - __le32 debug_token_config; -}; - -struct iwl_prph_scratch_rbd_cfg { - __le64 free_rbd_addr; - __le32 reserved; -} __attribute__((packed)); - -struct iwl_prph_scratch_uefi_cfg { - __le64 base_addr; - __le32 size; - __le32 reserved; -}; - -struct iwl_prph_scratch_step_cfg { - __le32 mbx_addr_0; - __le32 mbx_addr_1; -}; - -struct iwl_prph_scratch_ctrl_cfg { - struct iwl_prph_scratch_version version; - struct iwl_prph_scratch_control control; - struct iwl_prph_scratch_pnvm_cfg pnvm_cfg; - struct iwl_prph_scratch_hwm_cfg hwm_cfg; - struct iwl_prph_scratch_rbd_cfg rbd_cfg; - struct iwl_prph_scratch_uefi_cfg reduce_power_cfg; - struct iwl_prph_scratch_step_cfg step_cfg; -} __attribute__((packed)); - -struct iwl_prph_scratch { - struct iwl_prph_scratch_ctrl_cfg ctrl_cfg; - __le32 fseq_override; - __le32 step_analog_params; - __le32 reserved[8]; - struct iwl_context_info_dram dram; -} __attribute__((packed)); - -struct iwl_rx_transfer_desc { - __le16 rbid; - __le16 reserved[3]; - __le64 addr; -}; - -struct iwl_rb_status { - __le16 closed_rb_num; - __le16 closed_fr_num; - __le16 finished_rb_num; - __le16 finished_fr_num; - __le32 __spare; -}; - -struct iwl_rx_completion_desc_bz { - __le16 rbid; - u8 flags; - u8 reserved[1]; -}; - -struct iwl_rx_completion_desc { - __le32 reserved1; - __le16 rbid; - u8 flags; - u8 reserved2[25]; -}; - -enum mac80211_rx_flags { - RX_FLAG_MMIC_ERROR = 1, - RX_FLAG_DECRYPTED = 2, - RX_FLAG_ONLY_MONITOR = 4, - RX_FLAG_MMIC_STRIPPED = 8, - RX_FLAG_IV_STRIPPED = 16, - RX_FLAG_FAILED_FCS_CRC = 32, - RX_FLAG_FAILED_PLCP_CRC = 64, - RX_FLAG_MACTIME_IS_RTAP_TS64 = 128, - RX_FLAG_NO_SIGNAL_VAL = 256, - RX_FLAG_AMPDU_DETAILS = 512, - RX_FLAG_PN_VALIDATED = 1024, - RX_FLAG_DUP_VALIDATED = 2048, - RX_FLAG_AMPDU_LAST_KNOWN = 4096, - RX_FLAG_AMPDU_IS_LAST = 8192, - RX_FLAG_AMPDU_DELIM_CRC_ERROR = 16384, - RX_FLAG_AMPDU_DELIM_CRC_KNOWN = 32768, - RX_FLAG_MACTIME = 196608, - RX_FLAG_MACTIME_PLCP_START = 65536, - RX_FLAG_MACTIME_START = 131072, - RX_FLAG_MACTIME_END = 196608, - RX_FLAG_SKIP_MONITOR = 262144, - RX_FLAG_AMSDU_MORE = 524288, - RX_FLAG_RADIOTAP_TLV_AT_END = 1048576, - RX_FLAG_MIC_STRIPPED = 2097152, - RX_FLAG_ALLOW_SAME_PN = 4194304, - RX_FLAG_ICV_STRIPPED = 8388608, - RX_FLAG_AMPDU_EOF_BIT = 16777216, - RX_FLAG_AMPDU_EOF_BIT_KNOWN = 33554432, - RX_FLAG_RADIOTAP_HE = 67108864, - RX_FLAG_RADIOTAP_HE_MU = 134217728, - RX_FLAG_RADIOTAP_LSIG = 268435456, - RX_FLAG_NO_PSDU = 536870912, - RX_FLAG_8023 = 1073741824, -}; - -enum ieee80211_interface_iteration_flags { - IEEE80211_IFACE_ITER_NORMAL = 0, - IEEE80211_IFACE_ITER_RESUME_ALL = 1, - IEEE80211_IFACE_ITER_ACTIVE = 2, - IEEE80211_IFACE_SKIP_SDATA_NOT_IN_DRIVER = 4, -}; - -enum rtw_evm { - RTW_EVM_OFDM = 0, - RTW_EVM_1SS = 1, - RTW_EVM_2SS_A = 2, - RTW_EVM_2SS_B = 3, - RTW_EVM_NUM = 4, -}; - -enum rtw_snr { - RTW_SNR_OFDM_A = 0, - RTW_SNR_OFDM_B = 1, - RTW_SNR_OFDM_C = 2, - RTW_SNR_OFDM_D = 3, - RTW_SNR_1SS_A = 4, - RTW_SNR_1SS_B = 5, - RTW_SNR_1SS_C = 6, - RTW_SNR_1SS_D = 7, - RTW_SNR_2SS_A = 8, - RTW_SNR_2SS_B = 9, - RTW_SNR_2SS_C = 10, - RTW_SNR_2SS_D = 11, - RTW_SNR_NUM = 12, -}; - -struct rtw_rx_addr_match_data { - struct rtw_dev *rtwdev; - struct ieee80211_hdr *hdr; - struct rtw_rx_pkt_stat *pkt_stat; - u8 *bssid; -}; - -enum xfer_buf_dir { - TO_XFER_BUF = 0, - FROM_XFER_BUF = 1, -}; - -struct sg_page_iter { - struct scatterlist *sg; - unsigned int sg_pgoffset; - unsigned int __nents; - int __pg_advance; -}; - -struct sg_mapping_iter { - struct page *page; - void *addr; - size_t length; - size_t consumed; - struct sg_page_iter piter; - unsigned int __offset; - unsigned int __remaining; - unsigned int __flags; -}; - -struct io_err_c { - struct dm_dev *dev; - sector_t start; -}; - -struct page_pool_params_fast { - unsigned int flags; - unsigned int order; - unsigned int pool_size; - int nid; - struct device *dev; - struct napi_struct *napi; - enum dma_data_direction dma_dir; - unsigned int max_len; - unsigned int offset; -}; - -struct page_pool_alloc_stats { - u64 fast; - u64 slow; - u64 slow_high_order; - u64 empty; - u64 refill; - u64 waive; -}; - -struct pp_alloc_cache { - u32 count; - struct page *cache[128]; -}; - -struct ptr_ring { - int producer; - spinlock_t producer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - int consumer_head; - int consumer_tail; - spinlock_t consumer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - int size; - int batch; - void **queue; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct page_pool_params_slow { - struct net_device *netdev; - void (*init_callback)(struct page *, void *); - void *init_arg; -}; - -struct page_pool_recycle_stats; - -struct page_pool { - struct page_pool_params_fast p; - int cpuid; - bool has_init_callback; - long frag_users; - struct page *frag_page; - unsigned int frag_offset; - u32 pages_state_hold_cnt; - struct delayed_work release_dw; - void (*disconnect)(void *); - unsigned long defer_start; - unsigned long defer_warn; - struct page_pool_alloc_stats alloc_stats; - u32 xdp_mem_id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct pp_alloc_cache alloc; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct ptr_ring ring; - struct page_pool_recycle_stats __attribute__((btf_type_tag("percpu"))) *recycle_stats; - atomic_t pages_state_release_cnt; - refcount_t user_cnt; - u64 destroy_cnt; - struct page_pool_params_slow slow; - struct { - struct hlist_node list; - u64 detach_time; - u32 napi_id; - u32 id; - } user; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct page_pool_recycle_stats { - u64 cached; - u64 cache_full; - u64 ring; - u64 ring_full; - u64 released_refcnt; -}; - -typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason); - -typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *); - -typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int); - -typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *); - -typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int); - -typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int); - -typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *); - -typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *); - -typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *); - -typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *); - -typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *); - -typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *); - -typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *); - -typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *); - -typedef void (*btf_trace_napi_gro_frags_exit)(void *, int); - -typedef void (*btf_trace_napi_gro_receive_exit)(void *, int); - -typedef void (*btf_trace_netif_receive_skb_exit)(void *, int); - -typedef void (*btf_trace_netif_rx_exit)(void *, int); - -typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int); - -typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int); - -typedef void (*btf_trace_dql_stall_detected)(void *, unsigned short, unsigned int, unsigned long, unsigned long, unsigned long, unsigned long *); - -typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); - -typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long, int); - -typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); - -typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); - -typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *); - -typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int); - -typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int); - -typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *); - -typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); - -typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *); - -typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *); - -typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *); - -typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); - -typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); - -typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); - -typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); - -typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8); - -typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); - -typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); - -typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *); - -typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *); - -typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); - -typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); - -typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16); - -typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16); - -typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *); - -typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, unsigned long); - -typedef void (*btf_trace_br_mdb_full)(void *, const struct net_device *, const struct br_ip *); - -typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); - -typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); - -typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); - -typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); - -typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool); - -typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32); - -typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int); - -typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); - -typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); - -typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int); - -typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); - -struct trace_event_raw_kfree_skb { - struct trace_entry ent; - void *skbaddr; - void *location; - unsigned short protocol; - enum skb_drop_reason reason; - char __data[0]; -}; - -struct trace_event_raw_consume_skb { - struct trace_entry ent; - void *skbaddr; - void *location; - char __data[0]; -}; - -struct trace_event_raw_skb_copy_datagram_iovec { - struct trace_entry ent; - const void *skbaddr; - int len; - char __data[0]; -}; - -struct trace_event_raw_net_dev_start_xmit { - struct trace_entry ent; - u32 __data_loc_name; - u16 queue_mapping; - const void *skbaddr; - bool vlan_tagged; - u16 vlan_proto; - u16 vlan_tci; - u16 protocol; - u8 ip_summed; - unsigned int len; - unsigned int data_len; - int network_offset; - bool transport_offset_valid; - int transport_offset; - u8 tx_flags; - u16 gso_size; - u16 gso_segs; - u16 gso_type; - char __data[0]; -}; - -struct trace_event_raw_net_dev_xmit { - struct trace_entry ent; - void *skbaddr; - unsigned int len; - int rc; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_net_dev_xmit_timeout { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_driver; - int queue_index; - char __data[0]; -}; - -struct trace_event_raw_net_dev_template { - struct trace_entry ent; - void *skbaddr; - unsigned int len; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_net_dev_rx_verbose_template { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int napi_id; - u16 queue_mapping; - const void *skbaddr; - bool vlan_tagged; - u16 vlan_proto; - u16 vlan_tci; - u16 protocol; - u8 ip_summed; - u32 hash; - bool l4_hash; - unsigned int len; - unsigned int data_len; - unsigned int truesize; - bool mac_header_valid; - int mac_header; - unsigned char nr_frags; - u16 gso_size; - u16 gso_type; - char __data[0]; -}; - -struct trace_event_raw_net_dev_rx_exit_template { - struct trace_entry ent; - int ret; - char __data[0]; -}; - -struct trace_event_raw_napi_poll { - struct trace_entry ent; - struct napi_struct *napi; - u32 __data_loc_dev_name; - int work; - int budget; - char __data[0]; -}; - -struct trace_event_raw_dql_stall_detected { - struct trace_entry ent; - unsigned short thrs; - unsigned int len; - unsigned long last_reap; - unsigned long hist_head; - unsigned long now; - unsigned long hist[4]; - char __data[0]; -}; - -struct trace_event_raw_sock_rcvqueue_full { - struct trace_entry ent; - int rmem_alloc; - unsigned int truesize; - int sk_rcvbuf; - char __data[0]; -}; - -struct trace_event_raw_sock_exceed_buf_limit { - struct trace_entry ent; - char name[32]; - long sysctl_mem[3]; - long allocated; - int sysctl_rmem; - int rmem_alloc; - int sysctl_wmem; - int wmem_alloc; - int wmem_queued; - int kind; - char __data[0]; -}; - -struct trace_event_raw_inet_sock_set_state { - struct trace_entry ent; - const void *skaddr; - int oldstate; - int newstate; - __u16 sport; - __u16 dport; - __u16 family; - __u16 protocol; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - char __data[0]; -}; - -struct trace_event_raw_inet_sk_error_report { - struct trace_entry ent; - int error; - __u16 sport; - __u16 dport; - __u16 family; - __u16 protocol; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - char __data[0]; -}; - -struct trace_event_raw_sk_data_ready { - struct trace_entry ent; - const void *skaddr; - __u16 family; - __u16 protocol; - unsigned long ip; - char __data[0]; -}; - -struct trace_event_raw_sock_msg_length { - struct trace_entry ent; - void *sk; - __u16 family; - __u16 protocol; - int ret; - int flags; - char __data[0]; -}; - -struct trace_event_raw_udp_fail_queue_rcv_skb { - struct trace_entry ent; - int rc; - __u16 lport; - char __data[0]; -}; - -struct trace_event_raw_tcp_event_sk_skb { - struct trace_entry ent; - const void *skbaddr; - const void *skaddr; - int state; - __u16 sport; - __u16 dport; - __u16 family; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - char __data[0]; -}; - -struct trace_event_raw_tcp_event_sk { - struct trace_entry ent; - const void *skaddr; - __u16 sport; - __u16 dport; - __u16 family; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - __u64 sock_cookie; - char __data[0]; -}; - -struct trace_event_raw_tcp_retransmit_synack { - struct trace_entry ent; - const void *skaddr; - const void *req; - __u16 sport; - __u16 dport; - __u16 family; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - char __data[0]; -}; - -struct trace_event_raw_tcp_probe { - struct trace_entry ent; - __u8 saddr[28]; - __u8 daddr[28]; - __u16 sport; - __u16 dport; - __u16 family; - __u32 mark; - __u16 data_len; - __u32 snd_nxt; - __u32 snd_una; - __u32 snd_cwnd; - __u32 ssthresh; - __u32 snd_wnd; - __u32 srtt; - __u32 rcv_wnd; - __u64 sock_cookie; - const void *skbaddr; - const void *skaddr; - char __data[0]; -}; - -struct trace_event_raw_tcp_event_skb { - struct trace_entry ent; - const void *skbaddr; - __u8 saddr[28]; - __u8 daddr[28]; - char __data[0]; -}; - -struct trace_event_raw_tcp_cong_state_set { - struct trace_entry ent; - const void *skaddr; - __u16 sport; - __u16 dport; - __u16 family; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - __u8 cong_state; - char __data[0]; -}; - -struct trace_event_raw_fib_table_lookup { - struct trace_entry ent; - u32 tb_id; - int err; - int oif; - int iif; - u8 proto; - __u8 tos; - __u8 scope; - __u8 flags; - __u8 src[4]; - __u8 dst[4]; - __u8 gw4[4]; - __u8 gw6[16]; - u16 sport; - u16 dport; - char name[16]; - char __data[0]; -}; - -struct trace_event_raw_qdisc_dequeue { - struct trace_entry ent; - struct Qdisc *qdisc; - const struct netdev_queue *txq; - int packets; - void *skbaddr; - int ifindex; - u32 handle; - u32 parent; - unsigned long txq_state; - char __data[0]; -}; - -struct trace_event_raw_qdisc_enqueue { - struct trace_entry ent; - struct Qdisc *qdisc; - const struct netdev_queue *txq; - void *skbaddr; - int ifindex; - u32 handle; - u32 parent; - char __data[0]; -}; - -struct trace_event_raw_qdisc_reset { - struct trace_entry ent; - u32 __data_loc_dev; - u32 __data_loc_kind; - u32 parent; - u32 handle; - char __data[0]; -}; - -struct trace_event_raw_qdisc_destroy { - struct trace_entry ent; - u32 __data_loc_dev; - u32 __data_loc_kind; - u32 parent; - u32 handle; - char __data[0]; -}; - -struct trace_event_raw_qdisc_create { - struct trace_entry ent; - u32 __data_loc_dev; - u32 __data_loc_kind; - u32 parent; - char __data[0]; -}; - -struct trace_event_raw_br_fdb_add { - struct trace_entry ent; - u8 ndm_flags; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - u16 nlh_flags; - char __data[0]; -}; - -struct trace_event_raw_br_fdb_external_learn_add { - struct trace_entry ent; - u32 __data_loc_br_dev; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - char __data[0]; -}; - -struct trace_event_raw_fdb_delete { - struct trace_entry ent; - u32 __data_loc_br_dev; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - char __data[0]; -}; - -struct trace_event_raw_br_fdb_update { - struct trace_entry ent; - u32 __data_loc_br_dev; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - unsigned long flags; - char __data[0]; -}; - -struct trace_event_raw_br_mdb_full { - struct trace_entry ent; - u32 __data_loc_dev; - int af; - u16 vid; - __u8 src[16]; - __u8 grp[16]; - __u8 grpmac[6]; - char __data[0]; -}; - -struct trace_event_raw_page_pool_release { - struct trace_entry ent; - const struct page_pool *pool; - s32 inflight; - u32 hold; - u32 release; - u64 cnt; - char __data[0]; -}; - -struct trace_event_raw_page_pool_state_release { - struct trace_entry ent; - const struct page_pool *pool; - const struct page *page; - u32 release; - unsigned long pfn; - char __data[0]; -}; - -struct trace_event_raw_page_pool_state_hold { - struct trace_entry ent; - const struct page_pool *pool; - const struct page *page; - u32 hold; - unsigned long pfn; - char __data[0]; -}; - -struct trace_event_raw_page_pool_update_nid { - struct trace_entry ent; - const struct page_pool *pool; - int pool_nid; - int new_nid; - char __data[0]; -}; - -struct trace_event_raw_neigh_create { - struct trace_entry ent; - u32 family; - u32 __data_loc_dev; - int entries; - u8 created; - u8 gc_exempt; - u8 primary_key4[4]; - u8 primary_key6[16]; - char __data[0]; -}; - -struct trace_event_raw_neigh_update { - struct trace_entry ent; - u32 family; - u32 __data_loc_dev; - u8 lladdr[32]; - u8 lladdr_len; - u8 flags; - u8 nud_state; - u8 type; - u8 dead; - int refcnt; - __u8 primary_key4[4]; - __u8 primary_key6[16]; - unsigned long confirmed; - unsigned long updated; - unsigned long used; - u8 new_lladdr[32]; - u8 new_state; - u32 update_flags; - u32 pid; - char __data[0]; -}; - -struct trace_event_raw_neigh__update { - struct trace_entry ent; - u32 family; - u32 __data_loc_dev; - u8 lladdr[32]; - u8 lladdr_len; - u8 flags; - u8 nud_state; - u8 type; - u8 dead; - int refcnt; - __u8 primary_key4[4]; - __u8 primary_key6[16]; - unsigned long confirmed; - unsigned long updated; - unsigned long used; - u32 err; - char __data[0]; -}; - -struct trace_event_data_offsets_net_dev_start_xmit { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_net_dev_xmit { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_net_dev_xmit_timeout { - u32 name; - const void *name_ptr_; - u32 driver; - const void *driver_ptr_; -}; - -struct trace_event_data_offsets_net_dev_template { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_net_dev_rx_verbose_template { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_napi_poll { - u32 dev_name; - const void *dev_name_ptr_; -}; - -struct trace_event_data_offsets_qdisc_reset { - u32 dev; - const void *dev_ptr_; - u32 kind; - const void *kind_ptr_; -}; - -struct trace_event_data_offsets_qdisc_destroy { - u32 dev; - const void *dev_ptr_; - u32 kind; - const void *kind_ptr_; -}; - -struct trace_event_data_offsets_qdisc_create { - u32 dev; - const void *dev_ptr_; - u32 kind; - const void *kind_ptr_; -}; - -struct trace_event_data_offsets_br_fdb_add { - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_br_fdb_external_learn_add { - u32 br_dev; - const void *br_dev_ptr_; - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_fdb_delete { - u32 br_dev; - const void *br_dev_ptr_; - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_br_fdb_update { - u32 br_dev; - const void *br_dev_ptr_; - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_br_mdb_full { - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_neigh_create { - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_neigh_update { - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_neigh__update { - u32 dev; - const void *dev_ptr_; -}; - -struct trace_event_data_offsets_kfree_skb {}; - -struct trace_event_data_offsets_consume_skb {}; - -struct trace_event_data_offsets_skb_copy_datagram_iovec {}; - -struct trace_event_data_offsets_net_dev_rx_exit_template {}; - -struct trace_event_data_offsets_dql_stall_detected {}; - -struct trace_event_data_offsets_sock_rcvqueue_full {}; - -struct trace_event_data_offsets_sock_exceed_buf_limit {}; - -struct trace_event_data_offsets_inet_sock_set_state {}; - -struct trace_event_data_offsets_inet_sk_error_report {}; - -struct trace_event_data_offsets_sk_data_ready {}; - -struct trace_event_data_offsets_sock_msg_length {}; - -struct trace_event_data_offsets_udp_fail_queue_rcv_skb {}; - -struct trace_event_data_offsets_tcp_event_sk_skb {}; - -struct trace_event_data_offsets_tcp_event_sk {}; - -struct trace_event_data_offsets_tcp_retransmit_synack {}; - -struct trace_event_data_offsets_tcp_probe {}; - -struct trace_event_data_offsets_tcp_event_skb {}; - -struct trace_event_data_offsets_tcp_cong_state_set {}; - -struct trace_event_data_offsets_fib_table_lookup {}; - -struct trace_event_data_offsets_qdisc_dequeue {}; - -struct trace_event_data_offsets_qdisc_enqueue {}; - -struct trace_event_data_offsets_page_pool_release {}; - -struct trace_event_data_offsets_page_pool_state_release {}; - -struct trace_event_data_offsets_page_pool_state_hold {}; - -struct trace_event_data_offsets_page_pool_update_nid {}; - -enum nft_set_class { - NFT_SET_CLASS_O_1 = 0, - NFT_SET_CLASS_O_LOG_N = 1, - NFT_SET_CLASS_O_N = 2, -}; - -enum nft_dynset_ops { - NFT_DYNSET_OP_ADD = 0, - NFT_DYNSET_OP_UPDATE = 1, - NFT_DYNSET_OP_DELETE = 2, -}; - -enum nft_set_extensions { - NFT_SET_EXT_KEY = 0, - NFT_SET_EXT_KEY_END = 1, - NFT_SET_EXT_DATA = 2, - NFT_SET_EXT_FLAGS = 3, - NFT_SET_EXT_TIMEOUT = 4, - NFT_SET_EXT_EXPIRATION = 5, - NFT_SET_EXT_USERDATA = 6, - NFT_SET_EXT_EXPRESSIONS = 7, - NFT_SET_EXT_OBJREF = 8, - NFT_SET_EXT_NUM = 9, -}; - -enum nft_verdicts { - NFT_CONTINUE = -1, - NFT_BREAK = -2, - NFT_JUMP = -3, - NFT_GOTO = -4, - NFT_RETURN = -5, -}; - -enum nft_dynset_attributes { - NFTA_DYNSET_UNSPEC = 0, - NFTA_DYNSET_SET_NAME = 1, - NFTA_DYNSET_SET_ID = 2, - NFTA_DYNSET_OP = 3, - NFTA_DYNSET_SREG_KEY = 4, - NFTA_DYNSET_SREG_DATA = 5, - NFTA_DYNSET_TIMEOUT = 6, - NFTA_DYNSET_EXPR = 7, - NFTA_DYNSET_PAD = 8, - NFTA_DYNSET_FLAGS = 9, - NFTA_DYNSET_EXPRESSIONS = 10, - __NFTA_DYNSET_MAX = 11, -}; - -enum nft_dynset_flags { - NFT_DYNSET_F_INV = 1, - NFT_DYNSET_F_EXPR = 2, -}; - -enum nft_set_flags { - NFT_SET_ANONYMOUS = 1, - NFT_SET_CONSTANT = 2, - NFT_SET_INTERVAL = 4, - NFT_SET_MAP = 8, - NFT_SET_TIMEOUT = 16, - NFT_SET_EVAL = 32, - NFT_SET_OBJECT = 64, - NFT_SET_CONCAT = 128, - NFT_SET_EXPR = 256, -}; - -enum nft_data_types { - NFT_DATA_VALUE = 0, - NFT_DATA_VERDICT = 4294967040, -}; - -enum nft_list_attributes { - NFTA_LIST_UNSPEC = 0, - NFTA_LIST_ELEM = 1, - __NFTA_LIST_MAX = 2, -}; - -struct nft_set_ext { - u8 genmask; - u8 offset[9]; - char data[0]; -}; - -struct nft_set_elem_expr { - u8 size; - long: 0; - unsigned char data[0]; -}; - -struct nft_set_ops; - -struct nft_set { - struct list_head list; - struct list_head bindings; - refcount_t refs; - struct nft_table *table; - possible_net_t net; - char *name; - u64 handle; - u32 ktype; - u32 dtype; - u32 objtype; - u32 size; - u8 field_len[16]; - u8 field_count; - u32 use; - atomic_t nelems; - u32 ndeact; - u64 timeout; - u32 gc_int; - u16 policy; - u16 udlen; - unsigned char *udata; - struct list_head pending_update; - long: 64; - long: 64; - long: 64; - long: 64; - const struct nft_set_ops *ops; - u16 flags: 13; - u16 dead: 1; - u16 genmask: 2; - u8 klen; - u8 dlen; - u8 num_exprs; - struct nft_expr *exprs[2]; - struct list_head catchall_list; - unsigned char data[0]; - long: 64; - long: 64; -}; - -struct nft_elem_priv; - -struct nft_set_elem; - -struct nft_set_iter; - -struct nft_set_desc; - -struct nft_set_estimate; - -struct nft_set_ops { - bool (*lookup)(const struct net *, const struct nft_set *, const u32 *, const struct nft_set_ext **); - bool (*update)(struct nft_set *, const u32 *, struct nft_elem_priv * (*)(struct nft_set *, const struct nft_expr *, struct nft_regs *), const struct nft_expr *, struct nft_regs *, const struct nft_set_ext **); - bool (*delete)(const struct nft_set *, const u32 *); - int (*insert)(const struct net *, const struct nft_set *, const struct nft_set_elem *, struct nft_elem_priv **); - void (*activate)(const struct net *, const struct nft_set *, struct nft_elem_priv *); - struct nft_elem_priv * (*deactivate)(const struct net *, const struct nft_set *, const struct nft_set_elem *); - void (*flush)(const struct net *, const struct nft_set *, struct nft_elem_priv *); - void (*remove)(const struct net *, const struct nft_set *, struct nft_elem_priv *); - void (*walk)(const struct nft_ctx *, struct nft_set *, struct nft_set_iter *); - struct nft_elem_priv * (*get)(const struct net *, const struct nft_set *, const struct nft_set_elem *, unsigned int); - void (*commit)(struct nft_set *); - void (*abort)(const struct nft_set *); - u64 (*privsize)(const struct nlattr * const *, const struct nft_set_desc *); - bool (*estimate)(const struct nft_set_desc *, u32, struct nft_set_estimate *); - int (*init)(const struct nft_set *, const struct nft_set_desc *, const struct nlattr * const *); - void (*destroy)(const struct nft_ctx *, const struct nft_set *); - void (*gc_init)(const struct nft_set *); - unsigned int elemsize; -}; - -struct nft_elem_priv {}; - -struct nft_set_elem { - union { - u32 buf[16]; - struct nft_data val; - } key; - union { - u32 buf[16]; - struct nft_data val; - } key_end; - union { - u32 buf[16]; - struct nft_data val; - } data; - struct nft_elem_priv *priv; -}; - -struct nft_set_iter { - u8 genmask; - unsigned int count; - unsigned int skip; - int err; - int (*fn)(const struct nft_ctx *, struct nft_set *, const struct nft_set_iter *, struct nft_elem_priv *); -}; - -struct nft_set_desc { - u32 ktype; - unsigned int klen; - u32 dtype; - unsigned int dlen; - u32 objtype; - unsigned int size; - u32 policy; - u32 gc_int; - u64 timeout; - u8 field_len[16]; - u8 field_count; - bool expr; -}; - -struct nft_set_estimate { - u64 size; - enum nft_set_class lookup; - enum nft_set_class space; -}; - -struct nft_set_ext_tmpl { - u16 len; - u8 offset[9]; - u8 ext_len[9]; -}; - -struct nft_set_binding { - struct list_head list; - const struct nft_chain *chain; - u32 flags; -}; - -struct nft_dynset { - struct nft_set *set; - struct nft_set_ext_tmpl tmpl; - enum nft_dynset_ops op: 8; - u8 sreg_key; - u8 sreg_data; - bool invert; - bool expr; - u8 num_exprs; - u64 timeout; - struct nft_expr *expr_array[2]; - struct nft_set_binding binding; -}; - -struct nftables_pernet { - struct list_head tables; - struct list_head commit_list; - struct list_head binding_list; - struct list_head module_list; - struct list_head notify_list; - struct mutex commit_mutex; - u64 table_handle; - u64 tstamp; - unsigned int base_seq; - unsigned int gc_seq; - u8 validate_state; -}; - -struct iptable_nat_pernet { - struct nf_hook_ops *nf_nat_ops; -}; - -struct ioam6_pernet_data { - struct mutex lock; - struct rhashtable namespaces; - struct rhashtable schemas; -}; - -enum ioam6_event_type { - IOAM6_EVENT_UNSPEC = 0, - IOAM6_EVENT_TRACE = 1, -}; - -enum ioam6_event_attr { - IOAM6_EVENT_ATTR_UNSPEC = 0, - IOAM6_EVENT_ATTR_TRACE_NAMESPACE = 1, - IOAM6_EVENT_ATTR_TRACE_NODELEN = 2, - IOAM6_EVENT_ATTR_TRACE_TYPE = 3, - IOAM6_EVENT_ATTR_TRACE_DATA = 4, - __IOAM6_EVENT_ATTR_MAX = 5, -}; - -enum { - IOAM6_ATTR_UNSPEC = 0, - IOAM6_ATTR_NS_ID = 1, - IOAM6_ATTR_NS_DATA = 2, - IOAM6_ATTR_NS_DATA_WIDE = 3, - IOAM6_ATTR_SC_ID = 4, - IOAM6_ATTR_SC_DATA = 5, - IOAM6_ATTR_SC_NONE = 6, - IOAM6_ATTR_PAD = 7, - __IOAM6_ATTR_MAX = 8, -}; - -enum { - IOAM6_CMD_UNSPEC = 0, - IOAM6_CMD_ADD_NAMESPACE = 1, - IOAM6_CMD_DEL_NAMESPACE = 2, - IOAM6_CMD_DUMP_NAMESPACES = 3, - IOAM6_CMD_ADD_SCHEMA = 4, - IOAM6_CMD_DEL_SCHEMA = 5, - IOAM6_CMD_DUMP_SCHEMAS = 6, - IOAM6_CMD_NS_SET_SCHEMA = 7, - __IOAM6_CMD_MAX = 8, -}; - -struct ioam6_trace_hdr { - __be16 namespace_id; - char: 2; - __u8 overflow: 1; - __u8 nodelen: 5; - __u8 remlen: 7; - union { - __be32 type_be32; - struct { - __u32 bit7: 1; - __u32 bit6: 1; - __u32 bit5: 1; - __u32 bit4: 1; - __u32 bit3: 1; - __u32 bit2: 1; - __u32 bit1: 1; - __u32 bit0: 1; - __u32 bit15: 1; - __u32 bit14: 1; - __u32 bit13: 1; - __u32 bit12: 1; - __u32 bit11: 1; - __u32 bit10: 1; - __u32 bit9: 1; - __u32 bit8: 1; - __u32 bit23: 1; - __u32 bit22: 1; - __u32 bit21: 1; - __u32 bit20: 1; - __u32 bit19: 1; - __u32 bit18: 1; - __u32 bit17: 1; - __u32 bit16: 1; - } type; - }; - __u8 data[0]; -}; - -struct ioam6_namespace; - -struct ioam6_schema { - struct rhash_head head; - struct callback_head rcu; - struct ioam6_namespace __attribute__((btf_type_tag("rcu"))) *ns; - u32 id; - int len; - __be32 hdr; - u8 data[0]; -}; - -struct ioam6_namespace { - struct rhash_head head; - struct callback_head rcu; - struct ioam6_schema __attribute__((btf_type_tag("rcu"))) *schema; - __be16 id; - __be32 data; - __be64 data_wide; -}; - -struct rhashtable_walker { - struct list_head list; - struct bucket_table *tbl; -}; - -struct rhashtable_iter { - struct rhashtable *ht; - struct rhash_head *p; - struct rhlist_head *list; - struct rhashtable_walker walker; - unsigned int slot; - unsigned int skip; - bool end_of_table; -}; - -struct vm_special_mapping { - const char *name; - struct page **pages; - vm_fault_t (*fault)(const struct vm_special_mapping *, struct vm_area_struct *, struct vm_fault *); - int (*mremap)(const struct vm_special_mapping *, struct vm_area_struct *); -}; - -enum vdso_clock_mode { - VDSO_CLOCKMODE_NONE = 0, - VDSO_CLOCKMODE_TSC = 1, - VDSO_CLOCKMODE_PVCLOCK = 2, - VDSO_CLOCKMODE_HVCLOCK = 3, - VDSO_CLOCKMODE_MAX = 4, - VDSO_CLOCKMODE_TIMENS = 2147483647, -}; - -struct vdso_timestamp { - u64 sec; - u64 nsec; -}; - -struct timens_offset { - s64 sec; - u64 nsec; -}; - -struct arch_vdso_data {}; - -struct vdso_data { - u32 seq; - s32 clock_mode; - u64 cycle_last; - u64 mask; - u32 mult; - u32 shift; - union { - struct vdso_timestamp basetime[12]; - struct timens_offset offset[12]; - }; - s32 tz_minuteswest; - s32 tz_dsttime; - u32 hrtimer_res; - u32 __unused; - struct arch_vdso_data arch_data; -}; - -struct alt_instr { - s32 instr_offset; - s32 repl_offset; - union { - struct { - u32 cpuid: 16; - u32 flags: 16; - }; - u32 ft_flags; - }; - u8 instrlen; - u8 replacementlen; -} __attribute__((packed)); - -enum { - HW_BREAKPOINT_EMPTY = 0, - HW_BREAKPOINT_R = 1, - HW_BREAKPOINT_W = 2, - HW_BREAKPOINT_RW = 3, - HW_BREAKPOINT_X = 4, - HW_BREAKPOINT_INVALID = 7, -}; - -enum { - HW_BREAKPOINT_LEN_1 = 1, - HW_BREAKPOINT_LEN_2 = 2, - HW_BREAKPOINT_LEN_3 = 3, - HW_BREAKPOINT_LEN_4 = 4, - HW_BREAKPOINT_LEN_5 = 5, - HW_BREAKPOINT_LEN_6 = 6, - HW_BREAKPOINT_LEN_7 = 7, - HW_BREAKPOINT_LEN_8 = 8, -}; - -struct tlb_context { - u64 ctx_id; - u64 tlb_gen; -}; - -struct tlb_state { - struct mm_struct *loaded_mm; - union { - struct mm_struct *last_user_mm; - unsigned long last_user_mm_spec; - }; - u16 loaded_mm_asid; - u16 next_asid; - bool invalidate_other; - unsigned short user_pcid_flush_mask; - unsigned long cr4; - struct tlb_context ctxs[6]; -}; - -enum tlb_infos { - ENTRIES = 0, - NR_INFO = 1, -}; - -struct mtrr_sentry { - __u64 base; - __u32 size; - __u32 type; -}; - -struct mtrr_gentry { - __u64 base; - __u32 size; - __u32 regnum; - __u32 type; - __u32 _pad; -}; - -union text_poke_insn { - u8 text[5]; - struct { - u8 opcode; - s32 disp; - } __attribute__((packed)); -}; - -enum { - FTRACE_UPDATE_IGNORE = 0, - FTRACE_UPDATE_MAKE_CALL = 1, - FTRACE_UPDATE_MODIFY_CALL = 2, - FTRACE_UPDATE_MAKE_NOP = 3, -}; - -enum { - FTRACE_OPS_FL_ENABLED = 1, - FTRACE_OPS_FL_DYNAMIC = 2, - FTRACE_OPS_FL_SAVE_REGS = 4, - FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, - FTRACE_OPS_FL_RECURSION = 16, - FTRACE_OPS_FL_STUB = 32, - FTRACE_OPS_FL_INITIALIZED = 64, - FTRACE_OPS_FL_DELETED = 128, - FTRACE_OPS_FL_ADDING = 256, - FTRACE_OPS_FL_REMOVING = 512, - FTRACE_OPS_FL_MODIFYING = 1024, - FTRACE_OPS_FL_ALLOC_TRAMP = 2048, - FTRACE_OPS_FL_IPMODIFY = 4096, - FTRACE_OPS_FL_PID = 8192, - FTRACE_OPS_FL_RCU = 16384, - FTRACE_OPS_FL_TRACE_ARRAY = 32768, - FTRACE_OPS_FL_PERMANENT = 65536, - FTRACE_OPS_FL_DIRECT = 131072, -}; - -enum { - FTRACE_FL_ENABLED = 2147483648, - FTRACE_FL_REGS = 1073741824, - FTRACE_FL_REGS_EN = 536870912, - FTRACE_FL_TRAMP = 268435456, - FTRACE_FL_TRAMP_EN = 134217728, - FTRACE_FL_IPMODIFY = 67108864, - FTRACE_FL_DISABLED = 33554432, - FTRACE_FL_DIRECT = 16777216, - FTRACE_FL_DIRECT_EN = 8388608, - FTRACE_FL_CALL_OPS = 4194304, - FTRACE_FL_CALL_OPS_EN = 2097152, - FTRACE_FL_TOUCHED = 1048576, - FTRACE_FL_MODIFIED = 524288, -}; - -enum { - TRACE_FTRACE_BIT = 0, - TRACE_FTRACE_NMI_BIT = 1, - TRACE_FTRACE_IRQ_BIT = 2, - TRACE_FTRACE_SIRQ_BIT = 3, - TRACE_FTRACE_TRANSITION_BIT = 4, - TRACE_INTERNAL_BIT = 5, - TRACE_INTERNAL_NMI_BIT = 6, - TRACE_INTERNAL_IRQ_BIT = 7, - TRACE_INTERNAL_SIRQ_BIT = 8, - TRACE_INTERNAL_TRANSITION_BIT = 9, - TRACE_BRANCH_BIT = 10, - TRACE_IRQ_BIT = 11, - TRACE_GRAPH_BIT = 12, - TRACE_GRAPH_DEPTH_START_BIT = 13, - TRACE_GRAPH_DEPTH_END_BIT = 14, - TRACE_GRAPH_NOTRACE_BIT = 15, - TRACE_RECORD_RECURSION_BIT = 16, -}; - -enum { - TRACE_CTX_NMI = 0, - TRACE_CTX_IRQ = 1, - TRACE_CTX_SOFTIRQ = 2, - TRACE_CTX_NORMAL = 3, - TRACE_CTX_TRANSITION = 4, -}; - -struct dyn_arch_ftrace {}; - -struct dyn_ftrace { - unsigned long ip; - unsigned long flags; - struct dyn_arch_ftrace arch; -}; - -union ftrace_op_code_union { - char code[7]; - struct { - char op[3]; - int offset; - } __attribute__((packed)); -}; - -struct clocksource; - -struct tk_read_base { - struct clocksource *clock; - u64 mask; - u64 cycle_last; - u32 mult; - u32 shift; - u64 xtime_nsec; - ktime_t base; - u64 base_real; -}; - -struct tk_fast { - seqcount_latch_t seq; - struct tk_read_base base[2]; -}; - -enum clocksource_ids { - CSID_GENERIC = 0, - CSID_ARM_ARCH_COUNTER = 1, - CSID_X86_TSC_EARLY = 2, - CSID_X86_TSC = 3, - CSID_X86_KVM_CLK = 4, - CSID_MAX = 5, -}; - -struct clocksource { - u64 (*read)(struct clocksource *); - u64 mask; - u32 mult; - u32 shift; - u64 max_idle_ns; - u32 maxadj; - u32 uncertainty_margin; - u64 max_cycles; - const char *name; - struct list_head list; - int rating; - enum clocksource_ids id; - enum vdso_clock_mode vdso_clock_mode; - unsigned long flags; - int (*enable)(struct clocksource *); - void (*disable)(struct clocksource *); - void (*suspend)(struct clocksource *); - void (*resume)(struct clocksource *); - void (*mark_unstable)(struct clocksource *); - void (*tick_stable)(struct clocksource *); - struct list_head wd_list; - u64 cs_last; - u64 wd_last; - struct module *owner; -}; - -struct timekeeper { - struct tk_read_base tkr_mono; - struct tk_read_base tkr_raw; - u64 xtime_sec; - unsigned long ktime_sec; - struct timespec64 wall_to_monotonic; - ktime_t offs_real; - ktime_t offs_boot; - ktime_t offs_tai; - s32 tai_offset; - unsigned int clock_was_set_seq; - u8 cs_was_changed_seq; - ktime_t next_leap_ktime; - u64 raw_sec; - struct timespec64 monotonic_to_boot; - u64 cycle_interval; - u64 xtime_interval; - s64 xtime_remainder; - u64 raw_interval; - u64 ntp_tick; - s64 ntp_error; - u32 ntp_error_shift; - u32 ntp_err_mult; - u32 skip_second_overflow; -}; - -enum hrtimer_base_type { - HRTIMER_BASE_MONOTONIC = 0, - HRTIMER_BASE_REALTIME = 1, - HRTIMER_BASE_BOOTTIME = 2, - HRTIMER_BASE_TAI = 3, - HRTIMER_BASE_MONOTONIC_SOFT = 4, - HRTIMER_BASE_REALTIME_SOFT = 5, - HRTIMER_BASE_BOOTTIME_SOFT = 6, - HRTIMER_BASE_TAI_SOFT = 7, - HRTIMER_MAX_CLOCK_BASES = 8, -}; - -enum timekeeping_adv_mode { - TK_ADV_TICK = 0, - TK_ADV_FREQ = 1, -}; - -struct system_time_snapshot { - u64 cycles; - ktime_t real; - ktime_t raw; - enum clocksource_ids cs_id; - unsigned int clock_was_set_seq; - u8 cs_was_changed_seq; -}; - -typedef int (*cpu_stop_fn_t)(void *); - -struct audit_ntp_data {}; - -struct ktime_timestamps { - u64 mono; - u64 boot; - u64 real; -}; - -struct system_counterval_t { - u64 cycles; - enum clocksource_ids cs_id; -}; - -struct fmeter { - int cnt; - int val; - time64_t time; - spinlock_t lock; -}; - -enum prs_errcode { - PERR_NONE = 0, - PERR_INVCPUS = 1, - PERR_INVPARENT = 2, - PERR_NOTPART = 3, - PERR_NOTEXCL = 4, - PERR_NOCPUS = 5, - PERR_HOTPLUG = 6, - PERR_CPUSEMPTY = 7, - PERR_HKEEPING = 8, -}; - -struct cpuset { - struct cgroup_subsys_state css; - unsigned long flags; - cpumask_var_t cpus_allowed; - nodemask_t mems_allowed; - cpumask_var_t effective_cpus; - nodemask_t effective_mems; - cpumask_var_t effective_xcpus; - cpumask_var_t exclusive_cpus; - nodemask_t old_mems_allowed; - struct fmeter fmeter; - int attach_in_progress; - int pn; - int relax_domain_level; - int nr_subparts; - int partition_root_state; - int use_parent_ecpus; - int child_ecpus_count; - int nr_deadline_tasks; - int nr_migrate_dl_tasks; - u64 sum_migrate_dl_bw; - enum prs_errcode prs_err; - struct cgroup_file partition_file; - struct list_head remote_sibling; -}; - -enum cgroup_subsys_id { - cpuset_cgrp_id = 0, - cpu_cgrp_id = 1, - cpuacct_cgrp_id = 2, - io_cgrp_id = 3, - memory_cgrp_id = 4, - devices_cgrp_id = 5, - freezer_cgrp_id = 6, - net_cls_cgrp_id = 7, - perf_event_cgrp_id = 8, - hugetlb_cgrp_id = 9, - pids_cgrp_id = 10, - rdma_cgrp_id = 11, - misc_cgrp_id = 12, - debug_cgrp_id = 13, - CGROUP_SUBSYS_COUNT = 14, -}; - -enum { - CGRP_NOTIFY_ON_RELEASE = 0, - CGRP_CPUSET_CLONE_CHILDREN = 1, - CGRP_FREEZE = 2, - CGRP_FROZEN = 3, - CGRP_KILL = 4, -}; - -enum partition_cmd { - partcmd_enable = 0, - partcmd_enablei = 1, - partcmd_disable = 2, - partcmd_update = 3, - partcmd_invalidate = 4, -}; - -enum { - CGRP_ROOT_NOPREFIX = 2, - CGRP_ROOT_XATTR = 4, - CGRP_ROOT_NS_DELEGATE = 8, - CGRP_ROOT_FAVOR_DYNMODS = 16, - CGRP_ROOT_CPUSET_V2_MODE = 65536, - CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, - CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, - CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, -}; - -struct cpuset_migrate_mm_work { - struct work_struct work; - struct mm_struct *mm; - nodemask_t from; - nodemask_t to; -}; - -struct sched_domain_attr { - int relax_domain_level; -}; - -struct css_task_iter { - struct cgroup_subsys *ss; - unsigned int flags; - struct list_head *cset_pos; - struct list_head *cset_head; - struct list_head *tcset_pos; - struct list_head *tcset_head; - struct list_head *task_pos; - struct list_head *cur_tasks_head; - struct css_set *cur_cset; - struct css_set *cur_dcset; - struct task_struct *cur_task; - struct list_head iters_node; -}; - -struct tmpmasks { - cpumask_var_t addmask; - cpumask_var_t delmask; - cpumask_var_t new_cpus; -}; - -typedef enum { - CS_ONLINE = 0, - CS_CPU_EXCLUSIVE = 1, - CS_MEM_EXCLUSIVE = 2, - CS_MEM_HARDWALL = 3, - CS_MEMORY_MIGRATE = 4, - CS_SCHED_LOAD_BALANCE = 5, - CS_SPREAD_PAGE = 6, - CS_SPREAD_SLAB = 7, -} cpuset_flagbits_t; - -typedef enum { - FILE_MEMORY_MIGRATE = 0, - FILE_CPULIST = 1, - FILE_MEMLIST = 2, - FILE_EFFECTIVE_CPULIST = 3, - FILE_EFFECTIVE_MEMLIST = 4, - FILE_SUBPARTS_CPULIST = 5, - FILE_EXCLUSIVE_CPULIST = 6, - FILE_EFFECTIVE_XCPULIST = 7, - FILE_ISOLATED_CPULIST = 8, - FILE_CPU_EXCLUSIVE = 9, - FILE_MEM_EXCLUSIVE = 10, - FILE_MEM_HARDWALL = 11, - FILE_SCHED_LOAD_BALANCE = 12, - FILE_PARTITION_ROOT = 13, - FILE_SCHED_RELAX_DOMAIN_LEVEL = 14, - FILE_MEMORY_PRESSURE_ENABLED = 15, - FILE_MEMORY_PRESSURE = 16, - FILE_SPREAD_PAGE = 17, - FILE_SPREAD_SLAB = 18, -} cpuset_filetype_t; - -enum jump_label_type { - JUMP_LABEL_NOP = 0, - JUMP_LABEL_JMP = 1, -}; - -struct static_key_deferred { - struct static_key key; - unsigned long timeout; - struct delayed_work work; -}; - -struct static_key_mod { - struct static_key_mod *next; - struct jump_entry *entries; - struct module *mod; -}; - -typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); - -typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -enum rseq_cs_flags { - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = 1, - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = 2, - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = 4, -}; - -enum rseq_flags { - RSEQ_FLAG_UNREGISTER = 1, -}; - -enum rseq_cpu_id_state { - RSEQ_CPU_ID_UNINITIALIZED = -1, - RSEQ_CPU_ID_REGISTRATION_FAILED = -2, -}; - -struct trace_event_raw_rseq_update { - struct trace_entry ent; - s32 cpu_id; - s32 node_id; - s32 mm_cid; - char __data[0]; -}; - -struct trace_event_raw_rseq_ip_fixup { - struct trace_entry ent; - unsigned long regs_ip; - unsigned long start_ip; - unsigned long post_commit_offset; - unsigned long abort_ip; - char __data[0]; -}; - -struct rseq_cs { - __u32 version; - __u32 flags; - __u64 start_ip; - __u64 post_commit_offset; - __u64 abort_ip; -}; - -struct __large_struct { - unsigned long buf[100]; -}; - -struct trace_event_data_offsets_rseq_update {}; - -struct trace_event_data_offsets_rseq_ip_fixup {}; - -typedef int filler_t(struct file *, struct folio *); - -struct file_dedupe_range_info { - __s64 dest_fd; - __u64 dest_offset; - __u64 bytes_deduped; - __s32 status; - __u32 reserved; -}; - -struct file_dedupe_range { - __u64 src_offset; - __u64 src_length; - __u16 dest_count; - __u16 reserved1; - __u32 reserved2; - struct file_dedupe_range_info info[0]; -}; - -struct kernel_stat { - unsigned long irqs_sum; - unsigned int softirqs[10]; -}; - -struct fuse_mount; - -union fuse_file_args; - -struct fuse_file { - struct fuse_mount *fm; - union fuse_file_args *args; - u64 kh; - u64 fh; - u64 nodeid; - refcount_t count; - u32 open_flags; - struct list_head write_entry; - struct { - loff_t pos; - loff_t cache_off; - u64 version; - } readdir; - struct rb_node polled_node; - wait_queue_head_t poll_wait; - enum { - IOM_NONE = 0, - IOM_CACHED = 1, - IOM_UNCACHED = 2, - } iomode; - struct file *passthrough; - const struct cred *cred; - bool flock: 1; -}; - -struct fuse_mount { - struct fuse_conn *fc; - struct super_block *sb; - struct list_head fc_entry; - struct callback_head rcu; -}; - -struct fuse_open_out { - uint64_t fh; - uint32_t open_flags; - int32_t backing_id; -}; - -struct fuse_in_arg { - unsigned int size; - const void *value; -}; - -struct fuse_arg { - unsigned int size; - void *value; -}; - -struct fuse_args { - uint64_t nodeid; - uint32_t opcode; - uint8_t in_numargs; - uint8_t out_numargs; - uint8_t ext_idx; - bool force: 1; - bool noreply: 1; - bool nocreds: 1; - bool in_pages: 1; - bool out_pages: 1; - bool user_pages: 1; - bool out_argvar: 1; - bool page_zeroing: 1; - bool page_replace: 1; - bool may_block: 1; - bool is_ext: 1; - bool is_pinned: 1; - struct fuse_in_arg in_args[3]; - struct fuse_arg out_args[2]; - void (*end)(struct fuse_mount *, struct fuse_args *, int); -}; - -struct fuse_release_in { - uint64_t fh; - uint32_t flags; - uint32_t release_flags; - uint64_t lock_owner; -}; - -struct fuse_release_args { - struct fuse_args args; - struct fuse_release_in inarg; - struct inode *inode; -}; - -union fuse_file_args { - struct fuse_open_out open_outarg; - struct fuse_release_args release_args; -}; - -enum fuse_opcode { - FUSE_LOOKUP = 1, - FUSE_FORGET = 2, - FUSE_GETATTR = 3, - FUSE_SETATTR = 4, - FUSE_READLINK = 5, - FUSE_SYMLINK = 6, - FUSE_MKNOD = 8, - FUSE_MKDIR = 9, - FUSE_UNLINK = 10, - FUSE_RMDIR = 11, - FUSE_RENAME = 12, - FUSE_LINK = 13, - FUSE_OPEN = 14, - FUSE_READ = 15, - FUSE_WRITE = 16, - FUSE_STATFS = 17, - FUSE_RELEASE = 18, - FUSE_FSYNC = 20, - FUSE_SETXATTR = 21, - FUSE_GETXATTR = 22, - FUSE_LISTXATTR = 23, - FUSE_REMOVEXATTR = 24, - FUSE_FLUSH = 25, - FUSE_INIT = 26, - FUSE_OPENDIR = 27, - FUSE_READDIR = 28, - FUSE_RELEASEDIR = 29, - FUSE_FSYNCDIR = 30, - FUSE_GETLK = 31, - FUSE_SETLK = 32, - FUSE_SETLKW = 33, - FUSE_ACCESS = 34, - FUSE_CREATE = 35, - FUSE_INTERRUPT = 36, - FUSE_BMAP = 37, - FUSE_DESTROY = 38, - FUSE_IOCTL = 39, - FUSE_POLL = 40, - FUSE_NOTIFY_REPLY = 41, - FUSE_BATCH_FORGET = 42, - FUSE_FALLOCATE = 43, - FUSE_READDIRPLUS = 44, - FUSE_RENAME2 = 45, - FUSE_LSEEK = 46, - FUSE_COPY_FILE_RANGE = 47, - FUSE_SETUPMAPPING = 48, - FUSE_REMOVEMAPPING = 49, - FUSE_SYNCFS = 50, - FUSE_TMPFILE = 51, - FUSE_STATX = 52, - CUSE_INIT = 4096, - CUSE_INIT_BSWAP_RESERVED = 1048576, - FUSE_INIT_BSWAP_RESERVED = 436207616, -}; - -enum wb_stat_item { - WB_RECLAIMABLE = 0, - WB_WRITEBACK = 1, - WB_DIRTIED = 2, - WB_WRITTEN = 3, - NR_WB_STAT_ITEMS = 4, -}; - -enum { - FUSE_I_ADVISE_RDPLUS = 0, - FUSE_I_INIT_RDPLUS = 1, - FUSE_I_SIZE_UNSTABLE = 2, - FUSE_I_BAD = 3, - FUSE_I_BTIME = 4, - FUSE_I_CACHE_IO_MODE = 5, -}; - -struct fuse_read_in { - uint64_t fh; - uint64_t offset; - uint32_t size; - uint32_t read_flags; - uint64_t lock_owner; - uint32_t flags; - uint32_t padding; -}; - -struct fuse_write_in { - uint64_t fh; - uint64_t offset; - uint32_t size; - uint32_t write_flags; - uint64_t lock_owner; - uint32_t flags; - uint32_t padding; -}; - -struct fuse_write_out { - uint32_t size; - uint32_t padding; -}; - -struct fuse_page_desc; - -struct fuse_args_pages { - struct fuse_args args; - struct page **pages; - struct fuse_page_desc *descs; - unsigned int num_pages; -}; - -struct fuse_io_priv; - -struct fuse_io_args { - union { - struct { - struct fuse_read_in in; - u64 attr_ver; - } read; - struct { - struct fuse_write_in in; - struct fuse_write_out out; - bool page_locked; - } write; - }; - struct fuse_args_pages ap; - struct fuse_io_priv *io; - struct fuse_file *ff; -}; - -struct fuse_writepage_args { - struct fuse_io_args ia; - struct rb_node writepages_entry; - struct list_head queue_entry; - struct fuse_writepage_args *next; - struct inode *inode; - struct fuse_sync_bucket *bucket; -}; - -struct fuse_page_desc { - unsigned int length; - unsigned int offset; -}; - -struct fuse_io_priv { - struct kref refcnt; - int async; - spinlock_t lock; - unsigned int reqs; - ssize_t bytes; - size_t size; - __u64 offset; - bool write; - bool should_dirty; - int err; - struct kiocb *iocb; - struct completion *done; - bool blocking; -}; - -struct fuse_submount_lookup; - -struct fuse_backing; - -struct fuse_inode { - struct inode inode; - u64 nodeid; - u64 nlookup; - struct fuse_forget_link *forget; - u64 i_time; - u32 inval_mask; - umode_t orig_i_mode; - struct timespec64 i_btime; - u64 orig_ino; - u64 attr_version; - union { - struct { - struct list_head write_files; - struct list_head queued_writes; - int writectr; - int iocachectr; - wait_queue_head_t page_waitq; - wait_queue_head_t direct_io_waitq; - struct rb_root writepages; - }; - struct { - bool cached; - loff_t size; - loff_t pos; - u64 version; - struct timespec64 mtime; - u64 iversion; - spinlock_t lock; - } rdc; - }; - unsigned long state; - struct mutex mutex; - spinlock_t lock; - struct fuse_submount_lookup *submount_lookup; - struct fuse_backing *fb; -}; - -struct fuse_submount_lookup { - refcount_t count; - u64 nodeid; - struct fuse_forget_link *forget; -}; - -struct fuse_backing { - struct file *file; - struct cred *cred; - refcount_t count; - struct callback_head rcu; -}; - -struct fuse_open_in { - uint32_t flags; - uint32_t open_flags; -}; - -typedef unsigned int iov_iter_extraction_t; - -struct fuse_lseek_in { - uint64_t fh; - uint64_t offset; - uint32_t whence; - uint32_t padding; -}; - -struct fuse_lseek_out { - uint64_t offset; -}; - -struct fuse_file_lock { - uint64_t start; - uint64_t end; - uint32_t type; - uint32_t pid; -}; - -struct fuse_lk_in { - uint64_t fh; - uint64_t owner; - struct fuse_file_lock lk; - uint32_t lk_flags; - uint32_t padding; -}; - -struct fuse_lk_out { - struct fuse_file_lock lk; -}; - -struct fuse_copy_file_range_in { - uint64_t fh_in; - uint64_t off_in; - uint64_t nodeid_out; - uint64_t fh_out; - uint64_t off_out; - uint64_t len; - uint64_t flags; -}; - -struct fuse_fill_wb_data { - struct fuse_writepage_args *wpa; - struct fuse_file *ff; - struct inode *inode; - struct page **orig_pages; - unsigned int max_pages; -}; - -struct fuse_fsync_in { - uint64_t fh; - uint32_t fsync_flags; - uint32_t padding; -}; - -struct fuse_poll_out { - uint32_t revents; - uint32_t padding; -}; - -struct fuse_poll_in { - uint64_t fh; - uint64_t kh; - uint32_t flags; - uint32_t events; -}; - -struct fuse_notify_poll_wakeup_out { - uint64_t kh; -}; - -struct fuse_flush_in { - uint64_t fh; - uint32_t unused; - uint32_t padding; - uint64_t lock_owner; -}; - -struct fuse_fallocate_in { - uint64_t fh; - uint64_t offset; - uint64_t length; - uint32_t mode; - uint32_t padding; -}; - -struct fuse_bmap_out { - uint64_t block; -}; - -struct fuse_bmap_in { - uint64_t block; - uint32_t blocksize; - uint32_t padding; -}; - -struct efi_variable { - efi_char16_t VariableName[512]; - efi_guid_t VendorGuid; - unsigned long DataSize; - __u8 Data[1024]; - efi_status_t Status; - __u32 Attributes; -} __attribute__((packed)); - -struct efivar_entry { - struct efi_variable var; - struct list_head list; - struct kobject kobj; -}; - -struct blk_major_name { - struct blk_major_name *next; - int major; - char name[16]; - void (*probe)(dev_t); -}; - -enum { - GENHD_FL_REMOVABLE = 1, - GENHD_FL_HIDDEN = 2, - GENHD_FL_NO_PART = 4, -}; - -struct subsys_private; - -struct class_dev_iter { - struct klist_iter ki; - const struct device_type *type; - struct subsys_private *sp; -}; - -struct fb_modelist { - struct list_head list; - struct fb_videomode mode; -}; - -enum acpi_return_package_types { - ACPI_PTYPE1_FIXED = 1, - ACPI_PTYPE1_VAR = 2, - ACPI_PTYPE1_OPTION = 3, - ACPI_PTYPE2 = 4, - ACPI_PTYPE2_COUNT = 5, - ACPI_PTYPE2_PKG_COUNT = 6, - ACPI_PTYPE2_FIXED = 7, - ACPI_PTYPE2_MIN = 8, - ACPI_PTYPE2_REV_FIXED = 9, - ACPI_PTYPE2_FIX_VAR = 10, - ACPI_PTYPE2_VAR_VAR = 11, - ACPI_PTYPE2_UUID_PAIR = 12, - ACPI_PTYPE_CUSTOM = 13, -}; - -struct wake_irq { - struct device *dev; - unsigned int status; - int irq; - const char *name; -}; - -struct mdio_board_info { - const char *bus_id; - char modalias[32]; - int mdio_addr; - const void *platform_data; -}; - -struct mdio_board_entry { - struct list_head list; - struct mdio_board_info board_info; -}; - -enum rtl_fw_opcode { - PHY_READ = 0, - PHY_DATA_OR = 1, - PHY_DATA_AND = 2, - PHY_BJMPN = 3, - PHY_MDIO_CHG = 4, - PHY_CLEAR_READCOUNT = 7, - PHY_WRITE = 8, - PHY_READCOUNT_EQ_SKIP = 9, - PHY_COMP_EQ_SKIPN = 10, - PHY_COMP_NEQ_SKIPN = 11, - PHY_WRITE_PREVIOUS = 12, - PHY_SKIPN = 13, - PHY_DELAY_MS = 14, -}; - -struct fw_info { - u32 magic; - char version[32]; - __le32 fw_start; - __le32 fw_len; - u8 chksum; -} __attribute__((packed)); - -struct rtl8169_private; - -typedef void (*rtl_fw_write_t)(struct rtl8169_private *, int, int); - -typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int); - -struct rtl_fw_phy_action { - __le32 *code; - size_t size; -}; - -struct rtl_fw { - rtl_fw_write_t phy_write; - rtl_fw_read_t phy_read; - rtl_fw_write_t mac_mcu_write; - rtl_fw_read_t mac_mcu_read; - const struct firmware *fw; - const char *fw_name; - struct device *dev; - char version[32]; - struct rtl_fw_phy_action phy_action; -}; - -struct iwl_dbg_tlv_ver_data { - int min_ver; - int max_ver; -}; - -enum iwl_fw_ini_allocation_id { - IWL_FW_INI_ALLOCATION_INVALID = 0, - IWL_FW_INI_ALLOCATION_ID_DBGC1 = 1, - IWL_FW_INI_ALLOCATION_ID_DBGC2 = 2, - IWL_FW_INI_ALLOCATION_ID_DBGC3 = 3, - IWL_FW_INI_ALLOCATION_ID_DBGC4 = 4, - IWL_FW_INI_ALLOCATION_NUM = 5, -}; - -enum iwl_fw_ini_region_type { - IWL_FW_INI_REGION_INVALID = 0, - IWL_FW_INI_REGION_TLV = 1, - IWL_FW_INI_REGION_INTERNAL_BUFFER = 2, - IWL_FW_INI_REGION_DRAM_BUFFER = 3, - IWL_FW_INI_REGION_TXF = 4, - IWL_FW_INI_REGION_RXF = 5, - IWL_FW_INI_REGION_LMAC_ERROR_TABLE = 6, - IWL_FW_INI_REGION_UMAC_ERROR_TABLE = 7, - IWL_FW_INI_REGION_RSP_OR_NOTIF = 8, - IWL_FW_INI_REGION_DEVICE_MEMORY = 9, - IWL_FW_INI_REGION_PERIPHERY_MAC = 10, - IWL_FW_INI_REGION_PERIPHERY_PHY = 11, - IWL_FW_INI_REGION_PERIPHERY_AUX = 12, - IWL_FW_INI_REGION_PAGING = 13, - IWL_FW_INI_REGION_CSR = 14, - IWL_FW_INI_REGION_DRAM_IMR = 15, - IWL_FW_INI_REGION_PCI_IOSF_CONFIG = 16, - IWL_FW_INI_REGION_SPECIAL_DEVICE_MEMORY = 17, - IWL_FW_INI_REGION_DBGI_SRAM = 18, - IWL_FW_INI_REGION_PERIPHERY_MAC_RANGE = 19, - IWL_FW_INI_REGION_PERIPHERY_PHY_RANGE = 20, - IWL_FW_INI_REGION_PERIPHERY_SNPS_DPHYIP = 21, - IWL_FW_INI_REGION_NUM = 22, -}; - -enum iwl_fw_ini_config_set_type { - IWL_FW_INI_CONFIG_SET_TYPE_INVALID = 0, - IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_MAC = 1, - IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_PHY = 2, - IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_AUX = 3, - IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_MEMORY = 4, - IWL_FW_INI_CONFIG_SET_TYPE_CSR = 5, - IWL_FW_INI_CONFIG_SET_TYPE_DBGC_DRAM_ADDR = 6, - IWL_FW_INI_CONFIG_SET_TYPE_PERIPH_SCRATCH_HWM = 7, - IWL_FW_INI_CONFIG_SET_TYPE_MAX_NUM = 8, -} __attribute__((mode(byte))); - -enum iwl_fw_ini_trigger_apply_policy { - IWL_FW_INI_APPLY_POLICY_MATCH_TIME_POINT = 1, - IWL_FW_INI_APPLY_POLICY_MATCH_DATA = 2, - IWL_FW_INI_APPLY_POLICY_OVERRIDE_REGIONS = 256, - IWL_FW_INI_APPLY_POLICY_OVERRIDE_CFG = 512, - IWL_FW_INI_APPLY_POLICY_OVERRIDE_DATA = 1024, - IWL_FW_INI_APPLY_POLICY_DUMP_COMPLETE_CMD = 65536, -}; - -enum iwl_fw_ini_trigger_reset_fw_policy { - IWL_FW_INI_RESET_FW_MODE_NOTHING = 0, - IWL_FW_INI_RESET_FW_MODE_STOP_FW_ONLY = 1, - IWL_FW_INI_RESET_FW_MODE_STOP_AND_RELOAD_FW = 2, -}; - -enum iwl_debug_cmds { - LMAC_RD_WR = 0, - UMAC_RD_WR = 1, - HOST_EVENT_CFG = 3, - INVALID_WR_PTR_CMD = 6, - DBGC_SUSPEND_RESUME = 7, - BUFFER_ALLOCATION = 8, - GET_TAS_STATUS = 10, - FW_DUMP_COMPLETE_CMD = 11, - FW_CLEAR_BUFFER = 13, - MFU_ASSERT_DUMP_NTF = 254, -}; - -struct iwl_dbg_tlv_timer_node { - struct list_head list; - struct timer_list timer; - struct iwl_fw_runtime *fwrt; - struct iwl_ucode_tlv *tlv; -}; - -struct iwl_dbg_tlv_node { - struct list_head list; - struct iwl_ucode_tlv tlv; -}; - -struct iwl_fw_ini_hcmd { - u8 id; - u8 group; - __le16 reserved; - u8 data[0]; -}; - -struct iwl_fw_ini_hcmd_tlv { - struct iwl_fw_ini_header hdr; - __le32 time_point; - __le32 period_msec; - struct iwl_fw_ini_hcmd hcmd; -}; - -struct iwl_buf_alloc_frag { - __le64 addr; - __le32 size; -} __attribute__((packed)); - -struct iwl_buf_alloc_cmd { - __le32 alloc_id; - __le32 buf_location; - __le32 num_frags; - struct iwl_buf_alloc_frag frags[16]; -}; - -struct iwl_dram_info { - __le32 first_word; - __le32 second_word; - struct iwl_buf_alloc_cmd dram_frags[4]; -}; - -struct iwl_fw_ini_region_dev_addr { - __le32 size; - __le32 offset; -}; - -struct iwl_fw_ini_region_dev_addr_range { - __le32 offset; -}; - -struct iwl_fw_ini_region_fifos { - __le32 fid[2]; - __le32 hdr_only; - __le32 offset; -}; - -struct iwl_fw_ini_region_err_table { - __le32 version; - __le32 base_addr; - __le32 size; - __le32 offset; -}; - -struct iwl_fw_ini_region_internal_buffer { - __le32 alloc_id; - __le32 base_addr; - __le32 size; -}; - -struct iwl_fw_ini_region_special_device_memory { - __le16 type; - __le16 version; - __le32 base_addr; - __le32 size; - __le32 offset; -}; - -struct iwl_fw_ini_region_tlv { - struct iwl_fw_ini_header hdr; - __le32 id; - u8 type; - u8 sub_type; - u8 sub_type_ver; - u8 reserved; - u8 name[32]; - union { - struct iwl_fw_ini_region_dev_addr dev_addr; - struct iwl_fw_ini_region_dev_addr_range dev_addr_range; - struct iwl_fw_ini_region_fifos fifos; - struct iwl_fw_ini_region_err_table err_table; - struct iwl_fw_ini_region_internal_buffer internal_buffer; - struct iwl_fw_ini_region_special_device_memory special_mem; - __le32 dram_alloc_id; - __le32 tlv_mask; - }; - __le32 addrs[0]; -}; - -struct iwl_dbgc1_info { - __le32 first_word; - __le32 dbgc1_add_lsb; - __le32 dbgc1_add_msb; - __le32 dbgc1_size; -}; - -struct iwl_fw_ini_addr_val { - __le32 address; - __le32 value; -}; - -struct iwl_fw_ini_conf_set_tlv { - struct iwl_fw_ini_header hdr; - __le32 time_point; - __le32 set_type; - __le32 addr_offset; - struct iwl_fw_ini_addr_val addr_val[0]; -}; - -struct iwl_fw_ini_debug_info_tlv { - struct iwl_fw_ini_header hdr; - __le32 image_type; - u8 debug_cfg_name[64]; -}; - -struct rtw_stas_entry { - struct list_head list; - struct ieee80211_sta *sta; -}; - -struct rtw_vifs_entry { - struct list_head list; - struct ieee80211_vif *vif; -}; - -struct rtw_backup_info { - u8 len; - u32 reg; - u32 val; -}; - -struct rtw_iter_stas_data { - struct rtw_dev *rtwdev; - struct list_head list; -}; - -struct rtw_iter_vifs_data { - struct rtw_dev *rtwdev; - struct list_head list; -}; - -enum xhci_ring_type { - TYPE_CTRL = 0, - TYPE_ISOC = 1, - TYPE_BULK = 2, - TYPE_INTR = 3, - TYPE_STREAM = 4, - TYPE_COMMAND = 5, - TYPE_EVENT = 6, -}; - -enum xhci_cancelled_td_status { - TD_DIRTY = 0, - TD_HALTED = 1, - TD_CLEARING_CACHE = 2, - TD_CLEARED = 3, -}; - -struct xhci_input_control_ctx { - __le32 drop_flags; - __le32 add_flags; - __le32 rsvd2[6]; -}; - -struct xhci_slot_ctx { - __le32 dev_info; - __le32 dev_info2; - __le32 tt_info; - __le32 dev_state; - __le32 reserved[4]; -}; - -struct xhci_ep_ctx { - __le32 ep_info; - __le32 ep_info2; - __le64 deq; - __le32 tx_info; - __le32 reserved[3]; -}; - -struct xhci_interval_bw { - unsigned int num_packets; - struct list_head endpoints; - unsigned int overhead[3]; -}; - -struct xhci_interval_bw_table { - unsigned int interval0_esit_payload; - struct xhci_interval_bw interval_bw[16]; - unsigned int bw_used; - unsigned int ss_bw_in; - unsigned int ss_bw_out; -}; - -struct xhci_tt_bw_info { - struct list_head tt_list; - int slot_id; - int ttport; - struct xhci_interval_bw_table bw_table; - int active_eps; -}; - -struct s3_save { - u32 command; - u32 dev_nt; - u64 dcbaa_ptr; - u32 config_reg; -}; - -struct xhci_bus_state { - unsigned long bus_suspended; - unsigned long next_statechange; - u32 port_c_suspend; - u32 suspended_ports; - u32 port_remote_wakeup; - unsigned long resuming_ports; -}; - -struct xhci_port; - -struct xhci_hub { - struct xhci_port **ports; - unsigned int num_ports; - struct usb_hcd *hcd; - struct xhci_bus_state bus_state; - u8 maj_rev; - u8 min_rev; -}; - -struct xhci_cap_regs; - -struct xhci_op_regs; - -struct xhci_run_regs; - -struct xhci_doorbell_array; - -struct xhci_device_context_array; - -struct xhci_interrupter; - -struct xhci_ring; - -struct xhci_command; - -struct xhci_scratchpad; - -struct xhci_virt_device; - -struct xhci_root_port_bw_info; - -struct xhci_port_cap; - -struct xhci_hcd { - struct usb_hcd *main_hcd; - struct usb_hcd *shared_hcd; - struct xhci_cap_regs *cap_regs; - struct xhci_op_regs *op_regs; - struct xhci_run_regs *run_regs; - struct xhci_doorbell_array *dba; - __u32 hcs_params1; - __u32 hcs_params2; - __u32 hcs_params3; - __u32 hcc_params; - __u32 hcc_params2; - spinlock_t lock; - u8 sbrn; - u16 hci_version; - u8 max_slots; - u16 max_interrupters; - u8 max_ports; - u8 isoc_threshold; - u32 imod_interval; - int event_ring_max; - int page_size; - int page_shift; - int nvecs; - struct clk *clk; - struct clk *reg_clk; - struct reset_control *reset; - struct xhci_device_context_array *dcbaa; - struct xhci_interrupter **interrupters; - struct xhci_ring *cmd_ring; - unsigned int cmd_ring_state; - struct list_head cmd_list; - unsigned int cmd_ring_reserved_trbs; - struct delayed_work cmd_timer; - struct completion cmd_ring_stop_completion; - struct xhci_command *current_cmd; - struct xhci_scratchpad *scratchpad; - struct mutex mutex; - struct xhci_virt_device *devs[256]; - struct xhci_root_port_bw_info *rh_bw; - struct dma_pool *device_pool; - struct dma_pool *segment_pool; - struct dma_pool *small_streams_pool; - struct dma_pool *medium_streams_pool; - unsigned int xhc_state; - unsigned long run_graceperiod; - struct s3_save s3; - unsigned long long quirks; - unsigned int num_active_eps; - unsigned int limit_active_eps; - struct xhci_port *hw_ports; - struct xhci_hub usb2_rhub; - struct xhci_hub usb3_rhub; - unsigned int hw_lpm_support: 1; - unsigned int broken_suspend: 1; - unsigned int allow_single_roothub: 1; - u32 *ext_caps; - unsigned int num_ext_caps; - struct xhci_port_cap *port_caps; - unsigned int num_port_caps; - struct timer_list comp_mode_recovery_timer; - u32 port_status_u0; - u16 test_mode; - struct dentry *debugfs_root; - struct dentry *debugfs_slots; - struct list_head regset_list; - void *dbc; - unsigned long priv[0]; -}; - -struct xhci_cap_regs { - __le32 hc_capbase; - __le32 hcs_params1; - __le32 hcs_params2; - __le32 hcs_params3; - __le32 hcc_params; - __le32 db_off; - __le32 run_regs_off; - __le32 hcc_params2; -}; - -struct xhci_op_regs { - __le32 command; - __le32 status; - __le32 page_size; - __le32 reserved1; - __le32 reserved2; - __le32 dev_notification; - __le64 cmd_ring; - __le32 reserved3[4]; - __le64 dcbaa_ptr; - __le32 config_reg; - __le32 reserved4[241]; - __le32 port_status_base; - __le32 port_power_base; - __le32 port_link_base; - __le32 reserved5; - __le32 reserved6[1016]; -}; - -struct xhci_intr_reg { - __le32 irq_pending; - __le32 irq_control; - __le32 erst_size; - __le32 rsvd; - __le64 erst_base; - __le64 erst_dequeue; -}; - -struct xhci_run_regs { - __le32 microframe_index; - __le32 rsvd[7]; - struct xhci_intr_reg ir_set[128]; -}; - -struct xhci_doorbell_array { - __le32 doorbell[256]; -}; - -struct xhci_device_context_array { - __le64 dev_context_ptrs[256]; - dma_addr_t dma; -}; - -struct xhci_erst_entry; - -struct xhci_erst { - struct xhci_erst_entry *entries; - unsigned int num_entries; - dma_addr_t erst_dma_addr; - unsigned int erst_size; -}; - -struct xhci_interrupter { - struct xhci_ring *event_ring; - struct xhci_erst erst; - struct xhci_intr_reg *ir_set; - unsigned int intr_num; - bool ip_autoclear; - u32 isoc_bei_interval; - u32 s3_irq_pending; - u32 s3_irq_control; - u32 s3_erst_size; - u64 s3_erst_base; - u64 s3_erst_dequeue; -}; - -struct xhci_segment; - -union xhci_trb; - -struct xhci_ring { - struct xhci_segment *first_seg; - struct xhci_segment *last_seg; - union xhci_trb *enqueue; - struct xhci_segment *enq_seg; - union xhci_trb *dequeue; - struct xhci_segment *deq_seg; - struct list_head td_list; - u32 cycle_state; - unsigned int stream_id; - unsigned int num_segs; - unsigned int num_trbs_free; - unsigned int bounce_buf_len; - enum xhci_ring_type type; - bool last_td_was_short; - struct xarray *trb_address_map; -}; - -struct xhci_segment { - union xhci_trb *trbs; - struct xhci_segment *next; - unsigned int num; - dma_addr_t dma; - dma_addr_t bounce_dma; - void *bounce_buf; - unsigned int bounce_offs; - unsigned int bounce_len; -}; - -struct xhci_link_trb { - __le64 segment_ptr; - __le32 intr_target; - __le32 control; -}; - -struct xhci_transfer_event { - __le64 buffer; - __le32 transfer_len; - __le32 flags; -}; - -struct xhci_event_cmd { - __le64 cmd_trb; - __le32 status; - __le32 flags; -}; - -struct xhci_generic_trb { - __le32 field[4]; -}; - -union xhci_trb { - struct xhci_link_trb link; - struct xhci_transfer_event trans_event; - struct xhci_event_cmd event_cmd; - struct xhci_generic_trb generic; -}; - -struct xhci_erst_entry { - __le64 seg_addr; - __le32 seg_size; - __le32 rsvd; -}; - -struct xhci_container_ctx; - -struct xhci_command { - struct xhci_container_ctx *in_ctx; - u32 status; - int slot_id; - struct completion *completion; - union xhci_trb *command_trb; - struct list_head cmd_list; - unsigned int timeout_ms; -}; - -struct xhci_container_ctx { - unsigned int type; - int size; - u8 *bytes; - dma_addr_t dma; -}; - -struct xhci_scratchpad { - u64 *sp_array; - dma_addr_t sp_dma; - void **sp_buffers; -}; - -struct xhci_bw_info { - unsigned int ep_interval; - unsigned int mult; - unsigned int num_packets; - unsigned int max_packet_size; - unsigned int max_esit_payload; - unsigned int type; -}; - -struct xhci_stream_info; - -struct xhci_virt_ep { - struct xhci_virt_device *vdev; - unsigned int ep_index; - struct xhci_ring *ring; - struct xhci_stream_info *stream_info; - struct xhci_ring *new_ring; - unsigned int err_count; - unsigned int ep_state; - struct list_head cancelled_td_list; - struct xhci_hcd *xhci; - struct xhci_segment *queued_deq_seg; - union xhci_trb *queued_deq_ptr; - bool skip; - struct xhci_bw_info bw_info; - struct list_head bw_endpoint_list; - int next_frame_id; - bool use_extended_tbc; -}; - -struct xhci_virt_device { - int slot_id; - struct usb_device *udev; - struct xhci_container_ctx *out_ctx; - struct xhci_container_ctx *in_ctx; - struct xhci_virt_ep eps[31]; - struct xhci_port *rhub_port; - struct xhci_interval_bw_table *bw_table; - struct xhci_tt_bw_info *tt_info; - unsigned long flags; - u16 current_mel; - void *debugfs_private; -}; - -struct xhci_stream_ctx; - -struct xhci_stream_info { - struct xhci_ring **stream_rings; - unsigned int num_streams; - struct xhci_stream_ctx *stream_ctx_array; - unsigned int num_stream_ctxs; - dma_addr_t ctx_array_dma; - struct xarray trb_address_map; - struct xhci_command *free_streams_command; -}; - -struct xhci_stream_ctx { - __le64 stream_ring; - __le32 reserved[2]; -}; - -struct xhci_port { - __le32 *addr; - int hw_portnum; - int hcd_portnum; - struct xhci_hub *rhub; - struct xhci_port_cap *port_cap; - unsigned int lpm_incapable: 1; - unsigned long resume_timestamp; - bool rexit_active; - int slot_id; - struct completion rexit_done; - struct completion u3exit_done; -}; - -struct xhci_port_cap { - u32 *psi; - u8 psi_count; - u8 psi_uid_count; - u8 maj_rev; - u8 min_rev; -}; - -struct xhci_root_port_bw_info { - struct list_head tts; - unsigned int num_active_tts; - struct xhci_interval_bw_table bw_table; -}; - -struct va_format { - const char *fmt; - va_list *va; -}; - -struct xhci_td { - struct list_head td_list; - struct list_head cancelled_td_list; - int status; - enum xhci_cancelled_td_status cancel_status; - struct urb *urb; - struct xhci_segment *start_seg; - union xhci_trb *first_trb; - union xhci_trb *last_trb; - struct xhci_segment *last_trb_seg; - struct xhci_segment *bounce_seg; - bool urb_length_set; - bool error_mid_td; - unsigned int num_trbs; -}; - -struct urb_priv { - int num_tds; - int num_tds_done; - struct xhci_td td[0]; -}; - -struct md_cluster_operations { - int (*join)(struct mddev *, int); - int (*leave)(struct mddev *); - int (*slot_number)(struct mddev *); - int (*resync_info_update)(struct mddev *, sector_t, sector_t); - void (*resync_info_get)(struct mddev *, sector_t *, sector_t *); - int (*metadata_update_start)(struct mddev *); - int (*metadata_update_finish)(struct mddev *); - void (*metadata_update_cancel)(struct mddev *); - int (*resync_start)(struct mddev *); - int (*resync_finish)(struct mddev *); - int (*area_resyncing)(struct mddev *, int, sector_t, sector_t); - int (*add_new_disk)(struct mddev *, struct md_rdev *); - void (*add_new_disk_cancel)(struct mddev *); - int (*new_disk_ack)(struct mddev *, bool); - int (*remove_disk)(struct mddev *, struct md_rdev *); - void (*load_bitmaps)(struct mddev *, int); - int (*gather_bitmaps)(struct md_rdev *); - int (*resize_bitmaps)(struct mddev *, sector_t, sector_t); - int (*lock_all_bitmaps)(struct mddev *); - void (*unlock_all_bitmaps)(struct mddev *); - void (*update_size)(struct mddev *, sector_t); -}; - -struct bitmap_page; - -struct bitmap_counts { - spinlock_t lock; - struct bitmap_page *bp; - unsigned long pages; - unsigned long missing_pages; - unsigned long chunkshift; - unsigned long chunks; -}; - -struct bitmap_storage { - struct file *file; - struct page *sb_page; - unsigned long sb_index; - struct page **filemap; - unsigned long *filemap_attr; - unsigned long file_pages; - unsigned long bytes; -}; - -struct bitmap { - struct bitmap_counts counts; - struct mddev *mddev; - __u64 events_cleared; - int need_sync; - struct bitmap_storage storage; - unsigned long flags; - int allclean; - atomic_t behind_writes; - unsigned long behind_writes_used; - unsigned long daemon_lastrun; - unsigned long last_end_sync; - atomic_t pending_writes; - wait_queue_head_t write_wait; - wait_queue_head_t overflow_wait; - wait_queue_head_t behind_wait; - struct kernfs_node *sysfs_can_clear; - int cluster_slot; -}; - -struct bitmap_page { - char *map; - unsigned int hijacked: 1; - unsigned int pending: 1; - unsigned int count: 30; -}; - -struct md_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct mddev *, char *); - ssize_t (*store)(struct mddev *, const char *, size_t); -}; - -struct rdev_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct md_rdev *, char *); - ssize_t (*store)(struct md_rdev *, const char *, size_t); -}; - -struct super_type { - char *name; - struct module *owner; - int (*load_super)(struct md_rdev *, struct md_rdev *, int); - int (*validate_super)(struct mddev *, struct md_rdev *, struct md_rdev *); - void (*sync_super)(struct mddev *, struct md_rdev *); - unsigned long long (*rdev_size_change)(struct md_rdev *, sector_t); - int (*allow_new_offset)(struct md_rdev *, unsigned long long); -}; - -enum flag_bits { - Faulty = 0, - In_sync = 1, - Bitmap_sync = 2, - WriteMostly = 3, - AutoDetected = 4, - Blocked = 5, - WriteErrorSeen = 6, - FaultRecorded = 7, - BlockedBadBlocks = 8, - WantReplacement = 9, - Replacement = 10, - Candidate = 11, - Journal = 12, - ClusterRemove = 13, - ExternalBbl = 14, - FailFast = 15, - LastDev = 16, - CollisionCheck = 17, - Nonrot = 18, -}; - -enum mddev_sb_flags { - MD_SB_CHANGE_DEVS = 0, - MD_SB_CHANGE_CLEAN = 1, - MD_SB_CHANGE_PENDING = 2, - MD_SB_NEED_REWRITE = 3, -}; - -enum recovery_flags { - MD_RECOVERY_RUNNING = 0, - MD_RECOVERY_SYNC = 1, - MD_RECOVERY_RECOVER = 2, - MD_RECOVERY_INTR = 3, - MD_RECOVERY_DONE = 4, - MD_RECOVERY_NEEDED = 5, - MD_RECOVERY_REQUESTED = 6, - MD_RECOVERY_CHECK = 7, - MD_RECOVERY_RESHAPE = 8, - MD_RECOVERY_FROZEN = 9, - MD_RECOVERY_ERROR = 10, - MD_RECOVERY_WAIT = 11, - MD_RESYNCING_REMOTE = 12, -}; - -enum { - DISK_EVENT_MEDIA_CHANGE = 1, - DISK_EVENT_EJECT_REQUEST = 2, -}; - -enum md_ro_state { - MD_RDWR = 0, - MD_RDONLY = 1, - MD_AUTO_READ = 2, - MD_MAX_STATE = 3, -}; - -enum { - MD_RESYNC_NONE = 0, - MD_RESYNC_YIELDED = 1, - MD_RESYNC_DELAYED = 2, - MD_RESYNC_ACTIVE = 3, -}; - -enum array_state { - clear = 0, - inactive = 1, - suspended = 2, - readonly = 3, - read_auto = 4, - clean = 5, - active = 6, - write_pending = 7, - active_idle = 8, - broken = 9, - bad_word = 10, -}; - -struct detected_devices_node { - struct list_head list; - dev_t dev; -}; - -struct md_io_clone { - struct mddev *mddev; - struct bio *orig_bio; - unsigned long start_time; - struct bio bio_clone; -}; - -struct mdp_superblock_1 { - __le32 magic; - __le32 major_version; - __le32 feature_map; - __le32 pad0; - __u8 set_uuid[16]; - char set_name[32]; - __le64 ctime; - __le32 level; - __le32 layout; - __le64 size; - __le32 chunksize; - __le32 raid_disks; - union { - __le32 bitmap_offset; - struct { - __le16 offset; - __le16 size; - } ppl; - }; - __le32 new_level; - __le64 reshape_position; - __le32 delta_disks; - __le32 new_layout; - __le32 new_chunk; - __le32 new_offset; - __le64 data_offset; - __le64 data_size; - __le64 super_offset; - union { - __le64 recovery_offset; - __le64 journal_tail; - }; - __le32 dev_number; - __le32 cnt_corrected_read; - __u8 device_uuid[16]; - __u8 devflags; - __u8 bblog_shift; - __le16 bblog_size; - __le32 bblog_offset; - __le64 utime; - __le64 events; - __le64 resync_offset; - __le32 sb_csum; - __le32 max_dev; - __u8 pad3[32]; - __le16 dev_roles[0]; -}; - -struct mdu_version_s { - int major; - int minor; - int patchlevel; -}; - -typedef struct mdu_version_s mdu_version_t; - -struct mdu_array_info_s { - int major_version; - int minor_version; - int patch_version; - unsigned int ctime; - int level; - int size; - int nr_disks; - int raid_disks; - int md_minor; - int not_persistent; - unsigned int utime; - int state; - int active_disks; - int working_disks; - int failed_disks; - int spare_disks; - int layout; - int chunk_size; -}; - -typedef struct mdu_array_info_s mdu_array_info_t; - -struct mdu_bitmap_file_s { - char pathname[4096]; -}; - -typedef struct mdu_bitmap_file_s mdu_bitmap_file_t; - -struct mdu_disk_info_s { - int number; - int major; - int minor; - int raid_disk; - int state; -}; - -typedef struct mdu_disk_info_s mdu_disk_info_t; - -struct mdp_device_descriptor_s { - __u32 number; - __u32 major; - __u32 minor; - __u32 raid_disk; - __u32 state; - __u32 reserved[27]; -}; - -typedef struct mdp_device_descriptor_s mdp_disk_t; - -struct mdp_superblock_s { - __u32 md_magic; - __u32 major_version; - __u32 minor_version; - __u32 patch_version; - __u32 gvalid_words; - __u32 set_uuid0; - __u32 ctime; - __u32 level; - __u32 size; - __u32 nr_disks; - __u32 raid_disks; - __u32 md_minor; - __u32 not_persistent; - __u32 set_uuid1; - __u32 set_uuid2; - __u32 set_uuid3; - __u32 gstate_creserved[16]; - __u32 utime; - __u32 state; - __u32 active_disks; - __u32 working_disks; - __u32 failed_disks; - __u32 spare_disks; - __u32 sb_csum; - __u32 events_lo; - __u32 events_hi; - __u32 cp_events_lo; - __u32 cp_events_hi; - __u32 recovery_cp; - __u64 reshape_position; - __u32 new_level; - __u32 delta_disks; - __u32 new_layout; - __u32 new_chunk; - __u32 gstate_sreserved[14]; - __u32 layout; - __u32 chunk_size; - __u32 root_pv; - __u32 root_block; - __u32 pstate_reserved[60]; - mdp_disk_t disks[27]; - __u32 reserved[0]; - mdp_disk_t this_disk; -}; - -typedef struct mdp_superblock_s mdp_super_t; - -struct blk_integrity_profile; - -struct blk_integrity { - const struct blk_integrity_profile *profile; - unsigned char flags; - unsigned char tuple_size; - unsigned char pi_offset; - unsigned char interval_exp; - unsigned char tag_size; -}; - -struct blk_integrity_iter; - -typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *); - -typedef void integrity_prepare_fn(struct request *); - -typedef void integrity_complete_fn(struct request *, unsigned int); - -struct blk_integrity_profile { - integrity_processing_fn *generate_fn; - integrity_processing_fn *verify_fn; - integrity_prepare_fn *prepare_fn; - integrity_complete_fn *complete_fn; - const char *name; -}; - -struct blk_integrity_iter { - void *prot_buf; - void *data_buf; - sector_t seed; - unsigned int data_size; - unsigned short interval; - unsigned char tuple_size; - unsigned char pi_offset; - const char *disk_name; -}; - -struct napi_gro_cb { - union { - struct { - void *frag0; - unsigned int frag0_len; - }; - struct { - struct sk_buff *last; - unsigned long age; - }; - }; - int data_offset; - u16 flush; - u16 flush_id; - u16 count; - u16 proto; - union { - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - }; - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - } zeroed; - }; - __wsum csum; -}; - -enum nft_chain_types { - NFT_CHAIN_T_DEFAULT = 0, - NFT_CHAIN_T_ROUTE = 1, - NFT_CHAIN_T_NAT = 2, - NFT_CHAIN_T_MAX = 3, -}; - -struct nft_chain_type { - const char *name; - enum nft_chain_types type; - int family; - struct module *owner; - unsigned int hook_mask; - nf_hookfn *hooks[6]; - int (*ops_register)(struct net *, const struct nf_hook_ops *); - void (*ops_unregister)(struct net *, const struct nf_hook_ops *); -}; - -enum { - NFT_PKTINFO_L4PROTO = 1, - NFT_PKTINFO_INNER = 2, - NFT_PKTINFO_INNER_FULL = 4, -}; - -struct tsq_tasklet { - struct tasklet_struct tasklet; - struct list_head head; -}; - -enum tsq_flags { - TSQF_THROTTLED = 1, - TSQF_QUEUED = 2, - TCPF_TSQ_DEFERRED = 4, - TCPF_WRITE_TIMER_DEFERRED = 8, - TCPF_DELACK_TIMER_DEFERRED = 16, - TCPF_MTU_REDUCED_DEFERRED = 32, - TCPF_ACK_DEFERRED = 64, -}; - -struct tcp_ao_key; - -struct tcp_md5sig_key; - -struct tcp_key { - union { - struct { - struct tcp_ao_key *ao_key; - char *traffic_key; - u32 sne; - u8 rcv_next; - }; - struct tcp_md5sig_key *md5_key; - }; - enum { - TCP_KEY_NONE = 0, - TCP_KEY_MD5 = 1, - TCP_KEY_AO = 2, - } type; -}; - -union tcp_ao_addr { - struct in_addr a4; - struct in6_addr a6; -}; - -struct tcp_ao_key { - struct hlist_node node; - union tcp_ao_addr addr; - u8 key[80]; - unsigned int tcp_sigpool_id; - unsigned int digest_size; - int l3index; - u8 prefixlen; - u8 family; - u8 keylen; - u8 keyflags; - u8 sndid; - u8 rcvid; - u8 maclen; - struct callback_head rcu; - atomic64_t pkt_good; - atomic64_t pkt_bad; - u8 traffic_keys[0]; -}; - -struct tcp_md5sig_key { - struct hlist_node node; - u8 keylen; - u8 family; - u8 prefixlen; - u8 flags; - union tcp_ao_addr addr; - int l3index; - u8 key[80]; - struct callback_head rcu; -}; - -enum tcp_chrono { - TCP_CHRONO_UNSPEC = 0, - TCP_CHRONO_BUSY = 1, - TCP_CHRONO_RWND_LIMITED = 2, - TCP_CHRONO_SNDBUF_LIMITED = 3, - __TCP_CHRONO_MAX = 4, -}; - -enum { - BPF_SOCK_OPS_RTO_CB_FLAG = 1, - BPF_SOCK_OPS_RETRANS_CB_FLAG = 2, - BPF_SOCK_OPS_STATE_CB_FLAG = 4, - BPF_SOCK_OPS_RTT_CB_FLAG = 8, - BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16, - BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32, - BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64, - BPF_SOCK_OPS_ALL_CB_FLAGS = 127, -}; - -enum { - BPF_SOCK_OPS_VOID = 0, - BPF_SOCK_OPS_TIMEOUT_INIT = 1, - BPF_SOCK_OPS_RWND_INIT = 2, - BPF_SOCK_OPS_TCP_CONNECT_CB = 3, - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 4, - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 5, - BPF_SOCK_OPS_NEEDS_ECN = 6, - BPF_SOCK_OPS_BASE_RTT = 7, - BPF_SOCK_OPS_RTO_CB = 8, - BPF_SOCK_OPS_RETRANS_CB = 9, - BPF_SOCK_OPS_STATE_CB = 10, - BPF_SOCK_OPS_TCP_LISTEN_CB = 11, - BPF_SOCK_OPS_RTT_CB = 12, - BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 13, - BPF_SOCK_OPS_HDR_OPT_LEN_CB = 14, - BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 15, -}; - -enum pkt_hash_types { - PKT_HASH_TYPE_NONE = 0, - PKT_HASH_TYPE_L2 = 1, - PKT_HASH_TYPE_L3 = 2, - PKT_HASH_TYPE_L4 = 3, -}; - -enum tsq_enum { - TSQ_THROTTLED = 0, - TSQ_QUEUED = 1, - TCP_TSQ_DEFERRED = 2, - TCP_WRITE_TIMER_DEFERRED = 3, - TCP_DELACK_TIMER_DEFERRED = 4, - TCP_MTU_REDUCED_DEFERRED = 5, - TCP_ACK_DEFERRED = 6, -}; - -enum { - SKBFL_ZEROCOPY_ENABLE = 1, - SKBFL_SHARED_FRAG = 2, - SKBFL_PURE_ZEROCOPY = 4, - SKBFL_DONT_ORPHAN = 8, - SKBFL_MANAGED_FRAG_REFS = 16, -}; - -enum cgroup_bpf_attach_type { - CGROUP_BPF_ATTACH_TYPE_INVALID = -1, - CGROUP_INET_INGRESS = 0, - CGROUP_INET_EGRESS = 1, - CGROUP_INET_SOCK_CREATE = 2, - CGROUP_SOCK_OPS = 3, - CGROUP_DEVICE = 4, - CGROUP_INET4_BIND = 5, - CGROUP_INET6_BIND = 6, - CGROUP_INET4_CONNECT = 7, - CGROUP_INET6_CONNECT = 8, - CGROUP_UNIX_CONNECT = 9, - CGROUP_INET4_POST_BIND = 10, - CGROUP_INET6_POST_BIND = 11, - CGROUP_UDP4_SENDMSG = 12, - CGROUP_UDP6_SENDMSG = 13, - CGROUP_UNIX_SENDMSG = 14, - CGROUP_SYSCTL = 15, - CGROUP_UDP4_RECVMSG = 16, - CGROUP_UDP6_RECVMSG = 17, - CGROUP_UNIX_RECVMSG = 18, - CGROUP_GETSOCKOPT = 19, - CGROUP_SETSOCKOPT = 20, - CGROUP_INET4_GETPEERNAME = 21, - CGROUP_INET6_GETPEERNAME = 22, - CGROUP_UNIX_GETPEERNAME = 23, - CGROUP_INET4_GETSOCKNAME = 24, - CGROUP_INET6_GETSOCKNAME = 25, - CGROUP_UNIX_GETSOCKNAME = 26, - CGROUP_INET_SOCK_RELEASE = 27, - CGROUP_LSM_START = 28, - CGROUP_LSM_END = 27, - MAX_CGROUP_BPF_ATTACH_TYPE = 28, -}; - -enum { - BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, - BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, -}; - -enum { - TCP_NO_QUEUE = 0, - TCP_RECV_QUEUE = 1, - TCP_SEND_QUEUE = 2, - TCP_QUEUES_NR = 3, -}; - -enum { - SKB_FCLONE_UNAVAILABLE = 0, - SKB_FCLONE_ORIG = 1, - SKB_FCLONE_CLONE = 2, -}; - -enum sk_pacing { - SK_PACING_NONE = 0, - SK_PACING_NEEDED = 1, - SK_PACING_FQ = 2, -}; - -struct sk_buff_fclones { - struct sk_buff skb1; - struct sk_buff skb2; - refcount_t fclone_ref; -}; - -struct mptcp_out_options {}; - -struct tcp_out_options { - u16 options; - u16 mss; - u8 ws; - u8 num_sack_blocks; - u8 hash_size; - u8 bpf_opt_len; - __u8 *hash_location; - __u32 tsval; - __u32 tsecr; - struct tcp_fastopen_cookie *fastopen_cookie; - struct mptcp_out_options mptcp; -}; - -struct bpf_sock_ops_kern { - struct sock *sk; - union { - u32 args[4]; - u32 reply; - u32 replylong[4]; - }; - struct sk_buff *syn_skb; - struct sk_buff *skb; - void *skb_data_end; - u8 op; - u8 is_fullsock; - u8 remaining_opt_len; - u64 temp; -}; - -enum { - INET_FRAG_FIRST_IN = 1, - INET_FRAG_LAST_IN = 2, - INET_FRAG_COMPLETE = 4, - INET_FRAG_HASH_DEAD = 8, - INET_FRAG_DROP = 16, -}; - -struct frag_queue { - struct inet_frag_queue q; - int iif; - __u16 nhoffset; - u8 ecn; -}; - -struct nft_ct_frag6_pernet { - struct ctl_table_header *nf_frag_frags_hdr; - struct fqdir *fqdir; -}; - -enum mac80211_drop_reason { - RX_CONTINUE = 1, - RX_QUEUED = 0, - RX_DROP_MONITOR = 131072, - RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073, - RX_DROP_M_BAD_BCN_KEYIDX = 131074, - RX_DROP_M_BAD_MGMT_KEYIDX = 131075, - RX_DROP_U_MIC_FAIL = 65537, - RX_DROP_U_REPLAY = 65538, - RX_DROP_U_BAD_MMIE = 65539, - RX_DROP_U_DUP = 65540, - RX_DROP_U_SPURIOUS = 65541, - RX_DROP_U_DECRYPT_FAIL = 65542, - RX_DROP_U_NO_KEY_ID = 65543, - RX_DROP_U_BAD_CIPHER = 65544, - RX_DROP_U_OOM = 65545, - RX_DROP_U_NONSEQ_PN = 65546, - RX_DROP_U_BAD_KEY_COLOR = 65547, - RX_DROP_U_BAD_4ADDR = 65548, - RX_DROP_U_BAD_AMSDU = 65549, - RX_DROP_U_BAD_AMSDU_CIPHER = 65550, - RX_DROP_U_INVALID_8023 = 65551, - RX_DROP_U_RUNT_ACTION = 65552, - RX_DROP_U_UNPROT_ACTION = 65553, - RX_DROP_U_UNPROT_DUAL = 65554, - RX_DROP_U_UNPROT_UCAST_MGMT = 65555, - RX_DROP_U_UNPROT_MCAST_MGMT = 65556, - RX_DROP_U_UNPROT_BEACON = 65557, - RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558, - RX_DROP_U_UNPROT_ROBUST_ACTION = 65559, - RX_DROP_U_ACTION_UNKNOWN_SRC = 65560, - RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561, - RX_DROP_U_EXPECT_DEFRAG_PROT = 65562, - RX_DROP_U_WEP_DEC_FAIL = 65563, - RX_DROP_U_NO_IV = 65564, - RX_DROP_U_NO_ICV = 65565, - RX_DROP_U_AP_RX_GROUPCAST = 65566, - RX_DROP_U_SHORT_MMIC = 65567, - RX_DROP_U_MMIC_FAIL = 65568, - RX_DROP_U_SHORT_TKIP = 65569, - RX_DROP_U_TKIP_FAIL = 65570, - RX_DROP_U_SHORT_CCMP = 65571, - RX_DROP_U_SHORT_CCMP_MIC = 65572, - RX_DROP_U_SHORT_GCMP = 65573, - RX_DROP_U_SHORT_GCMP_MIC = 65574, - RX_DROP_U_SHORT_CMAC = 65575, - RX_DROP_U_SHORT_CMAC256 = 65576, - RX_DROP_U_SHORT_GMAC = 65577, - RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578, - RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579, - RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580, - RX_DROP_U_NOT_PORT_CONTROL = 65581, -}; - -typedef unsigned int ieee80211_tx_result; - -struct ieee80211_tx_data { - struct sk_buff *skb; - struct sk_buff_head skbs; - struct ieee80211_local *local; - struct ieee80211_sub_if_data *sdata; - struct sta_info *sta; - struct ieee80211_key *key; - struct ieee80211_tx_rate rate; - unsigned int flags; -}; - -typedef unsigned int ieee80211_rx_result; - -struct ieee80211_rx_data { - struct list_head *list; - struct sk_buff *skb; - struct ieee80211_local *local; - struct ieee80211_sub_if_data *sdata; - struct ieee80211_link_data *link; - struct sta_info *sta; - struct link_sta_info *link_sta; - struct ieee80211_key *key; - unsigned int flags; - int seqno_idx; - int security_idx; - int link_id; - union { - struct { - u32 iv32; - u16 iv16; - } tkip; - struct { - u8 pn[6]; - } ccm_gcm; - }; -}; - -struct idt_bits { - u16 ist: 3; - u16 zero: 5; - u16 type: 5; - u16 dpl: 2; - u16 p: 1; -}; - -struct gate_struct { - u16 offset_low; - u16 segment; - struct idt_bits bits; - u16 offset_middle; - u32 offset_high; - u32 reserved; -}; - -typedef struct gate_struct gate_desc; - -struct idt_data { - unsigned int vector; - unsigned int segment; - struct idt_bits bits; - const void *addr; -}; - -enum { - GATE_INTERRUPT = 14, - GATE_TRAP = 15, - GATE_CALL = 12, - GATE_TASK = 5, -}; - -struct pcpu_hot { - union { - struct { - struct task_struct *current_task; - int preempt_count; - int cpu_number; - unsigned long top_of_stack; - void *hardirq_stack_ptr; - u16 softirq_pending; - bool hardirq_stack_inuse; - }; - u8 pad[64]; - }; -}; - -struct fixed_percpu_data { - char gs_base[40]; - unsigned long stack_canary; -}; - -struct cpuid_dependent_feature { - u32 feature; - u32 level; -}; - -struct ppin_info { - int feature; - int msr_ppin_ctl; - int msr_ppin; -}; - -struct async_domain { - struct list_head pending; - unsigned int registered: 1; -}; - -enum wq_consts { - WQ_MAX_ACTIVE = 512, - WQ_UNBOUND_MAX_ACTIVE = 512, - WQ_DFL_ACTIVE = 256, - WQ_DFL_MIN_ACTIVE = 8, -}; - -typedef void (*async_func_t)(void *, async_cookie_t); - -struct async_entry { - struct list_head domain_list; - struct list_head global_list; - struct work_struct work; - async_cookie_t cookie; - async_func_t func; - void *data; - struct async_domain *domain; -}; - -struct pool_workqueue; - -struct worker_pool; - -struct worker { - union { - struct list_head entry; - struct hlist_node hentry; - }; - struct work_struct *current_work; - work_func_t current_func; - struct pool_workqueue *current_pwq; - u64 current_at; - unsigned int current_color; - int sleeping; - work_func_t last_func; - struct list_head scheduled; - struct task_struct *task; - struct worker_pool *pool; - struct list_head node; - unsigned long last_active; - unsigned int flags; - int id; - char desc[24]; - struct workqueue_struct *rescue_wq; -}; - -struct platform_hibernation_ops { - int (*begin)(pm_message_t); - void (*end)(); - int (*pre_snapshot)(); - void (*finish)(); - int (*prepare)(); - int (*enter)(); - void (*leave)(); - int (*pre_restore)(); - void (*restore_cleanup)(); - void (*recover)(); -}; - -enum { - HIBERNATION_INVALID = 0, - HIBERNATION_PLATFORM = 1, - HIBERNATION_SHUTDOWN = 2, - HIBERNATION_REBOOT = 3, - HIBERNATION_SUSPEND = 4, - HIBERNATION_TEST_RESUME = 5, - __HIBERNATION_AFTER_LAST = 6, -}; - -enum { - TEST_NONE = 0, - TEST_CORE = 1, - TEST_CPUS = 2, - TEST_PLATFORM = 3, - TEST_DEVICES = 4, - TEST_FREEZER = 5, - __TEST_AFTER_LAST = 6, -}; - -enum perf_event_sample_format { - PERF_SAMPLE_IP = 1, - PERF_SAMPLE_TID = 2, - PERF_SAMPLE_TIME = 4, - PERF_SAMPLE_ADDR = 8, - PERF_SAMPLE_READ = 16, - PERF_SAMPLE_CALLCHAIN = 32, - PERF_SAMPLE_ID = 64, - PERF_SAMPLE_CPU = 128, - PERF_SAMPLE_PERIOD = 256, - PERF_SAMPLE_STREAM_ID = 512, - PERF_SAMPLE_RAW = 1024, - PERF_SAMPLE_BRANCH_STACK = 2048, - PERF_SAMPLE_REGS_USER = 4096, - PERF_SAMPLE_STACK_USER = 8192, - PERF_SAMPLE_WEIGHT = 16384, - PERF_SAMPLE_DATA_SRC = 32768, - PERF_SAMPLE_IDENTIFIER = 65536, - PERF_SAMPLE_TRANSACTION = 131072, - PERF_SAMPLE_REGS_INTR = 262144, - PERF_SAMPLE_PHYS_ADDR = 524288, - PERF_SAMPLE_AUX = 1048576, - PERF_SAMPLE_CGROUP = 2097152, - PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, - PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, - PERF_SAMPLE_WEIGHT_STRUCT = 16777216, - PERF_SAMPLE_MAX = 33554432, -}; - -enum trace_type { - __TRACE_FIRST_TYPE = 0, - TRACE_FN = 1, - TRACE_CTX = 2, - TRACE_WAKE = 3, - TRACE_STACK = 4, - TRACE_PRINT = 5, - TRACE_BPRINT = 6, - TRACE_MMIO_RW = 7, - TRACE_MMIO_MAP = 8, - TRACE_BRANCH = 9, - TRACE_GRAPH_RET = 10, - TRACE_GRAPH_ENT = 11, - TRACE_USER_STACK = 12, - TRACE_BLK = 13, - TRACE_BPUTS = 14, - TRACE_HWLAT = 15, - TRACE_OSNOISE = 16, - TRACE_TIMERLAT = 17, - TRACE_RAW_DATA = 18, - TRACE_FUNC_REPEATS = 19, - __TRACE_LAST_TYPE = 20, -}; - -typedef unsigned long perf_trace_t[1024]; - -struct ftrace_entry { - struct trace_entry ent; - unsigned long ip; - unsigned long parent_ip; -}; - -struct bpf_prog_offload_ops; - -struct bpf_offload_dev { - const struct bpf_prog_offload_ops *ops; - struct list_head netdevs; - void *priv; -}; - -struct bpf_prog_offload_ops { - int (*insn_hook)(struct bpf_verifier_env *, int, int); - int (*finalize)(struct bpf_verifier_env *); - int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *); - int (*remove_insns)(struct bpf_verifier_env *, u32, u32); - int (*prepare)(struct bpf_prog *); - int (*translate)(struct bpf_prog *); - void (*destroy)(struct bpf_prog *); -}; - -enum xdp_rx_metadata { - XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, - XDP_METADATA_KFUNC_RX_HASH = 1, - XDP_METADATA_KFUNC_RX_VLAN_TAG = 2, - MAX_XDP_METADATA_KFUNC = 3, -}; - -struct bpf_offload_netdev { - struct rhash_head l; - struct net_device *netdev; - struct bpf_offload_dev *offdev; - struct list_head progs; - struct list_head maps; - struct list_head offdev_netdevs; -}; - -typedef struct ns_common *ns_get_path_helper_t(void *); - -struct ns_get_path_bpf_prog_args { - struct bpf_prog *prog; - struct bpf_prog_info *info; -}; - -struct ns_get_path_bpf_map_args { - struct bpf_offloaded_map *offmap; - struct bpf_map_info *info; -}; - -struct files_stat_struct { - unsigned long nr_files; - unsigned long nr_free_files; - unsigned long max_files; -}; - -struct backing_file { - struct file file; - struct path user_path; -}; - -typedef void (*task_work_func_t)(struct callback_head *); - -struct stashed_operations { - void (*put_data)(void *); - int (*init_inode)(struct inode *, void *); -}; - -typedef struct { - void *lock; -} class_rcu_t; - -typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); - -struct debugfs_fsdata { - const struct file_operations *real_fops; - union { - debugfs_automount_t automount; - struct { - refcount_t active_users; - struct completion active_users_drained; - struct mutex cancellations_mtx; - struct list_head cancellations; - }; - }; -}; - -struct debugfs_reg32 { - char *name; - unsigned long offset; -}; - -struct debugfs_cancellation { - struct list_head list; - void (*cancel)(struct dentry *, void *); - void *cancel_data; -}; - -struct debugfs_blob_wrapper { - void *data; - unsigned long size; -}; - -struct debugfs_u32_array { - u32 *array; - u32 n_elements; -}; - -struct debugfs_regset32 { - const struct debugfs_reg32 *regs; - int nregs; - void *base; - struct device *dev; -}; - -struct debugfs_devm_entry { - int (*read)(struct seq_file *, void *); - struct device *dev; -}; - -enum sum_check_bits { - SUM_CHECK_P = 0, - SUM_CHECK_Q = 1, -}; - -typedef union { - unsigned long addr; - struct page *page; - dma_addr_t dma; -} addr_conv_t; - -enum { - IO_WQ_BIT_EXIT = 0, -}; - -enum { - IO_WORKER_F_UP = 1, - IO_WORKER_F_RUNNING = 2, - IO_WORKER_F_FREE = 4, - IO_WORKER_F_BOUND = 8, -}; - -enum { - IO_WQ_WORK_CANCEL = 1, - IO_WQ_WORK_HASHED = 2, - IO_WQ_WORK_UNBOUND = 4, - IO_WQ_WORK_CONCURRENT = 16, - IO_WQ_HASH_SHIFT = 24, -}; - -enum { - IO_ACCT_STALLED_BIT = 0, -}; - -enum io_wq_cancel { - IO_WQ_CANCEL_OK = 0, - IO_WQ_CANCEL_RUNNING = 1, - IO_WQ_CANCEL_NOTFOUND = 2, -}; - -enum { - IO_WQ_ACCT_BOUND = 0, - IO_WQ_ACCT_UNBOUND = 1, - IO_WQ_ACCT_NR = 2, -}; - -typedef struct io_wq_work *free_work_fn(struct io_wq_work *); - -typedef void io_wq_work_fn(struct io_wq_work *); - -struct io_wq_acct { - unsigned int nr_workers; - unsigned int max_workers; - int index; - atomic_t nr_running; - raw_spinlock_t lock; - struct io_wq_work_list work_list; - unsigned long flags; -}; - -struct io_wq { - unsigned long state; - free_work_fn *free_work; - io_wq_work_fn *do_work; - struct io_wq_hash *hash; - atomic_t worker_refs; - struct completion worker_done; - struct hlist_node cpuhp_node; - struct task_struct *task; - struct io_wq_acct acct[2]; - raw_spinlock_t lock; - struct hlist_nulls_head free_list; - struct list_head all_list; - struct wait_queue_entry wait; - struct io_wq_work *hash_tail[64]; - cpumask_var_t cpu_mask; -}; - -struct io_worker { - refcount_t ref; - unsigned int flags; - struct hlist_nulls_node nulls_node; - struct list_head all_list; - struct task_struct *task; - struct io_wq *wq; - struct io_wq_work *cur_work; - struct io_wq_work *next_work; - raw_spinlock_t lock; - struct completion ref_done; - unsigned long create_state; - struct callback_head create_work; - int create_index; - union { - struct callback_head rcu; - struct work_struct work; - }; -}; - -typedef bool work_cancel_fn(struct io_wq_work *, void *); - -struct io_cb_cancel_data { - work_cancel_fn *fn; - void *data; - int nr_running; - int nr_pending; - bool cancel_all; -}; - -struct online_data { - unsigned int cpu; - bool online; -}; - -struct io_wq_data { - struct io_wq_hash *hash; - struct task_struct *task; - io_wq_work_fn *do_work; - free_work_fn *free_work; -}; - -enum { - FB_BLANK_UNBLANK = 0, - FB_BLANK_NORMAL = 1, - FB_BLANK_VSYNC_SUSPEND = 2, - FB_BLANK_HSYNC_SUSPEND = 3, - FB_BLANK_POWERDOWN = 4, -}; - -struct fb_cmap_user { - __u32 start; - __u32 len; - __u16 __attribute__((btf_type_tag("user"))) *red; - __u16 __attribute__((btf_type_tag("user"))) *green; - __u16 __attribute__((btf_type_tag("user"))) *blue; - __u16 __attribute__((btf_type_tag("user"))) *transp; -}; - -struct serial_ctrl_device { - struct device dev; - struct ida port_ida; -}; - -struct uart_match { - struct uart_port *port; - struct uart_driver *driver; -}; - -struct e1000_opt_list; - -struct e1000_option { - enum { - enable_option = 0, - range_option = 1, - list_option = 2, - } type; - const char *name; - const char *err; - int def; - union { - struct { - int min; - int max; - } r; - struct { - int nr; - struct e1000_opt_list *p; - } l; - } arg; -}; - -struct e1000_opt_list { - int i; - char *str; -}; - -enum iwl_phy_ops_subcmd_ids { - CMD_DTS_MEASUREMENT_TRIGGER_WIDE = 0, - CTDP_CONFIG_CMD = 3, - TEMP_REPORTING_THRESHOLDS_CMD = 4, - PER_CHAIN_LIMIT_OFFSET_CMD = 5, - PER_PLATFORM_ANT_GAIN_CMD = 7, - CT_KILL_NOTIFICATION = 254, - DTS_MEASUREMENT_NOTIF_WIDE = 255, -}; - -enum iwl_geo_per_chain_offset_operation { - IWL_PER_CHAIN_OFFSET_SET_TABLES = 0, - IWL_PER_CHAIN_OFFSET_GET_CURRENT_TABLE = 1, -}; - -enum iwl_error_recovery_flags { - ERROR_RECOVERY_UPDATE_DB = 1, - ERROR_RECOVERY_END_OF_RECOVERY = 2, -}; - -enum iwl_fw_dbg_trigger { - FW_DBG_TRIGGER_INVALID = 0, - FW_DBG_TRIGGER_USER = 1, - FW_DBG_TRIGGER_FW_ASSERT = 2, - FW_DBG_TRIGGER_MISSED_BEACONS = 3, - FW_DBG_TRIGGER_CHANNEL_SWITCH = 4, - FW_DBG_TRIGGER_FW_NOTIF = 5, - FW_DBG_TRIGGER_MLME = 6, - FW_DBG_TRIGGER_STATS = 7, - FW_DBG_TRIGGER_RSSI = 8, - FW_DBG_TRIGGER_TXQ_TIMERS = 9, - FW_DBG_TRIGGER_TIME_EVENT = 10, - FW_DBG_TRIGGER_BA = 11, - FW_DBG_TRIGGER_TX_LATENCY = 12, - FW_DBG_TRIGGER_TDLS = 13, - FW_DBG_TRIGGER_TX_STATUS = 14, - FW_DBG_TRIGGER_ALIVE_TIMEOUT = 15, - FW_DBG_TRIGGER_DRIVER = 16, - FW_DBG_TRIGGER_MAX = 17, -}; - -enum iwl_mvm_ctdp_cmd_operation { - CTDP_CMD_OPERATION_START = 1, - CTDP_CMD_OPERATION_STOP = 2, - CTDP_CMD_OPERATION_REPORT = 4, -}; - -enum iwl_time_sync_protocol_type { - IWL_TIME_SYNC_PROTOCOL_TM = 1, - IWL_TIME_SYNC_PROTOCOL_FTM = 2, -}; - -enum iwl_extended_cfg_flags { - IWL_INIT_DEBUG_CFG = 0, - IWL_INIT_NVM = 1, - IWL_INIT_PHY = 2, -}; - -enum iwl_regulatory_and_nvm_subcmd_ids { - NVM_ACCESS_COMPLETE = 0, - LARI_CONFIG_CHANGE = 1, - NVM_GET_INFO = 2, - TAS_CONFIG = 3, - SAR_OFFSET_MAPPING_TABLE_CMD = 4, - UATS_TABLE_CMD = 5, - PNVM_INIT_COMPLETE_NTFY = 254, -}; - -enum iwl_fw_phy_cfg { - FW_PHY_CFG_RADIO_TYPE_POS = 0, - FW_PHY_CFG_RADIO_TYPE = 3, - FW_PHY_CFG_RADIO_STEP_POS = 2, - FW_PHY_CFG_RADIO_STEP = 12, - FW_PHY_CFG_RADIO_DASH_POS = 4, - FW_PHY_CFG_RADIO_DASH = 48, - FW_PHY_CFG_TX_CHAIN_POS = 16, - FW_PHY_CFG_TX_CHAIN = 983040, - FW_PHY_CFG_RX_CHAIN_POS = 20, - FW_PHY_CFG_RX_CHAIN = 15728640, - FW_PHY_CFG_CHAIN_SAD_POS = 23, - FW_PHY_CFG_CHAIN_SAD_ENABLED = 8388608, - FW_PHY_CFG_CHAIN_SAD_ANT_A = 16777216, - FW_PHY_CFG_CHAIN_SAD_ANT_B = 33554432, - FW_PHY_CFG_SHARED_CLK = 2147483648, -}; - -enum iwl_dsm_funcs { - DSM_FUNC_QUERY = 0, - DSM_FUNC_DISABLE_SRD = 1, - DSM_FUNC_ENABLE_INDONESIA_5G2 = 2, - DSM_FUNC_ENABLE_6E = 3, - DSM_FUNC_REGULATORY_CONFIG = 4, - DSM_FUNC_11AX_ENABLEMENT = 6, - DSM_FUNC_ENABLE_UNII4_CHAN = 7, - DSM_FUNC_ACTIVATE_CHANNEL = 8, - DSM_FUNC_FORCE_DISABLE_CHANNELS = 9, - DSM_FUNC_ENERGY_DETECTION_THRESHOLD = 10, - DSM_FUNC_RFI_CONFIG = 11, - DSM_FUNC_NUM_FUNCS = 12, -}; - -enum iwl_dsm_values_rfi { - DSM_VALUE_RFI_DLVR_DISABLE = 1, - DSM_VALUE_RFI_DDR_DISABLE = 2, -}; - -struct iwl_tx_ant_cfg_cmd { - __le32 valid; -}; - -union iwl_ppag_table_cmd { - struct { - __le32 flags; - s8 gain[10]; - s8 reserved[2]; - } v1; - struct { - __le32 flags; - s8 gain[22]; - s8 reserved[2]; - } v2; -}; - -struct iwl_rfi_lut_entry { - __le16 freq; - u8 channels[15]; - u8 bands[15]; -}; - -struct iwl_per_chain_offset { - __le16 max_tx_power; - u8 chain_a; - u8 chain_b; -}; - -struct iwl_tas_data { - __le32 block_list_size; - __le32 block_list_array[16]; - u8 override_tas_iec; - u8 enable_tas_iec; - u8 usa_tas_uhb_allowed; -}; - -struct iwl_lmac_debug_addrs { - __le32 error_event_table_ptr; - __le32 log_event_table_ptr; - __le32 cpu_register_ptr; - __le32 dbgm_config_ptr; - __le32 alive_counter_ptr; - __le32 scd_base_ptr; - __le32 st_fwrd_addr; - __le32 st_fwrd_size; -}; - -struct iwl_lmac_alive { - __le32 ucode_major; - __le32 ucode_minor; - u8 ver_subtype; - u8 ver_type; - u8 mac; - u8 opt; - __le32 timestamp; - struct iwl_lmac_debug_addrs dbg_ptrs; -}; - -struct iwl_umac_debug_addrs { - __le32 error_info_addr; - __le32 dbg_print_buff_addr; -}; - -struct iwl_umac_alive { - __le32 umac_major; - __le32 umac_minor; - struct iwl_umac_debug_addrs dbg_ptrs; -}; - -struct iwl_mfu_assert_dump_notif { - __le32 assert_id; - __le32 curr_reset_num; - __le16 index_num; - __le16 parts_num; - __le32 data_size; - __le32 data[0]; -}; - -struct iwl_nvm_access_complete_cmd { - __le32 reserved; -}; - -struct iwl_init_extended_cfg_cmd { - __le32 init_flags; -}; - -struct iwl_mvm_alive_data { - bool valid; - u32 scd_base_addr; -}; - -struct iwl_calib_ctrl { - __le32 flow_trigger; - __le32 event_trigger; -}; - -struct iwl_phy_cfg_cmd_v3 { - __le32 phy_cfg; - struct iwl_calib_ctrl calib_control; - struct iwl_phy_specific_cfg phy_specific_cfg; -}; - -struct iwl_dev_tx_power_cmd_v3 { - __le16 per_chain[10]; -}; - -struct iwl_dev_tx_power_cmd_v4 { - __le16 per_chain[10]; - u8 enable_ack_reduction; - u8 reserved[3]; -}; - -struct iwl_dev_tx_power_cmd_v5 { - __le16 per_chain[10]; - u8 enable_ack_reduction; - u8 per_chain_restriction_changed; - u8 reserved[2]; - __le32 timer_period; -}; - -struct iwl_dev_tx_power_cmd_v6 { - __le16 per_chain[44]; - u8 enable_ack_reduction; - u8 per_chain_restriction_changed; - u8 reserved[2]; - __le32 timer_period; -}; - -struct iwl_dev_tx_power_cmd_v7 { - __le16 per_chain[44]; - u8 enable_ack_reduction; - u8 per_chain_restriction_changed; - u8 reserved[2]; - __le32 timer_period; - __le32 flags; -}; - -struct iwl_dev_tx_power_common { - __le32 set_mode; - __le32 mac_context_id; - __le16 pwr_restriction; - __le16 dev_24; - __le16 dev_52_low; - __le16 dev_52_high; -}; - -struct iwl_dev_tx_power_cmd { - struct iwl_dev_tx_power_common common; - union { - struct iwl_dev_tx_power_cmd_v3 v3; - struct iwl_dev_tx_power_cmd_v4 v4; - struct iwl_dev_tx_power_cmd_v5 v5; - struct iwl_dev_tx_power_cmd_v6 v6; - struct iwl_dev_tx_power_cmd_v7 v7; - }; -}; - -struct iwl_geo_tx_power_profiles_cmd_v1 { - __le32 ops; - struct iwl_per_chain_offset table[6]; -}; - -struct iwl_geo_tx_power_profiles_cmd_v2 { - __le32 ops; - struct iwl_per_chain_offset table[6]; - __le32 table_revision; -}; - -struct iwl_geo_tx_power_profiles_cmd_v3 { - __le32 ops; - struct iwl_per_chain_offset table[9]; - __le32 table_revision; -}; - -struct iwl_geo_tx_power_profiles_cmd_v4 { - __le32 ops; - struct iwl_per_chain_offset table[16]; - __le32 table_revision; -}; - -struct iwl_geo_tx_power_profiles_cmd_v5 { - __le32 ops; - struct iwl_per_chain_offset table[24]; - __le32 table_revision; -}; - -union iwl_geo_tx_power_profiles_cmd { - struct iwl_geo_tx_power_profiles_cmd_v1 v1; - struct iwl_geo_tx_power_profiles_cmd_v2 v2; - struct iwl_geo_tx_power_profiles_cmd_v3 v3; - struct iwl_geo_tx_power_profiles_cmd_v4 v4; - struct iwl_geo_tx_power_profiles_cmd_v5 v5; -}; - -struct iwl_geo_tx_power_profiles_resp { - __le32 profile_idx; -}; - -struct iwl_fw_error_recovery_cmd { - __le32 flags; - __le32 buf_size; -}; - -struct iwl_lari_config_change_cmd_v7 { - __le32 config_bitmap; - __le32 oem_uhb_allow_bitmap; - __le32 oem_11ax_allow_bitmap; - __le32 oem_unii4_allow_bitmap; - __le32 chan_state_active_bitmap; - __le32 force_disable_channels_bitmap; - __le32 edt_bitmap; -}; - -struct iwl_rss_config_cmd { - __le32 flags; - u8 hash_mask; - u8 reserved[3]; - __le32 secret_key[10]; - u8 indirection_table[128]; -}; - -struct iwl_dqa_enable_cmd { - __le32 cmd_queue; -}; - -struct iwl_ltr_config_cmd { - __le32 flags; - __le32 static_long; - __le32 static_short; - __le32 ltr_cfg_values[4]; - __le32 ltr_short_idle_timeout; -}; - -struct iwl_tas_config_cmd_v3 { - __le16 override_tas_iec; - __le16 enable_tas_iec; -}; - -struct iwl_tas_config_cmd_v4 { - u8 override_tas_iec; - u8 enable_tas_iec; - u8 usa_tas_uhb_allowed; - u8 reserved; -}; - -struct iwl_tas_config_cmd_common { - __le32 block_list_size; - __le32 block_list_array[16]; -}; - -struct iwl_tas_config_cmd { - struct iwl_tas_config_cmd_common common; - union { - struct iwl_tas_config_cmd_v3 v3; - struct iwl_tas_config_cmd_v4 v4; - }; -}; - -struct iwl_mfuart_load_notif { - __le32 installed_ver; - __le32 external_ver; - __le32 status; - __le32 duration; - __le32 image_size; -}; - -struct iwl_sku_id { - __le32 data[3]; -}; - -struct iwl_imr_alive_info { - __le64 base_addr; - __le32 size; - __le32 enabled; -}; - -struct iwl_alive_ntf_v6 { - __le16 status; - __le16 flags; - struct iwl_lmac_alive lmac_data[2]; - struct iwl_umac_alive umac_data; - struct iwl_sku_id sku_id; - struct iwl_imr_alive_info imr; -}; - -struct iwl_alive_ntf_v5 { - __le16 status; - __le16 flags; - struct iwl_lmac_alive lmac_data[2]; - struct iwl_umac_alive umac_data; - struct iwl_sku_id sku_id; -}; - -struct iwl_alive_ntf_v4 { - __le16 status; - __le16 flags; - struct iwl_lmac_alive lmac_data[2]; - struct iwl_umac_alive umac_data; -}; - -struct iwl_alive_ntf_v3 { - __le16 status; - __le16 flags; - struct iwl_lmac_alive lmac_data; - struct iwl_umac_alive umac_data; -}; - -enum usb_phy_type { - USB_PHY_TYPE_UNDEFINED = 0, - USB_PHY_TYPE_USB2 = 1, - USB_PHY_TYPE_USB3 = 2, -}; - -enum usb_phy_events { - USB_EVENT_NONE = 0, - USB_EVENT_VBUS = 1, - USB_EVENT_ID = 2, - USB_EVENT_CHARGER = 3, - USB_EVENT_ENUMERATED = 4, -}; - -enum usb_charger_type { - UNKNOWN_TYPE = 0, - SDP_TYPE = 1, - DCP_TYPE = 2, - CDP_TYPE = 3, - ACA_TYPE = 4, -}; - -enum usb_charger_state { - USB_CHARGER_DEFAULT = 0, - USB_CHARGER_PRESENT = 1, - USB_CHARGER_ABSENT = 2, -}; - -enum { - MEMREMAP_WB = 1, - MEMREMAP_WT = 2, - MEMREMAP_WC = 4, - MEMREMAP_ENC = 8, - MEMREMAP_DEC = 16, -}; - -enum usb_led_event { - USB_LED_EVENT_HOST = 0, - USB_LED_EVENT_GADGET = 1, -}; - -struct extcon_dev; - -struct usb_charger_current { - unsigned int sdp_min; - unsigned int sdp_max; - unsigned int dcp_min; - unsigned int dcp_max; - unsigned int cdp_min; - unsigned int cdp_max; - unsigned int aca_min; - unsigned int aca_max; -}; - -struct usb_otg; - -struct usb_phy_io_ops; - -struct usb_phy { - struct device *dev; - const char *label; - unsigned int flags; - enum usb_phy_type type; - enum usb_phy_events last_event; - struct usb_otg *otg; - struct device *io_dev; - struct usb_phy_io_ops *io_ops; - void *io_priv; - struct extcon_dev *edev; - struct extcon_dev *id_edev; - struct notifier_block vbus_nb; - struct notifier_block id_nb; - struct notifier_block type_nb; - enum usb_charger_type chg_type; - enum usb_charger_state chg_state; - struct usb_charger_current chg_cur; - struct work_struct chg_work; - struct atomic_notifier_head notifier; - u16 port_status; - u16 port_change; - struct list_head head; - int (*init)(struct usb_phy *); - void (*shutdown)(struct usb_phy *); - int (*set_vbus)(struct usb_phy *, int); - int (*set_power)(struct usb_phy *, unsigned int); - int (*set_suspend)(struct usb_phy *, int); - int (*set_wakeup)(struct usb_phy *, bool); - int (*notify_connect)(struct usb_phy *, enum usb_device_speed); - int (*notify_disconnect)(struct usb_phy *, enum usb_device_speed); - enum usb_charger_type (*charger_detect)(struct usb_phy *); -}; - -struct usb_gadget; - -struct usb_otg { - u8 default_a; - struct phy *phy; - struct usb_phy *usb_phy; - struct usb_bus *host; - struct usb_gadget *gadget; - enum usb_otg_state state; - int (*set_host)(struct usb_otg *, struct usb_bus *); - int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); - int (*set_vbus)(struct usb_otg *, bool); - int (*start_srp)(struct usb_otg *); - int (*start_hnp)(struct usb_otg *); -}; - -struct usb_phy_io_ops { - int (*read)(struct usb_phy *, u32); - int (*write)(struct usb_phy *, u32, u32); -}; - -typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); - -struct gen_pool { - spinlock_t lock; - struct list_head chunks; - int min_alloc_order; - genpool_algo_t algo; - void *data; - const char *name; -}; - -struct usb_hub_descriptor { - __u8 bDescLength; - __u8 bDescriptorType; - __u8 bNbrPorts; - __le16 wHubCharacteristics; - __u8 bPwrOn2PwrGood; - __u8 bHubContrCurrent; - union { - struct { - __u8 DeviceRemovable[4]; - __u8 PortPwrCtrlMask[4]; - } hs; - struct { - __u8 bHubHdrDecLat; - __le16 wHubDelay; - __le16 DeviceRemovable; - } __attribute__((packed)) ss; - } u; -} __attribute__((packed)); - -struct i2c_adapter; - -union i2c_smbus_data; - -typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *); - -struct rt_mutex { - struct rt_mutex_base rtmutex; - struct lockdep_map dep_map; -}; - -struct i2c_algorithm; - -struct i2c_lock_operations; - -struct i2c_bus_recovery_info; - -struct i2c_adapter_quirks; - -struct i2c_adapter { - struct module *owner; - unsigned int class; - const struct i2c_algorithm *algo; - void *algo_data; - const struct i2c_lock_operations *lock_ops; - struct rt_mutex bus_lock; - struct rt_mutex mux_lock; - int timeout; - int retries; - struct device dev; - unsigned long locked_flags; - int nr; - char name[48]; - struct completion dev_released; - struct mutex userspace_clients_lock; - struct list_head userspace_clients; - struct i2c_bus_recovery_info *bus_recovery_info; - const struct i2c_adapter_quirks *quirks; - struct irq_domain *host_notify_domain; - struct regulator *bus_regulator; - struct dentry *debugfs; -}; - -struct i2c_msg; - -struct i2c_algorithm { - int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int); - int (*master_xfer_atomic)(struct i2c_adapter *, struct i2c_msg *, int); - int (*smbus_xfer)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *); - int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *); - u32 (*functionality)(struct i2c_adapter *); -}; - -struct i2c_msg { - __u16 addr; - __u16 flags; - __u16 len; - __u8 *buf; -}; - -union i2c_smbus_data { - __u8 byte; - __u16 word; - __u8 block[34]; -}; - -struct i2c_lock_operations { - void (*lock_bus)(struct i2c_adapter *, unsigned int); - int (*trylock_bus)(struct i2c_adapter *, unsigned int); - void (*unlock_bus)(struct i2c_adapter *, unsigned int); -}; - -struct pinctrl; - -struct pinctrl_state; - -struct i2c_bus_recovery_info { - int (*recover_bus)(struct i2c_adapter *); - int (*get_scl)(struct i2c_adapter *); - void (*set_scl)(struct i2c_adapter *, int); - int (*get_sda)(struct i2c_adapter *); - void (*set_sda)(struct i2c_adapter *, int); - int (*get_bus_free)(struct i2c_adapter *); - void (*prepare_recovery)(struct i2c_adapter *); - void (*unprepare_recovery)(struct i2c_adapter *); - struct gpio_desc *scl_gpiod; - struct gpio_desc *sda_gpiod; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_default; - struct pinctrl_state *pins_gpio; -}; - -struct i2c_adapter_quirks { - u64 flags; - int max_num_msgs; - u16 max_write_len; - u16 max_read_len; - u16 max_comb_1st_msg_len; - u16 max_comb_2nd_msg_len; -}; - -typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int); - -typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *, int); - -typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, int); - -struct trace_event_raw_smbus_write { - struct trace_entry ent; - int adapter_nr; - __u16 addr; - __u16 flags; - __u8 command; - __u8 len; - __u32 protocol; - __u8 buf[34]; - char __data[0]; -}; - -struct trace_event_raw_smbus_read { - struct trace_entry ent; - int adapter_nr; - __u16 flags; - __u16 addr; - __u8 command; - __u32 protocol; - __u8 buf[34]; - char __data[0]; -}; - -struct trace_event_raw_smbus_reply { - struct trace_entry ent; - int adapter_nr; - __u16 addr; - __u16 flags; - __u8 command; - __u8 len; - __u32 protocol; - __u8 buf[34]; - char __data[0]; -}; - -struct trace_event_raw_smbus_result { - struct trace_entry ent; - int adapter_nr; - __u16 addr; - __u16 flags; - __u8 read_write; - __u8 command; - __s16 res; - __u32 protocol; - char __data[0]; -}; - -struct i2c_client { - unsigned short flags; - unsigned short addr; - char name[20]; - struct i2c_adapter *adapter; - struct device dev; - int init_irq; - int irq; - struct list_head detected; - void *devres_group_id; -}; - -struct i2c_board_info { - char type[20]; - unsigned short flags; - unsigned short addr; - const char *dev_name; - void *platform_data; - struct device_node *of_node; - struct fwnode_handle *fwnode; - const struct software_node *swnode; - const struct resource *resources; - unsigned int num_resources; - int irq; -}; - -struct i2c_smbus_alert_setup { - int irq; -}; - -struct trace_event_data_offsets_smbus_write {}; - -struct trace_event_data_offsets_smbus_read {}; - -struct trace_event_data_offsets_smbus_reply {}; - -struct trace_event_data_offsets_smbus_result {}; - -struct net_proto_family { - int family; - int (*create)(struct net *, struct socket *, int, int); - struct module *owner; -}; - -enum { - SOCK_WAKE_IO = 0, - SOCK_WAKE_WAITD = 1, - SOCK_WAKE_SPACE = 2, - SOCK_WAKE_URG = 3, -}; - -enum sock_shutdown_cmd { - SHUT_RD = 0, - SHUT_WR = 1, - SHUT_RDWR = 2, -}; - -typedef u32 compat_uptr_t; - -typedef s32 compat_int_t; - -typedef u32 compat_size_t; - -typedef u32 compat_uint_t; - -struct compat_msghdr { - compat_uptr_t msg_name; - compat_int_t msg_namelen; - compat_uptr_t msg_iov; - compat_size_t msg_iovlen; - compat_uptr_t msg_control; - compat_size_t msg_controllen; - compat_uint_t msg_flags; -}; - -struct compat_mmsghdr { - struct compat_msghdr msg_hdr; - compat_uint_t msg_len; -}; - -struct user_msghdr { - void __attribute__((btf_type_tag("user"))) *msg_name; - int msg_namelen; - struct iovec __attribute__((btf_type_tag("user"))) *msg_iov; - __kernel_size_t msg_iovlen; - void __attribute__((btf_type_tag("user"))) *msg_control; - __kernel_size_t msg_controllen; - unsigned int msg_flags; -}; - -typedef u32 compat_ulong_t; - -struct compat_ifmap { - compat_ulong_t mem_start; - compat_ulong_t mem_end; - unsigned short base_addr; - unsigned char irq; - unsigned char dma; - unsigned char port; -}; - -typedef u32 compat_caddr_t; - -struct compat_if_settings { - unsigned int type; - unsigned int size; - compat_uptr_t ifs_ifsu; -}; - -struct compat_ifreq { - union { - char ifrn_name[16]; - } ifr_ifrn; - union { - struct sockaddr ifru_addr; - struct sockaddr ifru_dstaddr; - struct sockaddr ifru_broadaddr; - struct sockaddr ifru_netmask; - struct sockaddr ifru_hwaddr; - short ifru_flags; - compat_int_t ifru_ivalue; - compat_int_t ifru_mtu; - struct compat_ifmap ifru_map; - char ifru_slave[16]; - char ifru_newname[16]; - compat_caddr_t ifru_data; - struct compat_if_settings ifru_settings; - } ifr_ifru; -}; - -struct socket_alloc { - struct socket socket; - struct inode vfs_inode; - long: 64; - long: 64; -}; - -struct sock_skb_cb { - u32 dropcount; -}; - -struct mmsghdr { - struct user_msghdr msg_hdr; - unsigned int msg_len; -}; - -typedef __kernel_long_t __kernel_old_time_t; - -struct __kernel_old_timespec { - __kernel_old_time_t tv_sec; - long tv_nsec; -}; - -struct __kernel_sock_timeval { - __s64 tv_sec; - __s64 tv_usec; -}; - -struct scm_ts_pktinfo { - __u32 if_index; - __u32 pkt_length; - __u32 reserved[2]; -}; - -struct scm_timestamping_internal { - struct timespec64 ts[3]; -}; - -struct used_address { - struct __kernel_sockaddr_storage name; - unsigned int name_len; -}; - -struct ifconf { - int ifc_len; - union { - char __attribute__((btf_type_tag("user"))) *ifcu_buf; - struct ifreq __attribute__((btf_type_tag("user"))) *ifcu_req; - } ifc_ifcu; -}; - -enum nft_trace_types { - NFT_TRACETYPE_UNSPEC = 0, - NFT_TRACETYPE_POLICY = 1, - NFT_TRACETYPE_RETURN = 2, - NFT_TRACETYPE_RULE = 3, - __NFT_TRACETYPE_MAX = 4, -}; - -enum nft_payload_bases { - NFT_PAYLOAD_LL_HEADER = 0, - NFT_PAYLOAD_NETWORK_HEADER = 1, - NFT_PAYLOAD_TRANSPORT_HEADER = 2, - NFT_PAYLOAD_INNER_HEADER = 3, - NFT_PAYLOAD_TUN_HEADER = 4, -}; - -struct nft_rule_dp { - u64 is_last: 1; - u64 dlen: 12; - u64 handle: 42; - long: 0; - unsigned char data[0]; -}; - -struct nft_stats { - u64 bytes; - u64 pkts; - struct u64_stats_sync syncp; -}; - -struct nft_base_chain { - struct nf_hook_ops ops; - struct list_head hook_list; - const struct nft_chain_type *type; - u8 policy; - u8 flags; - struct nft_stats __attribute__((btf_type_tag("percpu"))) *stats; - struct nft_chain chain; - struct flow_block flow_block; -}; - -struct nft_traceinfo { - bool trace; - bool nf_trace; - bool packet_dumped; - enum nft_trace_types type: 8; - u32 skbid; - const struct nft_base_chain *basechain; -}; - -struct nft_cmp_fast_expr { - u32 data; - u32 mask; - u8 sreg; - u8 len; - bool inv; -}; - -struct nft_cmp16_fast_expr { - struct nft_data data; - struct nft_data mask; - u8 sreg; - u8 len; - bool inv; -}; - -struct nft_bitwise_fast_expr { - u32 mask; - u32 xor; - u8 sreg; - u8 dreg; -}; - -struct nft_payload { - enum nft_payload_bases base: 8; - u8 offset; - u8 len; - u8 dreg; -}; - -struct nft_jumpstack { - const struct nft_rule_dp *rule; -}; - -enum ip_defrag_users { - IP_DEFRAG_LOCAL_DELIVER = 0, - IP_DEFRAG_CALL_RA_CHAIN = 1, - IP_DEFRAG_CONNTRACK_IN = 2, - __IP_DEFRAG_CONNTRACK_IN_END = 65537, - IP_DEFRAG_CONNTRACK_OUT = 65538, - __IP_DEFRAG_CONNTRACK_OUT_END = 131073, - IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074, - __IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609, - IP_DEFRAG_VS_IN = 196610, - IP_DEFRAG_VS_OUT = 196611, - IP_DEFRAG_VS_FWD = 196612, - IP_DEFRAG_AF_PACKET = 196613, - IP_DEFRAG_MACVLAN = 196614, -}; - -struct inet_peer; - -struct ipq { - struct inet_frag_queue q; - u8 ecn; - u16 max_df_size; - int iif; - unsigned int rid; - struct inet_peer *peer; -}; - -struct ipv4_addr_key { - __be32 addr; - int vif; -}; - -struct inetpeer_addr { - union { - struct ipv4_addr_key a4; - struct in6_addr a6; - u32 key[4]; - }; - __u16 family; -}; - -struct inet_peer { - struct rb_node rb_node; - struct inetpeer_addr daddr; - u32 metrics[17]; - u32 rate_tokens; - u32 n_redirects; - unsigned long rate_last; - union { - struct { - atomic_t rid; - }; - struct callback_head rcu; - }; - __u32 dtime; - refcount_t refcnt; -}; - -enum tunnel_encap_types { - TUNNEL_ENCAP_NONE = 0, - TUNNEL_ENCAP_FOU = 1, - TUNNEL_ENCAP_GUE = 2, - TUNNEL_ENCAP_MPLS = 3, -}; - -struct gro_cell; - -struct gro_cells { - struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; -}; - -struct ip_tunnel_prl_entry; - -struct ip_tunnel { - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *next; - struct hlist_node hash_node; - struct net_device *dev; - netdevice_tracker dev_tracker; - struct net *net; - unsigned long err_time; - int err_count; - u32 i_seqno; - atomic_t o_seqno; - int tun_hlen; - u32 index; - u8 erspan_ver; - u8 dir; - u16 hwid; - struct dst_cache dst_cache; - struct ip_tunnel_parm parms; - int mlink; - int encap_hlen; - int hlen; - struct ip_tunnel_encap encap; - struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *prl; - unsigned int prl_count; - unsigned int ip_tnl_net_id; - struct gro_cells gro_cells; - __u32 fwmark; - bool collect_md; - bool ignore_df; -}; - -struct ip_tunnel_prl_entry { - struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *next; - __be32 addr; - u16 flags; - struct callback_head callback_head; -}; - -struct gro_cell { - struct sk_buff_head napi_skbs; - struct napi_struct napi; -}; - -struct ip_tunnel_encap_ops { - size_t (*encap_hlen)(struct ip_tunnel_encap *); - int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); - int (*err_handler)(struct sk_buff *, u32); -}; - -struct ip_tunnel_net { - struct net_device *fb_tunnel_dev; - struct rtnl_link_ops *rtnl_link_ops; - struct hlist_head tunnels[128]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *collect_md_tun; - int type; -}; - -struct tnl_ptk_info { - __be16 flags; - __be16 proto; - __be32 key; - __be32 seq; - int hdr_len; -}; - -struct xfrm_tunnel { - int (*handler)(struct sk_buff *); - int (*cb_handler)(struct sk_buff *, int); - int (*err_handler)(struct sk_buff *, u32); - struct xfrm_tunnel __attribute__((btf_type_tag("rcu"))) *next; - int priority; -}; - -enum { - IFLA_IPTUN_UNSPEC = 0, - IFLA_IPTUN_LINK = 1, - IFLA_IPTUN_LOCAL = 2, - IFLA_IPTUN_REMOTE = 3, - IFLA_IPTUN_TTL = 4, - IFLA_IPTUN_TOS = 5, - IFLA_IPTUN_ENCAP_LIMIT = 6, - IFLA_IPTUN_FLOWINFO = 7, - IFLA_IPTUN_FLAGS = 8, - IFLA_IPTUN_PROTO = 9, - IFLA_IPTUN_PMTUDISC = 10, - IFLA_IPTUN_6RD_PREFIX = 11, - IFLA_IPTUN_6RD_RELAY_PREFIX = 12, - IFLA_IPTUN_6RD_PREFIXLEN = 13, - IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14, - IFLA_IPTUN_ENCAP_TYPE = 15, - IFLA_IPTUN_ENCAP_FLAGS = 16, - IFLA_IPTUN_ENCAP_SPORT = 17, - IFLA_IPTUN_ENCAP_DPORT = 18, - IFLA_IPTUN_COLLECT_METADATA = 19, - IFLA_IPTUN_FWMARK = 20, - __IFLA_IPTUN_MAX = 21, -}; - -struct ip_tunnel_prl { - __be32 addr; - __u16 flags; - __u16 __reserved; - __u32 datalen; - __u32 __reserved2; -}; - -struct sit_net { - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r_l[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_l[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_wc[1]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) **tunnels[4]; - struct net_device *fb_tunnel_dev; -}; - -struct rate_control_ref { - const struct rate_control_ops *ops; - void *priv; -}; - -enum ieee80211_privacy { - IEEE80211_PRIVACY_ON = 0, - IEEE80211_PRIVACY_OFF = 1, - IEEE80211_PRIVACY_ANY = 2, -}; - -enum nl80211_bss_use_for { - NL80211_BSS_USE_FOR_NORMAL = 1, - NL80211_BSS_USE_FOR_MLD_LINK = 2, -}; - -enum ieee80211_sub_if_data_flags { - IEEE80211_SDATA_ALLMULTI = 1, - IEEE80211_SDATA_DONT_BRIDGE_PACKETS = 8, - IEEE80211_SDATA_DISCONNECT_RESUME = 16, - IEEE80211_SDATA_IN_DRIVER = 32, - IEEE80211_SDATA_DISCONNECT_HW_RESTART = 64, -}; - -struct ieee80211_bss { - u32 device_ts_beacon; - u32 device_ts_presp; - bool wmm_used; - bool uapsd_supported; - u8 supp_rates[32]; - size_t supp_rates_len; - struct ieee80211_rate *beacon_rate; - u32 vht_cap_info; - bool has_erp_value; - u8 erp_value; - u8 corrupt_data; - u8 valid_data; -}; - -struct cfg80211_inform_bss { - struct ieee80211_channel *chan; - s32 signal; - u64 boottime_ns; - u64 parent_tsf; - u8 parent_bssid[6]; - u8 chains; - s8 chain_signal[4]; - u8 restrict_use: 1; - u8 use_for: 7; - u8 cannot_use_reasons; - void *drv_data; -}; - -enum vmx_feature_leafs { - MISC_FEATURES = 0, - PRIMARY_CTLS = 1, - SECONDARY_CTLS = 2, - TERTIARY_CTLS_LOW = 3, - TERTIARY_CTLS_HIGH = 4, - NR_VMX_FEATURE_WORDS = 5, -}; - -struct sku_microcode { - u8 model; - u8 stepping; - u32 microcode; -}; - -struct _tlb_table { - unsigned char descriptor; - char tlb_type; - unsigned int entries; - char info[128]; -}; - -enum split_lock_detect_state { - sld_off = 0, - sld_warn = 1, - sld_fatal = 2, - sld_ratelimit = 3, -}; - -struct cpu_stop_done; - -struct cpu_stop_work { - struct list_head list; - cpu_stop_fn_t fn; - unsigned long caller; - void *arg; - struct cpu_stop_done *done; -}; - -struct cpu_stopper { - struct task_struct *thread; - raw_spinlock_t lock; - bool enabled; - struct list_head works; - struct cpu_stop_work stop_work; - unsigned long caller; - cpu_stop_fn_t fn; -}; - -struct cpu_stop_done { - atomic_t nr_todo; - int ret; - struct completion completion; -}; - -enum multi_stop_state { - MULTI_STOP_NONE = 0, - MULTI_STOP_PREPARE = 1, - MULTI_STOP_DISABLE_IRQ = 2, - MULTI_STOP_RUN = 3, - MULTI_STOP_EXIT = 4, -}; - -struct multi_stop_data { - cpu_stop_fn_t fn; - void *data; - unsigned int num_threads; - const struct cpumask *active_cpus; - enum multi_stop_state state; - atomic_t thread_ack; -}; - -enum xdp_action { - XDP_ABORTED = 0, - XDP_DROP = 1, - XDP_PASS = 2, - XDP_TX = 3, - XDP_REDIRECT = 4, -}; - -enum netdev_xdp_act { - NETDEV_XDP_ACT_BASIC = 1, - NETDEV_XDP_ACT_REDIRECT = 2, - NETDEV_XDP_ACT_NDO_XMIT = 4, - NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, - NETDEV_XDP_ACT_HW_OFFLOAD = 16, - NETDEV_XDP_ACT_RX_SG = 32, - NETDEV_XDP_ACT_NDO_XMIT_SG = 64, - NETDEV_XDP_ACT_MASK = 127, -}; - -enum xdp_buff_flags { - XDP_FLAGS_HAS_FRAGS = 1, - XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, -}; - -enum { - BPF_F_BROADCAST = 8, - BPF_F_EXCLUDE_INGRESS = 16, -}; - -struct bpf_dtab_netdev; - -struct bpf_dtab { - struct bpf_map map; - struct bpf_dtab_netdev __attribute__((btf_type_tag("rcu"))) **netdev_map; - struct list_head list; - struct hlist_head *dev_index_head; - spinlock_t index_lock; - unsigned int items; - u32 n_buckets; -}; - -struct bpf_devmap_val { - __u32 ifindex; - union { - int fd; - __u32 id; - } bpf_prog; -}; - -struct bpf_dtab_netdev { - struct net_device *dev; - struct hlist_node index_hlist; - struct bpf_prog *xdp_prog; - struct callback_head rcu; - unsigned int idx; - struct bpf_devmap_val val; -}; - -struct bpf_nh_params { - u32 nh_family; - union { - u32 ipv4_nh; - struct in6_addr ipv6_nh; - }; -}; - -struct bpf_redirect_info { - u64 tgt_index; - void *tgt_value; - struct bpf_map *map; - u32 flags; - u32 kern_flags; - u32 map_id; - enum bpf_map_type map_type; - struct bpf_nh_params nh; -}; - -struct hugetlb_cgroup_per_node; - -struct hugetlb_cgroup { - struct cgroup_subsys_state css; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct page_counter hugepage[2]; - struct page_counter rsvd_hugepage[2]; - atomic_long_t events[2]; - atomic_long_t events_local[2]; - struct cgroup_file events_file[2]; - struct cgroup_file events_local_file[2]; - struct hugetlb_cgroup_per_node *nodeinfo[0]; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct hugetlb_cgroup_per_node { - unsigned long usage[2]; -}; - -enum hugetlb_memory_event { - HUGETLB_MAX = 0, - HUGETLB_NR_MEMORY_EVENTS = 1, -}; - -enum { - RES_USAGE = 0, - RES_RSVD_USAGE = 1, - RES_LIMIT = 2, - RES_RSVD_LIMIT = 3, - RES_MAX_USAGE = 4, - RES_RSVD_MAX_USAGE = 5, - RES_FAILCNT = 6, - RES_RSVD_FAILCNT = 7, -}; - -enum { - CFTYPE_ONLY_ON_ROOT = 1, - CFTYPE_NOT_ON_ROOT = 2, - CFTYPE_NS_DELEGATABLE = 4, - CFTYPE_NO_PREFIX = 8, - CFTYPE_WORLD_WRITABLE = 16, - CFTYPE_DEBUG = 32, - CFTYPE_HIDDEN = 64, - __CFTYPE_ONLY_ON_DFL = 65536, - __CFTYPE_NOT_ON_DFL = 131072, - __CFTYPE_ADDED = 262144, -}; - -struct resv_map { - struct kref refs; - spinlock_t lock; - struct list_head regions; - long adds_in_progress; - struct list_head region_cache; - long region_cache_count; - struct rw_semaphore rw_sema; - struct page_counter *reservation_counter; - unsigned long pages_per_hpage; - struct cgroup_subsys_state *css; -}; - -struct file_region { - struct list_head link; - long from; - long to; - struct page_counter *reservation_counter; - struct cgroup_subsys_state *css; -}; - -struct mpage_readpage_args { - struct bio *bio; - struct folio *folio; - unsigned int nr_pages; - bool is_readahead; - sector_t last_block_in_bio; - struct buffer_head map_bh; - unsigned long first_logical_block; - get_block_t *get_block; -}; - -struct mpage_data { - struct bio *bio; - sector_t last_block_in_bio; - get_block_t *get_block; -}; - -typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); - -typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); - -typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); - -typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); - -typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); - -typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); - -typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); - -typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); - -typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); - -typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); - -typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); - -typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); - -typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); - -typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); - -typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); - -typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); - -typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); - -typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); - -typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); - -typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); - -typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); - -typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); - -typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); - -struct ext4_allocation_context; - -struct ext4_prealloc_space; - -typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); - -struct ext4_free_extent { - ext4_lblk_t fe_logical; - ext4_grpblk_t fe_start; - ext4_group_t fe_group; - ext4_grpblk_t fe_len; -}; - -struct ext4_allocation_context { - struct inode *ac_inode; - struct super_block *ac_sb; - struct ext4_free_extent ac_o_ex; - struct ext4_free_extent ac_g_ex; - struct ext4_free_extent ac_b_ex; - struct ext4_free_extent ac_f_ex; - ext4_grpblk_t ac_orig_goal_len; - __u32 ac_flags; - __u16 ac_groups_scanned; - __u16 ac_groups_linear_remaining; - __u16 ac_found; - __u16 ac_cX_found[5]; - __u16 ac_tail; - __u16 ac_buddy; - __u8 ac_status; - __u8 ac_criteria; - __u8 ac_2order; - __u8 ac_op; - struct page *ac_bitmap_page; - struct page *ac_buddy_page; - struct ext4_prealloc_space *ac_pa; - struct ext4_locality_group *ac_lg; -}; - -struct ext4_prealloc_space { - union { - struct rb_node inode_node; - struct list_head lg_list; - } pa_node; - struct list_head pa_group_list; - union { - struct list_head pa_tmp_list; - struct callback_head pa_rcu; - } u; - spinlock_t pa_lock; - atomic_t pa_count; - unsigned int pa_deleted; - ext4_fsblk_t pa_pstart; - ext4_lblk_t pa_lstart; - ext4_grpblk_t pa_len; - ext4_grpblk_t pa_free; - unsigned short pa_type; - union { - rwlock_t *inode_lock; - spinlock_t *lg_lock; - } pa_node_lock; - struct inode *pa_inode; -}; - -typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); - -typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); - -typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); - -typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int); - -typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); - -struct ext4_allocation_request; - -typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); - -struct ext4_allocation_request { - struct inode *inode; - unsigned int len; - ext4_lblk_t logical; - ext4_lblk_t lleft; - ext4_lblk_t lright; - ext4_fsblk_t goal; - ext4_fsblk_t pleft; - ext4_fsblk_t pright; - unsigned int flags; -}; - -typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); - -typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); - -typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); - -typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); - -typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); - -typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); - -typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); - -typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); - -typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); - -typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); - -typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); - -typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); - -typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); - -typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); - -typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); - -typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); - -typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); - -typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); - -typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); - -typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); - -typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); - -typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); - -typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); - -typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); - -typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); - -typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); - -struct ext4_extent; - -typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); - -struct ext4_extent { - __le32 ee_block; - __le16 ee_len; - __le16 ee_start_hi; - __le32 ee_start_lo; -}; - -typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); - -typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); - -typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); - -typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); - -typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); - -typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); - -typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); - -typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); - -typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); - -typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); - -typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); - -typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); - -typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); - -typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); - -typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); - -struct partial_cluster; - -typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); - -struct partial_cluster { - ext4_fsblk_t pclu; - ext4_lblk_t lblk; - enum { - initial = 0, - tofree = 1, - nofree = 2, - } state; -}; - -typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); - -typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); - -typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); - -typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); - -typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); - -typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); - -typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); - -typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); - -typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); - -typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); - -typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); - -typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); - -typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); - -typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); - -typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); - -typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); - -typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); - -typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); - -typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); - -typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); - -typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); - -struct ext4_fsmap; - -typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); - -struct ext4_fsmap { - struct list_head fmr_list; - dev_t fmr_device; - uint32_t fmr_flags; - uint64_t fmr_physical; - uint64_t fmr_owner; - uint64_t fmr_length; -}; - -typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); - -typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); - -typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); - -typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); - -typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); - -typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); - -typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); - -typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); - -typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); - -typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); - -typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); - -typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); - -typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); - -typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); - -typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); - -typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); - -typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); - -typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); - -struct ext4_lazy_init { - unsigned long li_state; - struct list_head li_request_list; - struct mutex li_list_mtx; -}; - -struct ext4_err_translation { - int code; - int errno; -}; - -struct mount_opts { - int token; - int mount_opt; - int flags; -}; - -struct constant_table { - const char *name; - int value; -}; - -enum { - Opt_bsd_df = 0, - Opt_minix_df = 1, - Opt_grpid = 2, - Opt_nogrpid = 3, - Opt_resgid = 4, - Opt_resuid = 5, - Opt_sb___2 = 6, - Opt_nouid32 = 7, - Opt_debug = 8, - Opt_removed = 9, - Opt_user_xattr = 10, - Opt_acl = 11, - Opt_auto_da_alloc = 12, - Opt_noauto_da_alloc = 13, - Opt_noload = 14, - Opt_commit = 15, - Opt_min_batch_time = 16, - Opt_max_batch_time = 17, - Opt_journal_dev = 18, - Opt_journal_path = 19, - Opt_journal_checksum = 20, - Opt_journal_async_commit = 21, - Opt_abort = 22, - Opt_data_journal = 23, - Opt_data_ordered = 24, - Opt_data_writeback = 25, - Opt_data_err_abort = 26, - Opt_data_err_ignore = 27, - Opt_test_dummy_encryption = 28, - Opt_inlinecrypt = 29, - Opt_usrjquota = 30, - Opt_grpjquota = 31, - Opt_quota = 32, - Opt_noquota = 33, - Opt_barrier = 34, - Opt_nobarrier = 35, - Opt_err___3 = 36, - Opt_usrquota = 37, - Opt_grpquota = 38, - Opt_prjquota = 39, - Opt_dax = 40, - Opt_dax_always = 41, - Opt_dax_inode = 42, - Opt_dax_never = 43, - Opt_stripe = 44, - Opt_delalloc = 45, - Opt_nodelalloc = 46, - Opt_warn_on_error = 47, - Opt_nowarn_on_error = 48, - Opt_mblk_io_submit = 49, - Opt_debug_want_extra_isize = 50, - Opt_nomblk_io_submit = 51, - Opt_block_validity = 52, - Opt_noblock_validity = 53, - Opt_inode_readahead_blks = 54, - Opt_journal_ioprio = 55, - Opt_dioread_nolock = 56, - Opt_dioread_lock = 57, - Opt_discard = 58, - Opt_nodiscard = 59, - Opt_init_itable = 60, - Opt_noinit_itable = 61, - Opt_max_dir_size_kb = 62, - Opt_nojournal_checksum = 63, - Opt_nombcache = 64, - Opt_no_prefetch_block_bitmaps = 65, - Opt_mb_optimize_scan = 66, - Opt_errors = 67, - Opt_data = 68, - Opt_data_err = 69, - Opt_jqfmt = 70, - Opt_dax_type = 71, -}; - -enum { - EXT4_MF_MNTDIR_SAMPLED = 0, - EXT4_MF_FC_INELIGIBLE = 1, -}; - -enum positive_aop_returns { - AOP_WRITEPAGE_ACTIVATE = 524288, - AOP_TRUNCATED_PAGE = 524289, -}; - -struct trace_event_raw_ext4_other_inode_update_time { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ino_t orig_ino; - uid_t uid; - gid_t gid; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_free_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - uid_t uid; - gid_t gid; - __u64 blocks; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_request_inode { - struct trace_entry ent; - dev_t dev; - ino_t dir; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_allocate_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ino_t dir; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_evict_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int nlink; - char __data[0]; -}; - -struct trace_event_raw_ext4_drop_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int drop; - char __data[0]; -}; - -struct trace_event_raw_ext4_nfs_commit_metadata { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; -}; - -struct trace_event_raw_ext4_mark_inode_dirty { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long ip; - char __data[0]; -}; - -struct trace_event_raw_ext4_begin_ordered_truncate { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t new_size; - char __data[0]; -}; - -struct trace_event_raw_ext4__write_begin { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t pos; - unsigned int len; - char __data[0]; -}; - -struct trace_event_raw_ext4__write_end { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t pos; - unsigned int len; - unsigned int copied; - char __data[0]; -}; - -struct trace_event_raw_ext4_writepages { - struct trace_entry ent; - dev_t dev; - ino_t ino; - long nr_to_write; - long pages_skipped; - loff_t range_start; - loff_t range_end; - unsigned long writeback_index; - int sync_mode; - char for_kupdate; - char range_cyclic; - char __data[0]; -}; - -struct trace_event_raw_ext4_da_write_pages { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long first_page; - long nr_to_write; - int sync_mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_da_write_pages_extent { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 lblk; - __u32 len; - __u32 flags; - char __data[0]; -}; - -struct trace_event_raw_ext4_writepages_result { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - int pages_written; - long pages_skipped; - unsigned long writeback_index; - int sync_mode; - char __data[0]; -}; - -struct trace_event_raw_ext4__folio_op { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long index; - char __data[0]; -}; - -struct trace_event_raw_ext4_invalidate_folio_op { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long index; - size_t offset; - size_t length; - char __data[0]; -}; - -struct trace_event_raw_ext4_discard_blocks { - struct trace_entry ent; - dev_t dev; - __u64 blk; - __u64 count; - char __data[0]; -}; - -struct trace_event_raw_ext4__mb_new_pa { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 pa_pstart; - __u64 pa_lstart; - __u32 pa_len; - char __data[0]; -}; - -struct trace_event_raw_ext4_mb_release_inode_pa { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 block; - __u32 count; - char __data[0]; -}; - -struct trace_event_raw_ext4_mb_release_group_pa { - struct trace_entry ent; - dev_t dev; - __u64 pa_pstart; - __u32 pa_len; - char __data[0]; -}; - -struct trace_event_raw_ext4_discard_preallocations { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned int len; - char __data[0]; -}; - -struct trace_event_raw_ext4_mb_discard_preallocations { - struct trace_entry ent; - dev_t dev; - int needed; - char __data[0]; -}; - -struct trace_event_raw_ext4_request_blocks { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned int len; - __u32 logical; - __u32 lleft; - __u32 lright; - __u64 goal; - __u64 pleft; - __u64 pright; - unsigned int flags; - char __data[0]; -}; - -struct trace_event_raw_ext4_allocate_blocks { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 block; - unsigned int len; - __u32 logical; - __u32 lleft; - __u32 lright; - __u64 goal; - __u64 pleft; - __u64 pright; - unsigned int flags; - char __data[0]; -}; - -struct trace_event_raw_ext4_free_blocks { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 block; - unsigned long count; - int flags; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_sync_file_enter { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ino_t parent; - int datasync; - char __data[0]; -}; - -struct trace_event_raw_ext4_sync_file_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; -}; - -struct trace_event_raw_ext4_sync_fs { - struct trace_entry ent; - dev_t dev; - int wait; - char __data[0]; -}; - -struct trace_event_raw_ext4_alloc_da_blocks { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned int data_blocks; - char __data[0]; -}; - -struct trace_event_raw_ext4_mballoc_alloc { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u32 orig_logical; - int orig_start; - __u32 orig_group; - int orig_len; - __u32 goal_logical; - int goal_start; - __u32 goal_group; - int goal_len; - __u32 result_logical; - int result_start; - __u32 result_group; - int result_len; - __u16 found; - __u16 groups; - __u16 buddy; - __u16 flags; - __u16 tail; - __u8 cr; - char __data[0]; -}; - -struct trace_event_raw_ext4_mballoc_prealloc { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u32 orig_logical; - int orig_start; - __u32 orig_group; - int orig_len; - __u32 result_logical; - int result_start; - __u32 result_group; - int result_len; - char __data[0]; -}; - -struct trace_event_raw_ext4__mballoc { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int result_start; - __u32 result_group; - int result_len; - char __data[0]; -}; - -struct trace_event_raw_ext4_forget { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 block; - int is_metadata; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_da_update_reserve_space { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 i_blocks; - int used_blocks; - int reserved_data_blocks; - int quota_claim; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_da_reserve_space { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 i_blocks; - int reserved_data_blocks; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_da_release_space { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 i_blocks; - int freed_blocks; - int reserved_data_blocks; - __u16 mode; - char __data[0]; -}; - -struct trace_event_raw_ext4__bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; -}; - -struct trace_event_raw_ext4_read_block_bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - bool prefetch; - char __data[0]; -}; - -struct trace_event_raw_ext4__fallocate_mode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t offset; - loff_t len; - int mode; - char __data[0]; -}; - -struct trace_event_raw_ext4_fallocate_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t pos; - unsigned int blocks; - int ret; - char __data[0]; -}; - -struct trace_event_raw_ext4_unlink_enter { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ino_t parent; - loff_t size; - char __data[0]; -}; - -struct trace_event_raw_ext4_unlink_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; -}; - -struct trace_event_raw_ext4__truncate { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 blocks; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_convert_to_initialized_enter { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t m_lblk; - unsigned int m_len; - ext4_lblk_t u_lblk; - unsigned int u_len; - ext4_fsblk_t u_pblk; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_convert_to_initialized_fastpath { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t m_lblk; - unsigned int m_len; - ext4_lblk_t u_lblk; - unsigned int u_len; - ext4_fsblk_t u_pblk; - ext4_lblk_t i_lblk; - unsigned int i_len; - ext4_fsblk_t i_pblk; - char __data[0]; -}; - -struct trace_event_raw_ext4__map_blocks_enter { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t lblk; - unsigned int len; - unsigned int flags; - char __data[0]; -}; - -struct trace_event_raw_ext4__map_blocks_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned int flags; - ext4_fsblk_t pblk; - ext4_lblk_t lblk; - unsigned int len; - unsigned int mflags; - int ret; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_load_extent { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_fsblk_t pblk; - ext4_lblk_t lblk; - char __data[0]; -}; - -struct trace_event_raw_ext4_load_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; -}; - -struct trace_event_raw_ext4_journal_start_sb { - struct trace_entry ent; - dev_t dev; - unsigned long ip; - int blocks; - int rsv_blocks; - int revoke_creds; - int type; - char __data[0]; -}; - -struct trace_event_raw_ext4_journal_start_inode { - struct trace_entry ent; - unsigned long ino; - dev_t dev; - unsigned long ip; - int blocks; - int rsv_blocks; - int revoke_creds; - int type; - char __data[0]; -}; - -struct trace_event_raw_ext4_journal_start_reserved { - struct trace_entry ent; - dev_t dev; - unsigned long ip; - int blocks; - char __data[0]; -}; - -struct trace_event_raw_ext4__trim { - struct trace_entry ent; - int dev_major; - int dev_minor; - __u32 group; - int start; - int len; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_handle_unwritten_extents { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int flags; - ext4_lblk_t lblk; - ext4_fsblk_t pblk; - unsigned int len; - unsigned int allocated; - ext4_fsblk_t newblk; - char __data[0]; -}; - -struct trace_event_raw_ext4_get_implied_cluster_alloc_exit { - struct trace_entry ent; - dev_t dev; - unsigned int flags; - ext4_lblk_t lblk; - ext4_fsblk_t pblk; - unsigned int len; - int ret; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_show_extent { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_fsblk_t pblk; - ext4_lblk_t lblk; - unsigned short len; - char __data[0]; -}; - -struct trace_event_raw_ext4_remove_blocks { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t from; - ext4_lblk_t to; - ext4_fsblk_t ee_pblk; - ext4_lblk_t ee_lblk; - unsigned short ee_len; - ext4_fsblk_t pc_pclu; - ext4_lblk_t pc_lblk; - int pc_state; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_rm_leaf { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t start; - ext4_lblk_t ee_lblk; - ext4_fsblk_t ee_pblk; - short ee_len; - ext4_fsblk_t pc_pclu; - ext4_lblk_t pc_lblk; - int pc_state; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_rm_idx { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_fsblk_t pblk; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_remove_space { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t start; - ext4_lblk_t end; - int depth; - char __data[0]; -}; - -struct trace_event_raw_ext4_ext_remove_space_done { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t start; - ext4_lblk_t end; - int depth; - ext4_fsblk_t pc_pclu; - ext4_lblk_t pc_lblk; - int pc_state; - unsigned short eh_entries; - char __data[0]; -}; - -struct trace_event_raw_ext4__es_extent { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t lblk; - ext4_lblk_t len; - ext4_fsblk_t pblk; - char status; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_remove_extent { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t lblk; - loff_t len; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_find_extent_range_enter { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t lblk; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_find_extent_range_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t lblk; - ext4_lblk_t len; - ext4_fsblk_t pblk; - char status; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_lookup_extent_enter { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t lblk; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_lookup_extent_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t lblk; - ext4_lblk_t len; - ext4_fsblk_t pblk; - char status; - int found; - char __data[0]; -}; - -struct trace_event_raw_ext4__es_shrink_enter { - struct trace_entry ent; - dev_t dev; - int nr_to_scan; - int cache_cnt; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_shrink_scan_exit { - struct trace_entry ent; - dev_t dev; - int nr_shrunk; - int cache_cnt; - char __data[0]; -}; - -struct trace_event_raw_ext4_collapse_range { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t offset; - loff_t len; - char __data[0]; -}; - -struct trace_event_raw_ext4_insert_range { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t offset; - loff_t len; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_shrink { - struct trace_entry ent; - dev_t dev; - int nr_shrunk; - unsigned long long scan_time; - int nr_skipped; - int retried; - char __data[0]; -}; - -struct trace_event_raw_ext4_es_insert_delayed_block { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ext4_lblk_t lblk; - ext4_lblk_t len; - ext4_fsblk_t pblk; - char status; - bool allocated; - char __data[0]; -}; - -struct trace_event_raw_ext4_fsmap_class { - struct trace_entry ent; - dev_t dev; - dev_t keydev; - u32 agno; - u64 bno; - u64 len; - u64 owner; - char __data[0]; -}; - -struct trace_event_raw_ext4_getfsmap_class { - struct trace_entry ent; - dev_t dev; - dev_t keydev; - u64 block; - u64 len; - u64 owner; - u64 flags; - char __data[0]; -}; - -struct trace_event_raw_ext4_shutdown { - struct trace_entry ent; - dev_t dev; - unsigned int flags; - char __data[0]; -}; - -struct trace_event_raw_ext4_error { - struct trace_entry ent; - dev_t dev; - const char *function; - unsigned int line; - char __data[0]; -}; - -struct trace_event_raw_ext4_prefetch_bitmaps { - struct trace_entry ent; - dev_t dev; - __u32 group; - __u32 next; - __u32 ios; - char __data[0]; -}; - -struct trace_event_raw_ext4_lazy_itable_init { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_replay_scan { - struct trace_entry ent; - dev_t dev; - int error; - int off; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_replay { - struct trace_entry ent; - dev_t dev; - int tag; - int ino; - int priv1; - int priv2; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_commit_start { - struct trace_entry ent; - dev_t dev; - tid_t tid; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_commit_stop { - struct trace_entry ent; - dev_t dev; - int nblks; - int reason; - int num_fc; - int num_fc_ineligible; - int nblks_agg; - tid_t tid; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_stats { - struct trace_entry ent; - dev_t dev; - unsigned int fc_ineligible_rc[10]; - unsigned long fc_commits; - unsigned long fc_ineligible_commits; - unsigned long fc_numblks; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_track_dentry { - struct trace_entry ent; - dev_t dev; - tid_t t_tid; - ino_t i_ino; - tid_t i_sync_tid; - int error; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_track_inode { - struct trace_entry ent; - dev_t dev; - tid_t t_tid; - ino_t i_ino; - tid_t i_sync_tid; - int error; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_track_range { - struct trace_entry ent; - dev_t dev; - tid_t t_tid; - ino_t i_ino; - tid_t i_sync_tid; - long start; - long end; - int error; - char __data[0]; -}; - -struct trace_event_raw_ext4_fc_cleanup { - struct trace_entry ent; - dev_t dev; - int j_fc_off; - int full; - tid_t tid; - char __data[0]; -}; - -struct trace_event_raw_ext4_update_sb { - struct trace_entry ent; - dev_t dev; - ext4_fsblk_t fsblk; - unsigned int flags; - char __data[0]; -}; - -struct ext4_journal_cb_entry { - struct list_head jce_list; - void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); -}; - -struct ext4_fs_context { - char *s_qf_names[3]; - struct fscrypt_dummy_policy dummy_enc_policy; - int s_jquota_fmt; - unsigned short qname_spec; - unsigned long vals_s_flags; - unsigned long mask_s_flags; - unsigned long journal_devnum; - unsigned long s_commit_interval; - unsigned long s_stripe; - unsigned int s_inode_readahead_blks; - unsigned int s_want_extra_isize; - unsigned int s_li_wait_mult; - unsigned int s_max_dir_size_kb; - unsigned int journal_ioprio; - unsigned int vals_s_mount_opt; - unsigned int mask_s_mount_opt; - unsigned int vals_s_mount_opt2; - unsigned int mask_s_mount_opt2; - unsigned int opt_flags; - unsigned int spec; - u32 s_max_batch_time; - u32 s_min_batch_time; - kuid_t s_resuid; - kgid_t s_resgid; - ext4_fsblk_t s_sb_block; -}; - -struct ext4_mount_options { - unsigned long s_mount_opt; - unsigned long s_mount_opt2; - kuid_t s_resuid; - kgid_t s_resgid; - unsigned long s_commit_interval; - u32 s_min_batch_time; - u32 s_max_batch_time; -}; - -struct trace_event_data_offsets_ext4_other_inode_update_time {}; - -struct trace_event_data_offsets_ext4_free_inode {}; - -struct trace_event_data_offsets_ext4_request_inode {}; - -struct trace_event_data_offsets_ext4_allocate_inode {}; - -struct trace_event_data_offsets_ext4_evict_inode {}; - -struct trace_event_data_offsets_ext4_drop_inode {}; - -struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; - -struct trace_event_data_offsets_ext4_mark_inode_dirty {}; - -struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; - -struct trace_event_data_offsets_ext4__write_begin {}; - -struct trace_event_data_offsets_ext4__write_end {}; - -struct trace_event_data_offsets_ext4_writepages {}; - -struct trace_event_data_offsets_ext4_da_write_pages {}; - -struct trace_event_data_offsets_ext4_da_write_pages_extent {}; - -struct trace_event_data_offsets_ext4_writepages_result {}; - -struct trace_event_data_offsets_ext4__folio_op {}; - -struct trace_event_data_offsets_ext4_invalidate_folio_op {}; - -struct trace_event_data_offsets_ext4_discard_blocks {}; - -struct trace_event_data_offsets_ext4__mb_new_pa {}; - -struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; - -struct trace_event_data_offsets_ext4_mb_release_group_pa {}; - -struct trace_event_data_offsets_ext4_discard_preallocations {}; - -struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; - -struct trace_event_data_offsets_ext4_request_blocks {}; - -struct trace_event_data_offsets_ext4_allocate_blocks {}; - -struct trace_event_data_offsets_ext4_free_blocks {}; - -struct trace_event_data_offsets_ext4_sync_file_enter {}; - -struct trace_event_data_offsets_ext4_sync_file_exit {}; - -struct trace_event_data_offsets_ext4_sync_fs {}; - -struct trace_event_data_offsets_ext4_alloc_da_blocks {}; - -struct trace_event_data_offsets_ext4_mballoc_alloc {}; - -struct trace_event_data_offsets_ext4_mballoc_prealloc {}; - -struct trace_event_data_offsets_ext4__mballoc {}; - -struct trace_event_data_offsets_ext4_forget {}; - -struct trace_event_data_offsets_ext4_da_update_reserve_space {}; - -struct trace_event_data_offsets_ext4_da_reserve_space {}; - -struct trace_event_data_offsets_ext4_da_release_space {}; - -struct trace_event_data_offsets_ext4__bitmap_load {}; - -struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; - -struct trace_event_data_offsets_ext4__fallocate_mode {}; - -struct trace_event_data_offsets_ext4_fallocate_exit {}; - -struct trace_event_data_offsets_ext4_unlink_enter {}; - -struct trace_event_data_offsets_ext4_unlink_exit {}; - -struct trace_event_data_offsets_ext4__truncate {}; - -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; - -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; - -struct trace_event_data_offsets_ext4__map_blocks_enter {}; - -struct trace_event_data_offsets_ext4__map_blocks_exit {}; - -struct trace_event_data_offsets_ext4_ext_load_extent {}; - -struct trace_event_data_offsets_ext4_load_inode {}; - -struct trace_event_data_offsets_ext4_journal_start_sb {}; - -struct trace_event_data_offsets_ext4_journal_start_inode {}; - -struct trace_event_data_offsets_ext4_journal_start_reserved {}; - -struct trace_event_data_offsets_ext4__trim {}; - -struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; - -struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; - -struct trace_event_data_offsets_ext4_ext_show_extent {}; - -struct trace_event_data_offsets_ext4_remove_blocks {}; - -struct trace_event_data_offsets_ext4_ext_rm_leaf {}; - -struct trace_event_data_offsets_ext4_ext_rm_idx {}; - -struct trace_event_data_offsets_ext4_ext_remove_space {}; - -struct trace_event_data_offsets_ext4_ext_remove_space_done {}; - -struct trace_event_data_offsets_ext4__es_extent {}; - -struct trace_event_data_offsets_ext4_es_remove_extent {}; - -struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; - -struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; - -struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; - -struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; - -struct trace_event_data_offsets_ext4__es_shrink_enter {}; - -struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; - -struct trace_event_data_offsets_ext4_collapse_range {}; - -struct trace_event_data_offsets_ext4_insert_range {}; - -struct trace_event_data_offsets_ext4_es_shrink {}; - -struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; - -struct trace_event_data_offsets_ext4_fsmap_class {}; - -struct trace_event_data_offsets_ext4_getfsmap_class {}; - -struct trace_event_data_offsets_ext4_shutdown {}; - -struct trace_event_data_offsets_ext4_error {}; - -struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; - -struct trace_event_data_offsets_ext4_lazy_itable_init {}; - -struct trace_event_data_offsets_ext4_fc_replay_scan {}; - -struct trace_event_data_offsets_ext4_fc_replay {}; - -struct trace_event_data_offsets_ext4_fc_commit_start {}; - -struct trace_event_data_offsets_ext4_fc_commit_stop {}; - -struct trace_event_data_offsets_ext4_fc_stats {}; - -struct trace_event_data_offsets_ext4_fc_track_dentry {}; - -struct trace_event_data_offsets_ext4_fc_track_inode {}; - -struct trace_event_data_offsets_ext4_fc_track_range {}; - -struct trace_event_data_offsets_ext4_fc_cleanup {}; - -struct trace_event_data_offsets_ext4_update_sb {}; - -typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **); - -struct acpi_repair_info { - char name[4]; - acpi_repair_function repair_function; -}; - -struct acpi_table_rsdp { - char signature[8]; - u8 checksum; - char oem_id[6]; - u8 revision; - u32 rsdt_physical_address; - u32 length; - u64 xsdt_physical_address; - u8 extended_checksum; - u8 reserved[3]; -} __attribute__((packed)); - -struct acpi_table_facs { - char signature[4]; - u32 length; - u32 hardware_signature; - u32 firmware_waking_vector; - u32 global_lock; - u32 flags; - u64 xfirmware_waking_vector; - u8 version; - u8 reserved[3]; - u32 ospm_flags; - u8 reserved1[24]; -}; - -typedef acpi_status (*acpi_table_handler)(u32, void *, void *); - -struct acpi_address_range { - struct acpi_address_range *next; - struct acpi_namespace_node *region_node; - acpi_physical_address start_address; - acpi_physical_address end_address; -}; - -typedef int (*acpi_op_add)(struct acpi_device *); - -typedef void (*acpi_op_remove)(struct acpi_device *); - -typedef void (*acpi_op_notify)(struct acpi_device *, u32); - -struct acpi_device_ops { - acpi_op_add add; - acpi_op_remove remove; - acpi_op_notify notify; -}; - -struct acpi_driver { - char name[80]; - char class[80]; - const struct acpi_device_id *ids; - unsigned int flags; - struct acpi_device_ops ops; - struct device_driver drv; - struct module *owner; -}; - -enum { - ACPI_BUTTON_LID_INIT_IGNORE = 0, - ACPI_BUTTON_LID_INIT_OPEN = 1, - ACPI_BUTTON_LID_INIT_METHOD = 2, - ACPI_BUTTON_LID_INIT_DISABLED = 3, -}; - -struct acpi_button { - unsigned int type; - struct input_dev *input; - char phys[32]; - unsigned long pushed; - int last_state; - ktime_t last_time; - bool suspended; - bool lid_state_initialized; -}; - -typedef u32 (*acpi_event_handler)(void *); - -typedef enum { - OSL_GLOBAL_LOCK_HANDLER = 0, - OSL_NOTIFY_HANDLER = 1, - OSL_GPE_HANDLER = 2, - OSL_DEBUGGER_MAIN_THREAD = 3, - OSL_DEBUGGER_EXEC_THREAD = 4, - OSL_EC_POLL_HANDLER = 5, - OSL_EC_BURST_HANDLER = 6, -} acpi_execute_type; - -typedef void (*acpi_osd_exec_callback)(void *); - -enum iwl_bt_coex_profile_traffic_load { - IWL_BT_COEX_TRAFFIC_LOAD_NONE = 0, - IWL_BT_COEX_TRAFFIC_LOAD_LOW = 1, - IWL_BT_COEX_TRAFFIC_LOAD_HIGH = 2, - IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS = 3, -}; - -enum { - IWL_RATE_6M_PLCP = 13, - IWL_RATE_9M_PLCP = 15, - IWL_RATE_12M_PLCP = 5, - IWL_RATE_18M_PLCP = 7, - IWL_RATE_24M_PLCP = 9, - IWL_RATE_36M_PLCP = 11, - IWL_RATE_48M_PLCP = 1, - IWL_RATE_54M_PLCP = 3, - IWL_RATE_60M_PLCP = 3, - IWL_RATE_1M_PLCP = 10, - IWL_RATE_2M_PLCP = 20, - IWL_RATE_5M_PLCP = 55, - IWL_RATE_11M_PLCP = 110, -}; - -struct iwl_dram_scratch { - u8 try_cnt; - u8 bt_kill_cnt; - __le16 reserved; -}; - -struct iwl_tx_cmd { - __le16 len; - __le16 next_frame_len; - __le32 tx_flags; - struct iwl_dram_scratch scratch; - __le32 rate_n_flags; - u8 sta_id; - u8 sec_ctl; - u8 initial_rate_index; - u8 reserved; - u8 key[16]; - __le16 next_frame_flags; - __le16 reserved2; - union { - __le32 life_time; - __le32 attempt; - } stop_time; - __le32 dram_lsb_ptr; - u8 dram_msb_ptr; - u8 rts_retry_limit; - u8 data_retry_limit; - u8 tid_tspec; - union { - __le16 pm_frame_timeout; - __le16 attempt_duration; - } timeout; - __le16 driver_txop; - union { - struct { - struct {} __empty_payload; - u8 payload[0]; - }; - struct { - struct {} __empty_hdr; - struct ieee80211_hdr hdr[0]; - }; - }; -}; - -struct iwl_ssid_ie { - u8 id; - u8 len; - u8 ssid[32]; -}; - -struct iwl_scan_cmd { - __le16 len; - u8 scan_flags; - u8 channel_count; - __le16 quiet_time; - __le16 quiet_plcp_th; - __le16 good_CRC_th; - __le16 rx_chain; - __le32 max_out_time; - __le32 suspend_time; - __le32 flags; - __le32 filter_flags; - struct iwl_tx_cmd tx_cmd; - struct iwl_ssid_ie direct_scan[20]; - u8 data[0]; -}; - -struct iwl_scan_channel { - __le32 type; - __le16 channel; - u8 tx_gain; - u8 dsp_atten; - __le16 active_dwell; - __le16 passive_dwell; -}; - -struct iwl_scanstart_notification { - __le32 tsf_low; - __le32 tsf_high; - __le32 beacon_timer; - u8 channel; - u8 band; - u8 reserved[2]; - __le32 status; -}; - -struct iwl_scancomplete_notification { - u8 scanned_channels; - u8 status; - u8 bt_status; - u8 last_channel; - __le32 tsf_low; - __le32 tsf_high; -}; - -enum mac80211_rate_control_flags { - IEEE80211_TX_RC_USE_RTS_CTS = 1, - IEEE80211_TX_RC_USE_CTS_PROTECT = 2, - IEEE80211_TX_RC_USE_SHORT_PREAMBLE = 4, - IEEE80211_TX_RC_MCS = 8, - IEEE80211_TX_RC_GREEN_FIELD = 16, - IEEE80211_TX_RC_40_MHZ_WIDTH = 32, - IEEE80211_TX_RC_DUP_DATA = 64, - IEEE80211_TX_RC_SHORT_GI = 128, - IEEE80211_TX_RC_VHT_MCS = 256, - IEEE80211_TX_RC_80_MHZ_WIDTH = 512, - IEEE80211_TX_RC_160_MHZ_WIDTH = 1024, -}; - -enum rt2x00_delayed_flags { - DELAYED_UPDATE_BEACON = 0, -}; - -enum rfkill_hard_block_reasons { - RFKILL_HARD_BLOCK_SIGNAL = 1, - RFKILL_HARD_BLOCK_NOT_OWNER = 2, -}; - -struct ieee80211_cts { - __le16 frame_control; - __le16 duration; - u8 ra[6]; -}; - -struct ieee80211_rts { - __le16 frame_control; - __le16 duration; - u8 ra[6]; - u8 ta[6]; -}; - -struct rt2x00_sta { - int wcid; -}; - -struct component_ops { - int (*bind)(struct device *, struct device *, void *); - void (*unbind)(struct device *, struct device *, void *); -}; - -enum usb_port_connect_type { - USB_PORT_CONNECT_TYPE_UNKNOWN = 0, - USB_PORT_CONNECT_TYPE_HOT_PLUG = 1, - USB_PORT_CONNECT_TYPE_HARD_WIRED = 2, - USB_PORT_NOT_USED = 3, -}; - -enum pm_qos_flags_status { - PM_QOS_FLAGS_UNDEFINED = -1, - PM_QOS_FLAGS_NONE = 0, - PM_QOS_FLAGS_SOME = 1, - PM_QOS_FLAGS_ALL = 2, -}; - -typedef u32 usb_port_location_t; - -struct typec_connector; - -struct usb_port { - struct usb_device *child; - struct device dev; - struct usb_dev_state *port_owner; - struct usb_port *peer; - struct typec_connector *connector; - struct dev_pm_qos_request *req; - enum usb_port_connect_type connect_type; - enum usb_device_state state; - struct kernfs_node *state_kn; - usb_port_location_t location; - struct mutex status_lock; - u32 over_current_count; - u8 portnum; - u32 quirks; - unsigned int early_stop: 1; - unsigned int ignore_event: 1; - unsigned int is_superspeed: 1; - unsigned int usb3_lpm_u1_permit: 1; - unsigned int usb3_lpm_u2_permit: 1; -}; - -struct typec_connector { - void (*attach)(struct typec_connector *, struct device *); - void (*deattach)(struct typec_connector *, struct device *); -}; - -struct usb_hub_status { - __le16 wHubStatus; - __le16 wHubChange; -}; - -struct usb_port_status { - __le16 wPortStatus; - __le16 wPortChange; - __le32 dwExtPortStatus; -}; - -struct usb_hub { - struct device *intfdev; - struct usb_device *hdev; - struct kref kref; - struct urb *urb; - u8 (*buffer)[8]; - union { - struct usb_hub_status hub; - struct usb_port_status port; - } *status; - struct mutex status_mutex; - int error; - int nerrors; - unsigned long event_bits[1]; - unsigned long change_bits[1]; - unsigned long removed_bits[1]; - unsigned long wakeup_bits[1]; - unsigned long power_bits[1]; - unsigned long child_usage_bits[1]; - unsigned long warm_reset_bits[1]; - struct usb_hub_descriptor *descriptor; - struct usb_tt tt; - unsigned int mA_per_port; - unsigned int wakeup_enabled_descendants; - unsigned int limited_power: 1; - unsigned int quiescing: 1; - unsigned int disconnected: 1; - unsigned int in_reset: 1; - unsigned int quirk_disable_autosuspend: 1; - unsigned int quirk_check_port_auto_suspend: 1; - unsigned int has_indicators: 1; - u8 indicator[31]; - struct delayed_work leds; - struct delayed_work init_work; - struct work_struct events; - spinlock_t irq_urb_lock; - struct timer_list irq_urb_retry; - struct usb_port **ports; - struct list_head onboard_hub_devs; -}; - -struct kthread_delayed_work { - struct kthread_work work; - struct timer_list timer; -}; - -struct ptp_clock { - struct posix_clock clock; - struct device dev; - struct ptp_clock_info *info; - dev_t devid; - int index; - struct pps_device *pps_source; - long dialed_frequency; - struct list_head tsevqs; - spinlock_t tsevqs_lock; - struct mutex pincfg_mux; - wait_queue_head_t tsev_wq; - int defunct; - struct device_attribute *pin_dev_attr; - struct attribute **pin_attr; - struct attribute_group pin_attr_group; - const struct attribute_group *pin_attr_groups[2]; - struct kthread_worker *kworker; - struct kthread_delayed_work aux_work; - unsigned int max_vclocks; - unsigned int n_vclocks; - int *vclock_index; - struct mutex n_vclocks_mux; - bool is_virtual_clock; - bool has_cycles; - struct dentry *debugfs_root; -}; - -struct ptp_extts_event { - struct ptp_clock_time t; - unsigned int index; - unsigned int flags; - unsigned int rsv[2]; -}; - -struct timestamp_event_queue { - struct ptp_extts_event buf[128]; - int head; - int tail; - spinlock_t lock; - struct list_head qlist; - unsigned long *mask; - struct dentry *debugfs_instance; - struct debugfs_u32_array dfs_bitmap; -}; - -struct ptp_sys_offset_precise { - struct ptp_clock_time device; - struct ptp_clock_time sys_realtime; - struct ptp_clock_time sys_monoraw; - unsigned int rsv[4]; -}; - -struct ptp_clock_caps { - int max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int pps; - int n_pins; - int cross_timestamping; - int adjust_phase; - int max_phase_adj; - int rsv[11]; -}; - -struct ptp_sys_offset_extended { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[75]; -}; - -struct ptp_sys_offset { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[51]; -}; - -struct hid_usage_entry { - unsigned int page; - unsigned int usage; - const char *description; -}; - -enum hid_report_type { - HID_INPUT_REPORT = 0, - HID_OUTPUT_REPORT = 1, - HID_FEATURE_REPORT = 2, - HID_REPORT_TYPES = 3, -}; - -enum hid_type { - HID_TYPE_OTHER = 0, - HID_TYPE_USBMOUSE = 1, - HID_TYPE_USBNONE = 2, -}; - -struct hid_field; - -struct hid_field_entry; - -struct hid_device; - -struct hid_report { - struct list_head list; - struct list_head hidinput_list; - struct list_head field_entry_list; - unsigned int id; - enum hid_report_type type; - unsigned int application; - struct hid_field *field[256]; - struct hid_field_entry *field_entries; - unsigned int maxfield; - unsigned int size; - struct hid_device *device; - bool tool_active; - unsigned int tool; -}; - -struct hid_usage; - -struct hid_input; - -struct hid_field { - unsigned int physical; - unsigned int logical; - unsigned int application; - struct hid_usage *usage; - unsigned int maxusage; - unsigned int flags; - unsigned int report_offset; - unsigned int report_size; - unsigned int report_count; - unsigned int report_type; - __s32 *value; - __s32 *new_value; - __s32 *usages_priorities; - __s32 logical_minimum; - __s32 logical_maximum; - __s32 physical_minimum; - __s32 physical_maximum; - __s32 unit_exponent; - unsigned int unit; - bool ignored; - struct hid_report *report; - unsigned int index; - struct hid_input *hidinput; - __u16 dpad; - unsigned int slot_idx; -}; - -struct hid_usage { - unsigned int hid; - unsigned int collection_index; - unsigned int usage_index; - __s8 resolution_multiplier; - __s8 wheel_factor; - __u16 code; - __u8 type; - __s8 hat_min; - __s8 hat_max; - __s8 hat_dir; - __s16 wheel_accumulated; -}; - -struct hid_input { - struct list_head list; - struct hid_report *report; - struct input_dev *input; - const char *name; - struct list_head reports; - unsigned int application; - bool registered; -}; - -struct hid_field_entry { - struct list_head list; - struct hid_field *field; - unsigned int index; - __s32 priority; -}; - -struct hid_report_enum { - unsigned int numbered; - struct list_head report_list; - struct hid_report *report_id_hash[256]; -}; - -struct hid_collection; - -struct hid_driver; - -struct hid_ll_driver; - -struct hid_device { - __u8 *dev_rdesc; - unsigned int dev_rsize; - __u8 *rdesc; - unsigned int rsize; - struct hid_collection *collection; - unsigned int collection_size; - unsigned int maxcollection; - unsigned int maxapplication; - __u16 bus; - __u16 group; - __u32 vendor; - __u32 product; - __u32 version; - enum hid_type type; - unsigned int country; - struct hid_report_enum report_enum[3]; - struct work_struct led_work; - struct semaphore driver_input_lock; - struct device dev; - struct hid_driver *driver; - void *devres_group_id; - const struct hid_ll_driver *ll_driver; - struct mutex ll_open_lock; - unsigned int ll_open_count; - unsigned long status; - unsigned int claimed; - unsigned int quirks; - unsigned int initial_quirks; - bool io_started; - struct list_head inputs; - void *hiddev; - void *hidraw; - char name[128]; - char phys[64]; - char uniq[64]; - void *driver_data; - int (*ff_init)(struct hid_device *); - int (*hiddev_connect)(struct hid_device *, unsigned int); - void (*hiddev_disconnect)(struct hid_device *); - void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*hiddev_report_event)(struct hid_device *, struct hid_report *); - unsigned short debug; - struct dentry *debug_dir; - struct dentry *debug_rdesc; - struct dentry *debug_events; - struct list_head debug_list; - spinlock_t debug_list_lock; - wait_queue_head_t debug_wait; - struct kref ref; - unsigned int id; -}; - -struct hid_collection { - int parent_idx; - unsigned int type; - unsigned int usage; - unsigned int level; -}; - -struct hid_device_id; - -struct hid_report_id; - -struct hid_usage_id; - -struct hid_driver { - char *name; - const struct hid_device_id *id_table; - struct list_head dyn_list; - spinlock_t dyn_lock; - bool (*match)(struct hid_device *, bool); - int (*probe)(struct hid_device *, const struct hid_device_id *); - void (*remove)(struct hid_device *); - const struct hid_report_id *report_table; - int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int); - const struct hid_usage_id *usage_table; - int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*report)(struct hid_device *, struct hid_report *); - __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); - int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_configured)(struct hid_device *, struct hid_input *); - void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *); - int (*suspend)(struct hid_device *, pm_message_t); - int (*resume)(struct hid_device *); - int (*reset_resume)(struct hid_device *); - struct device_driver driver; -}; - -struct hid_device_id { - __u16 bus; - __u16 group; - __u32 vendor; - __u32 product; - kernel_ulong_t driver_data; -}; - -struct hid_report_id { - __u32 report_type; -}; - -struct hid_usage_id { - __u32 usage_hid; - __u32 usage_type; - __u32 usage_code; -}; - -struct hid_ll_driver { - int (*start)(struct hid_device *); - void (*stop)(struct hid_device *); - int (*open)(struct hid_device *); - void (*close)(struct hid_device *); - int (*power)(struct hid_device *, int); - int (*parse)(struct hid_device *); - void (*request)(struct hid_device *, struct hid_report *, int); - int (*wait)(struct hid_device *); - int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); - int (*output_report)(struct hid_device *, __u8 *, size_t); - int (*idle)(struct hid_device *, int, int, int); - bool (*may_wakeup)(struct hid_device *); - unsigned int max_buffer_size; -}; - -struct hid_debug_list { - struct { - union { - struct __kfifo kfifo; - char *type; - const char *const_type; - char (*rectype)[0]; - char *ptr; - const char *ptr_const; - }; - char buf[0]; - } hid_debug_fifo; - struct fasync_struct *fasync; - struct hid_device *hdev; - struct list_head node; - struct mutex read_mutex; -}; - -enum { - ETHTOOL_A_WOL_UNSPEC = 0, - ETHTOOL_A_WOL_HEADER = 1, - ETHTOOL_A_WOL_MODES = 2, - ETHTOOL_A_WOL_SOPASS = 3, - __ETHTOOL_A_WOL_CNT = 4, - ETHTOOL_A_WOL_MAX = 3, -}; - -struct wol_reply_data { - struct ethnl_reply_data base; - struct ethtool_wolinfo wol; - bool show_sopass; -}; - -struct inet6_ifaddr { - struct in6_addr addr; - __u32 prefix_len; - __u32 rt_priority; - __u32 valid_lft; - __u32 prefered_lft; - refcount_t refcnt; - spinlock_t lock; - int state; - __u32 flags; - __u8 dad_probes; - __u8 stable_privacy_retry; - __u16 scope; - __u64 dad_nonce; - unsigned long cstamp; - unsigned long tstamp; - struct delayed_work dad_work; - struct inet6_dev *idev; - struct fib6_info *rt; - struct hlist_node addr_lst; - struct list_head if_list; - struct list_head if_list_aux; - struct list_head tmp_list; - struct inet6_ifaddr *ifpub; - int regen_count; - bool tokenized; - u8 ifa_proto; - struct callback_head rcu; - struct in6_addr peer_addr; -}; - -enum br_pkt_type { - BR_PKT_UNICAST = 0, - BR_PKT_MULTICAST = 1, - BR_PKT_BROADCAST = 2, -}; - -enum { - MDB_RTR_TYPE_DISABLED = 0, - MDB_RTR_TYPE_TEMP_QUERY = 1, - MDB_RTR_TYPE_PERM = 2, - MDB_RTR_TYPE_TEMP = 3, -}; - -enum { - BR_MCAST_DIR_RX = 0, - BR_MCAST_DIR_TX = 1, - BR_MCAST_DIR_SIZE = 2, -}; - -struct br_frame_type { - __be16 type; - int (*frame_handler)(struct net_bridge_port *, struct sk_buff *); - struct hlist_node list; -}; - -struct net_bridge_mdb_entry { - struct rhash_head rhnode; - struct net_bridge *br; - struct net_bridge_port_group __attribute__((btf_type_tag("rcu"))) *ports; - struct br_ip addr; - bool host_joined; - struct timer_list timer; - struct hlist_node mdb_node; - struct net_bridge_mcast_gc mcast_gc; - struct callback_head rcu; -}; - -struct pci_root_res { - struct list_head list; - struct resource res; -}; - -struct pci_root_info___2 { - struct list_head list; - char name[12]; - struct list_head resources; - struct resource busn; - int node; - int link; -}; - -struct amd_hostbridge { - u32 bus; - u32 slot; - u32 device; -}; - -typedef void (*btf_trace_emulate_vsyscall)(void *, int); - -enum { - EMULATE = 0, - XONLY = 1, - NONE = 2, -}; - -enum x86_pf_error_code { - X86_PF_PROT = 1, - X86_PF_WRITE = 2, - X86_PF_USER = 4, - X86_PF_RSVD = 8, - X86_PF_INSTR = 16, - X86_PF_PK = 32, - X86_PF_SHSTK = 64, - X86_PF_SGX = 32768, - X86_PF_RMP = 2147483648, -}; - -struct trace_event_raw_emulate_vsyscall { - struct trace_entry ent; - int nr; - char __data[0]; -}; - -struct seccomp_data { - int nr; - __u32 arch; - __u64 instruction_pointer; - __u64 args[6]; -}; - -struct trace_event_data_offsets_emulate_vsyscall {}; - -struct ptrace_peeksiginfo_args { - __u64 off; - __u32 flags; - __s32 nr; -}; - -struct ptrace_syscall_info { - __u8 op; - __u8 pad[3]; - __u32 arch; - __u64 instruction_pointer; - __u64 stack_pointer; - union { - struct { - __u64 nr; - __u64 args[6]; - } entry; - struct { - __s64 rval; - __u8 is_error; - } exit; - struct { - __u64 nr; - __u64 args[6]; - __u32 ret_data; - } seccomp; - }; -}; - -struct ptrace_rseq_configuration { - __u64 rseq_abi_pointer; - __u32 rseq_abi_size; - __u32 signature; - __u32 flags; - __u32 pad; -}; - -typedef struct mutex *class_mutex_t; - -typedef class_mutex_t class_mutex_intr_t; - -typedef struct { - rwlock_t *lock; -} class_write_lock_irq_t; - -typedef struct task_struct *class_task_lock_t; - -typedef struct { - spinlock_t *lock; -} class_spinlock_t; - -typedef __kernel_long_t __kernel_suseconds_t; - -typedef __kernel_suseconds_t suseconds_t; - -struct old_itimerspec32 { - struct old_timespec32 it_interval; - struct old_timespec32 it_value; -}; - -enum event_trigger_type { - ETT_NONE = 0, - ETT_TRACE_ONOFF = 1, - ETT_SNAPSHOT = 2, - ETT_STACKTRACE = 4, - ETT_EVENT_ENABLE = 8, - ETT_EVENT_HIST = 16, - ETT_HIST_ENABLE = 32, - ETT_EVENT_EPROBE = 64, -}; - -struct event_trigger_data; - -struct event_trigger_ops; - -struct event_command { - struct list_head list; - char *name; - enum event_trigger_type trigger_type; - int flags; - int (*parse)(struct event_command *, struct trace_event_file *, char *, char *, char *); - int (*reg)(char *, struct event_trigger_data *, struct trace_event_file *); - void (*unreg)(char *, struct event_trigger_data *, struct trace_event_file *); - void (*unreg_all)(struct trace_event_file *); - int (*set_filter)(char *, struct event_trigger_data *, struct trace_event_file *); - struct event_trigger_ops * (*get_trigger_ops)(char *, char *); -}; - -struct event_trigger_data { - unsigned long count; - int ref; - int flags; - struct event_trigger_ops *ops; - struct event_command *cmd_ops; - struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; - char *filter_str; - void *private_data; - bool paused; - bool paused_tmp; - struct list_head list; - char *name; - struct list_head named_list; - struct event_trigger_data *named_data; -}; - -struct event_trigger_ops { - void (*trigger)(struct event_trigger_data *, struct trace_buffer *, void *, struct ring_buffer_event *); - int (*init)(struct event_trigger_data *); - void (*free)(struct event_trigger_data *); - int (*print)(struct seq_file *, struct event_trigger_data *); -}; - -enum event_command_flags { - EVENT_CMD_FL_POST_TRIGGER = 1, - EVENT_CMD_FL_NEEDS_REC = 2, -}; - -enum { - EVENT_TRIGGER_FL_PROBE = 1, -}; - -struct enable_trigger_data { - struct trace_event_file *file; - bool enable; - bool hist; -}; - -enum perf_event_type { - PERF_RECORD_MMAP = 1, - PERF_RECORD_LOST = 2, - PERF_RECORD_COMM = 3, - PERF_RECORD_EXIT = 4, - PERF_RECORD_THROTTLE = 5, - PERF_RECORD_UNTHROTTLE = 6, - PERF_RECORD_FORK = 7, - PERF_RECORD_READ = 8, - PERF_RECORD_SAMPLE = 9, - PERF_RECORD_MMAP2 = 10, - PERF_RECORD_AUX = 11, - PERF_RECORD_ITRACE_START = 12, - PERF_RECORD_LOST_SAMPLES = 13, - PERF_RECORD_SWITCH = 14, - PERF_RECORD_SWITCH_CPU_WIDE = 15, - PERF_RECORD_NAMESPACES = 16, - PERF_RECORD_KSYMBOL = 17, - PERF_RECORD_BPF_EVENT = 18, - PERF_RECORD_CGROUP = 19, - PERF_RECORD_TEXT_POKE = 20, - PERF_RECORD_AUX_OUTPUT_HW_ID = 21, - PERF_RECORD_MAX = 22, -}; - -struct perf_event_header { - __u32 type; - __u16 misc; - __u16 size; -}; - -enum zone_watermarks { - WMARK_MIN = 0, - WMARK_LOW = 1, - WMARK_HIGH = 2, - WMARK_PROMO = 3, - NR_WMARK = 4, -}; - -enum { - SWP_USED = 1, - SWP_WRITEOK = 2, - SWP_DISCARDABLE = 4, - SWP_DISCARDING = 8, - SWP_SOLIDSTATE = 16, - SWP_CONTINUED = 32, - SWP_BLKDEV = 64, - SWP_ACTIVATED = 128, - SWP_FS_OPS = 256, - SWP_AREA_DISCARD = 512, - SWP_PAGE_DISCARD = 1024, - SWP_STABLE_WRITES = 2048, - SWP_SYNCHRONOUS_IO = 4096, - SWP_SCANNING = 16384, -}; - -struct swap_extent { - struct rb_node rb_node; - unsigned long start_page; - unsigned long nr_pages; - sector_t start_block; -}; - -typedef int rmap_t; - -union swap_header { - struct { - char reserved[4086]; - char magic[10]; - } magic; - struct { - char bootbits[1024]; - __u32 version; - __u32 last_page; - __u32 nr_badpages; - unsigned char sws_uuid[16]; - unsigned char sws_volume[16]; - __u32 padding[117]; - __u32 badpages[1]; - } info; -}; - -struct kernfs_fs_context { - struct kernfs_root *root; - void *ns_tag; - unsigned long magic; - bool new_sb_created; -}; - -enum file_time_flags { - S_ATIME = 1, - S_MTIME = 2, - S_CTIME = 4, - S_VERSION = 8, -}; - -struct msdos_inode_info { - spinlock_t cache_lru_lock; - struct list_head cache_lru; - int nr_caches; - unsigned int cache_valid_id; - loff_t mmu_private; - int i_start; - int i_logstart; - int i_attrs; - loff_t i_pos; - struct hlist_node i_fat_hash; - struct hlist_node i_dir_hash; - struct rw_semaphore truncate_lock; - struct timespec64 i_crtime; - struct inode vfs_inode; -}; - -struct fat_mount_options { - kuid_t fs_uid; - kgid_t fs_gid; - unsigned short fs_fmask; - unsigned short fs_dmask; - unsigned short codepage; - int time_offset; - char *iocharset; - unsigned short shortname; - unsigned char name_check; - unsigned char errors; - unsigned char nfs; - unsigned short allow_utime; - unsigned int quiet: 1; - unsigned int showexec: 1; - unsigned int sys_immutable: 1; - unsigned int dotsOK: 1; - unsigned int isvfat: 1; - unsigned int utf8: 1; - unsigned int unicode_xlate: 1; - unsigned int numtail: 1; - unsigned int flush: 1; - unsigned int nocase: 1; - unsigned int usefree: 1; - unsigned int tz_set: 1; - unsigned int rodir: 1; - unsigned int discard: 1; - unsigned int dos1xfloppy: 1; -}; - -struct fatent_operations; - -struct msdos_sb_info { - unsigned short sec_per_clus; - unsigned short cluster_bits; - unsigned int cluster_size; - unsigned char fats; - unsigned char fat_bits; - unsigned short fat_start; - unsigned long fat_length; - unsigned long dir_start; - unsigned short dir_entries; - unsigned long data_start; - unsigned long max_cluster; - unsigned long root_cluster; - unsigned long fsinfo_sector; - struct mutex fat_lock; - struct mutex nfs_build_inode_lock; - struct mutex s_lock; - unsigned int prev_free; - unsigned int free_clusters; - unsigned int free_clus_valid; - struct fat_mount_options options; - struct nls_table *nls_disk; - struct nls_table *nls_io; - const void *dir_ops; - int dir_per_block; - int dir_per_block_bits; - unsigned int vol_id; - int fatent_shift; - const struct fatent_operations *fatent_ops; - struct inode *fat_inode; - struct inode *fsinfo_inode; - struct ratelimit_state ratelimit; - spinlock_t inode_hash_lock; - struct hlist_head inode_hashtable[256]; - spinlock_t dir_hash_lock; - struct hlist_head dir_hashtable[256]; - unsigned int dirty; - struct callback_head rcu; -}; - -struct fat_entry; - -struct fatent_operations { - void (*ent_blocknr)(struct super_block *, int, int *, sector_t *); - void (*ent_set_ptr)(struct fat_entry *, int); - int (*ent_bread)(struct super_block *, struct fat_entry *, int, sector_t); - int (*ent_get)(struct fat_entry *); - void (*ent_put)(struct fat_entry *, int); - int (*ent_next)(struct fat_entry *); -}; - -struct msdos_dir_entry; - -struct fat_slot_info { - loff_t i_pos; - loff_t slot_off; - int nr_slots; - struct msdos_dir_entry *de; - struct buffer_head *bh; -}; - -struct msdos_dir_entry { - __u8 name[11]; - __u8 attr; - __u8 lcase; - __u8 ctime_cs; - __le16 ctime; - __le16 cdate; - __le16 adate; - __le16 starthi; - __le16 time; - __le16 date; - __le16 start; - __le32 size; -}; - -typedef int __kernel_key_t; - -typedef __kernel_key_t key_t; - -struct kern_ipc_perm { - spinlock_t lock; - bool deleted; - int id; - key_t key; - kuid_t uid; - kgid_t gid; - kuid_t cuid; - kgid_t cgid; - umode_t mode; - unsigned long seq; - void *security; - struct rhash_head khtnode; - struct callback_head rcu; - refcount_t refcount; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct ipc_params; - -struct ipc_ops { - int (*getnew)(struct ipc_namespace *, struct ipc_params *); - int (*associate)(struct kern_ipc_perm *, int); - int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *); -}; - -struct ipc_params { - key_t key; - int flg; - union { - size_t size; - int nsems; - } u; -}; - -struct ipc_proc_iface { - const char *path; - const char *header; - int ids; - int (*show)(struct seq_file *, void *); -}; - -typedef unsigned int __kernel_mode_t; - -struct ipc64_perm { - __kernel_key_t key; - __kernel_uid32_t uid; - __kernel_gid32_t gid; - __kernel_uid32_t cuid; - __kernel_gid32_t cgid; - __kernel_mode_t mode; - unsigned char __pad1[0]; - unsigned short seq; - unsigned short __pad2; - __kernel_ulong_t __unused1; - __kernel_ulong_t __unused2; -}; - -typedef unsigned int __kernel_uid_t; - -typedef unsigned int __kernel_gid_t; - -struct ipc_perm { - __kernel_key_t key; - __kernel_uid_t uid; - __kernel_gid_t gid; - __kernel_uid_t cuid; - __kernel_gid_t cgid; - __kernel_mode_t mode; - unsigned short seq; -}; - -struct ipc_proc_iter { - struct ipc_namespace *ns; - struct pid_namespace *pid_ns; - struct ipc_proc_iface *iface; -}; - -struct open_how { - __u64 flags; - __u64 mode; - __u64 resolve; -}; - -struct io_open { - struct file *file; - int dfd; - u32 file_slot; - struct filename *filename; - struct open_how how; - unsigned long nofile; -}; - -struct io_close { - struct file *file; - int fd; - u32 file_slot; -}; - -struct io_fixed_install { - struct file *file; - unsigned int o_flags; -}; - -struct open_flags { - int open_flag; - umode_t mode; - int acc_mode; - int intent; - int lookup_flags; -}; - -enum { - IO_CHECK_CQ_OVERFLOW_BIT = 0, - IO_CHECK_CQ_DROPPED_BIT = 1, -}; - -struct io_napi_entry { - unsigned int napi_id; - struct list_head list; - unsigned long timeout; - struct hlist_node node; - struct callback_head rcu; -}; - -struct io_wait_queue { - struct wait_queue_entry wq; - struct io_ring_ctx *ctx; - unsigned int cq_tail; - unsigned int nr_timeouts; - ktime_t timeout; - unsigned int napi_busy_poll_to; - bool napi_prefer_busy_poll; -}; - -struct io_uring_napi { - __u32 busy_poll_to; - __u8 prefer_busy_poll; - __u8 pad[3]; - __u64 resv; -}; - -enum acpi_predicate { - all_versions = 0, - less_than_or_equal = 1, - equal = 2, - greater_than_or_equal = 3, -}; - -struct acpi_platform_list { - char oem_id[7]; - char oem_table_id[9]; - u32 oem_revision; - char *table; - enum acpi_predicate pred; - char *reason; - u32 data; -}; - -struct acpi_osi_config { - u8 default_disabling; - unsigned int linux_enable: 1; - unsigned int linux_dmi: 1; - unsigned int linux_cmdline: 1; - unsigned int darwin_enable: 1; - unsigned int darwin_dmi: 1; - unsigned int darwin_cmdline: 1; -}; - -struct acpi_osi_entry { - char string[64]; - bool enable; -}; - -typedef u32 (*acpi_interface_handler)(acpi_string, u32); - -struct clk_fractional_divider { - struct clk_hw hw; - void *reg; - u8 mshift; - u8 mwidth; - u8 nshift; - u8 nwidth; - u8 flags; - void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); - spinlock_t *lock; -}; - -struct u32_fract { - __u32 numerator; - __u32 denominator; -}; - -struct sync_merge_data { - char name[32]; - __s32 fd2; - __s32 fence; - __u32 flags; - __u32 pad; -}; - -struct sync_set_deadline { - __u64 deadline_ns; - __u64 pad; -}; - -struct sync_file_info { - char name[32]; - __s32 status; - __u32 flags; - __u32 num_fences; - __u32 pad; - __u64 sync_fence_info; -}; - -struct sync_fence_info { - char obj_name[32]; - char driver_name[32]; - __s32 status; - __u32 flags; - __u64 timestamp_ns; -}; - -struct swmii_regs { - u16 bmsr; - u16 lpa; - u16 lpagb; - u16 estat; -}; - -enum { - SWMII_SPEED_10 = 0, - SWMII_SPEED_100 = 1, - SWMII_SPEED_1000 = 2, - SWMII_DUPLEX_HALF = 0, - SWMII_DUPLEX_FULL = 1, -}; - -struct fixed_phy_status { - int link; - int speed; - int duplex; - int pause; - int asym_pause; -}; - -struct rtl821x_priv { - u16 phycr1; - u16 phycr2; - bool has_phycr2; - struct clk *clk; -}; - -enum { - SILICON_A_STEP = 0, - SILICON_B_STEP = 1, - SILICON_C_STEP = 2, - SILICON_D_STEP = 3, - SILICON_E_STEP = 4, - SILICON_TC_STEP = 14, - SILICON_Z_STEP = 15, -}; - -enum iwl_tx_queue_cfg_actions { - TX_QUEUE_CFG_ENABLE_QUEUE = 1, - TX_QUEUE_CFG_TFD_SHORT_FORMAT = 2, -}; - -enum iwl_tx_cmd_sec_ctrl { - TX_CMD_SEC_WEP = 1, - TX_CMD_SEC_CCM = 2, - TX_CMD_SEC_TKIP = 3, - TX_CMD_SEC_EXT = 4, - TX_CMD_SEC_GCMP = 5, - TX_CMD_SEC_KEY128 = 8, - TX_CMD_SEC_KEY_FROM_TABLE = 16, -}; - -struct iwl_tfd_tb { - __le32 lo; - __le16 hi_n_len; -} __attribute__((packed)); - -struct iwl_tfd { - u8 __reserved1[3]; - u8 num_tbs; - struct iwl_tfd_tb tbs[20]; - __le32 __pad; -}; - -struct iwl_tfh_tb { - __le16 tb_len; - __le64 addr; -} __attribute__((packed)); - -struct iwl_tfh_tfd { - __le16 num_tbs; - struct iwl_tfh_tb tbs[25]; - __le32 __pad; -}; - -struct iwl_gen3_bc_tbl_entry { - __le16 tfd_offset; -}; - -struct iwlagn_scd_bc_tbl { - __le16 tfd_offset[320]; -}; - -struct iwl_dram_sec_info { - __le32 pn_low; - __le16 pn_high; - __le16 aux_info; -}; - -struct iwl_tx_cmd_gen2 { - __le16 len; - __le16 offload_assist; - __le32 flags; - struct iwl_dram_sec_info dram_info; - __le32 rate_n_flags; - struct ieee80211_hdr hdr[0]; -}; - -struct iwl_tx_queue_cfg_rsp { - __le16 queue_number; - __le16 flags; - __le16 write_pointer; - __le16 reserved; -}; - -struct iwl_tx_queue_cfg_cmd { - u8 sta_id; - u8 tid; - __le16 flags; - __le32 cb_size; - __le64 byte_cnt_addr; - __le64 tfdq_addr; -}; - -struct iwl_tx_cmd___2 { - __le16 len; - __le16 offload_assist; - __le32 tx_flags; - struct { - u8 try_cnt; - u8 btkill_cnt; - __le16 reserved; - } scratch; - __le32 rate_n_flags; - u8 sta_id; - u8 sec_ctl; - u8 initial_rate_index; - u8 reserved2; - u8 key[16]; - __le32 reserved3; - __le32 life_time; - __le32 dram_lsb_ptr; - u8 dram_msb_ptr; - u8 rts_retry_limit; - u8 data_retry_limit; - u8 tid_tspec; - __le16 pm_frame_timeout; - __le16 reserved4; - union { - struct { - struct {} __empty_payload; - u8 payload[0]; - }; - struct { - struct {} __empty_hdr; - struct ieee80211_hdr hdr[0]; - }; - }; -}; - -enum iwl_sec_key_flags { - IWL_SEC_KEY_FLAG_CIPHER_MASK = 7, - IWL_SEC_KEY_FLAG_CIPHER_WEP = 1, - IWL_SEC_KEY_FLAG_CIPHER_CCMP = 2, - IWL_SEC_KEY_FLAG_CIPHER_TKIP = 3, - IWL_SEC_KEY_FLAG_CIPHER_GCMP = 5, - IWL_SEC_KEY_FLAG_NO_TX = 8, - IWL_SEC_KEY_FLAG_KEY_SIZE = 16, - IWL_SEC_KEY_FLAG_MFP = 32, - IWL_SEC_KEY_FLAG_MCAST_KEY = 64, - IWL_SEC_KEY_FLAG_SPP_AMSDU = 128, -}; - -enum iwl_ctxt_action { - FW_CTXT_ACTION_INVALID = 0, - FW_CTXT_ACTION_ADD = 1, - FW_CTXT_ACTION_MODIFY = 2, - FW_CTXT_ACTION_REMOVE = 3, -}; - -struct iwl_sec_key_cmd { - __le32 action; - union { - struct { - __le32 sta_mask; - __le32 key_id; - __le32 key_flags; - u8 key[32]; - u8 tkip_mic_rx_key[8]; - u8 tkip_mic_tx_key[8]; - __le64 rx_seq; - __le64 tx_seq; - } __attribute__((packed)) add; - struct { - __le32 old_sta_mask; - __le32 new_sta_mask; - __le32 key_id; - __le32 key_flags; - } modify; - struct { - __le32 sta_mask; - __le32 key_id; - __le32 key_flags; - } remove; - } u; -}; - -struct iwl_mvm_sta_key_update_data { - struct ieee80211_sta *sta; - u32 old_sta_mask; - u32 new_sta_mask; - int err; -}; - -struct acpi_bus_type { - struct list_head list; - const char *name; - bool (*match)(struct device *); - struct acpi_device * (*find_companion)(struct device *); - void (*setup)(struct device *); -}; - -struct acpi_pld_info { - u8 revision; - u8 ignore_color; - u8 red; - u8 green; - u8 blue; - u16 width; - u16 height; - u8 user_visible; - u8 dock; - u8 lid; - u8 panel; - u8 vertical_position; - u8 horizontal_position; - u8 shape; - u8 group_orientation; - u8 group_token; - u8 group_position; - u8 bay; - u8 ejectable; - u8 ospm_eject_required; - u8 cabinet_number; - u8 card_cage_number; - u8 reference; - u8 rotation; - u8 order; - u8 reserved; - u16 vertical_offset; - u16 horizontal_offset; -}; - -struct net_offload { - struct offload_callbacks callbacks; - unsigned int flags; - u32 secret; -}; - -struct rps_sock_flow_table; - -struct net_hotdata { - struct packet_offload ip_packet_offload; - struct net_offload tcpv4_offload; - struct net_protocol tcp_protocol; - struct net_offload udpv4_offload; - struct net_protocol udp_protocol; - struct packet_offload ipv6_packet_offload; - struct net_offload tcpv6_offload; - struct inet6_protocol tcpv6_protocol; - struct inet6_protocol udpv6_protocol; - struct net_offload udpv6_offload; - struct list_head offload_base; - struct list_head ptype_all; - struct kmem_cache *skbuff_cache; - struct kmem_cache *skbuff_fclone_cache; - struct kmem_cache *skb_small_head_cache; - struct rps_sock_flow_table __attribute__((btf_type_tag("rcu"))) *rps_sock_flow_table; - u32 rps_cpu_mask; - int gro_normal_batch; - int netdev_budget; - int netdev_budget_usecs; - int tstamp_prequeue; - int max_backlog; - int dev_tx_weight; - int dev_rx_weight; -}; - -struct rps_sock_flow_table { - u32 mask; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 ents[0]; -}; - -enum { - ETHTOOL_A_PLCA_UNSPEC = 0, - ETHTOOL_A_PLCA_HEADER = 1, - ETHTOOL_A_PLCA_VERSION = 2, - ETHTOOL_A_PLCA_ENABLED = 3, - ETHTOOL_A_PLCA_STATUS = 4, - ETHTOOL_A_PLCA_NODE_CNT = 5, - ETHTOOL_A_PLCA_NODE_ID = 6, - ETHTOOL_A_PLCA_TO_TMR = 7, - ETHTOOL_A_PLCA_BURST_CNT = 8, - ETHTOOL_A_PLCA_BURST_TMR = 9, - __ETHTOOL_A_PLCA_CNT = 10, - ETHTOOL_A_PLCA_MAX = 9, -}; - -enum { - NLA_UNSPEC = 0, - NLA_U8 = 1, - NLA_U16 = 2, - NLA_U32 = 3, - NLA_U64 = 4, - NLA_STRING = 5, - NLA_FLAG = 6, - NLA_MSECS = 7, - NLA_NESTED = 8, - NLA_NESTED_ARRAY = 9, - NLA_NUL_STRING = 10, - NLA_BINARY = 11, - NLA_S8 = 12, - NLA_S16 = 13, - NLA_S32 = 14, - NLA_S64 = 15, - NLA_BITFIELD32 = 16, - NLA_REJECT = 17, - NLA_BE16 = 18, - NLA_BE32 = 19, - NLA_SINT = 20, - NLA_UINT = 21, - __NLA_TYPE_MAX = 22, -}; - -struct plca_reply_data { - struct ethnl_reply_data base; - struct phy_plca_cfg plca_cfg; - struct phy_plca_status plca_st; -}; - -struct ethtool_phy_ops { - int (*get_sset_count)(struct phy_device *); - int (*get_strings)(struct phy_device *, u8 *); - int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); - int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *, struct netlink_ext_ack *); - int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); - int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *); - int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *); -}; - -enum nft_last_attributes { - NFTA_LAST_UNSPEC = 0, - NFTA_LAST_SET = 1, - NFTA_LAST_MSECS = 2, - NFTA_LAST_PAD = 3, - __NFTA_LAST_MAX = 4, -}; - -struct nft_last; - -struct nft_last_priv { - struct nft_last *last; -}; - -struct nft_last { - unsigned long jiffies; - unsigned int set; -}; - -enum { - TCP_FLAG_CWR = 32768, - TCP_FLAG_ECE = 16384, - TCP_FLAG_URG = 8192, - TCP_FLAG_ACK = 4096, - TCP_FLAG_PSH = 2048, - TCP_FLAG_RST = 1024, - TCP_FLAG_SYN = 512, - TCP_FLAG_FIN = 256, - TCP_RESERVED_BITS = 15, - TCP_DATA_OFFSET = 240, -}; - -struct static_key_false_deferred { - struct static_key_false key; - unsigned long timeout; - struct delayed_work work; -}; - -struct ip6fl_iter_state { - struct seq_net_private p; - struct pid_namespace *pid_ns; - int bucket; -}; - -enum ieee80211_he_mcs_support { - IEEE80211_HE_MCS_SUPPORT_0_7 = 0, - IEEE80211_HE_MCS_SUPPORT_0_9 = 1, - IEEE80211_HE_MCS_SUPPORT_0_11 = 2, - IEEE80211_HE_MCS_NOT_SUPPORTED = 3, -}; - -enum ieee80211_vht_opmode_bits { - IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 3, - IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ = 0, - IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ = 1, - IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ = 2, - IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ = 3, - IEEE80211_OPMODE_NOTIF_BW_160_80P80 = 4, - IEEE80211_OPMODE_NOTIF_RX_NSS_MASK = 112, - IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT = 4, - IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF = 128, -}; - -enum wiphy_opmode_flag { - STA_OPMODE_MAX_BW_CHANGED = 1, - STA_OPMODE_SMPS_MODE_CHANGED = 2, - STA_OPMODE_N_SS_CHANGED = 4, -}; - -struct sta_opmode_info { - u32 changed; - enum nl80211_smps_mode smps_mode; - enum nl80211_chan_width bw; - u8 rx_nss; -}; - -struct pt_filter { - unsigned long msr_a; - unsigned long msr_b; - unsigned long config; -}; - -struct pt_filters { - struct pt_filter filter[4]; - unsigned int nr_filters; -}; - -struct pt { - struct perf_output_handle handle; - struct pt_filters filters; - int handle_nmi; - int vmx_on; - u64 output_base; - u64 output_mask; -}; - -struct pt_pmu { - struct pmu pmu; - u32 caps[8]; - bool vmx; - bool branch_en_always_on; - unsigned long max_nonturbo_ratio; - unsigned int tsc_art_num; - unsigned int tsc_art_den; -}; - -struct pt_cap_desc { - const char *name; - u32 leaf; - u8 reg; - u32 mask; -}; - -struct pt_address_range { - unsigned long msr_a; - unsigned long msr_b; - unsigned int reg_off; -}; - -enum pt_capabilities { - PT_CAP_max_subleaf = 0, - PT_CAP_cr3_filtering = 1, - PT_CAP_psb_cyc = 2, - PT_CAP_ip_filtering = 3, - PT_CAP_mtc = 4, - PT_CAP_ptwrite = 5, - PT_CAP_power_event_trace = 6, - PT_CAP_event_trace = 7, - PT_CAP_tnt_disable = 8, - PT_CAP_topa_output = 9, - PT_CAP_topa_multiple_entries = 10, - PT_CAP_single_range_output = 11, - PT_CAP_output_subsys = 12, - PT_CAP_payloads_lip = 13, - PT_CAP_num_address_ranges = 14, - PT_CAP_mtc_periods = 15, - PT_CAP_cycle_thresholds = 16, - PT_CAP_psb_periods = 17, -}; - -enum { - x86_lbr_exclusive_lbr = 0, - x86_lbr_exclusive_bts = 1, - x86_lbr_exclusive_pt = 2, - x86_lbr_exclusive_max = 3, -}; - -enum cpuid_regs_idx { - CPUID_EAX = 0, - CPUID_EBX = 1, - CPUID_ECX = 2, - CPUID_EDX = 3, -}; - -enum perf_addr_filter_action_t { - PERF_ADDR_FILTER_ACTION_STOP = 0, - PERF_ADDR_FILTER_ACTION_START = 1, - PERF_ADDR_FILTER_ACTION_FILTER = 2, -}; - -struct topa { - struct list_head list; - u64 offset; - size_t size; - int last; - unsigned int z_count; -}; - -struct topa_entry { - u64 end: 1; - u64 rsvd0: 1; - u64 intr: 1; - u64 rsvd1: 1; - u64 stop: 1; - u64 rsvd2: 1; - u64 size: 4; - u64 rsvd3: 2; - u64 base: 36; - u64 rsvd4: 16; -}; - -struct topa_page { - struct topa_entry table[507]; - struct topa topa; -}; - -struct dev_ext_attribute { - struct device_attribute attr; - void *var; -}; - -struct perf_addr_filter { - struct list_head entry; - struct path path; - unsigned long offset; - unsigned long size; - enum perf_addr_filter_action_t action; -}; - -struct pt_buffer { - struct list_head tables; - struct topa *first; - struct topa *last; - struct topa *cur; - unsigned int cur_idx; - size_t output_off; - unsigned long nr_pages; - local_t data_size; - local64_t head; - bool snapshot; - bool single; - long stop_pos; - long intr_pos; - struct topa_entry *stop_te; - struct topa_entry *intr_te; - void **data_pages; -}; - -enum proc_cn_event { - PROC_EVENT_NONE = 0, - PROC_EVENT_FORK = 1, - PROC_EVENT_EXEC = 2, - PROC_EVENT_UID = 4, - PROC_EVENT_GID = 64, - PROC_EVENT_SID = 128, - PROC_EVENT_PTRACE = 256, - PROC_EVENT_COMM = 512, - PROC_EVENT_NONZERO_EXIT = 536870912, - PROC_EVENT_COREDUMP = 1073741824, - PROC_EVENT_EXIT = 2147483648, -}; - -enum wd_read_status { - WD_READ_SUCCESS = 0, - WD_READ_UNSTABLE = 1, - WD_READ_SKIP = 2, -}; - -struct pids_cgroup { - struct cgroup_subsys_state css; - atomic64_t counter; - atomic64_t limit; - int64_t watermark; - struct cgroup_file events_file; - atomic64_t events_limit; -}; - -struct bpf_arena { - struct bpf_map map; - u64 user_vm_start; - u64 user_vm_end; - struct vm_struct *kern_vm; - struct maple_tree mt; - struct list_head vma_list; - struct mutex lock; -}; - -struct vma_list { - struct vm_area_struct *vma; - struct list_head head; -}; - -typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); - -struct mminit_pfnnid_cache { - unsigned long last_start; - unsigned long last_end; - int last_nid; -}; - -enum memblock_flags { - MEMBLOCK_NONE = 0, - MEMBLOCK_HOTPLUG = 1, - MEMBLOCK_MIRROR = 2, - MEMBLOCK_NOMAP = 4, - MEMBLOCK_DRIVER_MANAGED = 8, - MEMBLOCK_RSRV_NOINIT = 16, -}; - -struct memblock_region { - phys_addr_t base; - phys_addr_t size; - enum memblock_flags flags; - int nid; -}; - -enum meminit_context { - MEMINIT_EARLY = 0, - MEMINIT_HOTPLUG = 1, -}; - -enum mminit_level { - MMINIT_WARNING = 0, - MMINIT_VERIFY = 1, - MMINIT_TRACE = 2, -}; - -enum vmscan_throttle_state { - VMSCAN_THROTTLE_WRITEBACK = 0, - VMSCAN_THROTTLE_ISOLATED = 1, - VMSCAN_THROTTLE_NOPROGRESS = 2, - VMSCAN_THROTTLE_CONGESTED = 3, - NR_VMSCAN_THROTTLE = 4, -}; - -struct memcg_vmstats { - long state[51]; - unsigned long events[22]; - long state_local[51]; - unsigned long events_local[22]; - long state_pending[51]; - unsigned long events_pending[22]; - atomic64_t stats_updates; -}; - -struct mem_cgroup_tree_per_node; - -struct mem_cgroup_tree { - struct mem_cgroup_tree_per_node *rb_tree_per_node[1024]; -}; - -struct mem_cgroup_tree_per_node { - struct rb_root rb_root; - struct rb_node *rb_rightmost; - spinlock_t lock; -}; - -struct memory_stat { - const char *name; - unsigned int idx; -}; - -struct move_charge_struct { - spinlock_t lock; - struct mm_struct *mm; - struct mem_cgroup *from; - struct mem_cgroup *to; - unsigned long flags; - unsigned long precharge; - unsigned long moved_charge; - unsigned long moved_swap; - struct task_struct *moving_task; - wait_queue_head_t waitq; -}; - -struct memcg_stock_pcp { - local_lock_t stock_lock; - struct mem_cgroup *cached; - unsigned int nr_pages; - struct obj_cgroup *cached_objcg; - struct pglist_data *cached_pgdat; - unsigned int nr_bytes; - int nr_slab_reclaimable_b; - int nr_slab_unreclaimable_b; - struct work_struct work; - unsigned long flags; -}; - -struct numa_stat { - const char *name; - unsigned int lru_mask; -}; - -enum { - CSS_TASK_ITER_PROCS = 1, - CSS_TASK_ITER_THREADED = 2, - CSS_TASK_ITER_SKIPPED = 65536, -}; - -enum memcg_memory_event { - MEMCG_LOW = 0, - MEMCG_HIGH = 1, - MEMCG_MAX = 2, - MEMCG_OOM = 3, - MEMCG_OOM_KILL = 4, - MEMCG_OOM_GROUP_KILL = 5, - MEMCG_SWAP_HIGH = 6, - MEMCG_SWAP_MAX = 7, - MEMCG_SWAP_FAIL = 8, - MEMCG_NR_MEMORY_EVENTS = 9, -}; - -enum numa_stat_item { - NUMA_HIT = 0, - NUMA_MISS = 1, - NUMA_FOREIGN = 2, - NUMA_INTERLEAVE_HIT = 3, - NUMA_LOCAL = 4, - NUMA_OTHER = 5, - NR_VM_NUMA_EVENT_ITEMS = 6, -}; - -enum writeback_stat_item { - NR_DIRTY_THRESHOLD = 0, - NR_DIRTY_BG_THRESHOLD = 1, - NR_VM_WRITEBACK_STAT_ITEMS = 2, -}; - -enum mem_cgroup_events_target { - MEM_CGROUP_TARGET_THRESH = 0, - MEM_CGROUP_TARGET_SOFTLIMIT = 1, - MEM_CGROUP_NTARGETS = 2, -}; - -enum oom_constraint { - CONSTRAINT_NONE = 0, - CONSTRAINT_CPUSET = 1, - CONSTRAINT_MEMORY_POLICY = 2, - CONSTRAINT_MEMCG = 3, -}; - -enum mc_target_type { - MC_TARGET_NONE = 0, - MC_TARGET_PAGE = 1, - MC_TARGET_SWAP = 2, - MC_TARGET_DEVICE = 3, -}; - -enum res_type { - _MEM = 0, - _MEMSWAP = 1, - _KMEM = 2, - _TCP = 3, -}; - -enum { - RES_USAGE___2 = 0, - RES_LIMIT___2 = 1, - RES_MAX_USAGE___2 = 2, - RES_FAILCNT___2 = 3, - RES_SOFT_LIMIT = 4, -}; - -struct oom_wait_info { - struct mem_cgroup *memcg; - wait_queue_entry_t wait; -}; - -struct mem_cgroup_eventfd_list { - struct list_head list; - struct eventfd_ctx *eventfd; -}; - -struct mem_cgroup_event { - struct mem_cgroup *memcg; - struct eventfd_ctx *eventfd; - struct list_head list; - int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); - void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); - poll_table pt; - wait_queue_head_t *wqh; - wait_queue_entry_t wait; - struct work_struct remove; -}; - -struct mem_cgroup_reclaim_cookie { - pg_data_t *pgdat; - unsigned int generation; -}; - -struct uncharge_gather { - struct mem_cgroup *memcg; - unsigned long nr_memory; - unsigned long pgpgout; - unsigned long nr_kmem; - int nid; -}; - -struct oom_control { - struct zonelist *zonelist; - nodemask_t *nodemask; - struct mem_cgroup *memcg; - const gfp_t gfp_mask; - const int order; - unsigned long totalpages; - struct task_struct *chosen; - long chosen_points; - enum oom_constraint constraint; -}; - -union mc_target { - struct folio *folio; - swp_entry_t ent; -}; - -struct fileattr { - u32 flags; - u32 fsx_xflags; - u32 fsx_extsize; - u32 fsx_nextents; - u32 fsx_projid; - u32 fsx_cowextsize; - bool flags_valid: 1; - bool fsx_valid: 1; -}; - -struct move_extent { - __u32 reserved; - __u32 donor_fd; - __u64 orig_start; - __u64 donor_start; - __u64 len; - __u64 moved_len; -}; - -struct ext4_new_group_input { - __u32 group; - __u64 block_bitmap; - __u64 inode_bitmap; - __u64 inode_table; - __u32 blocks_count; - __u16 reserved_blocks; - __u16 unused; -}; - -struct fstrim_range { - __u64 start; - __u64 len; - __u64 minlen; -}; - -struct fiemap { - __u64 fm_start; - __u64 fm_length; - __u32 fm_flags; - __u32 fm_mapped_extents; - __u32 fm_extent_count; - __u32 fm_reserved; - struct fiemap_extent fm_extents[0]; -}; - -struct ext4_new_group_data { - __u32 group; - __u64 block_bitmap; - __u64 inode_bitmap; - __u64 inode_table; - __u32 blocks_count; - __u16 reserved_blocks; - __u16 mdata_blocks; - __u32 free_clusters_count; -}; - -struct fsmap { - __u32 fmr_device; - __u32 fmr_flags; - __u64 fmr_physical; - __u64 fmr_owner; - __u64 fmr_offset; - __u64 fmr_length; - __u64 fmr_reserved[3]; -}; - -struct fsmap_head { - __u32 fmh_iflags; - __u32 fmh_oflags; - __u32 fmh_count; - __u32 fmh_entries; - __u64 fmh_reserved[6]; - struct fsmap fmh_keys[2]; - struct fsmap fmh_recs[0]; -}; - -struct getfsmap_info { - struct super_block *gi_sb; - struct fsmap_head __attribute__((btf_type_tag("user"))) *gi_data; - unsigned int gi_idx; - __u32 gi_last_flags; -}; - -struct ext4_fsmap_head { - uint32_t fmh_iflags; - uint32_t fmh_oflags; - unsigned int fmh_count; - unsigned int fmh_entries; - struct ext4_fsmap fmh_keys[2]; -}; - -struct fsuuid { - __u32 fsu_len; - __u32 fsu_flags; - __u8 fsu_uuid[0]; -}; - -typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); - -typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); - -struct sha256_state { - u32 state[8]; - u64 count; - u8 buf[64]; -}; - -struct comp_alg_common { - struct crypto_alg base; -}; - -struct crypto_scomp; - -struct scomp_alg { - void * (*alloc_ctx)(struct crypto_scomp *); - void (*free_ctx)(struct crypto_scomp *, void *); - int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); - int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; -}; - -struct crypto_scomp { - struct crypto_tfm base; -}; - -struct lzorle_ctx { - void *lzorle_comp_mem; -}; - -enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP = 2, - IOPRIO_WHO_USER = 3, -}; - -enum blake2s_lengths { - BLAKE2S_BLOCK_SIZE = 64, - BLAKE2S_HASH_SIZE = 32, - BLAKE2S_KEY_SIZE = 32, - BLAKE2S_128_HASH_SIZE = 16, - BLAKE2S_160_HASH_SIZE = 20, - BLAKE2S_224_HASH_SIZE = 28, - BLAKE2S_256_HASH_SIZE = 32, -}; - -struct blake2s_state { - u32 h[8]; - u32 t[2]; - u32 f[2]; - u8 buf[64]; - unsigned int buflen; - unsigned int outlen; -}; - -enum blake2s_iv { - BLAKE2S_IV0 = 1779033703, - BLAKE2S_IV1 = 3144134277, - BLAKE2S_IV2 = 1013904242, - BLAKE2S_IV3 = 2773480762, - BLAKE2S_IV4 = 1359893119, - BLAKE2S_IV5 = 2600822924, - BLAKE2S_IV6 = 528734635, - BLAKE2S_IV7 = 1541459225, -}; - -typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); - -enum assoc_array_walk_status { - assoc_array_walk_tree_empty = 0, - assoc_array_walk_found_terminal_node = 1, - assoc_array_walk_found_wrong_shortcut = 2, -}; - -struct assoc_array_shortcut { - struct assoc_array_ptr *back_pointer; - int parent_slot; - int skip_to_level; - struct assoc_array_ptr *next_node; - unsigned long index_key[0]; -}; - -struct assoc_array_node { - struct assoc_array_ptr *back_pointer; - u8 parent_slot; - struct assoc_array_ptr *slots[16]; - unsigned long nr_leaves_on_branch; -}; - -struct assoc_array_ops; - -struct assoc_array_edit { - struct callback_head rcu; - struct assoc_array *array; - const struct assoc_array_ops *ops; - const struct assoc_array_ops *ops_for_excised_subtree; - struct assoc_array_ptr *leaf; - struct assoc_array_ptr **leaf_p; - struct assoc_array_ptr *dead_leaf; - struct assoc_array_ptr *new_meta[3]; - struct assoc_array_ptr *excised_meta[1]; - struct assoc_array_ptr *excised_subtree; - struct assoc_array_ptr **set_backpointers[16]; - struct assoc_array_ptr *set_backpointers_to; - struct assoc_array_node *adjust_count_on; - long adjust_count_by; - struct { - struct assoc_array_ptr **ptr; - struct assoc_array_ptr *to; - } set[2]; - struct { - u8 *p; - u8 to; - } set_parent_slot[1]; - u8 segment_cache[17]; -}; - -struct assoc_array_ops { - unsigned long (*get_key_chunk)(const void *, int); - unsigned long (*get_object_key_chunk)(const void *, int); - bool (*compare_object)(const void *, const void *); - int (*diff_objects)(const void *, const void *); - void (*free_object)(void *); -}; - -struct assoc_array_walk_result { - struct { - struct assoc_array_node *node; - int level; - int slot; - } terminal_node; - struct { - struct assoc_array_shortcut *shortcut; - int level; - int sc_level; - unsigned long sc_segments; - unsigned long dissimilarity; - } wrong_shortcut; -}; - -struct assoc_array_delete_collapse_context { - struct assoc_array_node *node; - const void *skip_leaf; - int slot; -}; - -typedef struct { - U64 rolling; - U64 stopMask; -} ldmRollingHashState_t; - -typedef struct { - ZSTD_paramSwitch_e enableLdm; - U32 hashLog; - U32 bucketSizeLog; - U32 minMatchLength; - U32 hashRateLog; - U32 windowLog; -} ldmParams_t; - -typedef struct { - U32 offset; - U32 checksum; -} ldmEntry_t; - -typedef struct { - const BYTE *split; - U32 hash; - U32 checksum; - ldmEntry_t *bucket; -} ldmMatchCandidate_t; - -typedef struct { - ZSTD_window_t window; - ldmEntry_t *hashTable; - U32 loadedDictEnd; - BYTE *bucketOffsets; - size_t splitIndices[64]; - ldmMatchCandidate_t matchCandidates[64]; -} ldmState_t; - -typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); - -enum { - EI_ETYPE_NULL = 0, - EI_ETYPE_ERRNO = 1, - EI_ETYPE_ERRNO_NULL = 2, - EI_ETYPE_TRUE = 3, -}; - -struct ei_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; - int etype; - void *priv; -}; - -struct acpi_device_physical_node { - unsigned int node_id; - struct list_head node; - struct device *dev; - bool put_online: 1; -}; - -struct acpi_hardware_id { - struct list_head list; - const char *id; -}; - -struct acpi_osc_context { - char *uuid_str; - int rev; - struct acpi_buffer cap; - struct acpi_buffer ret; -}; - -struct acpi_dev_walk_context { - int (*fn)(struct acpi_device *, void *); - void *data; -}; - -struct class_interface { - struct list_head node; - const struct class *class; - int (*add_dev)(struct device *); - void (*remove_dev)(struct device *); -}; - -enum bus_notifier_event { - BUS_NOTIFY_ADD_DEVICE = 0, - BUS_NOTIFY_DEL_DEVICE = 1, - BUS_NOTIFY_REMOVED_DEVICE = 2, - BUS_NOTIFY_BIND_DRIVER = 3, - BUS_NOTIFY_BOUND_DRIVER = 4, - BUS_NOTIFY_UNBIND_DRIVER = 5, - BUS_NOTIFY_UNBOUND_DRIVER = 6, - BUS_NOTIFY_DRIVER_NOT_BOUND = 7, -}; - -enum dpm_order { - DPM_ORDER_NONE = 0, - DPM_ORDER_DEV_AFTER_PARENT = 1, - DPM_ORDER_PARENT_BEFORE_DEV = 2, - DPM_ORDER_DEV_LAST = 3, -}; - -struct fwnode_link { - struct fwnode_handle *supplier; - struct list_head s_hook; - struct fwnode_handle *consumer; - struct list_head c_hook; - u8 flags; -}; - -struct class_dir { - struct kobject kobj; - const struct class *class; -}; - -struct root_device { - struct device dev; - struct module *owner; -}; - -struct subsys_private { - struct kset subsys; - struct kset *devices_kset; - struct list_head interfaces; - struct mutex mutex; - struct kset *drivers_kset; - struct klist klist_devices; - struct klist klist_drivers; - struct blocking_notifier_head bus_notifier; - unsigned int drivers_autoprobe: 1; - const struct bus_type *bus; - struct device *dev_root; - struct kset glue_dirs; - const struct class *class; - struct lock_class_key lock_key; -}; - -union device_attr_group_devres { - const struct attribute_group *group; - const struct attribute_group **groups; -}; - -typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); - -struct phy_reg { - u16 reg; - u16 val; -}; - -enum mac_version { - RTL_GIGA_MAC_VER_02 = 0, - RTL_GIGA_MAC_VER_03 = 1, - RTL_GIGA_MAC_VER_04 = 2, - RTL_GIGA_MAC_VER_05 = 3, - RTL_GIGA_MAC_VER_06 = 4, - RTL_GIGA_MAC_VER_07 = 5, - RTL_GIGA_MAC_VER_08 = 6, - RTL_GIGA_MAC_VER_09 = 7, - RTL_GIGA_MAC_VER_10 = 8, - RTL_GIGA_MAC_VER_11 = 9, - RTL_GIGA_MAC_VER_14 = 10, - RTL_GIGA_MAC_VER_17 = 11, - RTL_GIGA_MAC_VER_18 = 12, - RTL_GIGA_MAC_VER_19 = 13, - RTL_GIGA_MAC_VER_20 = 14, - RTL_GIGA_MAC_VER_21 = 15, - RTL_GIGA_MAC_VER_22 = 16, - RTL_GIGA_MAC_VER_23 = 17, - RTL_GIGA_MAC_VER_24 = 18, - RTL_GIGA_MAC_VER_25 = 19, - RTL_GIGA_MAC_VER_26 = 20, - RTL_GIGA_MAC_VER_28 = 21, - RTL_GIGA_MAC_VER_29 = 22, - RTL_GIGA_MAC_VER_30 = 23, - RTL_GIGA_MAC_VER_31 = 24, - RTL_GIGA_MAC_VER_32 = 25, - RTL_GIGA_MAC_VER_33 = 26, - RTL_GIGA_MAC_VER_34 = 27, - RTL_GIGA_MAC_VER_35 = 28, - RTL_GIGA_MAC_VER_36 = 29, - RTL_GIGA_MAC_VER_37 = 30, - RTL_GIGA_MAC_VER_38 = 31, - RTL_GIGA_MAC_VER_39 = 32, - RTL_GIGA_MAC_VER_40 = 33, - RTL_GIGA_MAC_VER_42 = 34, - RTL_GIGA_MAC_VER_43 = 35, - RTL_GIGA_MAC_VER_44 = 36, - RTL_GIGA_MAC_VER_46 = 37, - RTL_GIGA_MAC_VER_48 = 38, - RTL_GIGA_MAC_VER_51 = 39, - RTL_GIGA_MAC_VER_52 = 40, - RTL_GIGA_MAC_VER_53 = 41, - RTL_GIGA_MAC_VER_61 = 42, - RTL_GIGA_MAC_VER_63 = 43, - RTL_GIGA_MAC_VER_65 = 44, - RTL_GIGA_MAC_NONE = 45, -}; - -enum rtw_wow_flags { - RTW_WOW_FLAG_EN_MAGIC_PKT = 0, - RTW_WOW_FLAG_EN_REKEY_PKT = 1, - RTW_WOW_FLAG_EN_DISCONNECT = 2, - RTW_WOW_FLAG_MAX = 3, -}; - -enum rtw_wow_pattern_type { - RTW_PATTERN_BROADCAST = 0, - RTW_PATTERN_MULTICAST = 1, - RTW_PATTERN_UNICAST = 2, - RTW_PATTERN_VALID = 3, - RTW_PATTERN_INVALID = 4, -}; - -enum rtw_wake_reason { - RTW_WOW_RSN_RX_PTK_REKEY = 1, - RTW_WOW_RSN_RX_GTK_REKEY = 2, - RTW_WOW_RSN_RX_DEAUTH = 8, - RTW_WOW_RSN_DISCONNECT = 16, - RTW_WOW_RSN_RX_MAGIC_PKT = 33, - RTW_WOW_RSN_RX_PATTERN_MATCH = 35, - RTW_WOW_RSN_RX_NLO = 85, -}; - -struct rtw_fw_media_status_iter_data { - struct rtw_dev *rtwdev; - u8 connect; -}; - -struct rtw_fw_key_type_iter_data { - struct rtw_dev *rtwdev; - u8 group_key_type; - u8 pairwise_key_type; -}; - -struct ehci_driver_overrides { - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); - int (*port_power)(struct usb_hcd *, int, bool); -}; - -enum ehci_hrtimer_event { - EHCI_HRTIMER_POLL_ASS = 0, - EHCI_HRTIMER_POLL_PSS = 1, - EHCI_HRTIMER_POLL_DEAD = 2, - EHCI_HRTIMER_UNLINK_INTR = 3, - EHCI_HRTIMER_FREE_ITDS = 4, - EHCI_HRTIMER_ACTIVE_UNLINK = 5, - EHCI_HRTIMER_START_UNLINK_INTR = 6, - EHCI_HRTIMER_ASYNC_UNLINKS = 7, - EHCI_HRTIMER_IAA_WATCHDOG = 8, - EHCI_HRTIMER_DISABLE_PERIODIC = 9, - EHCI_HRTIMER_DISABLE_ASYNC = 10, - EHCI_HRTIMER_IO_WATCHDOG = 11, - EHCI_HRTIMER_NUM_EVENTS = 12, -}; - -enum ehci_rh_state { - EHCI_RH_HALTED = 0, - EHCI_RH_SUSPENDED = 1, - EHCI_RH_RUNNING = 2, - EHCI_RH_STOPPING = 3, -}; - -struct ehci_stats { - unsigned long normal; - unsigned long error; - unsigned long iaa; - unsigned long lost_iaa; - unsigned long complete; - unsigned long unlink; -}; - -struct ehci_caps; - -struct ehci_regs; - -struct ehci_dbg_port; - -struct ehci_qh; - -union ehci_shadow; - -struct ehci_itd; - -struct ehci_sitd; - -struct ehci_hcd { - enum ehci_hrtimer_event next_hrtimer_event; - unsigned int enabled_hrtimer_events; - ktime_t hr_timeouts[12]; - struct hrtimer hrtimer; - int PSS_poll_count; - int ASS_poll_count; - int died_poll_count; - struct ehci_caps *caps; - struct ehci_regs *regs; - struct ehci_dbg_port *debug; - __u32 hcs_params; - spinlock_t lock; - enum ehci_rh_state rh_state; - bool scanning: 1; - bool need_rescan: 1; - bool intr_unlinking: 1; - bool iaa_in_progress: 1; - bool async_unlinking: 1; - bool shutdown: 1; - struct ehci_qh *qh_scan_next; - struct ehci_qh *async; - struct ehci_qh *dummy; - struct list_head async_unlink; - struct list_head async_idle; - unsigned int async_unlink_cycle; - unsigned int async_count; - __le32 old_current; - __le32 old_token; - unsigned int periodic_size; - __le32 *periodic; - dma_addr_t periodic_dma; - struct list_head intr_qh_list; - unsigned int i_thresh; - union ehci_shadow *pshadow; - struct list_head intr_unlink_wait; - struct list_head intr_unlink; - unsigned int intr_unlink_wait_cycle; - unsigned int intr_unlink_cycle; - unsigned int now_frame; - unsigned int last_iso_frame; - unsigned int intr_count; - unsigned int isoc_count; - unsigned int periodic_count; - unsigned int uframe_periodic_max; - struct list_head cached_itd_list; - struct ehci_itd *last_itd_to_free; - struct list_head cached_sitd_list; - struct ehci_sitd *last_sitd_to_free; - unsigned long reset_done[15]; - unsigned long bus_suspended; - unsigned long companion_ports; - unsigned long owned_ports; - unsigned long port_c_suspend; - unsigned long suspended_ports; - unsigned long resuming_ports; - struct dma_pool *qh_pool; - struct dma_pool *qtd_pool; - struct dma_pool *itd_pool; - struct dma_pool *sitd_pool; - unsigned int random_frame; - unsigned long next_statechange; - ktime_t last_periodic_enable; - u32 command; - unsigned int no_selective_suspend: 1; - unsigned int has_fsl_port_bug: 1; - unsigned int has_fsl_hs_errata: 1; - unsigned int has_fsl_susp_errata: 1; - unsigned int has_ci_pec_bug: 1; - unsigned int big_endian_mmio: 1; - unsigned int big_endian_desc: 1; - unsigned int big_endian_capbase: 1; - unsigned int has_amcc_usb23: 1; - unsigned int need_io_watchdog: 1; - unsigned int amd_pll_fix: 1; - unsigned int use_dummy_qh: 1; - unsigned int has_synopsys_hc_bug: 1; - unsigned int frame_index_bug: 1; - unsigned int need_oc_pp_cycle: 1; - unsigned int imx28_write_fix: 1; - unsigned int spurious_oc: 1; - unsigned int is_aspeed: 1; - unsigned int zx_wakeup_clear_needed: 1; - __le32 *ohci_hcctrl_reg; - unsigned int has_hostpc: 1; - unsigned int has_tdi_phy_lpm: 1; - unsigned int has_ppcd: 1; - u8 sbrn; - struct ehci_stats stats; - struct dentry *debug_dir; - u8 bandwidth[64]; - u8 tt_budget[64]; - struct list_head tt_list; - unsigned long priv[0]; -}; - -struct ehci_caps { - u32 hc_capbase; - u32 hcs_params; - u32 hcc_params; - u8 portroute[8]; -}; - -struct ehci_regs { - u32 command; - u32 status; - u32 intr_enable; - u32 frame_index; - u32 segment; - u32 frame_list; - u32 async_next; - u32 reserved1[2]; - u32 txfill_tuning; - u32 reserved2[6]; - u32 configured_flag; - union { - u32 port_status[15]; - struct { - u32 reserved3[9]; - u32 usbmode; - }; - }; - union { - struct { - u32 reserved4; - u32 hostpc[15]; - }; - u32 brcm_insnreg[4]; - }; - u32 reserved5[2]; - u32 usbmode_ex; -}; - -struct ehci_dbg_port { - u32 control; - u32 pids; - u32 data03; - u32 data47; - u32 address; -}; - -struct ehci_fstn; - -union ehci_shadow { - struct ehci_qh *qh; - struct ehci_itd *itd; - struct ehci_sitd *sitd; - struct ehci_fstn *fstn; - __le32 *hw_next; - void *ptr; -}; - -struct ehci_per_sched { - struct usb_device *udev; - struct usb_host_endpoint *ep; - struct list_head ps_list; - u16 tt_usecs; - u16 cs_mask; - u16 period; - u16 phase; - u8 bw_phase; - u8 phase_uf; - u8 usecs; - u8 c_usecs; - u8 bw_uperiod; - u8 bw_period; -}; - -struct ehci_qh_hw; - -struct ehci_qtd; - -struct ehci_qh { - struct ehci_qh_hw *hw; - dma_addr_t qh_dma; - union ehci_shadow qh_next; - struct list_head qtd_list; - struct list_head intr_node; - struct ehci_qtd *dummy; - struct list_head unlink_node; - struct ehci_per_sched ps; - unsigned int unlink_cycle; - u8 qh_state; - u8 xacterrs; - u8 unlink_reason; - u8 gap_uf; - unsigned int is_out: 1; - unsigned int clearing_tt: 1; - unsigned int dequeue_during_giveback: 1; - unsigned int should_be_inactive: 1; -}; - -struct ehci_qh_hw { - __le32 hw_next; - __le32 hw_info1; - __le32 hw_info2; - __le32 hw_current; - __le32 hw_qtd_next; - __le32 hw_alt_next; - __le32 hw_token; - __le32 hw_buf[5]; - __le32 hw_buf_hi[5]; - long: 64; - long: 64; - long: 64; -}; - -struct ehci_iso_stream; - -struct ehci_itd { - __le32 hw_next; - __le32 hw_transaction[8]; - __le32 hw_bufp[7]; - __le32 hw_bufp_hi[7]; - dma_addr_t itd_dma; - union ehci_shadow itd_next; - struct urb *urb; - struct ehci_iso_stream *stream; - struct list_head itd_list; - unsigned int frame; - unsigned int pg; - unsigned int index[8]; - long: 64; -}; - -struct ehci_iso_stream { - struct ehci_qh_hw *hw; - u8 bEndpointAddress; - u8 highspeed; - struct list_head td_list; - struct list_head free_list; - struct ehci_per_sched ps; - unsigned int next_uframe; - __le32 splits; - u16 uperiod; - u16 maxp; - unsigned int bandwidth; - __le32 buf0; - __le32 buf1; - __le32 buf2; - __le32 address; -}; - -struct ehci_sitd { - __le32 hw_next; - __le32 hw_fullspeed_ep; - __le32 hw_uframe; - __le32 hw_results; - __le32 hw_buf[2]; - __le32 hw_backpointer; - __le32 hw_buf_hi[2]; - dma_addr_t sitd_dma; - union ehci_shadow sitd_next; - struct urb *urb; - struct ehci_iso_stream *stream; - struct list_head sitd_list; - unsigned int frame; - unsigned int index; -}; - -struct ehci_fstn { - __le32 hw_next; - __le32 hw_prev; - dma_addr_t fstn_dma; - union ehci_shadow fstn_next; - long: 64; -}; - -struct ehci_qtd { - __le32 hw_next; - __le32 hw_alt_next; - __le32 hw_token; - __le32 hw_buf[5]; - __le32 hw_buf_hi[5]; - dma_addr_t qtd_dma; - struct list_head qtd_list; - struct urb *urb; - size_t length; -}; - -enum i2c_alert_protocol { - I2C_PROTOCOL_SMBUS_ALERT = 0, - I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, -}; - -enum i2c_driver_flags { - I2C_DRV_ACPI_WAIVE_D0_PROBE = 1, -}; - -enum acpi_reconfig_event { - ACPI_RECONFIG_DEVICE_ADD = 0, - ACPI_RECONFIG_DEVICE_REMOVE = 1, -}; - -struct i2c_device_id; - -struct i2c_driver { - unsigned int class; - int (*probe)(struct i2c_client *); - void (*remove)(struct i2c_client *); - void (*shutdown)(struct i2c_client *); - void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); - int (*command)(struct i2c_client *, unsigned int, void *); - struct device_driver driver; - const struct i2c_device_id *id_table; - int (*detect)(struct i2c_client *, struct i2c_board_info *); - const unsigned short *address_list; - struct list_head clients; - u32 flags; -}; - -struct i2c_device_id { - char name[20]; - kernel_ulong_t driver_data; -}; - -struct i2c_acpi_irq_context { - int irq; - bool wake_capable; -}; - -struct i2c_acpi_lookup { - struct i2c_board_info *info; - acpi_handle adapter_handle; - acpi_handle device_handle; - acpi_handle search_handle; - int n; - int index; - u32 speed; - u32 min_speed; - u32 force_speed; -}; - -struct dm_sysfs_attr { - struct attribute attr; - ssize_t (*show)(struct mapped_device *, char *); - ssize_t (*store)(struct mapped_device *, const char *, size_t); -}; - -enum { - ETHTOOL_A_LINKINFO_UNSPEC = 0, - ETHTOOL_A_LINKINFO_HEADER = 1, - ETHTOOL_A_LINKINFO_PORT = 2, - ETHTOOL_A_LINKINFO_PHYADDR = 3, - ETHTOOL_A_LINKINFO_TP_MDIX = 4, - ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5, - ETHTOOL_A_LINKINFO_TRANSCEIVER = 6, - __ETHTOOL_A_LINKINFO_CNT = 7, - ETHTOOL_A_LINKINFO_MAX = 6, -}; - -struct linkinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; -}; - -struct __bridge_info { - __u64 designated_root; - __u64 bridge_id; - __u32 root_path_cost; - __u32 max_age; - __u32 hello_time; - __u32 forward_delay; - __u32 bridge_max_age; - __u32 bridge_hello_time; - __u32 bridge_forward_delay; - __u8 topology_change; - __u8 topology_change_detected; - __u8 root_port; - __u8 stp_enabled; - __u32 ageing_time; - __u32 gc_interval; - __u32 hello_timer_value; - __u32 tcn_timer_value; - __u32 topology_change_timer_value; - __u32 gc_timer_value; -}; - -struct __port_info { - __u64 designated_root; - __u64 designated_bridge; - __u16 port_id; - __u16 designated_port; - __u32 path_cost; - __u32 designated_cost; - __u8 state; - __u8 top_change_ack; - __u8 config_pending; - __u8 unused0; - __u32 message_age_timer_value; - __u32 forward_delay_timer_value; - __u32 hold_timer_value; -}; - -enum ieee80211_back_parties { - WLAN_BACK_RECIPIENT = 0, - WLAN_BACK_INITIATOR = 1, -}; - -enum txq_info_flags { - IEEE80211_TXQ_STOP = 0, - IEEE80211_TXQ_AMPDU = 1, - IEEE80211_TXQ_NO_AMSDU = 2, - IEEE80211_TXQ_DIRTY = 3, -}; - -enum ieee80211_back_actioncode { - WLAN_ACTION_ADDBA_REQ = 0, - WLAN_ACTION_ADDBA_RESP = 1, - WLAN_ACTION_DELBA = 2, -}; - -enum ieee80211_ht_actioncode { - WLAN_HT_ACTION_NOTIFY_CHANWIDTH = 0, - WLAN_HT_ACTION_SMPS = 1, - WLAN_HT_ACTION_PSMP = 2, - WLAN_HT_ACTION_PCO_PHASE = 3, - WLAN_HT_ACTION_CSI = 4, - WLAN_HT_ACTION_NONCOMPRESSED_BF = 5, - WLAN_HT_ACTION_COMPRESSED_BF = 6, - WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7, -}; - -enum ieee80211_status_data { - IEEE80211_STATUS_TYPE_MASK = 15, - IEEE80211_STATUS_TYPE_INVALID = 0, - IEEE80211_STATUS_TYPE_SMPS = 1, - IEEE80211_STATUS_SUBDATA_MASK = 4080, -}; - -struct codel_stats { - u32 maxpacket; - u32 drop_count; - u32 drop_len; - u32 ecn_mark; - u32 ce_mark; -}; - -struct txq_info { - struct fq_tin tin; - struct codel_vars def_cvars; - struct codel_stats cstats; - u16 schedule_round; - struct list_head schedule_order; - struct sk_buff_head frags; - unsigned long flags; - struct ieee80211_txq txq; -}; - -struct perf_guest_switch_msr { - unsigned int msr; - u64 host; - u64 guest; -}; - -struct event_constraint; - -struct er_account; - -struct intel_shared_regs; - -struct intel_excl_cntrs; - -struct amd_nb; - -struct cpu_hw_events { - struct perf_event *events[64]; - unsigned long active_mask[1]; - unsigned long dirty[1]; - int enabled; - int n_events; - int n_added; - int n_txn; - int n_txn_pair; - int n_txn_metric; - int assign[64]; - u64 tags[64]; - struct perf_event *event_list[64]; - struct event_constraint *event_constraint[64]; - int n_excl; - unsigned int txn_flags; - int is_fake; - struct debug_store *ds; - void *ds_pebs_vaddr; - void *ds_bts_vaddr; - u64 pebs_enabled; - int n_pebs; - int n_large_pebs; - int n_pebs_via_pt; - int pebs_output; - u64 pebs_data_cfg; - u64 active_pebs_data_cfg; - int pebs_record_size; - u64 fixed_ctrl_val; - u64 active_fixed_ctrl_val; - int lbr_users; - int lbr_pebs_users; - struct perf_branch_stack lbr_stack; - struct perf_branch_entry lbr_entries[32]; - u64 lbr_counters[32]; - union { - struct er_account *lbr_sel; - struct er_account *lbr_ctl; - }; - u64 br_sel; - void *last_task_ctx; - int last_log_id; - int lbr_select; - void *lbr_xsave; - u64 intel_ctrl_guest_mask; - u64 intel_ctrl_host_mask; - struct perf_guest_switch_msr guest_switch_msrs[64]; - u64 intel_cp_status; - struct intel_shared_regs *shared_regs; - struct event_constraint *constraint_list; - struct intel_excl_cntrs *excl_cntrs; - int excl_thread_id; - u64 tfa_shadow; - int n_metric; - struct amd_nb *amd_nb; - int brs_active; - u64 perf_ctr_virt_mask; - int n_pair; - void *kfree_on_online[2]; - struct pmu *pmu; -}; - -struct event_constraint { - union { - unsigned long idxmsk[1]; - u64 idxmsk64; - }; - u64 code; - u64 cmask; - int weight; - int overlap; - int flags; - unsigned int size; -}; - -struct er_account { - raw_spinlock_t lock; - u64 config; - u64 reg; - atomic_t ref; -}; - -struct intel_shared_regs { - struct er_account regs[7]; - int refcnt; - unsigned int core_id; -}; - -enum intel_excl_state_type { - INTEL_EXCL_UNUSED = 0, - INTEL_EXCL_SHARED = 1, - INTEL_EXCL_EXCLUSIVE = 2, -}; - -struct intel_excl_states { - enum intel_excl_state_type state[64]; - bool sched_started; -}; - -struct intel_excl_cntrs { - raw_spinlock_t lock; - struct intel_excl_states states[2]; - union { - u16 has_exclusive[2]; - u32 exclusive_present; - }; - int refcnt; - unsigned int core_id; -}; - -struct amd_nb { - int nb_id; - int refcnt; - struct perf_event *owners[64]; - struct event_constraint event_constraints[64]; -}; - -union perf_capabilities { - struct { - u64 lbr_format: 6; - u64 pebs_trap: 1; - u64 pebs_arch_reg: 1; - u64 pebs_format: 4; - u64 smm_freeze: 1; - u64 full_width_write: 1; - u64 pebs_baseline: 1; - u64 perf_metrics: 1; - u64 pebs_output_pt_available: 1; - u64 pebs_timing_info: 1; - u64 anythread_deprecated: 1; - }; - u64 capabilities; -}; - -enum hybrid_cpu_type { - HYBRID_INTEL_NONE = 0, - HYBRID_INTEL_ATOM = 32, - HYBRID_INTEL_CORE = 64, -}; - -struct x86_pmu_quirk; - -struct extra_reg; - -struct x86_hybrid_pmu; - -struct x86_pmu { - const char *name; - int version; - int (*handle_irq)(struct pt_regs *); - void (*disable_all)(); - void (*enable_all)(int); - void (*enable)(struct perf_event *); - void (*disable)(struct perf_event *); - void (*assign)(struct perf_event *, int); - void (*add)(struct perf_event *); - void (*del)(struct perf_event *); - void (*read)(struct perf_event *); - int (*set_period)(struct perf_event *); - u64 (*update)(struct perf_event *); - int (*hw_config)(struct perf_event *); - int (*schedule_events)(struct cpu_hw_events *, int, int *); - unsigned int eventsel; - unsigned int perfctr; - int (*addr_offset)(int, bool); - int (*rdpmc_index)(int); - u64 (*event_map)(int); - int max_events; - int num_counters; - int num_counters_fixed; - int cntval_bits; - u64 cntval_mask; - union { - unsigned long events_maskl; - unsigned long events_mask[1]; - }; - int events_mask_len; - int apic; - u64 max_period; - struct event_constraint * (*get_event_constraints)(struct cpu_hw_events *, int, struct perf_event *); - void (*put_event_constraints)(struct cpu_hw_events *, struct perf_event *); - void (*start_scheduling)(struct cpu_hw_events *); - void (*commit_scheduling)(struct cpu_hw_events *, int, int); - void (*stop_scheduling)(struct cpu_hw_events *); - struct event_constraint *event_constraints; - struct x86_pmu_quirk *quirks; - void (*limit_period)(struct perf_event *, s64 *); - unsigned int late_ack: 1; - unsigned int mid_ack: 1; - unsigned int enabled_ack: 1; - int attr_rdpmc_broken; - int attr_rdpmc; - struct attribute **format_attrs; - ssize_t (*events_sysfs_show)(char *, u64); - const struct attribute_group **attr_update; - unsigned long attr_freeze_on_smi; - int (*cpu_prepare)(int); - void (*cpu_starting)(int); - void (*cpu_dying)(int); - void (*cpu_dead)(int); - void (*check_microcode)(); - void (*sched_task)(struct perf_event_pmu_context *, bool); - u64 intel_ctrl; - union perf_capabilities intel_cap; - unsigned int bts: 1; - unsigned int bts_active: 1; - unsigned int pebs: 1; - unsigned int pebs_active: 1; - unsigned int pebs_broken: 1; - unsigned int pebs_prec_dist: 1; - unsigned int pebs_no_tlb: 1; - unsigned int pebs_no_isolation: 1; - unsigned int pebs_block: 1; - unsigned int pebs_ept: 1; - int pebs_record_size; - int pebs_buffer_size; - int max_pebs_events; - void (*drain_pebs)(struct pt_regs *, struct perf_sample_data *); - struct event_constraint *pebs_constraints; - void (*pebs_aliases)(struct perf_event *); - u64 (*pebs_latency_data)(struct perf_event *, u64); - unsigned long large_pebs_flags; - u64 rtm_abort_event; - u64 pebs_capable; - unsigned int lbr_tos; - unsigned int lbr_from; - unsigned int lbr_to; - unsigned int lbr_info; - unsigned int lbr_nr; - union { - u64 lbr_sel_mask; - u64 lbr_ctl_mask; - }; - union { - const int *lbr_sel_map; - int *lbr_ctl_map; - }; - bool lbr_double_abort; - bool lbr_pt_coexist; - unsigned int lbr_has_info: 1; - unsigned int lbr_has_tsx: 1; - unsigned int lbr_from_flags: 1; - unsigned int lbr_to_cycles: 1; - unsigned int lbr_depth_mask: 8; - unsigned int lbr_deep_c_reset: 1; - unsigned int lbr_lip: 1; - unsigned int lbr_cpl: 1; - unsigned int lbr_filter: 1; - unsigned int lbr_call_stack: 1; - unsigned int lbr_mispred: 1; - unsigned int lbr_timed_lbr: 1; - unsigned int lbr_br_type: 1; - unsigned int lbr_counters: 4; - void (*lbr_reset)(); - void (*lbr_read)(struct cpu_hw_events *); - void (*lbr_save)(void *); - void (*lbr_restore)(void *); - atomic_t lbr_exclusive[3]; - int num_topdown_events; - void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); - unsigned int amd_nb_constraints: 1; - u64 perf_ctr_pair_en; - struct extra_reg *extra_regs; - unsigned int flags; - struct perf_guest_switch_msr * (*guest_get_msrs)(int *, void *); - int (*check_period)(struct perf_event *, u64); - int (*aux_output_match)(struct perf_event *); - void (*filter)(struct pmu *, int, bool *); - int num_hybrid_pmus; - struct x86_hybrid_pmu *hybrid_pmu; - enum hybrid_cpu_type (*get_hybrid_cpu_type)(); -}; - -struct x86_pmu_quirk { - struct x86_pmu_quirk *next; - void (*func)(); -}; - -struct extra_reg { - unsigned int event; - unsigned int msr; - u64 config_mask; - u64 valid_mask; - int idx; - bool extra_msr_access; -}; - -enum hybrid_pmu_type { - not_hybrid = 0, - hybrid_small = 1, - hybrid_big = 2, - hybrid_big_small = 3, -}; - -struct x86_hybrid_pmu { - struct pmu pmu; - const char *name; - enum hybrid_pmu_type pmu_type; - cpumask_t supported_cpus; - union perf_capabilities intel_cap; - u64 intel_ctrl; - int max_pebs_events; - int num_counters; - int num_counters_fixed; - struct event_constraint unconstrained; - u64 hw_cache_event_ids[42]; - u64 hw_cache_extra_regs[42]; - struct event_constraint *event_constraints; - struct event_constraint *pebs_constraints; - struct extra_reg *extra_regs; - unsigned int late_ack: 1; - unsigned int mid_ack: 1; - unsigned int enabled_ack: 1; - u64 pebs_data_source[16]; -}; - -typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *); - -struct nmiaction { - struct list_head list; - nmi_handler_t handler; - u64 max_duration; - unsigned long flags; - const char *name; -}; - -enum perf_branch_sample_type { - PERF_SAMPLE_BRANCH_USER = 1, - PERF_SAMPLE_BRANCH_KERNEL = 2, - PERF_SAMPLE_BRANCH_HV = 4, - PERF_SAMPLE_BRANCH_ANY = 8, - PERF_SAMPLE_BRANCH_ANY_CALL = 16, - PERF_SAMPLE_BRANCH_ANY_RETURN = 32, - PERF_SAMPLE_BRANCH_IND_CALL = 64, - PERF_SAMPLE_BRANCH_ABORT_TX = 128, - PERF_SAMPLE_BRANCH_IN_TX = 256, - PERF_SAMPLE_BRANCH_NO_TX = 512, - PERF_SAMPLE_BRANCH_COND = 1024, - PERF_SAMPLE_BRANCH_CALL_STACK = 2048, - PERF_SAMPLE_BRANCH_IND_JUMP = 4096, - PERF_SAMPLE_BRANCH_CALL = 8192, - PERF_SAMPLE_BRANCH_NO_FLAGS = 16384, - PERF_SAMPLE_BRANCH_NO_CYCLES = 32768, - PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536, - PERF_SAMPLE_BRANCH_HW_INDEX = 131072, - PERF_SAMPLE_BRANCH_PRIV_SAVE = 262144, - PERF_SAMPLE_BRANCH_COUNTERS = 524288, - PERF_SAMPLE_BRANCH_MAX = 1048576, -}; - -enum perf_event_x86_regs { - PERF_REG_X86_AX = 0, - PERF_REG_X86_BX = 1, - PERF_REG_X86_CX = 2, - PERF_REG_X86_DX = 3, - PERF_REG_X86_SI = 4, - PERF_REG_X86_DI = 5, - PERF_REG_X86_BP = 6, - PERF_REG_X86_SP = 7, - PERF_REG_X86_IP = 8, - PERF_REG_X86_FLAGS = 9, - PERF_REG_X86_CS = 10, - PERF_REG_X86_SS = 11, - PERF_REG_X86_DS = 12, - PERF_REG_X86_ES = 13, - PERF_REG_X86_FS = 14, - PERF_REG_X86_GS = 15, - PERF_REG_X86_R8 = 16, - PERF_REG_X86_R9 = 17, - PERF_REG_X86_R10 = 18, - PERF_REG_X86_R11 = 19, - PERF_REG_X86_R12 = 20, - PERF_REG_X86_R13 = 21, - PERF_REG_X86_R14 = 22, - PERF_REG_X86_R15 = 23, - PERF_REG_X86_32_MAX = 16, - PERF_REG_X86_64_MAX = 24, - PERF_REG_X86_XMM0 = 32, - PERF_REG_X86_XMM1 = 34, - PERF_REG_X86_XMM2 = 36, - PERF_REG_X86_XMM3 = 38, - PERF_REG_X86_XMM4 = 40, - PERF_REG_X86_XMM5 = 42, - PERF_REG_X86_XMM6 = 44, - PERF_REG_X86_XMM7 = 46, - PERF_REG_X86_XMM8 = 48, - PERF_REG_X86_XMM9 = 50, - PERF_REG_X86_XMM10 = 52, - PERF_REG_X86_XMM11 = 54, - PERF_REG_X86_XMM12 = 56, - PERF_REG_X86_XMM13 = 58, - PERF_REG_X86_XMM14 = 60, - PERF_REG_X86_XMM15 = 62, - PERF_REG_X86_XMM_MAX = 64, -}; - -enum { - PERF_X86_EVENT_PEBS_LDLAT = 1, - PERF_X86_EVENT_PEBS_ST = 2, - PERF_X86_EVENT_PEBS_ST_HSW = 4, - PERF_X86_EVENT_PEBS_LD_HSW = 8, - PERF_X86_EVENT_PEBS_NA_HSW = 16, - PERF_X86_EVENT_EXCL = 32, - PERF_X86_EVENT_DYNAMIC = 64, - PERF_X86_EVENT_EXCL_ACCT = 256, - PERF_X86_EVENT_AUTO_RELOAD = 512, - PERF_X86_EVENT_LARGE_PEBS = 1024, - PERF_X86_EVENT_PEBS_VIA_PT = 2048, - PERF_X86_EVENT_PAIR = 4096, - PERF_X86_EVENT_LBR_SELECT = 8192, - PERF_X86_EVENT_TOPDOWN = 16384, - PERF_X86_EVENT_PEBS_STLAT = 32768, - PERF_X86_EVENT_AMD_BRS = 65536, - PERF_X86_EVENT_PEBS_LAT_HYBRID = 131072, - PERF_X86_EVENT_NEEDS_BRANCH_STACK = 262144, - PERF_X86_EVENT_BRANCH_COUNTERS = 524288, -}; - -enum stack_type { - STACK_TYPE_UNKNOWN = 0, - STACK_TYPE_TASK = 1, - STACK_TYPE_IRQ = 2, - STACK_TYPE_SOFTIRQ = 3, - STACK_TYPE_ENTRY = 4, - STACK_TYPE_EXCEPTION = 5, - STACK_TYPE_EXCEPTION_LAST = 10, -}; - -enum perf_hw_cache_id { - PERF_COUNT_HW_CACHE_L1D = 0, - PERF_COUNT_HW_CACHE_L1I = 1, - PERF_COUNT_HW_CACHE_LL = 2, - PERF_COUNT_HW_CACHE_DTLB = 3, - PERF_COUNT_HW_CACHE_ITLB = 4, - PERF_COUNT_HW_CACHE_BPU = 5, - PERF_COUNT_HW_CACHE_NODE = 6, - PERF_COUNT_HW_CACHE_MAX = 7, -}; - -enum perf_hw_cache_op_id { - PERF_COUNT_HW_CACHE_OP_READ = 0, - PERF_COUNT_HW_CACHE_OP_WRITE = 1, - PERF_COUNT_HW_CACHE_OP_PREFETCH = 2, - PERF_COUNT_HW_CACHE_OP_MAX = 3, -}; - -enum perf_hw_cache_op_result_id { - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0, - PERF_COUNT_HW_CACHE_RESULT_MISS = 1, - PERF_COUNT_HW_CACHE_RESULT_MAX = 2, -}; - -enum { - NMI_LOCAL = 0, - NMI_UNKNOWN = 1, - NMI_SERR = 2, - NMI_IO_CHECK = 3, - NMI_MAX = 4, -}; - -enum { - X86_PERF_KFREE_SHARED = 0, - X86_PERF_KFREE_EXCL = 1, - X86_PERF_KFREE_MAX = 2, -}; - -enum extra_reg_type { - EXTRA_REG_NONE = -1, - EXTRA_REG_RSP_0 = 0, - EXTRA_REG_RSP_1 = 1, - EXTRA_REG_LBR = 2, - EXTRA_REG_LDLAT = 3, - EXTRA_REG_FE = 4, - EXTRA_REG_SNOOP_0 = 5, - EXTRA_REG_SNOOP_1 = 6, - EXTRA_REG_MAX = 7, -}; - -struct perf_pmu_events_ht_attr { - struct device_attribute attr; - u64 id; - const char *event_str_ht; - const char *event_str_noht; -}; - -struct perf_pmu_events_hybrid_attr { - struct device_attribute attr; - u64 id; - const char *event_str; - u64 pmu_type; -}; - -struct stack_frame { - struct stack_frame *next_frame; - unsigned long return_address; -}; - -struct sched_state { - int weight; - int event; - int counter; - int unassigned; - int nr_gp; - u64 used; -}; - -struct perf_sched { - int max_weight; - int max_events; - int max_gp; - int saved_states; - struct event_constraint **constraints; - struct sched_state state; - struct sched_state saved[2]; -}; - -struct cyc2ns_data { - u32 cyc2ns_mul; - u32 cyc2ns_shift; - u64 cyc2ns_offset; -}; - -struct stack_info { - enum stack_type type; - unsigned long *begin; - unsigned long *end; - unsigned long *next_sp; -}; - -struct unwind_state { - struct stack_info stack_info; - unsigned long stack_mask; - struct task_struct *task; - int graph_idx; - struct llist_node *kr_cur; - bool error; - bool got_irq; - unsigned long *bp; - unsigned long *orig_sp; - unsigned long ip; - unsigned long *next_bp; - struct pt_regs *regs; -}; - -struct x86_pmu_capability { - int version; - int num_counters_gp; - int num_counters_fixed; - int bit_width_gp; - int bit_width_fixed; - unsigned int events_mask; - int events_mask_len; - unsigned int pebs_ept: 1; -}; - -struct pm_vt_switch { - struct list_head head; - struct device *dev; - bool required; -}; - -struct tick_sched { - unsigned long flags; - unsigned int stalled_jiffies; - unsigned long last_tick_jiffies; - struct hrtimer sched_timer; - ktime_t last_tick; - ktime_t next_tick; - unsigned long idle_jiffies; - ktime_t idle_waketime; - unsigned int got_idle_tick; - seqcount_t idle_sleeptime_seq; - ktime_t idle_entrytime; - unsigned long last_jiffies; - u64 timer_expires_base; - u64 timer_expires; - u64 next_timer; - ktime_t idle_expires; - unsigned long idle_calls; - unsigned long idle_sleeps; - ktime_t idle_exittime; - ktime_t idle_sleeptime; - ktime_t iowait_sleeptime; - atomic_t tick_dep_mask; - unsigned long check_clocks; -}; - -enum tick_dep_bits { - TICK_DEP_BIT_POSIX_TIMER = 0, - TICK_DEP_BIT_PERF_EVENTS = 1, - TICK_DEP_BIT_SCHED = 2, - TICK_DEP_BIT_CLOCK_UNSTABLE = 3, - TICK_DEP_BIT_RCU = 4, - TICK_DEP_BIT_RCU_EXP = 5, -}; - -enum tick_device_mode { - TICKDEV_MODE_PERIODIC = 0, - TICKDEV_MODE_ONESHOT = 1, -}; - -struct tick_device { - struct clock_event_device *evtdev; - enum tick_device_mode mode; -}; - -struct dyn_event; - -struct dyn_event_operations { - struct list_head list; - int (*create)(const char *); - int (*show)(struct seq_file *, struct dyn_event *); - bool (*is_busy)(struct dyn_event *); - int (*free)(struct dyn_event *); - bool (*match)(const char *, const char *, int, const char **, struct dyn_event *); -}; - -struct dyn_event { - struct list_head list; - struct dyn_event_operations *ops; -}; - -enum dynevent_type { - DYNEVENT_TYPE_SYNTH = 1, - DYNEVENT_TYPE_KPROBE = 2, - DYNEVENT_TYPE_NONE = 3, -}; - -enum { - SYNTH_ERR_BAD_NAME = 0, - SYNTH_ERR_INVALID_CMD = 1, - SYNTH_ERR_INVALID_DYN_CMD = 2, - SYNTH_ERR_EVENT_EXISTS = 3, - SYNTH_ERR_TOO_MANY_FIELDS = 4, - SYNTH_ERR_INCOMPLETE_TYPE = 5, - SYNTH_ERR_INVALID_TYPE = 6, - SYNTH_ERR_INVALID_FIELD = 7, - SYNTH_ERR_INVALID_ARRAY_SPEC = 8, -}; - -struct trace_dynamic_info { - u16 offset; - u16 len; -}; - -union trace_synth_field { - u8 as_u8; - u16 as_u16; - u32 as_u32; - u64 as_u64; - struct trace_dynamic_info as_dynamic; -}; - -struct synth_trace_event { - struct trace_entry ent; - union trace_synth_field fields[0]; -}; - -struct synth_field; - -struct synth_event { - struct dyn_event devent; - int ref; - char *name; - struct synth_field **fields; - unsigned int n_fields; - struct synth_field **dynamic_fields; - unsigned int n_dynamic_fields; - unsigned int n_u64; - struct trace_event_class class; - struct trace_event_call call; - struct tracepoint *tp; - struct module *mod; -}; - -struct synth_field { - char *type; - char *name; - size_t size; - unsigned int offset; - unsigned int field_pos; - bool is_signed; - bool is_string; - bool is_dynamic; - bool is_stack; -}; - -struct dynevent_arg_pair { - const char *lhs; - const char *rhs; - char operator; - char separator; -}; - -struct dynevent_cmd; - -typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); - -struct dynevent_cmd { - struct seq_buf seq; - const char *event_name; - unsigned int n_fields; - enum dynevent_type type; - dynevent_create_fn_t run_command; - void *private_data; -}; - -typedef int (*dynevent_check_arg_fn_t)(void *); - -struct dynevent_arg { - const char *str; - char separator; -}; - -struct synth_event_trace_state { - struct trace_event_buffer fbuffer; - struct synth_trace_event *entry; - struct trace_buffer *buffer; - struct synth_event *event; - unsigned int cur_field; - unsigned int n_u64; - bool disabled; - bool add_next; - bool add_name; -}; - -struct synth_field_desc { - const char *type; - const char *name; -}; - -struct padata_work { - struct work_struct pw_work; - struct list_head pw_list; - void *pw_data; -}; - -struct padata_instance; - -struct padata_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct padata_instance *, struct attribute *, char *); - ssize_t (*store)(struct padata_instance *, struct attribute *, const char *, size_t); -}; - -struct padata_cpumask { - cpumask_var_t pcpu; - cpumask_var_t cbcpu; -}; - -struct padata_instance { - struct hlist_node cpu_online_node; - struct hlist_node cpu_dead_node; - struct workqueue_struct *parallel_wq; - struct workqueue_struct *serial_wq; - struct list_head pslist; - struct padata_cpumask cpumask; - struct kobject kobj; - struct mutex lock; - u8 flags; -}; - -enum wq_affn_scope { - WQ_AFFN_DFL = 0, - WQ_AFFN_CPU = 1, - WQ_AFFN_SMT = 2, - WQ_AFFN_CACHE = 3, - WQ_AFFN_NUMA = 4, - WQ_AFFN_SYSTEM = 5, - WQ_AFFN_NR_TYPES = 6, -}; - -struct padata_shell; - -struct padata_list; - -struct padata_serial_queue; - -struct parallel_data { - struct padata_shell *ps; - struct padata_list __attribute__((btf_type_tag("percpu"))) *reorder_list; - struct padata_serial_queue __attribute__((btf_type_tag("percpu"))) *squeue; - refcount_t refcnt; - unsigned int seq_nr; - unsigned int processed; - int cpu; - struct padata_cpumask cpumask; - struct work_struct reorder_work; - spinlock_t lock; -}; - -struct padata_shell { - struct padata_instance *pinst; - struct parallel_data __attribute__((btf_type_tag("rcu"))) *pd; - struct parallel_data *opd; - struct list_head list; -}; - -struct padata_list { - struct list_head list; - spinlock_t lock; -}; - -struct padata_serial_queue { - struct padata_list serial; - struct work_struct work; - struct parallel_data *pd; -}; - -struct padata_priv { - struct list_head list; - struct parallel_data *pd; - int cb_cpu; - unsigned int seq_nr; - int info; - void (*parallel)(struct padata_priv *); - void (*serial)(struct padata_priv *); -}; - -struct workqueue_attrs { - int nice; - cpumask_var_t cpumask; - cpumask_var_t __pod_cpumask; - bool affn_strict; - enum wq_affn_scope affn_scope; - bool ordered; -}; - -struct padata_mt_job { - void (*thread_fn)(unsigned long, unsigned long, void *); - void *fn_arg; - unsigned long start; - unsigned long size; - unsigned long align; - unsigned long min_chunk; - int max_threads; - bool numa_aware; -}; - -struct padata_mt_job_state { - spinlock_t lock; - struct completion completion; - struct padata_mt_job *job; - int nworks; - int nworks_fini; - unsigned long chunk_size; -}; - -enum { - FOLL_TOUCH = 65536, - FOLL_TRIED = 131072, - FOLL_REMOTE = 262144, - FOLL_PIN = 524288, - FOLL_FAST_ONLY = 1048576, - FOLL_UNLOCKABLE = 2097152, -}; - -enum migrate_reason { - MR_COMPACTION = 0, - MR_MEMORY_FAILURE = 1, - MR_MEMORY_HOTPLUG = 2, - MR_SYSCALL = 3, - MR_MEMPOLICY_MBIND = 4, - MR_NUMA_MISPLACED = 5, - MR_CONTIG_RANGE = 6, - MR_LONGTERM_PIN = 7, - MR_DEMOTION = 8, - MR_TYPES = 9, -}; - -struct follow_page_context { - struct dev_pagemap *pgmap; - unsigned int page_mask; -}; - -struct migration_target_control { - int nid; - nodemask_t *nmask; - gfp_t gfp_mask; -}; - -typedef struct folio *new_folio_t(struct folio *, unsigned long); - -typedef void free_folio_t(struct folio *, unsigned long); - -enum { - BIAS = 2147483648, -}; - -struct pde_opener { - struct list_head lh; - struct file *file; - bool closing; - struct completion *c; -}; - -enum criteria { - CR_POWER2_ALIGNED = 0, - CR_GOAL_LEN_FAST = 1, - CR_BEST_AVAIL_LEN = 2, - CR_GOAL_LEN_SLOW = 3, - CR_ANY_FREE = 4, - EXT4_MB_NUM_CRS = 5, -}; - -enum { - MB_INODE_PA = 0, - MB_GROUP_PA = 1, -}; - -enum blk_default_limits { - BLK_MAX_SEGMENTS = 128, - BLK_SAFE_MAX_SECTORS = 255, - BLK_MAX_SEGMENT_SIZE = 65536, - BLK_SEG_BOUNDARY_MASK = 4294967295, -}; - -struct ext4_free_data { - struct list_head efd_list; - struct rb_node efd_node; - ext4_group_t efd_group; - ext4_grpblk_t efd_start_cluster; - ext4_grpblk_t efd_count; - tid_t efd_tid; -}; - -struct ext4_buddy { - struct page *bd_buddy_page; - void *bd_buddy; - struct page *bd_bitmap_page; - void *bd_bitmap; - struct ext4_group_info *bd_info; - struct super_block *bd_sb; - __u16 bd_blkbits; - ext4_group_t bd_group; -}; - -struct sg { - struct ext4_group_info info; - ext4_grpblk_t counters[18]; -}; - -typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); - -struct drbg_state; - -struct drbg_state_ops { - int (*update)(struct drbg_state *, struct list_head *, int); - int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *); - int (*crypto_init)(struct drbg_state *); - int (*crypto_fini)(struct drbg_state *); -}; - -enum drbg_seed_state { - DRBG_SEED_STATE_UNSEEDED = 0, - DRBG_SEED_STATE_PARTIAL = 1, - DRBG_SEED_STATE_FULL = 2, -}; - -struct drbg_string { - const unsigned char *buf; - size_t len; - struct list_head list; -}; - -struct drbg_core; - -struct drbg_state { - struct mutex drbg_mutex; - unsigned char *V; - unsigned char *Vbuf; - unsigned char *C; - unsigned char *Cbuf; - size_t reseed_ctr; - size_t reseed_threshold; - unsigned char *scratchpad; - unsigned char *scratchpadbuf; - void *priv_data; - struct crypto_skcipher *ctr_handle; - struct skcipher_request *ctr_req; - __u8 *outscratchpadbuf; - __u8 *outscratchpad; - struct crypto_wait ctr_wait; - struct scatterlist sg_in; - struct scatterlist sg_out; - enum drbg_seed_state seeded; - unsigned long last_seed_time; - bool pr; - bool fips_primed; - unsigned char *prev; - struct crypto_rng *jent; - const struct drbg_state_ops *d_ops; - const struct drbg_core *core; - struct drbg_string test_data; -}; - -typedef uint32_t drbg_flag_t; - -struct drbg_core { - drbg_flag_t flags; - __u8 statelen; - __u8 blocklen_bytes; - char cra_name[128]; - char backend_cra_name[128]; -}; - -enum drbg_prefixes { - DRBG_PREFIX0 = 0, - DRBG_PREFIX1 = 1, - DRBG_PREFIX2 = 2, - DRBG_PREFIX3 = 3, -}; - -struct sdesc { - struct shash_desc shash; - char ctx[0]; -}; - -struct statx; - -struct io_statx { - struct file *file; - int dfd; - unsigned int mask; - unsigned int flags; - struct filename *filename; - struct statx __attribute__((btf_type_tag("user"))) *buffer; -}; - -struct statx_timestamp { - __s64 tv_sec; - __u32 tv_nsec; - __s32 __reserved; -}; - -struct statx { - __u32 stx_mask; - __u32 stx_blksize; - __u64 stx_attributes; - __u32 stx_nlink; - __u32 stx_uid; - __u32 stx_gid; - __u16 stx_mode; - __u16 __spare0[1]; - __u64 stx_ino; - __u64 stx_size; - __u64 stx_blocks; - __u64 stx_attributes_mask; - struct statx_timestamp stx_atime; - struct statx_timestamp stx_btime; - struct statx_timestamp stx_ctime; - struct statx_timestamp stx_mtime; - __u32 stx_rdev_major; - __u32 stx_rdev_minor; - __u32 stx_dev_major; - __u32 stx_dev_minor; - __u64 stx_mnt_id; - __u32 stx_dio_mem_align; - __u32 stx_dio_offset_align; - __u64 __spare3[12]; -}; - -enum msi_desc_filter { - MSI_DESC_ALL = 0, - MSI_DESC_NOTASSOCIATED = 1, - MSI_DESC_ASSOCIATED = 2, -}; - -struct acpi_comment_node { - char *comment; - struct acpi_comment_node *next; -}; - -struct acpi_bit_register_info { - u8 parent_register; - u8 bit_position; - u16 access_bit_mask; -}; - -struct acpi_fixed_event_info { - u8 status_register_id; - u8 enable_register_id; - u16 status_bit_mask; - u16 enable_bit_mask; -}; - -struct acpi_table_fadt { - struct acpi_table_header header; - u32 facs; - u32 dsdt; - u8 model; - u8 preferred_profile; - u16 sci_interrupt; - u32 smi_command; - u8 acpi_enable; - u8 acpi_disable; - u8 s4_bios_request; - u8 pstate_control; - u32 pm1a_event_block; - u32 pm1b_event_block; - u32 pm1a_control_block; - u32 pm1b_control_block; - u32 pm2_control_block; - u32 pm_timer_block; - u32 gpe0_block; - u32 gpe1_block; - u8 pm1_event_length; - u8 pm1_control_length; - u8 pm2_control_length; - u8 pm_timer_length; - u8 gpe0_block_length; - u8 gpe1_block_length; - u8 gpe1_base; - u8 cst_control; - u16 c2_latency; - u16 c3_latency; - u16 flush_size; - u16 flush_stride; - u8 duty_offset; - u8 duty_width; - u8 day_alarm; - u8 month_alarm; - u8 century; - u16 boot_flags; - u8 reserved; - u32 flags; - struct acpi_generic_address reset_register; - u8 reset_value; - u16 arm_boot_flags; - u8 minor_revision; - u64 Xfacs; - u64 Xdsdt; - struct acpi_generic_address xpm1a_event_block; - struct acpi_generic_address xpm1b_event_block; - struct acpi_generic_address xpm1a_control_block; - struct acpi_generic_address xpm1b_control_block; - struct acpi_generic_address xpm2_control_block; - struct acpi_generic_address xpm_timer_block; - struct acpi_generic_address xgpe0_block; - struct acpi_generic_address xgpe1_block; - struct acpi_generic_address sleep_control; - struct acpi_generic_address sleep_status; - u64 hypervisor_id; -} __attribute__((packed)); - -struct acpi_table_list { - struct acpi_table_desc *tables; - u32 current_table_count; - u32 max_table_count; - u8 flags; -}; - -struct acpi_mutex_info { - void *mutex; - u32 use_count; - u64 thread_id; -}; - -typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); - -typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); - -typedef u32 (*acpi_sci_handler)(void *); - -struct acpi_sci_handler_info { - struct acpi_sci_handler_info *next; - acpi_sci_handler address; - void *context; -}; - -struct acpi_ged_handler_info { - struct acpi_ged_handler_info *next; - u32 int_id; - struct acpi_namespace_node *evt_method; -}; - -struct acpi_interface_info { - char *name; - struct acpi_interface_info *next; - u8 flags; - u8 value; -}; - -typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); - -struct acpi_fixed_event_handler { - acpi_event_handler handler; - void *context; -}; - -enum { - TTY_LOCK_NORMAL = 0, - TTY_LOCK_SLAVE = 1, -}; - -struct con_driver { - const struct consw *con; - const char *desc; - struct device *dev; - int node; - int first; - int last; - int flag; -}; - -struct vc { - struct vc_data *d; - struct work_struct SAK_work; -}; - -struct interval { - uint32_t first; - uint32_t last; -}; - -enum { - blank_off = 0, - blank_normal_wait = 1, - blank_vesa_wait = 2, -}; - -enum vc_ctl_state { - ESnormal = 0, - ESesc = 1, - ESsquare = 2, - ESgetpars = 3, - ESfunckey = 4, - EShash = 5, - ESsetG0 = 6, - ESsetG1 = 7, - ESpercent = 8, - EScsiignore = 9, - ESnonstd = 10, - ESpalette = 11, - ESosc = 12, - ESANSI_first = 12, - ESapc = 13, - ESpm = 14, - ESdcs = 15, - ESANSI_last = 15, -}; - -enum { - EPecma = 0, - EPdec = 1, - EPeq = 2, - EPgt = 3, - EPlt = 4, -}; - -enum translation_map { - LAT1_MAP = 0, - GRAF_MAP = 1, - IBMPC_MAP = 2, - USER_MAP = 3, - FIRST_MAP = 0, - LAST_MAP = 3, -}; - -enum CSI_J { - CSI_J_CURSOR_TO_END = 0, - CSI_J_START_TO_CURSOR = 1, - CSI_J_VISIBLE = 2, - CSI_J_FULL = 3, -}; - -enum { - ASCII_NULL = 0, - ASCII_BELL = 7, - ASCII_BACKSPACE = 8, - ASCII_IGNORE_FIRST = 8, - ASCII_HTAB = 9, - ASCII_LINEFEED = 10, - ASCII_VTAB = 11, - ASCII_FORMFEED = 12, - ASCII_CAR_RET = 13, - ASCII_IGNORE_LAST = 13, - ASCII_SHIFTOUT = 14, - ASCII_SHIFTIN = 15, - ASCII_CANCEL = 24, - ASCII_SUBSTITUTE = 26, - ASCII_ESCAPE = 27, - ASCII_CSI_IGNORE_FIRST = 32, - ASCII_CSI_IGNORE_LAST = 63, - ASCII_DEL = 127, - ASCII_EXT_CSI = 155, -}; - -enum { - CSI_DEC_hl_CURSOR_KEYS = 1, - CSI_DEC_hl_132_COLUMNS = 3, - CSI_DEC_hl_REVERSE_VIDEO = 5, - CSI_DEC_hl_ORIGIN_MODE = 6, - CSI_DEC_hl_AUTOWRAP = 7, - CSI_DEC_hl_AUTOREPEAT = 8, - CSI_DEC_hl_MOUSE_X10 = 9, - CSI_DEC_hl_SHOW_CURSOR = 25, - CSI_DEC_hl_MOUSE_VT200 = 1000, -}; - -enum { - CSI_K_CURSOR_TO_LINEEND = 0, - CSI_K_LINESTART_TO_CURSOR = 1, - CSI_K_LINE = 2, -}; - -enum { - CSI_hl_DISPLAY_CTRL = 3, - CSI_hl_INSERT = 4, - CSI_hl_AUTO_NL = 20, -}; - -enum { - CSI_m_DEFAULT = 0, - CSI_m_BOLD = 1, - CSI_m_HALF_BRIGHT = 2, - CSI_m_ITALIC = 3, - CSI_m_UNDERLINE = 4, - CSI_m_BLINK = 5, - CSI_m_REVERSE = 7, - CSI_m_PRI_FONT = 10, - CSI_m_ALT_FONT1 = 11, - CSI_m_ALT_FONT2 = 12, - CSI_m_DOUBLE_UNDERLINE = 21, - CSI_m_NORMAL_INTENSITY = 22, - CSI_m_NO_ITALIC = 23, - CSI_m_NO_UNDERLINE = 24, - CSI_m_NO_BLINK = 25, - CSI_m_NO_REVERSE = 27, - CSI_m_FG_COLOR_BEG = 30, - CSI_m_FG_COLOR_END = 37, - CSI_m_FG_COLOR = 38, - CSI_m_DEFAULT_FG_COLOR = 39, - CSI_m_BG_COLOR_BEG = 40, - CSI_m_BG_COLOR_END = 47, - CSI_m_BG_COLOR = 48, - CSI_m_DEFAULT_BG_COLOR = 49, - CSI_m_BRIGHT_FG_COLOR_BEG = 90, - CSI_m_BRIGHT_FG_COLOR_END = 97, - CSI_m_BRIGHT_FG_COLOR_OFF = 60, - CSI_m_BRIGHT_BG_COLOR_BEG = 100, - CSI_m_BRIGHT_BG_COLOR_END = 107, - CSI_m_BRIGHT_BG_COLOR_OFF = 60, -}; - -enum CSI_right_square_bracket { - CSI_RSB_COLOR_FOR_UNDERLINE = 1, - CSI_RSB_COLOR_FOR_HALF_BRIGHT = 2, - CSI_RSB_MAKE_CUR_COLOR_DEFAULT = 8, - CSI_RSB_BLANKING_INTERVAL = 9, - CSI_RSB_BELL_FREQUENCY = 10, - CSI_RSB_BELL_DURATION = 11, - CSI_RSB_BRING_CONSOLE_TO_FRONT = 12, - CSI_RSB_UNBLANK = 13, - CSI_RSB_VESA_OFF_INTERVAL = 14, - CSI_RSB_BRING_PREV_CONSOLE_TO_FRONT = 15, - CSI_RSB_CURSOR_BLINK_INTERVAL = 16, -}; - -typedef unsigned short ushort; - -struct vt_notifier_param { - struct vc_data *vc; - unsigned int c; -}; - -struct tiocl_selection { - unsigned short xs; - unsigned short ys; - unsigned short xe; - unsigned short ye; - unsigned short sel_mode; -}; - -struct console_font_op { - unsigned int op; - unsigned int flags; - unsigned int width; - unsigned int height; - unsigned int charcount; - unsigned char __attribute__((btf_type_tag("user"))) *data; -}; - -struct vc_draw_region { - unsigned long from; - unsigned long to; - int x; -}; - -struct rgb { - u8 r; - u8 g; - u8 b; -}; - -struct pci_bits { - unsigned int reg; - unsigned int width; - unsigned long mask; - unsigned long val; -}; - -struct ich_laptop { - u16 device; - u16 subvendor; - u16 subdevice; -}; - -struct piix_map_db { - const u32 mask; - const u16 port_enable; - const int map[0]; -}; - -enum piix_controller_ids { - piix_pata_mwdma = 0, - piix_pata_33 = 1, - ich_pata_33 = 2, - ich_pata_66 = 3, - ich_pata_100 = 4, - ich_pata_100_nomwdma1 = 5, - ich5_sata = 6, - ich6_sata = 7, - ich6m_sata = 8, - ich8_sata = 9, - ich8_2port_sata = 10, - ich8m_apple_sata = 11, - tolapai_sata = 12, - piix_pata_vmw = 13, - ich8_sata_snb = 14, - ich8_2port_sata_snb = 15, - ich8_2port_sata_byt = 16, -}; - -enum { - PIIX_IOCFG = 84, - ICH5_PMR = 144, - ICH5_PCS = 146, - PIIX_SIDPR_BAR = 5, - PIIX_SIDPR_LEN = 16, - PIIX_SIDPR_IDX = 0, - PIIX_SIDPR_DATA = 4, - PIIX_FLAG_CHECKINTR = 268435456, - PIIX_FLAG_SIDPR = 536870912, - PIIX_PATA_FLAGS = 1, - PIIX_SATA_FLAGS = 268435458, - PIIX_FLAG_PIO16 = 1073741824, - PIIX_80C_PRI = 48, - PIIX_80C_SEC = 192, - P0 = 0, - P1 = 1, - P2 = 2, - P3 = 3, - IDE = -1, - NA = -2, - RV = -3, - PIIX_AHCI_DEVICE = 6, - PIIX_HOST_BROKEN_SUSPEND = 16777216, -}; - -struct piix_host_priv { - const int *map; - u32 saved_iocfg; - void *sidpr; -}; - -enum iwl_ucode_tlv_type { - IWL_UCODE_TLV_INVALID = 0, - IWL_UCODE_TLV_INST = 1, - IWL_UCODE_TLV_DATA = 2, - IWL_UCODE_TLV_INIT = 3, - IWL_UCODE_TLV_INIT_DATA = 4, - IWL_UCODE_TLV_BOOT = 5, - IWL_UCODE_TLV_PROBE_MAX_LEN = 6, - IWL_UCODE_TLV_PAN = 7, - IWL_UCODE_TLV_MEM_DESC = 7, - IWL_UCODE_TLV_RUNT_EVTLOG_PTR = 8, - IWL_UCODE_TLV_RUNT_EVTLOG_SIZE = 9, - IWL_UCODE_TLV_RUNT_ERRLOG_PTR = 10, - IWL_UCODE_TLV_INIT_EVTLOG_PTR = 11, - IWL_UCODE_TLV_INIT_EVTLOG_SIZE = 12, - IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13, - IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14, - IWL_UCODE_TLV_PHY_CALIBRATION_SIZE = 15, - IWL_UCODE_TLV_WOWLAN_INST = 16, - IWL_UCODE_TLV_WOWLAN_DATA = 17, - IWL_UCODE_TLV_FLAGS = 18, - IWL_UCODE_TLV_SEC_RT = 19, - IWL_UCODE_TLV_SEC_INIT = 20, - IWL_UCODE_TLV_SEC_WOWLAN = 21, - IWL_UCODE_TLV_DEF_CALIB = 22, - IWL_UCODE_TLV_PHY_SKU = 23, - IWL_UCODE_TLV_SECURE_SEC_RT = 24, - IWL_UCODE_TLV_SECURE_SEC_INIT = 25, - IWL_UCODE_TLV_SECURE_SEC_WOWLAN = 26, - IWL_UCODE_TLV_NUM_OF_CPU = 27, - IWL_UCODE_TLV_CSCHEME = 28, - IWL_UCODE_TLV_API_CHANGES_SET = 29, - IWL_UCODE_TLV_ENABLED_CAPABILITIES = 30, - IWL_UCODE_TLV_N_SCAN_CHANNELS = 31, - IWL_UCODE_TLV_PAGING = 32, - IWL_UCODE_TLV_SEC_RT_USNIFFER = 34, - IWL_UCODE_TLV_FW_VERSION = 36, - IWL_UCODE_TLV_FW_DBG_DEST = 38, - IWL_UCODE_TLV_FW_DBG_CONF = 39, - IWL_UCODE_TLV_FW_DBG_TRIGGER = 40, - IWL_UCODE_TLV_CMD_VERSIONS = 48, - IWL_UCODE_TLV_FW_GSCAN_CAPA = 50, - IWL_UCODE_TLV_FW_MEM_SEG = 51, - IWL_UCODE_TLV_IML = 52, - IWL_UCODE_TLV_UMAC_DEBUG_ADDRS = 54, - IWL_UCODE_TLV_LMAC_DEBUG_ADDRS = 55, - IWL_UCODE_TLV_FW_RECOVERY_INFO = 57, - IWL_UCODE_TLV_HW_TYPE = 58, - IWL_UCODE_TLV_FW_FSEQ_VERSION = 60, - IWL_UCODE_TLV_PHY_INTEGRATION_VERSION = 61, - IWL_UCODE_TLV_PNVM_VERSION = 62, - IWL_UCODE_TLV_PNVM_SKU = 64, - IWL_UCODE_TLV_SEC_TABLE_ADDR = 66, - IWL_UCODE_TLV_D3_KEK_KCK_ADDR = 67, - IWL_UCODE_TLV_CURRENT_PC = 68, - IWL_UCODE_TLV_FW_NUM_STATIONS = 256, - IWL_UCODE_TLV_FW_NUM_BEACONS = 258, - IWL_UCODE_TLV_TYPE_DEBUG_INFO = 16777221, - IWL_UCODE_TLV_TYPE_BUFFER_ALLOCATION = 16777222, - IWL_UCODE_TLV_TYPE_HCMD = 16777223, - IWL_UCODE_TLV_TYPE_REGIONS = 16777224, - IWL_UCODE_TLV_TYPE_TRIGGERS = 16777225, - IWL_UCODE_TLV_TYPE_CONF_SET = 16777226, - IWL_UCODE_TLV_DEBUG_MAX = 16777225, - IWL_UCODE_TLV_FW_DBG_DUMP_LST = 4096, -}; - -struct uefi_cnv_common_step_data { - u8 revision; - u8 step_mode; - u8 cnvi_eq_channel; - u8 cnvr_eq_channel; - u8 radio1; - u8 radio2; -}; - -struct uefi_cnv_wlan_sgom_data { - u8 revision; - u8 offset_map[338]; -}; - -struct uefi_cnv_wlan_uats_data { - u8 revision; - u8 offset_map[338]; -}; - -struct uefi_sar_profile { - struct iwl_sar_profile_chain chains[4]; -}; - -struct iwl_uefi_pnvm_mem_desc { - __le32 addr; - __le32 size; - const u8 data[0]; -}; - -struct pnvm_sku_package { - u8 rev; - u32 total_size; - u8 n_skus; - u32 reserved[2]; - u8 data[0]; -} __attribute__((packed)); - -struct uefi_cnv_var_wrds { - u8 revision; - u32 mode; - struct uefi_sar_profile sar_profile; -} __attribute__((packed)); - -struct uefi_cnv_var_ewrd { - u8 revision; - u32 mode; - u32 num_profiles; - struct uefi_sar_profile sar_profiles[3]; -} __attribute__((packed)); - -struct uefi_cnv_var_wgds { - u8 revision; - u8 num_profiles; - struct iwl_geo_profile geo_profiles[8]; -}; - -struct uefi_cnv_var_ppag { - u8 revision; - u32 ppag_modes; - struct iwl_ppag_chain ppag_chains[2]; -} __attribute__((packed)); - -struct uefi_cnv_var_wtas { - u8 revision; - u32 tas_selection; - u8 black_list_size; - u16 black_list[16]; -} __attribute__((packed)); - -struct uefi_cnv_var_splc { - u8 revision; - u32 default_pwr_limit; -} __attribute__((packed)); - -struct uefi_cnv_var_wrdd { - u8 revision; - u32 mcc; -} __attribute__((packed)); - -struct uefi_cnv_var_eckv { - u8 revision; - u32 ext_clock_valid; -} __attribute__((packed)); - -struct uefi_cnv_var_general_cfg { - u8 revision; - u32 functions[32]; -} __attribute__((packed)); - -enum iwl_wowlan_flags { - IS_11W_ASSOC = 1, - ENABLE_L3_FILTERING = 2, - ENABLE_NBNS_FILTERING = 4, - ENABLE_DHCP_FILTERING = 8, - ENABLE_STORE_BEACON = 16, -}; - -enum iwl_wowlan_wakeup_filters { - IWL_WOWLAN_WAKEUP_MAGIC_PACKET = 1, - IWL_WOWLAN_WAKEUP_PATTERN_MATCH = 2, - IWL_WOWLAN_WAKEUP_BEACON_MISS = 4, - IWL_WOWLAN_WAKEUP_LINK_CHANGE = 8, - IWL_WOWLAN_WAKEUP_GTK_REKEY_FAIL = 16, - IWL_WOWLAN_WAKEUP_EAP_IDENT_REQ = 32, - IWL_WOWLAN_WAKEUP_4WAY_HANDSHAKE = 64, - IWL_WOWLAN_WAKEUP_ENABLE_NET_DETECT = 128, - IWL_WOWLAN_WAKEUP_RF_KILL_DEASSERT = 256, - IWL_WOWLAN_WAKEUP_REMOTE_LINK_LOSS = 512, - IWL_WOWLAN_WAKEUP_REMOTE_SIGNATURE_TABLE = 1024, - IWL_WOWLAN_WAKEUP_REMOTE_TCP_EXTERNAL = 2048, - IWL_WOWLAN_WAKEUP_REMOTE_WAKEUP_PACKET = 4096, - IWL_WOWLAN_WAKEUP_IOAC_MAGIC_PACKET = 8192, - IWL_WOWLAN_WAKEUP_HOST_TIMER = 16384, - IWL_WOWLAN_WAKEUP_RX_FRAME = 32768, - IWL_WOWLAN_WAKEUP_BCN_FILTERING = 65536, -}; - -enum iwl_sta_key_flag { - STA_KEY_FLG_NO_ENC = 0, - STA_KEY_FLG_WEP = 1, - STA_KEY_FLG_CCM = 2, - STA_KEY_FLG_TKIP = 3, - STA_KEY_FLG_EXT = 4, - STA_KEY_FLG_GCMP = 5, - STA_KEY_FLG_CMAC = 6, - STA_KEY_FLG_ENC_UNKNOWN = 7, - STA_KEY_FLG_EN_MSK = 7, - STA_KEY_FLG_WEP_KEY_MAP = 8, - STA_KEY_FLG_AMSDU_SPP = 128, - STA_KEY_FLG_KEYID_POS = 8, - STA_KEY_FLG_KEYID_MSK = 768, - STA_KEY_NOT_VALID = 2048, - STA_KEY_FLG_WEP_13BYTES = 4096, - STA_KEY_FLG_KEY_32BYTES = 4096, - STA_KEY_MULTICAST = 16384, - STA_KEY_MFP = 32768, -}; - -enum iwl_wowlan_pattern_type { - WOWLAN_PATTERN_TYPE_BITMASK = 0, - WOWLAN_PATTERN_TYPE_IPV4_TCP_SYN = 1, - WOWLAN_PATTERN_TYPE_IPV6_TCP_SYN = 2, - WOWLAN_PATTERN_TYPE_IPV4_TCP_SYN_WILDCARD = 3, - WOWLAN_PATTERN_TYPE_IPV6_TCP_SYN_WILDCARD = 4, -}; - -enum iwl_d3_notif { - IWL_D3_NOTIF_WOWLAN_INFO = 1, - IWL_D3_NOTIF_WOWLAN_WAKE_PKT = 2, - IWL_D3_NOTIF_PROT_OFFLOAD = 4, - IWL_D3_ND_MATCH_INFO = 8, - IWL_D3_NOTIF_D3_END_NOTIF = 16, -}; - -enum iwl_d0i3_flags { - IWL_D0I3_RESET_REQUIRE = 1, -}; - -enum iwl_prot_offload_subcmd_ids { - WOWLAN_WAKE_PKT_NOTIFICATION = 252, - WOWLAN_INFO_NOTIFICATION = 253, - D3_END_NOTIFICATION = 254, - STORED_BEACON_NTF = 255, -}; - -enum iwl_wowlan_wakeup_reason { - IWL_WOWLAN_WAKEUP_BY_NON_WIRELESS = 0, - IWL_WOWLAN_WAKEUP_BY_MAGIC_PACKET = 1, - IWL_WOWLAN_WAKEUP_BY_PATTERN = 2, - IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_MISSED_BEACON = 4, - IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_DEAUTH = 8, - IWL_WOWLAN_WAKEUP_BY_GTK_REKEY_FAILURE = 16, - IWL_WOWLAN_WAKEUP_BY_RFKILL_DEASSERTED = 32, - IWL_WOWLAN_WAKEUP_BY_UCODE_ERROR = 64, - IWL_WOWLAN_WAKEUP_BY_EAPOL_REQUEST = 128, - IWL_WOWLAN_WAKEUP_BY_FOUR_WAY_HANDSHAKE = 256, - IWL_WOWLAN_WAKEUP_BY_REM_WAKE_LINK_LOSS = 512, - IWL_WOWLAN_WAKEUP_BY_REM_WAKE_SIGNATURE_TABLE = 1024, - IWL_WOWLAN_WAKEUP_BY_REM_WAKE_TCP_EXTERNAL = 2048, - IWL_WOWLAN_WAKEUP_BY_REM_WAKE_WAKEUP_PACKET = 4096, - IWL_WOWLAN_WAKEUP_BY_IOAC_MAGIC_PACKET = 8192, - IWL_WOWLAN_WAKEUP_BY_D3_WAKEUP_HOST_TIMER = 16384, - IWL_WOWLAN_WAKEUP_BY_RXFRAME_FILTERED_IN = 32768, - IWL_WOWLAN_WAKEUP_BY_BEACON_FILTERED_IN = 65536, - IWL_WAKEUP_BY_11W_UNPROTECTED_DEAUTH_OR_DISASSOC = 131072, - IWL_WAKEUP_BY_PATTERN_IPV4_TCP_SYN = 262144, - IWL_WAKEUP_BY_PATTERN_IPV4_TCP_SYN_WILDCARD = 524288, - IWL_WAKEUP_BY_PATTERN_IPV6_TCP_SYN = 1048576, - IWL_WAKEUP_BY_PATTERN_IPV6_TCP_SYN_WILDCARD = 2097152, -}; - -enum ieee80211_key_len { - WLAN_KEY_LEN_WEP40 = 5, - WLAN_KEY_LEN_WEP104 = 13, - WLAN_KEY_LEN_CCMP = 16, - WLAN_KEY_LEN_CCMP_256 = 32, - WLAN_KEY_LEN_TKIP = 32, - WLAN_KEY_LEN_AES_CMAC = 16, - WLAN_KEY_LEN_SMS4 = 32, - WLAN_KEY_LEN_GCMP = 16, - WLAN_KEY_LEN_GCMP_256 = 32, - WLAN_KEY_LEN_BIP_CMAC_256 = 32, - WLAN_KEY_LEN_BIP_GMAC_128 = 16, - WLAN_KEY_LEN_BIP_GMAC_256 = 32, -}; - -struct iwl_time_quota_data_v1 { - __le32 id_and_color; - __le32 quota; - __le32 max_duration; -}; - -struct iwl_d3_manager_config { - __le32 min_sleep_time; - __le32 wakeup_flags; - __le32 wakeup_host_timer; -}; - -struct iwl_wowlan_config_cmd { - __le32 wakeup_filter; - __le16 non_qos_seq; - __le16 qos_seq[8]; - u8 wowlan_ba_teardown_tids; - u8 is_11n_connection; - u8 offloading_tid; - u8 flags; - u8 sta_id; - u8 reserved; -}; - -struct iwl_nonqos_seq_query_cmd { - __le32 get_set_flag; - __le32 mac_id_n_color; - __le16 value; - __le16 reserved; -}; - -struct iwl_binding_cmd_v1 { - __le32 id_and_color; - __le32 action; - __le32 macs[3]; - __le32 phy; -}; - -struct wowlan_key_reprogram_data { - bool error; - int wep_key_idx; -}; - -struct iwl_mic_keys { - u8 tx[8]; - u8 rx_unicast[8]; - u8 rx_mcast[8]; -}; - -struct iwl_p1k_cache { - __le16 p1k[5]; -}; - -struct iwl_wowlan_tkip_params_cmd { - struct iwl_mic_keys mic_keys; - struct iwl_p1k_cache tx; - struct iwl_p1k_cache rx_uni[2]; - struct iwl_p1k_cache rx_multi[2]; - u8 reversed[2]; - __le32 sta_id; -}; - -struct wowlan_key_tkip_data { - struct iwl_wowlan_tkip_params_cmd tkip; - bool have_tkip_keys; -} __attribute__((packed)); - -struct iwl_wowlan_kek_kck_material_cmd_v4 { - __le32 sta_id; - u8 kck[32]; - u8 kek[32]; - __le16 kck_len; - __le16 kek_len; - __le64 replay_ctr; - __le32 akm; - __le32 gtk_cipher; - __le32 igtk_cipher; - __le32 bigtk_cipher; -}; - -struct wowlan_key_gtk_type_iter { - struct iwl_wowlan_kek_kck_material_cmd_v4 *kek_kck_cmd; -}; - -struct iwl_wowlan_rsc_tsc_params_cmd; - -struct wowlan_key_rsc_v5_data { - struct iwl_wowlan_rsc_tsc_params_cmd *rsc; - bool have_rsc; - int gtks; - int gtk_ids[4]; -}; - -struct iwl_wowlan_rsc_tsc_params_cmd { - __le64 ucast_rsc[8]; - __le64 mcast_rsc[16]; - __le32 sta_id; - u8 mcast_key_id_map[4]; -}; - -struct iwl_wowlan_rsc_tsc_params_cmd_v4; - -struct wowlan_key_rsc_tsc_data { - struct iwl_wowlan_rsc_tsc_params_cmd_v4 *rsc_tsc; - bool have_rsc_tsc; -}; - -struct tkip_sc { - __le16 iv16; - __le16 pad; - __le32 iv32; -}; - -struct iwl_tkip_rsc_tsc { - struct tkip_sc unicast_rsc[16]; - struct tkip_sc multicast_rsc[16]; - struct tkip_sc tsc; -}; - -struct aes_sc { - __le64 pn; -}; - -struct iwl_aes_rsc_tsc { - struct aes_sc unicast_rsc[16]; - struct aes_sc multicast_rsc[16]; - struct aes_sc tsc; -}; - -union iwl_all_tsc_rsc { - struct iwl_tkip_rsc_tsc tkip; - struct iwl_aes_rsc_tsc aes; -}; - -struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 { - union iwl_all_tsc_rsc all_tsc_rsc; -}; - -struct iwl_wowlan_rsc_tsc_params_cmd_v4 { - struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 params; - __le32 sta_id; -} __attribute__((packed)); - -struct iwl_wowlan_pattern_v1 { - u8 mask[16]; - u8 pattern[128]; - u8 mask_size; - u8 pattern_size; - __le16 reserved; -}; - -struct iwl_wowlan_patterns_cmd_v1 { - __le32 n_patterns; - struct iwl_wowlan_pattern_v1 patterns[0]; -}; - -struct iwl_wowlan_ipv4_tcp_syn { - u8 src_addr[4]; - u8 dst_addr[4]; - __le16 src_port; - __le16 dst_port; -}; - -struct iwl_wowlan_ipv6_tcp_syn { - u8 src_addr[16]; - u8 dst_addr[16]; - __le16 src_port; - __le16 dst_port; -}; - -union iwl_wowlan_pattern_data { - struct iwl_wowlan_pattern_v1 bitmask; - struct iwl_wowlan_ipv4_tcp_syn ipv4_tcp_syn; - struct iwl_wowlan_ipv6_tcp_syn ipv6_tcp_syn; -}; - -struct iwl_wowlan_pattern_v2 { - u8 pattern_type; - u8 reserved[3]; - union iwl_wowlan_pattern_data u; -}; - -struct iwl_wowlan_patterns_cmd { - u8 n_patterns; - u8 sta_id; - __le16 reserved; - struct iwl_wowlan_pattern_v2 patterns[0]; -}; - -struct iwl_fw_dbg_params { - u32 in_sample; - u32 out_ctrl; -}; - -struct iwl_mvm_nd_results { - u32 matched_profiles; - u8 matches[198]; -}; - -struct iwl_wowlan_status_data; - -struct iwl_d3_data { - struct iwl_wowlan_status_data *status; - bool test; - u32 d3_end_flags; - u32 notif_expected; - u32 notif_received; - struct iwl_mvm_nd_results *nd_results; - bool nd_results_valid; -}; - -struct iwl_multicast_key_data { - u8 key[32]; - u8 len; - u8 flags; - u8 id; - u8 ipn[6]; -}; - -struct iwl_wowlan_status_data { - u64 replay_ctr; - u32 num_of_gtk_rekeys; - u32 received_beacons; - u32 wakeup_reasons; - u32 wake_packet_length; - u32 wake_packet_bufsize; - u16 pattern_number; - u16 non_qos_seq_ctr; - u16 qos_seq_ctr[8]; - u8 tid_tear_down; - struct { - u8 key[32]; - u8 len; - u8 flags; - u8 id; - } gtk[2]; - struct { - struct { - struct ieee80211_key_seq seq[8]; - } tkip; - struct { - struct ieee80211_key_seq seq[8]; - } aes; - s8 key_id; - bool valid; - } gtk_seq[2]; - struct { - struct { - struct ieee80211_key_seq seq[8]; - u64 tx_pn; - } tkip; - struct { - struct ieee80211_key_seq seq[8]; - u64 tx_pn; - } aes; - } ptk; - struct iwl_multicast_key_data igtk; - struct iwl_multicast_key_data bigtk[2]; - u8 *wake_packet; -}; - -struct error_table_start { - u32 valid; - __le32 err_id; -}; - -struct iwl_wowlan_get_status_cmd { - __le32 sta_id; -}; - -struct iwl_wowlan_gtk_status_v1 { - u8 key_index; - u8 reserved[3]; - u8 decrypt_key[16]; - u8 tkip_mic_key[8]; - struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 rsc; -} __attribute__((packed)); - -struct iwl_wowlan_status_v6 { - struct iwl_wowlan_gtk_status_v1 gtk; - __le64 replay_ctr; - __le16 pattern_number; - __le16 non_qos_seq_ctr; - __le16 qos_seq_ctr[8]; - __le32 wakeup_reasons; - __le32 num_of_gtk_rekeys; - __le32 transmitted_ndps; - __le32 received_beacons; - __le32 wake_packet_length; - __le32 wake_packet_bufsize; - u8 wake_packet[0]; -} __attribute__((packed)); - -struct iwl_wowlan_gtk_status_v2 { - u8 key[32]; - u8 key_len; - u8 key_flags; - u8 reserved[2]; - u8 tkip_mic_key[8]; - struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 rsc; -} __attribute__((packed)); - -struct iwl_wowlan_igtk_status { - u8 key[32]; - u8 ipn[6]; - u8 key_len; - u8 key_flags; -}; - -struct iwl_wowlan_status_v7 { - struct iwl_wowlan_gtk_status_v2 gtk[2]; - struct iwl_wowlan_igtk_status igtk[2]; - __le64 replay_ctr; - __le16 pattern_number; - __le16 non_qos_seq_ctr; - __le16 qos_seq_ctr[8]; - __le32 wakeup_reasons; - __le32 num_of_gtk_rekeys; - __le32 transmitted_ndps; - __le32 received_beacons; - __le32 wake_packet_length; - __le32 wake_packet_bufsize; - u8 wake_packet[0]; -} __attribute__((packed)); - -struct iwl_wowlan_status_v9 { - struct iwl_wowlan_gtk_status_v2 gtk[2]; - struct iwl_wowlan_igtk_status igtk[2]; - __le64 replay_ctr; - __le16 pattern_number; - __le16 non_qos_seq_ctr; - __le16 qos_seq_ctr[8]; - __le32 wakeup_reasons; - __le32 num_of_gtk_rekeys; - __le32 transmitted_ndps; - __le32 received_beacons; - __le32 wake_packet_length; - __le32 wake_packet_bufsize; - u8 tid_tear_down; - u8 reserved[3]; - u8 wake_packet[0]; -}; - -struct iwl_wowlan_all_rsc_tsc_v5 { - __le64 ucast_rsc[8]; - __le64 mcast_rsc[16]; - __le32 sta_id; - u8 mcast_key_id_map[4]; -}; - -struct iwl_wowlan_gtk_status_v3 { - u8 key[32]; - u8 key_len; - u8 key_flags; - u8 reserved[2]; - u8 tkip_mic_key[8]; - struct iwl_wowlan_all_rsc_tsc_v5 sc; -} __attribute__((packed)); - -struct iwl_wowlan_status_v12 { - struct iwl_wowlan_gtk_status_v3 gtk[2]; - struct iwl_wowlan_igtk_status igtk[2]; - __le64 replay_ctr; - __le16 pattern_number; - __le16 non_qos_seq_ctr; - __le16 qos_seq_ctr[8]; - __le32 wakeup_reasons; - __le32 num_of_gtk_rekeys; - __le32 transmitted_ndps; - __le32 received_beacons; - __le32 wake_packet_length; - __le32 wake_packet_bufsize; - u8 tid_tear_down; - u8 reserved[3]; - u8 wake_packet[0]; -}; - -struct iwl_scan_offload_profile_match { - u8 bssid[6]; - __le16 reserved; - u8 channel; - u8 energy; - u8 matching_feature; - u8 matching_channels[7]; -}; - -struct iwl_scan_offload_match_info { - __le32 matched_profiles; - __le32 last_scan_age; - __le32 n_scans_done; - __le32 gp2_d0u; - __le32 gp2_invoked; - u8 resume_while_scanning; - u8 self_recovery; - __le16 reserved; - struct iwl_scan_offload_profile_match matches[0]; -}; - -struct iwl_scan_offload_profile_match_v1 { - u8 bssid[6]; - __le16 reserved; - u8 channel; - u8 energy; - u8 matching_feature; - u8 matching_channels[5]; -}; - -struct iwl_mvm_d3_gtk_iter_data { - struct iwl_mvm *mvm; - struct iwl_wowlan_status_data *status; - u32 gtk_cipher; - u32 igtk_cipher; - u32 bigtk_cipher; - bool unhandled_cipher; - bool igtk_support; - bool bigtk_support; - int num_keys; -}; - -struct iwl_mvm_wep_key { - u8 key_index; - u8 key_offset; - __le16 reserved1; - u8 key_size; - u8 reserved2[3]; - u8 key[16]; -}; - -struct iwl_mvm_wep_key_cmd { - __le32 mac_id_n_color; - u8 num_keys; - u8 decryption_type; - u8 flags; - u8 reserved; - struct iwl_mvm_wep_key wep_key[0]; -}; - -struct iwl_wowlan_wake_pkt_notif { - __le32 wake_packet_length; - u8 station_id; - u8 reserved[3]; - u8 wake_packet[1]; -} __attribute__((packed)); - -struct iwl_wowlan_info_notif { - struct iwl_wowlan_gtk_status_v3 gtk[2]; - struct iwl_wowlan_igtk_status igtk[2]; - struct iwl_wowlan_igtk_status bigtk[2]; - __le64 replay_ctr; - __le16 pattern_number; - __le16 reserved1; - __le16 qos_seq_ctr[8]; - __le32 wakeup_reasons; - __le32 num_of_gtk_rekeys; - __le32 transmitted_ndps; - __le32 received_beacons; - u8 tid_tear_down; - u8 station_id; - u8 reserved2[2]; -}; - -struct iwl_wowlan_info_notif_v1 { - struct iwl_wowlan_gtk_status_v3 gtk[2]; - struct iwl_wowlan_igtk_status igtk[2]; - __le64 replay_ctr; - __le16 pattern_number; - __le16 reserved1; - __le16 qos_seq_ctr[8]; - __le32 wakeup_reasons; - __le32 num_of_gtk_rekeys; - __le32 transmitted_ndps; - __le32 received_beacons; - __le32 wake_packet_length; - __le32 wake_packet_bufsize; - u8 tid_tear_down; - u8 station_id; - u8 reserved2[2]; -}; - -struct iwl_wowlan_info_notif_v2 { - struct iwl_wowlan_gtk_status_v3 gtk[2]; - struct iwl_wowlan_igtk_status igtk[2]; - __le64 replay_ctr; - __le16 pattern_number; - __le16 reserved1; - __le16 qos_seq_ctr[8]; - __le32 wakeup_reasons; - __le32 num_of_gtk_rekeys; - __le32 transmitted_ndps; - __le32 received_beacons; - u8 tid_tear_down; - u8 station_id; - u8 reserved2[2]; -}; - -struct iwl_mvm_d3_end_notif { - __le32 flags; -}; - -struct dm_arg { - unsigned int min; - unsigned int max; - char *error; -}; - -struct crypt_config; - -struct dm_crypt_request; - -struct crypt_iv_operations { - int (*ctr)(struct crypt_config *, struct dm_target *, const char *); - void (*dtr)(struct crypt_config *); - int (*init)(struct crypt_config *); - int (*wipe)(struct crypt_config *); - int (*generator)(struct crypt_config *, u8 *, struct dm_crypt_request *); - int (*post)(struct crypt_config *, u8 *, struct dm_crypt_request *); -}; - -struct iv_benbi_private { - int shift; -}; - -struct iv_lmk_private { - struct crypto_shash *hash_tfm; - u8 *seed; -}; - -struct iv_tcw_private { - struct crypto_shash *crc32_tfm; - u8 *iv_seed; - u8 *whitening; -}; - -struct iv_elephant_private { - struct crypto_skcipher *tfm; -}; - -struct crypt_config { - struct dm_dev *dev; - sector_t start; - struct percpu_counter n_allocated_pages; - struct workqueue_struct *io_queue; - struct workqueue_struct *crypt_queue; - spinlock_t write_thread_lock; - struct task_struct *write_thread; - struct rb_root write_tree; - char *cipher_string; - char *cipher_auth; - char *key_string; - const struct crypt_iv_operations *iv_gen_ops; - union { - struct iv_benbi_private benbi; - struct iv_lmk_private lmk; - struct iv_tcw_private tcw; - struct iv_elephant_private elephant; - } iv_gen_private; - u64 iv_offset; - unsigned int iv_size; - unsigned short sector_size; - unsigned char sector_shift; - union { - struct crypto_skcipher **tfms; - struct crypto_aead **tfms_aead; - } cipher_tfm; - unsigned int tfms_count; - unsigned long cipher_flags; - unsigned int dmreq_start; - unsigned int per_bio_data_size; - unsigned long flags; - unsigned int key_size; - unsigned int key_parts; - unsigned int key_extra_size; - unsigned int key_mac_size; - unsigned int integrity_tag_size; - unsigned int integrity_iv_size; - unsigned int on_disk_tag_size; - unsigned int tag_pool_max_sectors; - mempool_t tag_pool; - mempool_t req_pool; - mempool_t page_pool; - struct bio_set bs; - struct mutex bio_alloc_lock; - u8 *authenc_key; - u8 key[0]; -}; - -struct convert_context; - -struct dm_crypt_request { - struct convert_context *ctx; - struct scatterlist sg_in[4]; - struct scatterlist sg_out[4]; - u64 iv_sector; -}; - -struct convert_context { - struct completion restart; - struct bio *bio_in; - struct bvec_iter iter_in; - struct bio *bio_out; - struct bvec_iter iter_out; - atomic_t cc_pending; - u64 cc_sector; - union { - struct skcipher_request *req; - struct aead_request *req_aead; - } r; - bool aead_recheck; - bool aead_failed; -}; - -enum flags { - DM_CRYPT_SUSPENDED = 0, - DM_CRYPT_KEY_VALID = 1, - DM_CRYPT_SAME_CPU = 2, - DM_CRYPT_NO_OFFLOAD = 3, - DM_CRYPT_NO_READ_WORKQUEUE = 4, - DM_CRYPT_NO_WRITE_WORKQUEUE = 5, - DM_CRYPT_WRITE_INLINE = 6, -}; - -enum cipher_flags { - CRYPT_MODE_INTEGRITY_AEAD = 0, - CRYPT_IV_LARGE_SECTORS = 1, - CRYPT_ENCRYPT_PREPROCESS = 2, -}; - -enum { - CRYPTO_AUTHENC_KEYA_UNSPEC = 0, - CRYPTO_AUTHENC_KEYA_PARAM = 1, -}; - -struct user_key_payload { - struct callback_head rcu; - unsigned short datalen; - long: 0; - char data[0]; -}; - -struct dm_crypt_io { - struct crypt_config *cc; - struct bio *base_bio; - u8 *integrity_metadata; - bool integrity_metadata_from_pool: 1; - struct work_struct work; - struct convert_context ctx; - atomic_t io_pending; - blk_status_t error; - sector_t sector; - struct bvec_iter saved_bi_iter; - struct rb_node rb_node; -}; - -struct crypto_authenc_key_param { - __be32 enckeylen; -}; - -struct bio_integrity_payload { - struct bio *bip_bio; - struct bvec_iter bip_iter; - unsigned short bip_vcnt; - unsigned short bip_max_vcnt; - unsigned short bip_flags; - int: 0; - struct bvec_iter bio_iter; - struct work_struct bip_work; - struct bio_vec *bip_vec; - struct bio_vec bip_inline_vecs[0]; -}; - -struct md5_state { - u32 hash[4]; - u32 block[16]; - u64 byte_count; -}; - -struct strset_info { - bool per_dev; - bool free_strings; - unsigned int count; - const char (*strings)[32]; -}; - -enum { - ETHTOOL_A_STRSET_UNSPEC = 0, - ETHTOOL_A_STRSET_HEADER = 1, - ETHTOOL_A_STRSET_STRINGSETS = 2, - ETHTOOL_A_STRSET_COUNTS_ONLY = 3, - __ETHTOOL_A_STRSET_CNT = 4, - ETHTOOL_A_STRSET_MAX = 3, -}; - -enum { - ETHTOOL_A_STRINGSETS_UNSPEC = 0, - ETHTOOL_A_STRINGSETS_STRINGSET = 1, - __ETHTOOL_A_STRINGSETS_CNT = 2, - ETHTOOL_A_STRINGSETS_MAX = 1, -}; - -enum { - ETHTOOL_A_STRINGSET_UNSPEC = 0, - ETHTOOL_A_STRINGSET_ID = 1, - ETHTOOL_A_STRINGSET_COUNT = 2, - ETHTOOL_A_STRINGSET_STRINGS = 3, - __ETHTOOL_A_STRINGSET_CNT = 4, - ETHTOOL_A_STRINGSET_MAX = 3, -}; - -enum { - ETHTOOL_A_STRINGS_UNSPEC = 0, - ETHTOOL_A_STRINGS_STRING = 1, - __ETHTOOL_A_STRINGS_CNT = 2, - ETHTOOL_A_STRINGS_MAX = 1, -}; - -enum { - ETHTOOL_A_STRING_UNSPEC = 0, - ETHTOOL_A_STRING_INDEX = 1, - ETHTOOL_A_STRING_VALUE = 2, - __ETHTOOL_A_STRING_CNT = 3, - ETHTOOL_A_STRING_MAX = 2, -}; - -struct strset_req_info { - struct ethnl_req_info base; - u32 req_ids; - bool counts_only; -}; - -struct strset_reply_data { - struct ethnl_reply_data base; - struct strset_info sets[21]; -}; - -struct icmp6_err { - int err; - int fatal; -}; - -enum { - ICMP6_MIB_NUM = 0, - ICMP6_MIB_INMSGS = 1, - ICMP6_MIB_INERRORS = 2, - ICMP6_MIB_OUTMSGS = 3, - ICMP6_MIB_OUTERRORS = 4, - ICMP6_MIB_CSUMERRORS = 5, - ICMP6_MIB_RATELIMITHOST = 6, - __ICMP6_MIB_MAX = 7, -}; - -enum { - XFRM_LOOKUP_ICMP = 1, - XFRM_LOOKUP_QUEUE = 2, - XFRM_LOOKUP_KEEP_DST_REF = 4, -}; - -enum xfrm_replay_mode { - XFRM_REPLAY_MODE_LEGACY = 0, - XFRM_REPLAY_MODE_BMP = 1, - XFRM_REPLAY_MODE_ESN = 2, -}; - -enum flowlabel_reflect { - FLOWLABEL_REFLECT_ESTABLISHED = 1, - FLOWLABEL_REFLECT_TCP_RESET = 2, - FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, -}; - -struct icmpv6_msg { - struct sk_buff *skb; - int offset; - uint8_t type; -}; - -enum bug_trap_type { - BUG_TRAP_TYPE_NONE = 0, - BUG_TRAP_TYPE_WARN = 1, - BUG_TRAP_TYPE_BUG = 2, -}; - -typedef __u64 Elf64_Off; - -struct elf64_hdr { - unsigned char e_ident[16]; - Elf64_Half e_type; - Elf64_Half e_machine; - Elf64_Word e_version; - Elf64_Addr e_entry; - Elf64_Off e_phoff; - Elf64_Off e_shoff; - Elf64_Word e_flags; - Elf64_Half e_ehsize; - Elf64_Half e_phentsize; - Elf64_Half e_phnum; - Elf64_Half e_shentsize; - Elf64_Half e_shnum; - Elf64_Half e_shstrndx; -}; - -typedef struct elf64_hdr Elf64_Ehdr; - -struct elf64_shdr { - Elf64_Word sh_name; - Elf64_Word sh_type; - Elf64_Xword sh_flags; - Elf64_Addr sh_addr; - Elf64_Off sh_offset; - Elf64_Xword sh_size; - Elf64_Word sh_link; - Elf64_Word sh_info; - Elf64_Xword sh_addralign; - Elf64_Xword sh_entsize; -}; - -typedef struct elf64_shdr Elf64_Shdr; - -struct stack_frame_user { - const void __attribute__((btf_type_tag("user"))) *next_fp; - unsigned long ret_addr; -}; - -typedef bool (*stack_trace_consume_fn)(void *, unsigned long); - -enum x86_hypervisor_type { - X86_HYPER_NATIVE = 0, - X86_HYPER_VMWARE = 1, - X86_HYPER_MS_HYPERV = 2, - X86_HYPER_XEN_PV = 3, - X86_HYPER_XEN_HVM = 4, - X86_HYPER_KVM = 5, - X86_HYPER_JAILHOUSE = 6, - X86_HYPER_ACRN = 7, -}; - -struct __call_single_data { - struct __call_single_node node; - smp_call_func_t func; - void *info; -}; - -typedef struct __call_single_data call_single_data_t; - -struct cpuid_regs { - u32 eax; - u32 ebx; - u32 ecx; - u32 edx; -}; - -struct cpuid_regs_done { - struct cpuid_regs regs; - struct completion done; -}; - -enum { - IRQTF_RUNTHREAD = 0, - IRQTF_WARNED = 1, - IRQTF_AFFINITY = 2, - IRQTF_FORCED_THREAD = 3, - IRQTF_READY = 4, -}; - -enum { - IRQ_SET_MASK_OK = 0, - IRQ_SET_MASK_OK_NOCOPY = 1, - IRQ_SET_MASK_OK_DONE = 2, -}; - -enum { - IRQC_IS_HARDIRQ = 0, - IRQC_IS_NESTED = 1, -}; - -enum ring_buffer_type { - RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28, - RINGBUF_TYPE_PADDING = 29, - RINGBUF_TYPE_TIME_EXTEND = 30, - RINGBUF_TYPE_TIME_STAMP = 31, -}; - -enum { - RB_LEN_TIME_EXTEND = 8, - RB_LEN_TIME_STAMP = 8, -}; - -enum ring_buffer_flags { - RB_FL_OVERWRITE = 1, -}; - -enum { - RB_CTX_TRANSITION = 0, - RB_CTX_NMI = 1, - RB_CTX_IRQ = 2, - RB_CTX_SOFTIRQ = 3, - RB_CTX_NORMAL = 4, - RB_CTX_MAX = 5, -}; - -enum { - RB_ADD_STAMP_NONE = 0, - RB_ADD_STAMP_EXTEND = 2, - RB_ADD_STAMP_ABSOLUTE = 4, - RB_ADD_STAMP_FORCE = 8, -}; - -struct buffer_data_page; - -struct buffer_page { - struct list_head list; - local_t write; - unsigned int read; - local_t entries; - unsigned long real_end; - unsigned int order; - struct buffer_data_page *page; -}; - -struct buffer_data_page { - u64 time_stamp; - local_t commit; - unsigned char data[0]; -}; - -struct ring_buffer_per_cpu; - -struct ring_buffer_iter { - struct ring_buffer_per_cpu *cpu_buffer; - unsigned long head; - unsigned long next_event; - struct buffer_page *head_page; - struct buffer_page *cache_reader_page; - unsigned long cache_read; - unsigned long cache_pages_removed; - u64 read_stamp; - u64 page_stamp; - struct ring_buffer_event *event; - size_t event_size; - int missed_events; -}; - -struct rb_time_struct { - local64_t time; -}; - -typedef struct rb_time_struct rb_time_t; - -struct rb_irq_work { - struct irq_work work; - wait_queue_head_t waiters; - wait_queue_head_t full_waiters; - atomic_t seq; - bool waiters_pending; - bool full_waiters_pending; - bool wakeup_full; -}; - -struct ring_buffer_per_cpu { - int cpu; - atomic_t record_disabled; - atomic_t resize_disabled; - struct trace_buffer *buffer; - raw_spinlock_t reader_lock; - arch_spinlock_t lock; - struct lock_class_key lock_key; - struct buffer_data_page *free_page; - unsigned long nr_pages; - unsigned int current_context; - struct list_head *pages; - struct buffer_page *head_page; - struct buffer_page *tail_page; - struct buffer_page *commit_page; - struct buffer_page *reader_page; - unsigned long lost_events; - unsigned long last_overrun; - unsigned long nest; - local_t entries_bytes; - local_t entries; - local_t overrun; - local_t commit_overrun; - local_t dropped_events; - local_t committing; - local_t commits; - local_t pages_touched; - local_t pages_lost; - local_t pages_read; - long last_pages_touch; - size_t shortest_full; - unsigned long read; - unsigned long read_bytes; - rb_time_t write_stamp; - rb_time_t before_stamp; - u64 event_stamp[5]; - u64 read_stamp; - unsigned long pages_removed; - long nr_pages_to_update; - struct list_head new_pages; - struct work_struct update_pages_work; - struct completion update_done; - struct rb_irq_work irq_work; -}; - -struct trace_buffer { - unsigned int flags; - int cpus; - atomic_t record_disabled; - atomic_t resizing; - cpumask_var_t cpumask; - struct lock_class_key *reader_lock_key; - struct mutex mutex; - struct ring_buffer_per_cpu **buffers; - struct hlist_node node; - u64 (*clock)(); - struct rb_irq_work irq_work; - bool time_stamp_abs; - unsigned int subbuf_size; - unsigned int subbuf_order; - unsigned int max_data_size; -}; - -typedef bool (*ring_buffer_cond_fn)(void *); - -struct rb_event_info { - u64 ts; - u64 delta; - u64 before; - u64 after; - unsigned long length; - struct buffer_page *tail_page; - int add_timestamp; -}; - -struct buffer_data_read_page { - unsigned int order; - struct buffer_data_page *data; -}; - -struct rb_wait_data { - struct rb_irq_work *irq_work; - int seq; -}; - -enum { - REGION_INTERSECTS = 0, - REGION_DISJOINT = 1, - REGION_MIXED = 2, -}; - -struct memblock_type { - unsigned long cnt; - unsigned long max; - phys_addr_t total_size; - struct memblock_region *regions; - char *name; -}; - -struct memblock { - bool bottom_up; - phys_addr_t current_limit; - struct memblock_type memory; - struct memblock_type reserved; -}; - -struct utimbuf { - __kernel_old_time_t actime; - __kernel_old_time_t modtime; -}; - -typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); - -typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); - -typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); - -typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); - -typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); - -typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); - -typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); - -typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); - -typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); - -typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); - -typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); - -typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); - -typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); - -typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); - -typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); - -typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); - -typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); - -typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); - -typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); - -typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); - -struct trace_event_raw_jbd2_checkpoint { - struct trace_entry ent; - dev_t dev; - int result; - char __data[0]; -}; - -struct trace_event_raw_jbd2_commit { - struct trace_entry ent; - dev_t dev; - char sync_commit; - tid_t transaction; - char __data[0]; -}; - -struct trace_event_raw_jbd2_end_commit { - struct trace_entry ent; - dev_t dev; - char sync_commit; - tid_t transaction; - tid_t head; - char __data[0]; -}; - -struct trace_event_raw_jbd2_submit_inode_data { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; -}; - -struct trace_event_raw_jbd2_handle_start_class { - struct trace_entry ent; - dev_t dev; - tid_t tid; - unsigned int type; - unsigned int line_no; - int requested_blocks; - char __data[0]; -}; - -struct trace_event_raw_jbd2_handle_extend { - struct trace_entry ent; - dev_t dev; - tid_t tid; - unsigned int type; - unsigned int line_no; - int buffer_credits; - int requested_blocks; - char __data[0]; -}; - -struct trace_event_raw_jbd2_handle_stats { - struct trace_entry ent; - dev_t dev; - tid_t tid; - unsigned int type; - unsigned int line_no; - int interval; - int sync; - int requested_blocks; - int dirtied_blocks; - char __data[0]; -}; - -struct trace_event_raw_jbd2_run_stats { - struct trace_entry ent; - dev_t dev; - tid_t tid; - unsigned long wait; - unsigned long request_delay; - unsigned long running; - unsigned long locked; - unsigned long flushing; - unsigned long logging; - __u32 handle_count; - __u32 blocks; - __u32 blocks_logged; - char __data[0]; -}; - -struct trace_event_raw_jbd2_checkpoint_stats { - struct trace_entry ent; - dev_t dev; - tid_t tid; - unsigned long chp_time; - __u32 forced_to_close; - __u32 written; - __u32 dropped; - char __data[0]; -}; - -struct trace_event_raw_jbd2_update_log_tail { - struct trace_entry ent; - dev_t dev; - tid_t tail_sequence; - tid_t first_tid; - unsigned long block_nr; - unsigned long freed; - char __data[0]; -}; - -struct trace_event_raw_jbd2_write_superblock { - struct trace_entry ent; - dev_t dev; - blk_opf_t write_flags; - char __data[0]; -}; - -struct trace_event_raw_jbd2_lock_buffer_stall { - struct trace_entry ent; - dev_t dev; - unsigned long stall_ms; - char __data[0]; -}; - -struct trace_event_raw_jbd2_journal_shrink { - struct trace_entry ent; - dev_t dev; - unsigned long nr_to_scan; - unsigned long count; - char __data[0]; -}; - -struct trace_event_raw_jbd2_shrink_scan_exit { - struct trace_entry ent; - dev_t dev; - unsigned long nr_to_scan; - unsigned long nr_shrunk; - unsigned long count; - char __data[0]; -}; - -struct trace_event_raw_jbd2_shrink_checkpoint_list { - struct trace_entry ent; - dev_t dev; - tid_t first_tid; - tid_t tid; - tid_t last_tid; - unsigned long nr_freed; - tid_t next_tid; - char __data[0]; -}; - -struct trace_event_data_offsets_jbd2_checkpoint {}; - -struct trace_event_data_offsets_jbd2_commit {}; - -struct trace_event_data_offsets_jbd2_end_commit {}; - -struct trace_event_data_offsets_jbd2_submit_inode_data {}; - -struct trace_event_data_offsets_jbd2_handle_start_class {}; - -struct trace_event_data_offsets_jbd2_handle_extend {}; - -struct trace_event_data_offsets_jbd2_handle_stats {}; - -struct trace_event_data_offsets_jbd2_run_stats {}; - -struct trace_event_data_offsets_jbd2_checkpoint_stats {}; - -struct trace_event_data_offsets_jbd2_update_log_tail {}; - -struct trace_event_data_offsets_jbd2_write_superblock {}; - -struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; - -struct trace_event_data_offsets_jbd2_journal_shrink {}; - -struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; - -struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; - -struct jbd2_stats_proc_session { - journal_t *journal; - struct transaction_stats_s *stats; - int start; - int max; -}; - -enum key_notification_subtype { - NOTIFY_KEY_INSTANTIATED = 0, - NOTIFY_KEY_UPDATED = 1, - NOTIFY_KEY_LINKED = 2, - NOTIFY_KEY_UNLINKED = 3, - NOTIFY_KEY_CLEARED = 4, - NOTIFY_KEY_REVOKED = 5, - NOTIFY_KEY_INVALIDATED = 6, - NOTIFY_KEY_SETATTR = 7, -}; - -struct keyring_read_iterator_context { - size_t buflen; - size_t count; - key_serial_t *buffer; -}; - -struct pr_keys { - u32 generation; - u32 num_keys; - u64 keys[0]; -}; - -struct pr_held_reservation { - u64 key; - u32 generation; - enum pr_type type; -}; - -struct pr_reservation { - __u64 key; - __u32 type; - __u32 flags; -}; - -struct pr_preempt { - __u64 old_key; - __u64 new_key; - __u32 type; - __u32 flags; -}; - -struct pr_clear { - __u64 key; - __u32 flags; - __u32 __pad; -}; - -struct pr_registration { - __u64 old_key; - __u64 new_key; - __u32 flags; - __u32 __pad; -}; - -struct blkpg_ioctl_arg { - int op; - int flags; - int datalen; - void __attribute__((btf_type_tag("user"))) *data; -}; - -struct blkpg_partition { - long long start; - long long length; - int pno; - char devname[64]; - char volname[64]; -}; - -struct bus_attribute { - struct attribute attr; - ssize_t (*show)(const struct bus_type *, char *); - ssize_t (*store)(const struct bus_type *, const char *, size_t); -}; - -enum pci_mmap_state { - pci_mmap_io = 0, - pci_mmap_mem = 1, -}; - -enum pci_mmap_api { - PCI_MMAP_SYSFS = 0, - PCI_MMAP_PROCFS = 1, -}; - -enum pcie_link_width { - PCIE_LNK_WIDTH_RESRV = 0, - PCIE_LNK_X1 = 1, - PCIE_LNK_X2 = 2, - PCIE_LNK_X4 = 4, - PCIE_LNK_X8 = 8, - PCIE_LNK_X12 = 12, - PCIE_LNK_X16 = 16, - PCIE_LNK_X32 = 32, - PCIE_LNK_WIDTH_UNKNOWN = 255, -}; - -struct ata_acpi_hotplug_context { - struct acpi_hotplug_context hp; - union { - struct ata_port *ap; - struct ata_device *dev; - } data; -}; - -struct ata_acpi_gtf { - u8 tf[7]; -}; - -enum E1000_INVM_STRUCTURE_TYPE { - E1000_INVM_UNINITIALIZED_STRUCTURE = 0, - E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1, - E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2, - E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3, - E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4, - E1000_INVM_INVALIDATED_STRUCTURE = 15, -}; - -struct e1000_fw_version { - u32 etrack_id; - u16 eep_major; - u16 eep_minor; - u16 eep_build; - u8 invm_major; - u8 invm_minor; - u8 invm_img_type; - bool or_valid; - u16 or_major; - u16 or_build; - u16 or_patch; -}; - -struct iwl_fw_channel_info { - __le32 channel; - u8 band; - u8 width; - u8 ctrl_pos; - u8 reserved; -}; - -struct iwl_phy_context_cmd { - __le32 id_and_color; - __le32 action; - struct iwl_fw_channel_info ci; - __le32 lmac_id; - union { - __le32 rxchain_info; - struct { - u8 sbb_bandwidth; - u8 sbb_ctrl_channel_loc; - __le16 puncture_mask; - }; - }; - __le32 dsp_cfg_flags; - __le32 reserved; -}; - -struct iwl_fw_channel_info_v1 { - u8 band; - u8 channel; - u8 width; - u8 ctrl_pos; -}; - -struct iwl_phy_context_cmd_tail { - __le32 txchain_info; - __le32 rxchain_info; - __le32 acquisition_data; - __le32 dsp_cfg_flags; -}; - -struct iwl_phy_context_cmd_v1 { - __le32 id_and_color; - __le32 action; - __le32 apply_time; - __le32 tx_param_color; - struct iwl_fw_channel_info ci; - struct iwl_phy_context_cmd_tail tail; -}; - -struct iwl_rlc_properties { - __le32 rx_chain_info; - __le32 reserved; -}; - -struct iwl_sad_properties { - __le32 chain_a_sad_mode; - __le32 chain_b_sad_mode; - __le32 mac_id; - __le32 reserved; -}; - -struct iwl_rlc_config_cmd { - __le32 phy_id; - struct iwl_rlc_properties rlc; - struct iwl_sad_properties sad; - u8 flags; - u8 reserved[3]; -}; - -struct usb_class_driver { - char *name; - char * (*devnode)(const struct device *, umode_t *); - const struct file_operations *fops; - int minor_base; -}; - -struct xhci_file_map { - const char *name; - int (*show)(struct seq_file *, void *); -}; - -struct xhci_regset { - char name[32]; - struct debugfs_regset32 regset; - size_t nregs; - struct list_head list; -}; - -struct xhci_ep_priv; - -struct xhci_slot_priv { - char name[32]; - struct dentry *root; - struct xhci_ep_priv *eps[31]; - struct xhci_virt_device *dev; -}; - -struct xhci_ep_priv { - char name[32]; - struct dentry *root; - struct xhci_stream_info *stream_info; - struct xhci_ring *show_ring; - unsigned int stream_id; -}; - -enum dm_uevent_type { - DM_UEVENT_PATH_FAILED = 0, - DM_UEVENT_PATH_REINSTATED = 1, -}; - -struct dm_uevent { - struct mapped_device *md; - enum kobject_action action; - struct kobj_uevent_env ku_env; - struct list_head elist; - char name[128]; - char uuid[129]; -}; - -struct netdev_name_node { - struct hlist_node hlist; - struct list_head list; - struct net_device *dev; - const char *name; - struct callback_head rcu; -}; - -enum txtime_flags { - SOF_TXTIME_DEADLINE_MODE = 1, - SOF_TXTIME_REPORT_ERRORS = 2, - SOF_TXTIME_FLAGS_LAST = 2, - SOF_TXTIME_FLAGS_MASK = 3, -}; - -enum { - SK_MEMINFO_RMEM_ALLOC = 0, - SK_MEMINFO_RCVBUF = 1, - SK_MEMINFO_WMEM_ALLOC = 2, - SK_MEMINFO_SNDBUF = 3, - SK_MEMINFO_FWD_ALLOC = 4, - SK_MEMINFO_WMEM_QUEUED = 5, - SK_MEMINFO_OPTMEM = 6, - SK_MEMINFO_BACKLOG = 7, - SK_MEMINFO_DROPS = 8, - SK_MEMINFO_VARS = 9, -}; - -enum sknetlink_groups { - SKNLGRP_NONE = 0, - SKNLGRP_INET_TCP_DESTROY = 1, - SKNLGRP_INET_UDP_DESTROY = 2, - SKNLGRP_INET6_TCP_DESTROY = 3, - SKNLGRP_INET6_UDP_DESTROY = 4, - __SKNLGRP_MAX = 5, -}; - -struct old_timeval32 { - old_time32_t tv_sec; - s32 tv_usec; -}; - -struct cgroup_cls_state { - struct cgroup_subsys_state css; - u32 classid; -}; - -struct sock_fprog { - unsigned short len; - struct sock_filter __attribute__((btf_type_tag("user"))) *filter; -}; - -struct ucred { - __u32 pid; - __u32 uid; - __u32 gid; -}; - -struct linger { - int l_onoff; - int l_linger; -}; - -struct sock_txtime { - __kernel_clockid_t clockid; - __u32 flags; -}; - -struct so_timestamping { - int flags; - int bind_phc; -}; - -enum { - IPT_TTL_EQ = 0, - IPT_TTL_NE = 1, - IPT_TTL_LT = 2, - IPT_TTL_GT = 3, -}; - -enum { - IP6T_HL_EQ = 0, - IP6T_HL_NE = 1, - IP6T_HL_LT = 2, - IP6T_HL_GT = 3, -}; - -struct ipt_ttl_info { - __u8 mode; - __u8 ttl; -}; - -struct ip6t_hl_info { - __u8 mode; - __u8 hop_limit; -}; - -struct nf_defrag_hook { - struct module *owner; - int (*enable)(struct net *); - void (*disable)(struct net *); -}; - -typedef void (*btf_trace_rdev_suspend)(void *, struct wiphy *, struct cfg80211_wowlan *); - -typedef void (*btf_trace_rdev_return_int)(void *, struct wiphy *, int); - -typedef void (*btf_trace_rdev_scan)(void *, struct wiphy *, struct cfg80211_scan_request *); - -typedef void (*btf_trace_rdev_resume)(void *, struct wiphy *); - -typedef void (*btf_trace_rdev_return_void)(void *, struct wiphy *); - -typedef void (*btf_trace_rdev_get_antenna)(void *, struct wiphy *); - -typedef void (*btf_trace_rdev_rfkill_poll)(void *, struct wiphy *); - -typedef void (*btf_trace_rdev_set_wakeup)(void *, struct wiphy *, bool); - -typedef void (*btf_trace_rdev_add_virtual_intf)(void *, struct wiphy *, char *, enum nl80211_iftype); - -typedef void (*btf_trace_rdev_return_wdev)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_del_virtual_intf)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_change_virtual_intf)(void *, struct wiphy *, struct net_device *, enum nl80211_iftype); - -typedef void (*btf_trace_rdev_get_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *); - -typedef void (*btf_trace_rdev_del_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *); - -typedef void (*btf_trace_rdev_add_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *, u8); - -typedef void (*btf_trace_rdev_set_default_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, bool); - -typedef void (*btf_trace_rdev_set_default_mgmt_key)(void *, struct wiphy *, struct net_device *, int, u8); - -typedef void (*btf_trace_rdev_set_default_beacon_key)(void *, struct wiphy *, struct net_device *, int, u8); - -typedef void (*btf_trace_rdev_start_ap)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_settings *); - -typedef void (*btf_trace_rdev_change_beacon)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_update *); - -typedef void (*btf_trace_rdev_stop_ap)(void *, struct wiphy *, struct net_device *, unsigned int); - -typedef void (*btf_trace_rdev_set_rekey_data)(void *, struct wiphy *, struct net_device *); - -typedef void (*btf_trace_rdev_get_mesh_config)(void *, struct wiphy *, struct net_device *); - -typedef void (*btf_trace_rdev_leave_mesh)(void *, struct wiphy *, struct net_device *); - -typedef void (*btf_trace_rdev_leave_ibss)(void *, struct wiphy *, struct net_device *); - -typedef void (*btf_trace_rdev_leave_ocb)(void *, struct wiphy *, struct net_device *); - -typedef void (*btf_trace_rdev_flush_pmksa)(void *, struct wiphy *, struct net_device *); - -typedef void (*btf_trace_rdev_end_cac)(void *, struct wiphy *, struct net_device *); - -typedef void (*btf_trace_rdev_add_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *); - -typedef void (*btf_trace_rdev_change_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *); - -typedef void (*btf_trace_rdev_del_station)(void *, struct wiphy *, struct net_device *, struct station_del_parameters *); - -typedef void (*btf_trace_rdev_get_station)(void *, struct wiphy *, struct net_device *, const u8 *); - -typedef void (*btf_trace_rdev_del_mpath)(void *, struct wiphy *, struct net_device *, const u8 *); - -typedef void (*btf_trace_rdev_dump_station)(void *, struct wiphy *, struct net_device *, int, u8 *); - -typedef void (*btf_trace_rdev_return_int_station_info)(void *, struct wiphy *, int, struct station_info *); - -typedef void (*btf_trace_rdev_add_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); - -typedef void (*btf_trace_rdev_change_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); - -typedef void (*btf_trace_rdev_get_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); - -typedef void (*btf_trace_rdev_dump_mpath)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *); - -typedef void (*btf_trace_rdev_get_mpp)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); - -typedef void (*btf_trace_rdev_dump_mpp)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *); - -typedef void (*btf_trace_rdev_return_int_mpath_info)(void *, struct wiphy *, int, struct mpath_info *); - -typedef void (*btf_trace_rdev_return_int_mesh_config)(void *, struct wiphy *, int, struct mesh_config *); - -typedef void (*btf_trace_rdev_update_mesh_config)(void *, struct wiphy *, struct net_device *, u32, const struct mesh_config *); - -typedef void (*btf_trace_rdev_join_mesh)(void *, struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *); - -typedef void (*btf_trace_rdev_change_bss)(void *, struct wiphy *, struct net_device *, struct bss_parameters *); - -typedef void (*btf_trace_rdev_inform_bss)(void *, struct wiphy *, struct cfg80211_bss *); - -typedef void (*btf_trace_rdev_set_txq_params)(void *, struct wiphy *, struct net_device *, struct ieee80211_txq_params *); - -typedef void (*btf_trace_rdev_libertas_set_mesh_channel)(void *, struct wiphy *, struct net_device *, struct ieee80211_channel *); - -typedef void (*btf_trace_rdev_set_monitor_channel)(void *, struct wiphy *, struct cfg80211_chan_def *); - -typedef void (*btf_trace_rdev_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_auth_request *); - -typedef void (*btf_trace_rdev_assoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); - -typedef void (*btf_trace_rdev_deauth)(void *, struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); - -typedef void (*btf_trace_rdev_disassoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); - -typedef void (*btf_trace_rdev_mgmt_tx_cancel_wait)(void *, struct wiphy *, struct wireless_dev *, u64); - -typedef void (*btf_trace_rdev_set_power_mgmt)(void *, struct wiphy *, struct net_device *, bool, int); - -typedef void (*btf_trace_rdev_connect)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *); - -typedef void (*btf_trace_rdev_update_connect_params)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); - -typedef void (*btf_trace_rdev_set_cqm_rssi_config)(void *, struct wiphy *, struct net_device *, s32, u32); - -typedef void (*btf_trace_rdev_set_cqm_rssi_range_config)(void *, struct wiphy *, struct net_device *, s32, s32); - -typedef void (*btf_trace_rdev_set_cqm_txe_config)(void *, struct wiphy *, struct net_device *, u32, u32, u32); - -typedef void (*btf_trace_rdev_disconnect)(void *, struct wiphy *, struct net_device *, u16); - -typedef void (*btf_trace_rdev_join_ibss)(void *, struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); - -typedef void (*btf_trace_rdev_join_ocb)(void *, struct wiphy *, struct net_device *, const struct ocb_setup *); - -typedef void (*btf_trace_rdev_set_wiphy_params)(void *, struct wiphy *, u32); - -typedef void (*btf_trace_rdev_get_tx_power)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_set_tx_power)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); - -typedef void (*btf_trace_rdev_return_int_int)(void *, struct wiphy *, int, int); - -typedef void (*btf_trace_rdev_set_bitrate_mask)(void *, struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); - -typedef void (*btf_trace_rdev_update_mgmt_frame_registrations)(void *, struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); - -typedef void (*btf_trace_rdev_return_int_tx_rx)(void *, struct wiphy *, int, u32, u32); - -typedef void (*btf_trace_rdev_return_void_tx_rx)(void *, struct wiphy *, u32, u32, u32, u32); - -typedef void (*btf_trace_rdev_set_antenna)(void *, struct wiphy *, u32, u32); - -typedef void (*btf_trace_rdev_sched_scan_start)(void *, struct wiphy *, struct net_device *, u64); - -typedef void (*btf_trace_rdev_sched_scan_stop)(void *, struct wiphy *, struct net_device *, u64); - -typedef void (*btf_trace_rdev_tdls_mgmt)(void *, struct wiphy *, struct net_device *, u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); - -typedef void (*btf_trace_rdev_dump_survey)(void *, struct wiphy *, struct net_device *, int); - -typedef void (*btf_trace_rdev_return_int_survey_info)(void *, struct wiphy *, int, struct survey_info *); - -typedef void (*btf_trace_rdev_tdls_oper)(void *, struct wiphy *, struct net_device *, u8 *, enum nl80211_tdls_operation); - -typedef void (*btf_trace_rdev_probe_client)(void *, struct wiphy *, struct net_device *, const u8 *); - -typedef void (*btf_trace_rdev_set_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); - -typedef void (*btf_trace_rdev_del_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); - -typedef void (*btf_trace_rdev_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int); - -typedef void (*btf_trace_rdev_return_int_cookie)(void *, struct wiphy *, int, u64); - -typedef void (*btf_trace_rdev_cancel_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, u64); - -typedef void (*btf_trace_rdev_mgmt_tx)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *); - -typedef void (*btf_trace_rdev_tx_control_port)(void *, struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, __be16, bool, int); - -typedef void (*btf_trace_rdev_set_noack_map)(void *, struct wiphy *, struct net_device *, u16); - -typedef void (*btf_trace_rdev_get_channel)(void *, struct wiphy *, struct wireless_dev *, unsigned int); - -typedef void (*btf_trace_rdev_return_chandef)(void *, struct wiphy *, int, struct cfg80211_chan_def *); - -typedef void (*btf_trace_rdev_start_p2p_device)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_stop_p2p_device)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_start_nan)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); - -typedef void (*btf_trace_rdev_nan_change_conf)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); - -typedef void (*btf_trace_rdev_stop_nan)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_add_nan_func)(void *, struct wiphy *, struct wireless_dev *, const struct cfg80211_nan_func *); - -typedef void (*btf_trace_rdev_del_nan_func)(void *, struct wiphy *, struct wireless_dev *, u64); - -typedef void (*btf_trace_rdev_set_mac_acl)(void *, struct wiphy *, struct net_device *, struct cfg80211_acl_data *); - -typedef void (*btf_trace_rdev_update_ft_ies)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); - -typedef void (*btf_trace_rdev_crit_proto_start)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); - -typedef void (*btf_trace_rdev_crit_proto_stop)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_channel_switch)(void *, struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); - -typedef void (*btf_trace_rdev_set_qos_map)(void *, struct wiphy *, struct net_device *, struct cfg80211_qos_map *); - -typedef void (*btf_trace_rdev_set_ap_chanwidth)(void *, struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); - -typedef void (*btf_trace_rdev_add_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); - -typedef void (*btf_trace_rdev_del_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *); - -typedef void (*btf_trace_rdev_tdls_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); - -typedef void (*btf_trace_rdev_tdls_cancel_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *); - -typedef void (*btf_trace_rdev_set_pmk)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmk_conf *); - -typedef void (*btf_trace_rdev_del_pmk)(void *, struct wiphy *, struct net_device *, const u8 *); - -typedef void (*btf_trace_rdev_external_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); - -typedef void (*btf_trace_rdev_start_radar_detection)(void *, struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32); - -typedef void (*btf_trace_rdev_set_mcast_rate)(void *, struct wiphy *, struct net_device *, int *); - -typedef void (*btf_trace_rdev_set_coalesce)(void *, struct wiphy *, struct cfg80211_coalesce *); - -typedef void (*btf_trace_rdev_abort_scan)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_set_multicast_to_unicast)(void *, struct wiphy *, struct net_device *, const bool); - -typedef void (*btf_trace_rdev_get_txq_stats)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_get_ftm_responder_stats)(void *, struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); - -typedef void (*btf_trace_rdev_start_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); - -typedef void (*btf_trace_rdev_abort_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); - -typedef void (*btf_trace_rdev_set_fils_aad)(void *, struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); - -typedef void (*btf_trace_rdev_update_owe_info)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); - -typedef void (*btf_trace_rdev_probe_mesh_link)(void *, struct wiphy *, struct net_device *, const u8 *, const u8 *, size_t); - -typedef void (*btf_trace_rdev_set_tid_config)(void *, struct wiphy *, struct net_device *, struct cfg80211_tid_config *); - -typedef void (*btf_trace_rdev_reset_tid_config)(void *, struct wiphy *, struct net_device *, const u8 *, u8); - -typedef void (*btf_trace_rdev_set_sar_specs)(void *, struct wiphy *, struct cfg80211_sar_specs *); - -typedef void (*btf_trace_rdev_color_change)(void *, struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); - -typedef void (*btf_trace_rdev_set_radar_background)(void *, struct wiphy *, struct cfg80211_chan_def *); - -typedef void (*btf_trace_rdev_add_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); - -typedef void (*btf_trace_rdev_del_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); - -typedef void (*btf_trace_cfg80211_return_bool)(void *, bool); - -typedef void (*btf_trace_cfg80211_notify_new_peer_candidate)(void *, struct net_device *, const u8 *); - -typedef void (*btf_trace_cfg80211_send_rx_auth)(void *, struct net_device *); - -typedef void (*btf_trace_cfg80211_send_rx_assoc)(void *, struct net_device *, const struct cfg80211_rx_assoc_resp_data *); - -typedef void (*btf_trace_cfg80211_rx_unprot_mlme_mgmt)(void *, struct net_device *, const u8 *, int); - -typedef void (*btf_trace_cfg80211_rx_mlme_mgmt)(void *, struct net_device *, const u8 *, int); - -typedef void (*btf_trace_cfg80211_tx_mlme_mgmt)(void *, struct net_device *, const u8 *, int, bool); - -typedef void (*btf_trace_cfg80211_send_auth_timeout)(void *, struct net_device *, const u8 *); - -typedef void (*btf_trace_cfg80211_send_assoc_failure)(void *, struct net_device *, struct cfg80211_assoc_failure *); - -typedef void (*btf_trace_cfg80211_michael_mic_failure)(void *, struct net_device *, const u8 *, enum nl80211_key_type, int, const u8 *); - -typedef void (*btf_trace_cfg80211_ready_on_channel)(void *, struct wireless_dev *, u64, struct ieee80211_channel *, unsigned int); - -typedef void (*btf_trace_cfg80211_ready_on_channel_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); - -typedef void (*btf_trace_cfg80211_tx_mgmt_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); - -typedef void (*btf_trace_cfg80211_new_sta)(void *, struct net_device *, const u8 *, struct station_info *); - -typedef void (*btf_trace_cfg80211_del_sta)(void *, struct net_device *, const u8 *); - -typedef void (*btf_trace_cfg80211_rx_mgmt)(void *, struct wireless_dev *, struct cfg80211_rx_info *); - -typedef void (*btf_trace_cfg80211_mgmt_tx_status)(void *, struct wireless_dev *, u64, bool); - -typedef void (*btf_trace_cfg80211_control_port_tx_status)(void *, struct wireless_dev *, u64, bool); - -typedef void (*btf_trace_cfg80211_rx_control_port)(void *, struct net_device *, struct sk_buff *, bool, int); - -typedef void (*btf_trace_cfg80211_cqm_rssi_notify)(void *, struct net_device *, enum nl80211_cqm_rssi_threshold_event, s32); - -typedef void (*btf_trace_cfg80211_reg_can_beacon)(void *, struct wiphy *, struct cfg80211_chan_def *, enum nl80211_iftype, bool); - -typedef void (*btf_trace_cfg80211_chandef_dfs_required)(void *, struct wiphy *, struct cfg80211_chan_def *); - -typedef void (*btf_trace_cfg80211_ch_switch_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int); - -typedef void (*btf_trace_cfg80211_ch_switch_started_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int); - -typedef void (*btf_trace_cfg80211_radar_event)(void *, struct wiphy *, struct cfg80211_chan_def *, bool); - -typedef void (*btf_trace_cfg80211_cac_event)(void *, struct net_device *, enum nl80211_radar_event); - -typedef void (*btf_trace_cfg80211_rx_spurious_frame)(void *, struct net_device *, const u8 *); - -typedef void (*btf_trace_cfg80211_rx_unexpected_4addr_frame)(void *, struct net_device *, const u8 *); - -typedef void (*btf_trace_cfg80211_ibss_joined)(void *, struct net_device *, const u8 *, struct ieee80211_channel *); - -typedef void (*btf_trace_cfg80211_probe_status)(void *, struct net_device *, const u8 *, u64, bool); - -typedef void (*btf_trace_cfg80211_cqm_pktloss_notify)(void *, struct net_device *, const u8 *, u32); - -typedef void (*btf_trace_cfg80211_gtk_rekey_notify)(void *, struct net_device *, const u8 *); - -typedef void (*btf_trace_cfg80211_pmksa_candidate_notify)(void *, struct net_device *, int, const u8 *, bool); - -typedef void (*btf_trace_cfg80211_report_obss_beacon)(void *, struct wiphy *, const u8 *, size_t, int, int); - -typedef void (*btf_trace_cfg80211_tdls_oper_request)(void *, struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation, u16); - -typedef void (*btf_trace_cfg80211_scan_done)(void *, struct cfg80211_scan_request *, struct cfg80211_scan_info *); - -typedef void (*btf_trace_cfg80211_sched_scan_stopped)(void *, struct wiphy *, u64); - -typedef void (*btf_trace_cfg80211_sched_scan_results)(void *, struct wiphy *, u64); - -typedef void (*btf_trace_cfg80211_get_bss)(void *, struct wiphy *, struct ieee80211_channel *, const u8 *, const u8 *, size_t, enum ieee80211_bss_type, enum ieee80211_privacy); - -typedef void (*btf_trace_cfg80211_inform_bss_frame)(void *, struct wiphy *, struct cfg80211_inform_bss *, struct ieee80211_mgmt *, size_t); - -typedef void (*btf_trace_cfg80211_return_bss)(void *, struct cfg80211_bss *); - -typedef void (*btf_trace_cfg80211_return_uint)(void *, unsigned int); - -typedef void (*btf_trace_cfg80211_return_u32)(void *, u32); - -typedef void (*btf_trace_cfg80211_report_wowlan_wakeup)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_wowlan_wakeup *); - struct cfg80211_ft_event_params; typedef void (*btf_trace_cfg80211_ft_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_ft_event_params *); @@ -78164,14 +40435,28 @@ typedef void (*btf_trace_rdev_add_link_station)(void *, struct wiphy *, struct n typedef void (*btf_trace_rdev_mod_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *); +struct link_station_del_parameters; + typedef void (*btf_trace_rdev_del_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_del_parameters *); +struct link_station_del_parameters { + const u8 *mld_mac; + u32 link_id; +}; + typedef void (*btf_trace_rdev_set_hw_timestamp)(void *, struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *); typedef void (*btf_trace_cfg80211_links_removed)(void *, struct net_device *, u16); +struct cfg80211_ttlm_params; + typedef void (*btf_trace_rdev_set_ttlm)(void *, struct wiphy *, struct net_device *, struct cfg80211_ttlm_params *); +struct cfg80211_ttlm_params { + u16 dlink[8]; + u16 ulink[8]; +}; + struct trace_event_raw_rdev_suspend { struct trace_entry ent; char wiphy_name[32]; @@ -80317,296 +42602,6277 @@ struct trace_event_data_offsets_cfg80211_links_removed {}; struct trace_event_data_offsets_rdev_set_ttlm {}; -enum { - PERF_BR_UNKNOWN = 0, - PERF_BR_COND = 1, - PERF_BR_UNCOND = 2, - PERF_BR_IND = 3, - PERF_BR_CALL = 4, - PERF_BR_IND_CALL = 5, - PERF_BR_RET = 6, - PERF_BR_SYSCALL = 7, - PERF_BR_SYSRET = 8, - PERF_BR_COND_CALL = 9, - PERF_BR_COND_RET = 10, - PERF_BR_ERET = 11, - PERF_BR_IRQ = 12, - PERF_BR_SERROR = 13, - PERF_BR_NO_TX = 14, - PERF_BR_EXTEND_ABI = 15, - PERF_BR_MAX = 16, +struct posix_acl_entry { + short e_tag; + unsigned short e_perm; + union { + kuid_t e_uid; + kgid_t e_gid; + }; +}; + +struct posix_acl { + refcount_t a_refcount; + struct callback_head a_rcu; + unsigned int a_count; + struct posix_acl_entry a_entries[0]; +}; + +struct fs_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; }; enum { - X86_BR_NONE = 0, - X86_BR_USER = 1, - X86_BR_KERNEL = 2, - X86_BR_CALL = 4, - X86_BR_RET = 8, - X86_BR_SYSCALL = 16, - X86_BR_SYSRET = 32, - X86_BR_INT = 64, - X86_BR_IRET = 128, - X86_BR_JCC = 256, - X86_BR_JMP = 512, - X86_BR_IRQ = 1024, - X86_BR_IND_CALL = 2048, - X86_BR_ABORT = 4096, - X86_BR_IN_TX = 8192, - X86_BR_NO_TX = 16384, - X86_BR_ZERO_CALL = 32768, - X86_BR_CALL_STACK = 65536, - X86_BR_IND_JMP = 131072, - X86_BR_TYPE_SAVE = 262144, + Root_NFS = 255, + Root_CIFS = 254, + Root_Generic = 253, + Root_RAM0 = 1048576, }; -enum l1tf_mitigations { - L1TF_MITIGATION_OFF = 0, - L1TF_MITIGATION_FLUSH_NOWARN = 1, - L1TF_MITIGATION_FLUSH = 2, - L1TF_MITIGATION_FLUSH_NOSMT = 3, - L1TF_MITIGATION_FULL = 4, - L1TF_MITIGATION_FULL_FORCE = 5, +enum pconfig_target { + INVALID_TARGET = 0, + MKTME_TARGET = 1, + PCONFIG_TARGET_NR = 2, }; -struct map_range { +enum { + PCONFIG_CPUID_SUBLEAF_INVALID = 0, + PCONFIG_CPUID_SUBLEAF_TARGETID = 1, +}; + +struct cpuid_regs { + u32 eax; + u32 ebx; + u32 ecx; + u32 edx; +}; + +enum tsx_ctrl_states { + TSX_CTRL_ENABLE = 0, + TSX_CTRL_DISABLE = 1, + TSX_CTRL_RTM_ALWAYS_ABORT = 2, + TSX_CTRL_NOT_SUPPORTED = 3, +}; + +struct cpu_dev { + const char *c_vendor; + const char *c_ident[2]; + void (*c_early_init)(struct cpuinfo_x86 *); + void (*c_bsp_init)(struct cpuinfo_x86 *); + void (*c_init)(struct cpuinfo_x86 *); + void (*c_identify)(struct cpuinfo_x86 *); + void (*c_detect_tlb)(struct cpuinfo_x86 *); + int c_x86_vendor; +}; + +enum align_flags { + ALIGN_VA_32 = 1, + ALIGN_VA_64 = 2, +}; + +enum tlb_infos { + ENTRIES = 0, + NR_INFO = 1, +}; + +enum cpuid_leafs { + CPUID_1_EDX = 0, + CPUID_8000_0001_EDX = 1, + CPUID_8086_0001_EDX = 2, + CPUID_LNX_1 = 3, + CPUID_1_ECX = 4, + CPUID_C000_0001_EDX = 5, + CPUID_8000_0001_ECX = 6, + CPUID_LNX_2 = 7, + CPUID_LNX_3 = 8, + CPUID_7_0_EBX = 9, + CPUID_D_1_EAX = 10, + CPUID_LNX_4 = 11, + CPUID_7_1_EAX = 12, + CPUID_8000_0008_EBX = 13, + CPUID_6_EAX = 14, + CPUID_8000_000A_EDX = 15, + CPUID_7_ECX = 16, + CPUID_8000_0007_EBX = 17, + CPUID_7_EDX = 18, + CPUID_8000_001F_EAX = 19, + CPUID_8000_0021_EAX = 20, +}; + +enum insn_mode { + INSN_MODE_32 = 0, + INSN_MODE_64 = 1, + INSN_MODE_KERN = 2, + INSN_NUM_MODES = 3, +}; + +struct arch_optimized_insn { + kprobe_opcode_t copied_insn[4]; + kprobe_opcode_t *insn; + size_t size; +}; + +struct optimized_kprobe { + struct kprobe kp; + struct list_head list; + struct arch_optimized_insn optinsn; +}; + +struct prev_kprobe { + struct kprobe *kp; + unsigned long status; + unsigned long old_flags; + unsigned long saved_flags; +}; + +struct kprobe_ctlblk { + unsigned long kprobe_status; + unsigned long kprobe_old_flags; + unsigned long kprobe_saved_flags; + struct prev_kprobe prev_kprobe; +}; + +struct kprobe_insn_cache { + struct mutex mutex; + void * (*alloc)(); + void (*free)(void *); + const char *sym; + struct list_head pages; + size_t insn_size; + int nr_garbage; +}; + +typedef int insn_value_t; + +typedef unsigned char insn_byte_t; + +struct insn_field { + union { + insn_value_t value; + insn_byte_t bytes[4]; + }; + unsigned char got; + unsigned char nbytes; +}; + +typedef unsigned int insn_attr_t; + +struct insn { + struct insn_field prefixes; + struct insn_field rex_prefix; + struct insn_field vex_prefix; + struct insn_field opcode; + struct insn_field modrm; + struct insn_field sib; + struct insn_field displacement; + union { + struct insn_field immediate; + struct insn_field moffset1; + struct insn_field immediate1; + }; + union { + struct insn_field moffset2; + struct insn_field immediate2; + }; + int emulate_prefix_size; + insn_attr_t attr; + unsigned char opnd_bytes; + unsigned char addr_bytes; + unsigned char length; + unsigned char x86_64; + const insn_byte_t *kaddr; + const insn_byte_t *end_kaddr; + const insn_byte_t *next_byte; +}; + +enum page_cache_mode { + _PAGE_CACHE_MODE_WB = 0, + _PAGE_CACHE_MODE_WC = 1, + _PAGE_CACHE_MODE_UC_MINUS = 2, + _PAGE_CACHE_MODE_UC = 3, + _PAGE_CACHE_MODE_WT = 4, + _PAGE_CACHE_MODE_WP = 5, + _PAGE_CACHE_MODE_NUM = 8, +}; + +enum fixed_addresses { + VSYSCALL_PAGE = 511, + FIX_DBGP_BASE = 512, + FIX_EARLYCON_MEM_BASE = 513, + FIX_APIC_BASE = 514, + FIX_IO_APIC_BASE_0 = 515, + FIX_IO_APIC_BASE_END = 642, + __end_of_permanent_fixed_addresses = 643, + FIX_BTMAP_END = 1024, + FIX_BTMAP_BEGIN = 1535, + __end_of_fixed_addresses = 1536, +}; + +enum { + IORES_MAP_SYSTEM_RAM = 1, + IORES_MAP_ENCRYPTED = 2, +}; + +enum cc_attr { + CC_ATTR_MEM_ENCRYPT = 0, + CC_ATTR_HOST_MEM_ENCRYPT = 1, + CC_ATTR_GUEST_MEM_ENCRYPT = 2, + CC_ATTR_GUEST_STATE_ENCRYPT = 3, + CC_ATTR_GUEST_UNROLL_STRING_IO = 4, + CC_ATTR_GUEST_SEV_SNP = 5, + CC_ATTR_HOTPLUG_DISABLED = 6, +}; + +struct ioremap_desc { + unsigned int flags; +}; + +typedef void (*btf_trace_rcu_utilization)(void *, const char *); + +typedef void (*btf_trace_rcu_grace_period)(void *, const char *, unsigned long, const char *); + +typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, unsigned long, unsigned long, u8, int, int, const char *); + +typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, unsigned long, u8, int, int, unsigned long); + +typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, unsigned long, const char *); + +typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *); + +typedef void (*btf_trace_rcu_nocb_wake)(void *, const char *, int, const char *); + +typedef void (*btf_trace_rcu_preempt_task)(void *, const char *, int, unsigned long); + +typedef void (*btf_trace_rcu_unlock_preempted_task)(void *, const char *, unsigned long, int); + +typedef void (*btf_trace_rcu_quiescent_state_report)(void *, const char *, unsigned long, unsigned long, unsigned long, u8, int, int, int); + +typedef void (*btf_trace_rcu_fqs)(void *, const char *, unsigned long, int, const char *); + +typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); + +typedef void (*btf_trace_rcu_dyntick)(void *, const char *, long, long, int); + +typedef void (*btf_trace_rcu_callback)(void *, const char *, struct callback_head *, long); + +typedef void (*btf_trace_rcu_segcb_stats)(void *, struct rcu_segcblist *, const char *); + +typedef void (*btf_trace_rcu_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long, long); + +typedef void (*btf_trace_rcu_batch_start)(void *, const char *, long, long); + +typedef void (*btf_trace_rcu_invoke_callback)(void *, const char *, struct callback_head *); + +typedef void (*btf_trace_rcu_invoke_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long); + +typedef void (*btf_trace_rcu_invoke_kfree_bulk_callback)(void *, const char *, unsigned long, void **); + +typedef void (*btf_trace_rcu_batch_end)(void *, const char *, int, char, char, char, char); + +typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, unsigned long); + +struct rcu_tasks; + +typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); + +typedef void (*pregp_func_t)(struct list_head *); + +typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); + +typedef void (*postscan_func_t)(struct list_head *); + +typedef void (*holdouts_func_t)(struct list_head *, bool, bool *); + +typedef void (*postgp_func_t)(struct rcu_tasks *); + +typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); + +struct rcu_tasks_percpu; + +struct rcu_tasks { + struct rcuwait cbs_wait; + raw_spinlock_t cbs_gbl_lock; + struct mutex tasks_gp_mutex; + int gp_state; + int gp_sleep; + int init_fract; + unsigned long gp_jiffies; + unsigned long gp_start; + unsigned long tasks_gp_seq; + unsigned long n_ipis; + unsigned long n_ipis_fails; + struct task_struct *kthread_ptr; + unsigned long lazy_jiffies; + rcu_tasks_gp_func_t gp_func; + pregp_func_t pregp_func; + pertask_func_t pertask_func; + postscan_func_t postscan_func; + holdouts_func_t holdouts_func; + postgp_func_t postgp_func; + call_rcu_func_t call_func; + struct rcu_tasks_percpu __attribute__((btf_type_tag("percpu"))) *rtpcpu; + int percpu_enqueue_shift; + int percpu_enqueue_lim; + int percpu_dequeue_lim; + unsigned long percpu_dequeue_gpseq; + struct mutex barrier_q_mutex; + atomic_t barrier_q_count; + struct completion barrier_q_completion; + unsigned long barrier_q_seq; + char *name; + char *kname; +}; + +struct rcu_tasks_percpu { + struct rcu_segcblist cblist; + raw_spinlock_t lock; + unsigned long rtp_jiffies; + unsigned long rtp_n_lock_retries; + struct timer_list lazy_timer; + unsigned int urgent_gp; + struct work_struct rtp_work; + struct irq_work rtp_irq_work; + struct callback_head barrier_q_head; + struct list_head rtp_blkd_tasks; + struct list_head rtp_exit_list; + int cpu; + struct rcu_tasks *rtpp; +}; + +struct rcu_tasks_test_desc { + struct callback_head rh; + const char *name; + bool notrun; + unsigned long runstart; +}; + +struct rcu_synchronize { + struct callback_head head; + struct completion completion; +}; + +struct trace_event_raw_rcu_utilization { + struct trace_entry ent; + const char *s; + char __data[0]; +}; + +struct trace_event_raw_rcu_grace_period { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + const char *gpevent; + char __data[0]; +}; + +struct trace_event_raw_rcu_future_grace_period { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + long gp_seq_req; + u8 level; + int grplo; + int grphi; + const char *gpevent; + char __data[0]; +}; + +struct trace_event_raw_rcu_grace_period_init { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + u8 level; + int grplo; + int grphi; + unsigned long qsmask; + char __data[0]; +}; + +struct trace_event_raw_rcu_exp_grace_period { + struct trace_entry ent; + const char *rcuname; + long gpseq; + const char *gpevent; + char __data[0]; +}; + +struct trace_event_raw_rcu_exp_funnel_lock { + struct trace_entry ent; + const char *rcuname; + u8 level; + int grplo; + int grphi; + const char *gpevent; + char __data[0]; +}; + +struct trace_event_raw_rcu_nocb_wake { + struct trace_entry ent; + const char *rcuname; + int cpu; + const char *reason; + char __data[0]; +}; + +struct trace_event_raw_rcu_preempt_task { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + int pid; + char __data[0]; +}; + +struct trace_event_raw_rcu_unlock_preempted_task { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + int pid; + char __data[0]; +}; + +struct trace_event_raw_rcu_quiescent_state_report { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + unsigned long mask; + unsigned long qsmask; + u8 level; + int grplo; + int grphi; + u8 gp_tasks; + char __data[0]; +}; + +struct trace_event_raw_rcu_fqs { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + int cpu; + const char *qsevent; + char __data[0]; +}; + +struct trace_event_raw_rcu_stall_warning { + struct trace_entry ent; + const char *rcuname; + const char *msg; + char __data[0]; +}; + +struct trace_event_raw_rcu_dyntick { + struct trace_entry ent; + const char *polarity; + long oldnesting; + long newnesting; + int dynticks; + char __data[0]; +}; + +struct trace_event_raw_rcu_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + void *func; + long qlen; + char __data[0]; +}; + +struct trace_event_raw_rcu_segcb_stats { + struct trace_entry ent; + const char *ctx; + unsigned long gp_seq[4]; + long seglen[4]; + char __data[0]; +}; + +struct trace_event_raw_rcu_kvfree_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + unsigned long offset; + long qlen; + char __data[0]; +}; + +struct trace_event_raw_rcu_batch_start { + struct trace_entry ent; + const char *rcuname; + long qlen; + long blimit; + char __data[0]; +}; + +struct trace_event_raw_rcu_invoke_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + void *func; + char __data[0]; +}; + +struct trace_event_raw_rcu_invoke_kvfree_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + unsigned long offset; + char __data[0]; +}; + +struct trace_event_raw_rcu_invoke_kfree_bulk_callback { + struct trace_entry ent; + const char *rcuname; + unsigned long nr_records; + void **p; + char __data[0]; +}; + +struct trace_event_raw_rcu_batch_end { + struct trace_entry ent; + const char *rcuname; + int callbacks_invoked; + char cb; + char nr; + char iit; + char risk; + char __data[0]; +}; + +struct trace_event_raw_rcu_torture_read { + struct trace_entry ent; + char rcutorturename[8]; + struct callback_head *rhp; + unsigned long secs; + unsigned long c_old; + unsigned long c; + char __data[0]; +}; + +struct trace_event_raw_rcu_barrier { + struct trace_entry ent; + const char *rcuname; + const char *s; + int cpu; + int cnt; + unsigned long done; + char __data[0]; +}; + +struct early_boot_kfree_rcu { + struct callback_head rh; +}; + +struct trc_stall_chk_rdr { + int nesting; + int ipi_to_cpu; + u8 needqs; +}; + +typedef int (*task_call_f)(struct task_struct *, void *); + +struct trace_event_data_offsets_rcu_utilization {}; + +struct trace_event_data_offsets_rcu_grace_period {}; + +struct trace_event_data_offsets_rcu_future_grace_period {}; + +struct trace_event_data_offsets_rcu_grace_period_init {}; + +struct trace_event_data_offsets_rcu_exp_grace_period {}; + +struct trace_event_data_offsets_rcu_exp_funnel_lock {}; + +struct trace_event_data_offsets_rcu_nocb_wake {}; + +struct trace_event_data_offsets_rcu_preempt_task {}; + +struct trace_event_data_offsets_rcu_unlock_preempted_task {}; + +struct trace_event_data_offsets_rcu_quiescent_state_report {}; + +struct trace_event_data_offsets_rcu_fqs {}; + +struct trace_event_data_offsets_rcu_stall_warning {}; + +struct trace_event_data_offsets_rcu_dyntick {}; + +struct trace_event_data_offsets_rcu_callback {}; + +struct trace_event_data_offsets_rcu_segcb_stats {}; + +struct trace_event_data_offsets_rcu_kvfree_callback {}; + +struct trace_event_data_offsets_rcu_batch_start {}; + +struct trace_event_data_offsets_rcu_invoke_callback {}; + +struct trace_event_data_offsets_rcu_invoke_kvfree_callback {}; + +struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {}; + +struct trace_event_data_offsets_rcu_batch_end {}; + +struct trace_event_data_offsets_rcu_torture_read {}; + +struct trace_event_data_offsets_rcu_barrier {}; + +struct bpf_array_aux; + +struct bpf_array { + struct bpf_map map; + u32 elem_size; + u32 index_mask; + struct bpf_array_aux *aux; + union { + struct { + struct {} __empty_value; + char value[0]; + }; + struct { + struct {} __empty_ptrs; + void *ptrs[0]; + }; + struct { + struct {} __empty_pptrs; + void __attribute__((btf_type_tag("percpu"))) *pptrs[0]; + }; + }; +}; + +struct bpf_array_aux { + struct list_head poke_progs; + struct bpf_map *map; + struct mutex poke_mutex; + struct work_struct work; +}; + +enum { + BPF_F_SKIP_FIELD_MASK = 255, + BPF_F_USER_STACK = 256, + BPF_F_FAST_STACK_CMP = 512, + BPF_F_REUSE_STACKID = 1024, + BPF_F_USER_BUILD_ID = 2048, +}; + +enum { + BPF_F_NO_PREALLOC = 1, + BPF_F_NO_COMMON_LRU = 2, + BPF_F_NUMA_NODE = 4, + BPF_F_RDONLY = 8, + BPF_F_WRONLY = 16, + BPF_F_STACK_BUILD_ID = 32, + BPF_F_ZERO_SEED = 64, + BPF_F_RDONLY_PROG = 128, + BPF_F_WRONLY_PROG = 256, + BPF_F_CLONE = 512, + BPF_F_MMAPABLE = 1024, + BPF_F_PRESERVE_ELEMS = 2048, + BPF_F_INNER_MAP = 4096, + BPF_F_LINK = 8192, + BPF_F_PATH_FD = 16384, + BPF_F_VTYPE_BTF_OBJ_FD = 32768, + BPF_F_TOKEN_FD = 65536, + BPF_F_SEGV_ON_FAULT = 131072, + BPF_F_NO_USER_CONV = 262144, +}; + +enum bpf_stack_build_id_status { + BPF_STACK_BUILD_ID_EMPTY = 0, + BPF_STACK_BUILD_ID_VALID = 1, + BPF_STACK_BUILD_ID_IP = 2, +}; + +enum { + CSD_FLAG_LOCK = 1, + IRQ_WORK_PENDING = 1, + IRQ_WORK_BUSY = 2, + IRQ_WORK_LAZY = 4, + IRQ_WORK_HARD_IRQ = 8, + IRQ_WORK_CLAIMED = 3, + CSD_TYPE_ASYNC = 0, + CSD_TYPE_SYNC = 16, + CSD_TYPE_IRQ_WORK = 32, + CSD_TYPE_TTWU = 48, + CSD_FLAG_TYPE_MASK = 240, +}; + +enum perf_event_sample_format { + PERF_SAMPLE_IP = 1, + PERF_SAMPLE_TID = 2, + PERF_SAMPLE_TIME = 4, + PERF_SAMPLE_ADDR = 8, + PERF_SAMPLE_READ = 16, + PERF_SAMPLE_CALLCHAIN = 32, + PERF_SAMPLE_ID = 64, + PERF_SAMPLE_CPU = 128, + PERF_SAMPLE_PERIOD = 256, + PERF_SAMPLE_STREAM_ID = 512, + PERF_SAMPLE_RAW = 1024, + PERF_SAMPLE_BRANCH_STACK = 2048, + PERF_SAMPLE_REGS_USER = 4096, + PERF_SAMPLE_STACK_USER = 8192, + PERF_SAMPLE_WEIGHT = 16384, + PERF_SAMPLE_DATA_SRC = 32768, + PERF_SAMPLE_IDENTIFIER = 65536, + PERF_SAMPLE_TRANSACTION = 131072, + PERF_SAMPLE_REGS_INTR = 262144, + PERF_SAMPLE_PHYS_ADDR = 524288, + PERF_SAMPLE_AUX = 1048576, + PERF_SAMPLE_CGROUP = 2097152, + PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, + PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, + PERF_SAMPLE_WEIGHT_STRUCT = 16777216, + PERF_SAMPLE_MAX = 33554432, +}; + +enum perf_callchain_context { + PERF_CONTEXT_HV = 18446744073709551584ULL, + PERF_CONTEXT_KERNEL = 18446744073709551488ULL, + PERF_CONTEXT_USER = 18446744073709551104ULL, + PERF_CONTEXT_GUEST = 18446744073709549568ULL, + PERF_CONTEXT_GUEST_KERNEL = 18446744073709549440ULL, + PERF_CONTEXT_GUEST_USER = 18446744073709549056ULL, + PERF_CONTEXT_MAX = 18446744073709547521ULL, +}; + +typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +struct pcpu_freelist_node; + +struct pcpu_freelist_head { + struct pcpu_freelist_node *first; + raw_spinlock_t lock; +}; + +struct pcpu_freelist { + struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; + struct pcpu_freelist_head extralist; +}; + +struct stack_map_bucket; + +struct bpf_stack_map { + struct bpf_map map; + void *elems; + struct pcpu_freelist freelist; + u32 n_buckets; + struct stack_map_bucket *buckets[0]; +}; + +struct pcpu_freelist_node { + struct pcpu_freelist_node *next; +}; + +struct stack_map_bucket { + struct pcpu_freelist_node fnode; + u32 hash; + u32 nr; + u64 data[0]; +}; + +struct bpf_stack_build_id { + __s32 status; + unsigned char build_id[20]; + union { + __u64 offset; + __u64 ip; + }; +}; + +struct mmap_unlock_irq_work { + struct irq_work irq_work; + struct mm_struct *mm; +}; + +struct dma_page { + struct list_head page_list; + void *vaddr; + dma_addr_t dma; +}; + +struct dma_block; + +struct dma_pool { + struct list_head page_list; + spinlock_t lock; + struct dma_block *next_block; + size_t nr_blocks; + size_t nr_active; + size_t nr_pages; + struct device *dev; + unsigned int size; + unsigned int allocation; + unsigned int boundary; + char name[32]; + struct list_head pools; +}; + +struct dma_block { + struct dma_block *next_block; + dma_addr_t dma; +}; + +struct saved { + struct path link; + struct delayed_call done; + const char *name; + unsigned int seq; +}; + +struct nameidata { + struct path path; + struct qstr last; + struct path root; + struct inode *inode; + unsigned int flags; + unsigned int state; + unsigned int seq; + unsigned int next_seq; + unsigned int m_seq; + unsigned int r_seq; + int last_type; + unsigned int depth; + int total_link_count; + struct saved *stack; + struct saved internal[2]; + struct filename *name; + struct nameidata *saved; + unsigned int root_seq; + int dfd; + vfsuid_t dir_vfsuid; + umode_t dir_mode; +}; + +struct mount; + +struct mnt_namespace { + struct ns_common ns; + struct mount *root; + struct rb_root mounts; + struct user_namespace *user_ns; + struct ucounts *ucounts; + u64 seq; + wait_queue_head_t poll; + u64 event; + unsigned int nr_mounts; + unsigned int pending_mounts; +}; + +struct mnt_pcp; + +struct mountpoint; + +struct mount { + struct hlist_node mnt_hash; + struct mount *mnt_parent; + struct dentry *mnt_mountpoint; + struct vfsmount mnt; + union { + struct callback_head mnt_rcu; + struct llist_node mnt_llist; + }; + struct mnt_pcp __attribute__((btf_type_tag("percpu"))) *mnt_pcp; + struct list_head mnt_mounts; + struct list_head mnt_child; + struct list_head mnt_instance; + const char *mnt_devname; + union { + struct rb_node mnt_node; + struct list_head mnt_list; + }; + struct list_head mnt_expire; + struct list_head mnt_share; + struct list_head mnt_slave_list; + struct list_head mnt_slave; + struct mount *mnt_master; + struct mnt_namespace *mnt_ns; + struct mountpoint *mnt_mp; + union { + struct hlist_node mnt_mp_list; + struct hlist_node mnt_umount; + }; + struct list_head mnt_umounting; + struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *mnt_fsnotify_marks; + __u32 mnt_fsnotify_mask; + int mnt_id; + u64 mnt_id_unique; + int mnt_group_id; + int mnt_expiry_mark; + struct hlist_head mnt_pins; + struct hlist_head mnt_stuck_children; +}; + +struct mnt_pcp { + int mnt_count; + int mnt_writers; +}; + +struct mountpoint { + struct hlist_node m_hash; + struct dentry *m_dentry; + struct hlist_head m_list; + int m_count; +}; + +struct fs_pin { + wait_queue_head_t wait; + int done; + struct hlist_node s_list; + struct hlist_node m_list; + void (*kill)(struct fs_pin *); +}; + +struct nlm_lockowner; + +struct nfs_lock_info { + u32 state; + struct nlm_lockowner *owner; + struct list_head list; +}; + +struct nfs4_lock_state; + +struct nfs4_lock_info { + struct nfs4_lock_state *owner; +}; + +struct file_lock_core { + struct file_lock_core *flc_blocker; + struct list_head flc_list; + struct hlist_node flc_link; + struct list_head flc_blocked_requests; + struct list_head flc_blocked_member; + fl_owner_t flc_owner; + unsigned int flc_flags; + unsigned char flc_type; + pid_t flc_pid; + int flc_link_cpu; + wait_queue_head_t flc_wait; + struct file *flc_file; +}; + +struct file_lock_operations; + +struct lock_manager_operations; + +struct file_lock { + struct file_lock_core c; + loff_t fl_start; + loff_t fl_end; + const struct file_lock_operations *fl_ops; + const struct lock_manager_operations *fl_lmops; + union { + struct nfs_lock_info nfs_fl; + struct nfs4_lock_info nfs4_fl; + struct { + struct list_head link; + int state; + unsigned int debug_id; + } afs; + struct { + struct inode *inode; + } ceph; + } fl_u; +}; + +struct file_lock_operations { + void (*fl_copy_lock)(struct file_lock *, struct file_lock *); + void (*fl_release_private)(struct file_lock *); +}; + +struct lock_manager_operations { + void *lm_mod_owner; + fl_owner_t (*lm_get_owner)(fl_owner_t); + void (*lm_put_owner)(fl_owner_t); + void (*lm_notify)(struct file_lock *); + int (*lm_grant)(struct file_lock *, int); + bool (*lm_lock_expirable)(struct file_lock *); + void (*lm_expire_lock)(); +}; + +struct lease_manager_operations; + +struct file_lease { + struct file_lock_core c; + struct fasync_struct *fl_fasync; + unsigned long fl_break_time; + unsigned long fl_downgrade_time; + const struct lease_manager_operations *fl_lmops; +}; + +struct lease_manager_operations { + bool (*lm_break)(struct file_lease *); + int (*lm_change)(struct file_lease *, int, struct list_head *); + void (*lm_setup)(struct file_lease *, void **); + bool (*lm_breaker_owns_lease)(struct file_lease *); +}; + +struct file_lock_context { + spinlock_t flc_lock; + struct list_head flc_flock; + struct list_head flc_posix; + struct list_head flc_lease; +}; + +enum inode_i_mutex_lock_class { + I_MUTEX_NORMAL = 0, + I_MUTEX_PARENT = 1, + I_MUTEX_CHILD = 2, + I_MUTEX_XATTR = 3, + I_MUTEX_NONDIR2 = 4, + I_MUTEX_PARENT2 = 5, +}; + +enum { + LAST_NORM = 0, + LAST_ROOT = 1, + LAST_DOT = 2, + LAST_DOTDOT = 3, +}; + +enum { + WALK_TRAILING = 1, + WALK_MORE = 2, + WALK_NOFOLLOW = 4, +}; + +enum fsnotify_data_type { + FSNOTIFY_EVENT_NONE = 0, + FSNOTIFY_EVENT_PATH = 1, + FSNOTIFY_EVENT_INODE = 2, + FSNOTIFY_EVENT_DENTRY = 3, + FSNOTIFY_EVENT_ERROR = 4, +}; + +struct word_at_a_time { + const unsigned long one_bits; + const unsigned long high_bits; +}; + +struct open_flags { + int open_flag; + umode_t mode; + int acc_mode; + int intent; + int lookup_flags; +}; + +struct name_snapshot { + struct qstr name; + unsigned char inline_name[40]; +}; + +typedef int filler_t(struct file *, struct folio *); + +struct renamedata { + struct mnt_idmap *old_mnt_idmap; + struct inode *old_dir; + struct dentry *old_dentry; + struct mnt_idmap *new_mnt_idmap; + struct inode *new_dir; + struct dentry *new_dentry; + struct inode **delegated_inode; + unsigned int flags; +}; + +enum { + EXT4_INODE_SECRM = 0, + EXT4_INODE_UNRM = 1, + EXT4_INODE_COMPR = 2, + EXT4_INODE_SYNC = 3, + EXT4_INODE_IMMUTABLE = 4, + EXT4_INODE_APPEND = 5, + EXT4_INODE_NODUMP = 6, + EXT4_INODE_NOATIME = 7, + EXT4_INODE_DIRTY = 8, + EXT4_INODE_COMPRBLK = 9, + EXT4_INODE_NOCOMPR = 10, + EXT4_INODE_ENCRYPT = 11, + EXT4_INODE_INDEX = 12, + EXT4_INODE_IMAGIC = 13, + EXT4_INODE_JOURNAL_DATA = 14, + EXT4_INODE_NOTAIL = 15, + EXT4_INODE_DIRSYNC = 16, + EXT4_INODE_TOPDIR = 17, + EXT4_INODE_HUGE_FILE = 18, + EXT4_INODE_EXTENTS = 19, + EXT4_INODE_VERITY = 20, + EXT4_INODE_EA_INODE = 21, + EXT4_INODE_DAX = 25, + EXT4_INODE_INLINE_DATA = 28, + EXT4_INODE_PROJINHERIT = 29, + EXT4_INODE_CASEFOLD = 30, + EXT4_INODE_RESERVED = 31, +}; + +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 1, +}; + +enum ext4_li_mode { + EXT4_LI_MODE_PREFETCH_BBITMAP = 0, + EXT4_LI_MODE_ITABLE = 1, +}; + +typedef unsigned long long ext4_fsblk_t; + +typedef unsigned int ext4_group_t; + +typedef __u32 ext4_lblk_t; + +struct extent_status; + +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; +}; + +struct ext4_pending_tree { + struct rb_root root; +}; + +struct ext4_inode_info { + __le32 i_data[15]; + __u32 i_dtime; + ext4_fsblk_t i_file_acl; + ext4_group_t i_block_group; + ext4_lblk_t i_dir_start_lookup; + unsigned long i_flags; + struct rw_semaphore xattr_sem; + union { + struct list_head i_orphan; + unsigned int i_orphan_idx; + }; + struct list_head i_fc_dilist; + struct list_head i_fc_list; + ext4_lblk_t i_fc_lblk_start; + ext4_lblk_t i_fc_lblk_len; + atomic_t i_fc_updates; + wait_queue_head_t i_fc_wait; + struct mutex i_fc_lock; + loff_t i_disksize; + struct rw_semaphore i_data_sem; + struct inode vfs_inode; + struct jbd2_inode *jinode; + spinlock_t i_raw_lock; + struct timespec64 i_crtime; + atomic_t i_prealloc_active; + struct rb_root i_prealloc_node; + rwlock_t i_prealloc_lock; + struct ext4_es_tree i_es_tree; + rwlock_t i_es_lock; + struct list_head i_es_list; + unsigned int i_es_all_nr; + unsigned int i_es_shk_nr; + ext4_lblk_t i_es_shrink_lblk; + ext4_group_t i_last_alloc_group; + unsigned int i_reserved_data_blocks; + struct ext4_pending_tree i_pending_tree; + __u16 i_extra_isize; + u16 i_inline_off; + u16 i_inline_size; + spinlock_t i_completed_io_lock; + struct list_head i_rsv_conversion_list; + struct work_struct i_rsv_conversion_work; + atomic_t i_unwritten; + spinlock_t i_block_reservation_lock; + tid_t i_sync_tid; + tid_t i_datasync_tid; + __u32 i_csum_seed; + kprojid_t i_projid; +}; + +struct extent_status { + struct rb_node rb_node; + ext4_lblk_t es_lblk; + ext4_lblk_t es_len; + ext4_fsblk_t es_pblk; +}; + +struct ext4_orphan_block; + +struct ext4_orphan_info { + int of_blocks; + __u32 of_csum_seed; + struct ext4_orphan_block *of_binfo; +}; + +struct ext4_es_stats { + unsigned long es_stats_shrunk; + struct percpu_counter es_stats_cache_hits; + struct percpu_counter es_stats_cache_misses; + u64 es_stats_scan_time; + u64 es_stats_max_scan_time; + struct percpu_counter es_stats_all_cnt; + struct percpu_counter es_stats_shk_cnt; +}; + +struct ext4_journal_trigger { + struct jbd2_buffer_trigger_type tr_triggers; + struct super_block *sb; +}; + +struct fscrypt_dummy_policy {}; + +struct ext4_fc_stats { + unsigned int fc_ineligible_reason_count[10]; + unsigned long fc_num_commits; + unsigned long fc_ineligible_commits; + unsigned long fc_failed_commits; + unsigned long fc_skipped_commits; + unsigned long fc_numblks; + u64 s_fc_avg_commit_time; +}; + +struct ext4_fc_alloc_region; + +struct ext4_fc_replay_state { + int fc_replay_num_tags; + int fc_replay_expected_off; + int fc_current_pass; + int fc_cur_tag; + int fc_crc; + struct ext4_fc_alloc_region *fc_regions; + int fc_regions_size; + int fc_regions_used; + int fc_regions_valid; + int *fc_modified_inodes; + int fc_modified_inodes_used; + int fc_modified_inodes_size; +}; + +struct ext4_super_block; + +struct blockgroup_lock; + +struct ext4_system_blocks; + +struct ext4_group_info; + +struct ext4_locality_group; + +struct flex_groups; + +struct ext4_li_request; + +struct mb_cache; + +struct ext4_sb_info { + unsigned long s_desc_size; + unsigned long s_inodes_per_block; + unsigned long s_blocks_per_group; + unsigned long s_clusters_per_group; + unsigned long s_inodes_per_group; + unsigned long s_itb_per_group; + unsigned long s_gdb_count; + unsigned long s_desc_per_block; + ext4_group_t s_groups_count; + ext4_group_t s_blockfile_groups; + unsigned long s_overhead; + unsigned int s_cluster_ratio; + unsigned int s_cluster_bits; + loff_t s_bitmap_maxbytes; + struct buffer_head *s_sbh; + struct ext4_super_block *s_es; + struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc; + unsigned int s_mount_opt; + unsigned int s_mount_opt2; + unsigned long s_mount_flags; + unsigned int s_def_mount_opt; + unsigned int s_def_mount_opt2; + ext4_fsblk_t s_sb_block; + atomic64_t s_resv_clusters; + kuid_t s_resuid; + kgid_t s_resgid; + unsigned short s_mount_state; + unsigned short s_pad; + int s_addr_per_block_bits; + int s_desc_per_block_bits; + int s_inode_size; + int s_first_ino; + unsigned int s_inode_readahead_blks; + unsigned int s_inode_goal; + u32 s_hash_seed[4]; + int s_def_hash_version; + int s_hash_unsigned; + struct percpu_counter s_freeclusters_counter; + struct percpu_counter s_freeinodes_counter; + struct percpu_counter s_dirs_counter; + struct percpu_counter s_dirtyclusters_counter; + struct percpu_counter s_sra_exceeded_retry_limit; + struct blockgroup_lock *s_blockgroup_lock; + struct proc_dir_entry *s_proc; + struct kobject s_kobj; + struct completion s_kobj_unregister; + struct super_block *s_sb; + struct buffer_head *s_mmp_bh; + struct journal_s *s_journal; + unsigned long s_ext4_flags; + struct mutex s_orphan_lock; + struct list_head s_orphan; + struct ext4_orphan_info s_orphan_info; + unsigned long s_commit_interval; + u32 s_max_batch_time; + u32 s_min_batch_time; + struct file *s_journal_bdev_file; + unsigned int s_want_extra_isize; + struct ext4_system_blocks __attribute__((btf_type_tag("rcu"))) *s_system_blks; + struct ext4_group_info ** __attribute__((btf_type_tag("rcu"))) *s_group_info; + struct inode *s_buddy_cache; + spinlock_t s_md_lock; + unsigned short *s_mb_offsets; + unsigned int *s_mb_maxs; + unsigned int s_group_info_size; + unsigned int s_mb_free_pending; + struct list_head s_freed_data_list[2]; + struct list_head s_discard_list; + struct work_struct s_discard_work; + atomic_t s_retry_alloc_pending; + struct list_head *s_mb_avg_fragment_size; + rwlock_t *s_mb_avg_fragment_size_locks; + struct list_head *s_mb_largest_free_orders; + rwlock_t *s_mb_largest_free_orders_locks; + unsigned long s_stripe; + unsigned int s_mb_max_linear_groups; + unsigned int s_mb_stream_request; + unsigned int s_mb_max_to_scan; + unsigned int s_mb_min_to_scan; + unsigned int s_mb_stats; + unsigned int s_mb_order2_reqs; + unsigned int s_mb_group_prealloc; + unsigned int s_max_dir_size_kb; + unsigned long s_mb_last_group; + unsigned long s_mb_last_start; + unsigned int s_mb_prefetch; + unsigned int s_mb_prefetch_limit; + unsigned int s_mb_best_avail_max_trim_order; + atomic_t s_bal_reqs; + atomic_t s_bal_success; + atomic_t s_bal_allocated; + atomic_t s_bal_ex_scanned; + atomic_t s_bal_cX_ex_scanned[5]; + atomic_t s_bal_groups_scanned; + atomic_t s_bal_goals; + atomic_t s_bal_len_goals; + atomic_t s_bal_breaks; + atomic_t s_bal_2orders; + atomic_t s_bal_p2_aligned_bad_suggestions; + atomic_t s_bal_goal_fast_bad_suggestions; + atomic_t s_bal_best_avail_bad_suggestions; + atomic64_t s_bal_cX_groups_considered[5]; + atomic64_t s_bal_cX_hits[5]; + atomic64_t s_bal_cX_failed[5]; + atomic_t s_mb_buddies_generated; + atomic64_t s_mb_generation_time; + atomic_t s_mb_lost_chunks; + atomic_t s_mb_preallocated; + atomic_t s_mb_discarded; + atomic_t s_lock_busy; + struct ext4_locality_group __attribute__((btf_type_tag("percpu"))) *s_locality_groups; + unsigned long s_sectors_written_start; + u64 s_kbytes_written; + unsigned int s_extent_max_zeroout_kb; + unsigned int s_log_groups_per_flex; + struct flex_groups * __attribute__((btf_type_tag("rcu"))) *s_flex_groups; + ext4_group_t s_flex_groups_allocated; + struct workqueue_struct *rsv_conversion_wq; + struct timer_list s_err_report; + struct ext4_li_request *s_li_request; + unsigned int s_li_wait_mult; + struct task_struct *s_mmp_tsk; + unsigned long s_last_trim_minblks; + struct crypto_shash *s_chksum_driver; + __u32 s_csum_seed; + struct shrinker *s_es_shrinker; + struct list_head s_es_list; + long s_es_nr_inode; + struct ext4_es_stats s_es_stats; + struct mb_cache *s_ea_block_cache; + struct mb_cache *s_ea_inode_cache; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t s_es_lock; + struct ext4_journal_trigger s_journal_triggers[1]; + struct ratelimit_state s_err_ratelimit_state; + struct ratelimit_state s_warning_ratelimit_state; + struct ratelimit_state s_msg_ratelimit_state; + atomic_t s_warning_count; + atomic_t s_msg_count; + struct fscrypt_dummy_policy s_dummy_enc_policy; + struct percpu_rw_semaphore s_writepages_rwsem; + struct dax_device *s_daxdev; + u64 s_dax_part_off; + errseq_t s_bdev_wb_err; + spinlock_t s_bdev_wb_lock; + spinlock_t s_error_lock; + int s_add_error_count; + int s_first_error_code; + __u32 s_first_error_line; + __u32 s_first_error_ino; + __u64 s_first_error_block; + const char *s_first_error_func; + time64_t s_first_error_time; + int s_last_error_code; + __u32 s_last_error_line; + __u32 s_last_error_ino; + __u64 s_last_error_block; + const char *s_last_error_func; + time64_t s_last_error_time; + struct work_struct s_sb_upd_work; + atomic_t s_fc_subtid; + struct list_head s_fc_q[2]; + struct list_head s_fc_dentry_q[2]; + unsigned int s_fc_bytes; + spinlock_t s_fc_lock; + struct buffer_head *s_fc_bh; + struct ext4_fc_stats s_fc_stats; + tid_t s_fc_ineligible_tid; + struct ext4_fc_replay_state s_fc_replay_state; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct ext4_super_block { + __le32 s_inodes_count; + __le32 s_blocks_count_lo; + __le32 s_r_blocks_count_lo; + __le32 s_free_blocks_count_lo; + __le32 s_free_inodes_count; + __le32 s_first_data_block; + __le32 s_log_block_size; + __le32 s_log_cluster_size; + __le32 s_blocks_per_group; + __le32 s_clusters_per_group; + __le32 s_inodes_per_group; + __le32 s_mtime; + __le32 s_wtime; + __le16 s_mnt_count; + __le16 s_max_mnt_count; + __le16 s_magic; + __le16 s_state; + __le16 s_errors; + __le16 s_minor_rev_level; + __le32 s_lastcheck; + __le32 s_checkinterval; + __le32 s_creator_os; + __le32 s_rev_level; + __le16 s_def_resuid; + __le16 s_def_resgid; + __le32 s_first_ino; + __le16 s_inode_size; + __le16 s_block_group_nr; + __le32 s_feature_compat; + __le32 s_feature_incompat; + __le32 s_feature_ro_compat; + __u8 s_uuid[16]; + char s_volume_name[16]; + char s_last_mounted[64]; + __le32 s_algorithm_usage_bitmap; + __u8 s_prealloc_blocks; + __u8 s_prealloc_dir_blocks; + __le16 s_reserved_gdt_blocks; + __u8 s_journal_uuid[16]; + __le32 s_journal_inum; + __le32 s_journal_dev; + __le32 s_last_orphan; + __le32 s_hash_seed[4]; + __u8 s_def_hash_version; + __u8 s_jnl_backup_type; + __le16 s_desc_size; + __le32 s_default_mount_opts; + __le32 s_first_meta_bg; + __le32 s_mkfs_time; + __le32 s_jnl_blocks[17]; + __le32 s_blocks_count_hi; + __le32 s_r_blocks_count_hi; + __le32 s_free_blocks_count_hi; + __le16 s_min_extra_isize; + __le16 s_want_extra_isize; + __le32 s_flags; + __le16 s_raid_stride; + __le16 s_mmp_update_interval; + __le64 s_mmp_block; + __le32 s_raid_stripe_width; + __u8 s_log_groups_per_flex; + __u8 s_checksum_type; + __u8 s_encryption_level; + __u8 s_reserved_pad; + __le64 s_kbytes_written; + __le32 s_snapshot_inum; + __le32 s_snapshot_id; + __le64 s_snapshot_r_blocks_count; + __le32 s_snapshot_list; + __le32 s_error_count; + __le32 s_first_error_time; + __le32 s_first_error_ino; + __le64 s_first_error_block; + __u8 s_first_error_func[32]; + __le32 s_first_error_line; + __le32 s_last_error_time; + __le32 s_last_error_ino; + __le32 s_last_error_line; + __le64 s_last_error_block; + __u8 s_last_error_func[32]; + __u8 s_mount_opts[64]; + __le32 s_usr_quota_inum; + __le32 s_grp_quota_inum; + __le32 s_overhead_clusters; + __le32 s_backup_bgs[2]; + __u8 s_encrypt_algos[4]; + __u8 s_encrypt_pw_salt[16]; + __le32 s_lpf_ino; + __le32 s_prj_quota_inum; + __le32 s_checksum_seed; + __u8 s_wtime_hi; + __u8 s_mtime_hi; + __u8 s_mkfs_time_hi; + __u8 s_lastcheck_hi; + __u8 s_first_error_time_hi; + __u8 s_last_error_time_hi; + __u8 s_first_error_errcode; + __u8 s_last_error_errcode; + __le16 s_encoding; + __le16 s_encoding_flags; + __le32 s_orphan_file_inum; + __le32 s_reserved[94]; + __le32 s_checksum; +}; + +struct bgl_lock { + spinlock_t lock; +}; + +struct blockgroup_lock { + struct bgl_lock locks[128]; +}; + +struct ext4_orphan_block { + atomic_t ob_free_entries; + struct buffer_head *ob_bh; +}; + +struct ext4_system_blocks { + struct rb_root root; + struct callback_head rcu; +}; + +typedef int ext4_grpblk_t; + +struct ext4_group_info { + unsigned long bb_state; + struct rb_root bb_free_root; + ext4_grpblk_t bb_first_free; + ext4_grpblk_t bb_free; + ext4_grpblk_t bb_fragments; + int bb_avg_fragment_size_order; + ext4_grpblk_t bb_largest_free_order; + ext4_group_t bb_group; + struct list_head bb_prealloc_list; + struct rw_semaphore alloc_sem; + struct list_head bb_avg_fragment_size_node; + struct list_head bb_largest_free_order_node; + ext4_grpblk_t bb_counters[0]; +}; + +struct ext4_locality_group { + struct mutex lg_mutex; + struct list_head lg_prealloc_list[10]; + spinlock_t lg_prealloc_lock; +}; + +struct flex_groups { + atomic64_t free_clusters; + atomic_t free_inodes; + atomic_t used_dirs; +}; + +struct ext4_li_request { + struct super_block *lr_super; + enum ext4_li_mode lr_mode; + ext4_group_t lr_first_not_zeroed; + ext4_group_t lr_next_group; + struct list_head lr_request; + unsigned long lr_next_sched; + unsigned long lr_timeout; +}; + +struct ext4_fc_alloc_region { + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + int ino; + int len; +}; + +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; + +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; +}; + +struct jbd2_journal_handle; + +typedef struct jbd2_journal_handle handle_t; + +struct jbd2_journal_handle { + union { + transaction_t *h_transaction; + journal_t *h_journal; + }; + handle_t *h_rsv_handle; + int h_total_credits; + int h_revoke_credits; + int h_revoke_credits_requested; + int h_ref; + int h_err; + unsigned int h_sync: 1; + unsigned int h_jdata: 1; + unsigned int h_reserved: 1; + unsigned int h_aborted: 1; + unsigned int h_type: 8; + unsigned int h_line_no: 16; + unsigned long h_start_jiffies; + unsigned int h_requested_credits; + unsigned int saved_alloc_context; +}; + +struct ext4_allocation_request { + struct inode *inode; + unsigned int len; + ext4_lblk_t logical; + ext4_lblk_t lleft; + ext4_lblk_t lright; + ext4_fsblk_t goal; + ext4_fsblk_t pleft; + ext4_fsblk_t pright; + unsigned int flags; +}; + +enum { + Opt_direct = 0, + Opt_fd = 1, + Opt_gid = 2, + Opt_ignore = 3, + Opt_indirect = 4, + Opt_maxproto = 5, + Opt_minproto = 6, + Opt_offset = 7, + Opt_pgrp = 8, + Opt_strictexpire = 9, + Opt_uid = 10, +}; + +struct autofs_fs_context { + kuid_t uid; + kgid_t gid; + int pgrp; + bool pgrp_set; +}; + +struct match_token { + int token; + const char *pattern; +}; + +enum key_need_perm { + KEY_NEED_UNSPECIFIED = 0, + KEY_NEED_VIEW = 1, + KEY_NEED_READ = 2, + KEY_NEED_WRITE = 3, + KEY_NEED_SEARCH = 4, + KEY_NEED_LINK = 5, + KEY_NEED_SETATTR = 6, + KEY_NEED_UNLINK = 7, + KEY_SYSADMIN_OVERRIDE = 8, + KEY_AUTHTOKEN_OVERRIDE = 9, + KEY_DEFER_PERM_CHECK = 10, +}; + +enum { + Opt_err = 0, + Opt_enc = 1, + Opt_hash = 2, +}; + +struct key_user { + struct rb_node node; + struct mutex cons_lock; + spinlock_t lock; + refcount_t usage; + atomic_t nkeys; + atomic_t nikeys; + kuid_t uid; + int qnkeys; + int qnbytes; +}; + +typedef struct { + char *from; + char *to; +} substring_t; + +struct __key_reference_with_attributes; + +typedef struct __key_reference_with_attributes *key_ref_t; + +struct keyctl_pkey_params { + __s32 key_id; + __u32 in_len; + union { + __u32 out_len; + __u32 in2_len; + }; + __u32 __spare[7]; +}; + +struct keyctl_pkey_query { + __u32 supported_ops; + __u32 key_size; + __u16 max_data_size; + __u16 max_sig_size; + __u16 max_enc_size; + __u16 max_dec_size; + __u32 __spare[10]; +}; + +struct bpf_crypto_type { + void * (*alloc_tfm)(const char *); + void (*free_tfm)(void *); + int (*has_algo)(const char *); + int (*setkey)(void *, const u8 *, unsigned int); + int (*setauthsize)(void *, unsigned int); + int (*encrypt)(void *, const u8 *, u8 *, unsigned int, u8 *); + int (*decrypt)(void *, const u8 *, u8 *, unsigned int, u8 *); + unsigned int (*ivsize)(void *); + unsigned int (*statesize)(void *); + u32 (*get_flags)(void *); + struct module *owner; + char name[14]; +}; + +struct skcipher_alg_common { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + unsigned int statesize; + struct crypto_alg base; +}; + +struct crypto_lskcipher; + +struct lskcipher_alg { + int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); + int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); + int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); + int (*init)(struct crypto_lskcipher *); + void (*exit)(struct crypto_lskcipher *); + struct skcipher_alg_common co; +}; + +struct crypto_lskcipher { + struct crypto_tfm base; +}; + +struct crypto_template; + +struct crypto_spawn; + +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; + union { + struct hlist_node list; + struct crypto_spawn *spawns; + }; + struct work_struct free_work; + void *__ctx[0]; +}; + +struct rtattr; + +struct crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; +}; + +struct crypto_spawn { + struct list_head list; + struct crypto_alg *alg; + union { + struct crypto_instance *inst; + struct crypto_spawn *next; + }; + const struct crypto_type *frontend; + u32 mask; + bool dead; + bool registered; +}; + +struct comp_alg_common { + struct crypto_alg base; +}; + +struct crypto_scomp; + +struct scomp_alg { + void * (*alloc_ctx)(struct crypto_scomp *); + void (*free_ctx)(struct crypto_scomp *, void *); + int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +struct crypto_scomp { + struct crypto_tfm base; +}; + +struct lzo_ctx { + void *lzo_comp_mem; +}; + +enum { + REQ_F_FIXED_FILE = 1ULL, + REQ_F_IO_DRAIN = 2ULL, + REQ_F_LINK = 4ULL, + REQ_F_HARDLINK = 8ULL, + REQ_F_FORCE_ASYNC = 16ULL, + REQ_F_BUFFER_SELECT = 32ULL, + REQ_F_CQE_SKIP = 64ULL, + REQ_F_FAIL = 256ULL, + REQ_F_INFLIGHT = 512ULL, + REQ_F_CUR_POS = 1024ULL, + REQ_F_NOWAIT = 2048ULL, + REQ_F_LINK_TIMEOUT = 4096ULL, + REQ_F_NEED_CLEANUP = 8192ULL, + REQ_F_POLLED = 16384ULL, + REQ_F_BUFFER_SELECTED = 32768ULL, + REQ_F_BUFFER_RING = 65536ULL, + REQ_F_REISSUE = 131072ULL, + REQ_F_SUPPORT_NOWAIT = 268435456ULL, + REQ_F_ISREG = 536870912ULL, + REQ_F_CREDS = 262144ULL, + REQ_F_REFCOUNT = 524288ULL, + REQ_F_ARM_LTIMEOUT = 1048576ULL, + REQ_F_ASYNC_DATA = 2097152ULL, + REQ_F_SKIP_LINK_CQES = 4194304ULL, + REQ_F_SINGLE_POLL = 8388608ULL, + REQ_F_DOUBLE_POLL = 16777216ULL, + REQ_F_APOLL_MULTISHOT = 33554432ULL, + REQ_F_CLEAR_POLLIN = 67108864ULL, + REQ_F_HASH_LOCKED = 134217728ULL, + REQ_F_POLL_NO_LAZY = 1073741824ULL, + REQ_F_CANCEL_SEQ = 2147483648ULL, + REQ_F_CAN_POLL = 4294967296ULL, + REQ_F_BL_EMPTY = 8589934592ULL, + REQ_F_BL_NO_RECYCLE = 17179869184ULL, +}; + +enum io_uring_cmd_flags { + IO_URING_F_COMPLETE_DEFER = 1, + IO_URING_F_UNLOCKED = 2, + IO_URING_F_MULTISHOT = 4, + IO_URING_F_IOWQ = 8, + IO_URING_F_NONBLOCK = -2147483648, + IO_URING_F_SQE128 = 256, + IO_URING_F_CQE32 = 512, + IO_URING_F_IOPOLL = 1024, + IO_URING_F_CANCEL = 2048, + IO_URING_F_COMPAT = 4096, +}; + +enum { + IOU_OK = 0, + IOU_ISSUE_SKIP_COMPLETE = -529, + IOU_REQUEUE = -3072, + IOU_STOP_MULTISHOT = -125, +}; + +struct io_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_ring_ctx; + +struct io_wq; + +struct io_uring_task { + int cached_refs; + const struct io_ring_ctx *last; + struct io_wq *io_wq; + struct file *registered_rings[16]; + struct xarray xa; + struct wait_queue_head wait; + atomic_t in_cancel; + atomic_t inflight_tracked; + struct percpu_counter inflight; + long: 64; + long: 64; + long: 64; + long: 64; + struct { + struct llist_head task_list; + struct callback_head task_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; +}; + +struct io_wq_work_node; + +struct io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; +}; + +struct io_fixed_file; + +struct io_file_table { + struct io_fixed_file *files; + unsigned long *bitmap; + unsigned int alloc_hint; +}; + +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_kiocb; + +struct io_submit_link { + struct io_kiocb *head; + struct io_kiocb *last; +}; + +struct io_submit_state { + struct io_wq_work_node free_list; + struct io_wq_work_list compl_reqs; + struct io_submit_link link; + bool plug_started; + bool need_plug; + unsigned short submit_nr; + unsigned int cqes_count; + struct blk_plug plug; +}; + +struct io_hash_bucket; + +struct io_hash_table { + struct io_hash_bucket *hbs; + unsigned int hash_bits; +}; + +struct io_alloc_cache { + struct io_wq_work_node list; + unsigned int nr_cached; + unsigned int max_cached; + size_t elem_size; +}; + +struct io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; + __u64 big_cqe[0]; +}; + +struct io_restriction { + unsigned long register_op[1]; + unsigned long sqe_op[1]; + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; +}; + +struct io_rings; + +struct io_uring_sqe; + +struct io_rsrc_node; + +struct io_mapped_ubuf; + +struct io_buffer_list; + +struct io_ev_fd; + +struct io_sq_data; + +struct io_rsrc_data; + +struct io_wq_hash; + +struct io_ring_ctx { + struct { + unsigned int flags; + unsigned int drain_next: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + unsigned int has_evfd: 1; + unsigned int task_complete: 1; + unsigned int lockless_cq: 1; + unsigned int syscall_iopoll: 1; + unsigned int poll_activated: 1; + unsigned int drain_disabled: 1; + unsigned int compat: 1; + unsigned int iowq_limits_set: 1; + struct task_struct *submitter_task; + struct io_rings *rings; + struct percpu_ref refs; + enum task_work_notify_mode notify_method; + unsigned int sq_thread_idle; + long: 64; + long: 64; + }; + struct { + struct mutex uring_lock; + u32 *sq_array; + struct io_uring_sqe *sq_sqes; + unsigned int cached_sq_head; + unsigned int sq_entries; + struct io_rsrc_node *rsrc_node; + atomic_t cancel_seq; + bool poll_multi_queue; + struct io_wq_work_list iopoll_list; + struct io_file_table file_table; + struct io_mapped_ubuf **user_bufs; + unsigned int nr_user_files; + unsigned int nr_user_bufs; + struct io_submit_state submit_state; + struct io_buffer_list *io_bl; + struct xarray io_bl_xa; + struct io_hash_table cancel_table_locked; + struct io_alloc_cache apoll_cache; + struct io_alloc_cache netmsg_cache; + struct hlist_head cancelable_uring_cmd; + long: 64; + long: 64; + }; + struct { + struct io_uring_cqe *cqe_cached; + struct io_uring_cqe *cqe_sentinel; + unsigned int cached_cq_tail; + unsigned int cq_entries; + struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd; + unsigned int cq_extra; + long: 64; + long: 64; + long: 64; + }; + struct { + struct llist_head work_llist; + unsigned long check_cq; + atomic_t cq_wait_nr; + atomic_t cq_timeouts; + struct wait_queue_head cq_wait; + long: 64; + long: 64; + long: 64; + }; + struct { + spinlock_t timeout_lock; + struct list_head timeout_list; + struct list_head ltimeout_list; + unsigned int cq_last_tm_flush; + long: 64; + long: 64; + long: 64; + }; + struct io_uring_cqe completion_cqes[16]; + spinlock_t completion_lock; + unsigned int locked_free_nr; + struct io_wq_work_list locked_free_list; + struct list_head io_buffers_comp; + struct list_head cq_overflow_list; + struct io_hash_table cancel_table; + struct hlist_head waitid_list; + struct hlist_head futex_list; + struct io_alloc_cache futex_cache; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + unsigned int file_alloc_start; + unsigned int file_alloc_end; + struct list_head io_buffers_cache; + struct hlist_head io_buf_list; + struct wait_queue_head poll_wq; + struct io_restriction restrictions; + struct io_mapped_ubuf *dummy_ubuf; + struct io_rsrc_data *file_data; + struct io_rsrc_data *buf_data; + struct list_head rsrc_ref_list; + struct io_alloc_cache rsrc_node_cache; + struct wait_queue_head rsrc_quiesce_wq; + unsigned int rsrc_quiesce; + u32 pers_next; + struct xarray personalities; + struct io_wq_hash *hash_map; + struct user_struct *user; + struct mm_struct *mm_account; + struct llist_head fallback_llist; + struct delayed_work fallback_work; + struct work_struct exit_work; + struct list_head tctx_list; + struct completion ref_comp; + u32 iowq_limits[2]; + struct callback_head poll_wq_task_work; + struct list_head defer_list; + struct list_head napi_list; + spinlock_t napi_lock; + unsigned int napi_busy_poll_to; + bool napi_prefer_busy_poll; + bool napi_enabled; + struct hlist_head napi_ht[16]; + unsigned int evfd_last_cq_tail; + unsigned short n_ring_pages; + unsigned short n_sqe_pages; + struct page **ring_pages; + struct page **sqe_pages; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_uring { + u32 head; + u32 tail; +}; + +struct io_rings { + struct io_uring sq; + struct io_uring cq; + u32 sq_ring_mask; + u32 cq_ring_mask; + u32 sq_ring_entries; + u32 cq_ring_entries; + u32 sq_dropped; + atomic_t sq_flags; + u32 cq_flags; + u32 cq_overflow; + long: 64; + long: 64; + struct io_uring_cqe cqes[0]; +}; + +typedef int __kernel_rwf_t; + +struct io_uring_sqe { + __u8 opcode; + __u8 flags; + __u16 ioprio; + __s32 fd; + union { + __u64 off; + __u64 addr2; + struct { + __u32 cmd_op; + __u32 __pad1; + }; + }; + union { + __u64 addr; + __u64 splice_off_in; + struct { + __u32 level; + __u32 optname; + }; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; + __u32 waitid_flags; + __u32 futex_flags; + __u32 install_fd_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + __u32 optlen; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; + }; + union { + struct { + __u64 addr3; + __u64 __pad2[1]; + }; + __u64 optval; + __u8 cmd[0]; + }; +}; + +struct io_fixed_file { + unsigned long file_ptr; +}; + +struct io_cmd_data { + struct file *file; + __u8 data[56]; +}; + +typedef u64 io_req_flags_t; + +struct io_cqe { + __u64 user_data; + __s32 res; + union { + __u32 flags; + int fd; + }; +}; + +struct io_tw_state; + +typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); + +struct io_task_work { + struct llist_node node; + io_req_tw_func_t func; +}; + +struct io_wq_work { + struct io_wq_work_node list; + unsigned int flags; + int cancel_seq; +}; + +struct io_buffer; + +struct async_poll; + +struct io_kiocb { + union { + struct file *file; + struct io_cmd_data cmd; + }; + u8 opcode; + u8 iopoll_completed; + u16 buf_index; + unsigned int nr_tw; + io_req_flags_t flags; + struct io_cqe cqe; + struct io_ring_ctx *ctx; + struct task_struct *task; + union { + struct io_mapped_ubuf *imu; + struct io_buffer *kbuf; + struct io_buffer_list *buf_list; + }; + union { + struct io_wq_work_node comp_list; + __poll_t apoll_events; + }; + struct io_rsrc_node *rsrc_node; + atomic_t refs; + atomic_t poll_refs; + struct io_task_work io_task_work; + struct hlist_node hash_node; + struct async_poll *apoll; + void *async_data; + struct io_kiocb *link; + const struct cred *creds; + struct io_wq_work work; + struct { + u64 extra1; + u64 extra2; + } big_cqe; +}; + +struct io_tw_state { + bool locked; +}; + +struct io_hash_bucket { + spinlock_t lock; + struct hlist_head list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_ev_fd { + struct eventfd_ctx *cq_ev_fd; + unsigned int eventfd_async: 1; + struct callback_head rcu; + atomic_t refs; + atomic_t ops; +}; + +struct io_wq_hash { + refcount_t refs; + unsigned long map; + struct wait_queue_head wait; +}; + +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; +}; + +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; +}; + +struct io_link { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct acpi_interface_info { + char *name; + struct acpi_interface_info *next; + u8 flags; + u8 value; +}; + +typedef char *acpi_string; + +typedef u32 (*acpi_interface_handler)(acpi_string, u32); + +struct platform_device; + +struct platform_device_id; + +struct platform_driver { + int (*probe)(struct platform_device *); + int (*remove)(struct platform_device *); + void (*remove_new)(struct platform_device *); + void (*shutdown)(struct platform_device *); + int (*suspend)(struct platform_device *, pm_message_t); + int (*resume)(struct platform_device *); + struct device_driver driver; + const struct platform_device_id *id_table; + bool prevent_deferred_probe; + bool driver_managed_dma; +}; + +struct mfd_cell; + +struct pdev_archdata {}; + +struct platform_device { + const char *name; + int id; + bool id_auto; + struct device dev; + u64 platform_dma_mask; + struct device_dma_parameters dma_parms; + u32 num_resources; + struct resource *resource; + const struct platform_device_id *id_entry; + const char *driver_override; + struct mfd_cell *mfd_cell; + struct pdev_archdata archdata; +}; + +struct platform_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +struct clk_hw; + +struct clk_rate_request; + +struct clk_duty; + +struct clk_ops { + int (*prepare)(struct clk_hw *); + void (*unprepare)(struct clk_hw *); + int (*is_prepared)(struct clk_hw *); + void (*unprepare_unused)(struct clk_hw *); + int (*enable)(struct clk_hw *); + void (*disable)(struct clk_hw *); + int (*is_enabled)(struct clk_hw *); + void (*disable_unused)(struct clk_hw *); + int (*save_context)(struct clk_hw *); + void (*restore_context)(struct clk_hw *); + unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); + long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); + int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); + int (*set_parent)(struct clk_hw *, u8); + u8 (*get_parent)(struct clk_hw *); + int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); + int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); + unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); + int (*get_phase)(struct clk_hw *); + int (*set_phase)(struct clk_hw *, int); + int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*init)(struct clk_hw *); + void (*terminate)(struct clk_hw *); + void (*debug_init)(struct clk_hw *, struct dentry *); +}; + +struct clk_core; + +struct clk_init_data; + +struct clk_hw { + struct clk_core *core; + struct clk *clk; + const struct clk_init_data *init; +}; + +struct clk_parent_data; + +struct clk_init_data { + const char *name; + const struct clk_ops *ops; + const char * const *parent_names; + const struct clk_parent_data *parent_data; + const struct clk_hw **parent_hws; + u8 num_parents; + unsigned long flags; +}; + +struct clk_parent_data { + const struct clk_hw *hw; + const char *fw_name; + const char *name; + int index; +}; + +struct clk_rate_request { + struct clk_core *core; + unsigned long rate; + unsigned long min_rate; + unsigned long max_rate; + unsigned long best_parent_rate; + struct clk_hw *best_parent_hw; +}; + +struct clk_duty { + unsigned int num; + unsigned int den; +}; + +enum gpiod_flags { + GPIOD_ASIS = 0, + GPIOD_IN = 1, + GPIOD_OUT_LOW = 3, + GPIOD_OUT_HIGH = 7, + GPIOD_OUT_LOW_OPEN_DRAIN = 11, + GPIOD_OUT_HIGH_OPEN_DRAIN = 15, +}; + +struct clk_gpio { + struct clk_hw hw; + struct gpio_desc *gpiod; +}; + +struct driver_attribute { + struct attribute attr; + ssize_t (*show)(struct device_driver *, char *); + ssize_t (*store)(struct device_driver *, const char *, size_t); +}; + +struct bus_attribute { + struct attribute attr; + ssize_t (*show)(const struct bus_type *, char *); + ssize_t (*store)(const struct bus_type *, const char *, size_t); +}; + +struct subsys_interface { + const char *name; + const struct bus_type *subsys; + struct list_head node; + int (*add_dev)(struct device *, struct subsys_interface *); + void (*remove_dev)(struct device *, struct subsys_interface *); +}; + +struct subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + const struct bus_type *bus; + struct device *dev_root; + struct kset glue_dirs; + const struct class *class; + struct lock_class_key lock_key; +}; + +struct klist_iter { + struct klist *i_klist; + struct klist_node *i_cur; +}; + +struct subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; +}; + +struct iwl_priv; + +struct iwl_dvm_bt_params; + +struct iwl_dvm_cfg { + void (*set_hw_params)(struct iwl_priv *); + int (*set_channel_switch)(struct iwl_priv *, struct ieee80211_channel_switch *); + void (*nic_config)(struct iwl_priv *); + void (*temperature)(struct iwl_priv *); + const struct iwl_dvm_bt_params *bt_params; + s32 chain_noise_scale; + u8 plcp_delta_threshold; + bool adv_thermal_throttle; + bool support_ct_kill_exit; + bool hd_v2; + bool no_idle_support; + bool need_temp_offset_calib; + bool no_xtal_calib; + bool temp_offset_v2; + bool adv_pm; +}; + +struct statistics_dbg { + __le32 burst_check; + __le32 burst_count; + __le32 wait_for_silence_timeout_cnt; + __le32 reserved[3]; +}; + +struct statistics_div { + __le32 tx_on_a; + __le32 tx_on_b; + __le32 exec_time; + __le32 probe_time; + __le32 reserved1; + __le32 reserved2; +}; + +struct statistics_general_common { + __le32 temperature; + __le32 temperature_m; + struct statistics_dbg dbg; + __le32 sleep_time; + __le32 slots_out; + __le32 slots_idle; + __le32 ttl_timestamp; + struct statistics_div div; + __le32 rx_enable_counter; + __le32 num_of_sos_states; +}; + +struct statistics_rx_non_phy { + __le32 bogus_cts; + __le32 bogus_ack; + __le32 non_bssid_frames; + __le32 filtered_frames; + __le32 non_channel_beacons; + __le32 channel_beacons; + __le32 num_missed_bcon; + __le32 adc_rx_saturation_time; + __le32 ina_detection_search_time; + __le32 beacon_silence_rssi_a; + __le32 beacon_silence_rssi_b; + __le32 beacon_silence_rssi_c; + __le32 interference_data_flag; + __le32 channel_load; + __le32 dsp_false_alarms; + __le32 beacon_rssi_a; + __le32 beacon_rssi_b; + __le32 beacon_rssi_c; + __le32 beacon_energy_a; + __le32 beacon_energy_b; + __le32 beacon_energy_c; +}; + +struct statistics_rx_phy { + __le32 ina_cnt; + __le32 fina_cnt; + __le32 plcp_err; + __le32 crc32_err; + __le32 overrun_err; + __le32 early_overrun_err; + __le32 crc32_good; + __le32 false_alarm_cnt; + __le32 fina_sync_err_cnt; + __le32 sfd_timeout; + __le32 fina_timeout; + __le32 unresponded_rts; + __le32 rxe_frame_limit_overrun; + __le32 sent_ack_cnt; + __le32 sent_cts_cnt; + __le32 sent_ba_rsp_cnt; + __le32 dsp_self_kill; + __le32 mh_format_err; + __le32 re_acq_main_rssi_sum; + __le32 reserved3; +}; + +struct statistics_rx_ht_phy { + __le32 plcp_err; + __le32 overrun_err; + __le32 early_overrun_err; + __le32 crc32_good; + __le32 crc32_err; + __le32 mh_format_err; + __le32 agg_crc32_good; + __le32 agg_mpdu_cnt; + __le32 agg_cnt; + __le32 unsupport_mcs; +}; + +struct statistics_tx_non_phy_agg { + __le32 ba_timeout; + __le32 ba_reschedule_frames; + __le32 scd_query_agg_frame_cnt; + __le32 scd_query_no_agg; + __le32 scd_query_agg; + __le32 scd_query_mismatch; + __le32 frame_not_ready; + __le32 underrun; + __le32 bt_prio_kill; + __le32 rx_ba_rsp_cnt; +}; + +struct statistics_tx_power { + u8 ant_a; + u8 ant_b; + u8 ant_c; + u8 reserved; +}; + +struct statistics_tx { + __le32 preamble_cnt; + __le32 rx_detected_cnt; + __le32 bt_prio_defer_cnt; + __le32 bt_prio_kill_cnt; + __le32 few_bytes_cnt; + __le32 cts_timeout; + __le32 ack_timeout; + __le32 expected_ack_cnt; + __le32 actual_ack_cnt; + __le32 dump_msdu_cnt; + __le32 burst_abort_next_frame_mismatch_cnt; + __le32 burst_abort_missing_next_frame_cnt; + __le32 cts_timeout_collision; + __le32 ack_or_ba_timeout_collision; + struct statistics_tx_non_phy_agg agg; + struct statistics_tx_power tx_power; + __le32 reserved1; +}; + +struct iwl_sensitivity_ranges; + +struct iwl_hw_params { + u8 tx_chains_num; + u8 rx_chains_num; + bool use_rts_for_aggregation; + u32 ct_kill_threshold; + u32 ct_kill_exit_threshold; + const struct iwl_sensitivity_ranges *sens; +}; + +struct iwl_measurement_histogram { + __le32 ofdm[8]; + __le32 cck[8]; +}; + +struct iwl_spectrum_notification { + u8 id; + u8 token; + u8 channel_index; + u8 state; + __le32 start_time; + u8 band; + u8 channel; + u8 type; + u8 reserved1; + __le32 cca_ofdm; + __le32 cca_cck; + __le32 cca_time; + u8 basic_type; + u8 reserved2[3]; + struct iwl_measurement_histogram histogram; + __le32 stop_time; + __le32 status; +}; + +struct iwl_rf_reset { + int reset_request_count; + int reset_success_count; + int reset_reject_count; + unsigned long last_reset_jiffies; +}; + +enum iwl_scan_type { + IWL_SCAN_NORMAL = 0, + IWL_SCAN_RADIO_RESET = 1, +}; + +enum iwl_rxon_context_id { + IWL_RXON_CTX_BSS = 0, + IWL_RXON_CTX_PAN = 1, + NUM_IWL_RXON_CTX = 2, +}; + +struct iwl_rxon_cmd { + u8 node_addr[6]; + __le16 reserved1; + u8 bssid_addr[6]; + __le16 reserved2; + u8 wlap_bssid_addr[6]; + __le16 reserved3; + u8 dev_type; + u8 air_propagation; + __le16 rx_chain; + u8 ofdm_basic_rates; + u8 cck_basic_rates; + __le16 assoc_id; + __le32 flags; + __le32 filter_flags; + __le16 channel; + u8 ofdm_ht_single_stream_basic_rates; + u8 ofdm_ht_dual_stream_basic_rates; + u8 ofdm_ht_triple_stream_basic_rates; + u8 reserved5; + __le16 acquisition_data; + __le16 reserved6; +} __attribute__((packed)); + +struct iwl_rxon_time_cmd { + __le64 timestamp; + __le16 beacon_interval; + __le16 atim_window; + __le32 beacon_init_val; + __le16 listen_interval; + u8 dtim_period; + u8 delta_cp_bss_tbtts; +} __attribute__((packed)); + +struct iwl_ac_qos { + __le16 cw_min; + __le16 cw_max; + u8 aifsn; + u8 reserved1; + __le16 edca_txop; +}; + +struct iwl_qosparam_cmd { + __le32 qos_flags; + struct iwl_ac_qos ac[4]; +}; + +struct iwl_qos_info { + int qos_active; + struct iwl_qosparam_cmd def_qos_parm; +}; + +struct iwl_wep_key { + u8 key_index; + u8 key_offset; + u8 reserved1[2]; + u8 key_size; + u8 reserved2[3]; + u8 key[16]; +}; + +struct iwl_rxon_context { + struct ieee80211_vif *vif; + u8 mcast_queue; + u8 ac_to_queue[4]; + u8 ac_to_fifo[4]; + bool always_active; + bool is_active; + bool ht_need_multiple_chains; + enum iwl_rxon_context_id ctxid; + u32 interface_modes; + u32 exclusive_interface_modes; + u8 unused_devtype; + u8 ap_devtype; + u8 ibss_devtype; + u8 station_devtype; + const struct iwl_rxon_cmd active; + struct iwl_rxon_cmd staging; + struct iwl_rxon_time_cmd timing; + struct iwl_qos_info qos_data; + u8 bcast_sta_id; + u8 ap_sta_id; + u8 rxon_cmd; + u8 rxon_assoc_cmd; + u8 rxon_timing_cmd; + u8 qos_cmd; + u8 wep_key_cmd; + struct iwl_wep_key wep_keys[4]; + u8 key_mapping_keys; + __le32 station_flags; + int beacon_int; + struct { + bool non_gf_sta_present; + u8 protection; + bool enabled; + bool is_40mhz; + u8 extension_chan_offset; + } ht; +}; + +struct iwl_sensitivity_data { + u32 auto_corr_ofdm; + u32 auto_corr_ofdm_mrc; + u32 auto_corr_ofdm_x1; + u32 auto_corr_ofdm_mrc_x1; + u32 auto_corr_cck; + u32 auto_corr_cck_mrc; + u32 last_bad_plcp_cnt_ofdm; + u32 last_fa_cnt_ofdm; + u32 last_bad_plcp_cnt_cck; + u32 last_fa_cnt_cck; + u32 nrg_curr_state; + u32 nrg_prev_state; + u32 nrg_value[10]; + u8 nrg_silence_rssi[20]; + u32 nrg_silence_ref; + u32 nrg_energy_idx; + u32 nrg_silence_idx; + u32 nrg_th_cck; + s32 nrg_auto_corr_silence_diff; + u32 num_in_cck_no_fa; + u32 nrg_th_ofdm; + u16 barker_corr_th_min; + u16 barker_corr_th_min_mrc; + u16 nrg_th_cca; +}; + +struct iwl_chain_noise_data { + u32 active_chains; + u32 chain_noise_a; + u32 chain_noise_b; + u32 chain_noise_c; + u32 chain_signal_a; + u32 chain_signal_b; + u32 chain_signal_c; + u16 beacon_count; + u8 disconn_array[3]; + u8 delta_gain_code[3]; + u8 radio_write; + u8 state; +}; + +struct iwl_ht_config { + bool single_chain_sufficient; + enum ieee80211_smps_mode smps; +}; + +struct iwl_powertable_cmd { + __le16 flags; + u8 keep_alive_seconds; + u8 debug_flags; + __le32 rx_data_timeout; + __le32 tx_data_timeout; + __le32 sleep_interval[5]; + __le32 keep_alive_beacons; +}; + +struct iwl_power_mgr { + struct iwl_powertable_cmd sleep_cmd; + struct iwl_powertable_cmd sleep_cmd_next; + int debug_sleep_level_override; + bool bus_pm; +}; + +enum iwl_tt_state { + IWL_TI_0 = 0, + IWL_TI_1 = 1, + IWL_TI_2 = 2, + IWL_TI_CT_KILL = 3, + IWL_TI_STATE_MAX = 4, +}; + +struct iwl_tt_restriction; + +struct iwl_tt_trans; + +struct iwl_tt_mgmt { + enum iwl_tt_state state; + bool advanced_tt; + u8 tt_power_mode; + bool ct_kill_toggle; + struct iwl_tt_restriction *restriction; + struct iwl_tt_trans *transaction; + struct timer_list ct_kill_exit_tm; + struct timer_list ct_kill_waiting_tm; +}; + +struct sta_id_modify { + u8 addr[6]; + __le16 reserved1; + u8 sta_id; + u8 modify_mask; + __le16 reserved2; +}; + +struct iwl_keyinfo { + __le16 key_flags; + u8 tkip_rx_tsc_byte2; + u8 reserved1; + __le16 tkip_rx_ttak[5]; + u8 key_offset; + u8 reserved2; + u8 key[16]; + __le64 tx_secur_seq_cnt; + __le64 hw_tkip_mic_rx_key; + __le64 hw_tkip_mic_tx_key; +}; + +struct iwl_addsta_cmd { + u8 mode; + u8 reserved[3]; + struct sta_id_modify sta; + struct iwl_keyinfo key; + __le32 station_flags; + __le32 station_flags_msk; + __le16 tid_disable_tx; + __le16 legacy_reserved; + u8 add_immediate_ba_tid; + u8 remove_immediate_ba_tid; + __le16 add_immediate_ba_ssn; + __le16 sleep_tx_count; + __le16 reserved2; +} __attribute__((packed)); + +struct iwl_link_quality_cmd; + +struct iwl_station_entry { + struct iwl_addsta_cmd sta; + u8 used; + u8 ctxid; + struct iwl_link_quality_cmd *lq; +}; + +enum iwl_agg_state { + IWL_AGG_OFF___2 = 0, + IWL_AGG_STARTING___2 = 1, + IWL_AGG_ON___2 = 2, + IWL_EMPTYING_HW_QUEUE_ADDBA___2 = 3, + IWL_EMPTYING_HW_QUEUE_DELBA___2 = 4, +}; + +struct iwl_ht_agg { + u32 rate_n_flags; + enum iwl_agg_state state; + u16 txq_id; + u16 ssn; + bool wait_for_ba; +}; + +struct iwl_tid_data { + u16 seq_number; + u16 next_reclaimed; + struct iwl_ht_agg agg; +}; + +struct iwl_rx_phy_res { + u8 non_cfg_phy_cnt; + u8 cfg_phy_cnt; + u8 stat_id; + u8 reserved1; + __le64 timestamp; + __le32 beacon_time_stamp; + __le16 phy_flags; + __le16 channel; + u8 non_cfg_phy_buf[32]; + __le32 rate_n_flags; + __le16 byte_count; + __le16 frame_time; +} __attribute__((packed)); + +struct reply_tx_error_statistics { + u32 pp_delay; + u32 pp_few_bytes; + u32 pp_bt_prio; + u32 pp_quiet_period; + u32 pp_calc_ttak; + u32 int_crossed_retry; + u32 short_limit; + u32 long_limit; + u32 fifo_underrun; + u32 drain_flow; + u32 rfkill_flush; + u32 life_expire; + u32 dest_ps; + u32 host_abort; + u32 bt_retry; + u32 sta_invalid; + u32 frag_drop; + u32 tid_disable; + u32 fifo_flush; + u32 insuff_cf_poll; + u32 fail_hw_drop; + u32 sta_color_mismatch; + u32 unknown; +}; + +struct reply_agg_tx_error_statistics { + u32 underrun; + u32 bt_prio; + u32 few_bytes; + u32 abort; + u32 last_sent_ttl; + u32 last_sent_try; + u32 last_sent_bt_kill; + u32 scd_query; + u32 bad_crc32; + u32 response; + u32 dump_tx; + u32 delay_tx; + u32 unknown; +}; + +struct iwl_event_log { + bool ucode_trace; + u32 num_wraps; + u32 next_entry; + int non_wraps_count; + int wraps_once_count; + int wraps_more_count; +}; + +struct iwl_wipan_noa_data; + +struct iwl_priv { + struct iwl_trans *trans; + struct device *dev; + const struct iwl_cfg *cfg; + const struct iwl_fw *fw; + const struct iwl_dvm_cfg *lib; + unsigned long status; + spinlock_t sta_lock; + struct mutex mutex; + unsigned long transport_queue_stop; + bool passive_no_rx; + u8 queue_to_mac80211[32]; + atomic_t queue_stop_count[32]; + unsigned long agg_q_alloc[1]; + struct ieee80211_hw *hw; + struct napi_struct *napi; + struct list_head calib_results; + struct workqueue_struct *workqueue; + struct iwl_hw_params hw_params; + enum nl80211_band band; + u8 valid_contexts; + void (*rx_handlers[255])(struct iwl_priv *, struct iwl_rx_cmd_buffer *); + struct iwl_notif_wait_data notif_wait; + struct iwl_spectrum_notification measure_report; + u8 measurement_status; + u32 ucode_beacon_time; + int missed_beacon_threshold; + u32 ibss_manager; + unsigned long rx_statistics_jiffies; + u32 rx_handlers_stats[255]; + struct iwl_rf_reset rf_reset; + unsigned long reload_jiffies; + int reload_count; + bool ucode_loaded; + u8 plcp_delta_threshold; + s32 temperature; + s32 last_temperature; + struct iwl_wipan_noa_data __attribute__((btf_type_tag("rcu"))) *noa_data; + unsigned long scan_start; + unsigned long scan_start_tsf; + size_t scan_cmd_size; + void *scan_cmd; + enum nl80211_band scan_band; + struct cfg80211_scan_request *scan_request; + struct ieee80211_vif *scan_vif; + enum iwl_scan_type scan_type; + u8 scan_tx_ant[6]; + u8 mgmt_tx_ant; + u8 sta_key_max_num; + bool new_scan_threshold_behaviour; + bool wowlan; + struct mac_address addresses[2]; + struct iwl_rxon_context contexts[2]; + __le16 switch_channel; + u8 start_calib; + struct iwl_sensitivity_data sensitivity_data; + struct iwl_chain_noise_data chain_noise_data; + __le16 sensitivity_tbl[11]; + __le16 enhance_sensitivity_tbl[12]; + struct iwl_ht_config current_ht_config; + u8 retry_rate; + int activity_timer_active; + struct iwl_power_mgr power_data; + struct iwl_tt_mgmt thermal_throttle; + int num_stations; + struct iwl_station_entry stations[16]; + unsigned long ucode_key_table; + struct iwl_tid_data tid_data[128]; + atomic_t num_aux_in_flight; + u8 mac80211_registered; + u8 is_open; + enum nl80211_iftype iw_mode; + u64 timestamp; + struct { + __le32 flag; + struct statistics_general_common common; + struct statistics_rx_non_phy rx_non_phy; + struct statistics_rx_phy rx_ofdm; + struct statistics_rx_ht_phy rx_ofdm_ht; + struct statistics_rx_phy rx_cck; + struct statistics_tx tx; + spinlock_t lock; + } statistics; + u8 agg_tids_count; + struct iwl_rx_phy_res last_phy_res; + u32 ampdu_ref; + bool last_phy_res_valid; + u8 phy_calib_chain_noise_reset_cmd; + u8 phy_calib_chain_noise_gain_cmd; + struct reply_tx_error_statistics reply_tx_stats; + struct reply_agg_tx_error_statistics reply_agg_tx_stats; + u8 bt_enable_flag; + u8 bt_status; + u8 bt_traffic_load; + u8 last_bt_traffic_load; + bool bt_ch_announce; + bool bt_full_concurrent; + __le32 kill_ack_mask; + __le32 kill_cts_mask; + __le16 bt_valid; + bool reduced_txpower; + u16 bt_on_thresh; + u16 bt_duration; + u16 dynamic_frag_thresh; + u8 bt_ci_compliance; + struct work_struct bt_traffic_change_work; + bool bt_enable_pspoll; + struct iwl_rxon_context *cur_rssi_ctx; + bool bt_is_sco; + struct work_struct restart; + struct work_struct scan_completed; + struct work_struct abort_scan; + struct work_struct beacon_update; + struct iwl_rxon_context *beacon_ctx; + struct sk_buff *beacon_skb; + void *beacon_cmd; + struct work_struct tt_work; + struct work_struct ct_enter; + struct work_struct ct_exit; + struct work_struct start_internal_scan; + struct work_struct tx_flush; + struct work_struct bt_full_concurrency; + struct work_struct bt_runtime_config; + struct delayed_work scan_check; + s8 tx_power_user_lmt; + s8 tx_power_next; + struct iwl_nvm_data *nvm_data; + u8 *eeprom_blob; + size_t eeprom_blob_size; + struct work_struct txpower_work; + u32 calib_disabled; + struct work_struct run_time_calib_work; + struct timer_list statistics_periodic; + struct timer_list ucode_trace; + struct iwl_event_log event_log; + u8 kck[16]; + u8 kek[16]; + __le64 replay_ctr; + __le16 last_seq_ctl; + bool have_rekey_data; + struct wiphy_wowlan_support wowlan_support; + struct { + u32 error_event_table; + u32 log_event_table; + } device_pointers; + enum iwl_ucode_type cur_ucode; +}; + +struct iwl_sensitivity_ranges { + u16 min_nrg_cck; + u16 nrg_th_cck; + u16 nrg_th_ofdm; + u16 auto_corr_min_ofdm; + u16 auto_corr_min_ofdm_mrc; + u16 auto_corr_min_ofdm_x1; + u16 auto_corr_min_ofdm_mrc_x1; + u16 auto_corr_max_ofdm; + u16 auto_corr_max_ofdm_mrc; + u16 auto_corr_max_ofdm_x1; + u16 auto_corr_max_ofdm_mrc_x1; + u16 auto_corr_max_cck; + u16 auto_corr_max_cck_mrc; + u16 auto_corr_min_cck; + u16 auto_corr_min_cck_mrc; + u16 barker_corr_th_min; + u16 barker_corr_th_min_mrc; + u16 nrg_th_cca; +}; + +struct iwl_wipan_noa_data { + struct callback_head callback_head; + u32 length; + u8 data[0]; +}; + +enum iwl_antenna_ok { + IWL_ANT_OK_NONE = 0, + IWL_ANT_OK_SINGLE = 1, + IWL_ANT_OK_MULTI = 2, +}; + +struct iwl_tt_restriction { + enum iwl_antenna_ok tx_stream; + enum iwl_antenna_ok rx_stream; + bool is_ht; +}; + +struct iwl_tt_trans { + enum iwl_tt_state next_state; + u32 tt_low; + u32 tt_high; +}; + +struct iwl_link_qual_general_params { + u8 flags; + u8 mimo_delimiter; + u8 single_stream_ant_msk; + u8 dual_stream_ant_msk; + u8 start_rate_index[4]; +}; + +struct iwl_link_qual_agg_params { + __le16 agg_time_limit; + u8 agg_dis_start_th; + u8 agg_frame_cnt_limit; + __le32 reserved; +}; + +struct iwl_link_quality_cmd { + u8 sta_id; + u8 reserved1; + __le16 control; + struct iwl_link_qual_general_params general_params; + struct iwl_link_qual_agg_params agg_params; + struct { + __le32 rate_n_flags; + } rs_table[16]; + __le32 reserved2; +}; + +struct iwl_dvm_bt_params { + bool advanced_bt_coexist; + u8 bt_init_traffic_load; + u32 bt_prio_boost; + u16 agg_time_limit; + bool bt_sco_disable; + bool bt_session_2; +}; + +enum { + REPLY_ALIVE = 1, + REPLY_ERROR___2 = 2, + REPLY_ECHO = 3, + REPLY_RXON = 16, + REPLY_RXON_ASSOC = 17, + REPLY_QOS_PARAM = 19, + REPLY_RXON_TIMING = 20, + REPLY_ADD_STA = 24, + REPLY_REMOVE_STA = 25, + REPLY_REMOVE_ALL_STA = 26, + REPLY_TXFIFO_FLUSH = 30, + REPLY_WEPKEY = 32, + REPLY_TX = 28, + REPLY_LEDS_CMD = 72, + REPLY_TX_LINK_QUALITY_CMD = 78, + COEX_PRIORITY_TABLE_CMD = 90, + COEX_MEDIUM_NOTIFICATION = 91, + COEX_EVENT_CMD = 92, + TEMPERATURE_NOTIFICATION = 98, + CALIBRATION_CFG_CMD = 101, + CALIBRATION_RES_NOTIFICATION = 102, + CALIBRATION_COMPLETE_NOTIFICATION = 103, + REPLY_QUIET_CMD = 113, + REPLY_CHANNEL_SWITCH = 114, + CHANNEL_SWITCH_NOTIFICATION = 115, + REPLY_SPECTRUM_MEASUREMENT_CMD = 116, + SPECTRUM_MEASURE_NOTIFICATION = 117, + POWER_TABLE_CMD___2 = 119, + PM_SLEEP_NOTIFICATION = 122, + PM_DEBUG_STATISTIC_NOTIFIC = 123, + REPLY_SCAN_CMD = 128, + REPLY_SCAN_ABORT_CMD = 129, + SCAN_START_NOTIFICATION = 130, + SCAN_RESULTS_NOTIFICATION = 131, + SCAN_COMPLETE_NOTIFICATION = 132, + BEACON_NOTIFICATION___2 = 144, + REPLY_TX_BEACON = 145, + WHO_IS_AWAKE_NOTIFICATION = 148, + REPLY_TX_POWER_DBM_CMD = 149, + QUIET_NOTIFICATION = 150, + REPLY_TX_PWR_TABLE_CMD = 151, + REPLY_TX_POWER_DBM_CMD_V1 = 152, + TX_ANT_CONFIGURATION_CMD___2 = 152, + MEASURE_ABORT_NOTIFICATION = 153, + REPLY_BT_CONFIG = 155, + REPLY_STATISTICS_CMD = 156, + STATISTICS_NOTIFICATION___2 = 157, + REPLY_CARD_STATE_CMD = 160, + CARD_STATE_NOTIFICATION = 161, + MISSED_BEACONS_NOTIFICATION___2 = 162, + REPLY_CT_KILL_CONFIG_CMD = 164, + SENSITIVITY_CMD = 168, + REPLY_PHY_CALIBRATION_CMD = 176, + REPLY_RX_PHY_CMD___2 = 192, + REPLY_RX_MPDU_CMD___2 = 193, + REPLY_RX = 195, + REPLY_COMPRESSED_BA = 197, + REPLY_BT_COEX_PRIO_TABLE = 204, + REPLY_BT_COEX_PROT_ENV = 205, + REPLY_BT_COEX_PROFILE_NOTIF = 206, + REPLY_WIPAN_PARAMS = 178, + REPLY_WIPAN_RXON = 179, + REPLY_WIPAN_RXON_TIMING = 180, + REPLY_WIPAN_RXON_ASSOC = 182, + REPLY_WIPAN_QOS_PARAM = 183, + REPLY_WIPAN_WEPKEY = 184, + REPLY_WIPAN_P2P_CHANNEL_SWITCH = 185, + REPLY_WIPAN_NOA_NOTIFICATION = 188, + REPLY_WIPAN_DEACTIVATION_COMPLETE = 189, + REPLY_WOWLAN_PATTERNS = 224, + REPLY_WOWLAN_WAKEUP_FILTER = 225, + REPLY_WOWLAN_TSC_RSC_PARAMS = 226, + REPLY_WOWLAN_TKIP_PARAMS = 227, + REPLY_WOWLAN_KEK_KCK_MATERIAL = 228, + REPLY_WOWLAN_GET_STATUS = 229, + REPLY_D3_CONFIG = 211, + REPLY_MAX = 255, +}; + +struct iwl5000_channel_switch_cmd { + u8 band; + u8 expect_beacon; + __le16 channel; + __le32 rxon_flags; + __le32 rxon_filter_flags; + __le32 switch_time; + __le32 reserved[52]; +}; + +struct iwl6000_channel_switch_cmd { + u8 band; + u8 expect_beacon; + __le16 channel; + __le32 rxon_flags; + __le32 rxon_filter_flags; + __le32 switch_time; + __le32 reserved[78]; +}; + +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, +}; + +enum usb_phy_events { + USB_EVENT_NONE = 0, + USB_EVENT_VBUS = 1, + USB_EVENT_ID = 2, + USB_EVENT_CHARGER = 3, + USB_EVENT_ENUMERATED = 4, +}; + +enum phy_mode { + PHY_MODE_INVALID = 0, + PHY_MODE_USB_HOST = 1, + PHY_MODE_USB_HOST_LS = 2, + PHY_MODE_USB_HOST_FS = 3, + PHY_MODE_USB_HOST_HS = 4, + PHY_MODE_USB_HOST_SS = 5, + PHY_MODE_USB_DEVICE = 6, + PHY_MODE_USB_DEVICE_LS = 7, + PHY_MODE_USB_DEVICE_FS = 8, + PHY_MODE_USB_DEVICE_HS = 9, + PHY_MODE_USB_DEVICE_SS = 10, + PHY_MODE_USB_OTG = 11, + PHY_MODE_UFS_HS_A = 12, + PHY_MODE_UFS_HS_B = 13, + PHY_MODE_PCIE = 14, + PHY_MODE_ETHERNET = 15, + PHY_MODE_MIPI_DPHY = 16, + PHY_MODE_SATA = 17, + PHY_MODE_LVDS = 18, + PHY_MODE_DP = 19, +}; + +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, +}; + +enum usb_otg_state { + OTG_STATE_UNDEFINED = 0, + OTG_STATE_B_IDLE = 1, + OTG_STATE_B_SRP_INIT = 2, + OTG_STATE_B_PERIPHERAL = 3, + OTG_STATE_B_WAIT_ACON = 4, + OTG_STATE_B_HOST = 5, + OTG_STATE_A_IDLE = 6, + OTG_STATE_A_WAIT_VRISE = 7, + OTG_STATE_A_WAIT_BCON = 8, + OTG_STATE_A_HOST = 9, + OTG_STATE_A_SUSPEND = 10, + OTG_STATE_A_PERIPHERAL = 11, + OTG_STATE_A_WAIT_VFALL = 12, + OTG_STATE_A_VBUS_ERR = 13, +}; + +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, +}; + +enum usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, +}; + +enum usb_port_connect_type { + USB_PORT_CONNECT_TYPE_UNKNOWN = 0, + USB_PORT_CONNECT_TYPE_HOT_PLUG = 1, + USB_PORT_CONNECT_TYPE_HARD_WIRED = 2, + USB_PORT_NOT_USED = 3, +}; + +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; +}; + +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); +}; + +struct extcon_dev; + +struct usb_charger_current { + unsigned int sdp_min; + unsigned int sdp_max; + unsigned int dcp_min; + unsigned int dcp_max; + unsigned int cdp_min; + unsigned int cdp_max; + unsigned int aca_min; + unsigned int aca_max; +}; + +struct atomic_notifier_head { + spinlock_t lock; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +}; + +struct usb_otg; + +struct usb_phy_io_ops; + +struct usb_phy { + struct device *dev; + const char *label; + unsigned int flags; + enum usb_phy_type type; + enum usb_phy_events last_event; + struct usb_otg *otg; + struct device *io_dev; + struct usb_phy_io_ops *io_ops; + void *io_priv; + struct extcon_dev *edev; + struct extcon_dev *id_edev; + struct notifier_block vbus_nb; + struct notifier_block id_nb; + struct notifier_block type_nb; + enum usb_charger_type chg_type; + enum usb_charger_state chg_state; + struct usb_charger_current chg_cur; + struct work_struct chg_work; + struct atomic_notifier_head notifier; + u16 port_status; + u16 port_change; + struct list_head head; + int (*init)(struct usb_phy *); + void (*shutdown)(struct usb_phy *); + int (*set_vbus)(struct usb_phy *, int); + int (*set_power)(struct usb_phy *, unsigned int); + int (*set_suspend)(struct usb_phy *, int); + int (*set_wakeup)(struct usb_phy *, bool); + int (*notify_connect)(struct usb_phy *, enum usb_device_speed); + int (*notify_disconnect)(struct usb_phy *, enum usb_device_speed); + enum usb_charger_type (*charger_detect)(struct usb_phy *); +}; + +struct usb_gadget; + +struct phy; + +struct usb_otg { + u8 default_a; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_bus *host; + struct usb_gadget *gadget; + enum usb_otg_state state; + int (*set_host)(struct usb_otg *, struct usb_bus *); + int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); + int (*set_vbus)(struct usb_otg *, bool); + int (*start_srp)(struct usb_otg *); + int (*start_hnp)(struct usb_otg *); +}; + +struct phy_attrs { + u32 bus_width; + u32 max_link_rate; + enum phy_mode mode; +}; + +struct regulator; + +struct phy_ops; + +struct phy { + struct device dev; + int id; + const struct phy_ops *ops; + struct mutex mutex; + int init_count; + int power_count; + struct phy_attrs attrs; + struct regulator *pwr; + struct dentry *debugfs; +}; + +union phy_configure_opts; + +struct phy_ops { + int (*init)(struct phy *); + int (*exit)(struct phy *); + int (*power_on)(struct phy *); + int (*power_off)(struct phy *); + int (*set_mode)(struct phy *, enum phy_mode, int); + int (*set_media)(struct phy *, enum phy_media); + int (*set_speed)(struct phy *, int); + int (*configure)(struct phy *, union phy_configure_opts *); + int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *); + int (*reset)(struct phy *); + int (*calibrate)(struct phy *); + int (*connect)(struct phy *, int); + int (*disconnect)(struct phy *, int); + void (*release)(struct phy *); + struct module *owner; +}; + +struct phy_configure_opts_mipi_dphy { + unsigned int clk_miss; + unsigned int clk_post; + unsigned int clk_pre; + unsigned int clk_prepare; + unsigned int clk_settle; + unsigned int clk_term_en; + unsigned int clk_trail; + unsigned int clk_zero; + unsigned int d_term_en; + unsigned int eot; + unsigned int hs_exit; + unsigned int hs_prepare; + unsigned int hs_settle; + unsigned int hs_skip; + unsigned int hs_trail; + unsigned int hs_zero; + unsigned int init; + unsigned int lpx; + unsigned int ta_get; + unsigned int ta_go; + unsigned int ta_sure; + unsigned int wakeup; + unsigned long hs_clk_rate; + unsigned long lp_clk_rate; + unsigned char lanes; +}; + +struct phy_configure_opts_dp { + unsigned int link_rate; + unsigned int lanes; + unsigned int voltage[4]; + unsigned int pre[4]; + u8 ssc: 1; + u8 set_rate: 1; + u8 set_lanes: 1; + u8 set_voltages: 1; +}; + +struct phy_configure_opts_lvds { + unsigned int bits_per_lane_and_dclk_cycle; + unsigned long differential_clk_rate; + unsigned int lanes; + bool is_slave; +}; + +union phy_configure_opts { + struct phy_configure_opts_mipi_dphy mipi_dphy; + struct phy_configure_opts_dp dp; + struct phy_configure_opts_lvds lvds; +}; + +struct usb_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); +}; + +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; +}; + +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; +}; + +struct usb_hub_descriptor; + +struct usb_port; + +struct usb_hub { + struct device *intfdev; + struct usb_device *hdev; + struct kref kref; + struct urb *urb; + u8 (*buffer)[8]; + union { + struct usb_hub_status hub; + struct usb_port_status port; + } *status; + struct mutex status_mutex; + int error; + int nerrors; + unsigned long event_bits[1]; + unsigned long change_bits[1]; + unsigned long removed_bits[1]; + unsigned long wakeup_bits[1]; + unsigned long power_bits[1]; + unsigned long child_usage_bits[1]; + unsigned long warm_reset_bits[1]; + struct usb_hub_descriptor *descriptor; + struct usb_tt tt; + unsigned int mA_per_port; + unsigned int wakeup_enabled_descendants; + unsigned int limited_power: 1; + unsigned int quiescing: 1; + unsigned int disconnected: 1; + unsigned int in_reset: 1; + unsigned int quirk_disable_autosuspend: 1; + unsigned int quirk_check_port_auto_suspend: 1; + unsigned int has_indicators: 1; + u8 indicator[31]; + struct delayed_work leds; + struct delayed_work init_work; + struct work_struct events; + spinlock_t irq_urb_lock; + struct timer_list irq_urb_retry; + struct usb_port **ports; + struct list_head onboard_hub_devs; +}; + +struct usb_hub_descriptor { + __u8 bDescLength; + __u8 bDescriptorType; + __u8 bNbrPorts; + __le16 wHubCharacteristics; + __u8 bPwrOn2PwrGood; + __u8 bHubContrCurrent; + union { + struct { + __u8 DeviceRemovable[4]; + __u8 PortPwrCtrlMask[4]; + } hs; + struct { + __u8 bHubHdrDecLat; + __le16 wHubDelay; + __le16 DeviceRemovable; + } __attribute__((packed)) ss; + } u; +} __attribute__((packed)); + +typedef u32 usb_port_location_t; + +struct usb_dev_state; + +struct typec_connector; + +struct usb_port { + struct usb_device *child; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct typec_connector *connector; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + enum usb_device_state state; + struct kernfs_node *state_kn; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int early_stop: 1; + unsigned int ignore_event: 1; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; +}; + +struct typec_connector { + void (*attach)(struct typec_connector *, struct device *); + void (*deattach)(struct typec_connector *, struct device *); +}; + +struct usb_device_id; + +struct usb_device_driver { + const char *name; + bool (*match)(struct usb_device *); + int (*probe)(struct usb_device *); + void (*disconnect)(struct usb_device *); + int (*suspend)(struct usb_device *, pm_message_t); + int (*resume)(struct usb_device *, pm_message_t); + int (*choose_configuration)(struct usb_device *); + const struct attribute_group **dev_groups; + struct device_driver driver; + const struct usb_device_id *id_table; + unsigned int supports_autosuspend: 1; + unsigned int generic_subclass: 1; +}; + +struct usb_device_id { + __u16 match_flags; + __u16 idVendor; + __u16 idProduct; + __u16 bcdDevice_lo; + __u16 bcdDevice_hi; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 bInterfaceNumber; + kernel_ulong_t driver_info; +}; + +struct usb_dynids { + spinlock_t lock; + struct list_head list; +}; + +struct usb_driver { + const char *name; + int (*probe)(struct usb_interface *, const struct usb_device_id *); + void (*disconnect)(struct usb_interface *); + int (*unlocked_ioctl)(struct usb_interface *, unsigned int, void *); + int (*suspend)(struct usb_interface *, pm_message_t); + int (*resume)(struct usb_interface *); + int (*reset_resume)(struct usb_interface *); + int (*pre_reset)(struct usb_interface *); + int (*post_reset)(struct usb_interface *); + const struct usb_device_id *id_table; + const struct attribute_group **dev_groups; + struct usb_dynids dynids; + struct device_driver driver; + unsigned int no_dynamic_id: 1; + unsigned int supports_autosuspend: 1; + unsigned int disable_hub_initiated_lpm: 1; + unsigned int soft_unbind: 1; +}; + +struct find_interface_arg { + int minor; + struct device_driver *drv; +}; + +enum i2c_alert_protocol { + I2C_PROTOCOL_SMBUS_ALERT = 0, + I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, +}; + +enum i2c_driver_flags { + I2C_DRV_ACPI_WAIVE_D0_PROBE = 1, +}; + +enum acpi_reconfig_event { + ACPI_RECONFIG_DEVICE_ADD = 0, + ACPI_RECONFIG_DEVICE_REMOVE = 1, +}; + +struct i2c_client; + +struct i2c_device_id; + +struct i2c_board_info; + +struct i2c_driver { + unsigned int class; + int (*probe)(struct i2c_client *); + void (*remove)(struct i2c_client *); + void (*shutdown)(struct i2c_client *); + void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); + int (*command)(struct i2c_client *, unsigned int, void *); + struct device_driver driver; + const struct i2c_device_id *id_table; + int (*detect)(struct i2c_client *, struct i2c_board_info *); + const unsigned short *address_list; + struct list_head clients; + u32 flags; +}; + +struct i2c_adapter; + +struct i2c_client { + unsigned short flags; + unsigned short addr; + char name[20]; + struct i2c_adapter *adapter; + struct device dev; + int init_irq; + int irq; + struct list_head detected; + void *devres_group_id; +}; + +struct rt_mutex_base { + raw_spinlock_t wait_lock; + struct rb_root_cached waiters; + struct task_struct *owner; +}; + +struct rt_mutex { + struct rt_mutex_base rtmutex; + struct lockdep_map dep_map; +}; + +struct i2c_algorithm; + +struct i2c_lock_operations; + +struct i2c_bus_recovery_info; + +struct i2c_adapter_quirks; + +struct i2c_adapter { + struct module *owner; + unsigned int class; + const struct i2c_algorithm *algo; + void *algo_data; + const struct i2c_lock_operations *lock_ops; + struct rt_mutex bus_lock; + struct rt_mutex mux_lock; + int timeout; + int retries; + struct device dev; + unsigned long locked_flags; + int nr; + char name[48]; + struct completion dev_released; + struct mutex userspace_clients_lock; + struct list_head userspace_clients; + struct i2c_bus_recovery_info *bus_recovery_info; + const struct i2c_adapter_quirks *quirks; + struct irq_domain *host_notify_domain; + struct regulator *bus_regulator; + struct dentry *debugfs; +}; + +struct i2c_msg; + +union i2c_smbus_data; + +struct i2c_algorithm { + int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int); + int (*master_xfer_atomic)(struct i2c_adapter *, struct i2c_msg *, int); + int (*smbus_xfer)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *); + int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *); + u32 (*functionality)(struct i2c_adapter *); +}; + +struct i2c_msg { + __u16 addr; + __u16 flags; + __u16 len; + __u8 *buf; +}; + +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[34]; +}; + +struct i2c_lock_operations { + void (*lock_bus)(struct i2c_adapter *, unsigned int); + int (*trylock_bus)(struct i2c_adapter *, unsigned int); + void (*unlock_bus)(struct i2c_adapter *, unsigned int); +}; + +struct pinctrl; + +struct pinctrl_state; + +struct i2c_bus_recovery_info { + int (*recover_bus)(struct i2c_adapter *); + int (*get_scl)(struct i2c_adapter *); + void (*set_scl)(struct i2c_adapter *, int); + int (*get_sda)(struct i2c_adapter *); + void (*set_sda)(struct i2c_adapter *, int); + int (*get_bus_free)(struct i2c_adapter *); + void (*prepare_recovery)(struct i2c_adapter *); + void (*unprepare_recovery)(struct i2c_adapter *); + struct gpio_desc *scl_gpiod; + struct gpio_desc *sda_gpiod; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_gpio; +}; + +struct i2c_adapter_quirks { + u64 flags; + int max_num_msgs; + u16 max_write_len; + u16 max_read_len; + u16 max_comb_1st_msg_len; + u16 max_comb_2nd_msg_len; +}; + +struct i2c_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +struct i2c_board_info { + char type[20]; + unsigned short flags; + unsigned short addr; + const char *dev_name; + void *platform_data; + struct device_node *of_node; + struct fwnode_handle *fwnode; + const struct software_node *swnode; + const struct resource *resources; + unsigned int num_resources; + int irq; +}; + +typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); + +struct i2c_acpi_irq_context { + int irq; + bool wake_capable; +}; + +struct i2c_acpi_lookup { + struct i2c_board_info *info; + acpi_handle adapter_handle; + acpi_handle device_handle; + acpi_handle search_handle; + int n; + int index; + u32 speed; + u32 min_speed; + u32 force_speed; +}; + +enum reboot_mode { + REBOOT_UNDEFINED = -1, + REBOOT_COLD = 0, + REBOOT_WARM = 1, + REBOOT_HARD = 2, + REBOOT_SOFT = 3, + REBOOT_GPIO = 4, +}; + +enum sys_off_mode { + SYS_OFF_MODE_POWER_OFF_PREPARE = 0, + SYS_OFF_MODE_POWER_OFF = 1, + SYS_OFF_MODE_RESTART_PREPARE = 2, + SYS_OFF_MODE_RESTART = 3, +}; + +struct sys_off_data { + int mode; + void *cb_data; + const char *cmd; + struct device *dev; +}; + +struct net_test { + char name[32]; + int (*fn)(struct net_device *); +}; + +enum ethtool_test_flags { + ETH_TEST_FL_OFFLINE = 1, + ETH_TEST_FL_FAILED = 2, + ETH_TEST_FL_EXTERNAL_LB = 4, + ETH_TEST_FL_EXTERNAL_LB_DONE = 8, +}; + +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; +} __attribute__((packed)); + +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; +}; + +struct net_packet_attrs { + const unsigned char *src; + const unsigned char *dst; + u32 ip_src; + u32 ip_dst; + bool tcp; + u16 sport; + u16 dport; + int timeout; + int size; + int max_size; + u8 id; + u16 queue_mapping; +}; + +struct packet_type { + __be16 type; + bool ignore_outgoing; + struct net_device *dev; + netdevice_tracker dev_tracker; + int (*func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *); + void (*list_func)(struct list_head *, struct packet_type *, struct net_device *); + bool (*id_match)(struct packet_type *, struct sock *); + struct net *af_packet_net; + void *af_packet_priv; + struct list_head list; +}; + +struct net_test_priv { + struct net_packet_attrs *packet; + struct packet_type pt; + struct completion comp; + int double_vlan; + int vlan_id; + int ok; +}; + +enum sctp_conntrack { + SCTP_CONNTRACK_NONE = 0, + SCTP_CONNTRACK_CLOSED = 1, + SCTP_CONNTRACK_COOKIE_WAIT = 2, + SCTP_CONNTRACK_COOKIE_ECHOED = 3, + SCTP_CONNTRACK_ESTABLISHED = 4, + SCTP_CONNTRACK_SHUTDOWN_SENT = 5, + SCTP_CONNTRACK_SHUTDOWN_RECD = 6, + SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7, + SCTP_CONNTRACK_HEARTBEAT_SENT = 8, + SCTP_CONNTRACK_HEARTBEAT_ACKED = 9, + SCTP_CONNTRACK_MAX = 10, +}; + +enum ip_conntrack_info { + IP_CT_ESTABLISHED = 0, + IP_CT_RELATED = 1, + IP_CT_NEW = 2, + IP_CT_IS_REPLY = 3, + IP_CT_ESTABLISHED_REPLY = 3, + IP_CT_RELATED_REPLY = 4, + IP_CT_NUMBER = 5, + IP_CT_UNTRACKED = 7, +}; + +enum nf_inet_hooks { + NF_INET_PRE_ROUTING = 0, + NF_INET_LOCAL_IN = 1, + NF_INET_FORWARD = 2, + NF_INET_LOCAL_OUT = 3, + NF_INET_POST_ROUTING = 4, + NF_INET_NUMHOOKS = 5, + NF_INET_INGRESS = 5, +}; + +enum ip_conntrack_dir { + IP_CT_DIR_ORIGINAL = 0, + IP_CT_DIR_REPLY = 1, + IP_CT_DIR_MAX = 2, +}; + +enum rt_scope_t { + RT_SCOPE_UNIVERSE = 0, + RT_SCOPE_SITE = 200, + RT_SCOPE_LINK = 253, + RT_SCOPE_HOST = 254, + RT_SCOPE_NOWHERE = 255, +}; + +enum nf_nat_manip_type { + NF_NAT_MANIP_SRC = 0, + NF_NAT_MANIP_DST = 1, +}; + +enum netdev_cmd { + NETDEV_UP = 1, + NETDEV_DOWN = 2, + NETDEV_REBOOT = 3, + NETDEV_CHANGE = 4, + NETDEV_REGISTER = 5, + NETDEV_UNREGISTER = 6, + NETDEV_CHANGEMTU = 7, + NETDEV_CHANGEADDR = 8, + NETDEV_PRE_CHANGEADDR = 9, + NETDEV_GOING_DOWN = 10, + NETDEV_CHANGENAME = 11, + NETDEV_FEAT_CHANGE = 12, + NETDEV_BONDING_FAILOVER = 13, + NETDEV_PRE_UP = 14, + NETDEV_PRE_TYPE_CHANGE = 15, + NETDEV_POST_TYPE_CHANGE = 16, + NETDEV_POST_INIT = 17, + NETDEV_PRE_UNINIT = 18, + NETDEV_RELEASE = 19, + NETDEV_NOTIFY_PEERS = 20, + NETDEV_JOIN = 21, + NETDEV_CHANGEUPPER = 22, + NETDEV_RESEND_IGMP = 23, + NETDEV_PRECHANGEMTU = 24, + NETDEV_CHANGEINFODATA = 25, + NETDEV_BONDING_INFO = 26, + NETDEV_PRECHANGEUPPER = 27, + NETDEV_CHANGELOWERSTATE = 28, + NETDEV_UDP_TUNNEL_PUSH_INFO = 29, + NETDEV_UDP_TUNNEL_DROP_INFO = 30, + NETDEV_CHANGE_TX_QUEUE_LEN = 31, + NETDEV_CVLAN_FILTER_PUSH_INFO = 32, + NETDEV_CVLAN_FILTER_DROP_INFO = 33, + NETDEV_SVLAN_FILTER_PUSH_INFO = 34, + NETDEV_SVLAN_FILTER_DROP_INFO = 35, + NETDEV_OFFLOAD_XSTATS_ENABLE = 36, + NETDEV_OFFLOAD_XSTATS_DISABLE = 37, + NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38, + NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39, + NETDEV_XDP_FEAT_CHANGE = 40, +}; + +enum nf_ct_ext_id { + NF_CT_EXT_HELPER = 0, + NF_CT_EXT_NAT = 1, + NF_CT_EXT_SEQADJ = 2, + NF_CT_EXT_ACCT = 3, + NF_CT_EXT_NUM = 4, +}; + +struct nf_conntrack { + refcount_t use; +}; + +union nf_inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; +}; + +union nf_conntrack_man_proto { + __be16 all; + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + __be16 id; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; + } gre; +}; + +typedef u16 u_int16_t; + +struct nf_conntrack_man { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + u_int16_t l3num; +}; + +struct nf_conntrack_tuple { + struct nf_conntrack_man src; + struct { + union nf_inet_addr u3; + union { + __be16 all; + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + u_int8_t type; + u_int8_t code; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; + } gre; + } u; + u_int8_t protonum; + struct {} __nfct_hash_offsetend; + u_int8_t dir; + } dst; +}; + +struct nf_conntrack_tuple_hash { + struct hlist_nulls_node hnnode; + struct nf_conntrack_tuple tuple; +}; + +typedef u32 u_int32_t; + +typedef u64 u_int64_t; + +struct nf_ct_dccp { + u_int8_t role[2]; + u_int8_t state; + u_int8_t last_pkt; + u_int8_t last_dir; + u_int64_t handshake_seq; +}; + +struct ip_ct_sctp { + enum sctp_conntrack state; + __be32 vtag[2]; + u8 init[2]; + u8 last_dir; + u8 flags; +}; + +struct ip_ct_tcp_state { + u_int32_t td_end; + u_int32_t td_maxend; + u_int32_t td_maxwin; + u_int32_t td_maxack; + u_int8_t td_scale; + u_int8_t flags; +}; + +struct ip_ct_tcp { + struct ip_ct_tcp_state seen[2]; + u_int8_t state; + u_int8_t last_dir; + u_int8_t retrans; + u_int8_t last_index; + u_int32_t last_seq; + u_int32_t last_ack; + u_int32_t last_end; + u_int16_t last_win; + u_int8_t last_wscale; + u_int8_t last_flags; +}; + +struct nf_ct_udp { + unsigned long stream_ts; +}; + +struct nf_ct_gre { + unsigned int stream_timeout; + unsigned int timeout; +}; + +union nf_conntrack_proto { + struct nf_ct_dccp dccp; + struct ip_ct_sctp sctp; + struct ip_ct_tcp tcp; + struct nf_ct_udp udp; + struct nf_ct_gre gre; + unsigned int tmpl_padto; +}; + +struct nf_ct_ext; + +struct nf_conn { + struct nf_conntrack ct_general; + spinlock_t lock; + u32 timeout; + struct nf_conntrack_tuple_hash tuplehash[2]; + unsigned long status; + possible_net_t ct_net; + struct hlist_node nat_bysource; + struct {} __nfct_init_offset; + struct nf_conn *master; + u_int32_t mark; + struct nf_ct_ext *ext; + union nf_conntrack_proto proto; +}; + +struct nf_ct_ext { + u8 offset[4]; + u8 len; + unsigned int gen_id; + long: 0; + char data[0]; +}; + +struct masq_dev_work { + struct work_struct work; + struct net *net; + netns_tracker ns_tracker; + union nf_inet_addr addr; + int ifindex; + int (*iter)(struct nf_conn *, void *); +}; + +union nf_conntrack_nat_help {}; + +struct nf_conn_nat { + union nf_conntrack_nat_help help; + int masq_index; +}; + +struct nf_nat_range2 { + unsigned int flags; + union nf_inet_addr min_addr; + union nf_inet_addr max_addr; + union nf_conntrack_man_proto min_proto; + union nf_conntrack_man_proto max_proto; + union nf_conntrack_man_proto base_proto; +}; + +struct netdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; +}; + +struct nf_ct_iter_data { + struct net *net; + void *data; + u32 portid; + int report; +}; + +struct inet6_ifaddr { + struct in6_addr addr; + __u32 prefix_len; + __u32 rt_priority; + __u32 valid_lft; + __u32 prefered_lft; + refcount_t refcnt; + spinlock_t lock; + int state; + __u32 flags; + __u8 dad_probes; + __u8 stable_privacy_retry; + __u16 scope; + __u64 dad_nonce; + unsigned long cstamp; + unsigned long tstamp; + struct delayed_work dad_work; + struct inet6_dev *idev; + struct fib6_info *rt; + struct hlist_node addr_lst; + struct list_head if_list; + struct list_head if_list_aux; + struct list_head tmp_list; + struct inet6_ifaddr *ifpub; + int regen_count; + bool tokenized; + u8 ifa_proto; + struct callback_head rcu; + struct in6_addr peer_addr; +}; + +enum { + INET_FRAG_FIRST_IN = 1, + INET_FRAG_LAST_IN = 2, + INET_FRAG_COMPLETE = 4, + INET_FRAG_HASH_DEAD = 8, + INET_FRAG_DROP = 16, +}; + +struct ipfrag_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + }; + struct sk_buff *next_frag; + int frag_run_len; + int ip_defrag_offset; +}; + +struct fwdb_country { + u8 alpha2[2]; + __be16 coll_ptr; +}; + +struct fwdb_header { + __be32 magic; + __be32 version; + struct fwdb_country country[0]; +}; + +enum ieee80211_regulatory_flags { + REGULATORY_CUSTOM_REG = 1, + REGULATORY_STRICT_REG = 2, + REGULATORY_DISABLE_BEACON_HINTS = 4, + REGULATORY_COUNTRY_IE_FOLLOW_POWER = 8, + REGULATORY_COUNTRY_IE_IGNORE = 16, + REGULATORY_ENABLE_RELAX_NO_IR = 32, + REGULATORY_WIPHY_SELF_MANAGED = 128, +}; + +enum nl80211_reg_rule_flags { + NL80211_RRF_NO_OFDM = 1, + NL80211_RRF_NO_CCK = 2, + NL80211_RRF_NO_INDOOR = 4, + NL80211_RRF_NO_OUTDOOR = 8, + NL80211_RRF_DFS = 16, + NL80211_RRF_PTP_ONLY = 32, + NL80211_RRF_PTMP_ONLY = 64, + NL80211_RRF_NO_IR = 128, + __NL80211_RRF_NO_IBSS = 256, + NL80211_RRF_AUTO_BW = 2048, + NL80211_RRF_IR_CONCURRENT = 4096, + NL80211_RRF_NO_HT40MINUS = 8192, + NL80211_RRF_NO_HT40PLUS = 16384, + NL80211_RRF_NO_80MHZ = 32768, + NL80211_RRF_NO_160MHZ = 65536, + NL80211_RRF_NO_HE = 131072, + NL80211_RRF_NO_320MHZ = 262144, + NL80211_RRF_NO_EHT = 524288, + NL80211_RRF_PSD = 1048576, + NL80211_RRF_DFS_CONCURRENT = 2097152, + NL80211_RRF_NO_6GHZ_VLP_CLIENT = 4194304, + NL80211_RRF_NO_6GHZ_AFC_CLIENT = 8388608, +}; + +enum ieee80211_regd_source { + REGD_SOURCE_INTERNAL_DB = 0, + REGD_SOURCE_CRDA = 1, + REGD_SOURCE_CACHED = 2, +}; + +enum key_being_used_for { + VERIFYING_MODULE_SIGNATURE = 0, + VERIFYING_FIRMWARE_SIGNATURE = 1, + VERIFYING_KEXEC_PE_SIGNATURE = 2, + VERIFYING_KEY_SIGNATURE = 3, + VERIFYING_KEY_SELF_SIGNATURE = 4, + VERIFYING_UNSPECIFIED_SIGNATURE = 5, + NR__KEY_BEING_USED_FOR = 6, +}; + +enum reg_request_treatment { + REG_REQ_OK = 0, + REG_REQ_IGNORE = 1, + REG_REQ_INTERSECT = 2, + REG_REQ_ALREADY_SET = 3, +}; + +enum fwdb_flags { + FWDB_FLAG_NO_OFDM = 1, + FWDB_FLAG_NO_OUTDOOR = 2, + FWDB_FLAG_DFS = 4, + FWDB_FLAG_NO_IR = 8, + FWDB_FLAG_AUTO_BW = 16, +}; + +enum wiphy_flags { + WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = 1, + WIPHY_FLAG_SUPPORTS_MLO = 2, + WIPHY_FLAG_SPLIT_SCAN_6GHZ = 4, + WIPHY_FLAG_NETNS_OK = 8, + WIPHY_FLAG_PS_ON_BY_DEFAULT = 16, + WIPHY_FLAG_4ADDR_AP = 32, + WIPHY_FLAG_4ADDR_STATION = 64, + WIPHY_FLAG_CONTROL_PORT_PROTOCOL = 128, + WIPHY_FLAG_IBSS_RSN = 256, + WIPHY_FLAG_DISABLE_WEXT = 512, + WIPHY_FLAG_MESH_AUTH = 1024, + WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = 2048, + WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY = 4096, + WIPHY_FLAG_SUPPORTS_FW_ROAM = 8192, + WIPHY_FLAG_AP_UAPSD = 16384, + WIPHY_FLAG_SUPPORTS_TDLS = 32768, + WIPHY_FLAG_TDLS_EXTERNAL_SETUP = 65536, + WIPHY_FLAG_HAVE_AP_SME = 131072, + WIPHY_FLAG_REPORTS_OBSS = 262144, + WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = 524288, + WIPHY_FLAG_OFFCHAN_TX = 1048576, + WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = 2097152, + WIPHY_FLAG_SUPPORTS_5_10_MHZ = 4194304, + WIPHY_FLAG_HAS_CHANNEL_SWITCH = 8388608, + WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER = 16777216, + WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON = 33554432, +}; + +struct reg_beacon { + struct list_head list; + struct ieee80211_channel chan; +}; + +struct rfkill_ops { + void (*poll)(struct rfkill *, void *); + void (*query)(struct rfkill *, void *); + int (*set_block)(void *, bool); +}; + +struct cfg80211_ops; + +struct genl_info; + +struct cfg80211_registered_device { + const struct cfg80211_ops *ops; + struct list_head list; + struct rfkill_ops rfkill_ops; + struct work_struct rfkill_block; + char country_ie_alpha2[2]; + const struct ieee80211_regdomain *requested_regd; + enum environment_cap env; + int wiphy_idx; + int devlist_generation; + int wdev_id; + int opencount; + wait_queue_head_t dev_wait; + struct list_head beacon_registrations; + spinlock_t beacon_registrations_lock; + int num_running_ifaces; + int num_running_monitor_ifaces; + u64 cookie_counter; + spinlock_t bss_lock; + struct list_head bss_list; + struct rb_root bss_tree; + u32 bss_generation; + u32 bss_entries; + struct cfg80211_scan_request *scan_req; + struct cfg80211_scan_request *int_scan_req; + struct sk_buff *scan_msg; + struct list_head sched_scan_req_list; + time64_t suspend_at; + struct wiphy_work scan_done_wk; + struct genl_info *cur_cmd_info; + struct work_struct conn_work; + struct work_struct event_work; + struct delayed_work dfs_update_channels_wk; + struct wireless_dev *background_radar_wdev; + struct cfg80211_chan_def background_radar_chandef; + struct delayed_work background_cac_done_wk; + struct work_struct background_cac_abort_wk; + u32 crit_proto_nlportid; + struct cfg80211_coalesce *coalesce; + struct work_struct destroy_work; + struct wiphy_work sched_scan_stop_wk; + struct work_struct sched_scan_res_wk; + struct cfg80211_chan_def radar_chandef; + struct work_struct propagate_radar_detect_wk; + struct cfg80211_chan_def cac_done_chandef; + struct work_struct propagate_cac_done_wk; + struct work_struct mgmt_registrations_update_wk; + spinlock_t mgmt_registrations_lock; + struct work_struct wiphy_work; + struct list_head wiphy_work_list; + spinlock_t wiphy_work_lock; + bool suspended; + struct wiphy wiphy; +}; + +struct vif_params; + +struct cfg80211_ops { + int (*suspend)(struct wiphy *, struct cfg80211_wowlan *); + int (*resume)(struct wiphy *); + void (*set_wakeup)(struct wiphy *, bool); + struct wireless_dev * (*add_virtual_intf)(struct wiphy *, const char *, unsigned char, enum nl80211_iftype, struct vif_params *); + int (*del_virtual_intf)(struct wiphy *, struct wireless_dev *); + int (*change_virtual_intf)(struct wiphy *, struct net_device *, enum nl80211_iftype, struct vif_params *); + int (*add_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int); + void (*del_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int); + int (*add_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, struct key_params *); + int (*get_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, void *, void (*)(void *, struct key_params *)); + int (*del_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *); + int (*set_default_key)(struct wiphy *, struct net_device *, int, u8, bool, bool); + int (*set_default_mgmt_key)(struct wiphy *, struct net_device *, int, u8); + int (*set_default_beacon_key)(struct wiphy *, struct net_device *, int, u8); + int (*start_ap)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *); + int (*change_beacon)(struct wiphy *, struct net_device *, struct cfg80211_ap_update *); + int (*stop_ap)(struct wiphy *, struct net_device *, unsigned int); + int (*add_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *); + int (*del_station)(struct wiphy *, struct net_device *, struct station_del_parameters *); + int (*change_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *); + int (*get_station)(struct wiphy *, struct net_device *, const u8 *, struct station_info *); + int (*dump_station)(struct wiphy *, struct net_device *, int, u8 *, struct station_info *); + int (*add_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *); + int (*del_mpath)(struct wiphy *, struct net_device *, const u8 *); + int (*change_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *); + int (*get_mpath)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *); + int (*dump_mpath)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *); + int (*get_mpp)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *); + int (*dump_mpp)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *); + int (*get_mesh_config)(struct wiphy *, struct net_device *, struct mesh_config *); + int (*update_mesh_config)(struct wiphy *, struct net_device *, u32, const struct mesh_config *); + int (*join_mesh)(struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *); + int (*leave_mesh)(struct wiphy *, struct net_device *); + int (*join_ocb)(struct wiphy *, struct net_device *, struct ocb_setup *); + int (*leave_ocb)(struct wiphy *, struct net_device *); + int (*change_bss)(struct wiphy *, struct net_device *, struct bss_parameters *); + void (*inform_bss)(struct wiphy *, struct cfg80211_bss *, const struct cfg80211_bss_ies *, void *); + int (*set_txq_params)(struct wiphy *, struct net_device *, struct ieee80211_txq_params *); + int (*libertas_set_mesh_channel)(struct wiphy *, struct net_device *, struct ieee80211_channel *); + int (*set_monitor_channel)(struct wiphy *, struct cfg80211_chan_def *); + int (*scan)(struct wiphy *, struct cfg80211_scan_request *); + void (*abort_scan)(struct wiphy *, struct wireless_dev *); + int (*auth)(struct wiphy *, struct net_device *, struct cfg80211_auth_request *); + int (*assoc)(struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); + int (*deauth)(struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); + int (*disassoc)(struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); + int (*connect)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *); + int (*update_connect_params)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); + int (*disconnect)(struct wiphy *, struct net_device *, u16); + int (*join_ibss)(struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); + int (*leave_ibss)(struct wiphy *, struct net_device *); + int (*set_mcast_rate)(struct wiphy *, struct net_device *, int *); + int (*set_wiphy_params)(struct wiphy *, u32); + int (*set_tx_power)(struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); + int (*get_tx_power)(struct wiphy *, struct wireless_dev *, int *); + void (*rfkill_poll)(struct wiphy *); + int (*set_bitrate_mask)(struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); + int (*dump_survey)(struct wiphy *, struct net_device *, int, struct survey_info *); + int (*set_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); + int (*del_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); + int (*flush_pmksa)(struct wiphy *, struct net_device *); + int (*remain_on_channel)(struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int, u64 *); + int (*cancel_remain_on_channel)(struct wiphy *, struct wireless_dev *, u64); + int (*mgmt_tx)(struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *, u64 *); + int (*mgmt_tx_cancel_wait)(struct wiphy *, struct wireless_dev *, u64); + int (*set_power_mgmt)(struct wiphy *, struct net_device *, bool, int); + int (*set_cqm_rssi_config)(struct wiphy *, struct net_device *, s32, u32); + int (*set_cqm_rssi_range_config)(struct wiphy *, struct net_device *, s32, s32); + int (*set_cqm_txe_config)(struct wiphy *, struct net_device *, u32, u32, u32); + void (*update_mgmt_frame_registrations)(struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); + int (*set_antenna)(struct wiphy *, u32, u32); + int (*get_antenna)(struct wiphy *, u32 *, u32 *); + int (*sched_scan_start)(struct wiphy *, struct net_device *, struct cfg80211_sched_scan_request *); + int (*sched_scan_stop)(struct wiphy *, struct net_device *, u64); + int (*set_rekey_data)(struct wiphy *, struct net_device *, struct cfg80211_gtk_rekey_data *); + int (*tdls_mgmt)(struct wiphy *, struct net_device *, const u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); + int (*tdls_oper)(struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation); + int (*probe_client)(struct wiphy *, struct net_device *, const u8 *, u64 *); + int (*set_noack_map)(struct wiphy *, struct net_device *, u16); + int (*get_channel)(struct wiphy *, struct wireless_dev *, unsigned int, struct cfg80211_chan_def *); + int (*start_p2p_device)(struct wiphy *, struct wireless_dev *); + void (*stop_p2p_device)(struct wiphy *, struct wireless_dev *); + int (*set_mac_acl)(struct wiphy *, struct net_device *, const struct cfg80211_acl_data *); + int (*start_radar_detection)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32); + void (*end_cac)(struct wiphy *, struct net_device *); + int (*update_ft_ies)(struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); + int (*crit_proto_start)(struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); + void (*crit_proto_stop)(struct wiphy *, struct wireless_dev *); + int (*set_coalesce)(struct wiphy *, struct cfg80211_coalesce *); + int (*channel_switch)(struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); + int (*set_qos_map)(struct wiphy *, struct net_device *, struct cfg80211_qos_map *); + int (*set_ap_chanwidth)(struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); + int (*add_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); + int (*del_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *); + int (*tdls_channel_switch)(struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); + void (*tdls_cancel_channel_switch)(struct wiphy *, struct net_device *, const u8 *); + int (*start_nan)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); + void (*stop_nan)(struct wiphy *, struct wireless_dev *); + int (*add_nan_func)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_func *); + void (*del_nan_func)(struct wiphy *, struct wireless_dev *, u64); + int (*nan_change_conf)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); + int (*set_multicast_to_unicast)(struct wiphy *, struct net_device *, const bool); + int (*get_txq_stats)(struct wiphy *, struct wireless_dev *, struct cfg80211_txq_stats *); + int (*set_pmk)(struct wiphy *, struct net_device *, const struct cfg80211_pmk_conf *); + int (*del_pmk)(struct wiphy *, struct net_device *, const u8 *); + int (*external_auth)(struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); + int (*tx_control_port)(struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, const __be16, const bool, int, u64 *); + int (*get_ftm_responder_stats)(struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); + int (*start_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); + void (*abort_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); + int (*update_owe_info)(struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); + int (*probe_mesh_link)(struct wiphy *, struct net_device *, const u8 *, size_t); + int (*set_tid_config)(struct wiphy *, struct net_device *, struct cfg80211_tid_config *); + int (*reset_tid_config)(struct wiphy *, struct net_device *, const u8 *, u8); + int (*set_sar_specs)(struct wiphy *, struct cfg80211_sar_specs *); + int (*color_change)(struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); + int (*set_fils_aad)(struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); + int (*set_radar_background)(struct wiphy *, struct cfg80211_chan_def *); + int (*add_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); + int (*mod_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); + int (*del_link_station)(struct wiphy *, struct net_device *, struct link_station_del_parameters *); + int (*set_hw_timestamp)(struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *); + int (*set_ttlm)(struct wiphy *, struct net_device *, struct cfg80211_ttlm_params *); +}; + +struct vif_params { + u32 flags; + int use_4addr; + u8 macaddr[6]; + const u8 *vht_mumimo_groups; + const u8 *vht_mumimo_follow_addr; +}; + +struct genl_family; + +struct genlmsghdr; + +struct genl_info { + u32 snd_seq; + u32 snd_portid; + const struct genl_family *family; + const struct nlmsghdr *nlhdr; + struct genlmsghdr *genlhdr; + struct nlattr **attrs; + possible_net_t _net; + void *user_ptr[2]; + struct netlink_ext_ack *extack; +}; + +struct genl_split_ops; + +struct genl_ops; + +struct genl_small_ops; + +struct genl_multicast_group; + +struct genl_family { + unsigned int hdrsize; + char name[16]; + unsigned int version; + unsigned int maxattr; + u8 netnsok: 1; + u8 parallel_ops: 1; + u8 n_ops; + u8 n_small_ops; + u8 n_split_ops; + u8 n_mcgrps; + u8 resv_start_op; + const struct nla_policy *policy; + int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + int (*bind)(int); + void (*unbind)(int); + const struct genl_ops *ops; + const struct genl_small_ops *small_ops; + const struct genl_split_ops *split_ops; + const struct genl_multicast_group *mcgrps; + struct module *module; + size_t sock_priv_size; + void (*sock_priv_init)(void *); + void (*sock_priv_destroy)(void *); + int id; + unsigned int mcgrp_offset; + struct xarray *sock_privs; +}; + +struct genl_split_ops { + union { + struct { + int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + int (*doit)(struct sk_buff *, struct genl_info *); + void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *); + }; + struct { + int (*start)(struct netlink_callback *); + int (*dumpit)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + }; + }; + const struct nla_policy *policy; + unsigned int maxattr; + u8 cmd; + u8 internal_flags; + u8 flags; + u8 validate; +}; + +struct genl_ops { + int (*doit)(struct sk_buff *, struct genl_info *); + int (*start)(struct netlink_callback *); + int (*dumpit)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + const struct nla_policy *policy; + unsigned int maxattr; + u8 cmd; + u8 internal_flags; + u8 flags; + u8 validate; +}; + +struct genl_small_ops { + int (*doit)(struct sk_buff *, struct genl_info *); + int (*dumpit)(struct sk_buff *, struct netlink_callback *); + u8 cmd; + u8 internal_flags; + u8 flags; + u8 validate; +}; + +struct genl_multicast_group { + char name[16]; + u8 flags; +}; + +struct genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; +}; + +struct fwdb_wmm_ac { + u8 ecw; + u8 aifsn; + __be16 cot; +}; + +struct reg_regdb_apply_request { + struct list_head list; + const struct ieee80211_regdomain *regdom; +}; + +struct fwdb_collection { + u8 len; + u8 n_rules; + u8 dfs_region; + int: 0; +}; + +struct fwdb_rule { + u8 len; + u8 flags; + __be16 max_eirp; + __be32 start; + __be32 end; + __be32 max_bw; + __be16 cac_timeout; + __be16 wmm_ptr; +}; + +struct fwdb_wmm_rule { + struct fwdb_wmm_ac client[4]; + struct fwdb_wmm_ac ap[4]; +}; + +struct platform_device_info { + struct device *parent; + struct fwnode_handle *fwnode; + bool of_node_reused; + const char *name; + int id; + const struct resource *res; + unsigned int num_res; + const void *data; + size_t size_data; + u64 dma_mask; + const struct property_entry *properties; +}; + +struct ma_state; + +typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); + +struct maple_enode; + +enum maple_status { + ma_active = 0, + ma_start = 1, + ma_root = 2, + ma_none = 3, + ma_pause = 4, + ma_overflow = 5, + ma_underflow = 6, + ma_error = 7, +}; + +struct maple_alloc; + +struct ma_state { + struct maple_tree *tree; + unsigned long index; + unsigned long last; + struct maple_enode *node; + unsigned long min; + unsigned long max; + struct maple_alloc *alloc; + enum maple_status status; + unsigned char depth; + unsigned char offset; + unsigned char mas_flags; + unsigned char end; +}; + +struct maple_alloc { + unsigned long total; + unsigned char node_count; + unsigned int request_count; + struct maple_alloc *slot[30]; +}; + +typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *); + +typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, unsigned long, void *); + +enum maple_type { + maple_dense = 0, + maple_leaf_64 = 1, + maple_range_64 = 2, + maple_arange_64 = 3, +}; + +struct maple_pnode; + +struct maple_metadata { + unsigned char end; + unsigned char gap; +}; + +struct maple_range_64 { + struct maple_pnode *parent; + unsigned long pivot[15]; + union { + void __attribute__((btf_type_tag("rcu"))) *slot[16]; + struct { + void __attribute__((btf_type_tag("rcu"))) *pad[15]; + struct maple_metadata meta; + }; + }; +}; + +struct maple_arange_64 { + struct maple_pnode *parent; + unsigned long pivot[9]; + void __attribute__((btf_type_tag("rcu"))) *slot[10]; + unsigned long gap[10]; + struct maple_metadata meta; +}; + +struct maple_node { + union { + struct { + struct maple_pnode *parent; + void __attribute__((btf_type_tag("rcu"))) *slot[31]; + }; + struct { + void *pad; + struct callback_head rcu; + struct maple_enode *piv_parent; + unsigned char parent_slot; + enum maple_type type; + unsigned char slot_len; + unsigned int ma_flags; + }; + struct maple_range_64 mr64; + struct maple_arange_64 ma64; + struct maple_alloc alloc; + }; +}; + +struct trace_event_raw_ma_op { + struct trace_entry ent; + const char *fn; + unsigned long min; + unsigned long max; + unsigned long index; + unsigned long last; + void *node; + char __data[0]; +}; + +struct trace_event_raw_ma_read { + struct trace_entry ent; + const char *fn; + unsigned long min; + unsigned long max; + unsigned long index; + unsigned long last; + void *node; + char __data[0]; +}; + +struct trace_event_raw_ma_write { + struct trace_entry ent; + const char *fn; + unsigned long min; + unsigned long max; + unsigned long index; + unsigned long last; + unsigned long piv; + void *val; + void *node; + char __data[0]; +}; + +struct maple_topiary { + struct maple_pnode *parent; + struct maple_enode *next; +}; + +struct ma_wr_state { + struct ma_state *mas; + struct maple_node *node; + unsigned long r_min; + unsigned long r_max; + enum maple_type type; + unsigned char offset_end; + unsigned long *pivots; + unsigned long end_piv; + void __attribute__((btf_type_tag("rcu"))) **slots; + void *entry; + void *content; +}; + +struct maple_big_node { + struct maple_pnode *parent; + unsigned long pivot[33]; + union { + struct maple_enode *slot[34]; + struct { + unsigned long padding[21]; + unsigned long gap[21]; + }; + }; + unsigned char b_end; + enum maple_type type; +}; + +struct ma_topiary; + +struct maple_subtree_state { + struct ma_state *orig_l; + struct ma_state *orig_r; + struct ma_state *l; + struct ma_state *m; + struct ma_state *r; + struct ma_topiary *free; + struct ma_topiary *destroy; + struct maple_big_node *bn; +}; + +struct ma_topiary { + struct maple_enode *head; + struct maple_enode *tail; + struct maple_tree *mtree; +}; + +struct trace_event_data_offsets_ma_op {}; + +struct trace_event_data_offsets_ma_read {}; + +struct trace_event_data_offsets_ma_write {}; + +typedef __u32 Elf32_Word; + +struct elf32_note { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; +}; + +typedef __u8 mtrr_type; + +struct mtrr_ops { + u32 var_regs; + void (*set)(unsigned int, unsigned long, unsigned long, mtrr_type); + void (*get)(unsigned int, unsigned long *, unsigned long *, mtrr_type *); + int (*get_free_region)(unsigned long, unsigned long, int); + int (*validate_add_page)(unsigned long, unsigned long, unsigned int); + int (*have_wrcomb)(); +}; + +struct cache_map { + u64 start; + u64 end; + u64 flags; + u64 type: 8; + u64 fixed: 1; +}; + +struct mtrr_var_range { + __u32 base_lo; + __u32 base_hi; + __u32 mask_lo; + __u32 mask_hi; +}; + +struct mtrr_state_type { + struct mtrr_var_range var_ranges[256]; + mtrr_type fixed_ranges[88]; + unsigned char enabled; + bool have_fixed; + mtrr_type def_type; +}; + +struct fixed_range_block { + int base_msr; + int ranges; +}; + +struct microcode_header_intel { + unsigned int hdrver; + unsigned int rev; + unsigned int date; + unsigned int sig; + unsigned int cksum; + unsigned int ldrver; + unsigned int pf; + unsigned int datasize; + unsigned int totalsize; + unsigned int metasize; + unsigned int min_req_ver; + unsigned int reserved; +}; + +struct microcode_intel { + struct microcode_header_intel hdr; + unsigned int bits[0]; +}; + +enum ucode_state { + UCODE_OK = 0, + UCODE_NEW = 1, + UCODE_NEW_SAFE = 2, + UCODE_UPDATED = 3, + UCODE_NFOUND = 4, + UCODE_ERROR = 5, + UCODE_TIMEOUT = 6, + UCODE_OFFLINE = 7, +}; + +struct cpu_signature; + +struct microcode_ops { + enum ucode_state (*request_microcode_fw)(int, struct device *); + void (*microcode_fini_cpu)(int); + enum ucode_state (*apply_microcode)(int); + int (*collect_cpu_info)(int, struct cpu_signature *); + void (*finalize_late_load)(int); + unsigned int nmi_safe: 1; + unsigned int use_nmi: 1; +}; + +struct cpu_signature { + unsigned int sig; + unsigned int pf; + unsigned int rev; +}; + +struct extended_signature { + unsigned int sig; + unsigned int pf; + unsigned int cksum; +}; + +struct extended_sigtable { + unsigned int count; + unsigned int cksum; + unsigned int reserved[3]; + struct extended_signature sigs[0]; +}; + +struct cpio_data { + void *data; + size_t size; + char name[18]; +}; + +struct ucode_cpu_info { + struct cpu_signature cpu_sig; + void *mc; +}; + +struct early_load_data { + u32 old_rev; + u32 new_rev; +}; + +struct apic { + void (*eoi)(); + void (*native_eoi)(); + void (*write)(u32, u32); + u32 (*read)(u32); + void (*wait_icr_idle)(); + u32 (*safe_wait_icr_idle)(); + void (*send_IPI)(int, int); + void (*send_IPI_mask)(const struct cpumask *, int); + void (*send_IPI_mask_allbutself)(const struct cpumask *, int); + void (*send_IPI_allbutself)(int); + void (*send_IPI_all)(int); + void (*send_IPI_self)(int); + u32 disable_esr: 1; + u32 dest_mode_logical: 1; + u32 x2apic_set_max_apicid: 1; + u32 nmi_to_offline_cpu: 1; + u32 (*calc_dest_apicid)(unsigned int); + u64 (*icr_read)(); + void (*icr_write)(u32, u32); + u32 max_apic_id; + int (*probe)(); + int (*acpi_madt_oem_check)(char *, char *); + void (*init_apic_ldr)(); + u32 (*cpu_present_to_apicid)(int); + u32 (*get_apic_id)(u32); + int (*wakeup_secondary_cpu)(u32, unsigned long); + int (*wakeup_secondary_cpu_64)(u32, unsigned long); + char *name; +}; + +struct rethook; + +struct rethook_node { + struct callback_head rcu; + struct llist_node llist; + struct rethook *rethook; + unsigned long ret_addr; + unsigned long frame; +}; + +struct objpool_head; + +typedef int (*objpool_fini_cb)(struct objpool_head *, void *); + +struct objpool_slot; + +struct objpool_head { + int obj_size; + int nr_objs; + int nr_cpus; + int capacity; + gfp_t gfp; + refcount_t ref; + unsigned long flags; + struct objpool_slot **cpu_slots; + objpool_fini_cb release; + void *context; +}; + +struct rethook { + void *data; + void (*handler)(struct rethook_node *, void *, unsigned long, struct pt_regs *); + struct objpool_head pool; + struct callback_head rcu; +}; + +struct objpool_slot { + uint32_t head; + uint32_t tail; + uint32_t last; + uint32_t mask; + void *entries[0]; +}; + +struct pci_hostbridge_probe { + u32 bus; + u32 slot; + u32 vendor; + u32 device; +}; + +enum node_stat_item { + NR_LRU_BASE = 0, + NR_INACTIVE_ANON = 0, + NR_ACTIVE_ANON = 1, + NR_INACTIVE_FILE = 2, + NR_ACTIVE_FILE = 3, + NR_UNEVICTABLE = 4, + NR_SLAB_RECLAIMABLE_B = 5, + NR_SLAB_UNRECLAIMABLE_B = 6, + NR_ISOLATED_ANON = 7, + NR_ISOLATED_FILE = 8, + WORKINGSET_NODES = 9, + WORKINGSET_REFAULT_BASE = 10, + WORKINGSET_REFAULT_ANON = 10, + WORKINGSET_REFAULT_FILE = 11, + WORKINGSET_ACTIVATE_BASE = 12, + WORKINGSET_ACTIVATE_ANON = 12, + WORKINGSET_ACTIVATE_FILE = 13, + WORKINGSET_RESTORE_BASE = 14, + WORKINGSET_RESTORE_ANON = 14, + WORKINGSET_RESTORE_FILE = 15, + WORKINGSET_NODERECLAIM = 16, + NR_ANON_MAPPED = 17, + NR_FILE_MAPPED = 18, + NR_FILE_PAGES = 19, + NR_FILE_DIRTY = 20, + NR_WRITEBACK = 21, + NR_WRITEBACK_TEMP = 22, + NR_SHMEM = 23, + NR_SHMEM_THPS = 24, + NR_SHMEM_PMDMAPPED = 25, + NR_FILE_THPS = 26, + NR_FILE_PMDMAPPED = 27, + NR_ANON_THPS = 28, + NR_VMSCAN_WRITE = 29, + NR_VMSCAN_IMMEDIATE = 30, + NR_DIRTIED = 31, + NR_WRITTEN = 32, + NR_THROTTLED_WRITTEN = 33, + NR_KERNEL_MISC_RECLAIMABLE = 34, + NR_FOLL_PIN_ACQUIRED = 35, + NR_FOLL_PIN_RELEASED = 36, + NR_KERNEL_STACK_KB = 37, + NR_PAGETABLE = 38, + NR_SECONDARY_PAGETABLE = 39, + NR_SWAPCACHE = 40, + PGDEMOTE_KSWAPD = 41, + PGDEMOTE_DIRECT = 42, + PGDEMOTE_KHUGEPAGED = 43, + NR_VM_NODE_STAT_ITEMS = 44, +}; + +struct ptdesc { + unsigned long __page_flags; + union { + struct callback_head pt_rcu_head; + struct list_head pt_list; + struct { + unsigned long _pt_pad_1; + pgtable_t pmd_huge_pte; + }; + }; + unsigned long __page_mapping; + union { + unsigned long pt_index; + struct mm_struct *pt_mm; + atomic_t pt_frag_refcount; + }; + union { + unsigned long _pt_pad_2; + spinlock_t *ptl; + }; + unsigned int __page_type; + atomic_t __page_refcount; + unsigned long pt_memcg_data; +}; + +struct encoded_page; + +struct mmu_gather_batch { + struct mmu_gather_batch *next; + unsigned int nr; + unsigned int max; + struct encoded_page *encoded_pages[0]; +}; + +struct mmu_gather { + struct mm_struct *mm; unsigned long start; unsigned long end; - unsigned int page_size_mask; + unsigned int fullmm: 1; + unsigned int need_flush_all: 1; + unsigned int freed_tables: 1; + unsigned int delayed_rmap: 1; + unsigned int cleared_ptes: 1; + unsigned int cleared_pmds: 1; + unsigned int cleared_puds: 1; + unsigned int cleared_p4ds: 1; + unsigned int vma_exec: 1; + unsigned int vma_huge: 1; + unsigned int vma_pfn: 1; + unsigned int batch_count; + struct mmu_gather_batch *active; + struct mmu_gather_batch local; + struct page *__pages[8]; }; -struct param_attribute { - struct module_attribute mattr; - const struct kernel_param *param; +struct hstate { + struct mutex resize_lock; + int next_nid_to_alloc; + int next_nid_to_free; + unsigned int order; + unsigned int demote_order; + unsigned long mask; + unsigned long max_huge_pages; + unsigned long nr_huge_pages; + unsigned long free_huge_pages; + unsigned long resv_huge_pages; + unsigned long surplus_huge_pages; + unsigned long nr_overcommit_huge_pages; + struct list_head hugepage_activelist; + struct list_head hugepage_freelists[1024]; + unsigned int max_huge_pages_node[1024]; + unsigned int nr_huge_pages_node[1024]; + unsigned int free_huge_pages_node[1024]; + unsigned int surplus_huge_pages_node[1024]; + struct cftype cgroup_files_dfl[8]; + struct cftype cgroup_files_legacy[10]; + char name[32]; }; -struct module_param_attrs { - unsigned int num; - struct attribute_group grp; - struct param_attribute attrs[0]; +struct hugepage_subpool; + +struct hugetlbfs_sb_info { + long max_inodes; + long free_inodes; + spinlock_t stat_lock; + struct hstate *hstate; + struct hugepage_subpool *spool; + kuid_t uid; + kgid_t gid; + umode_t mode; }; -enum { - KERNEL_PARAM_OPS_FL_NOARG = 1, +struct hugepage_subpool { + spinlock_t lock; + long count; + long max_hpages; + long used_hpages; + struct hstate *hstate; + long min_hpages; + long rsv_hpages; }; -enum { - KERNEL_PARAM_FL_UNSAFE = 1, - KERNEL_PARAM_FL_HWPARAM = 2, +enum hrtimer_mode { + HRTIMER_MODE_ABS = 0, + HRTIMER_MODE_REL = 1, + HRTIMER_MODE_PINNED = 2, + HRTIMER_MODE_SOFT = 4, + HRTIMER_MODE_HARD = 8, + HRTIMER_MODE_ABS_PINNED = 2, + HRTIMER_MODE_REL_PINNED = 3, + HRTIMER_MODE_ABS_SOFT = 4, + HRTIMER_MODE_REL_SOFT = 5, + HRTIMER_MODE_ABS_PINNED_SOFT = 6, + HRTIMER_MODE_REL_PINNED_SOFT = 7, + HRTIMER_MODE_ABS_HARD = 8, + HRTIMER_MODE_REL_HARD = 9, + HRTIMER_MODE_ABS_PINNED_HARD = 10, + HRTIMER_MODE_REL_PINNED_HARD = 11, }; -struct kmalloced_param { +enum hrtimer_base_type { + HRTIMER_BASE_MONOTONIC = 0, + HRTIMER_BASE_REALTIME = 1, + HRTIMER_BASE_BOOTTIME = 2, + HRTIMER_BASE_TAI = 3, + HRTIMER_BASE_MONOTONIC_SOFT = 4, + HRTIMER_BASE_REALTIME_SOFT = 5, + HRTIMER_BASE_BOOTTIME_SOFT = 6, + HRTIMER_BASE_TAI_SOFT = 7, + HRTIMER_MAX_CLOCK_BASES = 8, +}; + +enum clock_event_state { + CLOCK_EVT_STATE_DETACHED = 0, + CLOCK_EVT_STATE_SHUTDOWN = 1, + CLOCK_EVT_STATE_PERIODIC = 2, + CLOCK_EVT_STATE_ONESHOT = 3, + CLOCK_EVT_STATE_ONESHOT_STOPPED = 4, +}; + +struct hrtimer_sleeper { + struct hrtimer timer; + struct task_struct *task; +}; + +struct softirq_action { + void (*action)(struct softirq_action *); +}; + +struct clock_event_device { + void (*event_handler)(struct clock_event_device *); + int (*set_next_event)(unsigned long, struct clock_event_device *); + int (*set_next_ktime)(ktime_t, struct clock_event_device *); + ktime_t next_event; + u64 max_delta_ns; + u64 min_delta_ns; + u32 mult; + u32 shift; + enum clock_event_state state_use_accessors; + unsigned int features; + unsigned long retries; + int (*set_state_periodic)(struct clock_event_device *); + int (*set_state_oneshot)(struct clock_event_device *); + int (*set_state_oneshot_stopped)(struct clock_event_device *); + int (*set_state_shutdown)(struct clock_event_device *); + int (*tick_resume)(struct clock_event_device *); + void (*broadcast)(const struct cpumask *); + void (*suspend)(struct clock_event_device *); + void (*resume)(struct clock_event_device *); + unsigned long min_delta_ticks; + unsigned long max_delta_ticks; + const char *name; + int rating; + int irq; + int bound_on; + const struct cpumask *cpumask; struct list_head list; - char val[0]; + struct module *owner; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -enum tick_broadcast_mode { - TICK_BROADCAST_OFF = 0, - TICK_BROADCAST_ON = 1, - TICK_BROADCAST_FORCE = 2, +struct saved_cmdlines_buffer { + unsigned int map_pid_to_cmdline[32769]; + unsigned int *map_cmdline_to_pid; + unsigned int cmdline_num; + int cmdline_idx; + char saved_cmdlines[0]; }; -enum tick_broadcast_state { - TICK_BROADCAST_EXIT = 0, - TICK_BROADCAST_ENTER = 1, +enum { + TASK_COMM_LEN = 16, }; -enum cgroup_filetype { - CGROUP_FILE_PROCS = 0, - CGROUP_FILE_TASKS = 1, +enum { + BPF_ANY = 0, + BPF_NOEXIST = 1, + BPF_EXIST = 2, + BPF_F_LOCK = 4, }; -enum cgroup1_param { - Opt_all = 0, - Opt_clone_children = 1, - Opt_cpuset_v2_mode = 2, - Opt_name = 3, - Opt_none = 4, - Opt_noprefix = 5, - Opt_release_agent = 6, - Opt_xattr = 7, - Opt_favordynmods = 8, - Opt_nofavordynmods = 9, +enum xdp_action { + XDP_ABORTED = 0, + XDP_DROP = 1, + XDP_PASS = 2, + XDP_TX = 3, + XDP_REDIRECT = 4, }; -struct cgrp_cset_link { - struct cgroup *cgrp; - struct css_set *cset; - struct list_head cset_link; - struct list_head cgrp_link; +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1ULL, + IFF_EBRIDGE = 2ULL, + IFF_BONDING = 4ULL, + IFF_ISATAP = 8ULL, + IFF_WAN_HDLC = 16ULL, + IFF_XMIT_DST_RELEASE = 32ULL, + IFF_DONT_BRIDGE = 64ULL, + IFF_DISABLE_NETPOLL = 128ULL, + IFF_MACVLAN_PORT = 256ULL, + IFF_BRIDGE_PORT = 512ULL, + IFF_OVS_DATAPATH = 1024ULL, + IFF_TX_SKB_SHARING = 2048ULL, + IFF_UNICAST_FLT = 4096ULL, + IFF_TEAM_PORT = 8192ULL, + IFF_SUPP_NOFCS = 16384ULL, + IFF_LIVE_ADDR_CHANGE = 32768ULL, + IFF_MACVLAN = 65536ULL, + IFF_XMIT_DST_RELEASE_PERM = 131072ULL, + IFF_L3MDEV_MASTER = 262144ULL, + IFF_NO_QUEUE = 524288ULL, + IFF_OPENVSWITCH = 1048576ULL, + IFF_L3MDEV_SLAVE = 2097152ULL, + IFF_TEAM = 4194304ULL, + IFF_RXFH_CONFIGURED = 8388608ULL, + IFF_PHONY_HEADROOM = 16777216ULL, + IFF_MACSEC = 33554432ULL, + IFF_NO_RX_HANDLER = 67108864ULL, + IFF_FAILOVER = 134217728ULL, + IFF_FAILOVER_SLAVE = 268435456ULL, + IFF_L3MDEV_RX_HANDLER = 536870912ULL, + IFF_NO_ADDRCONF = 1073741824ULL, + IFF_TX_SKB_NO_LINEAR = 2147483648ULL, + IFF_CHANGE_PROTO_DOWN = 4294967296ULL, + IFF_SEE_ALL_HWTSTAMP_REQUESTS = 8589934592ULL, }; -struct cgroup_pidlist { - struct { - enum cgroup_filetype type; - struct pid_namespace *ns; - } key; - pid_t *list; - int length; - struct list_head links; - struct cgroup *owner; - struct delayed_work destroy_dwork; +enum { + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, }; -struct cgroup_fs_context { - struct kernfs_fs_context kfc; - struct cgroup_root *root; - struct cgroup_namespace *ns; - unsigned int flags; - bool cpuset_clone_children; - bool none; - bool all_ss; - u16 subsys_mask; - char *name; - char *release_agent; +struct bpf_cpu_map_entry; + +struct xdp_bulk_queue { + void *q[8]; + struct list_head flush_node; + struct bpf_cpu_map_entry *obj; + unsigned int count; }; -struct cgroup_mgctx { - struct list_head preloaded_src_csets; - struct list_head preloaded_dst_csets; - struct cgroup_taskset tset; - u16 ss_mask; +struct bpf_cpumap_val { + __u32 qsize; + union { + int fd; + __u32 id; + } bpf_prog; }; -struct cgroup_file_ctx { - struct cgroup_namespace *ns; - struct { - void *trigger; - } psi; - struct { - bool started; - struct css_task_iter iter; - } procs; - struct { - struct cgroup_pidlist *pidlist; - } procs1; +struct bpf_cpu_map_entry { + u32 cpu; + int map_id; + struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq; + struct ptr_ring *queue; + struct task_struct *kthread; + struct bpf_cpumap_val value; + struct bpf_prog *prog; + struct completion kthread_running; + struct rcu_work free_work; }; -struct cgroupstats { - __u64 nr_sleeping; - __u64 nr_running; - __u64 nr_stopped; - __u64 nr_uninterruptible; - __u64 nr_io_wait; +struct bpf_cpu_map { + struct bpf_map map; + struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map; }; -struct swap_slots_cache { - bool lock_initialized; - struct mutex alloc_lock; - swp_entry_t *slots; - int nr; - int cur; - spinlock_t free_lock; - swp_entry_t *slots_ret; - int n_ret; +struct bpf_nh_params { + u32 nh_family; + union { + u32 ipv4_nh; + struct in6_addr ipv6_nh; + }; }; -enum umount_tree_flags { - UMOUNT_SYNC = 1, - UMOUNT_PROPAGATE = 2, - UMOUNT_CONNECTED = 4, +struct bpf_redirect_info { + u64 tgt_index; + void *tgt_value; + struct bpf_map *map; + u32 flags; + u32 kern_flags; + u32 map_id; + enum bpf_map_type map_type; + struct bpf_nh_params nh; }; -enum mnt_tree_flags_t { - MNT_TREE_MOVE = 1, - MNT_TREE_BENEATH = 2, +struct xdp_cpumap_stats { + unsigned int redirect; + unsigned int pass; + unsigned int drop; }; -struct mount_attr { - __u64 attr_set; - __u64 attr_clr; - __u64 propagation; - __u64 userns_fd; +typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); + +enum page_walk_lock { + PGWALK_RDLOCK = 0, + PGWALK_WRLOCK = 1, + PGWALK_WRLOCK_VERIFY = 2, }; -struct mnt_id_req { - __u32 size; - __u32 spare; - __u64 mnt_id; - __u64 param; +struct mm_walk; + +struct mm_walk_ops { + int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); + int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); + int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); + int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); + void (*post_vma)(struct mm_walk *); + enum page_walk_lock walk_lock; }; -struct statmount { - __u32 size; - __u32 __spare1; - __u64 mask; - __u32 sb_dev_major; - __u32 sb_dev_minor; - __u64 sb_magic; - __u32 sb_flags; - __u32 fs_type; - __u64 mnt_id; - __u64 mnt_parent_id; - __u32 mnt_id_old; - __u32 mnt_parent_id_old; - __u64 mnt_attr; - __u64 mnt_propagation; - __u64 mnt_peer_group; - __u64 mnt_master; - __u64 propagate_from; - __u32 mnt_root; - __u32 mnt_point; - __u64 __spare2[50]; - char str[0]; +enum page_walk_action { + ACTION_SUBTREE = 0, + ACTION_CONTINUE = 1, + ACTION_AGAIN = 2, }; -struct mount_kattr { - unsigned int attr_set; - unsigned int attr_clr; - unsigned int propagation; - unsigned int lookup_flags; - bool recurse; - struct user_namespace *mnt_userns; - struct mnt_idmap *mnt_idmap; +struct mm_walk { + const struct mm_walk_ops *ops; + struct mm_struct *mm; + pgd_t *pgd; + struct vm_area_struct *vma; + enum page_walk_action action; + bool no_vma; + void *private; }; -struct kstatmount { - struct statmount __attribute__((btf_type_tag("user"))) *buf; - size_t bufsize; - struct vfsmount *mnt; - u64 mask; - struct path root; - struct statmount sm; - struct seq_file seq; +enum hugetlb_page_flags { + HPG_restore_reserve = 0, + HPG_migratable = 1, + HPG_temporary = 2, + HPG_freed = 3, + HPG_vmemmap_optimized = 4, + HPG_raw_hwp_unreliable = 5, + __NR_HPAGEFLAGS = 6, }; -struct proc_mounts { - struct mnt_namespace *ns; - struct path root; - int (*show)(struct seq_file *, struct vfsmount *); +struct vmemmap_remap_walk { + void (*remap_pte)(pte_t *, unsigned long, struct vmemmap_remap_walk *); + unsigned long nr_walked; + struct page *reuse_page; + unsigned long reuse_addr; + struct list_head *vmemmap_pages; + unsigned long flags; }; -enum btrfs_qgroup_rsv_type { - BTRFS_QGROUP_RSV_DATA = 0, - BTRFS_QGROUP_RSV_META_PERTRANS = 1, - BTRFS_QGROUP_RSV_META_PREALLOC = 2, - BTRFS_QGROUP_RSV_LAST = 3, +struct inodes_stat_t { + long nr_inodes; + long nr_unused; + long dummy[5]; }; -struct btrfs_root_ref { - __le64 dirid; - __le64 sequence; +enum file_time_flags { + S_ATIME = 1, + S_MTIME = 2, + S_CTIME = 4, + S_VERSION = 8, +}; + +enum { + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, +}; + +enum vm_event_item { + PGPGIN = 0, + PGPGOUT = 1, + PSWPIN = 2, + PSWPOUT = 3, + PGALLOC_DMA = 4, + PGALLOC_DMA32 = 5, + PGALLOC_NORMAL = 6, + PGALLOC_MOVABLE = 7, + ALLOCSTALL_DMA = 8, + ALLOCSTALL_DMA32 = 9, + ALLOCSTALL_NORMAL = 10, + ALLOCSTALL_MOVABLE = 11, + PGSCAN_SKIP_DMA = 12, + PGSCAN_SKIP_DMA32 = 13, + PGSCAN_SKIP_NORMAL = 14, + PGSCAN_SKIP_MOVABLE = 15, + PGFREE = 16, + PGACTIVATE = 17, + PGDEACTIVATE = 18, + PGLAZYFREE = 19, + PGFAULT = 20, + PGMAJFAULT = 21, + PGLAZYFREED = 22, + PGREFILL = 23, + PGREUSE = 24, + PGSTEAL_KSWAPD = 25, + PGSTEAL_DIRECT = 26, + PGSTEAL_KHUGEPAGED = 27, + PGSCAN_KSWAPD = 28, + PGSCAN_DIRECT = 29, + PGSCAN_KHUGEPAGED = 30, + PGSCAN_DIRECT_THROTTLE = 31, + PGSCAN_ANON = 32, + PGSCAN_FILE = 33, + PGSTEAL_ANON = 34, + PGSTEAL_FILE = 35, + PGSCAN_ZONE_RECLAIM_FAILED = 36, + PGINODESTEAL = 37, + SLABS_SCANNED = 38, + KSWAPD_INODESTEAL = 39, + KSWAPD_LOW_WMARK_HIT_QUICKLY = 40, + KSWAPD_HIGH_WMARK_HIT_QUICKLY = 41, + PAGEOUTRUN = 42, + PGROTATED = 43, + DROP_PAGECACHE = 44, + DROP_SLAB = 45, + OOM_KILL = 46, + PGMIGRATE_SUCCESS = 47, + PGMIGRATE_FAIL = 48, + THP_MIGRATION_SUCCESS = 49, + THP_MIGRATION_FAIL = 50, + THP_MIGRATION_SPLIT = 51, + COMPACTMIGRATE_SCANNED = 52, + COMPACTFREE_SCANNED = 53, + COMPACTISOLATED = 54, + COMPACTSTALL = 55, + COMPACTFAIL = 56, + COMPACTSUCCESS = 57, + KCOMPACTD_WAKE = 58, + KCOMPACTD_MIGRATE_SCANNED = 59, + KCOMPACTD_FREE_SCANNED = 60, + HTLB_BUDDY_PGALLOC = 61, + HTLB_BUDDY_PGALLOC_FAIL = 62, + UNEVICTABLE_PGCULLED = 63, + UNEVICTABLE_PGSCANNED = 64, + UNEVICTABLE_PGRESCUED = 65, + UNEVICTABLE_PGMLOCKED = 66, + UNEVICTABLE_PGMUNLOCKED = 67, + UNEVICTABLE_PGCLEARED = 68, + UNEVICTABLE_PGSTRANDED = 69, + THP_FAULT_ALLOC = 70, + THP_FAULT_FALLBACK = 71, + THP_FAULT_FALLBACK_CHARGE = 72, + THP_COLLAPSE_ALLOC = 73, + THP_COLLAPSE_ALLOC_FAILED = 74, + THP_FILE_ALLOC = 75, + THP_FILE_FALLBACK = 76, + THP_FILE_FALLBACK_CHARGE = 77, + THP_FILE_MAPPED = 78, + THP_SPLIT_PAGE = 79, + THP_SPLIT_PAGE_FAILED = 80, + THP_DEFERRED_SPLIT_PAGE = 81, + THP_SPLIT_PMD = 82, + THP_SCAN_EXCEED_NONE_PTE = 83, + THP_SCAN_EXCEED_SWAP_PTE = 84, + THP_SCAN_EXCEED_SHARED_PTE = 85, + THP_SPLIT_PUD = 86, + THP_ZERO_PAGE_ALLOC = 87, + THP_ZERO_PAGE_ALLOC_FAILED = 88, + THP_SWPOUT = 89, + THP_SWPOUT_FALLBACK = 90, + SWAP_RA = 91, + SWAP_RA_HIT = 92, + ZSWPIN = 93, + ZSWPOUT = 94, + ZSWPWB = 95, + DIRECT_MAP_LEVEL2_SPLIT = 96, + DIRECT_MAP_LEVEL3_SPLIT = 97, + NR_VM_EVENT_ITEMS = 98, +}; + +enum { + SB_UNFROZEN = 0, + SB_FREEZE_WRITE = 1, + SB_FREEZE_PAGEFAULT = 2, + SB_FREEZE_FS = 3, + SB_FREEZE_COMPLETE = 4, +}; + +struct wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; +}; + +typedef __kernel_ulong_t ino_t; + +enum { + EXT4_STATE_NEW = 0, + EXT4_STATE_XATTR = 1, + EXT4_STATE_NO_EXPAND = 2, + EXT4_STATE_DA_ALLOC_CLOSE = 3, + EXT4_STATE_EXT_MIGRATE = 4, + EXT4_STATE_NEWENTRY = 5, + EXT4_STATE_MAY_INLINE_DATA = 6, + EXT4_STATE_EXT_PRECACHED = 7, + EXT4_STATE_LUSTRE_EA_INODE = 8, + EXT4_STATE_VERITY_IN_PROGRESS = 9, + EXT4_STATE_FC_COMMITTING = 10, + EXT4_STATE_ORPHAN_FILE = 11, +}; + +enum jbd_state_bits { + BH_JBD = 16, + BH_JWrite = 17, + BH_Freed = 18, + BH_Revoked = 19, + BH_RevokeValid = 20, + BH_JBDDirty = 21, + BH_JournalHead = 22, + BH_Shadow = 23, + BH_Verified = 24, + BH_JBDPrivateStart = 25, +}; + +enum { + EXT4_FC_REASON_XATTR = 0, + EXT4_FC_REASON_CROSS_RENAME = 1, + EXT4_FC_REASON_JOURNAL_FLAG_CHANGE = 2, + EXT4_FC_REASON_NOMEM = 3, + EXT4_FC_REASON_SWAP_BOOT = 4, + EXT4_FC_REASON_RESIZE = 5, + EXT4_FC_REASON_RENAME_DIR = 6, + EXT4_FC_REASON_FALLOC_RANGE = 7, + EXT4_FC_REASON_INODE_JOURNAL_DATA = 8, + EXT4_FC_REASON_ENCRYPTED_FILENAME = 9, + EXT4_FC_REASON_MAX = 10, +}; + +enum { + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FC_INELIGIBLE = 1, +}; + +struct ext4_dir_entry_tail { + __le32 det_reserved_zero1; + __le16 det_rec_len; + __u8 det_reserved_zero2; + __u8 det_reserved_ft; + __le32 det_checksum; +}; + +struct ext4_dir_entry_2 { + __le32 inode; + __le16 rec_len; + __u8 name_len; + __u8 file_type; + char name[255]; +}; + +struct ext4_dir_entry_hash { + __le32 hash; + __le32 minor_hash; +}; + +struct dx_entry; + +struct dx_frame { + struct buffer_head *bh; + struct dx_entry *entries; + struct dx_entry *at; +}; + +struct dx_entry { + __le32 hash; + __le32 block; +}; + +struct fake_dirent { + __le32 inode; + __le16 rec_len; + u8 name_len; + u8 file_type; +}; + +struct dx_root_info { + __le32 reserved_zero; + u8 hash_version; + u8 info_length; + u8 indirect_levels; + u8 unused_flags; +}; + +struct dx_root { + struct fake_dirent dot; + char dot_name[4]; + struct fake_dirent dotdot; + char dotdot_name[4]; + struct dx_root_info info; + struct dx_entry entries[0]; +}; + +struct dx_node { + struct fake_dirent fake; + struct dx_entry entries[0]; +}; + +struct dx_countlimit { + __le16 limit; + __le16 count; +}; + +struct ext4_dir_entry { + __le32 inode; + __le16 rec_len; __le16 name_len; -} __attribute__((packed)); + char name[255]; +}; + +struct dx_tail { + u32 dt_reserved; + __le32 dt_checksum; +}; + +struct dx_map_entry { + u32 hash; + u16 offs; + u16 size; +}; + +struct dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; +}; struct fscrypt_str { unsigned char *name; u32 len; }; -enum btrfs_dev_stat_values { - BTRFS_DEV_STAT_WRITE_ERRS = 0, - BTRFS_DEV_STAT_READ_ERRS = 1, - BTRFS_DEV_STAT_FLUSH_ERRS = 2, - BTRFS_DEV_STAT_CORRUPTION_ERRS = 3, - BTRFS_DEV_STAT_GENERATION_ERRS = 4, - BTRFS_DEV_STAT_VALUES_MAX = 5, +struct ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; }; -enum btrfs_map_op { - BTRFS_MAP_READ = 0, - BTRFS_MAP_WRITE = 1, - BTRFS_MAP_GET_READ_MIRRORS = 2, +struct fscrypt_name { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + u32 hash; + u32 minor_hash; + struct fscrypt_str crypto_buf; + bool is_nokey_name; +}; + +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; + +struct ext4_renament { + struct inode *dir; + struct dentry *dentry; + struct inode *inode; + bool is_dir; + int dir_nlink_delta; + struct buffer_head *bh; + struct ext4_dir_entry_2 *de; + int inlined; + struct buffer_head *dir_bh; + struct ext4_dir_entry_2 *parent_de; + int dir_inlined; +}; + +typedef enum { + EITHER = 0, + INDEX = 1, + DIRENT = 2, + DIRENT_HTREE = 3, +} dirblock_type_t; + +enum reloc_stage { + MOVE_DATA_EXTENTS = 0, + UPDATE_DATA_PTRS = 1, +}; + +enum { + BTRFS_FS_CLOSING_START = 0, + BTRFS_FS_CLOSING_DONE = 1, + BTRFS_FS_LOG_RECOVERING = 2, + BTRFS_FS_OPEN = 3, + BTRFS_FS_QUOTA_ENABLED = 4, + BTRFS_FS_UPDATE_UUID_TREE_GEN = 5, + BTRFS_FS_CREATING_FREE_SPACE_TREE = 6, + BTRFS_FS_BTREE_ERR = 7, + BTRFS_FS_LOG1_ERR = 8, + BTRFS_FS_LOG2_ERR = 9, + BTRFS_FS_QUOTA_OVERRIDE = 10, + BTRFS_FS_FROZEN = 11, + BTRFS_FS_BALANCE_RUNNING = 12, + BTRFS_FS_RELOC_RUNNING = 13, + BTRFS_FS_CLEANER_RUNNING = 14, + BTRFS_FS_CSUM_IMPL_FAST = 15, + BTRFS_FS_DISCARD_RUNNING = 16, + BTRFS_FS_CLEANUP_SPACE_CACHE_V1 = 17, + BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED = 18, + BTRFS_FS_TREE_MOD_LOG_USERS = 19, + BTRFS_FS_COMMIT_TRANS = 20, + BTRFS_FS_UNFINISHED_DROPS = 21, + BTRFS_FS_NEED_ZONE_FINISH = 22, + BTRFS_FS_NEED_TRANS_COMMIT = 23, + BTRFS_FS_ACTIVE_ZONE_TRACKING = 24, + BTRFS_FS_FEATURE_CHANGED = 25, + BTRFS_FS_UNALIGNED_TREE_BLOCK = 26, +}; + +enum { + READA_NONE = 0, + READA_BACK = 1, + READA_FORWARD = 2, + READA_FORWARD_ALWAYS = 3, +}; + +enum { + BTRFS_FS_STATE_REMOUNTING = 0, + BTRFS_FS_STATE_RO = 1, + BTRFS_FS_STATE_TRANS_ABORTED = 2, + BTRFS_FS_STATE_DEV_REPLACING = 3, + BTRFS_FS_STATE_DUMMY_FS_INFO = 4, + BTRFS_FS_STATE_NO_CSUMS = 5, + BTRFS_FS_STATE_LOG_CLEANUP_ERROR = 6, + BTRFS_FS_STATE_COUNT = 7, +}; + +enum { + IO_TREE_FS_PINNED_EXTENTS = 0, + IO_TREE_FS_EXCLUDED_EXTENTS = 1, + IO_TREE_BTREE_INODE_IO = 2, + IO_TREE_INODE_IO = 3, + IO_TREE_RELOC_BLOCKS = 4, + IO_TREE_TRANS_DIRTY_PAGES = 5, + IO_TREE_ROOT_DIRTY_LOG_PAGES = 6, + IO_TREE_INODE_FILE_EXTENT = 7, + IO_TREE_LOG_CSUM_RANGE = 8, + IO_TREE_SELFTEST = 9, + IO_TREE_DEVICE_ALLOC_STATE = 10, +}; + +enum btrfs_qgroup_mode { + BTRFS_QGROUP_MODE_DISABLED = 0, + BTRFS_QGROUP_MODE_FULL = 1, + BTRFS_QGROUP_MODE_SIMPLE = 2, +}; + +enum btrfs_inline_ref_type { + BTRFS_REF_TYPE_INVALID = 0, + BTRFS_REF_TYPE_BLOCK = 1, + BTRFS_REF_TYPE_DATA = 2, + BTRFS_REF_TYPE_ANY = 3, +}; + +enum { + BTRFS_FILE_EXTENT_INLINE = 0, + BTRFS_FILE_EXTENT_REG = 1, + BTRFS_FILE_EXTENT_PREALLOC = 2, + BTRFS_NR_FILE_EXTENT_TYPES = 3, +}; + +enum { + EXTENT_BUFFER_UPTODATE = 0, + EXTENT_BUFFER_DIRTY = 1, + EXTENT_BUFFER_CORRUPT = 2, + EXTENT_BUFFER_READAHEAD = 3, + EXTENT_BUFFER_TREE_REF = 4, + EXTENT_BUFFER_STALE = 5, + EXTENT_BUFFER_WRITEBACK = 6, + EXTENT_BUFFER_READ_ERR = 7, + EXTENT_BUFFER_UNMAPPED = 8, + EXTENT_BUFFER_IN_TREE = 9, + EXTENT_BUFFER_WRITE_ERR = 10, + EXTENT_BUFFER_ZONED_ZEROOUT = 11, + EXTENT_BUFFER_READING = 12, +}; + +enum btrfs_ref_type { + BTRFS_REF_NOT_SET = 0, + BTRFS_REF_DATA = 1, + BTRFS_REF_METADATA = 2, + BTRFS_REF_LAST = 3, +} __attribute__((mode(byte))); + +enum btrfs_delayed_ref_action { + BTRFS_ADD_DELAYED_REF = 1, + BTRFS_DROP_DELAYED_REF = 2, + BTRFS_ADD_DELAYED_EXTENT = 3, + BTRFS_UPDATE_DELAYED_HEAD = 4, +} __attribute__((mode(byte))); + +enum btrfs_lock_nesting { + BTRFS_NESTING_NORMAL = 0, + BTRFS_NESTING_COW = 1, + BTRFS_NESTING_LEFT = 2, + BTRFS_NESTING_RIGHT = 3, + BTRFS_NESTING_LEFT_COW = 4, + BTRFS_NESTING_RIGHT_COW = 5, + BTRFS_NESTING_SPLIT = 6, + BTRFS_NESTING_NEW_ROOT = 7, + BTRFS_NESTING_MAX = 8, +}; + +struct mapping_node { + struct { + struct rb_node rb_node; + u64 bytenr; + }; + void *data; }; struct btrfs_zoned_device_info { @@ -80623,6 +48889,93 @@ struct btrfs_zoned_device_info { struct blk_zone sb_zones[6]; }; +struct btrfs_backref_node; + +struct btrfs_backref_cache { + struct rb_root rb_root; + struct btrfs_backref_node *path[8]; + struct list_head pending[8]; + struct list_head leaves; + struct list_head changed; + struct list_head detached; + u64 last_trans; + int nr_nodes; + int nr_edges; + struct list_head pending_edge; + struct list_head useless_node; + struct btrfs_fs_info *fs_info; + bool is_reloc; +}; + +struct file_extent_cluster { + u64 start; + u64 end; + u64 boundary[128]; + unsigned int nr; + u64 owning_root; +}; + +struct mapping_tree { + struct rb_root rb_root; + spinlock_t lock; +}; + +struct reloc_control { + struct btrfs_block_group *block_group; + struct btrfs_root *extent_root; + struct inode *data_inode; + struct btrfs_block_rsv *block_rsv; + struct btrfs_backref_cache backref_cache; + struct file_extent_cluster cluster; + struct extent_io_tree processed_blocks; + struct mapping_tree reloc_root_tree; + struct list_head reloc_roots; + struct list_head dirty_subvol_roots; + u64 merging_rsv_size; + u64 nodes_relocated; + u64 reserved_bytes; + u64 search_start; + u64 extents_found; + enum reloc_stage stage; + bool create_reloc_tree; + bool merge_reloc_tree; + bool found_file_extent; +}; + +struct btrfs_backref_node { + struct { + struct rb_node rb_node; + u64 bytenr; + }; + u64 new_bytenr; + u64 owner; + struct list_head list; + struct list_head upper; + struct list_head lower; + struct btrfs_root *root; + struct extent_buffer *eb; + unsigned int level: 8; + unsigned int cowonly: 1; + unsigned int lowest: 1; + unsigned int locked: 1; + unsigned int processed: 1; + unsigned int checked: 1; + unsigned int pending: 1; + unsigned int detached: 1; + unsigned int is_reloc_root: 1; +}; + +struct btrfs_subpage_info { + unsigned int bitmap_nr_bits; + unsigned int total_nr_bits; + unsigned int uptodate_offset; + unsigned int dirty_offset; + unsigned int writeback_offset; + unsigned int ordered_offset; + unsigned int checked_offset; + unsigned int locked_offset; +}; + struct btrfs_ordered_sum { u64 logical; u32 len; @@ -80630,2479 +48983,4078 @@ struct btrfs_ordered_sum { u8 sums[0]; }; -struct async_submit_bio { - struct btrfs_bio *bbio; - struct btrfs_io_context *bioc; - struct btrfs_io_stripe smap; - int mirror_num; +struct rb_simple_node { + struct rb_node rb_node; + u64 bytenr; +}; + +struct btrfs_item { + struct btrfs_disk_key key; + __le32 offset; + __le32 size; +} __attribute__((packed)); + +struct btrfs_extent_item { + __le64 refs; + __le64 generation; + __le64 flags; +}; + +struct btrfs_tree_block_info { + struct btrfs_disk_key key; + __u8 level; +}; + +struct btrfs_extent_inline_ref { + __u8 type; + __le64 offset; +} __attribute__((packed)); + +struct btrfs_file_extent_item { + __le64 generation; + __le64 ram_bytes; + __u8 compression; + __u8 encryption; + __le16 other_encoding; + __u8 type; + __le64 disk_bytenr; + __le64 disk_num_bytes; + __le64 offset; + __le64 num_bytes; +} __attribute__((packed)); + +struct tree_block { + struct { + struct rb_node rb_node; + u64 bytenr; + }; + u64 owner; + struct btrfs_key key; + u8 level; + bool key_ready; +}; + +struct btrfs_backref_edge { + struct list_head list[2]; + struct btrfs_backref_node *node[2]; +}; + +struct btrfs_key_ptr { + struct btrfs_disk_key key; + __le64 blockptr; + __le64 generation; +} __attribute__((packed)); + +struct btrfs_header { + __u8 csum[32]; + __u8 fsid[16]; + __le64 bytenr; + __le64 flags; + __u8 chunk_tree_uuid[16]; + __le64 generation; + __le64 owner; + __le32 nritems; + __u8 level; +} __attribute__((packed)); + +struct btrfs_ordered_extent { + u64 file_offset; + u64 num_bytes; + u64 ram_bytes; + u64 disk_bytenr; + u64 disk_num_bytes; + u64 offset; + u64 bytes_left; + u64 truncated_len; + unsigned long flags; + int compress_type; + int qgroup_rsv; + refcount_t refs; + struct inode *inode; + struct list_head list; + struct list_head log_list; + wait_queue_head_t wait; + struct rb_node rb_node; + struct list_head root_extent_list; struct btrfs_work work; -}; - -struct btrfs_failed_bio { - struct btrfs_bio *bbio; - int num_copies; - atomic_t repair_count; -}; - -struct crypto_istat_aead { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; -}; - -struct uuidcmp { - const char *uuid; - int len; -}; - -struct io_uring_cmd { - struct file *file; - const struct io_uring_sqe *sqe; - void (*task_work_cb)(struct io_uring_cmd *, unsigned int); - u32 cmd_op; - u32 flags; - u8 pdu[32]; -}; - -typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); - -typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); - -typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); - -typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); - -typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); - -typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); - -typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int); - -typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); - -typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); - -struct creds; - -enum { - IO_APOLL_OK = 0, - IO_APOLL_ABORTED = 1, - IO_APOLL_READY = 2, -}; - -enum { - IORING_CQE_BUFFER_SHIFT = 16, -}; - -enum { - IOU_F_TWQ_LAZY_WAKE = 1, -}; - -enum { - REQ_F_FIXED_FILE_BIT = 0, - REQ_F_IO_DRAIN_BIT = 1, - REQ_F_LINK_BIT = 2, - REQ_F_HARDLINK_BIT = 3, - REQ_F_FORCE_ASYNC_BIT = 4, - REQ_F_BUFFER_SELECT_BIT = 5, - REQ_F_CQE_SKIP_BIT = 6, - REQ_F_FAIL_BIT = 8, - REQ_F_INFLIGHT_BIT = 9, - REQ_F_CUR_POS_BIT = 10, - REQ_F_NOWAIT_BIT = 11, - REQ_F_LINK_TIMEOUT_BIT = 12, - REQ_F_NEED_CLEANUP_BIT = 13, - REQ_F_POLLED_BIT = 14, - REQ_F_BUFFER_SELECTED_BIT = 15, - REQ_F_BUFFER_RING_BIT = 16, - REQ_F_REISSUE_BIT = 17, - REQ_F_CREDS_BIT = 18, - REQ_F_REFCOUNT_BIT = 19, - REQ_F_ARM_LTIMEOUT_BIT = 20, - REQ_F_ASYNC_DATA_BIT = 21, - REQ_F_SKIP_LINK_CQES_BIT = 22, - REQ_F_SINGLE_POLL_BIT = 23, - REQ_F_DOUBLE_POLL_BIT = 24, - REQ_F_APOLL_MULTISHOT_BIT = 25, - REQ_F_CLEAR_POLLIN_BIT = 26, - REQ_F_HASH_LOCKED_BIT = 27, - REQ_F_SUPPORT_NOWAIT_BIT = 28, - REQ_F_ISREG_BIT = 29, - REQ_F_POLL_NO_LAZY_BIT = 30, - REQ_F_CANCEL_SEQ_BIT = 31, - REQ_F_CAN_POLL_BIT = 32, - REQ_F_BL_EMPTY_BIT = 33, - REQ_F_BL_NO_RECYCLE_BIT = 34, - __REQ_F_LAST_BIT = 35, -}; - -enum { - IOSQE_FIXED_FILE_BIT = 0, - IOSQE_IO_DRAIN_BIT = 1, - IOSQE_IO_LINK_BIT = 2, - IOSQE_IO_HARDLINK_BIT = 3, - IOSQE_ASYNC_BIT = 4, - IOSQE_BUFFER_SELECT_BIT = 5, - IOSQE_CQE_SKIP_SUCCESS_BIT = 6, -}; - -struct trace_event_raw_io_uring_create { - struct trace_entry ent; - int fd; - void *ctx; - u32 sq_entries; - u32 cq_entries; - u32 flags; - char __data[0]; -}; - -struct trace_event_raw_io_uring_register { - struct trace_entry ent; - void *ctx; - unsigned int opcode; - unsigned int nr_files; - unsigned int nr_bufs; - long ret; - char __data[0]; -}; - -struct trace_event_raw_io_uring_file_get { - struct trace_entry ent; - void *ctx; - void *req; - u64 user_data; - int fd; - char __data[0]; -}; - -struct trace_event_raw_io_uring_queue_async_work { - struct trace_entry ent; - void *ctx; - void *req; - u64 user_data; - u8 opcode; - unsigned long long flags; - struct io_wq_work *work; - int rw; - u32 __data_loc_op_str; - char __data[0]; -}; - -struct trace_event_raw_io_uring_defer { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long data; - u8 opcode; - u32 __data_loc_op_str; - char __data[0]; -}; - -struct trace_event_raw_io_uring_link { - struct trace_entry ent; - void *ctx; - void *req; - void *target_req; - char __data[0]; -}; - -struct trace_event_raw_io_uring_cqring_wait { - struct trace_entry ent; - void *ctx; - int min_events; - char __data[0]; -}; - -struct trace_event_raw_io_uring_fail_link { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - void *link; - u32 __data_loc_op_str; - char __data[0]; -}; - -struct trace_event_raw_io_uring_complete { - struct trace_entry ent; - void *ctx; - void *req; - u64 user_data; - int res; - unsigned int cflags; - u64 extra1; - u64 extra2; - char __data[0]; -}; - -struct trace_event_raw_io_uring_submit_req { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - unsigned long long flags; - bool sq_thread; - u32 __data_loc_op_str; - char __data[0]; -}; - -struct trace_event_raw_io_uring_poll_arm { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - int mask; - int events; - u32 __data_loc_op_str; - char __data[0]; -}; - -struct trace_event_raw_io_uring_task_add { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - int mask; - u32 __data_loc_op_str; - char __data[0]; -}; - -struct trace_event_raw_io_uring_req_failed { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - u8 flags; - u8 ioprio; - u64 off; - u64 addr; - u32 len; - u32 op_flags; - u16 buf_index; - u16 personality; - u32 file_index; - u64 pad1; - u64 addr3; - int error; - u32 __data_loc_op_str; - char __data[0]; -}; - -struct trace_event_raw_io_uring_cqe_overflow { - struct trace_entry ent; - void *ctx; - unsigned long long user_data; - s32 res; - u32 cflags; - void *ocqe; - char __data[0]; -}; - -struct trace_event_raw_io_uring_task_work_run { - struct trace_entry ent; - void *tctx; - unsigned int count; - char __data[0]; -}; - -struct trace_event_raw_io_uring_short_write { - struct trace_entry ent; - void *ctx; - u64 fpos; - u64 wanted; - u64 got; - char __data[0]; -}; - -struct trace_event_raw_io_uring_local_work_run { - struct trace_entry ent; - void *ctx; - int count; - unsigned int loops; - char __data[0]; -}; - -struct io_defer_entry { - struct list_head list; - struct io_kiocb *req; - u32 seq; -}; - -struct io_overflow_cqe { - struct list_head list; - struct io_uring_cqe cqe; -}; - -struct io_tctx_exit { - struct callback_head task_work; struct completion completion; - struct io_ring_ctx *ctx; + struct btrfs_work flush_work; + struct list_head work_list; + struct list_head bioc_list; }; -struct io_sqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 flags; - __u32 dropped; - __u32 array; - __u32 resv1; - __u64 user_addr; +struct btrfs_data_ref { + u64 ref_root; + u64 ino; + u64 offset; }; -struct io_cqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 overflow; - __u32 cqes; - __u32 flags; - __u32 resv1; - __u64 user_addr; +struct btrfs_tree_ref { + int level; + u64 ref_root; }; -struct io_uring_params { - __u32 sq_entries; - __u32 cq_entries; - __u32 flags; - __u32 sq_thread_cpu; - __u32 sq_thread_idle; - __u32 features; - __u32 wq_fd; - __u32 resv[3]; - struct io_sqring_offsets sq_off; - struct io_cqring_offsets cq_off; -}; - -struct trace_event_data_offsets_io_uring_queue_async_work { - u32 op_str; - const void *op_str_ptr_; -}; - -struct trace_event_data_offsets_io_uring_defer { - u32 op_str; - const void *op_str_ptr_; -}; - -struct trace_event_data_offsets_io_uring_fail_link { - u32 op_str; - const void *op_str_ptr_; -}; - -struct trace_event_data_offsets_io_uring_submit_req { - u32 op_str; - const void *op_str_ptr_; -}; - -struct trace_event_data_offsets_io_uring_poll_arm { - u32 op_str; - const void *op_str_ptr_; -}; - -struct trace_event_data_offsets_io_uring_task_add { - u32 op_str; - const void *op_str_ptr_; -}; - -struct trace_event_data_offsets_io_uring_req_failed { - u32 op_str; - const void *op_str_ptr_; -}; - -struct io_uring_getevents_arg { - __u64 sigmask; - __u32 sigmask_sz; - __u32 pad; - __u64 ts; -}; - -struct trace_event_data_offsets_io_uring_create {}; - -struct trace_event_data_offsets_io_uring_register {}; - -struct trace_event_data_offsets_io_uring_file_get {}; - -struct trace_event_data_offsets_io_uring_link {}; - -struct trace_event_data_offsets_io_uring_cqring_wait {}; - -struct trace_event_data_offsets_io_uring_complete {}; - -struct trace_event_data_offsets_io_uring_cqe_overflow {}; - -struct trace_event_data_offsets_io_uring_task_work_run {}; - -struct trace_event_data_offsets_io_uring_short_write {}; - -struct trace_event_data_offsets_io_uring_local_work_run {}; - -struct io_task_cancel { - struct task_struct *task; - bool all; -}; - -enum rtw_fw_fifo_sel { - RTW_FW_FIFO_SEL_TX = 0, - RTW_FW_FIFO_SEL_RX = 1, - RTW_FW_FIFO_SEL_RSVD_PAGE = 2, - RTW_FW_FIFO_SEL_REPORT = 3, - RTW_FW_FIFO_SEL_LLT = 4, - RTW_FW_FIFO_SEL_RXBUF_FW = 5, - RTW_FW_FIFO_MAX = 6, -}; - -enum rtw_fwcd_item { - RTW_FWCD_TLV = 0, - RTW_FWCD_REG = 1, - RTW_FWCD_ROM = 2, - RTW_FWCD_IMEM = 3, - RTW_FWCD_DMEM = 4, - RTW_FWCD_EMEM = 5, -}; - -enum rtw_wireless_set { - WIRELESS_CCK = 1, - WIRELESS_OFDM = 2, - WIRELESS_HT = 4, - WIRELESS_VHT = 8, -}; - -enum rtw_rsvd_packet_type { - RSVD_BEACON = 0, - RSVD_DUMMY = 1, - RSVD_PS_POLL = 2, - RSVD_PROBE_RESP = 3, - RSVD_NULL = 4, - RSVD_QOS_NULL = 5, - RSVD_LPS_PG_DPK = 6, - RSVD_LPS_PG_INFO = 7, - RSVD_PROBE_REQ = 8, - RSVD_NLO_INFO = 9, - RSVD_CH_INFO = 10, -}; - -enum nl80211_feature_flags { - NL80211_FEATURE_SK_TX_STATUS = 1, - NL80211_FEATURE_HT_IBSS = 2, - NL80211_FEATURE_INACTIVITY_TIMER = 4, - NL80211_FEATURE_CELL_BASE_REG_HINTS = 8, - NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 16, - NL80211_FEATURE_SAE = 32, - NL80211_FEATURE_LOW_PRIORITY_SCAN = 64, - NL80211_FEATURE_SCAN_FLUSH = 128, - NL80211_FEATURE_AP_SCAN = 256, - NL80211_FEATURE_VIF_TXPOWER = 512, - NL80211_FEATURE_NEED_OBSS_SCAN = 1024, - NL80211_FEATURE_P2P_GO_CTWIN = 2048, - NL80211_FEATURE_P2P_GO_OPPPS = 4096, - NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 16384, - NL80211_FEATURE_FULL_AP_CLIENT_STATE = 32768, - NL80211_FEATURE_USERSPACE_MPM = 65536, - NL80211_FEATURE_ACTIVE_MONITOR = 131072, - NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 262144, - NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 524288, - NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1048576, - NL80211_FEATURE_QUIET = 2097152, - NL80211_FEATURE_TX_POWER_INSERTION = 4194304, - NL80211_FEATURE_ACKTO_ESTIMATION = 8388608, - NL80211_FEATURE_STATIC_SMPS = 16777216, - NL80211_FEATURE_DYNAMIC_SMPS = 33554432, - NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 67108864, - NL80211_FEATURE_MAC_ON_CREATE = 134217728, - NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 268435456, - NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 536870912, - NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1073741824, - NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 2147483648, -}; - -enum rtw_chip_type { - RTW_CHIP_TYPE_8822B = 0, - RTW_CHIP_TYPE_8822C = 1, - RTW_CHIP_TYPE_8723D = 2, - RTW_CHIP_TYPE_8821C = 3, -}; - -enum rtw_rate_index { - RTW_RATEID_BGN_40M_2SS = 0, - RTW_RATEID_BGN_40M_1SS = 1, - RTW_RATEID_BGN_20M_2SS = 2, - RTW_RATEID_BGN_20M_1SS = 3, - RTW_RATEID_GN_N2SS = 4, - RTW_RATEID_GN_N1SS = 5, - RTW_RATEID_BG = 6, - RTW_RATEID_G = 7, - RTW_RATEID_B_20M = 8, - RTW_RATEID_ARFR0_AC_2SS = 9, - RTW_RATEID_ARFR1_AC_1SS = 10, - RTW_RATEID_ARFR2_AC_2G_1SS = 11, - RTW_RATEID_ARFR3_AC_2G_2SS = 12, - RTW_RATEID_ARFR4_AC_3SS = 13, - RTW_RATEID_ARFR5_N_3SS = 14, - RTW_RATEID_ARFR7_N_4SS = 15, - RTW_RATEID_ARFR6_AC_4SS = 16, -}; - -enum rtw_c2h_cmd_id { - C2H_CCX_TX_RPT = 3, - C2H_BT_INFO = 9, - C2H_BT_MP_INFO = 11, - C2H_BT_HID_INFO = 69, - C2H_RA_RPT = 12, - C2H_HW_FEATURE_REPORT = 25, - C2H_WLAN_INFO = 39, - C2H_WLAN_RFON = 50, - C2H_BCN_FILTER_NOTIFY = 54, - C2H_ADAPTIVITY = 55, - C2H_SCAN_RESULT = 56, - C2H_HW_FEATURE_DUMP = 253, - C2H_HALMAC = 255, -}; - -enum rtw_fw_feature_ext { - FW_FEATURE_EXT_OLD_PAGE_NUM = 1, -}; - -enum ieee80211_max_ampdu_length_exp { - IEEE80211_HT_MAX_AMPDU_8K = 0, - IEEE80211_HT_MAX_AMPDU_16K = 1, - IEEE80211_HT_MAX_AMPDU_32K = 2, - IEEE80211_HT_MAX_AMPDU_64K = 3, -}; - -struct rtw_rsvd_page { - struct list_head vif_list; - struct rtw_vif *rtwvif; - struct list_head build_list; - struct sk_buff *skb; - enum rtw_rsvd_packet_type type; - u8 page; - u16 tim_offset; - bool add_txdesc; - struct cfg80211_ssid *ssid; - u16 probe_req_size; -}; - -struct rtw_fwcd_hdr { - u32 item; - u32 size; - u32 padding1; - u32 padding2; -}; - -struct rtw_fw_hdr_legacy { - __le16 signature; - u8 category; - u8 function; - __le16 version; - u8 subversion1; - u8 subversion2; - u8 month; - u8 day; - u8 hour; - u8 minute; - __le16 size; - __le16 rsvd2; - __le32 idx; - __le32 rsvd3; - __le32 rsvd4; - __le32 rsvd5; -}; - -struct rtw_fw_hdr { - __le16 signature; - u8 category; - u8 function; - __le16 version; - u8 subversion; - u8 subindex; - __le32 rsvd; - __le32 feature; - u8 month; - u8 day; - u8 hour; - u8 min; - __le16 year; - __le16 rsvd3; - u8 mem_usage; - u8 rsvd4[3]; - __le16 h2c_fmt_ver; - __le16 rsvd5; - __le32 dmem_addr; - __le32 dmem_size; - __le32 rsvd6; - __le32 rsvd7; - __le32 imem_size; - __le32 emem_size; - __le32 emem_addr; - __le32 imem_addr; -}; - -struct rtw_channel_params { - u8 center_chan; - u8 primary_chan; - u8 bandwidth; -}; - -struct rtw_watch_dog_iter_data { - struct rtw_dev *rtwdev; - struct rtw_vif *rtwvif; -}; - -struct rtw_txq_ba_iter_data {}; - -struct rtw_iter_port_switch_data { - struct rtw_dev *rtwdev; - struct rtw_vif *rtwvif_ap; -}; - -enum { - US_FL_SINGLE_LUN = 1, - US_FL_NEED_OVERRIDE = 2, - US_FL_SCM_MULT_TARG = 4, - US_FL_FIX_INQUIRY = 8, - US_FL_FIX_CAPACITY = 16, - US_FL_IGNORE_RESIDUE = 32, - US_FL_BULK32 = 64, - US_FL_NOT_LOCKABLE = 128, - US_FL_GO_SLOW = 256, - US_FL_NO_WP_DETECT = 512, - US_FL_MAX_SECTORS_64 = 1024, - US_FL_IGNORE_DEVICE = 2048, - US_FL_CAPACITY_HEURISTICS = 4096, - US_FL_MAX_SECTORS_MIN = 8192, - US_FL_BULK_IGNORE_TAG = 16384, - US_FL_SANE_SENSE = 32768, - US_FL_CAPACITY_OK = 65536, - US_FL_BAD_SENSE = 131072, - US_FL_NO_READ_DISC_INFO = 262144, - US_FL_NO_READ_CAPACITY_16 = 524288, - US_FL_INITIAL_READ10 = 1048576, - US_FL_WRITE_CACHE = 2097152, - US_FL_NEEDS_CAP16 = 4194304, - US_FL_IGNORE_UAS = 8388608, - US_FL_BROKEN_FUA = 16777216, - US_FL_NO_ATA_1X = 33554432, - US_FL_NO_REPORT_OPCODES = 67108864, - US_FL_MAX_SECTORS_240 = 134217728, - US_FL_NO_REPORT_LUNS = 268435456, - US_FL_ALWAYS_SYNC = 536870912, - US_FL_NO_SAME = 1073741824, - US_FL_SENSE_AFTER_SYNC = 2147483648, -}; - -enum scsi_host_status { - DID_OK = 0, - DID_NO_CONNECT = 1, - DID_BUS_BUSY = 2, - DID_TIME_OUT = 3, - DID_BAD_TARGET = 4, - DID_ABORT = 5, - DID_PARITY = 6, - DID_ERROR = 7, - DID_RESET = 8, - DID_BAD_INTR = 9, - DID_PASSTHROUGH = 10, - DID_SOFT_ERROR = 11, - DID_IMM_RETRY = 12, - DID_REQUEUE = 13, - DID_TRANSPORT_DISRUPTED = 14, - DID_TRANSPORT_FAILFAST = 15, - DID_TRANSPORT_MARGINAL = 20, -}; - -enum sam_status { - SAM_STAT_GOOD = 0, - SAM_STAT_CHECK_CONDITION = 2, - SAM_STAT_CONDITION_MET = 4, - SAM_STAT_BUSY = 8, - SAM_STAT_INTERMEDIATE = 16, - SAM_STAT_INTERMEDIATE_CONDITION_MET = 20, - SAM_STAT_RESERVATION_CONFLICT = 24, - SAM_STAT_COMMAND_TERMINATED = 34, - SAM_STAT_TASK_SET_FULL = 40, - SAM_STAT_ACA_ACTIVE = 48, - SAM_STAT_TASK_ABORTED = 64, -}; - -struct power_supply_attr { - const char *prop_name; - char attr_name[31]; - struct device_attribute dev_attr; - const char * const *text_values; - int text_values_len; -}; - -enum power_supply_type { - POWER_SUPPLY_TYPE_UNKNOWN = 0, - POWER_SUPPLY_TYPE_BATTERY = 1, - POWER_SUPPLY_TYPE_UPS = 2, - POWER_SUPPLY_TYPE_MAINS = 3, - POWER_SUPPLY_TYPE_USB = 4, - POWER_SUPPLY_TYPE_USB_DCP = 5, - POWER_SUPPLY_TYPE_USB_CDP = 6, - POWER_SUPPLY_TYPE_USB_ACA = 7, - POWER_SUPPLY_TYPE_USB_TYPE_C = 8, - POWER_SUPPLY_TYPE_USB_PD = 9, - POWER_SUPPLY_TYPE_USB_PD_DRP = 10, - POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11, - POWER_SUPPLY_TYPE_WIRELESS = 12, -}; - -enum power_supply_usb_type { - POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, - POWER_SUPPLY_USB_TYPE_SDP = 1, - POWER_SUPPLY_USB_TYPE_DCP = 2, - POWER_SUPPLY_USB_TYPE_CDP = 3, - POWER_SUPPLY_USB_TYPE_ACA = 4, - POWER_SUPPLY_USB_TYPE_C = 5, - POWER_SUPPLY_USB_TYPE_PD = 6, - POWER_SUPPLY_USB_TYPE_PD_DRP = 7, - POWER_SUPPLY_USB_TYPE_PD_PPS = 8, - POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, -}; - -enum power_supply_property { - POWER_SUPPLY_PROP_STATUS = 0, - POWER_SUPPLY_PROP_CHARGE_TYPE = 1, - POWER_SUPPLY_PROP_HEALTH = 2, - POWER_SUPPLY_PROP_PRESENT = 3, - POWER_SUPPLY_PROP_ONLINE = 4, - POWER_SUPPLY_PROP_AUTHENTIC = 5, - POWER_SUPPLY_PROP_TECHNOLOGY = 6, - POWER_SUPPLY_PROP_CYCLE_COUNT = 7, - POWER_SUPPLY_PROP_VOLTAGE_MAX = 8, - POWER_SUPPLY_PROP_VOLTAGE_MIN = 9, - POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10, - POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11, - POWER_SUPPLY_PROP_VOLTAGE_NOW = 12, - POWER_SUPPLY_PROP_VOLTAGE_AVG = 13, - POWER_SUPPLY_PROP_VOLTAGE_OCV = 14, - POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15, - POWER_SUPPLY_PROP_CURRENT_MAX = 16, - POWER_SUPPLY_PROP_CURRENT_NOW = 17, - POWER_SUPPLY_PROP_CURRENT_AVG = 18, - POWER_SUPPLY_PROP_CURRENT_BOOT = 19, - POWER_SUPPLY_PROP_POWER_NOW = 20, - POWER_SUPPLY_PROP_POWER_AVG = 21, - POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22, - POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23, - POWER_SUPPLY_PROP_CHARGE_FULL = 24, - POWER_SUPPLY_PROP_CHARGE_EMPTY = 25, - POWER_SUPPLY_PROP_CHARGE_NOW = 26, - POWER_SUPPLY_PROP_CHARGE_AVG = 27, - POWER_SUPPLY_PROP_CHARGE_COUNTER = 28, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32, - POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33, - POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34, - POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35, - POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36, - POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 37, - POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 38, - POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 39, - POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 40, - POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 41, - POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 42, - POWER_SUPPLY_PROP_ENERGY_FULL = 43, - POWER_SUPPLY_PROP_ENERGY_EMPTY = 44, - POWER_SUPPLY_PROP_ENERGY_NOW = 45, - POWER_SUPPLY_PROP_ENERGY_AVG = 46, - POWER_SUPPLY_PROP_CAPACITY = 47, - POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 48, - POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 49, - POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 50, - POWER_SUPPLY_PROP_CAPACITY_LEVEL = 51, - POWER_SUPPLY_PROP_TEMP = 52, - POWER_SUPPLY_PROP_TEMP_MAX = 53, - POWER_SUPPLY_PROP_TEMP_MIN = 54, - POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 55, - POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 56, - POWER_SUPPLY_PROP_TEMP_AMBIENT = 57, - POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 58, - POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 59, - POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 60, - POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 61, - POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 62, - POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 63, - POWER_SUPPLY_PROP_TYPE = 64, - POWER_SUPPLY_PROP_USB_TYPE = 65, - POWER_SUPPLY_PROP_SCOPE = 66, - POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 67, - POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 68, - POWER_SUPPLY_PROP_CALIBRATE = 69, - POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 70, - POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 71, - POWER_SUPPLY_PROP_MANUFACTURE_DAY = 72, - POWER_SUPPLY_PROP_MODEL_NAME = 73, - POWER_SUPPLY_PROP_MANUFACTURER = 74, - POWER_SUPPLY_PROP_SERIAL_NUMBER = 75, -}; - -enum power_supply_charge_behaviour { - POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, - POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, - POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, -}; - -struct power_supply; - -union power_supply_propval; - -struct power_supply_desc { - const char *name; - enum power_supply_type type; - u8 charge_behaviours; - const enum power_supply_usb_type *usb_types; - size_t num_usb_types; - const enum power_supply_property *properties; - size_t num_properties; - int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *); - int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *); - int (*property_is_writeable)(struct power_supply *, enum power_supply_property); - void (*external_power_changed)(struct power_supply *); - void (*set_charged)(struct power_supply *); - bool no_thermal; - int use_for_apm; -}; - -struct power_supply_battery_info; - -struct power_supply { - const struct power_supply_desc *desc; - char **supplied_to; - size_t num_supplicants; - char **supplied_from; - size_t num_supplies; - struct device_node *of_node; - void *drv_data; - struct device dev; - struct work_struct changed_work; - struct delayed_work deferred_register_work; - spinlock_t changed_lock; - bool changed; - bool initialized; - bool removing; - atomic_t use_cnt; - struct power_supply_battery_info *battery_info; - struct thermal_zone_device *tzd; - struct thermal_cooling_device *tcd; -}; - -struct power_supply_maintenance_charge_table; - -struct power_supply_battery_ocv_table; - -struct power_supply_resistance_temp_table; - -struct power_supply_vbat_ri_table; - -struct power_supply_battery_info { - unsigned int technology; - int energy_full_design_uwh; - int charge_full_design_uah; - int voltage_min_design_uv; - int voltage_max_design_uv; - int tricklecharge_current_ua; - int precharge_current_ua; - int precharge_voltage_max_uv; - int charge_term_current_ua; - int charge_restart_voltage_uv; - int overvoltage_limit_uv; - int constant_charge_current_max_ua; - int constant_charge_voltage_max_uv; - struct power_supply_maintenance_charge_table *maintenance_charge; - int maintenance_charge_size; - int alert_low_temp_charge_current_ua; - int alert_low_temp_charge_voltage_uv; - int alert_high_temp_charge_current_ua; - int alert_high_temp_charge_voltage_uv; - int factory_internal_resistance_uohm; - int factory_internal_resistance_charging_uohm; - int ocv_temp[20]; - int temp_ambient_alert_min; - int temp_ambient_alert_max; - int temp_alert_min; - int temp_alert_max; - int temp_min; - int temp_max; - struct power_supply_battery_ocv_table *ocv_table[20]; - int ocv_table_size[20]; - struct power_supply_resistance_temp_table *resist_table; - int resist_table_size; - struct power_supply_vbat_ri_table *vbat2ri_discharging; - int vbat2ri_discharging_size; - struct power_supply_vbat_ri_table *vbat2ri_charging; - int vbat2ri_charging_size; - int bti_resistance_ohm; - int bti_resistance_tolerance; -}; - -struct power_supply_maintenance_charge_table { - int charge_current_max_ua; - int charge_voltage_max_uv; - int charge_safety_timer_minutes; -}; - -struct power_supply_battery_ocv_table { - int ocv; - int capacity; -}; - -struct power_supply_resistance_temp_table { - int temp; - int resistance; -}; - -struct power_supply_vbat_ri_table { - int vbat_uv; - int ri_uohm; -}; - -union power_supply_propval { - int intval; - const char *strval; -}; - -struct drop_reason_list { - const char * const *reasons; - size_t n_reasons; -}; - -struct skb_checksum_ops { - __wsum (*update)(const void *, int, __wsum); - __wsum (*combine)(__wsum, __wsum, int, int); -}; - -struct page_frag_cache { - void *va; - __u16 offset; - __u16 size; - unsigned int pagecnt_bias; - bool pfmemalloc; -}; - -struct page_frag_1k { - void *va; - u16 offset; - bool pfmemalloc; -}; - -struct napi_alloc_cache { - struct page_frag_cache page; - struct page_frag_1k page_small; - unsigned int skb_count; - void *skb_cache[64]; -}; - -enum skb_drop_reason_subsys { - SKB_DROP_REASON_SUBSYS_CORE = 0, - SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, - SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, - SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 3, - SKB_DROP_REASON_SUBSYS_NUM = 4, -}; - -enum { - SCM_TSTAMP_SND = 0, - SCM_TSTAMP_SCHED = 1, - SCM_TSTAMP_ACK = 2, -}; - -struct mmpin { - struct user_struct *user; - unsigned int num_pg; -}; - -struct ubuf_info_msgzc { - struct ubuf_info ubuf; +struct btrfs_ref { + enum btrfs_ref_type type; + enum btrfs_delayed_ref_action action; + bool skip_qgroup; + u64 bytenr; + u64 len; + u64 owning_root; + u64 parent; union { - struct { - unsigned long desc; - void *ctx; - }; - struct { - u32 id; - u16 len; - u16 zerocopy: 1; - u32 bytelen; - }; - }; - struct mmpin mmp; -}; - -struct skb_seq_state { - __u32 lower_offset; - __u32 upper_offset; - __u32 frag_idx; - __u32 stepped_offset; - struct sk_buff *root_skb; - struct sk_buff *cur_skb; - __u8 *frag_data; - __u32 frag_off; -}; - -struct sd_flow_limit; - -struct softnet_data { - struct list_head poll_list; - struct sk_buff_head process_queue; - unsigned int processed; - unsigned int time_squeeze; - struct softnet_data *rps_ipi_list; - bool in_net_rx_action; - bool in_napi_threaded_poll; - struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; - struct Qdisc *output_queue; - struct Qdisc **output_queue_tailp; - struct sk_buff *completion_queue; - struct { - u16 recursion; - u8 more; - u8 skip_txqueue; - } xmit; - long: 64; - long: 64; - long: 64; - unsigned int input_queue_head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - call_single_data_t csd; - struct softnet_data *rps_ipi_next; - unsigned int cpu; - unsigned int input_queue_tail; - unsigned int received_rps; - unsigned int dropped; - struct sk_buff_head input_pkt_queue; - struct napi_struct backlog; - long: 64; - long: 64; - long: 64; - long: 64; - spinlock_t defer_lock; - int defer_count; - int defer_ipi_scheduled; - struct sk_buff *defer_list; - long: 64; - long: 64; - call_single_data_t defer_csd; -}; - -struct sd_flow_limit { - u64 count; - unsigned int num_buckets; - unsigned int history_head; - u16 history[128]; - u8 buckets[0]; -}; - -struct vlan_ethhdr { - union { - struct { - unsigned char h_dest[6]; - unsigned char h_source[6]; - }; - struct { - unsigned char h_dest[6]; - unsigned char h_source[6]; - } addrs; - }; - __be16 h_vlan_proto; - __be16 h_vlan_TCI; - __be16 h_vlan_encapsulated_proto; -}; - -struct mpls_shim_hdr { - __be32 label_stack_entry; -}; - -struct skb_free_array { - unsigned int skb_count; - void *skb_array[16]; -}; - -struct partial_page; - -struct splice_pipe_desc { - struct page **pages; - struct partial_page *partial; - int nr_pages; - unsigned int nr_pages_max; - const struct pipe_buf_operations *ops; - void (*spd_release)(struct splice_pipe_desc *, unsigned int); -}; - -struct partial_page { - unsigned int offset; - unsigned int len; - unsigned long private; -}; - -typedef int (*sendmsg_func)(struct sock *, struct msghdr *); - -struct ts_ops; - -struct ts_state; - -struct ts_config { - struct ts_ops *ops; - int flags; - unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *); - void (*finish)(struct ts_config *, struct ts_state *); -}; - -struct ts_ops { - const char *name; - struct ts_config * (*init)(const void *, unsigned int, gfp_t, int); - unsigned int (*find)(struct ts_config *, struct ts_state *); - void (*destroy)(struct ts_config *); - void * (*get_pattern)(struct ts_config *); - unsigned int (*get_pattern_len)(struct ts_config *); - struct module *owner; - struct list_head list; -}; - -struct ts_state { - unsigned int offset; - char cb[48]; -}; - -typedef size_t (*iov_ustep_f)(void __attribute__((btf_type_tag("user"))) *, size_t, size_t, void *, void *); - -typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); - -struct uncached_list { - spinlock_t lock; - struct list_head head; - struct list_head quarantine; -}; - -struct fib6_result; - -typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); - -struct fib6_result { - struct fib6_nh *nh; - struct fib6_info *f6i; - u32 fib6_flags; - u8 fib6_type; - struct rt6_info *rt6; -}; - -enum rt6_nud_state { - RT6_NUD_FAIL_HARD = -3, - RT6_NUD_FAIL_PROBE = -2, - RT6_NUD_FAIL_DO_RR = -1, - RT6_NUD_SUCCEED = 1, -}; - -enum netevent_notif_type { - NETEVENT_NEIGH_UPDATE = 1, - NETEVENT_REDIRECT = 2, - NETEVENT_DELAY_PROBE_TIME_UPDATE = 3, - NETEVENT_IPV4_MPATH_HASH_UPDATE = 4, - NETEVENT_IPV6_MPATH_HASH_UPDATE = 5, - NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE = 6, -}; - -enum netdev_reg_state { - NETREG_UNINITIALIZED = 0, - NETREG_REGISTERED = 1, - NETREG_UNREGISTERING = 2, - NETREG_UNREGISTERED = 3, - NETREG_RELEASED = 4, - NETREG_DUMMY = 5, -}; - -struct rd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - struct in6_addr dest; - __u8 opt[0]; -}; - -struct fib_dump_filter { - u32 table_id; - bool filter_set; - bool dump_routes; - bool dump_exceptions; - bool rtnl_held; - unsigned char protocol; - unsigned char rt_type; - unsigned int flags; - struct net_device *dev; -}; - -struct rt6_rtnl_dump_arg { - struct sk_buff *skb; - struct netlink_callback *cb; - struct net *net; - struct fib_dump_filter filter; -}; - -struct trace_event_raw_fib6_table_lookup { - struct trace_entry ent; - u32 tb_id; - int err; - int oif; - int iif; - __u8 tos; - __u8 scope; - __u8 flags; - __u8 src[16]; - __u8 dst[16]; - u16 sport; - u16 dport; - u8 proto; - u8 rt_type; - char name[16]; - __u8 gw[16]; - char __data[0]; -}; - -struct rt6_exception { - struct hlist_node hlist; - struct rt6_info *rt6i; - unsigned long stamp; - struct callback_head rcu; -}; - -struct ip6rd_flowi { - struct flowi6 fl6; - struct in6_addr gateway; -}; - -struct arg_dev_net_ip { - struct net *net; - struct in6_addr *addr; -}; - -struct rt6_mtu_change_arg { - struct net_device *dev; - unsigned int mtu; - struct fib6_info *f6i; -}; - -struct rt6_nh { - struct fib6_info *fib6_info; - struct fib6_config r_cfg; - struct list_head next; -}; - -typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); - -struct fib6_nh_dm_arg { - struct net *net; - const struct in6_addr *saddr; - int oif; - int flags; - struct fib6_nh *nh; -}; - -struct fib6_gc_args { - int timeout; - int more; -}; - -struct fib6_nh_match_arg { - const struct net_device *dev; - const struct in6_addr *gw; - struct fib6_nh *match; -}; - -struct in6_rtmsg { - struct in6_addr rtmsg_dst; - struct in6_addr rtmsg_src; - struct in6_addr rtmsg_gateway; - __u32 rtmsg_type; - __u16 rtmsg_dst_len; - __u16 rtmsg_src_len; - __u32 rtmsg_metric; - unsigned long rtmsg_info; - __u32 rtmsg_flags; - int rtmsg_ifindex; -}; - -struct fib6_nh_del_cached_rt_arg { - struct fib6_config *cfg; - struct fib6_info *f6i; -}; - -struct arg_netdev_event { - const struct net_device *dev; - union { - unsigned char nh_flags; - unsigned long event; + struct btrfs_data_ref data_ref; + struct btrfs_tree_ref tree_ref; }; }; -struct trace_event_data_offsets_fib6_table_lookup {}; +typedef int iterate_extent_inodes_t(u64, u64, u64, u64, void *); -struct fib6_nh_age_excptn_arg { - struct fib6_gc_args *gc_args; - unsigned long now; +struct btrfs_backref_walk_ctx { + u64 bytenr; + u64 extent_item_pos; + bool ignore_extent_item_pos; + bool skip_inode_ref_list; + struct btrfs_trans_handle *trans; + struct btrfs_fs_info *fs_info; + u64 time_seq; + struct ulist *refs; + struct ulist *roots; + bool (*cache_lookup)(u64, void *, const u64 **, int *); + void (*cache_store)(u64, const struct ulist *, void *); + iterate_extent_inodes_t *indirect_ref_iterator; + int (*check_extent_item)(u64, const struct btrfs_extent_item *, const struct extent_buffer *, void *); + bool (*skip_data_ref)(u64, u64, u64, void *); + void *user_ctx; }; -struct netevent_redirect { - struct dst_entry *old; - struct dst_entry *new; - struct neighbour *neigh; - const void *daddr; -}; - -struct fib6_nh_exception_dump_walker { - struct rt6_rtnl_dump_arg *dump; - struct fib6_info *rt; - unsigned int flags; - unsigned int skip; - unsigned int count; -}; - -struct fib6_nh_frl_arg { - u32 flags; - int oif; - int strict; - int *mpri; - bool *do_rr; - struct fib6_nh *nh; -}; - -struct fib6_nh_rd_arg { - struct fib6_result *res; - struct flowi6 *fl6; - const struct in6_addr *gw; - struct rt6_info **ret; -}; - -struct fib6_nh_excptn_arg { - struct rt6_info *rt; - int plen; -}; - -typedef long (*sys_call_ptr_t)(const struct pt_regs *); - -struct muldiv { - u32 multiplier; - u32 divider; -}; - -struct freq_desc { - bool use_msr_plat; - struct muldiv muldiv[16]; - u32 freqs[16]; - u32 mask; -}; - -enum xstate_copy_mode { - XSTATE_COPY_FP = 0, - XSTATE_COPY_FX = 1, - XSTATE_COPY_XSAVE = 2, -}; - -enum xfeature { - XFEATURE_FP = 0, - XFEATURE_SSE = 1, - XFEATURE_YMM = 2, - XFEATURE_BNDREGS = 3, - XFEATURE_BNDCSR = 4, - XFEATURE_OPMASK = 5, - XFEATURE_ZMM_Hi256 = 6, - XFEATURE_Hi16_ZMM = 7, - XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8, - XFEATURE_PKRU = 9, - XFEATURE_PASID = 10, - XFEATURE_CET_USER = 11, - XFEATURE_CET_KERNEL_UNUSED = 12, - XFEATURE_RSRVD_COMP_13 = 13, - XFEATURE_RSRVD_COMP_14 = 14, - XFEATURE_LBR = 15, - XFEATURE_RSRVD_COMP_16 = 16, - XFEATURE_XTILE_CFG = 17, - XFEATURE_XTILE_DATA = 18, - XFEATURE_MAX = 19, -}; - -struct inactive_task_frame { - unsigned long r15; - unsigned long r14; - unsigned long r13; - unsigned long r12; - unsigned long bx; - unsigned long bp; - unsigned long ret_addr; -}; - -struct linked_page; - -struct chain_allocator { - struct linked_page *chain; - unsigned int used_space; - gfp_t gfp_mask; - int safe_needed; -}; - -struct linked_page { - struct linked_page *next; - char data[4088]; -}; - -struct pbe { - void *address; - void *orig_address; - struct pbe *next; -}; - -struct mem_zone_bm_rtree; - -struct rtree_node; - -struct bm_position { - struct mem_zone_bm_rtree *zone; - struct rtree_node *node; - unsigned long node_pfn; - unsigned long cur_pfn; - int node_bit; -}; - -struct memory_bitmap { - struct list_head zones; - struct linked_page *p_list; - struct bm_position cur; -}; - -struct mem_zone_bm_rtree { +struct ulist_node { + u64 val; + u64 aux; struct list_head list; - struct list_head nodes; - struct list_head leaves; - unsigned long start_pfn; - unsigned long end_pfn; - struct rtree_node *rtree; - int levels; - unsigned int blocks; + struct rb_node rb_node; }; -struct rtree_node { - struct list_head list; - unsigned long *data; +struct ulist_iterator { + struct list_head *cur_list; }; -struct nosave_region { - struct list_head list; - unsigned long start_pfn; - unsigned long end_pfn; +struct btrfs_tree_parent_check { + u64 owner_root; + u64 transid; + struct btrfs_key first_key; + bool has_first_key; + u8 level; }; -struct swsusp_info { - struct new_utsname uts; - u32 version_code; - unsigned long num_physpages; - int cpus; - unsigned long image_pages; - unsigned long pages; - unsigned long size; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct btrfs_backref_iter { + u64 bytenr; + struct btrfs_path *path; + struct btrfs_fs_info *fs_info; + struct btrfs_key cur_key; + u32 item_ptr; + u32 cur_ptr; + u32 end_ptr; }; -struct mem_extent { - struct list_head hook; - unsigned long start; - unsigned long end; +struct rtattr { + unsigned short rta_len; + unsigned short rta_type; }; -enum rdmacg_resource_type { - RDMACG_RESOURCE_HCA_HANDLE = 0, - RDMACG_RESOURCE_HCA_OBJECT = 1, - RDMACG_RESOURCE_MAX = 2, -}; - -enum rdmacg_file_type { - RDMACG_RESOURCE_TYPE_MAX = 0, - RDMACG_RESOURCE_TYPE_STAT = 1, -}; - -struct rdmacg_resource { - int max; - int usage; -}; - -struct rdmacg_device; - -struct rdmacg_resource_pool { - struct rdmacg_device *device; - struct rdmacg_resource resources[2]; - struct list_head cg_node; - struct list_head dev_node; - u64 usage_sum; - int num_max_cnt; -}; - -struct rdmacg_device { - struct list_head dev_node; - struct list_head rpools; - char *name; -}; - -struct rdma_cgroup { - struct cgroup_subsys_state css; - struct list_head rpools; -}; - -struct bpf_verifier_stack_elem { - struct bpf_verifier_state st; - int insn_idx; - int prev_insn_idx; - struct bpf_verifier_stack_elem *next; - u32 log_pos; -}; - -struct bpf_kfunc_desc { - struct btf_func_model func_model; - u32 func_id; - s32 imm; - u16 offset; - unsigned long addr; -}; - -struct bpf_kfunc_desc_tab { - struct bpf_kfunc_desc descs[256]; - u32 nr_descs; -}; - -struct bpf_kfunc_btf { - struct btf *btf; - struct module *module; - u16 offset; -}; - -struct bpf_kfunc_btf_tab { - struct bpf_kfunc_btf descs[256]; - u32 nr_descs; -}; - -struct bpf_reg_types { - const enum bpf_reg_type types[10]; - u32 *btf_id; -}; - -enum { - INSN_F_FRAMENO_MASK = 7, - INSN_F_SPI_MASK = 63, - INSN_F_SPI_SHIFT = 3, - INSN_F_STACK_ACCESS = 512, -}; - -enum btf_func_linkage { - BTF_FUNC_STATIC = 0, - BTF_FUNC_GLOBAL = 1, - BTF_FUNC_EXTERN = 2, -}; - -enum special_kfunc_type { - KF_bpf_obj_new_impl = 0, - KF_bpf_obj_drop_impl = 1, - KF_bpf_refcount_acquire_impl = 2, - KF_bpf_list_push_front_impl = 3, - KF_bpf_list_push_back_impl = 4, - KF_bpf_list_pop_front = 5, - KF_bpf_list_pop_back = 6, - KF_bpf_cast_to_kern_ctx = 7, - KF_bpf_rdonly_cast = 8, - KF_bpf_rcu_read_lock = 9, - KF_bpf_rcu_read_unlock = 10, - KF_bpf_rbtree_remove = 11, - KF_bpf_rbtree_add_impl = 12, - KF_bpf_rbtree_first = 13, - KF_bpf_dynptr_from_skb = 14, - KF_bpf_dynptr_from_xdp = 15, - KF_bpf_dynptr_slice = 16, - KF_bpf_dynptr_slice_rdwr = 17, - KF_bpf_dynptr_clone = 18, - KF_bpf_percpu_obj_new_impl = 19, - KF_bpf_percpu_obj_drop_impl = 20, - KF_bpf_throw = 21, - KF_bpf_iter_css_task_new = 22, -}; - -enum bpf_core_relo_kind { - BPF_CORE_FIELD_BYTE_OFFSET = 0, - BPF_CORE_FIELD_BYTE_SIZE = 1, - BPF_CORE_FIELD_EXISTS = 2, - BPF_CORE_FIELD_SIGNED = 3, - BPF_CORE_FIELD_LSHIFT_U64 = 4, - BPF_CORE_FIELD_RSHIFT_U64 = 5, - BPF_CORE_TYPE_ID_LOCAL = 6, - BPF_CORE_TYPE_ID_TARGET = 7, - BPF_CORE_TYPE_EXISTS = 8, - BPF_CORE_TYPE_SIZE = 9, - BPF_CORE_ENUMVAL_EXISTS = 10, - BPF_CORE_ENUMVAL_VALUE = 11, - BPF_CORE_TYPE_MATCHES = 12, -}; - -enum { - DISCOVERED = 16, - EXPLORED = 32, - FALLTHROUGH = 1, - BRANCH = 2, -}; - -enum { - DONE_EXPLORING = 0, - KEEP_EXPLORING = 1, -}; - -enum bpf_cond_pseudo_jmp { - BPF_MAY_GOTO = 0, -}; - -enum reg_arg_type { - SRC_OP = 0, - DST_OP = 1, - DST_OP_NO_MARK = 2, -}; - -enum exact_level { - NOT_EXACT = 0, - EXACT = 1, - RANGE_WITHIN = 2, -}; - -enum { - REASON_BOUNDS = -1, - REASON_TYPE = -2, - REASON_PATHS = -3, - REASON_LIMIT = -4, - REASON_STACK = -5, -}; - -enum bpf_access_src { - ACCESS_DIRECT = 1, - ACCESS_HELPER = 2, -}; - -enum kfunc_ptr_arg_type { - KF_ARG_PTR_TO_CTX = 0, - KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, - KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, - KF_ARG_PTR_TO_DYNPTR = 3, - KF_ARG_PTR_TO_ITER = 4, - KF_ARG_PTR_TO_LIST_HEAD = 5, - KF_ARG_PTR_TO_LIST_NODE = 6, - KF_ARG_PTR_TO_BTF_ID = 7, - KF_ARG_PTR_TO_MEM = 8, - KF_ARG_PTR_TO_MEM_SIZE = 9, - KF_ARG_PTR_TO_CALLBACK = 10, - KF_ARG_PTR_TO_RB_ROOT = 11, - KF_ARG_PTR_TO_RB_NODE = 12, - KF_ARG_PTR_TO_NULL = 13, - KF_ARG_PTR_TO_CONST_STR = 14, - KF_ARG_PTR_TO_MAP = 15, -}; - -enum { - KF_ARG_DYNPTR_ID = 0, - KF_ARG_LIST_HEAD_ID = 1, - KF_ARG_LIST_NODE_ID = 2, - KF_ARG_RB_ROOT_ID = 3, - KF_ARG_RB_NODE_ID = 4, -}; - -enum { - BTF_TRACING_TYPE_TASK = 0, - BTF_TRACING_TYPE_FILE = 1, - BTF_TRACING_TYPE_VMA = 2, - MAX_BTF_TRACING_TYPE = 3, -}; - -enum sk_action { - SK_DROP = 0, - SK_PASS = 1, -}; - -enum { - AT_PKT_END = -1, - BEYOND_PKT_END = -2, -}; - -enum { - BPF_MAX_LOOPS = 8388608, -}; - -struct btf_var_secinfo { - __u32 type; - __u32 offset; - __u32 size; -}; - -struct bpf_iter_meta__safe_trusted { - struct seq_file *seq; -}; - -struct bpf_iter__task__safe_trusted { - struct bpf_iter_meta *meta; - struct task_struct *task; -}; - -struct linux_binprm__safe_trusted { - struct file *file; -}; - -struct file__safe_trusted { - struct inode *f_inode; -}; - -struct dentry__safe_trusted { - struct inode *d_inode; -}; - -struct socket__safe_trusted { - struct sock *sk; -}; - -struct task_struct__safe_rcu { - const cpumask_t *cpus_ptr; - struct css_set __attribute__((btf_type_tag("rcu"))) *cgroups; - struct task_struct __attribute__((btf_type_tag("rcu"))) *real_parent; - struct task_struct *group_leader; -}; - -struct cgroup__safe_rcu { - struct kernfs_node *kn; -}; - -struct css_set__safe_rcu { - struct cgroup *dfl_cgrp; -}; - -struct mm_struct__safe_rcu_or_null { - struct file __attribute__((btf_type_tag("rcu"))) *exe_file; -}; - -struct sk_buff__safe_rcu_or_null { - struct sock *sk; -}; - -struct request_sock__safe_rcu_or_null { - struct sock *sk; -}; - -struct btf_param { - __u32 name_off; - __u32 type; -}; - -struct btf_array { - __u32 type; - __u32 index_type; - __u32 nelems; -}; - -struct bpf_iter; - -typedef void (*bpf_insn_print_t)(void *, const char *, ...); - -typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *); - -typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64); - -struct bpf_insn_cbs { - bpf_insn_print_t cb_print; - bpf_insn_revmap_call_t cb_call; - bpf_insn_print_imm_t cb_imm; - void *private_data; -}; - -struct btf_id_set { - u32 cnt; - u32 ids[0]; -}; - -typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); - -struct bpf_core_relo { - __u32 insn_off; - __u32 type_id; - __u32 access_str_off; - enum bpf_core_relo_kind kind; -}; - -struct bpf_core_ctx { - struct bpf_verifier_log *log; - const struct btf *btf; -}; - -struct bpf_struct_ops; - -struct bpf_struct_ops_arg_info; - -struct bpf_struct_ops_desc { - struct bpf_struct_ops *st_ops; - const struct btf_type *type; - const struct btf_type *value_type; - u32 type_id; - u32 value_id; - struct bpf_struct_ops_arg_info *arg_info; -}; - -struct bpf_struct_ops { - const struct bpf_verifier_ops *verifier_ops; - int (*init)(struct btf *); - int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); - int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); - int (*reg)(void *); - void (*unreg)(void *); - int (*update)(void *, void *); - int (*validate)(void *); - void *cfi_stubs; - struct module *owner; - const char *name; - struct btf_func_model func_models[64]; -}; - -struct bpf_struct_ops_arg_info { - struct bpf_ctx_arg_aux *info; - u32 cnt; -}; - -struct bpf_kfunc_call_arg_meta { - struct btf *btf; - u32 func_id; - u32 kfunc_flags; - const struct btf_type *func_proto; - const char *func_name; - u32 ref_obj_id; - u8 release_regno; - bool r0_rdonly; - u32 ret_btf_id; - u64 r0_size; - u32 subprogno; - struct { - u64 value; - bool found; - } arg_constant; - struct btf *arg_btf; - u32 arg_btf_id; - bool arg_owning_ref; - struct { - struct btf_field *field; - } arg_list_head; - struct { - struct btf_field *field; - } arg_rbtree_root; - struct { - enum bpf_dynptr_type type; - u32 id; - u32 ref_obj_id; - } initialized_dynptr; - struct { - u8 spi; - u8 frameno; - } iter; - u64 mem_size; -}; - -struct bpf_call_arg_meta { - struct bpf_map *map_ptr; - bool raw_mode; - bool pkt_access; - u8 release_regno; - int regno; - int access_size; - int mem_size; - u64 msize_max_value; - int ref_obj_id; - int dynptr_id; - int map_uid; - int func_id; - struct btf *btf; - u32 btf_id; - struct btf *ret_btf; - u32 ret_btf_id; - u32 subprogno; - struct btf_field *kptr_field; -}; - -struct bpf_bprintf_data { - u32 *bin_args; - char *buf; - bool get_bin_args; - bool get_buf; -}; - -struct bpf_sanitize_info { - struct bpf_insn_aux_data aux; - bool mask_to_left; -}; - -typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); - -enum fid_type { - FILEID_ROOT = 0, - FILEID_INO32_GEN = 1, - FILEID_INO32_GEN_PARENT = 2, - FILEID_BTRFS_WITHOUT_PARENT = 77, - FILEID_BTRFS_WITH_PARENT = 78, - FILEID_BTRFS_WITH_PARENT_ROOT = 79, - FILEID_UDF_WITHOUT_PARENT = 81, - FILEID_UDF_WITH_PARENT = 82, - FILEID_NILFS_WITHOUT_PARENT = 97, - FILEID_NILFS_WITH_PARENT = 98, - FILEID_FAT_WITHOUT_PARENT = 113, - FILEID_FAT_WITH_PARENT = 114, - FILEID_INO64_GEN = 129, - FILEID_INO64_GEN_PARENT = 130, - FILEID_LUSTRE = 151, - FILEID_BCACHEFS_WITHOUT_PARENT = 177, - FILEID_BCACHEFS_WITH_PARENT = 178, - FILEID_KERNFS = 254, - FILEID_INVALID = 255, -}; - -struct file_handle { - __u32 handle_bytes; - int handle_type; - unsigned char f_handle[0]; -}; - -struct sysctl_alias { - const char *kernel_param; - const char *sysctl_param; -}; - -struct akcipher_request; - -struct crypto_akcipher; - -struct akcipher_alg { - int (*sign)(struct akcipher_request *); - int (*verify)(struct akcipher_request *); - int (*encrypt)(struct akcipher_request *); - int (*decrypt)(struct akcipher_request *); - int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int); - int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int); - unsigned int (*max_size)(struct crypto_akcipher *); - int (*init)(struct crypto_akcipher *); - void (*exit)(struct crypto_akcipher *); +struct aead_request; + +struct aead_alg { + int (*setkey)(struct crypto_aead *, const u8 *, unsigned int); + int (*setauthsize)(struct crypto_aead *, unsigned int); + int (*encrypt)(struct aead_request *); + int (*decrypt)(struct aead_request *); + int (*init)(struct crypto_aead *); + void (*exit)(struct crypto_aead *); + unsigned int ivsize; + unsigned int maxauthsize; + unsigned int chunksize; struct crypto_alg base; }; -struct akcipher_request { +struct aead_request { struct crypto_async_request base; + unsigned int assoclen; + unsigned int cryptlen; + u8 *iv; struct scatterlist *src; struct scatterlist *dst; - unsigned int src_len; - unsigned int dst_len; void *__ctx[0]; }; -struct crypto_akcipher { - unsigned int reqsize; +struct aead_instance { + void (*free)(struct aead_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct aead_alg alg; + }; +}; + +struct crypto_rng; + +struct rng_alg { + int (*generate)(struct crypto_rng *, const u8 *, unsigned int, u8 *, unsigned int); + int (*seed)(struct crypto_rng *, const u8 *, unsigned int); + void (*set_ent)(struct crypto_rng *, const u8 *, unsigned int); + unsigned int seedsize; + struct crypto_alg base; +}; + +struct crypto_rng { struct crypto_tfm base; }; -struct crypto_akcipher_sync_data { - struct crypto_akcipher *tfm; - const void *src; +struct crypto_aead_spawn { + struct crypto_spawn base; +}; + +struct crypto_sync_skcipher; + +struct aead_geniv_ctx { + spinlock_t lock; + struct crypto_aead *child; + struct crypto_sync_skcipher *sknull; + u8 salt[0]; +}; + +enum rq_qos_id { + RQ_QOS_WBT = 0, + RQ_QOS_LATENCY = 1, + RQ_QOS_COST = 2, +}; + +struct rq_wait; + +typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); + +struct rq_qos_wait_data { + struct wait_queue_entry wq; + struct task_struct *task; + struct rq_wait *rqw; + acquire_inflight_cb_t *cb; + void *private_data; + bool got_token; +}; + +struct rq_qos_ops; + +struct rq_qos { + const struct rq_qos_ops *ops; + struct gendisk *disk; + enum rq_qos_id id; + struct rq_qos *next; + struct dentry *debugfs_dir; +}; + +struct rq_qos_ops { + void (*throttle)(struct rq_qos *, struct bio *); + void (*track)(struct rq_qos *, struct request *, struct bio *); + void (*merge)(struct rq_qos *, struct request *, struct bio *); + void (*issue)(struct rq_qos *, struct request *); + void (*requeue)(struct rq_qos *, struct request *); + void (*done)(struct rq_qos *, struct request *); + void (*done_bio)(struct rq_qos *, struct bio *); + void (*cleanup)(struct rq_qos *, struct bio *); + void (*queue_depth_changed)(struct rq_qos *); + void (*exit)(struct rq_qos *); + const struct blk_mq_debugfs_attr *debugfs_attrs; +}; + +struct rq_wait { + wait_queue_head_t wait; + atomic_t inflight; +}; + +struct rq_depth { + unsigned int max_depth; + int scale_step; + bool scaled_max; + unsigned int queue_depth; + unsigned int default_depth; +}; + +typedef void cleanup_cb_t(struct rq_wait *, void *); + +typedef unsigned long mpi_limb_t; + +typedef mpi_limb_t *mpi_ptr_t; + +typedef int mpi_size_t; + +struct karatsuba_ctx { + struct karatsuba_ctx *next; + mpi_ptr_t tspace; + mpi_size_t tspace_size; + mpi_ptr_t tp; + mpi_size_t tp_size; +}; + +typedef uint32_t U32; + +typedef uint8_t U8; + +typedef u16 uint16_t; + +typedef uint16_t U16; + +typedef uint8_t BYTE; + +typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; +} ZSTD_seqSymbol; + +typedef enum { + bt_raw = 0, + bt_rle = 1, + bt_compressed = 2, + bt_reserved = 3, +} blockType_e; + +typedef enum { + set_basic = 0, + set_rle = 1, + set_compressed = 2, + set_repeat = 3, +} symbolEncodingType_e; + +typedef enum { + ZSTD_lo_isRegularOffset = 0, + ZSTD_lo_isLongOffset = 1, +} ZSTD_longOffset_e; + +typedef s16 int16_t; + +typedef int16_t S16; + +typedef uint64_t U64; + +typedef struct { + U32 fastMode; + U32 tableLog; +} ZSTD_seqSymbol_header; + +typedef __kernel_long_t __kernel_ptrdiff_t; + +typedef __kernel_ptrdiff_t ptrdiff_t; + +typedef U32 HUF_DTable; + +typedef struct { + ZSTD_seqSymbol LLTable[513]; + ZSTD_seqSymbol OFTable[257]; + ZSTD_seqSymbol MLTable[513]; + HUF_DTable hufTable[4097]; + U32 rep[3]; + U32 workspace[157]; +} ZSTD_entropyDTables_t; + +typedef enum { + ZSTD_frame = 0, + ZSTD_skippableFrame = 1, +} ZSTD_frameType_e; + +typedef struct { + unsigned long long frameContentSize; + unsigned long long windowSize; + unsigned int blockSizeMax; + ZSTD_frameType_e frameType; + unsigned int headerSize; + unsigned int dictID; + unsigned int checksumFlag; +} ZSTD_frameHeader; + +typedef enum { + ZSTDds_getFrameHeaderSize = 0, + ZSTDds_decodeFrameHeader = 1, + ZSTDds_decodeBlockHeader = 2, + ZSTDds_decompressBlock = 3, + ZSTDds_decompressLastBlock = 4, + ZSTDds_checkChecksum = 5, + ZSTDds_decodeSkippableHeader = 6, + ZSTDds_skipFrame = 7, +} ZSTD_dStage; + +struct xxh64_state { + uint64_t total_len; + uint64_t v1; + uint64_t v2; + uint64_t v3; + uint64_t v4; + uint64_t mem64[4]; + uint32_t memsize; +}; + +typedef enum { + ZSTD_f_zstd1 = 0, + ZSTD_f_zstd1_magicless = 1, +} ZSTD_format_e; + +typedef enum { + ZSTD_d_validateChecksum = 0, + ZSTD_d_ignoreChecksum = 1, +} ZSTD_forceIgnoreChecksum_e; + +typedef void * (*ZSTD_allocFunction)(void *, size_t); + +typedef void (*ZSTD_freeFunction)(void *, void *); + +typedef struct { + ZSTD_allocFunction customAlloc; + ZSTD_freeFunction customFree; + void *opaque; +} ZSTD_customMem; + +typedef enum { + ZSTD_use_indefinitely = -1, + ZSTD_dont_use = 0, + ZSTD_use_once = 1, +} ZSTD_dictUses_e; + +struct ZSTD_DDict_s; + +typedef struct ZSTD_DDict_s ZSTD_DDict; + +typedef struct { + const ZSTD_DDict **ddictPtrTable; + size_t ddictPtrTableSize; + size_t ddictPtrCount; +} ZSTD_DDictHashSet; + +typedef enum { + ZSTD_rmd_refSingleDDict = 0, + ZSTD_rmd_refMultipleDDicts = 1, +} ZSTD_refMultipleDDicts_e; + +typedef enum { + zdss_init = 0, + zdss_loadHeader = 1, + zdss_read = 2, + zdss_load = 3, + zdss_flush = 4, +} ZSTD_dStreamStage; + +typedef enum { + ZSTD_bm_buffered = 0, + ZSTD_bm_stable = 1, +} ZSTD_bufferMode_e; + +struct ZSTD_outBuffer_s { void *dst; - unsigned int slen; - unsigned int dlen; - struct akcipher_request *req; - struct crypto_wait cwait; - struct scatterlist sg; - u8 *buf; + size_t size; + size_t pos; }; -struct crypto_sig { - struct crypto_tfm base; +typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; + +typedef enum { + ZSTD_not_in_dst = 0, + ZSTD_in_dst = 1, + ZSTD_split = 2, +} ZSTD_litLocation_e; + +struct ZSTD_DCtx_s { + const ZSTD_seqSymbol *LLTptr; + const ZSTD_seqSymbol *MLTptr; + const ZSTD_seqSymbol *OFTptr; + const HUF_DTable *HUFptr; + ZSTD_entropyDTables_t entropy; + U32 workspace[640]; + const void *previousDstEnd; + const void *prefixStart; + const void *virtualStart; + const void *dictEnd; + size_t expected; + ZSTD_frameHeader fParams; + U64 processedCSize; + U64 decodedSize; + blockType_e bType; + ZSTD_dStage stage; + U32 litEntropy; + U32 fseEntropy; + struct xxh64_state xxhState; + size_t headerSize; + ZSTD_format_e format; + ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum; + U32 validateChecksum; + const BYTE *litPtr; + ZSTD_customMem customMem; + size_t litSize; + size_t rleSize; + size_t staticSize; + int bmi2; + ZSTD_DDict *ddictLocal; + const ZSTD_DDict *ddict; + U32 dictID; + int ddictIsCold; + ZSTD_dictUses_e dictUses; + ZSTD_DDictHashSet *ddictSet; + ZSTD_refMultipleDDicts_e refMultipleDDicts; + ZSTD_dStreamStage streamStage; + char *inBuff; + size_t inBuffSize; + size_t inPos; + size_t maxWindowSize; + char *outBuff; + size_t outBuffSize; + size_t outStart; + size_t outEnd; + size_t lhSize; + U32 hostageByte; + int noForwardProgress; + ZSTD_bufferMode_e outBufferMode; + ZSTD_outBuffer expectedOutBuffer; + BYTE *litBuffer; + const BYTE *litBufferEnd; + ZSTD_litLocation_e litBufferLocation; + BYTE litExtraBuffer[65568]; + BYTE headerBuffer[18]; + size_t oversizedDuration; }; +typedef struct ZSTD_DCtx_s ZSTD_DCtx; + +struct ZSTD_DDict_s { + void *dictBuffer; + const void *dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; +}; + +typedef enum { + not_streaming = 0, + is_streaming = 1, +} streaming_operation; + +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; + +typedef struct { + size_t bitContainer; + unsigned int bitsConsumed; + const char *ptr; + const char *start; + const char *limitPtr; +} BIT_DStream_t; + +typedef struct { + size_t state; + const ZSTD_seqSymbol *table; +} ZSTD_fseState; + +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[3]; +} seqState_t; + +typedef enum { + BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3, +} BIT_DStream_status; + +typedef enum { + ZSTD_no_overlap = 0, + ZSTD_overlap_src_before_dst = 1, +} ZSTD_overlap_e; + +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; + +struct nvs_region { + __u64 phys_start; + __u64 size; + struct list_head node; +}; + +struct nvs_page { + unsigned long phys_start; + unsigned int size; + void *kaddr; + void *data; + bool unmap; + struct list_head node; +}; + +struct acpi_data_node; + +struct acpi_data_node_attr { + struct attribute attr; + ssize_t (*show)(struct acpi_data_node *, char *); + ssize_t (*store)(struct acpi_data_node *, const char *, size_t); +}; + +struct acpi_data_node { + const char *name; + acpi_handle handle; + struct fwnode_handle fwnode; + struct fwnode_handle *parent; + struct acpi_device_data data; + struct list_head sibling; + struct kobject kobj; + struct completion kobj_done; +}; + +enum utf16_endian { + UTF16_HOST_ENDIAN = 0, + UTF16_LITTLE_ENDIAN = 1, + UTF16_BIG_ENDIAN = 2, +}; + +struct acpi_hardware_id { + struct list_head list; + const char *id; +}; + +typedef u16 wchar_t; + +struct acpi_object_list { + u32 count; + union acpi_object *pointer; +}; + +struct acpi_prmt_module_info { + u16 revision; + u16 length; + u8 module_guid[16]; + u16 major_rev; + u16 minor_rev; + u16 handler_info_count; + u32 handler_info_offset; + u64 mmio_list_pointer; +} __attribute__((packed)); + +typedef struct { + __u8 b[16]; +} guid_t; + +struct acpi_prmt_handler_info { + u16 revision; + u16 length; + u8 handler_guid[16]; + u64 handler_address; + u64 static_data_buffer_address; + u64 acpi_param_buffer_address; +} __attribute__((packed)); + +struct prm_buffer { + u8 prm_status; + u64 efi_status; + u8 prm_cmd; + guid_t handler_guid; +} __attribute__((packed)); + +typedef unsigned long efi_status_t; + +struct prm_handler_info { + guid_t guid; + efi_status_t (*handler_addr)(u64, void *); + u64 static_data_buffer_addr; + u64 acpi_param_buffer_addr; + struct list_head handler_list; +}; + +struct prm_mmio_info; + +struct prm_module_info { + guid_t guid; + u16 major_rev; + u16 minor_rev; + u16 handler_count; + struct prm_mmio_info *mmio_info; + bool updatable; + struct list_head module_list; + struct prm_handler_info handlers[0]; +}; + +struct prm_mmio_addr_range { + u64 phys_addr; + u64 virt_addr; + u32 length; +} __attribute__((packed)); + +struct prm_mmio_info { + u64 mmio_count; + struct prm_mmio_addr_range addr_ranges[0]; +}; + +union acpi_subtable_headers; + +typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); + +struct acpi_subtable_header { + u8 type; + u8 length; +}; + +struct acpi_hmat_structure { + u16 type; + u16 reserved; + u32 length; +}; + +struct acpi_prmt_module_header { + u16 revision; + u16 length; +}; + +struct acpi_cedt_header { + u8 type; + u8 reserved; + u16 length; +}; + +struct acpi_cdat_header { + u8 type; + u8 reserved; + u16 length; +}; + +union acpi_subtable_headers { + struct acpi_subtable_header common; + struct acpi_hmat_structure hmat; + struct acpi_prmt_module_header prmt; + struct acpi_cedt_header cedt; + struct acpi_cdat_header cdat; +}; + +struct prm_context_buffer { + char signature[4]; + u16 revision; + u16 reserved; + guid_t identifier; + u64 static_data_buffer; + struct prm_mmio_info *mmio_ranges; +}; + +typedef u64 acpi_integer; + +typedef struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; + +struct acpi_init_walk_info { + u32 table_index; + u32 object_count; + u32 method_count; + u32 serial_method_count; + u32 non_serial_method_count; + u32 serialized_method_count; + u32 device_count; + u32 op_region_count; + u32 field_count; + u32 buffer_count; + u32 package_count; + u32 op_region_init; + u32 field_init; + u32 buffer_init; + u32 package_init; + acpi_owner_id owner_id; +}; + +struct acpi_evaluate_info; + +typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **); + +struct acpi_repair_info { + char name[4]; + acpi_repair_function repair_function; +}; + +union acpi_predefined_info; + +struct acpi_evaluate_info { + struct acpi_namespace_node *prefix_node; + const char *relative_pathname; + union acpi_operand_object **parameters; + struct acpi_namespace_node *node; + union acpi_operand_object *obj_desc; + char *full_pathname; + const union acpi_predefined_info *predefined; + union acpi_operand_object *return_object; + union acpi_operand_object *parent_package; + u32 return_flags; + u32 return_btype; + u16 param_count; + u16 node_flags; + u8 pass_number; + u8 return_object_type; + u8 flags; +}; + +struct acpi_name_info { + char name[4]; + u16 argument_list; + u8 expected_btypes; +} __attribute__((packed)); + +struct acpi_package_info { + u8 type; + u8 object_type1; + u8 count1; + u8 object_type2; + u8 count2; + u16 reserved; +} __attribute__((packed)); + +struct acpi_package_info2 { + u8 type; + u8 count; + u8 object_type[4]; + u8 reserved; +}; + +struct acpi_package_info3 { + u8 type; + u8 count; + u8 object_type[2]; + u8 tail_object_type; + u16 reserved; +} __attribute__((packed)); + +struct acpi_package_info4 { + u8 type; + u8 object_type1; + u8 count1; + u8 sub_object_types; + u8 pkg_count; + u16 reserved; +} __attribute__((packed)); + +union acpi_predefined_info { + struct acpi_name_info info; + struct acpi_package_info ret_info; + struct acpi_package_info2 ret_info2; + struct acpi_package_info3 ret_info3; + struct acpi_package_info4 ret_info4; +}; + +struct con_driver { + const struct consw *con; + const char *desc; + struct device *dev; + int node; + int first; + int last; + int flag; +}; + +struct vc { + struct vc_data *d; + struct work_struct SAK_work; +}; + +struct interval { + uint32_t first; + uint32_t last; +}; + +enum { + blank_off = 0, + blank_normal_wait = 1, + blank_vesa_wait = 2, +}; + +enum vc_ctl_state { + ESnormal = 0, + ESesc = 1, + ESsquare = 2, + ESgetpars = 3, + ESfunckey = 4, + EShash = 5, + ESsetG0 = 6, + ESsetG1 = 7, + ESpercent = 8, + EScsiignore = 9, + ESnonstd = 10, + ESpalette = 11, + ESosc = 12, + ESANSI_first = 12, + ESapc = 13, + ESpm = 14, + ESdcs = 15, + ESANSI_last = 15, +}; + +enum { + EPecma = 0, + EPdec = 1, + EPeq = 2, + EPgt = 3, + EPlt = 4, +}; + +enum translation_map { + LAT1_MAP = 0, + GRAF_MAP = 1, + IBMPC_MAP = 2, + USER_MAP = 3, + FIRST_MAP = 0, + LAST_MAP = 3, +}; + +enum CSI_J { + CSI_J_CURSOR_TO_END = 0, + CSI_J_START_TO_CURSOR = 1, + CSI_J_VISIBLE = 2, + CSI_J_FULL = 3, +}; + +enum { + ASCII_NULL = 0, + ASCII_BELL = 7, + ASCII_BACKSPACE = 8, + ASCII_IGNORE_FIRST = 8, + ASCII_HTAB = 9, + ASCII_LINEFEED = 10, + ASCII_VTAB = 11, + ASCII_FORMFEED = 12, + ASCII_CAR_RET = 13, + ASCII_IGNORE_LAST = 13, + ASCII_SHIFTOUT = 14, + ASCII_SHIFTIN = 15, + ASCII_CANCEL = 24, + ASCII_SUBSTITUTE = 26, + ASCII_ESCAPE = 27, + ASCII_CSI_IGNORE_FIRST = 32, + ASCII_CSI_IGNORE_LAST = 63, + ASCII_DEL = 127, + ASCII_EXT_CSI = 155, +}; + +enum { + CSI_DEC_hl_CURSOR_KEYS = 1, + CSI_DEC_hl_132_COLUMNS = 3, + CSI_DEC_hl_REVERSE_VIDEO = 5, + CSI_DEC_hl_ORIGIN_MODE = 6, + CSI_DEC_hl_AUTOWRAP = 7, + CSI_DEC_hl_AUTOREPEAT = 8, + CSI_DEC_hl_MOUSE_X10 = 9, + CSI_DEC_hl_SHOW_CURSOR = 25, + CSI_DEC_hl_MOUSE_VT200 = 1000, +}; + +enum { + CSI_K_CURSOR_TO_LINEEND = 0, + CSI_K_LINESTART_TO_CURSOR = 1, + CSI_K_LINE = 2, +}; + +enum { + CSI_hl_DISPLAY_CTRL = 3, + CSI_hl_INSERT = 4, + CSI_hl_AUTO_NL = 20, +}; + +enum { + CSI_m_DEFAULT = 0, + CSI_m_BOLD = 1, + CSI_m_HALF_BRIGHT = 2, + CSI_m_ITALIC = 3, + CSI_m_UNDERLINE = 4, + CSI_m_BLINK = 5, + CSI_m_REVERSE = 7, + CSI_m_PRI_FONT = 10, + CSI_m_ALT_FONT1 = 11, + CSI_m_ALT_FONT2 = 12, + CSI_m_DOUBLE_UNDERLINE = 21, + CSI_m_NORMAL_INTENSITY = 22, + CSI_m_NO_ITALIC = 23, + CSI_m_NO_UNDERLINE = 24, + CSI_m_NO_BLINK = 25, + CSI_m_NO_REVERSE = 27, + CSI_m_FG_COLOR_BEG = 30, + CSI_m_FG_COLOR_END = 37, + CSI_m_FG_COLOR = 38, + CSI_m_DEFAULT_FG_COLOR = 39, + CSI_m_BG_COLOR_BEG = 40, + CSI_m_BG_COLOR_END = 47, + CSI_m_BG_COLOR = 48, + CSI_m_DEFAULT_BG_COLOR = 49, + CSI_m_BRIGHT_FG_COLOR_BEG = 90, + CSI_m_BRIGHT_FG_COLOR_END = 97, + CSI_m_BRIGHT_FG_COLOR_OFF = 60, + CSI_m_BRIGHT_BG_COLOR_BEG = 100, + CSI_m_BRIGHT_BG_COLOR_END = 107, + CSI_m_BRIGHT_BG_COLOR_OFF = 60, +}; + +enum CSI_right_square_bracket { + CSI_RSB_COLOR_FOR_UNDERLINE = 1, + CSI_RSB_COLOR_FOR_HALF_BRIGHT = 2, + CSI_RSB_MAKE_CUR_COLOR_DEFAULT = 8, + CSI_RSB_BLANKING_INTERVAL = 9, + CSI_RSB_BELL_FREQUENCY = 10, + CSI_RSB_BELL_DURATION = 11, + CSI_RSB_BRING_CONSOLE_TO_FRONT = 12, + CSI_RSB_UNBLANK = 13, + CSI_RSB_VESA_OFF_INTERVAL = 14, + CSI_RSB_BRING_PREV_CONSOLE_TO_FRONT = 15, + CSI_RSB_CURSOR_BLINK_INTERVAL = 16, +}; + +typedef unsigned short ushort; + +struct vt_notifier_param { + struct vc_data *vc; + unsigned int c; +}; + +struct tiocl_selection { + unsigned short xs; + unsigned short ys; + unsigned short xe; + unsigned short ye; + unsigned short sel_mode; +}; + +struct console_font_op { + unsigned int op; + unsigned int flags; + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char __attribute__((btf_type_tag("user"))) *data; +}; + +struct vc_draw_region { + unsigned long from; + unsigned long to; + int x; +}; + +struct rgb { + u8 r; + u8 g; + u8 b; +}; + +enum iwl_hcmd_dataflag { + IWL_HCMD_DFL_NOCOPY = 1, + IWL_HCMD_DFL_DUP = 2, +}; + +enum { + IWL_CALIB_ENABLE_ALL = 0, + IWL_SENSITIVITY_CALIB_DISABLED = 1, + IWL_CHAIN_NOISE_CALIB_DISABLED = 2, + IWL_TX_POWER_CALIB_DISABLED = 4, + IWL_CALIB_DISABLE_ALL = 4294967295, +}; + +enum iwlagn_false_alarm_state { + IWL_FA_TOO_MANY = 0, + IWL_FA_TOO_FEW = 1, + IWL_FA_GOOD_RANGE = 2, +}; + +enum iwlagn_chain_noise_state { + IWL_CHAIN_NOISE_ALIVE = 0, + IWL_CHAIN_NOISE_ACCUMULATE = 1, + IWL_CHAIN_NOISE_CALIBRATED = 2, + IWL_CHAIN_NOISE_DONE = 3, +}; + +enum CMD_MODE { + CMD_ASYNC = 1, + CMD_WANT_SKB = 2, + CMD_SEND_IN_RFKILL = 4, + CMD_BLOCK_TXQS = 8, + CMD_SEND_IN_D3 = 16, +}; + +struct iwl_calib_hdr { + u8 op_code; + u8 first_group; + u8 groups_num; + u8 data_valid; +}; + +struct iwl_calib_cmd { + struct iwl_calib_hdr hdr; + u8 data[0]; +}; + +struct iwl_calib_result { + struct list_head list; + size_t cmd_len; + struct iwl_calib_cmd cmd; +}; + +struct statistics_general_data { + u32 beacon_silence_rssi_a; + u32 beacon_silence_rssi_b; + u32 beacon_silence_rssi_c; + u32 beacon_energy_a; + u32 beacon_energy_b; + u32 beacon_energy_c; +}; + +struct iwl_enhance_sensitivity_cmd { + __le16 control; + __le16 enhance_table[23]; +}; + +struct iwl_sensitivity_cmd { + __le16 control; + __le16 table[11]; +}; + +struct iwl_calib_chain_noise_gain_cmd { + struct iwl_calib_hdr hdr; + u8 delta_gain_1; + u8 delta_gain_2; + u8 pad[2]; +}; + +enum coex_wl2bt_scoreboard { + COEX_SCBD_ACTIVE = 1, + COEX_SCBD_ONOFF = 2, + COEX_SCBD_SCAN = 4, + COEX_SCBD_UNDERTEST = 8, + COEX_SCBD_RXGAIN = 16, + COEX_SCBD_BT_RFK = 32, + COEX_SCBD_WLBUSY = 64, + COEX_SCBD_EXTFEM = 256, + COEX_SCBD_TDMA = 512, + COEX_SCBD_FIX2M = 1024, + COEX_SCBD_ALL = 65535, +}; + +enum rtw_debug_mask { + RTW_DBG_PCI = 1, + RTW_DBG_TX = 2, + RTW_DBG_RX = 4, + RTW_DBG_PHY = 8, + RTW_DBG_FW = 16, + RTW_DBG_EFUSE = 32, + RTW_DBG_COEX = 64, + RTW_DBG_RFK = 128, + RTW_DBG_REGD = 256, + RTW_DBG_DEBUGFS = 512, + RTW_DBG_PS = 1024, + RTW_DBG_BF = 2048, + RTW_DBG_WOW = 4096, + RTW_DBG_CFO = 8192, + RTW_DBG_PATH_DIV = 16384, + RTW_DBG_ADAPTIVITY = 32768, + RTW_DBG_HW_SCAN = 65536, + RTW_DBG_STATE = 131072, + RTW_DBG_SDIO = 262144, + RTW_DBG_ALL = 4294967295, +}; + +enum coex_set_ant_phase { + COEX_SET_ANT_INIT = 0, + COEX_SET_ANT_WONLY = 1, + COEX_SET_ANT_WOFF = 2, + COEX_SET_ANT_2G = 3, + COEX_SET_ANT_5G = 4, + COEX_SET_ANT_POWERON = 5, + COEX_SET_ANT_2G_WLBT = 6, + COEX_SET_ANT_2G_FREERUN = 7, + COEX_SET_ANT_MAX = 8, +}; + +enum coex_notify_type_ips { + COEX_IPS_LEAVE = 0, + COEX_IPS_ENTER = 1, +}; + +enum coex_notify_type_lps { + COEX_LPS_DISABLE = 0, + COEX_LPS_ENABLE = 1, +}; + +enum coex_runreason { + COEX_RSN_2GSCANSTART = 0, + COEX_RSN_5GSCANSTART = 1, + COEX_RSN_SCANFINISH = 2, + COEX_RSN_2GSWITCHBAND = 3, + COEX_RSN_5GSWITCHBAND = 4, + COEX_RSN_2GCONSTART = 5, + COEX_RSN_5GCONSTART = 6, + COEX_RSN_2GCONFINISH = 7, + COEX_RSN_5GCONFINISH = 8, + COEX_RSN_2GMEDIA = 9, + COEX_RSN_5GMEDIA = 10, + COEX_RSN_MEDIADISCON = 11, + COEX_RSN_BTINFO = 12, + COEX_RSN_LPS = 13, + COEX_RSN_WLSTATUS = 14, + COEX_RSN_BTSTATUS = 15, + COEX_RSN_MAX = 16, +}; + +enum coex_notify_type_scan { + COEX_SCAN_FINISH = 0, + COEX_SCAN_START = 1, + COEX_SCAN_START_2G = 2, + COEX_SCAN_START_5G = 3, +}; + +enum rtw_coex_wl_state_cnt { + COEX_CNT_WL_SCANAP = 0, + COEX_CNT_WL_CONNPKT = 1, + COEX_CNT_WL_COEXRUN = 2, + COEX_CNT_WL_NOISY0 = 3, + COEX_CNT_WL_NOISY1 = 4, + COEX_CNT_WL_NOISY2 = 5, + COEX_CNT_WL_5MS_NOEXTEND = 6, + COEX_CNT_WL_FW_NOTIFY = 7, + COEX_CNT_WL_MAX = 8, +}; + +enum coex_notify_type_switchband { + COEX_NOT_SWITCH = 0, + COEX_SWITCH_TO_24G = 1, + COEX_SWITCH_TO_5G = 2, + COEX_SWITCH_TO_24G_NOFORSCAN = 3, +}; + +enum coex_notify_type_associate { + COEX_ASSOCIATE_FINISH = 0, + COEX_ASSOCIATE_START = 1, + COEX_ASSOCIATE_5G_FINISH = 2, + COEX_ASSOCIATE_5G_START = 3, +}; + +enum coex_notify_type_media_status { + COEX_MEDIA_DISCONNECT = 0, + COEX_MEDIA_CONNECT = 1, + COEX_MEDIA_CONNECT_5G = 2, +}; + +enum coex_wl_priority_mask { + COEX_WLPRI_RX_RSP = 2, + COEX_WLPRI_TX_RSP = 3, + COEX_WLPRI_TX_BEACON = 4, + COEX_WLPRI_TX_OFDM = 11, + COEX_WLPRI_TX_CCK = 12, + COEX_WLPRI_TX_BEACONQ = 27, + COEX_WLPRI_RX_CCK = 28, + COEX_WLPRI_RX_OFDM = 29, + COEX_WLPRI_MAX = 30, +}; + +enum rtw_coex_bt_state_cnt { + COEX_CNT_BT_RETRY = 0, + COEX_CNT_BT_REINIT = 1, + COEX_CNT_BT_REENABLE = 2, + COEX_CNT_BT_POPEVENT = 3, + COEX_CNT_BT_SETUPLINK = 4, + COEX_CNT_BT_IGNWLANACT = 5, + COEX_CNT_BT_INQ = 6, + COEX_CNT_BT_PAGE = 7, + COEX_CNT_BT_ROLESWITCH = 8, + COEX_CNT_BT_AFHUPDATE = 9, + COEX_CNT_BT_INFOUPDATE = 10, + COEX_CNT_BT_IQK = 11, + COEX_CNT_BT_IQKFAIL = 12, + COEX_CNT_BT_MAX = 13, +}; + +enum coex_btrssi_type { + COEX_BTRSSI_RATIO = 0, + COEX_BTRSSI_DBM = 1, + COEX_BTRSSI_MAX = 2, +}; + +enum rtw_flags { + RTW_FLAG_RUNNING = 0, + RTW_FLAG_FW_RUNNING = 1, + RTW_FLAG_SCANNING = 2, + RTW_FLAG_POWERON = 3, + RTW_FLAG_LEISURE_PS = 4, + RTW_FLAG_LEISURE_PS_DEEP = 5, + RTW_FLAG_DIG_DISABLE = 6, + RTW_FLAG_BUSY_TRAFFIC = 7, + RTW_FLAG_WOWLAN = 8, + RTW_FLAG_RESTARTING = 9, + RTW_FLAG_RESTART_TRIGGERING = 10, + RTW_FLAG_FORCE_LOWEST_RATE = 11, + NUM_OF_RTW_FLAGS = 12, +}; + +enum coex_ext_ant_switch_ctrl_type { + COEX_SWITCH_CTRL_BY_BBSW = 0, + COEX_SWITCH_CTRL_BY_PTA = 1, + COEX_SWITCH_CTRL_BY_ANTDIV = 2, + COEX_SWITCH_CTRL_BY_MAC = 3, + COEX_SWITCH_CTRL_BY_BT = 4, + COEX_SWITCH_CTRL_BY_FW = 5, + COEX_SWITCH_CTRL_MAX = 6, +}; + +enum coex_ext_ant_switch_pos_type { + COEX_SWITCH_TO_BT = 0, + COEX_SWITCH_TO_WLG = 1, + COEX_SWITCH_TO_WLA = 2, + COEX_SWITCH_TO_NOCARE = 3, + COEX_SWITCH_TO_WLG_BT = 4, + COEX_SWITCH_TO_MAX = 5, +}; + +enum coex_gnt_setup_state { + COEX_GNT_SET_HW_PTA = 0, + COEX_GNT_SET_SW_LOW = 1, + COEX_GNT_SET_SW_HIGH = 3, +}; + +enum coex_rssi_state { + COEX_RSSI_STATE_HIGH = 0, + COEX_RSSI_STATE_MEDIUM = 1, + COEX_RSSI_STATE_LOW = 2, + COEX_RSSI_STATE_STAY_HIGH = 3, + COEX_RSSI_STATE_STAY_MEDIUM = 4, + COEX_RSSI_STATE_STAY_LOW = 5, +}; + +enum coex_wl_link_mode { + COEX_WLINK_2G1PORT = 0, + COEX_WLINK_5G = 3, + COEX_WLINK_2GFREE = 7, + COEX_WLINK_MAX = 8, +}; + +enum rtw_trx_desc_rate { + DESC_RATE1M = 0, + DESC_RATE2M = 1, + DESC_RATE5_5M = 2, + DESC_RATE11M = 3, + DESC_RATE6M = 4, + DESC_RATE9M = 5, + DESC_RATE12M = 6, + DESC_RATE18M = 7, + DESC_RATE24M = 8, + DESC_RATE36M = 9, + DESC_RATE48M = 10, + DESC_RATE54M = 11, + DESC_RATEMCS0 = 12, + DESC_RATEMCS1 = 13, + DESC_RATEMCS2 = 14, + DESC_RATEMCS3 = 15, + DESC_RATEMCS4 = 16, + DESC_RATEMCS5 = 17, + DESC_RATEMCS6 = 18, + DESC_RATEMCS7 = 19, + DESC_RATEMCS8 = 20, + DESC_RATEMCS9 = 21, + DESC_RATEMCS10 = 22, + DESC_RATEMCS11 = 23, + DESC_RATEMCS12 = 24, + DESC_RATEMCS13 = 25, + DESC_RATEMCS14 = 26, + DESC_RATEMCS15 = 27, + DESC_RATEMCS16 = 28, + DESC_RATEMCS17 = 29, + DESC_RATEMCS18 = 30, + DESC_RATEMCS19 = 31, + DESC_RATEMCS20 = 32, + DESC_RATEMCS21 = 33, + DESC_RATEMCS22 = 34, + DESC_RATEMCS23 = 35, + DESC_RATEMCS24 = 36, + DESC_RATEMCS25 = 37, + DESC_RATEMCS26 = 38, + DESC_RATEMCS27 = 39, + DESC_RATEMCS28 = 40, + DESC_RATEMCS29 = 41, + DESC_RATEMCS30 = 42, + DESC_RATEMCS31 = 43, + DESC_RATEVHT1SS_MCS0 = 44, + DESC_RATEVHT1SS_MCS1 = 45, + DESC_RATEVHT1SS_MCS2 = 46, + DESC_RATEVHT1SS_MCS3 = 47, + DESC_RATEVHT1SS_MCS4 = 48, + DESC_RATEVHT1SS_MCS5 = 49, + DESC_RATEVHT1SS_MCS6 = 50, + DESC_RATEVHT1SS_MCS7 = 51, + DESC_RATEVHT1SS_MCS8 = 52, + DESC_RATEVHT1SS_MCS9 = 53, + DESC_RATEVHT2SS_MCS0 = 54, + DESC_RATEVHT2SS_MCS1 = 55, + DESC_RATEVHT2SS_MCS2 = 56, + DESC_RATEVHT2SS_MCS3 = 57, + DESC_RATEVHT2SS_MCS4 = 58, + DESC_RATEVHT2SS_MCS5 = 59, + DESC_RATEVHT2SS_MCS6 = 60, + DESC_RATEVHT2SS_MCS7 = 61, + DESC_RATEVHT2SS_MCS8 = 62, + DESC_RATEVHT2SS_MCS9 = 63, + DESC_RATEVHT3SS_MCS0 = 64, + DESC_RATEVHT3SS_MCS1 = 65, + DESC_RATEVHT3SS_MCS2 = 66, + DESC_RATEVHT3SS_MCS3 = 67, + DESC_RATEVHT3SS_MCS4 = 68, + DESC_RATEVHT3SS_MCS5 = 69, + DESC_RATEVHT3SS_MCS6 = 70, + DESC_RATEVHT3SS_MCS7 = 71, + DESC_RATEVHT3SS_MCS8 = 72, + DESC_RATEVHT3SS_MCS9 = 73, + DESC_RATEVHT4SS_MCS0 = 74, + DESC_RATEVHT4SS_MCS1 = 75, + DESC_RATEVHT4SS_MCS2 = 76, + DESC_RATEVHT4SS_MCS3 = 77, + DESC_RATEVHT4SS_MCS4 = 78, + DESC_RATEVHT4SS_MCS5 = 79, + DESC_RATEVHT4SS_MCS6 = 80, + DESC_RATEVHT4SS_MCS7 = 81, + DESC_RATEVHT4SS_MCS8 = 82, + DESC_RATEVHT4SS_MCS9 = 83, + DESC_RATE_MAX = 84, +}; + +enum coex_power_save_type { + COEX_PS_WIFI_NATIVE = 0, + COEX_PS_LPS_ON = 1, + COEX_PS_LPS_OFF = 2, +}; + +enum coex_pstdma_type { + COEX_PSTDMA_FORCE_LPSOFF = 0, + COEX_PSTDMA_FORCE_LPSON = 1, + COEX_PSTDMA_MAX = 2, +}; + +enum coex_mp_info_op { + BT_MP_INFO_OP_PATCH_VER = 0, + BT_MP_INFO_OP_READ_REG = 17, + BT_MP_INFO_OP_SUPP_FEAT = 42, + BT_MP_INFO_OP_SUPP_VER = 43, + BT_MP_INFO_OP_SCAN_TYPE = 45, + BT_MP_INFO_OP_LNA_CONSTRAINT = 50, +}; + +enum coex_bt_status { + COEX_BTSTATUS_NCON_IDLE = 0, + COEX_BTSTATUS_CON_IDLE = 1, + COEX_BTSTATUS_INQ_PAGE = 2, + COEX_BTSTATUS_ACL_BUSY = 3, + COEX_BTSTATUS_SCO_BUSY = 4, + COEX_BTSTATUS_ACL_SCO_BUSY = 5, + COEX_BTSTATUS_MAX = 6, +}; + +enum coex_wl_tput_dir { + COEX_WL_TPUT_TX = 0, + COEX_WL_TPUT_RX = 1, + COEX_WL_TPUT_MAX = 2, +}; + +enum rtw_supported_band { + RTW_BAND_2G = 1, + RTW_BAND_5G = 2, + RTW_BAND_60G = 4, +}; + +enum coex_algorithm { + COEX_ALGO_NOPROFILE = 0, + COEX_ALGO_HFP = 1, + COEX_ALGO_HID = 2, + COEX_ALGO_A2DP = 3, + COEX_ALGO_PAN = 4, + COEX_ALGO_A2DP_HID = 5, + COEX_ALGO_A2DP_PAN = 6, + COEX_ALGO_PAN_HID = 7, + COEX_ALGO_A2DP_PAN_HID = 8, + COEX_ALGO_MAX = 9, +}; + +enum coex_bt_profile { + BPM_NOPROFILE = 0, + BPM_HFP = 1, + BPM_HID = 2, + BPM_A2DP = 4, + BPM_PAN = 8, + BPM_HID_HFP = 3, + BPM_A2DP_HFP = 5, + BPM_A2DP_HID = 6, + BPM_A2DP_HID_HFP = 7, + BPM_PAN_HFP = 9, + BPM_PAN_HID = 10, + BPM_PAN_HID_HFP = 11, + BPM_PAN_A2DP = 12, + BPM_PAN_A2DP_HFP = 13, + BPM_PAN_A2DP_HID = 14, + BPM_PAN_A2DP_HID_HFP = 15, +}; + +struct rtw_coex_hid_info_a { + u8 cmd_id; + u8 len; + u8 subid; + u8 handle; + u8 vendor; + u8 name[3]; +}; + +struct rtw_c2h_cmd { + u8 id; + u8 seq; + u8 payload[0]; +}; + +struct rtw_coex_info_req { + u8 seq; + u8 op_code; + u8 para1; + u8 para2; + u8 para3; +}; + +struct rtc_device; + +struct rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; +}; + +typedef __u64 timeu64_t; + +struct rtc_class_ops; + +struct rtc_device { + struct device dev; + struct module *owner; + int id; + const struct rtc_class_ops *ops; + struct mutex ops_lock; + struct cdev char_dev; + unsigned long flags; + unsigned long irq_data; + spinlock_t irq_lock; + wait_queue_head_t irq_queue; + struct fasync_struct *async_queue; + int irq_freq; + int max_user_freq; + struct timerqueue_head timerqueue; + struct rtc_timer aie_timer; + struct rtc_timer uie_rtctimer; + struct hrtimer pie_timer; + int pie_enabled; + struct work_struct irqwork; + unsigned long set_offset_nsec; + unsigned long features[1]; + time64_t range_min; + timeu64_t range_max; + timeu64_t alarm_offset_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; +}; + +struct rtc_time; + +struct rtc_wkalrm; + +struct rtc_param; + +struct rtc_class_ops { + int (*ioctl)(struct device *, unsigned int, unsigned long); + int (*read_time)(struct device *, struct rtc_time *); + int (*set_time)(struct device *, struct rtc_time *); + int (*read_alarm)(struct device *, struct rtc_wkalrm *); + int (*set_alarm)(struct device *, struct rtc_wkalrm *); + int (*proc)(struct device *, struct seq_file *); + int (*alarm_irq_enable)(struct device *, unsigned int); + int (*read_offset)(struct device *, long *); + int (*set_offset)(struct device *, long); + int (*param_get)(struct device *, struct rtc_param *); + int (*param_set)(struct device *, struct rtc_param *); +}; + +struct rtc_time { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +struct rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; +}; + +struct rtc_param { + __u64 param; + union { + __u64 uvalue; + __s64 svalue; + __u64 ptr; + }; + __u32 index; + __u32 __pad; +}; + +struct bitmap_page; + +struct bitmap_counts { + spinlock_t lock; + struct bitmap_page *bp; + unsigned long pages; + unsigned long missing_pages; + unsigned long chunkshift; + unsigned long chunks; +}; + +struct bitmap_storage { + struct file *file; + struct page *sb_page; + unsigned long sb_index; + struct page **filemap; + unsigned long *filemap_attr; + unsigned long file_pages; + unsigned long bytes; +}; + +struct bitmap { + struct bitmap_counts counts; + struct mddev *mddev; + __u64 events_cleared; + int need_sync; + struct bitmap_storage storage; + unsigned long flags; + int allclean; + atomic_t behind_writes; + unsigned long behind_writes_used; + unsigned long daemon_lastrun; + unsigned long last_end_sync; + atomic_t pending_writes; + wait_queue_head_t write_wait; + wait_queue_head_t overflow_wait; + wait_queue_head_t behind_wait; + struct kernfs_node *sysfs_can_clear; + int cluster_slot; +}; + +struct bitmap_page { + char *map; + unsigned int hijacked: 1; + unsigned int pending: 1; + unsigned int count: 30; +}; + +struct md_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct mddev *, char *); + ssize_t (*store)(struct mddev *, const char *, size_t); +}; + +enum check_states { + check_state_idle = 0, + check_state_run = 1, + check_state_run_q = 2, + check_state_run_pq = 3, + check_state_check_result = 4, + check_state_compute_run = 5, + check_state_compute_result = 6, +}; + +enum reconstruct_states { + reconstruct_state_idle = 0, + reconstruct_state_prexor_drain_run = 1, + reconstruct_state_drain_run = 2, + reconstruct_state_run = 3, + reconstruct_state_prexor_drain_result = 4, + reconstruct_state_drain_result = 5, + reconstruct_state_result = 6, +}; + +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, +}; + +enum { + STRIPE_ACTIVE = 0, + STRIPE_HANDLE = 1, + STRIPE_SYNC_REQUESTED = 2, + STRIPE_SYNCING = 3, + STRIPE_INSYNC = 4, + STRIPE_REPLACED = 5, + STRIPE_PREREAD_ACTIVE = 6, + STRIPE_DELAYED = 7, + STRIPE_DEGRADED = 8, + STRIPE_BIT_DELAY = 9, + STRIPE_EXPANDING = 10, + STRIPE_EXPAND_SOURCE = 11, + STRIPE_EXPAND_READY = 12, + STRIPE_IO_STARTED = 13, + STRIPE_FULL_WRITE = 14, + STRIPE_BIOFILL_RUN = 15, + STRIPE_COMPUTE_RUN = 16, + STRIPE_ON_UNPLUG_LIST = 17, + STRIPE_DISCARD = 18, + STRIPE_ON_RELEASE_LIST = 19, + STRIPE_BATCH_READY = 20, + STRIPE_BATCH_ERR = 21, + STRIPE_BITMAP_PENDING = 22, + STRIPE_LOG_TRAPPED = 23, + STRIPE_R5C_CACHING = 24, + STRIPE_R5C_PARTIAL_STRIPE = 25, + STRIPE_R5C_FULL_STRIPE = 26, + STRIPE_R5C_PREFLUSH = 27, +}; + +enum flag_bits { + Faulty = 0, + In_sync = 1, + Bitmap_sync = 2, + WriteMostly = 3, + AutoDetected = 4, + Blocked = 5, + WriteErrorSeen = 6, + FaultRecorded = 7, + BlockedBadBlocks = 8, + WantReplacement = 9, + Replacement = 10, + Candidate = 11, + Journal = 12, + ClusterRemove = 13, + ExternalBbl = 14, + FailFast = 15, + LastDev = 16, + CollisionCheck = 17, + Nonrot = 18, +}; + +enum r5_cache_state { + R5_INACTIVE_BLOCKED = 0, + R5_ALLOC_MORE = 1, + R5_DID_ALLOC = 2, + R5C_LOG_TIGHT = 3, + R5C_LOG_CRITICAL = 4, + R5C_EXTRA_PAGE_IN_USE = 5, +}; + +enum r5dev_flags { + R5_UPTODATE = 0, + R5_LOCKED = 1, + R5_DOUBLE_LOCKED = 2, + R5_OVERWRITE = 3, + R5_Insync = 4, + R5_Wantread = 5, + R5_Wantwrite = 6, + R5_Overlap = 7, + R5_ReadNoMerge = 8, + R5_ReadError = 9, + R5_ReWrite = 10, + R5_Expanded = 11, + R5_Wantcompute = 12, + R5_Wantfill = 13, + R5_Wantdrain = 14, + R5_WantFUA = 15, + R5_SyncIO = 16, + R5_WriteError = 17, + R5_MadeGood = 18, + R5_ReadRepl = 19, + R5_MadeGoodRepl = 20, + R5_NeedReplace = 21, + R5_WantReplace = 22, + R5_Discard = 23, + R5_SkipCopy = 24, + R5_InJournal = 25, + R5_OrigPageUPTDODATE = 26, +}; + +enum stripe_result { + STRIPE_SUCCESS = 0, + STRIPE_RETRY = 1, + STRIPE_SCHEDULE_AND_RETRY = 2, + STRIPE_FAIL = 3, + STRIPE_WAIT_RESHAPE = 4, +}; + +enum recovery_flags { + MD_RECOVERY_RUNNING = 0, + MD_RECOVERY_SYNC = 1, + MD_RECOVERY_RECOVER = 2, + MD_RECOVERY_INTR = 3, + MD_RECOVERY_DONE = 4, + MD_RECOVERY_NEEDED = 5, + MD_RECOVERY_REQUESTED = 6, + MD_RECOVERY_CHECK = 7, + MD_RECOVERY_RESHAPE = 8, + MD_RECOVERY_FROZEN = 9, + MD_RECOVERY_ERROR = 10, + MD_RECOVERY_WAIT = 11, + MD_RESYNCING_REMOTE = 12, +}; + +enum { + PARITY_DISABLE_RMW = 0, + PARITY_ENABLE_RMW = 1, + PARITY_PREFER_RMW = 2, +}; + +enum mddev_sb_flags { + MD_SB_CHANGE_DEVS = 0, + MD_SB_CHANGE_CLEAN = 1, + MD_SB_CHANGE_PENDING = 2, + MD_SB_NEED_REWRITE = 3, +}; + +enum { + STRIPE_OP_BIOFILL = 0, + STRIPE_OP_COMPUTE_BLK = 1, + STRIPE_OP_PREXOR = 2, + STRIPE_OP_BIODRAIN = 3, + STRIPE_OP_RECONSTRUCT = 4, + STRIPE_OP_CHECK = 5, + STRIPE_OP_PARTIAL_PARITY = 6, +}; + +enum dma_ctrl_flags { + DMA_PREP_INTERRUPT = 1, + DMA_CTRL_ACK = 2, + DMA_PREP_PQ_DISABLE_P = 4, + DMA_PREP_PQ_DISABLE_Q = 8, + DMA_PREP_CONTINUE = 16, + DMA_PREP_FENCE = 32, + DMA_CTRL_REUSE = 64, + DMA_PREP_CMD = 128, + DMA_PREP_REPEAT = 256, + DMA_PREP_LOAD_EOT = 512, +}; + +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, +}; + +enum dmaengine_alignment { + DMAENGINE_ALIGN_1_BYTE = 0, + DMAENGINE_ALIGN_2_BYTES = 1, + DMAENGINE_ALIGN_4_BYTES = 2, + DMAENGINE_ALIGN_8_BYTES = 3, + DMAENGINE_ALIGN_16_BYTES = 4, + DMAENGINE_ALIGN_32_BYTES = 5, + DMAENGINE_ALIGN_64_BYTES = 6, + DMAENGINE_ALIGN_128_BYTES = 7, + DMAENGINE_ALIGN_256_BYTES = 8, +}; + +enum dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, +}; + +enum dma_transfer_direction { + DMA_MEM_TO_MEM = 0, + DMA_MEM_TO_DEV = 1, + DMA_DEV_TO_MEM = 2, + DMA_DEV_TO_DEV = 3, + DMA_TRANS_NONE = 4, +}; + +enum dma_slave_buswidth { + DMA_SLAVE_BUSWIDTH_UNDEFINED = 0, + DMA_SLAVE_BUSWIDTH_1_BYTE = 1, + DMA_SLAVE_BUSWIDTH_2_BYTES = 2, + DMA_SLAVE_BUSWIDTH_3_BYTES = 3, + DMA_SLAVE_BUSWIDTH_4_BYTES = 4, + DMA_SLAVE_BUSWIDTH_8_BYTES = 8, + DMA_SLAVE_BUSWIDTH_16_BYTES = 16, + DMA_SLAVE_BUSWIDTH_32_BYTES = 32, + DMA_SLAVE_BUSWIDTH_64_BYTES = 64, + DMA_SLAVE_BUSWIDTH_128_BYTES = 128, +}; + +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, +}; + +enum dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, +}; + +enum async_tx_flags { + ASYNC_TX_XOR_ZERO_DST = 1, + ASYNC_TX_XOR_DROP_DST = 2, + ASYNC_TX_ACK = 4, + ASYNC_TX_FENCE = 8, + ASYNC_TX_PQ_XOR_DST = 16, +}; + +enum { + SYNDROME_SRC_ALL = 0, + SYNDROME_SRC_WANT_DRAIN = 1, + SYNDROME_SRC_WRITTEN = 2, +}; + +struct stripe_operations { + int target; + int target2; + enum sum_check_flags zero_sum_result; +}; + +struct r5dev { + struct bio req; + struct bio rreq; + struct bio_vec vec; + struct bio_vec rvec; + struct page *page; + struct page *orig_page; + unsigned int offset; + struct bio *toread; + struct bio *read; + struct bio *towrite; + struct bio *written; + sector_t sector; + unsigned long flags; + u32 log_checksum; + unsigned short write_hint; +}; + +struct r5conf; + +struct r5worker_group; + +struct r5l_io_unit; + +struct ppl_io_unit; + +struct stripe_head { + struct hlist_node hash; + struct list_head lru; + struct llist_node release_list; + struct r5conf *raid_conf; + short generation; + sector_t sector; + short pd_idx; + short qd_idx; + short ddf_layout; + short hash_lock_index; + unsigned long state; + atomic_t count; + int bm_seq; + int disks; + int overwrite_disks; + enum check_states check_state; + enum reconstruct_states reconstruct_state; + spinlock_t stripe_lock; + int cpu; + struct r5worker_group *group; + struct stripe_head *batch_head; + spinlock_t batch_lock; + struct list_head batch_list; + union { + struct r5l_io_unit *log_io; + struct ppl_io_unit *ppl_io; + }; + struct list_head log_list; + sector_t log_start; + struct list_head r5c; + struct page *ppl_page; + struct stripe_operations ops; + struct r5dev dev[0]; +}; + +struct raid5_percpu; + +struct disk_info; + +struct r5l_log; + +struct r5pending_data; + +struct r5conf { + struct hlist_head *stripe_hashtbl; + spinlock_t hash_locks[8]; + struct mddev *mddev; + int chunk_sectors; + int level; + int algorithm; + int rmw_level; + int max_degraded; + int raid_disks; + int max_nr_stripes; + int min_nr_stripes; + sector_t reshape_progress; + sector_t reshape_safe; + int previous_raid_disks; + int prev_chunk_sectors; + int prev_algo; + short generation; + seqcount_spinlock_t gen_lock; + unsigned long reshape_checkpoint; + long long min_offset_diff; + struct list_head handle_list; + struct list_head loprio_list; + struct list_head hold_list; + struct list_head delayed_list; + struct list_head bitmap_list; + struct bio *retry_read_aligned; + unsigned int retry_read_offset; + struct bio *retry_read_aligned_list; + atomic_t preread_active_stripes; + atomic_t active_aligned_reads; + atomic_t pending_full_writes; + int bypass_count; + int bypass_threshold; + int skip_copy; + struct list_head *last_hold; + atomic_t reshape_stripes; + int active_name; + char cache_name[64]; + struct kmem_cache *slab_cache; + struct mutex cache_size_mutex; + int seq_flush; + int seq_write; + int quiesce; + int fullsync; + int recovery_disabled; + struct raid5_percpu __attribute__((btf_type_tag("percpu"))) *percpu; + int scribble_disks; + int scribble_sectors; + struct hlist_node node; + atomic_t active_stripes; + struct list_head inactive_list[8]; + atomic_t r5c_cached_full_stripes; + struct list_head r5c_full_stripe_list; + atomic_t r5c_cached_partial_stripes; + struct list_head r5c_partial_stripe_list; + atomic_t r5c_flushing_full_stripes; + atomic_t r5c_flushing_partial_stripes; + atomic_t empty_inactive_list_nr; + struct llist_head released_stripes; + wait_queue_head_t wait_for_quiescent; + wait_queue_head_t wait_for_stripe; + wait_queue_head_t wait_for_overlap; + unsigned long cache_state; + struct shrinker *shrinker; + int pool_size; + spinlock_t device_lock; + struct disk_info *disks; + struct bio_set bio_split; + struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; + struct list_head temp_inactive_list[8]; + struct r5worker_group *worker_groups; + int group_cnt; + int worker_cnt_per_group; + struct r5l_log *log; + void *log_private; + spinlock_t pending_bios_lock; + bool batch_bio_dispatch; + struct r5pending_data *pending_data; + struct list_head free_list; + struct list_head pending_list; + int pending_data_cnt; + struct r5pending_data *next_pending_data; +}; + +struct raid5_percpu { + struct page *spare_page; + void *scribble; + int scribble_obj_size; + local_lock_t lock; +}; + +struct disk_info { + struct md_rdev *rdev; + struct md_rdev *replacement; + struct page *extra_page; +}; + +struct r5worker; + +struct r5worker_group { + struct list_head handle_list; + struct list_head loprio_list; + struct r5conf *conf; + struct r5worker *workers; + int stripes_cnt; +}; + +struct r5worker { + struct work_struct work; + struct r5worker_group *group; + struct list_head temp_inactive_list[8]; + bool working; +}; + +struct r5pending_data { + struct list_head sibling; + sector_t sector; + struct bio_list bios; +}; + +struct blk_plug_cb; + +typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); + +struct blk_plug_cb { + struct list_head list; + blk_plug_cb_fn callback; + void *data; +}; + +struct raid5_plug_cb { + struct blk_plug_cb cb; + struct list_head list; + struct list_head temp_inactive_list[8]; +}; + +struct stripe_request_ctx { + struct stripe_head *batch_last; + sector_t first_sector; + sector_t last_sector; + unsigned long sectors_to_do[5]; + bool do_flush; +}; + +struct stripe_head_state { + int syncing; + int expanding; + int expanded; + int replacing; + int locked; + int uptodate; + int to_read; + int to_write; + int failed; + int written; + int to_fill; + int compute; + int req_compute; + int non_overwrite; + int injournal; + int just_cached; + int failed_num[2]; + int p_failed; + int q_failed; + int dec_preread_active; + unsigned long ops_request; + struct md_rdev *blocked_rdev; + int handle_bad_blocks; + int log_failed; + int waiting_extra_page; +}; + +typedef s32 dma_cookie_t; + +typedef void (*dma_async_tx_callback)(void *); + +struct dmaengine_result; + +typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); + +struct dma_chan; + +struct dmaengine_unmap_data; + +struct dma_descriptor_metadata_ops; + +struct dma_async_tx_descriptor { + dma_cookie_t cookie; + enum dma_ctrl_flags flags; + dma_addr_t phys; + struct dma_chan *chan; + dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); + int (*desc_free)(struct dma_async_tx_descriptor *); + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; + struct dmaengine_unmap_data *unmap; + enum dma_desc_metadata_mode desc_metadata_mode; + struct dma_descriptor_metadata_ops *metadata_ops; +}; + +struct dma_device; + +struct dma_chan_dev; + +struct dma_chan_percpu; + +struct dma_router; + +struct dma_chan { + struct dma_device *device; + struct device *slave; + dma_cookie_t cookie; + dma_cookie_t completed_cookie; + int chan_id; + struct dma_chan_dev *dev; + const char *name; + char *dbg_client_name; + struct list_head device_node; + struct dma_chan_percpu __attribute__((btf_type_tag("percpu"))) *local; + int client_count; + int table_count; + struct dma_router *router; + void *route_data; + void *private; +}; + +typedef bool (*dma_filter_fn)(struct dma_chan *, void *); + +struct dma_slave_map; + +struct dma_filter { + dma_filter_fn fn; + int mapcnt; + const struct dma_slave_map *map; +}; + +typedef struct { + unsigned long bits[1]; +} dma_cap_mask_t; + +struct dma_interleaved_template; + +struct dma_slave_caps; + +struct dma_slave_config; + +struct dma_tx_state; + +struct dma_device { + struct kref ref; + unsigned int chancnt; + unsigned int privatecnt; + struct list_head channels; + struct list_head global_node; + struct dma_filter filter; + dma_cap_mask_t cap_mask; + enum dma_desc_metadata_mode desc_metadata_modes; + unsigned short max_xor; + unsigned short max_pq; + enum dmaengine_alignment copy_align; + enum dmaengine_alignment xor_align; + enum dmaengine_alignment pq_align; + enum dmaengine_alignment fill_align; + int dev_id; + struct device *dev; + struct module *owner; + struct ida chan_ida; + u32 src_addr_widths; + u32 dst_addr_widths; + u32 directions; + u32 min_burst; + u32 max_burst; + u32 max_sg_burst; + bool descriptor_reuse; + enum dma_residue_granularity residue_granularity; + int (*device_alloc_chan_resources)(struct dma_chan *); + int (*device_router_config)(struct dma_chan *); + void (*device_free_chan_resources)(struct dma_chan *); + struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan *, dma_addr_t, dma_addr_t, size_t, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan *, dma_addr_t, dma_addr_t *, unsigned int, size_t, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, unsigned long, void *); + struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, unsigned long); + struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan *, dma_addr_t, u64, unsigned long); + void (*device_caps)(struct dma_chan *, struct dma_slave_caps *); + int (*device_config)(struct dma_chan *, struct dma_slave_config *); + int (*device_pause)(struct dma_chan *); + int (*device_resume)(struct dma_chan *); + int (*device_terminate_all)(struct dma_chan *); + void (*device_synchronize)(struct dma_chan *); + enum dma_status (*device_tx_status)(struct dma_chan *, dma_cookie_t, struct dma_tx_state *); + void (*device_issue_pending)(struct dma_chan *); + void (*device_release)(struct dma_device *); + void (*dbg_summary_show)(struct seq_file *, struct dma_device *); + struct dentry *dbg_dev_root; +}; + +struct dma_slave_map { + const char *devname; + const char *slave; + void *param; +}; + +struct data_chunk { + size_t size; + size_t icg; + size_t dst_icg; + size_t src_icg; +}; + +struct dma_interleaved_template { + dma_addr_t src_start; + dma_addr_t dst_start; + enum dma_transfer_direction dir; + bool src_inc; + bool dst_inc; + bool src_sgl; + bool dst_sgl; + size_t numf; + size_t frame_size; + struct data_chunk sgl[0]; +}; + +struct dma_slave_caps { + u32 src_addr_widths; + u32 dst_addr_widths; + u32 directions; + u32 min_burst; + u32 max_burst; + u32 max_sg_burst; + bool cmd_pause; + bool cmd_resume; + bool cmd_terminate; + enum dma_residue_granularity residue_granularity; + bool descriptor_reuse; +}; + +struct dma_slave_config { + enum dma_transfer_direction direction; + phys_addr_t src_addr; + phys_addr_t dst_addr; + enum dma_slave_buswidth src_addr_width; + enum dma_slave_buswidth dst_addr_width; + u32 src_maxburst; + u32 dst_maxburst; + u32 src_port_window_size; + u32 dst_port_window_size; + bool device_fc; + void *peripheral_config; + size_t peripheral_size; +}; + +struct dma_tx_state { + dma_cookie_t last; + dma_cookie_t used; + u32 residue; + u32 in_flight_bytes; +}; + +struct dma_chan_dev { + struct dma_chan *chan; + struct device device; + int dev_id; + bool chan_dma_dev; +}; + +struct dma_chan_percpu { + unsigned long memcpy_count; + unsigned long bytes_transferred; +}; + +struct dma_router { + struct device *dev; + void (*route_free)(struct device *, void *); +}; + +struct dmaengine_result { + enum dmaengine_tx_result result; + u32 residue; +}; + +struct dmaengine_unmap_data { + u8 map_cnt; + u8 to_cnt; + u8 from_cnt; + u8 bidi_cnt; + struct device *dev; + struct kref kref; + size_t len; + dma_addr_t addr[0]; +}; + +struct dma_descriptor_metadata_ops { + int (*attach)(struct dma_async_tx_descriptor *, void *, size_t); + void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *); + int (*set_len)(struct dma_async_tx_descriptor *, size_t); +}; + +struct async_submit_ctl { + enum async_tx_flags flags; + struct dma_async_tx_descriptor *depend_tx; + dma_async_tx_callback cb_fn; + void *cb_param; + void *scribble; +}; + +typedef union { + unsigned long addr; + struct page *page; + dma_addr_t dma; +} addr_conv_t; + +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); + +struct ethnl_req_info; + +struct ethnl_reply_data; + +struct ethnl_request_ops { + u8 request_cmd; + u8 reply_cmd; + u16 hdr_attr; + unsigned int req_info_size; + unsigned int reply_data_size; + bool allow_nodev_do; + u8 set_ntf_cmd; + int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *); + int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, const struct genl_info *); + int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); + int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); + void (*cleanup_data)(struct ethnl_reply_data *); + int (*set_validate)(struct ethnl_req_info *, struct genl_info *); + int (*set)(struct ethnl_req_info *, struct genl_info *); +}; + +struct ethnl_req_info { + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; +}; + +struct ethnl_reply_data { + struct net_device *dev; +}; + +enum { + ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, + ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, + ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, +}; + +enum { + ETHTOOL_A_RINGS_UNSPEC = 0, + ETHTOOL_A_RINGS_HEADER = 1, + ETHTOOL_A_RINGS_RX_MAX = 2, + ETHTOOL_A_RINGS_RX_MINI_MAX = 3, + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, + ETHTOOL_A_RINGS_TX_MAX = 5, + ETHTOOL_A_RINGS_RX = 6, + ETHTOOL_A_RINGS_RX_MINI = 7, + ETHTOOL_A_RINGS_RX_JUMBO = 8, + ETHTOOL_A_RINGS_TX = 9, + ETHTOOL_A_RINGS_RX_BUF_LEN = 10, + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, + ETHTOOL_A_RINGS_CQE_SIZE = 12, + ETHTOOL_A_RINGS_TX_PUSH = 13, + ETHTOOL_A_RINGS_RX_PUSH = 14, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, + __ETHTOOL_A_RINGS_CNT = 17, + ETHTOOL_A_RINGS_MAX = 16, +}; + +enum ethtool_supported_ring_param { + ETHTOOL_RING_USE_RX_BUF_LEN = 1, + ETHTOOL_RING_USE_CQE_SIZE = 2, + ETHTOOL_RING_USE_TX_PUSH = 4, + ETHTOOL_RING_USE_RX_PUSH = 8, + ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, + ETHTOOL_RING_USE_TCP_DATA_SPLIT = 32, +}; + +struct rings_reply_data { + struct ethnl_reply_data base; + struct ethtool_ringparam ringparam; + struct kernel_ethtool_ringparam kernel_ringparam; + u32 supported_ring_params; +}; + +struct nft_expr_ops; + +struct nft_ctx; + +struct nft_expr_type { + const struct nft_expr_ops * (*select_ops)(const struct nft_ctx *, const struct nlattr * const *); + void (*release_ops)(const struct nft_expr_ops *); + const struct nft_expr_ops *ops; + const struct nft_expr_ops *inner_ops; + struct list_head list; + const char *name; + struct module *owner; + const struct nla_policy *policy; + unsigned int maxattr; + u8 family; + u8 flags; +}; + +enum nft_trans_phase { + NFT_TRANS_PREPARE = 0, + NFT_TRANS_PREPARE_ERROR = 1, + NFT_TRANS_ABORT = 2, + NFT_TRANS_COMMIT = 3, + NFT_TRANS_RELEASE = 4, +}; + +struct nft_expr; + +struct nft_regs; + +struct nft_data; + +struct nft_regs_track; + +struct nft_offload_ctx; + +struct nft_flow_rule; + +struct flow_stats; + +struct nft_expr_ops { + void (*eval)(const struct nft_expr *, struct nft_regs *, const struct nft_pktinfo *); + int (*clone)(struct nft_expr *, const struct nft_expr *); + unsigned int size; + int (*init)(const struct nft_ctx *, const struct nft_expr *, const struct nlattr * const *); + void (*activate)(const struct nft_ctx *, const struct nft_expr *); + void (*deactivate)(const struct nft_ctx *, const struct nft_expr *, enum nft_trans_phase); + void (*destroy)(const struct nft_ctx *, const struct nft_expr *); + void (*destroy_clone)(const struct nft_ctx *, const struct nft_expr *); + int (*dump)(struct sk_buff *, const struct nft_expr *, bool); + int (*validate)(const struct nft_ctx *, const struct nft_expr *, const struct nft_data **); + bool (*reduce)(struct nft_regs_track *, const struct nft_expr *); + bool (*gc)(struct net *, const struct nft_expr *); + int (*offload)(struct nft_offload_ctx *, struct nft_flow_rule *, const struct nft_expr *); + bool (*offload_action)(const struct nft_expr *); + void (*offload_stats)(struct nft_expr *, const struct flow_stats *); + const struct nft_expr_type *type; + void *data; +}; + +struct nft_expr { + const struct nft_expr_ops *ops; + unsigned char data[0]; +}; + +struct nft_chain; + +struct nft_verdict { + u32 code; + struct nft_chain *chain; +}; + +struct nft_regs { + union { + u32 data[20]; + struct nft_verdict verdict; + }; +}; + +struct nft_rule_blob; + +struct nft_table; + +struct nft_chain { + struct nft_rule_blob __attribute__((btf_type_tag("rcu"))) *blob_gen_0; + struct nft_rule_blob __attribute__((btf_type_tag("rcu"))) *blob_gen_1; + struct list_head rules; + struct list_head list; + struct rhlist_head rhlhead; + struct nft_table *table; + u64 handle; + u32 use; + u8 flags: 5; + u8 bound: 1; + u8 genmask: 2; + char *name; + u16 udlen; + u8 *udata; + struct nft_rule_blob *blob_next; +}; + +struct nft_rule_blob { + unsigned long size; + unsigned char data[0]; +}; + +struct nft_table { + struct list_head list; + struct rhltable chains_ht; + struct list_head chains; + struct list_head sets; + struct list_head objects; + struct list_head flowtables; + u64 hgenerator; + u64 handle; + u32 use; + u16 family: 6; + u16 flags: 8; + u16 genmask: 2; + u32 nlpid; + char *name; + u16 udlen; + u8 *udata; + u8 validate_state; +}; + +struct nft_ctx { + struct net *net; + struct nft_table *table; + struct nft_chain *chain; + const struct nlattr * const *nla; + u32 portid; + u32 seq; + u16 flags; + u8 family; + u8 level; + bool report; +}; + +struct nft_data { + union { + u32 data[4]; + struct nft_verdict verdict; + }; +}; + +struct nft_regs_track { + struct { + const struct nft_expr *selector; + const struct nft_expr *bitwise; + u8 num_reg; + } regs[20]; + const struct nft_expr *cur; + const struct nft_expr *last; +}; + +enum flow_action_hw_stats { + FLOW_ACTION_HW_STATS_IMMEDIATE = 1, + FLOW_ACTION_HW_STATS_DELAYED = 2, + FLOW_ACTION_HW_STATS_ANY = 3, + FLOW_ACTION_HW_STATS_DISABLED = 4, + FLOW_ACTION_HW_STATS_DONT_CARE = 7, +}; + +struct flow_stats { + u64 pkts; + u64 bytes; + u64 drops; + u64 lastused; + enum flow_action_hw_stats used_hw_stats; + bool used_hw_stats_valid; +}; + +enum nft_range_ops { + NFT_RANGE_EQ = 0, + NFT_RANGE_NEQ = 1, +}; + +enum nft_verdicts { + NFT_CONTINUE = -1, + NFT_BREAK = -2, + NFT_JUMP = -3, + NFT_GOTO = -4, + NFT_RETURN = -5, +}; + +enum nft_data_types { + NFT_DATA_VALUE = 0, + NFT_DATA_VERDICT = 4294967040, +}; + +enum nft_range_attributes { + NFTA_RANGE_UNSPEC = 0, + NFTA_RANGE_SREG = 1, + NFTA_RANGE_OP = 2, + NFTA_RANGE_FROM_DATA = 3, + NFTA_RANGE_TO_DATA = 4, + __NFTA_RANGE_MAX = 5, +}; + +struct nft_data_desc { + enum nft_data_types type; + unsigned int size; + unsigned int len; + unsigned int flags; +}; + +struct nft_range_expr { + struct nft_data data_from; + struct nft_data data_to; + u8 sreg; + u8 len; + enum nft_range_ops op: 8; +}; + +struct fib_prop { + int error; + u8 scope; +}; + +enum { + RTAX_UNSPEC = 0, + RTAX_LOCK = 1, + RTAX_MTU = 2, + RTAX_WINDOW = 3, + RTAX_RTT = 4, + RTAX_RTTVAR = 5, + RTAX_SSTHRESH = 6, + RTAX_CWND = 7, + RTAX_ADVMSS = 8, + RTAX_REORDERING = 9, + RTAX_HOPLIMIT = 10, + RTAX_INITCWND = 11, + RTAX_FEATURES = 12, + RTAX_RTO_MIN = 13, + RTAX_INITRWND = 14, + RTAX_QUICKACK = 15, + RTAX_CC_ALGO = 16, + RTAX_FASTOPEN_NO_COOKIE = 17, + __RTAX_MAX = 18, +}; + +enum lwtunnel_encap_types { + LWTUNNEL_ENCAP_NONE = 0, + LWTUNNEL_ENCAP_MPLS = 1, + LWTUNNEL_ENCAP_IP = 2, + LWTUNNEL_ENCAP_ILA = 3, + LWTUNNEL_ENCAP_IP6 = 4, + LWTUNNEL_ENCAP_SEG6 = 5, + LWTUNNEL_ENCAP_BPF = 6, + LWTUNNEL_ENCAP_SEG6_LOCAL = 7, + LWTUNNEL_ENCAP_RPL = 8, + LWTUNNEL_ENCAP_IOAM6 = 9, + LWTUNNEL_ENCAP_XFRM = 10, + __LWTUNNEL_ENCAP_MAX = 11, +}; + +enum { + RTN_UNSPEC = 0, + RTN_UNICAST = 1, + RTN_LOCAL = 2, + RTN_BROADCAST = 3, + RTN_ANYCAST = 4, + RTN_MULTICAST = 5, + RTN_BLACKHOLE = 6, + RTN_UNREACHABLE = 7, + RTN_PROHIBIT = 8, + RTN_THROW = 9, + RTN_NAT = 10, + RTN_XRESOLVE = 11, + __RTN_MAX = 12, +}; + +enum rtattr_type_t { + RTA_UNSPEC = 0, + RTA_DST = 1, + RTA_SRC = 2, + RTA_IIF = 3, + RTA_OIF = 4, + RTA_GATEWAY = 5, + RTA_PRIORITY = 6, + RTA_PREFSRC = 7, + RTA_METRICS = 8, + RTA_MULTIPATH = 9, + RTA_PROTOINFO = 10, + RTA_FLOW = 11, + RTA_CACHEINFO = 12, + RTA_SESSION = 13, + RTA_MP_ALGO = 14, + RTA_TABLE = 15, + RTA_MARK = 16, + RTA_MFC_STATS = 17, + RTA_VIA = 18, + RTA_NEWDST = 19, + RTA_PREF = 20, + RTA_ENCAP_TYPE = 21, + RTA_ENCAP = 22, + RTA_EXPIRES = 23, + RTA_PAD = 24, + RTA_UID = 25, + RTA_TTL_PROPAGATE = 26, + RTA_IP_PROTO = 27, + RTA_SPORT = 28, + RTA_DPORT = 29, + RTA_NH_ID = 30, + __RTA_MAX = 31, +}; + +enum rt_class_t { + RT_TABLE_UNSPEC = 0, + RT_TABLE_COMPAT = 252, + RT_TABLE_DEFAULT = 253, + RT_TABLE_MAIN = 254, + RT_TABLE_LOCAL = 255, + RT_TABLE_MAX = 4294967295, +}; + +enum fib_event_type { + FIB_EVENT_ENTRY_REPLACE = 0, + FIB_EVENT_ENTRY_APPEND = 1, + FIB_EVENT_ENTRY_ADD = 2, + FIB_EVENT_ENTRY_DEL = 3, + FIB_EVENT_RULE_ADD = 4, + FIB_EVENT_RULE_DEL = 5, + FIB_EVENT_NH_ADD = 6, + FIB_EVENT_NH_DEL = 7, + FIB_EVENT_VIF_ADD = 8, + FIB_EVENT_VIF_DEL = 9, +}; + +enum { + IPV4_DEVCONF_FORWARDING = 1, + IPV4_DEVCONF_MC_FORWARDING = 2, + IPV4_DEVCONF_PROXY_ARP = 3, + IPV4_DEVCONF_ACCEPT_REDIRECTS = 4, + IPV4_DEVCONF_SECURE_REDIRECTS = 5, + IPV4_DEVCONF_SEND_REDIRECTS = 6, + IPV4_DEVCONF_SHARED_MEDIA = 7, + IPV4_DEVCONF_RP_FILTER = 8, + IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9, + IPV4_DEVCONF_BOOTP_RELAY = 10, + IPV4_DEVCONF_LOG_MARTIANS = 11, + IPV4_DEVCONF_TAG = 12, + IPV4_DEVCONF_ARPFILTER = 13, + IPV4_DEVCONF_MEDIUM_ID = 14, + IPV4_DEVCONF_NOXFRM = 15, + IPV4_DEVCONF_NOPOLICY = 16, + IPV4_DEVCONF_FORCE_IGMP_VERSION = 17, + IPV4_DEVCONF_ARP_ANNOUNCE = 18, + IPV4_DEVCONF_ARP_IGNORE = 19, + IPV4_DEVCONF_PROMOTE_SECONDARIES = 20, + IPV4_DEVCONF_ARP_ACCEPT = 21, + IPV4_DEVCONF_ARP_NOTIFY = 22, + IPV4_DEVCONF_ACCEPT_LOCAL = 23, + IPV4_DEVCONF_SRC_VMARK = 24, + IPV4_DEVCONF_PROXY_ARP_PVLAN = 25, + IPV4_DEVCONF_ROUTE_LOCALNET = 26, + IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27, + IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28, + IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29, + IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30, + IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31, + IPV4_DEVCONF_BC_FORWARDING = 32, + IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33, + __IPV4_DEVCONF_MAX = 34, +}; + +struct fib_table { + struct hlist_node tb_hlist; + u32 tb_id; + int tb_num_default; + struct callback_head rcu; + unsigned long *tb_data; + unsigned long __data[0]; +}; + +typedef u8 dscp_t; + +struct fib_alias { + struct hlist_node fa_list; + struct fib_info *fa_info; + dscp_t fa_dscp; + u8 fa_type; + u8 fa_state; + u8 fa_slen; + u32 tb_id; + s16 fa_default; + u8 offload; + u8 trap; + u8 offload_failed; + struct callback_head rcu; +}; + +struct fib_result { + __be32 prefix; + unsigned char prefixlen; + unsigned char nh_sel; + unsigned char type; + unsigned char scope; + u32 tclassid; + struct fib_nh_common *nhc; + struct fib_info *fi; + struct fib_table *table; + struct hlist_head *fa_head; +}; + +struct nl_info { + struct nlmsghdr *nlh; + struct net *nl_net; + u32 portid; + u8 skip_notify: 1; + u8 skip_notify_kernel: 1; +}; + +struct fib6_config { + u32 fc_table; + u32 fc_metric; + int fc_dst_len; + int fc_src_len; + int fc_ifindex; + u32 fc_flags; + u32 fc_protocol; + u16 fc_type; + u16 fc_delete_all_nh: 1; + u16 fc_ignore_dev_down: 1; + u16 __unused: 14; + u32 fc_nh_id; + struct in6_addr fc_dst; + struct in6_addr fc_src; + struct in6_addr fc_prefsrc; + struct in6_addr fc_gateway; + unsigned long fc_expires; + struct nlattr *fc_mx; + int fc_mx_len; + int fc_mp_len; + struct nlattr *fc_mp; + struct nl_info fc_nlinfo; + struct nlattr *fc_encap; + u16 fc_encap_type; + bool fc_is_fdb; +}; + +struct rtnexthop; + +struct fib_config { + u8 fc_dst_len; + dscp_t fc_dscp; + u8 fc_protocol; + u8 fc_scope; + u8 fc_type; + u8 fc_gw_family; + u32 fc_table; + __be32 fc_dst; + union { + __be32 fc_gw4; + struct in6_addr fc_gw6; + }; + int fc_oif; + u32 fc_flags; + u32 fc_priority; + __be32 fc_prefsrc; + u32 fc_nh_id; + struct nlattr *fc_mx; + struct rtnexthop *fc_mp; + int fc_mx_len; + int fc_mp_len; + u32 fc_flow; + u32 fc_nlflags; + struct nl_info fc_nlinfo; + struct nlattr *fc_encap; + u16 fc_encap_type; +}; + +struct rtnexthop { + unsigned short rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; +}; + +struct fib_notifier_info { + int family; + struct netlink_ext_ack *extack; +}; + +struct fib_rt_info { + struct fib_info *fi; + u32 tb_id; + __be32 dst; + int dst_len; + dscp_t dscp; + u8 type; + u8 offload: 1; + u8 trap: 1; + u8 offload_failed: 1; + u8 unused: 5; +}; + +struct rtmsg { + unsigned char rtm_family; + unsigned char rtm_dst_len; + unsigned char rtm_src_len; + unsigned char rtm_tos; + unsigned char rtm_table; + unsigned char rtm_protocol; + unsigned char rtm_scope; + unsigned char rtm_type; + unsigned int rtm_flags; +}; + +struct rtvia { + __kernel_sa_family_t rtvia_family; + __u8 rtvia_addr[0]; +}; + +struct fib_nh_notifier_info { + struct fib_notifier_info info; + struct fib_nh *fib_nh; +}; + +enum ieee80211_back_parties { + WLAN_BACK_RECIPIENT = 0, + WLAN_BACK_INITIATOR = 1, +}; + +enum ieee80211_statuscode { + WLAN_STATUS_SUCCESS = 0, + WLAN_STATUS_UNSPECIFIED_FAILURE = 1, + WLAN_STATUS_CAPS_UNSUPPORTED = 10, + WLAN_STATUS_REASSOC_NO_ASSOC = 11, + WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12, + WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13, + WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14, + WLAN_STATUS_CHALLENGE_FAIL = 15, + WLAN_STATUS_AUTH_TIMEOUT = 16, + WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17, + WLAN_STATUS_ASSOC_DENIED_RATES = 18, + WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19, + WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20, + WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21, + WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22, + WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23, + WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24, + WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25, + WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26, + WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY = 30, + WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31, + WLAN_STATUS_INVALID_IE = 40, + WLAN_STATUS_INVALID_GROUP_CIPHER = 41, + WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42, + WLAN_STATUS_INVALID_AKMP = 43, + WLAN_STATUS_UNSUPP_RSN_VERSION = 44, + WLAN_STATUS_INVALID_RSN_IE_CAP = 45, + WLAN_STATUS_CIPHER_SUITE_REJECTED = 46, + WLAN_STATUS_UNSPECIFIED_QOS = 32, + WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33, + WLAN_STATUS_ASSOC_DENIED_LOWACK = 34, + WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35, + WLAN_STATUS_REQUEST_DECLINED = 37, + WLAN_STATUS_INVALID_QOS_PARAM = 38, + WLAN_STATUS_CHANGE_TSPEC = 39, + WLAN_STATUS_WAIT_TS_DELAY = 47, + WLAN_STATUS_NO_DIRECT_LINK = 48, + WLAN_STATUS_STA_NOT_PRESENT = 49, + WLAN_STATUS_STA_NOT_QSTA = 50, + WLAN_STATUS_ANTI_CLOG_REQUIRED = 76, + WLAN_STATUS_FCG_NOT_SUPP = 78, + WLAN_STATUS_STA_NO_TBTT = 78, + WLAN_STATUS_REJECTED_WITH_SUGGESTED_CHANGES = 39, + WLAN_STATUS_REJECTED_FOR_DELAY_PERIOD = 47, + WLAN_STATUS_REJECT_WITH_SCHEDULE = 83, + WLAN_STATUS_PENDING_ADMITTING_FST_SESSION = 86, + WLAN_STATUS_PERFORMING_FST_NOW = 87, + WLAN_STATUS_PENDING_GAP_IN_BA_WINDOW = 88, + WLAN_STATUS_REJECT_U_PID_SETTING = 89, + WLAN_STATUS_REJECT_DSE_BAND = 96, + WLAN_STATUS_DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99, + WLAN_STATUS_DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103, + WLAN_STATUS_FILS_AUTHENTICATION_FAILURE = 108, + WLAN_STATUS_UNKNOWN_AUTHENTICATION_SERVER = 109, + WLAN_STATUS_SAE_HASH_TO_ELEMENT = 126, + WLAN_STATUS_SAE_PK = 127, + WLAN_STATUS_DENIED_TID_TO_LINK_MAPPING = 133, + WLAN_STATUS_PREF_TID_TO_LINK_MAPPING_SUGGESTED = 134, +}; + +enum ieee80211_back_actioncode { + WLAN_ACTION_ADDBA_REQ = 0, + WLAN_ACTION_ADDBA_RESP = 1, + WLAN_ACTION_DELBA = 2, +}; + +enum ieee80211_eid { + WLAN_EID_SSID = 0, + WLAN_EID_SUPP_RATES = 1, + WLAN_EID_FH_PARAMS = 2, + WLAN_EID_DS_PARAMS = 3, + WLAN_EID_CF_PARAMS = 4, + WLAN_EID_TIM = 5, + WLAN_EID_IBSS_PARAMS = 6, + WLAN_EID_COUNTRY = 7, + WLAN_EID_REQUEST = 10, + WLAN_EID_QBSS_LOAD = 11, + WLAN_EID_EDCA_PARAM_SET = 12, + WLAN_EID_TSPEC = 13, + WLAN_EID_TCLAS = 14, + WLAN_EID_SCHEDULE = 15, + WLAN_EID_CHALLENGE = 16, + WLAN_EID_PWR_CONSTRAINT = 32, + WLAN_EID_PWR_CAPABILITY = 33, + WLAN_EID_TPC_REQUEST = 34, + WLAN_EID_TPC_REPORT = 35, + WLAN_EID_SUPPORTED_CHANNELS = 36, + WLAN_EID_CHANNEL_SWITCH = 37, + WLAN_EID_MEASURE_REQUEST = 38, + WLAN_EID_MEASURE_REPORT = 39, + WLAN_EID_QUIET = 40, + WLAN_EID_IBSS_DFS = 41, + WLAN_EID_ERP_INFO = 42, + WLAN_EID_TS_DELAY = 43, + WLAN_EID_TCLAS_PROCESSING = 44, + WLAN_EID_HT_CAPABILITY = 45, + WLAN_EID_QOS_CAPA = 46, + WLAN_EID_RSN = 48, + WLAN_EID_802_15_COEX = 49, + WLAN_EID_EXT_SUPP_RATES = 50, + WLAN_EID_AP_CHAN_REPORT = 51, + WLAN_EID_NEIGHBOR_REPORT = 52, + WLAN_EID_RCPI = 53, + WLAN_EID_MOBILITY_DOMAIN = 54, + WLAN_EID_FAST_BSS_TRANSITION = 55, + WLAN_EID_TIMEOUT_INTERVAL = 56, + WLAN_EID_RIC_DATA = 57, + WLAN_EID_DSE_REGISTERED_LOCATION = 58, + WLAN_EID_SUPPORTED_REGULATORY_CLASSES = 59, + WLAN_EID_EXT_CHANSWITCH_ANN = 60, + WLAN_EID_HT_OPERATION = 61, + WLAN_EID_SECONDARY_CHANNEL_OFFSET = 62, + WLAN_EID_BSS_AVG_ACCESS_DELAY = 63, + WLAN_EID_ANTENNA_INFO = 64, + WLAN_EID_RSNI = 65, + WLAN_EID_MEASUREMENT_PILOT_TX_INFO = 66, + WLAN_EID_BSS_AVAILABLE_CAPACITY = 67, + WLAN_EID_BSS_AC_ACCESS_DELAY = 68, + WLAN_EID_TIME_ADVERTISEMENT = 69, + WLAN_EID_RRM_ENABLED_CAPABILITIES = 70, + WLAN_EID_MULTIPLE_BSSID = 71, + WLAN_EID_BSS_COEX_2040 = 72, + WLAN_EID_BSS_INTOLERANT_CHL_REPORT = 73, + WLAN_EID_OVERLAP_BSS_SCAN_PARAM = 74, + WLAN_EID_RIC_DESCRIPTOR = 75, + WLAN_EID_MMIE = 76, + WLAN_EID_ASSOC_COMEBACK_TIME = 77, + WLAN_EID_EVENT_REQUEST = 78, + WLAN_EID_EVENT_REPORT = 79, + WLAN_EID_DIAGNOSTIC_REQUEST = 80, + WLAN_EID_DIAGNOSTIC_REPORT = 81, + WLAN_EID_LOCATION_PARAMS = 82, + WLAN_EID_NON_TX_BSSID_CAP = 83, + WLAN_EID_SSID_LIST = 84, + WLAN_EID_MULTI_BSSID_IDX = 85, + WLAN_EID_FMS_DESCRIPTOR = 86, + WLAN_EID_FMS_REQUEST = 87, + WLAN_EID_FMS_RESPONSE = 88, + WLAN_EID_QOS_TRAFFIC_CAPA = 89, + WLAN_EID_BSS_MAX_IDLE_PERIOD = 90, + WLAN_EID_TSF_REQUEST = 91, + WLAN_EID_TSF_RESPOSNE = 92, + WLAN_EID_WNM_SLEEP_MODE = 93, + WLAN_EID_TIM_BCAST_REQ = 94, + WLAN_EID_TIM_BCAST_RESP = 95, + WLAN_EID_COLL_IF_REPORT = 96, + WLAN_EID_CHANNEL_USAGE = 97, + WLAN_EID_TIME_ZONE = 98, + WLAN_EID_DMS_REQUEST = 99, + WLAN_EID_DMS_RESPONSE = 100, + WLAN_EID_LINK_ID = 101, + WLAN_EID_WAKEUP_SCHEDUL = 102, + WLAN_EID_CHAN_SWITCH_TIMING = 104, + WLAN_EID_PTI_CONTROL = 105, + WLAN_EID_PU_BUFFER_STATUS = 106, + WLAN_EID_INTERWORKING = 107, + WLAN_EID_ADVERTISEMENT_PROTOCOL = 108, + WLAN_EID_EXPEDITED_BW_REQ = 109, + WLAN_EID_QOS_MAP_SET = 110, + WLAN_EID_ROAMING_CONSORTIUM = 111, + WLAN_EID_EMERGENCY_ALERT = 112, + WLAN_EID_MESH_CONFIG = 113, + WLAN_EID_MESH_ID = 114, + WLAN_EID_LINK_METRIC_REPORT = 115, + WLAN_EID_CONGESTION_NOTIFICATION = 116, + WLAN_EID_PEER_MGMT = 117, + WLAN_EID_CHAN_SWITCH_PARAM = 118, + WLAN_EID_MESH_AWAKE_WINDOW = 119, + WLAN_EID_BEACON_TIMING = 120, + WLAN_EID_MCCAOP_SETUP_REQ = 121, + WLAN_EID_MCCAOP_SETUP_RESP = 122, + WLAN_EID_MCCAOP_ADVERT = 123, + WLAN_EID_MCCAOP_TEARDOWN = 124, + WLAN_EID_GANN = 125, + WLAN_EID_RANN = 126, + WLAN_EID_EXT_CAPABILITY = 127, + WLAN_EID_PREQ = 130, + WLAN_EID_PREP = 131, + WLAN_EID_PERR = 132, + WLAN_EID_PXU = 137, + WLAN_EID_PXUC = 138, + WLAN_EID_AUTH_MESH_PEER_EXCH = 139, + WLAN_EID_MIC = 140, + WLAN_EID_DESTINATION_URI = 141, + WLAN_EID_UAPSD_COEX = 142, + WLAN_EID_WAKEUP_SCHEDULE = 143, + WLAN_EID_EXT_SCHEDULE = 144, + WLAN_EID_STA_AVAILABILITY = 145, + WLAN_EID_DMG_TSPEC = 146, + WLAN_EID_DMG_AT = 147, + WLAN_EID_DMG_CAP = 148, + WLAN_EID_CISCO_VENDOR_SPECIFIC = 150, + WLAN_EID_DMG_OPERATION = 151, + WLAN_EID_DMG_BSS_PARAM_CHANGE = 152, + WLAN_EID_DMG_BEAM_REFINEMENT = 153, + WLAN_EID_CHANNEL_MEASURE_FEEDBACK = 154, + WLAN_EID_AWAKE_WINDOW = 157, + WLAN_EID_MULTI_BAND = 158, + WLAN_EID_ADDBA_EXT = 159, + WLAN_EID_NEXT_PCP_LIST = 160, + WLAN_EID_PCP_HANDOVER = 161, + WLAN_EID_DMG_LINK_MARGIN = 162, + WLAN_EID_SWITCHING_STREAM = 163, + WLAN_EID_SESSION_TRANSITION = 164, + WLAN_EID_DYN_TONE_PAIRING_REPORT = 165, + WLAN_EID_CLUSTER_REPORT = 166, + WLAN_EID_RELAY_CAP = 167, + WLAN_EID_RELAY_XFER_PARAM_SET = 168, + WLAN_EID_BEAM_LINK_MAINT = 169, + WLAN_EID_MULTIPLE_MAC_ADDR = 170, + WLAN_EID_U_PID = 171, + WLAN_EID_DMG_LINK_ADAPT_ACK = 172, + WLAN_EID_MCCAOP_ADV_OVERVIEW = 174, + WLAN_EID_QUIET_PERIOD_REQ = 175, + WLAN_EID_QUIET_PERIOD_RESP = 177, + WLAN_EID_EPAC_POLICY = 182, + WLAN_EID_CLISTER_TIME_OFF = 183, + WLAN_EID_INTER_AC_PRIO = 184, + WLAN_EID_SCS_DESCRIPTOR = 185, + WLAN_EID_QLOAD_REPORT = 186, + WLAN_EID_HCCA_TXOP_UPDATE_COUNT = 187, + WLAN_EID_HL_STREAM_ID = 188, + WLAN_EID_GCR_GROUP_ADDR = 189, + WLAN_EID_ANTENNA_SECTOR_ID_PATTERN = 190, + WLAN_EID_VHT_CAPABILITY = 191, + WLAN_EID_VHT_OPERATION = 192, + WLAN_EID_EXTENDED_BSS_LOAD = 193, + WLAN_EID_WIDE_BW_CHANNEL_SWITCH = 194, + WLAN_EID_TX_POWER_ENVELOPE = 195, + WLAN_EID_CHANNEL_SWITCH_WRAPPER = 196, + WLAN_EID_AID = 197, + WLAN_EID_QUIET_CHANNEL = 198, + WLAN_EID_OPMODE_NOTIF = 199, + WLAN_EID_REDUCED_NEIGHBOR_REPORT = 201, + WLAN_EID_AID_REQUEST = 210, + WLAN_EID_AID_RESPONSE = 211, + WLAN_EID_S1G_BCN_COMPAT = 213, + WLAN_EID_S1G_SHORT_BCN_INTERVAL = 214, + WLAN_EID_S1G_TWT = 216, + WLAN_EID_S1G_CAPABILITIES = 217, + WLAN_EID_VENDOR_SPECIFIC = 221, + WLAN_EID_QOS_PARAMETER = 222, + WLAN_EID_S1G_OPERATION = 232, + WLAN_EID_CAG_NUMBER = 237, + WLAN_EID_AP_CSN = 239, + WLAN_EID_FILS_INDICATION = 240, + WLAN_EID_DILS = 241, + WLAN_EID_FRAGMENT = 242, + WLAN_EID_RSNX = 244, + WLAN_EID_EXTENSION = 255, +}; + +struct ieee80211_addba_ext_ie { + u8 data; +}; + +struct ieee80211_tdls_lnkie; + +struct ieee80211_ch_switch_timing; + +struct ieee80211_tim_ie; + +struct ieee80211_ht_operation; + +struct ieee80211_vht_operation; + +struct ieee80211_he_spr; + +struct ieee80211_mu_edca_param_set; + +struct ieee80211_rann_ie; + +struct ieee80211_channel_sw_ie; + +struct ieee80211_wide_bw_chansw_ie; + +struct ieee80211_timeout_interval_ie; + +struct ieee80211_sec_chan_offs_ie; + +struct ieee80211_mesh_chansw_params_ie; + +struct ieee80211_bss_max_idle_period_ie; + +struct ieee80211_multiple_bssid_configuration; + +struct ieee80211_bssid_index; + +struct ieee80211_s1g_oper_ie; + +struct ieee80211_s1g_bcn_compat_ie; + +struct ieee80211_aid_response_ie; + +struct ieee80211_multi_link_elem; + +struct ieee80211_bandwidth_indication; + +struct ieee80211_ttlm_elem; + +struct ieee80211_mle_per_sta_profile; + +struct ieee802_11_elems { + const u8 *ie_start; + size_t total_len; + u32 crc; + const struct ieee80211_tdls_lnkie *lnk_id; + const struct ieee80211_ch_switch_timing *ch_sw_timing; + const u8 *ext_capab; + const u8 *ssid; + const u8 *supp_rates; + const u8 *ds_params; + const struct ieee80211_tim_ie *tim; + const u8 *rsn; + const u8 *rsnx; + const u8 *erp_info; + const u8 *ext_supp_rates; + const u8 *wmm_info; + const u8 *wmm_param; + const struct ieee80211_ht_cap *ht_cap_elem; + const struct ieee80211_ht_operation *ht_operation; + const struct ieee80211_vht_cap *vht_cap_elem; + const struct ieee80211_vht_operation *vht_operation; + const struct ieee80211_meshconf_ie *mesh_config; + const u8 *he_cap; + const struct ieee80211_he_operation *he_operation; + const struct ieee80211_he_spr *he_spr; + const struct ieee80211_mu_edca_param_set *mu_edca_param_set; + const struct ieee80211_he_6ghz_capa *he_6ghz_capa; + const struct ieee80211_tx_pwr_env *tx_pwr_env[8]; + const u8 *uora_element; + const u8 *mesh_id; + const u8 *peering; + const __le16 *awake_window; + const u8 *preq; + const u8 *prep; + const u8 *perr; + const struct ieee80211_rann_ie *rann; + const struct ieee80211_channel_sw_ie *ch_switch_ie; + const struct ieee80211_ext_chansw_ie *ext_chansw_ie; + const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie; + const u8 *max_channel_switch_time; + const u8 *country_elem; + const u8 *pwr_constr_elem; + const u8 *cisco_dtpc_elem; + const struct ieee80211_timeout_interval_ie *timeout_int; + const u8 *opmode_notif; + const struct ieee80211_sec_chan_offs_ie *sec_chan_offs; + struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie; + const struct ieee80211_bss_max_idle_period_ie *max_idle_period_ie; + const struct ieee80211_multiple_bssid_configuration *mbssid_config_ie; + const struct ieee80211_bssid_index *bssid_index; + u8 max_bssid_indicator; + u8 dtim_count; + u8 dtim_period; + const struct ieee80211_addba_ext_ie *addba_ext_ie; + const struct ieee80211_s1g_cap *s1g_capab; + const struct ieee80211_s1g_oper_ie *s1g_oper; + const struct ieee80211_s1g_bcn_compat_ie *s1g_bcn_compat; + const struct ieee80211_aid_response_ie *aid_resp; + const struct ieee80211_eht_cap_elem *eht_cap; + const struct ieee80211_eht_operation *eht_operation; + const struct ieee80211_multi_link_elem *ml_basic; + const struct ieee80211_multi_link_elem *ml_reconf; + const struct ieee80211_bandwidth_indication *bandwidth_indication; + const struct ieee80211_ttlm_elem *ttlm[2]; + u8 ext_capab_len; + u8 ssid_len; + u8 supp_rates_len; + u8 tim_len; + u8 rsn_len; + u8 rsnx_len; + u8 ext_supp_rates_len; + u8 wmm_info_len; + u8 wmm_param_len; + u8 he_cap_len; + u8 mesh_id_len; + u8 peering_len; + u8 preq_len; + u8 prep_len; + u8 perr_len; + u8 country_elem_len; + u8 bssid_index_len; + u8 tx_pwr_env_len[8]; + u8 tx_pwr_env_num; + u8 eht_cap_len; + size_t ml_basic_len; + size_t ml_reconf_len; + u8 ttlm_num; + struct ieee80211_mle_per_sta_profile *prof; + size_t sta_prof_len; + u8 parse_error; +}; + +struct ieee80211_tdls_lnkie { + u8 ie_type; + u8 ie_len; + u8 bssid[6]; + u8 init_sta[6]; + u8 resp_sta[6]; +}; + +struct ieee80211_ch_switch_timing { + __le16 switch_time; + __le16 switch_timeout; +}; + +struct ieee80211_tim_ie { + u8 dtim_count; + u8 dtim_period; + u8 bitmap_ctrl; + union { + u8 required_octet; + struct { + struct {} __empty_virtual_map; + u8 virtual_map[0]; + }; + }; +}; + +struct ieee80211_ht_operation { + u8 primary_chan; + u8 ht_param; + __le16 operation_mode; + __le16 stbc_param; + u8 basic_set[16]; +}; + +struct ieee80211_vht_operation { + u8 chan_width; + u8 center_freq_seg0_idx; + u8 center_freq_seg1_idx; + __le16 basic_mcs_set; +} __attribute__((packed)); + +struct ieee80211_he_spr { + u8 he_sr_control; + u8 optional[0]; +}; + +struct ieee80211_mu_edca_param_set { + u8 mu_qos_info; + struct ieee80211_he_mu_edca_param_ac_rec ac_be; + struct ieee80211_he_mu_edca_param_ac_rec ac_bk; + struct ieee80211_he_mu_edca_param_ac_rec ac_vi; + struct ieee80211_he_mu_edca_param_ac_rec ac_vo; +}; + +struct ieee80211_rann_ie { + u8 rann_flags; + u8 rann_hopcount; + u8 rann_ttl; + u8 rann_addr[6]; + __le32 rann_seq; + __le32 rann_interval; + __le32 rann_metric; +} __attribute__((packed)); + +struct ieee80211_channel_sw_ie { + u8 mode; + u8 new_ch_num; + u8 count; +}; + +struct ieee80211_wide_bw_chansw_ie { + u8 new_channel_width; + u8 new_center_freq_seg0; + u8 new_center_freq_seg1; +}; + +struct ieee80211_timeout_interval_ie { + u8 type; + __le32 value; +} __attribute__((packed)); + +struct ieee80211_sec_chan_offs_ie { + u8 sec_chan_offs; +}; + +struct ieee80211_mesh_chansw_params_ie { + u8 mesh_ttl; + u8 mesh_flags; + __le16 mesh_reason; + __le16 mesh_pre_value; +}; + +struct ieee80211_bss_max_idle_period_ie { + __le16 max_idle_period; + u8 idle_options; +} __attribute__((packed)); + +struct ieee80211_multiple_bssid_configuration { + u8 bssid_count; + u8 profile_periodicity; +}; + +struct ieee80211_bssid_index { + u8 bssid_index; + u8 dtim_period; + u8 dtim_count; +}; + +struct ieee80211_s1g_oper_ie { + u8 ch_width; + u8 oper_class; + u8 primary_ch; + u8 oper_ch; + __le16 basic_mcs_nss; +}; + +struct ieee80211_s1g_bcn_compat_ie { + __le16 compat_info; + __le16 beacon_int; + __le32 tsf_completion; +}; + +struct ieee80211_aid_response_ie { + __le16 aid; + u8 switch_count; + __le16 response_int; +} __attribute__((packed)); + +struct ieee80211_multi_link_elem { + __le16 control; + u8 variable[0]; +}; + +struct ieee80211_eht_operation_info { + u8 control; + u8 ccfs0; + u8 ccfs1; + u8 optional[0]; +}; + +struct ieee80211_bandwidth_indication { + u8 params; + struct ieee80211_eht_operation_info info; +}; + +struct ieee80211_ttlm_elem { + u8 control; + u8 optional[0]; +}; + +struct ieee80211_mle_per_sta_profile { + __le16 control; + u8 sta_info_len; + u8 variable[0]; +} __attribute__((packed)); + +struct ieee80211_elems_parse_params { + enum ieee80211_conn_mode mode; + const u8 *start; + size_t len; + bool action; + u64 filter; + u32 crc; + struct cfg80211_bss *bss; + int link_id; + bool from_ap; +}; + +union amd_uncore_info; + +struct amd_uncore_pmu; + +struct amd_uncore { + union amd_uncore_info __attribute__((btf_type_tag("percpu"))) *info; + struct amd_uncore_pmu *pmus; + unsigned int num_pmus; + bool init_done; + void (*scan)(struct amd_uncore *, unsigned int); + int (*init)(struct amd_uncore *, unsigned int); + void (*move)(struct amd_uncore *, unsigned int); + void (*free)(struct amd_uncore *, unsigned int); +}; + +union amd_uncore_info { + struct { + u64 aux_data: 32; + u64 num_pmcs: 8; + u64 gid: 8; + u64 cid: 8; + } split; + u64 full; +}; + +struct amd_uncore_ctx; + +struct amd_uncore_pmu { + char name[16]; + int num_counters; + int rdpmc_base; + u32 msr_base; + int group; + cpumask_t active_mask; + struct pmu pmu; + struct amd_uncore_ctx * __attribute__((btf_type_tag("percpu"))) *ctx; +}; + +struct amd_uncore_ctx { + int refcnt; + int cpu; + struct perf_event **events; + struct hlist_node node; +}; + +enum { + UNCORE_TYPE_DF = 0, + UNCORE_TYPE_L3 = 1, + UNCORE_TYPE_UMC = 2, + UNCORE_TYPE_MAX = 3, +}; + +enum perf_event_task_context { + perf_invalid_context = -1, + perf_hw_context = 0, + perf_sw_context = 1, + perf_nr_task_contexts = 2, +}; + +union cpuid_0x80000022_ebx { + struct { + unsigned int num_core_pmc: 4; + unsigned int lbr_v2_stack_sz: 6; + unsigned int num_df_pmc: 6; + unsigned int num_umc_pmc: 6; + } split; + unsigned int full; +}; + +enum x86_topology_domains { + TOPO_SMT_DOMAIN = 0, + TOPO_CORE_DOMAIN = 1, + TOPO_MODULE_DOMAIN = 2, + TOPO_TILE_DOMAIN = 3, + TOPO_DIE_DOMAIN = 4, + TOPO_DIEGRP_DOMAIN = 5, + TOPO_PKG_DOMAIN = 6, + TOPO_MAX_DOMAIN = 7, +}; + +enum uv_system_type { + UV_NONE = 0, + UV_LEGACY_APIC = 1, + UV_X2APIC = 2, +}; + +struct acpi_srat_x2apic_cpu_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 apic_id; + u32 flags; + u32 clock_domain; + u32 reserved2; +}; + +struct acpi_srat_cpu_affinity { + struct acpi_subtable_header header; + u8 proximity_domain_lo; + u8 apic_id; + u32 flags; + u8 local_sapic_eid; + u8 proximity_domain_hi[3]; + u32 clock_domain; +}; + +enum rlimit_type { + UCOUNT_RLIMIT_NPROC = 0, + UCOUNT_RLIMIT_MSGQUEUE = 1, + UCOUNT_RLIMIT_SIGPENDING = 2, + UCOUNT_RLIMIT_MEMLOCK = 3, + UCOUNT_RLIMIT_COUNTS = 4, +}; + +struct semaphore_waiter { + struct list_head list; + struct task_struct *task; + bool up; +}; + +enum mod_mem_type { + MOD_TEXT = 0, + MOD_DATA = 1, + MOD_RODATA = 2, + MOD_RO_AFTER_INIT = 3, + MOD_INIT_TEXT = 4, + MOD_INIT_DATA = 5, + MOD_INIT_RODATA = 6, + MOD_MEM_NUM_TYPES = 7, + MOD_INVALID = -1, +}; + +struct module_use { + struct list_head source_list; + struct list_head target_list; + struct module *source; + struct module *target; +}; + +typedef unsigned long kimage_entry_t; + +struct kexec_segment { + union { + void __attribute__((btf_type_tag("user"))) *buf; + void *kbuf; + }; + size_t bufsz; + unsigned long mem; + size_t memsz; +}; + +struct kimage_arch { + p4d_t *p4d; + pud_t *pud; + pmd_t *pmd; + pte_t *pte; +}; + +struct kimage { + kimage_entry_t head; + kimage_entry_t *entry; + kimage_entry_t *last_entry; + unsigned long start; + struct page *control_code_page; + struct page *swap_page; + void *vmcoreinfo_data_copy; + unsigned long nr_segments; + struct kexec_segment segment[16]; + struct list_head control_pages; + struct list_head dest_pages; + struct list_head unusable_pages; + unsigned long control_page; + unsigned int type: 1; + unsigned int preserve_context: 1; + unsigned int file_mode: 1; + struct kimage_arch arch; + void *elf_headers; + unsigned long elf_headers_sz; + unsigned long elf_load_addr; +}; + +struct kexec_load_limit { + struct mutex mutex; + int limit; +}; + +enum kmsg_dump_reason { + KMSG_DUMP_UNDEF = 0, + KMSG_DUMP_PANIC = 1, + KMSG_DUMP_OOPS = 2, + KMSG_DUMP_EMERG = 3, + KMSG_DUMP_SHUTDOWN = 4, + KMSG_DUMP_MAX = 5, +}; + +struct bpf_dispatcher_prog { + struct bpf_prog *prog; + refcount_t users; +}; + +struct bpf_dispatcher { + struct mutex mutex; + void *func; + struct bpf_dispatcher_prog progs[48]; + int num_progs; + void *image; + void *rw_image; + u32 image_off; + struct bpf_ksym ksym; + struct static_call_key *sc_key; + void *sc_tramp; +}; + +typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int); + +typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *); + +struct rb_augment_callbacks { + void (*propagate)(struct rb_node *, struct rb_node *); + void (*copy)(struct rb_node *, struct rb_node *); + void (*rotate)(struct rb_node *, struct rb_node *); +}; + +struct anon_vma_chain { + struct vm_area_struct *vma; + struct anon_vma *anon_vma; + struct list_head same_vma; + struct rb_node rb; + unsigned long rb_subtree_last; +}; + +struct kobj_attribute { + struct attribute attr; + ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *); + ssize_t (*store)(struct kobject *, struct kobj_attribute *, const char *, size_t); +}; + +typedef struct pglist_data pg_data_t; + +struct vma_swap_readahead { + unsigned short win; + unsigned short offset; + unsigned short nr_pte; +}; + +union proc_op { + int (*proc_get_link)(struct dentry *, struct path *); + int (*proc_show)(struct seq_file *, struct pid_namespace *, struct pid *, struct task_struct *); + int lsmid; +}; + +struct proc_inode { + struct pid *pid; + unsigned int fd; + union proc_op op; + struct proc_dir_entry *pde; + struct ctl_table_header *sysctl; + struct ctl_table *sysctl_entry; + struct hlist_node sibling_inodes; + const struct proc_ns_operations *ns_ops; + struct inode vfs_inode; +}; + +typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); + +struct fd_data { + fmode_t mode; + unsigned int fd; +}; + +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; +}; + +struct msdos_inode_info { + spinlock_t cache_lru_lock; + struct list_head cache_lru; + int nr_caches; + unsigned int cache_valid_id; + loff_t mmu_private; + int i_start; + int i_logstart; + int i_attrs; + loff_t i_pos; + struct hlist_node i_fat_hash; + struct hlist_node i_dir_hash; + struct rw_semaphore truncate_lock; + struct timespec64 i_crtime; + struct inode vfs_inode; +}; + +struct fat_mount_options { + kuid_t fs_uid; + kgid_t fs_gid; + unsigned short fs_fmask; + unsigned short fs_dmask; + unsigned short codepage; + int time_offset; + char *iocharset; + unsigned short shortname; + unsigned char name_check; + unsigned char errors; + unsigned char nfs; + unsigned short allow_utime; + unsigned int quiet: 1; + unsigned int showexec: 1; + unsigned int sys_immutable: 1; + unsigned int dotsOK: 1; + unsigned int isvfat: 1; + unsigned int utf8: 1; + unsigned int unicode_xlate: 1; + unsigned int numtail: 1; + unsigned int flush: 1; + unsigned int nocase: 1; + unsigned int usefree: 1; + unsigned int tz_set: 1; + unsigned int rodir: 1; + unsigned int discard: 1; + unsigned int dos1xfloppy: 1; +}; + +struct nls_table; + +struct fatent_operations; + +struct msdos_sb_info { + unsigned short sec_per_clus; + unsigned short cluster_bits; + unsigned int cluster_size; + unsigned char fats; + unsigned char fat_bits; + unsigned short fat_start; + unsigned long fat_length; + unsigned long dir_start; + unsigned short dir_entries; + unsigned long data_start; + unsigned long max_cluster; + unsigned long root_cluster; + unsigned long fsinfo_sector; + struct mutex fat_lock; + struct mutex nfs_build_inode_lock; + struct mutex s_lock; + unsigned int prev_free; + unsigned int free_clusters; + unsigned int free_clus_valid; + struct fat_mount_options options; + struct nls_table *nls_disk; + struct nls_table *nls_io; + const void *dir_ops; + int dir_per_block; + int dir_per_block_bits; + unsigned int vol_id; + int fatent_shift; + const struct fatent_operations *fatent_ops; + struct inode *fat_inode; + struct inode *fsinfo_inode; + struct ratelimit_state ratelimit; + spinlock_t inode_hash_lock; + struct hlist_head inode_hashtable[256]; + spinlock_t dir_hash_lock; + struct hlist_head dir_hashtable[256]; + unsigned int dirty; + struct callback_head rcu; +}; + +struct nls_table { + const char *charset; + const char *alias; + int (*uni2char)(wchar_t, unsigned char *, int); + int (*char2uni)(const unsigned char *, int, wchar_t *); + const unsigned char *charset2lower; + const unsigned char *charset2upper; + struct module *owner; + struct nls_table *next; +}; + +struct fat_entry; + +struct fatent_operations { + void (*ent_blocknr)(struct super_block *, int, int *, sector_t *); + void (*ent_set_ptr)(struct fat_entry *, int); + int (*ent_bread)(struct super_block *, struct fat_entry *, int, sector_t); + int (*ent_get)(struct fat_entry *); + void (*ent_put)(struct fat_entry *, int); + int (*ent_next)(struct fat_entry *); +}; + +struct fat_entry { + int entry; + union { + u8 *ent12_p[2]; + __le16 *ent16_p; + __le32 *ent32_p; + } u; + int nr_bhs; + struct buffer_head *bhs[2]; + struct inode *fat_inode; +}; + +enum btrfs_disk_cache_state { + BTRFS_DC_WRITTEN = 0, + BTRFS_DC_ERROR = 1, + BTRFS_DC_CLEAR = 2, + BTRFS_DC_SETUP = 3, +}; + +enum btrfs_block_group_flags { + BLOCK_GROUP_FLAG_IREF = 0, + BLOCK_GROUP_FLAG_REMOVED = 1, + BLOCK_GROUP_FLAG_TO_COPY = 2, + BLOCK_GROUP_FLAG_RELOCATING_REPAIR = 3, + BLOCK_GROUP_FLAG_CHUNK_ITEM_INSERTED = 4, + BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE = 5, + BLOCK_GROUP_FLAG_ZONED_DATA_RELOC = 6, + BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE = 7, + BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE = 8, + BLOCK_GROUP_FLAG_NEW = 9, +}; + +enum { + BTRFS_STAT_CURR = 0, + BTRFS_STAT_PREV = 1, + BTRFS_STAT_NR_ENTRIES = 2, +}; + +struct btrfs_free_space_header { + struct btrfs_disk_key location; + __le64 generation; + __le64 num_entries; + __le64 num_bitmaps; +} __attribute__((packed)); + +struct btrfs_trim_range { + u64 start; + u64 bytes; + struct list_head list; +}; + +struct btrfs_item_batch { + const struct btrfs_key *keys; + const u32 *data_sizes; + u32 total_data_size; + int nr; +}; + +struct btrfs_truncate_control { + struct btrfs_inode *inode; + u64 new_size; + u64 extents_found; + u64 last_size; + u64 sub_bytes; + u64 ino; + u32 min_type; + bool skip_ref_updates; + bool clear_extent_range; +}; + +struct btrfs_free_space_entry { + __le64 offset; + __le64 bytes; + __u8 type; +} __attribute__((packed)); + struct parsed_partitions { struct gendisk *disk; char name[32]; @@ -83199,1732 +53151,214 @@ typedef struct { struct folio *v; } Sector; -typedef mpi_limb_t UWtype; - -typedef unsigned int UHWtype; - -struct gen_pool_chunk { - struct list_head next_chunk; - atomic_long_t avail; - phys_addr_t phys_addr; - void *owner; - unsigned long start_addr; - unsigned long end_addr; - unsigned long bits[0]; -}; - -struct genpool_data_align { - int align; -}; - -struct genpool_data_fixed { - unsigned long offset; -}; - -typedef unsigned char u_char; - -typedef unsigned short u_short; - -struct fbcon_display { - const u_char *fontdata; - int userfont; - u_short inverse; - short yscroll; - int vrows; - int cursor_shape; - int con_rotate; - u32 xres_virtual; - u32 yres_virtual; - u32 height; - u32 width; - u32 bits_per_pixel; - u32 grayscale; - u32 nonstd; - u32 accel_flags; - u32 rotate; - struct fb_bitfield red; - struct fb_bitfield green; - struct fb_bitfield blue; - struct fb_bitfield transp; - const struct fb_videomode *mode; +struct io_sq_data { + refcount_t refs; + atomic_t park_pending; + struct mutex lock; + struct list_head ctx_list; + struct task_struct *thread; + struct wait_queue_head wait; + unsigned int sq_thread_idle; + int sq_cpu; + pid_t task_pid; + pid_t task_tgid; + u64 work_time; + unsigned long state; + struct completion exited; }; enum { - FBCON_LOGO_CANSHOW = -1, - FBCON_LOGO_DRAW = -2, - FBCON_LOGO_DONTSHOW = -3, -}; - -struct fbcon_ops { - void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); - void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); - void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); - void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); - void (*cursor)(struct vc_data *, struct fb_info *, bool, int, int); - int (*update_start)(struct fb_info *); - int (*rotate_font)(struct fb_info *, struct vc_data *); - struct fb_var_screeninfo var; - struct delayed_work cursor_work; - struct fb_cursor cursor_state; - struct fbcon_display *p; - struct fb_info *info; - int currcon; - int cur_blink_jiffies; - int cursor_flash; - int cursor_reset; - int blank_state; - int graphics; - int save_graphics; - bool initialized; - int rotate; - int cur_rotate; - char *cursor_data; - u8 *fontbuffer; - u8 *fontdata; - u8 *cursor_src; - u32 cursor_size; - u32 fd_size; -}; - -struct font_desc { - int idx; - const char *name; - unsigned int width; - unsigned int height; - unsigned int charcount; - const void *data; - int pref; -}; - -struct fb_con2fbmap { - __u32 console; - __u32 framebuffer; -}; - -typedef unsigned int u_int; - -struct timer_rand_state { - unsigned long last_time; - long last_delta; - long last_delta2; -}; - -enum { - CRNG_EMPTY = 0, - CRNG_EARLY = 1, - CRNG_READY = 2, -}; - -struct batch_u8 { - u8 entropy[96]; - local_lock_t lock; - unsigned long generation; - unsigned int position; -}; - -struct batch_u16 { - u16 entropy[48]; - local_lock_t lock; - unsigned long generation; - unsigned int position; -}; - -struct batch_u32 { - u32 entropy[24]; - local_lock_t lock; - unsigned long generation; - unsigned int position; -}; - -struct batch_u64 { - u64 entropy[12]; - local_lock_t lock; - unsigned long generation; - unsigned int position; -}; - -struct crng { - u8 key[32]; - unsigned long generation; - local_lock_t lock; -}; - -struct execute_work { - struct work_struct work; -}; - -struct fast_pool { - unsigned long pool[4]; - unsigned long last; - unsigned int count; - struct timer_list mix; -}; - -enum { - NUM_TRIAL_SAMPLES = 8192, - MAX_SAMPLES_PER_BIT = 66, -}; - -enum { - MIX_INFLIGHT = 2147483648, -}; - -enum chacha_constants { - CHACHA_CONSTANT_EXPA = 1634760805, - CHACHA_CONSTANT_ND_3 = 857760878, - CHACHA_CONSTANT_2_BY = 2036477234, - CHACHA_CONSTANT_TE_K = 1797285236, -}; - -enum { - POOL_BITS = 256, - POOL_READY_BITS = 256, - POOL_EARLY_BITS = 128, -}; - -enum { - CRNG_RESEED_START_INTERVAL = 1000, - CRNG_RESEED_INTERVAL = 60000, -}; - -struct entropy_timer_state { - unsigned long entropy; - struct timer_list timer; - atomic_t samples; - unsigned int samples_per_bit; -}; - -struct iwl_rxq_sync_cmd { - __le32 flags; - __le32 rxq_mask; - __le32 count; - u8 payload[0]; -}; - -struct iwl_mvm_internal_rxq_notif { - u16 type; - u16 sync; - u32 cookie; - u8 data[0]; -}; - -enum iwl_mcc_update_status { - MCC_RESP_NEW_CHAN_PROFILE = 0, - MCC_RESP_SAME_CHAN_PROFILE = 1, - MCC_RESP_INVALID = 2, - MCC_RESP_NVM_DISABLED = 3, - MCC_RESP_ILLEGAL = 4, - MCC_RESP_LOW_PRIORITY = 5, - MCC_RESP_TEST_MODE_ACTIVE = 6, - MCC_RESP_TEST_MODE_NOT_ACTIVE = 7, - MCC_RESP_TEST_MODE_DENIAL_OF_SERVICE = 8, -}; - -enum ieee80211_radiotap_mcs_have { - IEEE80211_RADIOTAP_MCS_HAVE_BW = 1, - IEEE80211_RADIOTAP_MCS_HAVE_MCS = 2, - IEEE80211_RADIOTAP_MCS_HAVE_GI = 4, - IEEE80211_RADIOTAP_MCS_HAVE_FMT = 8, - IEEE80211_RADIOTAP_MCS_HAVE_FEC = 16, - IEEE80211_RADIOTAP_MCS_HAVE_STBC = 32, -}; - -enum ieee80211_radiotap_vht_known { - IEEE80211_RADIOTAP_VHT_KNOWN_STBC = 1, - IEEE80211_RADIOTAP_VHT_KNOWN_TXOP_PS_NA = 2, - IEEE80211_RADIOTAP_VHT_KNOWN_GI = 4, - IEEE80211_RADIOTAP_VHT_KNOWN_SGI_NSYM_DIS = 8, - IEEE80211_RADIOTAP_VHT_KNOWN_LDPC_EXTRA_OFDM_SYM = 16, - IEEE80211_RADIOTAP_VHT_KNOWN_BEAMFORMED = 32, - IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH = 64, - IEEE80211_RADIOTAP_VHT_KNOWN_GROUP_ID = 128, - IEEE80211_RADIOTAP_VHT_KNOWN_PARTIAL_AID = 256, -}; - -enum ieee80211_radiotap_timestamp_unit_spos { - IEEE80211_RADIOTAP_TIMESTAMP_UNIT_MASK = 15, - IEEE80211_RADIOTAP_TIMESTAMP_UNIT_MS = 0, - IEEE80211_RADIOTAP_TIMESTAMP_UNIT_US = 1, - IEEE80211_RADIOTAP_TIMESTAMP_UNIT_NS = 3, - IEEE80211_RADIOTAP_TIMESTAMP_SPOS_MASK = 240, - IEEE80211_RADIOTAP_TIMESTAMP_SPOS_BEGIN_MDPU = 0, - IEEE80211_RADIOTAP_TIMESTAMP_SPOS_PLCP_SIG_ACQ = 16, - IEEE80211_RADIOTAP_TIMESTAMP_SPOS_EO_PPDU = 32, - IEEE80211_RADIOTAP_TIMESTAMP_SPOS_EO_MPDU = 48, - IEEE80211_RADIOTAP_TIMESTAMP_SPOS_UNKNOWN = 240, -}; - -enum ieee80211_regulatory_flags { - REGULATORY_CUSTOM_REG = 1, - REGULATORY_STRICT_REG = 2, - REGULATORY_DISABLE_BEACON_HINTS = 4, - REGULATORY_COUNTRY_IE_FOLLOW_POWER = 8, - REGULATORY_COUNTRY_IE_IGNORE = 16, - REGULATORY_ENABLE_RELAX_NO_IR = 32, - REGULATORY_WIPHY_SELF_MANAGED = 128, -}; - -enum iwl_location_subcmd_ids { - TOF_RANGE_REQ_CMD = 0, - TOF_CONFIG_CMD = 1, - TOF_RANGE_ABORT_CMD = 2, - TOF_RANGE_REQ_EXT_CMD = 3, - TOF_RESPONDER_CONFIG_CMD = 4, - TOF_RESPONDER_DYN_CONFIG_CMD = 5, - CSI_HEADER_NOTIFICATION = 250, - CSI_CHUNKS_NOTIFICATION = 251, - TOF_LC_NOTIF = 252, - TOF_RESPONDER_STATS = 253, - TOF_MCSI_DEBUG_NOTIF = 254, - TOF_RANGE_RESPONSE_NOTIF = 255, -}; - -enum wiphy_wowlan_support_flags { - WIPHY_WOWLAN_ANY = 1, - WIPHY_WOWLAN_MAGIC_PKT = 2, - WIPHY_WOWLAN_DISCONNECT = 4, - WIPHY_WOWLAN_SUPPORTS_GTK_REKEY = 8, - WIPHY_WOWLAN_GTK_REKEY_FAILURE = 16, - WIPHY_WOWLAN_EAP_IDENTITY_REQ = 32, - WIPHY_WOWLAN_4WAY_HANDSHAKE = 64, - WIPHY_WOWLAN_RFKILL_RELEASE = 128, - WIPHY_WOWLAN_NET_DETECT = 256, -}; - -enum mac80211_tx_control_flags { - IEEE80211_TX_CTRL_PORT_CTRL_PROTO = 1, - IEEE80211_TX_CTRL_PS_RESPONSE = 2, - IEEE80211_TX_CTRL_RATE_INJECT = 4, - IEEE80211_TX_CTRL_AMSDU = 8, - IEEE80211_TX_CTRL_FAST_XMIT = 16, - IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP = 32, - IEEE80211_TX_INTCFL_NEED_TXPROCESSING = 64, - IEEE80211_TX_CTRL_NO_SEQNO = 128, - IEEE80211_TX_CTRL_DONT_REORDER = 256, - IEEE80211_TX_CTRL_MCAST_MLO_FIRST_TX = 512, - IEEE80211_TX_CTRL_MLO_LINK = 4026531840, -}; - -enum iwl_dev_tx_power_cmd_mode { - IWL_TX_POWER_MODE_SET_MAC = 0, - IWL_TX_POWER_MODE_SET_DEVICE = 1, - IWL_TX_POWER_MODE_SET_CHAINS = 2, - IWL_TX_POWER_MODE_SET_ACK = 3, - IWL_TX_POWER_MODE_SET_SAR_TIMER = 4, - IWL_TX_POWER_MODE_SET_SAR_TIMER_DEFAULT_TABLE = 5, -}; - -enum iwl_he_pkt_ext_constellations { - IWL_HE_PKT_EXT_BPSK = 0, - IWL_HE_PKT_EXT_QPSK = 1, - IWL_HE_PKT_EXT_16QAM = 2, - IWL_HE_PKT_EXT_64QAM = 3, - IWL_HE_PKT_EXT_256QAM = 4, - IWL_HE_PKT_EXT_1024QAM = 5, - IWL_HE_PKT_EXT_4096QAM = 6, - IWL_HE_PKT_EXT_NONE = 7, -}; - -enum iwl_he_htc_flags { - IWL_HE_HTC_SUPPORT = 1, - IWL_HE_HTC_UL_MU_RESP_SCHED = 8, - IWL_HE_HTC_BSR_SUPP = 16, - IWL_HE_HTC_OMI_SUPP = 32, - IWL_HE_HTC_BQR_SUPP = 64, -}; - -enum iwl_mvm_low_latency_cause { - LOW_LATENCY_TRAFFIC = 1, - LOW_LATENCY_DEBUGFS = 2, - LOW_LATENCY_VCMD = 4, - LOW_LATENCY_VIF_TYPE = 8, - LOW_LATENCY_DEBUGFS_FORCE_ENABLE = 16, - LOW_LATENCY_DEBUGFS_FORCE = 32, -}; - -enum iwl_mvm_pm_event { - IWL_MVM_PM_EVENT_AWAKE = 0, - IWL_MVM_PM_EVENT_ASLEEP = 1, - IWL_MVM_PM_EVENT_UAPSD = 2, - IWL_MVM_PM_EVENT_PS_POLL = 3, -}; - -enum ieee80211_chanctx_change { - IEEE80211_CHANCTX_CHANGE_WIDTH = 1, - IEEE80211_CHANCTX_CHANGE_RX_CHAINS = 2, - IEEE80211_CHANCTX_CHANGE_RADAR = 4, - IEEE80211_CHANCTX_CHANGE_CHANNEL = 8, - IEEE80211_CHANCTX_CHANGE_MIN_WIDTH = 16, - IEEE80211_CHANCTX_CHANGE_AP = 32, - IEEE80211_CHANCTX_CHANGE_PUNCTURING = 64, -}; - -enum survey_info_flags { - SURVEY_INFO_NOISE_DBM = 1, - SURVEY_INFO_IN_USE = 2, - SURVEY_INFO_TIME = 4, - SURVEY_INFO_TIME_BUSY = 8, - SURVEY_INFO_TIME_EXT_BUSY = 16, - SURVEY_INFO_TIME_RX = 32, - SURVEY_INFO_TIME_TX = 64, - SURVEY_INFO_TIME_SCAN = 128, - SURVEY_INFO_TIME_BSS_RX = 256, -}; - -enum iwl_mvm_rxq_notif_type { - IWL_MVM_RXQ_EMPTY = 0, - IWL_MVM_RXQ_NOTIF_DEL_BA = 1, -}; - -enum nl80211_ftm_responder_stats { - __NL80211_FTM_STATS_INVALID = 0, - NL80211_FTM_STATS_SUCCESS_NUM = 1, - NL80211_FTM_STATS_PARTIAL_NUM = 2, - NL80211_FTM_STATS_FAILED_NUM = 3, - NL80211_FTM_STATS_ASAP_NUM = 4, - NL80211_FTM_STATS_NON_ASAP_NUM = 5, - NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 6, - NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 7, - NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 8, - NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 9, - NL80211_FTM_STATS_PAD = 10, - __NL80211_FTM_STATS_AFTER_LAST = 11, - NL80211_FTM_STATS_MAX = 10, -}; - -enum iwl_disable_11n { - IWL_DISABLE_HT_ALL = 1, - IWL_DISABLE_HT_TXAGG = 2, - IWL_DISABLE_HT_RXAGG = 4, - IWL_ENABLE_HT_TXAGG = 8, -}; - -enum iwl_fw_dbg_trigger_vif_type { - IWL_FW_DBG_CONF_VIF_ANY = 0, - IWL_FW_DBG_CONF_VIF_IBSS = 1, - IWL_FW_DBG_CONF_VIF_STATION = 2, - IWL_FW_DBG_CONF_VIF_AP = 3, - IWL_FW_DBG_CONF_VIF_P2P_CLIENT = 8, - IWL_FW_DBG_CONF_VIF_P2P_GO = 9, - IWL_FW_DBG_CONF_VIF_P2P_DEVICE = 10, -}; - -enum iwl_fw_dbg_trigger_mode { - IWL_FW_DBG_TRIGGER_START = 1, - IWL_FW_DBG_TRIGGER_STOP = 2, - IWL_FW_DBG_TRIGGER_MONITOR_ONLY = 4, -}; - -enum iwl_ucode_tlv_flag { - IWL_UCODE_TLV_FLAGS_PAN = 1, - IWL_UCODE_TLV_FLAGS_NEWSCAN = 2, - IWL_UCODE_TLV_FLAGS_MFP = 4, - IWL_UCODE_TLV_FLAGS_SHORT_BL = 128, - IWL_UCODE_TLV_FLAGS_D3_6_IPV6_ADDRS = 1024, - IWL_UCODE_TLV_FLAGS_NO_BASIC_SSID = 4096, - IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_SMALL = 32768, - IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_LARGE = 65536, - IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT = 16777216, - IWL_UCODE_TLV_FLAGS_EBS_SUPPORT = 33554432, - IWL_UCODE_TLV_FLAGS_P2P_PS_UAPSD = 67108864, -}; - -enum iwl_uapsd_disable { - IWL_DISABLE_UAPSD_BSS = 1, - IWL_DISABLE_UAPSD_P2P_CLIENT = 2, -}; - -enum iwl_he_sta_ctxt_flags { - STA_CTXT_HE_REF_BSSID_VALID = 16, - STA_CTXT_HE_BSS_COLOR_DIS = 32, - STA_CTXT_HE_PARTIAL_BSS_COLOR = 64, - STA_CTXT_HE_32BIT_BA_BITMAP = 128, - STA_CTXT_HE_PACKET_EXT = 256, - STA_CTXT_HE_TRIG_RND_ALLOC = 512, - STA_CTXT_HE_CONST_TRIG_RND_ALLOC = 1024, - STA_CTXT_HE_ACK_ENABLED = 2048, - STA_CTXT_HE_MU_EDCA_CW = 4096, - STA_CTXT_HE_NIC_NOT_ACK_ENABLED = 8192, - STA_CTXT_HE_RU_2MHZ_BLOCK = 16384, - STA_CTXT_HE_NDP_FEEDBACK_ENABLED = 32768, - STA_CTXT_EHT_PUNCTURE_MASK_VALID = 65536, - STA_CTXT_EHT_LONG_PPE_ENABLED = 131072, -}; - -enum iwl_roc_activity { - ROC_ACTIVITY_HOTSPOT = 0, - ROC_ACTIVITY_P2P_DISC = 1, - ROC_ACTIVITY_P2P_TXRX = 2, - ROC_NUM_ACTIVITIES = 3, -}; - -enum rate_info_flags { - RATE_INFO_FLAGS_MCS = 1, - RATE_INFO_FLAGS_VHT_MCS = 2, - RATE_INFO_FLAGS_SHORT_GI = 4, - RATE_INFO_FLAGS_DMG = 8, - RATE_INFO_FLAGS_HE_MCS = 16, - RATE_INFO_FLAGS_EDMG = 32, - RATE_INFO_FLAGS_EXTENDED_SC_DMG = 64, - RATE_INFO_FLAGS_EHT_MCS = 128, - RATE_INFO_FLAGS_S1G_MCS = 256, -}; - -enum nl80211_he_ru_alloc { - NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0, - NL80211_RATE_INFO_HE_RU_ALLOC_52 = 1, - NL80211_RATE_INFO_HE_RU_ALLOC_106 = 2, - NL80211_RATE_INFO_HE_RU_ALLOC_242 = 3, - NL80211_RATE_INFO_HE_RU_ALLOC_484 = 4, - NL80211_RATE_INFO_HE_RU_ALLOC_996 = 5, - NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 6, -}; - -enum iwl_sta_type { - IWL_STA_LINK = 0, - IWL_STA_GENERAL_PURPOSE = 1, - IWL_STA_MULTICAST = 2, - IWL_STA_TDLS_LINK = 3, - IWL_STA_AUX_ACTIVITY = 4, -}; - -struct iwl_mcc_update_resp_v8 { - __le32 status; - __le16 mcc; - u8 padding[2]; - __le32 cap; - __le16 time; - __le16 geo_info; - u8 source_id; - u8 reserved[3]; - __le32 n_channels; - __le32 channels[0]; -}; - -struct iwl_fw_dbg_trigger_ba { - __le16 rx_ba_start; - __le16 rx_ba_stop; - __le16 tx_ba_start; - __le16 tx_ba_stop; - __le16 rx_bar; - __le16 tx_bar; - __le16 frame_timeout; -}; - -struct iwl_mu_group_mgmt_cmd { - __le32 reserved; - __le32 membership_status[2]; - __le32 user_position[4]; -}; - -struct iwl_hs20_roc_req_tail { - u8 node_addr[6]; - __le16 reserved; - __le32 apply_time; - __le32 apply_time_max_delay; - __le32 duration; -}; - -struct iwl_hs20_roc_req { - __le32 id_and_color; - __le32 action; - __le32 event_unique_id; - __le32 sta_id_and_color; - struct iwl_fw_channel_info channel_info; - struct iwl_hs20_roc_req_tail tail; -}; - -struct iwl_mvm_ftm_responder_iter_data { - bool responder; - struct ieee80211_chanctx_conf *ctx; -}; - -struct iwl_chan_switch_te_cmd { - __le32 mac_id; - __le32 action; - __le32 tsf; - u8 cs_count; - u8 cs_delayed_bcn_count; - u8 cs_mode; - u8 reserved; -}; - -struct iwl_fw_dbg_trigger_mlme { - u8 stop_auth_denied; - u8 stop_auth_timeout; - u8 stop_rx_deauth; - u8 stop_tx_deauth; - u8 stop_assoc_denied; - u8 stop_assoc_timeout; - u8 stop_connection_loss; - u8 reserved; - u8 start_auth_denied; - u8 start_auth_timeout; - u8 start_rx_deauth; - u8 start_tx_deauth; - u8 start_assoc_denied; - u8 start_assoc_timeout; - u8 start_connection_loss; - u8 reserved2; -}; - -struct iwl_mvm_he_obss_narrow_bw_ru_data { - bool tolerated; -}; - -struct iwl_mvm_mc_iter_data { - struct iwl_mvm *mvm; - int port_id; -}; - -struct iwl_mu_group_mgmt_notif { - __le32 membership_status[2]; - __le32 user_position[4]; -}; - -struct iwl_he_backoff_conf { - __le16 cwmin; - __le16 cwmax; - __le16 aifsn; - __le16 mu_time; -}; - -struct iwl_mvm_pm_state_notification { - u8 sta_id; - u8 type; - __le16 reserved; -}; - -struct iwl_fw_dbg_trigger_tdls { - u8 action_bitmap; - u8 peer_mode; - u8 peer[6]; - u8 reserved[4]; -}; - -struct iwl_he_pkt_ext_v1 { - u8 pkt_ext_qam_th[16]; -}; - -struct iwl_he_sta_context_cmd_v2 { - u8 sta_id; - u8 tid_limit; - u8 reserved1; - u8 reserved2; - __le32 flags; - u8 ref_bssid_addr[6]; - __le16 reserved0; - __le32 htc_flags; - u8 frag_flags; - u8 frag_level; - u8 frag_max_num; - u8 frag_min_size; - struct iwl_he_pkt_ext_v1 pkt_ext; - u8 bss_color; - u8 htc_trig_based_pkt_ext; - __le16 frame_time_rts_th; - u8 rand_alloc_ecwmin; - u8 rand_alloc_ecwmax; - __le16 reserved3; - struct iwl_he_backoff_conf trig_based_txf[4]; - u8 max_bssid_indicator; - u8 bssid_index; - u8 ema_ap; - u8 profile_periodicity; - u8 bssid_count; - u8 reserved4[3]; -}; - -struct iwl_he_sta_context_cmd_v3 { - u8 sta_id; - u8 tid_limit; - u8 reserved1; - u8 reserved2; - __le32 flags; - u8 ref_bssid_addr[6]; - __le16 reserved0; - __le32 htc_flags; - u8 frag_flags; - u8 frag_level; - u8 frag_max_num; - u8 frag_min_size; - struct iwl_he_pkt_ext_v2 pkt_ext; - u8 bss_color; - u8 htc_trig_based_pkt_ext; - __le16 frame_time_rts_th; - u8 rand_alloc_ecwmin; - u8 rand_alloc_ecwmax; - __le16 puncture_mask; - struct iwl_he_backoff_conf trig_based_txf[4]; - u8 max_bssid_indicator; - u8 bssid_index; - u8 ema_ap; - u8 profile_periodicity; - u8 bssid_count; - u8 reserved4[3]; -}; - -struct iwl_hs20_roc_res { - __le32 event_unique_id; - __le32 status; -}; - -typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); - -typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); - -typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); - -typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); - -typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); - -typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); - -typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); - -typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); - -typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); - -typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); - -typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); - -typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); - -typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); - -typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); - -typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); - -typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); - -struct dbc_request; - -typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); - -struct xhci_dbc; - -struct dbc_request { - void *buf; - unsigned int length; - dma_addr_t dma; - void (*complete)(struct xhci_dbc *, struct dbc_request *); - struct list_head list_pool; - int status; - unsigned int actual; - struct xhci_dbc *dbc; - struct list_head list_pending; - dma_addr_t trb_dma; - union xhci_trb *trb; - unsigned int direction: 1; -}; - -enum dbc_state { - DS_DISABLED = 0, - DS_INITIALIZED = 1, - DS_ENABLED = 2, - DS_CONNECTED = 3, - DS_CONFIGURED = 4, - DS_STALLED = 5, - DS_MAX = 6, -}; - -struct dbc_ep { - struct xhci_dbc *dbc; - struct list_head list_pending; - struct xhci_ring *ring; - unsigned int direction: 1; -}; - -struct dbc_regs; - -struct dbc_str_descs; - -struct dbc_driver; - -struct xhci_dbc { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, +}; + +struct io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 user_addr; +}; + +struct io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 user_addr; +}; + +struct io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; +}; + +struct __kernel_old_timeval { + __kernel_long_t tv_sec; + __kernel_long_t tv_usec; +}; + +struct rusage { + struct __kernel_old_timeval ru_utime; + struct __kernel_old_timeval ru_stime; + __kernel_long_t ru_maxrss; + __kernel_long_t ru_ixrss; + __kernel_long_t ru_idrss; + __kernel_long_t ru_isrss; + __kernel_long_t ru_minflt; + __kernel_long_t ru_majflt; + __kernel_long_t ru_nswap; + __kernel_long_t ru_inblock; + __kernel_long_t ru_oublock; + __kernel_long_t ru_msgsnd; + __kernel_long_t ru_msgrcv; + __kernel_long_t ru_nsignals; + __kernel_long_t ru_nvcsw; + __kernel_long_t ru_nivcsw; +}; + +struct ksignal { + struct k_sigaction ka; + kernel_siginfo_t info; + int sig; +}; + +enum acpi_ec_event_state { + EC_EVENT_READY = 0, + EC_EVENT_IN_PROGRESS = 1, + EC_EVENT_COMPLETE = 2, +}; + +struct transaction; + +struct acpi_ec { + acpi_handle handle; + acpi_handle address_space_handler_holder; + int gpe; + int irq; + unsigned long command_addr; + unsigned long data_addr; + bool global_lock; + unsigned long flags; + unsigned long reference_count; + struct mutex mutex; + wait_queue_head_t wait; + struct list_head list; + struct transaction *curr; spinlock_t lock; - struct device *dev; - struct xhci_hcd *xhci; - struct dbc_regs *regs; - struct xhci_ring *ring_evt; - struct xhci_ring *ring_in; - struct xhci_ring *ring_out; - struct xhci_erst erst; - struct xhci_container_ctx *ctx; - struct dbc_str_descs *string; - dma_addr_t string_dma; - size_t string_size; - u16 idVendor; - u16 idProduct; - u16 bcdDevice; - u8 bInterfaceProtocol; - enum dbc_state state; - struct delayed_work event_work; - unsigned int poll_interval; - unsigned int resume_required: 1; - struct dbc_ep eps[2]; - const struct dbc_driver *driver; - void *priv; + struct work_struct work; + unsigned long timestamp; + enum acpi_ec_event_state event_state; + unsigned int events_to_process; + unsigned int events_in_progress; + unsigned int queries_in_progress; + bool busy_polling; + unsigned int polling_guard; }; -struct dbc_regs { - __le32 capability; - __le32 doorbell; - __le32 ersts; - __le32 __reserved_0; - __le64 erstba; - __le64 erdp; - __le32 control; - __le32 status; - __le32 portsc; - __le32 __reserved_1; - __le64 dccp; - __le32 devinfo1; - __le32 devinfo2; +struct transaction { + const u8 *wdata; + u8 *rdata; + unsigned short irq_count; + u8 command; + u8 wi; + u8 ri; + u8 wlen; + u8 rlen; + u8 flags; }; -struct dbc_str_descs { - char string0[64]; - char manufacturer[64]; - char product[64]; - char serial[64]; +typedef int (*acpi_op_add)(struct acpi_device *); + +typedef void (*acpi_op_remove)(struct acpi_device *); + +typedef void (*acpi_op_notify)(struct acpi_device *, u32); + +struct acpi_device_ops { + acpi_op_add add; + acpi_op_remove remove; + acpi_op_notify notify; }; -struct dbc_driver { - int (*configure)(struct xhci_dbc *); - void (*disconnect)(struct xhci_dbc *); -}; - -typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); - -typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); - -typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); - -struct trace_event_raw_xhci_log_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_ctx { - struct trace_entry ent; - int ctx_64; - unsigned int ctx_type; - dma_addr_t ctx_dma; - u8 *ctx_va; - unsigned int ctx_ep_num; - u32 __data_loc_ctx_data; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_trb { - struct trace_entry ent; - u32 type; - u32 field0; - u32 field1; - u32 field2; - u32 field3; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_free_virt_dev { - struct trace_entry ent; - void *vdev; - unsigned long long out_ctx; - unsigned long long in_ctx; - int hcd_portnum; - int hw_portnum; - u16 current_mel; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_virt_dev { - struct trace_entry ent; - void *vdev; - unsigned long long out_ctx; - unsigned long long in_ctx; - int devnum; - int state; - int speed; - u8 portnum; - u8 level; - int slot_id; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_urb { - struct trace_entry ent; - void *urb; - unsigned int pipe; - unsigned int stream; - int status; +struct acpi_driver { + char name[80]; + char class[80]; + const struct acpi_device_id *ids; unsigned int flags; - int num_mapped_sgs; - int num_sgs; - int length; - int actual; - int epnum; - int dir_in; - int type; - int slot_id; - char __data[0]; + struct acpi_device_ops ops; + struct device_driver drv; + struct module *owner; }; -struct trace_event_raw_xhci_log_ep_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u64 deq; - u32 tx_info; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_slot_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u32 tt_info; - u32 state; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_ctrl_ctx { - struct trace_entry ent; - u32 drop; - u32 add; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_ring { - struct trace_entry ent; - u32 type; - void *ring; - dma_addr_t enq; - dma_addr_t deq; - dma_addr_t enq_seg; - dma_addr_t deq_seg; - unsigned int num_segs; - unsigned int stream_id; - unsigned int cycle_state; - unsigned int bounce_buf_len; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_portsc { - struct trace_entry ent; - u32 busnum; - u32 portnum; - u32 portsc; - char __data[0]; -}; - -struct trace_event_raw_xhci_log_doorbell { - struct trace_entry ent; - u32 slot; - u32 doorbell; - char __data[0]; -}; - -struct trace_event_raw_xhci_dbc_log_request { - struct trace_entry ent; - struct dbc_request *req; - bool dir; - unsigned int actual; - unsigned int length; - int status; - char __data[0]; -}; - -struct trace_event_data_offsets_xhci_log_msg { - u32 msg; - const void *msg_ptr_; -}; - -struct trace_event_data_offsets_xhci_log_ctx { - u32 ctx_data; - const void *ctx_data_ptr_; -}; - -struct trace_event_data_offsets_xhci_log_trb {}; - -struct trace_event_data_offsets_xhci_log_free_virt_dev {}; - -struct trace_event_data_offsets_xhci_log_virt_dev {}; - -struct trace_event_data_offsets_xhci_log_urb {}; - -struct trace_event_data_offsets_xhci_log_ep_ctx {}; - -struct trace_event_data_offsets_xhci_log_slot_ctx {}; - -struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; - -struct trace_event_data_offsets_xhci_log_ring {}; - -struct trace_event_data_offsets_xhci_log_portsc {}; - -struct trace_event_data_offsets_xhci_log_doorbell {}; - -struct trace_event_data_offsets_xhci_dbc_log_request {}; - -struct governor_attr { - struct attribute attr; - ssize_t (*show)(struct gov_attr_set *, char *); - ssize_t (*store)(struct gov_attr_set *, const char *, size_t); -}; - -struct cs_policy_dbs_info { - struct policy_dbs_info policy_dbs; - unsigned int down_skip; - unsigned int requested_freq; -}; - -struct cs_dbs_tuners { - unsigned int down_threshold; - unsigned int freq_step; -}; - -struct hid_global { - unsigned int usage_page; - __s32 logical_minimum; - __s32 logical_maximum; - __s32 physical_minimum; - __s32 physical_maximum; - __s32 unit_exponent; - unsigned int unit; - unsigned int report_id; - unsigned int report_size; - unsigned int report_count; -}; - -struct hid_local { - unsigned int usage[12288]; - u8 usage_size[12288]; - unsigned int collection_index[12288]; - unsigned int usage_index; - unsigned int usage_minimum; - unsigned int delimiter_depth; - unsigned int delimiter_branch; -}; - -struct hid_parser { - struct hid_global global; - struct hid_global global_stack[4]; - unsigned int global_stack_ptr; - struct hid_local local; - unsigned int *collection_stack; - unsigned int collection_stack_ptr; - unsigned int collection_stack_size; - struct hid_device *device; - unsigned int scan_flags; -}; - -struct hid_item { - unsigned int format; - __u8 size; - __u8 type; - __u8 tag; - union { - __u8 u8; - __s8 s8; - __u16 u16; - __s16 s16; - __u32 u32; - __s32 s32; - __u8 *longdata; - } data; -}; - -enum hid_class_request { - HID_REQ_GET_REPORT = 1, - HID_REQ_GET_IDLE = 2, - HID_REQ_GET_PROTOCOL = 3, - HID_REQ_SET_REPORT = 9, - HID_REQ_SET_IDLE = 10, - HID_REQ_SET_PROTOCOL = 11, -}; - -struct hiddev { - int minor; - int exist; - int open; - struct mutex existancelock; - wait_queue_head_t wait; - struct hid_device *hid; - struct list_head list; - spinlock_t list_lock; - bool initialized; -}; - -struct hidraw { - unsigned int minor; - int exist; - int open; - wait_queue_head_t wait; - struct hid_device *hid; - struct device *dev; - spinlock_t list_lock; - struct list_head list; -}; - -struct hid_dynid { - struct list_head list; - struct hid_device_id id; +enum ec_command { + ACPI_EC_COMMAND_READ = 128, + ACPI_EC_COMMAND_WRITE = 129, + ACPI_EC_BURST_ENABLE = 130, + ACPI_EC_BURST_DISABLE = 131, + ACPI_EC_COMMAND_QUERY = 132, }; enum { - ETHTOOL_A_PRIVFLAGS_UNSPEC = 0, - ETHTOOL_A_PRIVFLAGS_HEADER = 1, - ETHTOOL_A_PRIVFLAGS_FLAGS = 2, - __ETHTOOL_A_PRIVFLAGS_CNT = 3, - ETHTOOL_A_PRIVFLAGS_MAX = 2, + EC_FLAGS_QUERY_ENABLED = 0, + EC_FLAGS_EVENT_HANDLER_INSTALLED = 1, + EC_FLAGS_EC_HANDLER_INSTALLED = 2, + EC_FLAGS_EC_REG_CALLED = 3, + EC_FLAGS_QUERY_METHODS_INSTALLED = 4, + EC_FLAGS_STARTED = 5, + EC_FLAGS_STOPPED = 6, + EC_FLAGS_EVENTS_MASKED = 7, }; -struct privflags_reply_data { - struct ethnl_reply_data base; - const char (*priv_flag_names)[32]; - unsigned int n_priv_flags; - u32 priv_flags; +enum acpi_bus_device_type { + ACPI_BUS_TYPE_DEVICE = 0, + ACPI_BUS_TYPE_POWER = 1, + ACPI_BUS_TYPE_PROCESSOR = 2, + ACPI_BUS_TYPE_THERMAL = 3, + ACPI_BUS_TYPE_POWER_BUTTON = 4, + ACPI_BUS_TYPE_SLEEP_BUTTON = 5, + ACPI_BUS_TYPE_ECDT_EC = 6, + ACPI_BUS_DEVICE_TYPE_COUNT = 7, }; -union nft_pipapo_map_bucket; +typedef int (*acpi_ec_query_func)(void *); -struct nft_pipapo_field { - unsigned int rules; - unsigned int bsize; - unsigned int rules_alloc; - u8 groups; - u8 bb; - unsigned long *lt; - union nft_pipapo_map_bucket *mt; +struct acpi_ec_query_handler { + struct list_head node; + acpi_ec_query_func func; + acpi_handle handle; + void *data; + u8 query_bit; + struct kref kref; }; -struct nft_pipapo_scratch; - -struct nft_pipapo_match { - u8 field_count; - unsigned int bsize_max; - struct nft_pipapo_scratch * __attribute__((btf_type_tag("percpu"))) *scratch; - struct callback_head rcu; - struct nft_pipapo_field f[0]; +struct acpi_ec_query { + struct transaction transaction; + struct work_struct work; + struct acpi_ec_query_handler *handler; + struct acpi_ec *ec; }; -struct nft_pipapo_scratch { - u8 map_index; - u32 align_off; - unsigned long map[0]; -}; +typedef u32 acpi_event_status; -struct nft_pipapo_elem; +typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); -union nft_pipapo_map_bucket { - struct { - u32 to; - u32 n; - }; - struct nft_pipapo_elem *e; -}; - -struct nft_pipapo_elem { - struct nft_elem_priv priv; - struct nft_set_ext ext; -}; - -struct nft_pipapo { - struct nft_pipapo_match __attribute__((btf_type_tag("rcu"))) *match; - struct nft_pipapo_match *clone; - int width; - bool dirty; - unsigned long last_gc; -}; - -struct ac6_iter_state { - struct seq_net_private p; - struct net_device *dev; -}; - -struct cfg80211_per_bw_puncturing_values { - u8 len; - const u16 *valid_values; -}; - -enum psc_op { - SNP_PAGE_STATE_PRIVATE = 1, - SNP_PAGE_STATE_SHARED = 2, -}; - -struct nbcon_state { - union { - unsigned int atom; - struct { - unsigned int prio: 2; - unsigned int req_prio: 2; - unsigned int unsafe: 1; - unsigned int unsafe_takeover: 1; - unsigned int cpu: 24; - }; - }; -}; - -enum { - GP_IDLE = 0, - GP_ENTER = 1, - GP_PASSED = 2, - GP_EXIT = 3, - GP_REPLAY = 4, -}; - -typedef void (*btf_trace_timer_init)(void *, struct timer_list *); - -typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long); - -typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long); - -typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); - -typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); - -typedef void (*btf_trace_timer_base_idle)(void *, bool, unsigned int); - -typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); - -typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); - -typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); - -typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); - -typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); - -typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); - -typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); - -typedef void (*btf_trace_tick_stop)(void *, int, int); - -struct timer_base { - raw_spinlock_t lock; - struct timer_list *running_timer; - unsigned long clk; - unsigned long next_expiry; - unsigned int cpu; - bool next_expiry_recalc; - bool is_idle; - bool timers_pending; - unsigned long pending_map[9]; - struct hlist_head vectors[576]; - long: 64; - long: 64; - long: 64; -}; - -struct trace_event_raw_timer_class { - struct trace_entry ent; - void *timer; - char __data[0]; -}; - -struct trace_event_raw_timer_start { - struct trace_entry ent; - void *timer; - void *function; - unsigned long expires; - unsigned long bucket_expiry; - unsigned long now; - unsigned int flags; - char __data[0]; -}; - -struct trace_event_raw_timer_expire_entry { - struct trace_entry ent; - void *timer; - unsigned long now; - void *function; - unsigned long baseclk; - char __data[0]; -}; - -struct trace_event_raw_timer_base_idle { - struct trace_entry ent; - bool is_idle; - unsigned int cpu; - char __data[0]; -}; - -struct trace_event_raw_hrtimer_init { - struct trace_entry ent; - void *hrtimer; - clockid_t clockid; - enum hrtimer_mode mode; - char __data[0]; -}; - -struct trace_event_raw_hrtimer_start { - struct trace_entry ent; - void *hrtimer; - void *function; - s64 expires; - s64 softexpires; - enum hrtimer_mode mode; - char __data[0]; -}; - -struct trace_event_raw_hrtimer_expire_entry { - struct trace_entry ent; - void *hrtimer; - s64 now; - void *function; - char __data[0]; -}; - -struct trace_event_raw_hrtimer_class { - struct trace_entry ent; - void *hrtimer; - char __data[0]; -}; - -struct trace_event_raw_itimer_state { - struct trace_entry ent; - int which; - unsigned long long expires; - long value_sec; - long value_nsec; - long interval_sec; - long interval_nsec; - char __data[0]; -}; - -struct trace_event_raw_itimer_expire { - struct trace_entry ent; - int which; - pid_t pid; - unsigned long long now; - char __data[0]; -}; - -struct trace_event_raw_tick_stop { - struct trace_entry ent; - int success; - int dependency; - char __data[0]; -}; - -struct process_timer { - struct timer_list timer; - struct task_struct *task; -}; - -struct timer_events { - u64 local; - u64 global; -}; - -struct trace_event_data_offsets_timer_class {}; - -struct trace_event_data_offsets_timer_start {}; - -struct trace_event_data_offsets_timer_expire_entry {}; - -struct trace_event_data_offsets_timer_base_idle {}; - -struct trace_event_data_offsets_hrtimer_init {}; - -struct trace_event_data_offsets_hrtimer_start {}; - -struct trace_event_data_offsets_hrtimer_expire_entry {}; - -struct trace_event_data_offsets_hrtimer_class {}; - -struct trace_event_data_offsets_itimer_state {}; - -struct trace_event_data_offsets_itimer_expire {}; - -struct trace_event_data_offsets_tick_stop {}; - -struct bpf_empty_prog_array { - struct bpf_prog_array hdr; - struct bpf_prog *null_prog; -}; - -typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); - -typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); - -typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); - -typedef void (*btf_trace_xdp_redirect_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); - -typedef void (*btf_trace_xdp_redirect_map)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); - -typedef void (*btf_trace_xdp_redirect_map_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); - -struct xdp_cpumap_stats; - -typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); - -struct xdp_cpumap_stats { - unsigned int redirect; - unsigned int pass; - unsigned int drop; -}; - -typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); - -typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); - -struct xdp_mem_allocator; - -typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); - -struct xdp_mem_allocator { - struct xdp_mem_info mem; - union { - void *allocator; - struct page_pool *page_pool; - }; - struct rhash_head node; - struct callback_head rcu; -}; - -typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); - -typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); - -typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *); - -struct latch_tree_root { - seqcount_latch_t seq; - struct rb_root tree[2]; -}; - -struct rnd_state { - __u32 s1; - __u32 s2; - __u32 s3; - __u32 s4; -}; - -struct latch_tree_ops { - bool (*less)(struct latch_tree_node *, struct latch_tree_node *); - int (*comp)(void *, struct latch_tree_node *); -}; - -struct bpf_prog_dummy { - struct bpf_prog prog; -}; - -enum page_size_enum { - __PAGE_SIZE = 4096, -}; - -struct bpf_prog_pack { - struct list_head list; - void *ptr; - unsigned long bitmap[0]; -}; - -typedef u64 (*btf_bpf_user_rnd_u32)(); - -typedef u64 (*btf_bpf_get_raw_cpu_id)(); - -struct trace_event_raw_xdp_exception { - struct trace_entry ent; - int prog_id; - u32 act; - int ifindex; - char __data[0]; -}; - -struct trace_event_raw_xdp_bulk_tx { - struct trace_entry ent; - int ifindex; - u32 act; - int drops; - int sent; - int err; - char __data[0]; -}; - -struct _bpf_dtab_netdev { - struct net_device *dev; -}; - -struct trace_event_raw_xdp_redirect_template { - struct trace_entry ent; - int prog_id; - u32 act; - int ifindex; - int err; - int to_ifindex; - u32 map_id; - int map_index; - char __data[0]; -}; - -struct trace_event_raw_xdp_cpumap_kthread { - struct trace_entry ent; - int map_id; - u32 act; - int cpu; - unsigned int drops; - unsigned int processed; - int sched; - unsigned int xdp_pass; - unsigned int xdp_drop; - unsigned int xdp_redirect; - char __data[0]; -}; - -struct trace_event_raw_xdp_cpumap_enqueue { - struct trace_entry ent; - int map_id; - u32 act; - int cpu; - unsigned int drops; - unsigned int processed; - int to_cpu; - char __data[0]; -}; - -struct trace_event_raw_xdp_devmap_xmit { - struct trace_entry ent; - int from_ifindex; - u32 act; - int to_ifindex; - int drops; - int sent; - int err; - char __data[0]; -}; - -struct trace_event_raw_mem_disconnect { - struct trace_entry ent; - const struct xdp_mem_allocator *xa; - u32 mem_id; - u32 mem_type; - const void *allocator; - char __data[0]; -}; - -struct trace_event_raw_mem_connect { - struct trace_entry ent; - const struct xdp_mem_allocator *xa; - u32 mem_id; - u32 mem_type; - const void *allocator; - const struct xdp_rxq_info *rxq; - int ifindex; - char __data[0]; -}; - -struct trace_event_raw_mem_return_failed { - struct trace_entry ent; - const struct page *page; - u32 mem_id; - u32 mem_type; - char __data[0]; -}; - -struct trace_event_raw_bpf_xdp_link_attach_failed { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; -}; - -struct trace_event_data_offsets_bpf_xdp_link_attach_failed { - u32 msg; - const void *msg_ptr_; -}; - -typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); - -struct trace_event_data_offsets_xdp_exception {}; - -struct trace_event_data_offsets_xdp_bulk_tx {}; - -struct trace_event_data_offsets_xdp_redirect_template {}; - -struct trace_event_data_offsets_xdp_cpumap_kthread {}; - -struct trace_event_data_offsets_xdp_cpumap_enqueue {}; - -struct trace_event_data_offsets_xdp_devmap_xmit {}; - -struct trace_event_data_offsets_mem_disconnect {}; - -struct trace_event_data_offsets_mem_connect {}; - -struct trace_event_data_offsets_mem_return_failed {}; - -struct saved { - struct path link; - struct delayed_call done; - const char *name; - unsigned int seq; -}; - -struct nameidata { - struct path path; - struct qstr last; - struct path root; - struct inode *inode; - unsigned int flags; - unsigned int state; - unsigned int seq; - unsigned int next_seq; - unsigned int m_seq; - unsigned int r_seq; - int last_type; - unsigned int depth; - int total_link_count; - struct saved *stack; - struct saved internal[2]; - struct filename *name; - struct nameidata *saved; - unsigned int root_seq; - int dfd; - vfsuid_t dir_vfsuid; - umode_t dir_mode; -}; - -enum { - LAST_NORM = 0, - LAST_ROOT = 1, - LAST_DOT = 2, - LAST_DOTDOT = 3, -}; - -enum { - WALK_TRAILING = 1, - WALK_MORE = 2, - WALK_NOFOLLOW = 4, -}; - -struct renamedata { - struct mnt_idmap *old_mnt_idmap; - struct inode *old_dir; - struct dentry *old_dentry; - struct mnt_idmap *new_mnt_idmap; - struct inode *new_dir; - struct dentry *new_dentry; - struct inode **delegated_inode; - unsigned int flags; -}; - -struct utf8_table { - int cmask; - int cval; - int shift; - long lmask; - long lval; -}; - -typedef u32 unicode_t; - -struct crypto_shash_spawn { - struct crypto_spawn base; -}; - -struct hmac_ctx { - struct crypto_shash *hash; - u8 pads[0]; -}; - -typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); - -struct cppc_pcc_data { - struct pcc_mbox_chan *pcc_channel; - void *pcc_comm_addr; - bool pcc_channel_acquired; - unsigned int deadline_us; - unsigned int pcc_mpar; - unsigned int pcc_mrtt; - unsigned int pcc_nominal; - bool pending_pcc_write_cmd; - bool platform_owns_pcc; - unsigned int pcc_write_cnt; - struct rw_semaphore pcc_lock; - wait_queue_head_t pcc_write_wait_q; - ktime_t last_cmd_cmpl_time; - ktime_t last_mpar_reset; - int mpar_count; - int refcount; -}; - -struct cpc_reg { - u8 descriptor; - u16 length; +struct acpi_generic_address { u8 space_id; u8 bit_width; u8 bit_offset; @@ -84932,544 +53366,2435 @@ struct cpc_reg { u64 address; } __attribute__((packed)); -struct cpc_register_resource { - acpi_object_type type; - u64 *sys_mem_vaddr; - union { - struct cpc_reg reg; - u64 int_value; - } cpc_entry; +struct acpi_table_ecdt { + struct acpi_table_header header; + struct acpi_generic_address control; + struct acpi_generic_address data; + u32 uid; + u8 gpe; + u8 id[0]; +} __attribute__((packed)); + +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; }; -struct cpc_desc { - int num_entries; - int version; - int cpu_id; - int write_cmd_status; - int write_cmd_id; - struct cpc_register_resource cpc_regs[21]; - struct acpi_psd_package domain_info; - struct kobject kobj; +struct kbd_struct { + unsigned char lockstate; + unsigned char slockstate; + unsigned char ledmode: 1; + unsigned char ledflagstate: 4; + char: 3; + unsigned char default_ledflagstate: 4; + unsigned char kbdmode: 3; + int: 1; + unsigned char modeflags: 5; }; -enum cppc_regs { - HIGHEST_PERF = 0, - NOMINAL_PERF = 1, - LOW_NON_LINEAR_PERF = 2, - LOWEST_PERF = 3, - GUARANTEED_PERF = 4, - DESIRED_PERF = 5, - MIN_PERF = 6, - MAX_PERF = 7, - PERF_REDUC_TOLERANCE = 8, - TIME_WINDOW = 9, - CTR_WRAP_TIME = 10, - REFERENCE_CTR = 11, - DELIVERED_CTR = 12, - PERF_LIMITED = 13, - ENABLE = 14, - AUTO_SEL_ENABLE = 15, - AUTO_ACT_WINDOW = 16, - ENERGY_PERF = 17, - REFERENCE_PERF = 18, - LOWEST_FREQ = 19, - NOMINAL_FREQ = 20, -}; +struct input_handle; -enum dmi_entry_type { - DMI_ENTRY_BIOS = 0, - DMI_ENTRY_SYSTEM = 1, - DMI_ENTRY_BASEBOARD = 2, - DMI_ENTRY_CHASSIS = 3, - DMI_ENTRY_PROCESSOR = 4, - DMI_ENTRY_MEM_CONTROLLER = 5, - DMI_ENTRY_MEM_MODULE = 6, - DMI_ENTRY_CACHE = 7, - DMI_ENTRY_PORT_CONNECTOR = 8, - DMI_ENTRY_SYSTEM_SLOT = 9, - DMI_ENTRY_ONBOARD_DEVICE = 10, - DMI_ENTRY_OEMSTRINGS = 11, - DMI_ENTRY_SYSCONF = 12, - DMI_ENTRY_BIOS_LANG = 13, - DMI_ENTRY_GROUP_ASSOC = 14, - DMI_ENTRY_SYSTEM_EVENT_LOG = 15, - DMI_ENTRY_PHYS_MEM_ARRAY = 16, - DMI_ENTRY_MEM_DEVICE = 17, - DMI_ENTRY_32_MEM_ERROR = 18, - DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, - DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, - DMI_ENTRY_BUILTIN_POINTING_DEV = 21, - DMI_ENTRY_PORTABLE_BATTERY = 22, - DMI_ENTRY_SYSTEM_RESET = 23, - DMI_ENTRY_HW_SECURITY = 24, - DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, - DMI_ENTRY_VOLTAGE_PROBE = 26, - DMI_ENTRY_COOLING_DEV = 27, - DMI_ENTRY_TEMP_PROBE = 28, - DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, - DMI_ENTRY_OOB_REMOTE_ACCESS = 30, - DMI_ENTRY_BIS_ENTRY = 31, - DMI_ENTRY_SYSTEM_BOOT = 32, - DMI_ENTRY_MGMT_DEV = 33, - DMI_ENTRY_MGMT_DEV_COMPONENT = 34, - DMI_ENTRY_MGMT_DEV_THRES = 35, - DMI_ENTRY_MEM_CHANNEL = 36, - DMI_ENTRY_IPMI_DEV = 37, - DMI_ENTRY_SYS_POWER_SUPPLY = 38, - DMI_ENTRY_ADDITIONAL = 39, - DMI_ENTRY_ONBOARD_DEV_EXT = 40, - DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, - DMI_ENTRY_INACTIVE = 126, - DMI_ENTRY_END_OF_TABLE = 127, -}; +struct input_value; -struct dmi_header { - u8 type; - u8 length; - u16 handle; -}; +struct input_dev; -struct cppc_perf_caps { - u32 guaranteed_perf; - u32 highest_perf; - u32 nominal_perf; - u32 lowest_perf; - u32 lowest_nonlinear_perf; - u32 lowest_freq; - u32 nominal_freq; - u32 energy_perf; - bool auto_sel; -}; +struct input_device_id; -struct cppc_perf_ctrls { - u32 max_perf; - u32 min_perf; - u32 desired_perf; - u32 energy_perf; -}; - -struct cppc_perf_fb_ctrs { - u64 reference; - u64 delivered; - u64 reference_perf; - u64 wraparound_time; -}; - -struct cppc_cpudata { - struct list_head node; - struct cppc_perf_caps perf_caps; - struct cppc_perf_ctrls perf_ctrls; - struct cppc_perf_fb_ctrs perf_fb_ctrs; - unsigned int shared_type; - cpumask_var_t shared_cpu_map; -}; - -struct acpi_pcct_shared_memory { - u32 signature; - u16 command; - u16 status; -}; - -struct devres_node { - struct list_head entry; - dr_release_t release; +struct input_handler { + void *private; + void (*event)(struct input_handle *, unsigned int, unsigned int, int); + void (*events)(struct input_handle *, const struct input_value *, unsigned int); + bool (*filter)(struct input_handle *, unsigned int, unsigned int, int); + bool (*match)(struct input_handler *, struct input_dev *); + int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *); + void (*disconnect)(struct input_handle *); + void (*start)(struct input_handle *); + bool legacy_minors; + int minor; const char *name; - size_t size; + const struct input_device_id *id_table; + struct list_head h_list; + struct list_head node; }; -struct devres { - struct devres_node node; - u8 data[0]; +struct input_handle { + void *private; + int open; + const char *name; + struct input_dev *dev; + struct input_handler *handler; + struct list_head d_node; + struct list_head h_node; }; -struct devres_group { - struct devres_node node[2]; - void *id; - int color; +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; }; -struct action_devres { - void *data; - void (*action)(void *); +struct input_keymap_entry; + +struct ff_device; + +struct input_dev_poller; + +struct input_mt; + +struct input_absinfo; + +struct input_dev { + const char *name; + const char *phys; + const char *uniq; + struct input_id id; + unsigned long propbit[1]; + unsigned long evbit[1]; + unsigned long keybit[12]; + unsigned long relbit[1]; + unsigned long absbit[1]; + unsigned long mscbit[1]; + unsigned long ledbit[1]; + unsigned long sndbit[1]; + unsigned long ffbit[2]; + unsigned long swbit[1]; + unsigned int hint_events_per_packet; + unsigned int keycodemax; + unsigned int keycodesize; + void *keycode; + int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *); + int (*getkeycode)(struct input_dev *, struct input_keymap_entry *); + struct ff_device *ff; + struct input_dev_poller *poller; + unsigned int repeat_key; + struct timer_list timer; + int rep[2]; + struct input_mt *mt; + struct input_absinfo *absinfo; + unsigned long key[12]; + unsigned long led[1]; + unsigned long snd[1]; + unsigned long sw[1]; + int (*open)(struct input_dev *); + void (*close)(struct input_dev *); + int (*flush)(struct input_dev *, struct file *); + int (*event)(struct input_dev *, unsigned int, unsigned int, int); + struct input_handle __attribute__((btf_type_tag("rcu"))) *grab; + spinlock_t event_lock; + struct mutex mutex; + unsigned int users; + bool going_away; + struct device dev; + struct list_head h_list; + struct list_head node; + unsigned int num_vals; + unsigned int max_vals; + struct input_value *vals; + bool devres_managed; + ktime_t timestamp[3]; + bool inhibited; }; -struct pages_devres { - unsigned long addr; - unsigned int order; +struct input_keymap_entry { + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; }; -enum scsi_disposition { - NEEDS_RETRY = 8193, - SUCCESS = 8194, - FAILED = 8195, - QUEUED = 8196, - SOFT_ERROR = 8197, - ADD_TO_MLQUEUE = 8198, - TIMEOUT_ERROR = 8199, - SCSI_RETURN_NOT_HANDLED = 8200, - FAST_IO_FAIL = 8201, +struct ff_effect; + +struct ff_device { + int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *); + int (*erase)(struct input_dev *, int); + int (*playback)(struct input_dev *, int, int); + void (*set_gain)(struct input_dev *, u16); + void (*set_autocenter)(struct input_dev *, u16); + void (*destroy)(struct ff_device *); + void *private; + unsigned long ffbit[2]; + struct mutex mutex; + int max_effects; + struct ff_effect *effects; + struct file *effect_owners[0]; }; -enum scsi_scan_mode { - SCSI_SCAN_INITIAL = 0, - SCSI_SCAN_RESCAN = 1, - SCSI_SCAN_MANUAL = 2, +struct ff_envelope { + __u16 attack_length; + __u16 attack_level; + __u16 fade_length; + __u16 fade_level; }; -enum scsi_timeouts { - SCSI_DEFAULT_EH_TIMEOUT = 10000, +struct ff_constant_effect { + __s16 level; + struct ff_envelope envelope; }; -struct async_scan_data { - struct list_head list; - struct Scsi_Host *shost; - struct completion prev_finished; +struct ff_ramp_effect { + __s16 start_level; + __s16 end_level; + struct ff_envelope envelope; }; -typedef void (*activate_complete)(void *, int); +struct ff_periodic_effect { + __u16 waveform; + __u16 period; + __s16 magnitude; + __s16 offset; + __u16 phase; + struct ff_envelope envelope; + __u32 custom_len; + __s16 __attribute__((btf_type_tag("user"))) *custom_data; +}; -struct scsi_device_handler { - struct list_head list; +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + __s16 right_coeff; + __s16 left_coeff; + __u16 deadband; + __s16 center; +}; + +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; +}; + +struct ff_trigger { + __u16 button; + __u16 interval; +}; + +struct ff_replay { + __u16 length; + __u16 delay; +}; + +struct ff_effect { + __u16 type; + __s16 id; + __u16 direction; + struct ff_trigger trigger; + struct ff_replay replay; + union { + struct ff_constant_effect constant; + struct ff_ramp_effect ramp; + struct ff_periodic_effect periodic; + struct ff_condition_effect condition[2]; + struct ff_rumble_effect rumble; + } u; +}; + +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; +}; + +struct input_value { + __u16 type; + __u16 code; + __s32 value; +}; + +struct input_device_id { + kernel_ulong_t flags; + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; + kernel_ulong_t evbit[1]; + kernel_ulong_t keybit[12]; + kernel_ulong_t relbit[1]; + kernel_ulong_t absbit[1]; + kernel_ulong_t mscbit[1]; + kernel_ulong_t ledbit[1]; + kernel_ulong_t sndbit[1]; + kernel_ulong_t ffbit[2]; + kernel_ulong_t swbit[1]; + kernel_ulong_t propbit[1]; + kernel_ulong_t driver_info; +}; + +typedef void k_handler_fn(struct vc_data *, unsigned char, char); + +typedef void fn_handler_fn(struct vc_data *); + +enum { + TASKLET_STATE_SCHED = 0, + TASKLET_STATE_RUN = 1, +}; + +struct getset_keycode_data { + struct input_keymap_entry ke; + int error; +}; + +struct keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; +}; + +struct kbd_repeat { + int delay; + int period; +}; + +struct kbdiacr { + unsigned char diacr; + unsigned char base; + unsigned char result; +}; + +struct kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; +}; + +struct kbdiacruc { + unsigned int diacr; + unsigned int base; + unsigned int result; +}; + +struct kbdiacrsuc { + unsigned int kb_cnt; + struct kbdiacruc kbdiacruc[256]; +}; + +struct kbkeycode { + unsigned int scancode; + unsigned int keycode; +}; + +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + unsigned short kb_value; +}; + +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; +}; + +struct ata_queued_cmd; + +typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); + +struct ata_taskfile { + unsigned long flags; + u8 protocol; + u8 ctl; + u8 hob_feature; + u8 hob_nsect; + u8 hob_lbal; + u8 hob_lbam; + u8 hob_lbah; + union { + u8 error; + u8 feature; + }; + u8 nsect; + u8 lbal; + u8 lbam; + u8 lbah; + u8 device; + union { + u8 status; + u8 command; + }; + u32 auxiliary; +}; + +typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); + +struct ata_port; + +struct ata_device; + +struct ata_queued_cmd { + struct ata_port *ap; + struct ata_device *dev; + struct scsi_cmnd *scsicmd; + void (*scsidone)(struct scsi_cmnd *); + struct ata_taskfile tf; + u8 cdb[16]; + unsigned long flags; + unsigned int tag; + unsigned int hw_tag; + unsigned int n_elem; + unsigned int orig_n_elem; + int dma_dir; + unsigned int sect_size; + unsigned int nbytes; + unsigned int extrabytes; + unsigned int curbytes; + struct scatterlist sgent; + struct scatterlist *sg; + struct scatterlist *cursg; + unsigned int cursg_ofs; + unsigned int err_mask; + struct ata_taskfile result_tf; + ata_qc_cb_t complete_fn; + void *private_data; + void *lldd_task; +}; + +struct ata_ioports { + void *cmd_addr; + void *data_addr; + void *error_addr; + void *feature_addr; + void *nsect_addr; + void *lbal_addr; + void *lbam_addr; + void *lbah_addr; + void *device_addr; + void *status_addr; + void *command_addr; + void *altstatus_addr; + void *ctl_addr; + void *bmdma_addr; + void *scr_addr; +}; + +enum ata_lpm_policy { + ATA_LPM_UNKNOWN = 0, + ATA_LPM_MAX_POWER = 1, + ATA_LPM_MED_POWER = 2, + ATA_LPM_MED_POWER_WITH_DIPM = 3, + ATA_LPM_MIN_POWER_WITH_PARTIAL = 4, + ATA_LPM_MIN_POWER = 5, +}; + +struct ata_eh_info { + struct ata_device *dev; + u32 serror; + unsigned int err_mask; + unsigned int action; + unsigned int dev_action[2]; + unsigned int flags; + unsigned int probe_mask; + char desc[80]; + int desc_len; +}; + +struct ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[16]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + unsigned long last_reset; +}; + +struct ata_ering_entry { + unsigned int eflags; + unsigned int err_mask; + u64 timestamp; +}; + +struct ata_ering { + int cursor; + struct ata_ering_entry ring[32]; +}; + +struct ata_link; + +struct ata_cpr_log; + +struct ata_device { + struct ata_link *link; + unsigned int devno; + unsigned int horkage; + unsigned long flags; + struct scsi_device *sdev; + void *private_data; + union acpi_object *gtf_cache; + unsigned int gtf_filter; + struct device tdev; + u64 n_sectors; + u64 n_native_sectors; + unsigned int class; + unsigned long unpark_deadline; + u8 pio_mode; + u8 dma_mode; + u8 xfer_mode; + unsigned int xfer_shift; + unsigned int multi_count; + unsigned int max_sectors; + unsigned int cdb_len; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + u16 cylinders; + u16 heads; + u16 sectors; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + struct ata_cpr_log *cpr_log; + u8 cdl[512]; + int spdn_cnt; + struct ata_ering ering; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct ata_link { + struct ata_port *ap; + int pmp; + struct device tdev; + unsigned int active_tag; + u32 sactive; + unsigned int flags; + u32 saved_scontrol; + unsigned int hw_sata_spd_limit; + unsigned int sata_spd_limit; + unsigned int sata_spd; + enum ata_lpm_policy lpm_policy; + struct ata_eh_info eh_info; + struct ata_eh_context eh_context; + long: 64; + long: 64; + long: 64; + long: 64; + struct ata_device device[2]; + unsigned long last_lpm_change; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct ata_port_stats { + unsigned long unhandled_irq; + unsigned long idle_irq; + unsigned long rw_reqbuf; +}; + +struct ata_acpi_drive { + u32 pio; + u32 dma; +}; + +struct ata_acpi_gtm { + struct ata_acpi_drive drive[2]; + u32 flags; +}; + +struct ata_port_operations; + +struct ata_bmdma_prd; + +struct ata_host; + +struct ata_port { + struct Scsi_Host *scsi_host; + struct ata_port_operations *ops; + spinlock_t *lock; + unsigned long flags; + unsigned int pflags; + unsigned int print_id; + unsigned int local_port_no; + unsigned int port_no; + struct ata_ioports ioaddr; + u8 ctl; + u8 last_ctl; + struct ata_link *sff_pio_task_link; + struct delayed_work sff_pio_task; + struct ata_bmdma_prd *bmdma_prd; + dma_addr_t bmdma_prd_dma; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + unsigned int cbl; + struct ata_queued_cmd qcmd[33]; + u64 qc_active; + int nr_active_links; + struct ata_link link; + struct ata_link *slave_link; + int nr_pmp_links; + struct ata_link *pmp_link; + struct ata_link *excl_link; + struct ata_port_stats stats; + struct ata_host *host; + struct device *dev; + struct device tdev; + struct mutex scsi_scan_mutex; + struct delayed_work hotplug_task; + struct delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + struct ata_acpi_gtm __acpi_init_gtm; + u8 *ncq_sense_buf; + long: 64; + long: 64; + long: 64; + long: 64; + u8 sector_buf[512]; +}; + +enum scsi_host_state { + SHOST_CREATED = 1, + SHOST_RUNNING = 2, + SHOST_CANCEL = 3, + SHOST_DEL = 4, + SHOST_RECOVERY = 5, + SHOST_CANCEL_RECOVERY = 6, + SHOST_DEL_RECOVERY = 7, +}; + +struct scsi_host_template; + +struct scsi_transport_template; + +struct Scsi_Host { + struct list_head __devices; + struct list_head __targets; + struct list_head starved_list; + spinlock_t default_lock; + spinlock_t *host_lock; + struct mutex scan_mutex; + struct list_head eh_abort_list; + struct list_head eh_cmd_q; + struct task_struct *ehandler; + struct completion *eh_action; + wait_queue_head_t host_wait; + const struct scsi_host_template *hostt; + struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; + struct blk_mq_tag_set tag_set; + atomic_t host_blocked; + unsigned int host_failed; + unsigned int host_eh_scheduled; + unsigned int host_no; + int eh_deadline; + unsigned long last_reset; + unsigned int max_channel; + unsigned int max_id; + u64 max_lun; + unsigned int unique_id; + unsigned short max_cmd_len; + int this_id; + int can_queue; + short cmd_per_lun; + unsigned short sg_tablesize; + unsigned short sg_prot_tablesize; + unsigned int max_sectors; + unsigned int opt_sectors; + unsigned int max_segment_size; + unsigned long dma_boundary; + unsigned long virt_boundary_mask; + unsigned int nr_hw_queues; + unsigned int nr_maps; + unsigned int active_mode: 2; + unsigned int host_self_blocked: 1; + unsigned int reverse_ordering: 1; + unsigned int tmf_in_progress: 1; + unsigned int async_scan: 1; + unsigned int eh_noresume: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int short_inquiry: 1; + unsigned int no_scsi2_lun_in_cdb: 1; + char work_q_name[20]; + struct workqueue_struct *work_q; + struct workqueue_struct *tmf_work_q; + unsigned int max_host_blocked; + unsigned int prot_capabilities; + unsigned char prot_guard_type; + unsigned long base; + unsigned long io_port; + unsigned char n_io_port; + unsigned char dma_channel; + unsigned int irq; + enum scsi_host_state shost_state; + struct device shost_gendev; + struct device shost_dev; + void *shost_data; + struct device *dma_dev; + int rpm_autosuspend_delay; + unsigned long hostdata[0]; +}; + +enum scsi_timeout_action { + SCSI_EH_DONE = 0, + SCSI_EH_RESET_TIMER = 1, + SCSI_EH_NOT_HANDLED = 2, +}; + +struct scsi_host_template { + unsigned int cmd_size; + int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *); + void (*commit_rqs)(struct Scsi_Host *, u16); struct module *module; const char *name; - enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); - int (*attach)(struct scsi_device *); - void (*detach)(struct scsi_device *); - int (*activate)(struct scsi_device *, activate_complete, void *); - blk_status_t (*prep_fn)(struct scsi_device *, struct request *); - int (*set_params)(struct scsi_device *, const char *); - void (*rescan)(struct scsi_device *); + const char * (*info)(struct Scsi_Host *); + int (*ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *); + int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); + int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); + int (*eh_abort_handler)(struct scsi_cmnd *); + int (*eh_device_reset_handler)(struct scsi_cmnd *); + int (*eh_target_reset_handler)(struct scsi_cmnd *); + int (*eh_bus_reset_handler)(struct scsi_cmnd *); + int (*eh_host_reset_handler)(struct scsi_cmnd *); + int (*slave_alloc)(struct scsi_device *); + int (*slave_configure)(struct scsi_device *); + void (*slave_destroy)(struct scsi_device *); + int (*target_alloc)(struct scsi_target *); + void (*target_destroy)(struct scsi_target *); + int (*scan_finished)(struct Scsi_Host *, unsigned long); + void (*scan_start)(struct Scsi_Host *); + int (*change_queue_depth)(struct scsi_device *, int); + void (*map_queues)(struct Scsi_Host *); + int (*mq_poll)(struct Scsi_Host *, unsigned int); + bool (*dma_need_drain)(struct request *); + int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *); + void (*unlock_native_capacity)(struct scsi_device *); + int (*show_info)(struct seq_file *, struct Scsi_Host *); + int (*write_info)(struct Scsi_Host *, char *, int); + enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *); + bool (*eh_should_retry_cmd)(struct scsi_cmnd *); + int (*host_reset)(struct Scsi_Host *, int); + const char *proc_name; + int can_queue; + int this_id; + unsigned short sg_tablesize; + unsigned short sg_prot_tablesize; + unsigned int max_sectors; + unsigned int max_segment_size; + unsigned long dma_boundary; + unsigned long virt_boundary_mask; + short cmd_per_lun; + int tag_alloc_policy; + unsigned int track_queue_depth: 1; + unsigned int supported_mode: 2; + unsigned int emulated: 1; + unsigned int skip_settle_delay: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int max_host_blocked; + const struct attribute_group **shost_groups; + const struct attribute_group **sdev_groups; + u64 vendor_id; }; -struct scsi_driver { - struct device_driver gendrv; - void (*rescan)(struct device *); - blk_status_t (*init_command)(struct scsi_cmnd *); - void (*uninit_command)(struct scsi_cmnd *); - int (*done)(struct scsi_cmnd *); - int (*eh_action)(struct scsi_cmnd *, int); - void (*eh_reset)(struct scsi_cmnd *); +enum ata_completion_errors { + AC_ERR_OK = 0, + AC_ERR_DEV = 1, + AC_ERR_HSM = 2, + AC_ERR_TIMEOUT = 4, + AC_ERR_MEDIA = 8, + AC_ERR_ATA_BUS = 16, + AC_ERR_HOST_BUS = 32, + AC_ERR_SYSTEM = 64, + AC_ERR_INVALID = 128, + AC_ERR_OTHER = 256, + AC_ERR_NODEV_HINT = 512, + AC_ERR_NCQ = 1024, }; -struct scsi_lun { - __u8 scsi_lun[8]; +typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); + +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); + +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); + +enum sw_activity { + OFF = 0, + BLINK_ON = 1, + BLINK_OFF = 2, }; -enum iwl_link_ctx_protection_flags { - LINK_PROT_FLG_TGG_PROTECT = 1, - LINK_PROT_FLG_HT_PROT = 2, - LINK_PROT_FLG_FAT_PROT = 4, - LINK_PROT_FLG_SELF_CTS_EN = 8, +struct ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + void (*qc_fill_rtf)(struct ata_queued_cmd *); + void (*qc_ncq_fill_rtf)(struct ata_port *, u64); + int (*cable_detect)(struct ata_port *); + unsigned int (*mode_filter)(struct ata_device *, unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + const struct ata_port_operations *inherits; }; -enum iwl_link_ctx_flags { - LINK_FLG_BSS_COLOR_DIS = 1, - LINK_FLG_MU_EDCA_CW = 2, - LINK_FLG_RU_2MHZ_BLOCK = 4, - LINK_FLG_NDP_FEEDBACK_ENABLED = 8, +struct ata_cpr { + u8 num; + u8 num_storage_elements; + u64 start_lba; + u64 num_lbas; }; -struct iwl_ac_qos___2 { - __le16 cw_min; - __le16 cw_max; - u8 aifsn; - u8 fifos_mask; - __le16 edca_txop; +struct ata_cpr_log { + u8 nr_cpr; + struct ata_cpr cpr[0]; }; -struct iwl_link_config_cmd { - __le32 action; - __le32 link_id; - __le32 mac_id; - __le32 phy_id; - u8 local_link_addr[6]; - __le16 reserved_for_local_link_addr; - __le32 modify_mask; - __le32 active; - union { - __le32 listen_lmac; - __le32 reserved1; - }; - __le32 cck_rates; - __le32 ofdm_rates; - __le32 cck_short_preamble; - __le32 short_slot; - __le32 protection_flags; - __le32 qos_flags; - struct iwl_ac_qos___2 ac[5]; - u8 htc_trig_based_pkt_ext; - u8 rand_alloc_ecwmin; - u8 rand_alloc_ecwmax; - u8 ndp_fdbk_buff_th_exp; - struct iwl_he_backoff_conf trig_based_txf[4]; - __le32 bi; - __le32 dtim_interval; - __le16 puncture_mask; - __le16 frame_time_rts_th; - __le32 flags; - __le32 flags_mask; - u8 ref_bssid_addr[6]; - __le16 reserved_for_ref_bssid_addr; - u8 bssid_index; - u8 bss_color; - u8 spec_link_id; - u8 reserved2; - u8 ibss_bssid_addr[6]; - __le16 reserved_for_ibss_bssid_addr; - __le32 reserved3[8]; -}; - -enum netlink_attribute_type { - NL_ATTR_TYPE_INVALID = 0, - NL_ATTR_TYPE_FLAG = 1, - NL_ATTR_TYPE_U8 = 2, - NL_ATTR_TYPE_U16 = 3, - NL_ATTR_TYPE_U32 = 4, - NL_ATTR_TYPE_U64 = 5, - NL_ATTR_TYPE_S8 = 6, - NL_ATTR_TYPE_S16 = 7, - NL_ATTR_TYPE_S32 = 8, - NL_ATTR_TYPE_S64 = 9, - NL_ATTR_TYPE_BINARY = 10, - NL_ATTR_TYPE_STRING = 11, - NL_ATTR_TYPE_NUL_STRING = 12, - NL_ATTR_TYPE_NESTED = 13, - NL_ATTR_TYPE_NESTED_ARRAY = 14, - NL_ATTR_TYPE_BITFIELD32 = 15, - NL_ATTR_TYPE_SINT = 16, - NL_ATTR_TYPE_UINT = 17, -}; - -enum netlink_policy_type_attr { - NL_POLICY_TYPE_ATTR_UNSPEC = 0, - NL_POLICY_TYPE_ATTR_TYPE = 1, - NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2, - NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3, - NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4, - NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5, - NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6, - NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7, - NL_POLICY_TYPE_ATTR_POLICY_IDX = 8, - NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9, - NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10, - NL_POLICY_TYPE_ATTR_PAD = 11, - NL_POLICY_TYPE_ATTR_MASK = 12, - __NL_POLICY_TYPE_ATTR_MAX = 13, - NL_POLICY_TYPE_ATTR_MAX = 12, -}; - -enum nla_policy_validation { - NLA_VALIDATE_NONE = 0, - NLA_VALIDATE_RANGE = 1, - NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, - NLA_VALIDATE_MIN = 3, - NLA_VALIDATE_MAX = 4, - NLA_VALIDATE_MASK = 5, - NLA_VALIDATE_RANGE_PTR = 6, - NLA_VALIDATE_FUNCTION = 7, -}; - -struct netlink_policy_dump_state { - unsigned int policy_idx; - unsigned int attr_idx; - unsigned int n_alloc; - struct { - const struct nla_policy *policy; - unsigned int maxtype; - } policies[0]; -}; - -struct xsk_queue; - -struct xdp_umem; - -struct xdp_buff_xsk; - -struct xdp_desc; - -struct xsk_buff_pool { +struct ata_host { + spinlock_t lock; struct device *dev; - struct net_device *netdev; - struct list_head xsk_tx_list; - spinlock_t xsk_tx_list_lock; - refcount_t users; - struct xdp_umem *umem; - struct work_struct work; - struct list_head free_list; - struct list_head xskb_list; - u32 heads_cnt; - u16 queue_id; - long: 64; - long: 64; - long: 64; - long: 64; - struct xsk_queue *fq; - struct xsk_queue *cq; - dma_addr_t *dma_pages; - struct xdp_buff_xsk *heads; - struct xdp_desc *tx_descs; - u64 chunk_mask; - u64 addrs_cnt; - u32 free_list_cnt; - u32 dma_pages_cnt; - u32 free_heads_cnt; - u32 headroom; - u32 chunk_size; - u32 chunk_shift; - u32 frame_len; - u8 tx_metadata_len; - u8 cached_need_wakeup; - bool uses_need_wakeup; - bool dma_need_sync; - bool unaligned; - bool tx_sw_csum; - void *addrs; - spinlock_t cq_lock; - struct xdp_buff_xsk *free_heads[0]; - long: 64; - long: 64; - long: 64; + void * const *iomap; + unsigned int n_ports; + unsigned int n_tags; + void *private_data; + struct ata_port_operations *ops; + unsigned long flags; + struct kref kref; + struct mutex eh_mutex; + struct task_struct *eh_owner; + struct ata_port *simplex_claimed; + struct ata_port *ports[0]; }; -struct xdp_umem { - void *addrs; - u64 size; - u32 headroom; - u32 chunk_size; - u32 chunks; - u32 npgs; - struct user_struct *user; - refcount_t users; - u8 flags; - u8 tx_metadata_len; - bool zc; - struct page **pgs; - int id; - struct list_head xsk_dma_list; - struct work_struct work; +struct ata_bmdma_prd { + __le32 addr; + __le32 flags_len; }; -struct xdp_buff_xsk { - struct xdp_buff xdp; - u8 cb[24]; - dma_addr_t dma; - dma_addr_t frame_dma; - struct xsk_buff_pool *pool; - u64 orig_addr; - struct list_head free_list_node; - struct list_head xskb_list_node; +typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); + +typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); + +typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int); + +typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int); + +typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int); + +typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int); + +typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); + +typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); + +typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); + +typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int); + +typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int); + +typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); + +typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int); + +typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int); + +typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *); + +typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *); + +typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *); + +typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char); + +typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); + +typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char); + +typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); + +typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); + +typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); + +typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *); + +struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; }; -struct xdp_desc { - __u64 addr; - __u32 len; - __u32 options; +struct ata_port_info { + unsigned long flags; + unsigned long link_flags; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + struct ata_port_operations *port_ops; + void *private_data; +}; + +struct ata_force_param { + const char *name; + u8 cbl; + u8 spd_limit; + unsigned int xfer_mask; + unsigned int horkage_on; + unsigned int horkage_off; + u16 lflags_on; + u16 lflags_off; +}; + +struct ata_force_ent { + int port; + int device; + struct ata_force_param param; +}; + +struct ata_xfer_ent { + int shift; + int bits; + u8 base; +}; + +struct ata_blacklist_entry { + const char *model_num; + const char *model_rev; + unsigned long horkage; +}; + +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, +}; + +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, }; enum { - ETHTOOL_MSG_KERNEL_NONE = 0, - ETHTOOL_MSG_STRSET_GET_REPLY = 1, - ETHTOOL_MSG_LINKINFO_GET_REPLY = 2, - ETHTOOL_MSG_LINKINFO_NTF = 3, - ETHTOOL_MSG_LINKMODES_GET_REPLY = 4, - ETHTOOL_MSG_LINKMODES_NTF = 5, - ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6, - ETHTOOL_MSG_DEBUG_GET_REPLY = 7, - ETHTOOL_MSG_DEBUG_NTF = 8, - ETHTOOL_MSG_WOL_GET_REPLY = 9, - ETHTOOL_MSG_WOL_NTF = 10, - ETHTOOL_MSG_FEATURES_GET_REPLY = 11, - ETHTOOL_MSG_FEATURES_SET_REPLY = 12, - ETHTOOL_MSG_FEATURES_NTF = 13, - ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14, - ETHTOOL_MSG_PRIVFLAGS_NTF = 15, - ETHTOOL_MSG_RINGS_GET_REPLY = 16, - ETHTOOL_MSG_RINGS_NTF = 17, - ETHTOOL_MSG_CHANNELS_GET_REPLY = 18, - ETHTOOL_MSG_CHANNELS_NTF = 19, - ETHTOOL_MSG_COALESCE_GET_REPLY = 20, - ETHTOOL_MSG_COALESCE_NTF = 21, - ETHTOOL_MSG_PAUSE_GET_REPLY = 22, - ETHTOOL_MSG_PAUSE_NTF = 23, - ETHTOOL_MSG_EEE_GET_REPLY = 24, - ETHTOOL_MSG_EEE_NTF = 25, - ETHTOOL_MSG_TSINFO_GET_REPLY = 26, - ETHTOOL_MSG_CABLE_TEST_NTF = 27, - ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28, - ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29, - ETHTOOL_MSG_FEC_GET_REPLY = 30, - ETHTOOL_MSG_FEC_NTF = 31, - ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 32, - ETHTOOL_MSG_STATS_GET_REPLY = 33, - ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 34, - ETHTOOL_MSG_MODULE_GET_REPLY = 35, - ETHTOOL_MSG_MODULE_NTF = 36, - ETHTOOL_MSG_PSE_GET_REPLY = 37, - ETHTOOL_MSG_RSS_GET_REPLY = 38, - ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 39, - ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 40, - ETHTOOL_MSG_PLCA_NTF = 41, - ETHTOOL_MSG_MM_GET_REPLY = 42, - ETHTOOL_MSG_MM_NTF = 43, - __ETHTOOL_MSG_KERNEL_CNT = 44, - ETHTOOL_MSG_KERNEL_MAX = 43, + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = -2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_CDL = 24, + ATA_LOG_CDL_SIZE = 512, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SENSE_NCQ = 15, + ATA_LOG_SENSE_NCQ_SIZE = 1024, + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, + ATA_LOG_SUPPORTED_CAPABILITIES = 3, + ATA_LOG_CURRENT_SETTINGS = 4, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SETFEATURES_CDL = 13, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, }; -enum ethtool_flags { - ETH_FLAG_TXVLAN = 128, - ETH_FLAG_RXVLAN = 256, - ETH_FLAG_LRO = 32768, - ETH_FLAG_NTUPLE = 134217728, - ETH_FLAG_RXHASH = 268435456, +enum { + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = -1, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_FUA = 512, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_NCQ_SEND_RECV = 2048, + ATA_DFLAG_NCQ_PRIO = 4096, + ATA_DFLAG_CDL = 8192, + ATA_DFLAG_CFG_MASK = 16383, + ATA_DFLAG_PIO = 16384, + ATA_DFLAG_NCQ_OFF = 32768, + ATA_DFLAG_SLEEPING = 65536, + ATA_DFLAG_DUBIOUS_XFER = 131072, + ATA_DFLAG_NO_UNLOAD = 262144, + ATA_DFLAG_UNLOCK_HPA = 524288, + ATA_DFLAG_INIT_MASK = 1048575, + ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, + ATA_DFLAG_CDL_ENABLED = 2097152, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 201341696, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_RESUMING = 65536, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_RTF_FILLED = 4, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_HAS_CDL = 256, + ATA_QCFLAG_EH = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_QCFLAG_EH_SUCCESS_CMD = 524288, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_BOOT = 30000, + ATA_TMOUT_BOOT_QUICK = 7000, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_GET_SUCCESS_SENSE = 64, + ATA_EH_SET_ACTIVE = 128, + ATA_EH_PERDEV_MASK = 225, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, + ATA_HORKAGE_DIAGNOSTIC = 1, + ATA_HORKAGE_NODMA = 2, + ATA_HORKAGE_NONCQ = 4, + ATA_HORKAGE_MAX_SEC_128 = 8, + ATA_HORKAGE_BROKEN_HPA = 16, + ATA_HORKAGE_DISABLE = 32, + ATA_HORKAGE_HPA_SIZE = 64, + ATA_HORKAGE_IVB = 256, + ATA_HORKAGE_STUCK_ERR = 512, + ATA_HORKAGE_BRIDGE_OK = 1024, + ATA_HORKAGE_ATAPI_MOD16_DMA = 2048, + ATA_HORKAGE_FIRMWARE_WARN = 4096, + ATA_HORKAGE_1_5_GBPS = 8192, + ATA_HORKAGE_NOSETXFER = 16384, + ATA_HORKAGE_BROKEN_FPDMA_AA = 32768, + ATA_HORKAGE_DUMP_ID = 65536, + ATA_HORKAGE_MAX_SEC_LBA48 = 131072, + ATA_HORKAGE_ATAPI_DMADIR = 262144, + ATA_HORKAGE_NO_NCQ_TRIM = 524288, + ATA_HORKAGE_NOLPM = 1048576, + ATA_HORKAGE_WD_BROKEN_LPM = 2097152, + ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304, + ATA_HORKAGE_NO_DMA_LOG = 8388608, + ATA_HORKAGE_NOTRIM = 16777216, + ATA_HORKAGE_MAX_SEC_1024 = 33554432, + ATA_HORKAGE_MAX_TRIM_128M = 67108864, + ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728, + ATA_HORKAGE_NO_ID_DEV_LOG = 268435456, + ATA_HORKAGE_NO_LOG_DIR = 536870912, + ATA_HORKAGE_NO_FUA = 1073741824, + ATA_DMA_MASK_ATA = 1, + ATA_DMA_MASK_ATAPI = 2, + ATA_DMA_MASK_CFA = 4, + ATAPI_READ = 0, + ATAPI_WRITE = 1, + ATAPI_READ_CD = 2, + ATAPI_PASS_THRU = 3, + ATAPI_MISC = 4, + ATA_TIMING_SETUP = 1, + ATA_TIMING_ACT8B = 2, + ATA_TIMING_REC8B = 4, + ATA_TIMING_CYC8B = 8, + ATA_TIMING_8BIT = 14, + ATA_TIMING_ACTIVE = 16, + ATA_TIMING_RECOVER = 32, + ATA_TIMING_DMACK_HOLD = 64, + ATA_TIMING_CYCLE = 128, + ATA_TIMING_UDMA = 256, + ATA_TIMING_ALL = 511, + ATA_ACPI_FILTER_SETXFER = 1, + ATA_ACPI_FILTER_LOCK = 2, + ATA_ACPI_FILTER_DIPM = 4, + ATA_ACPI_FILTER_FPDMA_OFFSET = 8, + ATA_ACPI_FILTER_FPDMA_AA = 16, + ATA_ACPI_FILTER_DEFAULT = 7, }; -enum ethtool_sfeatures_retval_bits { - ETHTOOL_F_UNSUPPORTED__BIT = 0, - ETHTOOL_F_WISH__BIT = 1, - ETHTOOL_F_COMPAT__BIT = 2, +enum ata_prot_flags { + ATA_PROT_FLAG_PIO = 1, + ATA_PROT_FLAG_DMA = 2, + ATA_PROT_FLAG_NCQ = 4, + ATA_PROT_FLAG_ATAPI = 8, + ATA_PROT_UNKNOWN = 255, + ATA_PROT_NODATA = 0, + ATA_PROT_PIO = 1, + ATA_PROT_DMA = 2, + ATA_PROT_NCQ_NODATA = 4, + ATA_PROT_NCQ = 6, + ATAPI_PROT_NODATA = 8, + ATAPI_PROT_PIO = 9, + ATAPI_PROT_DMA = 10, }; -enum tunable_id { - ETHTOOL_ID_UNSPEC = 0, - ETHTOOL_RX_COPYBREAK = 1, - ETHTOOL_TX_COPYBREAK = 2, - ETHTOOL_PFC_PREVENTION_TOUT = 3, - ETHTOOL_TX_COPYBREAK_BUF_SIZE = 4, - __ETHTOOL_TUNABLE_COUNT = 5, +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, }; -enum tunable_type_id { - ETHTOOL_TUNABLE_UNSPEC = 0, - ETHTOOL_TUNABLE_U8 = 1, - ETHTOOL_TUNABLE_U16 = 2, - ETHTOOL_TUNABLE_U32 = 3, - ETHTOOL_TUNABLE_U64 = 4, - ETHTOOL_TUNABLE_STRING = 5, - ETHTOOL_TUNABLE_S8 = 6, - ETHTOOL_TUNABLE_S16 = 7, - ETHTOOL_TUNABLE_S32 = 8, - ETHTOOL_TUNABLE_S64 = 9, +enum { + ATA_READID_POSTRESET = 1, + ATA_DNXFER_PIO = 0, + ATA_DNXFER_DMA = 1, + ATA_DNXFER_40C = 2, + ATA_DNXFER_FORCE_PIO = 3, + ATA_DNXFER_FORCE_PIO0 = 4, + ATA_DNXFER_QUIET = -2147483648, }; -enum phy_tunable_id { - ETHTOOL_PHY_ID_UNSPEC = 0, - ETHTOOL_PHY_DOWNSHIFT = 1, - ETHTOOL_PHY_FAST_LINK_DOWN = 2, - ETHTOOL_PHY_EDPD = 3, - __ETHTOOL_PHY_TUNABLE_COUNT = 4, +struct trace_event_raw_ata_qc_issue_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned char cmd; + unsigned char dev; + unsigned char lbal; + unsigned char lbam; + unsigned char lbah; + unsigned char nsect; + unsigned char feature; + unsigned char hob_lbal; + unsigned char hob_lbam; + unsigned char hob_lbah; + unsigned char hob_nsect; + unsigned char hob_feature; + unsigned char ctl; + unsigned char proto; + unsigned long flags; + char __data[0]; }; -enum ethtool_fec_config_bits { - ETHTOOL_FEC_NONE_BIT = 0, - ETHTOOL_FEC_AUTO_BIT = 1, - ETHTOOL_FEC_OFF_BIT = 2, - ETHTOOL_FEC_RS_BIT = 3, - ETHTOOL_FEC_BASER_BIT = 4, - ETHTOOL_FEC_LLRS_BIT = 5, +struct trace_event_raw_ata_qc_complete_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned char status; + unsigned char dev; + unsigned char lbal; + unsigned char lbam; + unsigned char lbah; + unsigned char nsect; + unsigned char error; + unsigned char hob_lbal; + unsigned char hob_lbam; + unsigned char hob_lbah; + unsigned char hob_nsect; + unsigned char hob_feature; + unsigned char ctl; + unsigned long flags; + char __data[0]; }; -struct ethtool_rx_flow_key { +struct trace_event_raw_ata_tf_load { + struct trace_entry ent; + unsigned int ata_port; + unsigned char cmd; + unsigned char dev; + unsigned char lbal; + unsigned char lbam; + unsigned char lbah; + unsigned char nsect; + unsigned char feature; + unsigned char hob_lbal; + unsigned char hob_lbam; + unsigned char hob_lbah; + unsigned char hob_nsect; + unsigned char hob_feature; + unsigned char proto; + char __data[0]; +}; + +struct trace_event_raw_ata_exec_command_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int tag; + unsigned char cmd; + unsigned char feature; + unsigned char hob_nsect; + unsigned char proto; + char __data[0]; +}; + +struct trace_event_raw_ata_bmdma_status { + struct trace_entry ent; + unsigned int ata_port; + unsigned int tag; + unsigned char host_stat; + char __data[0]; +}; + +struct trace_event_raw_ata_eh_link_autopsy { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int eh_action; + unsigned int eh_err_mask; + char __data[0]; +}; + +struct trace_event_raw_ata_eh_link_autopsy_qc { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned int qc_flags; + unsigned int eh_err_mask; + char __data[0]; +}; + +struct trace_event_raw_ata_eh_action_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int eh_action; + char __data[0]; +}; + +struct trace_event_raw_ata_link_reset_begin_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int class[2]; + unsigned long deadline; + char __data[0]; +}; + +struct trace_event_raw_ata_link_reset_end_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int class[2]; + int rc; + char __data[0]; +}; + +struct trace_event_raw_ata_port_eh_begin_template { + struct trace_entry ent; + unsigned int ata_port; + char __data[0]; +}; + +struct trace_event_raw_ata_sff_hsm_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned int qc_flags; + unsigned int protocol; + unsigned int hsm_state; + unsigned char dev_state; + char __data[0]; +}; + +struct trace_event_raw_ata_transfer_data_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned int flags; + unsigned int offset; + unsigned int bytes; + char __data[0]; +}; + +struct trace_event_raw_ata_sff_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned char hsm_state; + char __data[0]; +}; + +struct ata_timing { + unsigned short mode; + unsigned short setup; + unsigned short act8b; + unsigned short rec8b; + unsigned short cyc8b; + unsigned short active; + unsigned short recover; + unsigned short dmack_hold; + unsigned short cycle; + unsigned short udma; +}; + +struct trace_event_data_offsets_ata_qc_issue_template {}; + +struct trace_event_data_offsets_ata_qc_complete_template {}; + +struct trace_event_data_offsets_ata_tf_load {}; + +struct trace_event_data_offsets_ata_exec_command_template {}; + +struct trace_event_data_offsets_ata_bmdma_status {}; + +struct trace_event_data_offsets_ata_eh_link_autopsy {}; + +struct trace_event_data_offsets_ata_eh_link_autopsy_qc {}; + +struct trace_event_data_offsets_ata_eh_action_template {}; + +struct trace_event_data_offsets_ata_link_reset_begin_template {}; + +struct trace_event_data_offsets_ata_link_reset_end_template {}; + +struct trace_event_data_offsets_ata_port_eh_begin_template {}; + +struct trace_event_data_offsets_ata_sff_hsm_template {}; + +struct trace_event_data_offsets_ata_transfer_data_template {}; + +struct trace_event_data_offsets_ata_sff_template {}; + +struct pci_bits { + unsigned int reg; + unsigned int width; + unsigned long mask; + unsigned long val; +}; + +enum ieee80211_key_flags { + IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = 1, + IEEE80211_KEY_FLAG_GENERATE_IV = 2, + IEEE80211_KEY_FLAG_GENERATE_MMIC = 4, + IEEE80211_KEY_FLAG_PAIRWISE = 8, + IEEE80211_KEY_FLAG_SW_MGMT_TX = 16, + IEEE80211_KEY_FLAG_PUT_IV_SPACE = 32, + IEEE80211_KEY_FLAG_RX_MGMT = 64, + IEEE80211_KEY_FLAG_RESERVE_TAILROOM = 128, + IEEE80211_KEY_FLAG_PUT_MIC_SPACE = 256, + IEEE80211_KEY_FLAG_NO_AUTO_TX = 512, + IEEE80211_KEY_FLAG_GENERATE_MMIE = 1024, + IEEE80211_KEY_FLAG_SPP_AMSDU = 2048, +}; + +enum iwl_sec_key_flags { + IWL_SEC_KEY_FLAG_CIPHER_MASK = 7, + IWL_SEC_KEY_FLAG_CIPHER_WEP = 1, + IWL_SEC_KEY_FLAG_CIPHER_CCMP = 2, + IWL_SEC_KEY_FLAG_CIPHER_TKIP = 3, + IWL_SEC_KEY_FLAG_CIPHER_GCMP = 5, + IWL_SEC_KEY_FLAG_NO_TX = 8, + IWL_SEC_KEY_FLAG_KEY_SIZE = 16, + IWL_SEC_KEY_FLAG_MFP = 32, + IWL_SEC_KEY_FLAG_MCAST_KEY = 64, + IWL_SEC_KEY_FLAG_SPP_AMSDU = 128, +}; + +struct iwl_sec_key_cmd { + __le32 action; + union { + struct { + __le32 sta_mask; + __le32 key_id; + __le32 key_flags; + u8 key[32]; + u8 tkip_mic_rx_key[8]; + u8 tkip_mic_tx_key[8]; + __le64 rx_seq; + __le64 tx_seq; + } __attribute__((packed)) add; + struct { + __le32 old_sta_mask; + __le32 new_sta_mask; + __le32 key_id; + __le32 key_flags; + } modify; + struct { + __le32 sta_mask; + __le32 key_id; + __le32 key_flags; + } remove; + } u; +}; + +struct iwl_mvm_sta_key_update_data { + struct ieee80211_sta *sta; + u32 old_sta_mask; + u32 new_sta_mask; + int err; +}; + +struct ignore_entry { + u16 vid; + u16 pid; + u16 bcdmin; + u16 bcdmax; +}; + +struct rc_dev; + +struct ir_raw_event; + +struct ir_raw_handler { + struct list_head list; + u64 protocols; + int (*decode)(struct rc_dev *, struct ir_raw_event); + int (*encode)(enum rc_proto, u32, struct ir_raw_event *, unsigned int); + u32 carrier; + u32 min_timeout; + int (*raw_register)(struct rc_dev *); + int (*raw_unregister)(struct rc_dev *); +}; + +struct ir_raw_event { + union { + u32 duration; + u32 carrier; + }; + u8 duty_cycle; + unsigned int pulse: 1; + unsigned int overflow: 1; + unsigned int timeout: 1; + unsigned int carrier_report: 1; +}; + +enum rc_driver_type { + RC_DRIVER_SCANCODE = 0, + RC_DRIVER_IR_RAW = 1, + RC_DRIVER_IR_RAW_TX = 2, +}; + +struct rc_scancode_filter { + u32 data; + u32 mask; +}; + +struct ir_raw_event_ctrl; + +struct rc_dev { + struct device dev; + bool managed_alloc; + const struct attribute_group *sysfs_groups[5]; + const char *device_name; + const char *input_phys; + struct input_id input_id; + const char *driver_name; + const char *map_name; + struct rc_map rc_map; + struct mutex lock; + unsigned int minor; + struct ir_raw_event_ctrl *raw; + struct input_dev *input_dev; + enum rc_driver_type driver_type; + bool idle; + bool encode_wakeup; + u64 allowed_protocols; + u64 enabled_protocols; + u64 allowed_wakeup_protocols; + enum rc_proto wakeup_protocol; + struct rc_scancode_filter scancode_filter; + struct rc_scancode_filter scancode_wakeup_filter; + u32 scancode_mask; + u32 users; + void *priv; + spinlock_t keylock; + bool keypressed; + unsigned long keyup_jiffies; + struct timer_list timer_keyup; + struct timer_list timer_repeat; + u32 last_keycode; + enum rc_proto last_protocol; + u64 last_scancode; + u8 last_toggle; + u32 timeout; + u32 min_timeout; + u32 max_timeout; + u32 rx_resolution; + u32 tx_resolution; + bool registered; + int (*change_protocol)(struct rc_dev *, u64 *); + int (*open)(struct rc_dev *); + void (*close)(struct rc_dev *); + int (*s_tx_mask)(struct rc_dev *, u32); + int (*s_tx_carrier)(struct rc_dev *, u32); + int (*s_tx_duty_cycle)(struct rc_dev *, u32); + int (*s_rx_carrier_range)(struct rc_dev *, u32, u32); + int (*tx_ir)(struct rc_dev *, unsigned int *, unsigned int); + void (*s_idle)(struct rc_dev *, bool); + int (*s_wideband_receiver)(struct rc_dev *, int); + int (*s_carrier_report)(struct rc_dev *, int); + int (*s_filter)(struct rc_dev *, struct rc_scancode_filter *); + int (*s_wakeup_filter)(struct rc_dev *, struct rc_scancode_filter *); + int (*s_timeout)(struct rc_dev *, unsigned int); +}; + +struct nec_dec { + int state; + unsigned int count; + u32 bits; + bool is_nec_x; + bool necx_repeat; +}; + +struct rc5_dec { + int state; + u32 bits; + unsigned int count; + bool is_rc5x; +}; + +struct rc6_dec { + int state; + u8 header; + u32 body; + bool toggle; + unsigned int count; + unsigned int wanted_bits; +}; + +struct sony_dec { + int state; + u32 bits; + unsigned int count; +}; + +struct jvc_dec { + int state; + u16 bits; + u16 old_bits; + unsigned int count; + bool first; + bool toggle; +}; + +struct sanyo_dec { + int state; + unsigned int count; + u64 bits; +}; + +struct sharp_dec { + int state; + unsigned int count; + u32 bits; + unsigned int pulse_len; +}; + +struct mce_kbd_dec { + spinlock_t keylock; + struct timer_list rx_timeout; + int state; + u8 header; + u32 body; + unsigned int count; + unsigned int wanted_bits; +}; + +struct xmp_dec { + int state; + unsigned int count; + u32 durations[16]; +}; + +struct ir_raw_event_ctrl { + struct list_head list; + struct task_struct *thread; + struct { + union { + struct __kfifo kfifo; + struct ir_raw_event *type; + const struct ir_raw_event *const_type; + char (*rectype)[0]; + struct ir_raw_event *ptr; + const struct ir_raw_event *ptr_const; + }; + struct ir_raw_event buf[512]; + } kfifo; + ktime_t last_event; + struct rc_dev *dev; + spinlock_t edge_spinlock; + struct timer_list edge_handle; + struct ir_raw_event prev_ev; + struct ir_raw_event this_ev; + struct nec_dec nec; + struct rc5_dec rc5; + struct rc6_dec rc6; + struct sony_dec sony; + struct jvc_dec jvc; + struct sanyo_dec sanyo; + struct sharp_dec sharp; + struct mce_kbd_dec mce_kbd; + struct xmp_dec xmp; +}; + +struct ir_raw_timings_pl { + unsigned int header_pulse; + unsigned int bit_space; + unsigned int bit_pulse[2]; + unsigned int trailer_space; + unsigned int msb_first: 1; +}; + +enum sony_state { + STATE_INACTIVE = 0, + STATE_HEADER_SPACE = 1, + STATE_BIT_PULSE = 2, + STATE_BIT_SPACE = 3, + STATE_FINISHED = 4, +}; + +struct net_device_devres { + struct net_device *ndev; +}; + +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; +}; + +struct ethtool_phy_ops { + int (*get_sset_count)(struct phy_device *); + int (*get_strings)(struct phy_device *, u8 *); + int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *, struct netlink_ext_ack *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *); + int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *); +}; + +enum { + SOF_TIMESTAMPING_TX_HARDWARE = 1, + SOF_TIMESTAMPING_TX_SOFTWARE = 2, + SOF_TIMESTAMPING_RX_HARDWARE = 4, + SOF_TIMESTAMPING_RX_SOFTWARE = 8, + SOF_TIMESTAMPING_SOFTWARE = 16, + SOF_TIMESTAMPING_SYS_HARDWARE = 32, + SOF_TIMESTAMPING_RAW_HARDWARE = 64, + SOF_TIMESTAMPING_OPT_ID = 128, + SOF_TIMESTAMPING_TX_SCHED = 256, + SOF_TIMESTAMPING_TX_ACK = 512, + SOF_TIMESTAMPING_OPT_CMSG = 1024, + SOF_TIMESTAMPING_OPT_TSONLY = 2048, + SOF_TIMESTAMPING_OPT_STATS = 4096, + SOF_TIMESTAMPING_OPT_PKTINFO = 8192, + SOF_TIMESTAMPING_OPT_TX_SWHW = 16384, + SOF_TIMESTAMPING_BIND_PHC = 32768, + SOF_TIMESTAMPING_OPT_ID_TCP = 65536, + SOF_TIMESTAMPING_LAST = 65536, + SOF_TIMESTAMPING_MASK = 131071, +}; + +struct ethtool_cmd { + __u32 cmd; + __u32 supported; + __u32 advertising; + __u16 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 transceiver; + __u8 autoneg; + __u8 mdio_support; + __u32 maxtxpkt; + __u32 maxrxpkt; + __u16 speed_hi; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __u32 lp_advertising; + __u32 reserved[2]; +}; + +struct ethtool_forced_speed_map { + u32 speed; + unsigned long caps[2]; + const u32 *cap_arr; + u32 arr_size; +}; + +struct nft_object_ops; + +struct nft_object_type { + const struct nft_object_ops * (*select_ops)(const struct nft_ctx *, const struct nlattr * const *); + const struct nft_object_ops *ops; + struct list_head list; + u32 type; + unsigned int maxattr; + u8 family; + struct module *owner; + const struct nla_policy *policy; +}; + +struct nft_object; + +struct nft_object_ops { + void (*eval)(struct nft_object *, struct nft_regs *, const struct nft_pktinfo *); + unsigned int size; + int (*init)(const struct nft_ctx *, const struct nlattr * const *, struct nft_object *); + void (*destroy)(const struct nft_ctx *, struct nft_object *); + int (*dump)(struct sk_buff *, struct nft_object *, bool); + void (*update)(struct nft_object *, struct nft_object *); + const struct nft_object_type *type; +}; + +struct nft_object_hash_key { + const char *name; + const struct nft_table *table; +}; + +struct nft_object { + struct list_head list; + struct rhlist_head rhlhead; + struct nft_object_hash_key key; + u32 genmask: 2; + u32 use; + u64 handle; + u16 udlen; + u8 *udata; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + const struct nft_object_ops *ops; + unsigned char data[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +enum nft_offload_dep_type { + NFT_OFFLOAD_DEP_UNSPEC = 0, + NFT_OFFLOAD_DEP_NETWORK = 1, + NFT_OFFLOAD_DEP_TRANSPORT = 2, +}; + +struct nft_offload_reg { + u32 key; + u32 len; + u32 base_offset; + u32 offset; + u32 flags; + struct nft_data data; + struct nft_data mask; +}; + +struct nft_offload_ctx { + struct { + enum nft_offload_dep_type type; + __be16 l3num; + u8 protonum; + } dep; + unsigned int num_actions; + struct net *net; + struct nft_offload_reg regs[24]; +}; + +struct flow_dissector { + unsigned long long used_keys; + unsigned short offset[33]; +}; + +struct flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; +}; + +struct flow_dissector_key_control { + u16 thoff; + u16 addr_type; + u32 flags; +}; + +struct flow_dissector_key_ipv4_addrs { + __be32 src; + __be32 dst; +}; + +struct flow_dissector_key_ipv6_addrs { + struct in6_addr src; + struct in6_addr dst; +}; + +struct flow_dissector_key_ports { + union { + __be32 ports; + struct { + __be16 src; + __be16 dst; + }; + }; +}; + +struct flow_dissector_key_ip { + __u8 tos; + __u8 ttl; +}; + +struct flow_dissector_key_vlan { + union { + struct { + u16 vlan_id: 12; + u16 vlan_dei: 1; + u16 vlan_priority: 3; + }; + __be16 vlan_tci; + }; + __be16 vlan_tpid; + __be16 vlan_eth_type; + u16 padding; +}; + +struct flow_dissector_key_eth_addrs { + unsigned char dst[6]; + unsigned char src[6]; +}; + +struct flow_dissector_key_meta { + int ingress_ifindex; + u16 ingress_iftype; + u8 l2_miss; +}; + +struct nft_flow_key { struct flow_dissector_key_basic basic; + struct flow_dissector_key_control control; union { struct flow_dissector_key_ipv4_addrs ipv4; struct flow_dissector_key_ipv6_addrs ipv6; @@ -85477,168 +55802,552 @@ struct ethtool_rx_flow_key { struct flow_dissector_key_ports tp; struct flow_dissector_key_ip ip; struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; struct flow_dissector_key_eth_addrs eth_addrs; + struct flow_dissector_key_meta meta; }; -struct ethtool_rx_flow_match { +struct nft_flow_match { struct flow_dissector dissector; - struct ethtool_rx_flow_key key; - struct ethtool_rx_flow_key mask; + struct nft_flow_key key; + struct nft_flow_key mask; }; -struct ethtool_devlink_compat { - struct devlink *devlink; +struct flow_rule; + +struct nft_flow_rule { + __be16 proto; + struct nft_flow_match match; + struct flow_rule *rule; +}; + +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; +}; + +enum flow_action_id { + FLOW_ACTION_ACCEPT = 0, + FLOW_ACTION_DROP = 1, + FLOW_ACTION_TRAP = 2, + FLOW_ACTION_GOTO = 3, + FLOW_ACTION_REDIRECT = 4, + FLOW_ACTION_MIRRED = 5, + FLOW_ACTION_REDIRECT_INGRESS = 6, + FLOW_ACTION_MIRRED_INGRESS = 7, + FLOW_ACTION_VLAN_PUSH = 8, + FLOW_ACTION_VLAN_POP = 9, + FLOW_ACTION_VLAN_MANGLE = 10, + FLOW_ACTION_TUNNEL_ENCAP = 11, + FLOW_ACTION_TUNNEL_DECAP = 12, + FLOW_ACTION_MANGLE = 13, + FLOW_ACTION_ADD = 14, + FLOW_ACTION_CSUM = 15, + FLOW_ACTION_MARK = 16, + FLOW_ACTION_PTYPE = 17, + FLOW_ACTION_PRIORITY = 18, + FLOW_ACTION_RX_QUEUE_MAPPING = 19, + FLOW_ACTION_WAKE = 20, + FLOW_ACTION_QUEUE = 21, + FLOW_ACTION_SAMPLE = 22, + FLOW_ACTION_POLICE = 23, + FLOW_ACTION_CT = 24, + FLOW_ACTION_CT_METADATA = 25, + FLOW_ACTION_MPLS_PUSH = 26, + FLOW_ACTION_MPLS_POP = 27, + FLOW_ACTION_MPLS_MANGLE = 28, + FLOW_ACTION_GATE = 29, + FLOW_ACTION_PPPOE_PUSH = 30, + FLOW_ACTION_JUMP = 31, + FLOW_ACTION_PIPE = 32, + FLOW_ACTION_VLAN_PUSH_ETH = 33, + FLOW_ACTION_VLAN_POP_ETH = 34, + FLOW_ACTION_CONTINUE = 35, + NUM_FLOW_ACTIONS = 36, +}; + +typedef void (*action_destr)(void *); + +enum flow_action_mangle_base { + FLOW_ACT_MANGLE_UNSPEC = 0, + FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1, + FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2, + FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3, + FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4, + FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5, +}; + +struct psample_group; + +struct action_gate_entry; + +struct nf_flowtable; + +struct flow_action_cookie; + +struct flow_action_entry { + enum flow_action_id id; + u32 hw_index; + unsigned long cookie; + u64 miss_cookie; + enum flow_action_hw_stats hw_stats; + action_destr destructor; + void *destructor_priv; union { - struct ethtool_flash efl; - struct ethtool_drvinfo info; + u32 chain_index; + struct net_device *dev; + struct { + u16 vid; + __be16 proto; + u8 prio; + } vlan; + struct { + unsigned char dst[6]; + unsigned char src[6]; + } vlan_push_eth; + struct { + enum flow_action_mangle_base htype; + u32 offset; + u32 mask; + u32 val; + } mangle; + struct ip_tunnel_info *tunnel; + u32 csum_flags; + u32 mark; + u16 ptype; + u16 rx_queue; + u32 priority; + struct { + u32 ctx; + u32 index; + u8 vf; + } queue; + struct { + struct psample_group *psample_group; + u32 rate; + u32 trunc_size; + bool truncate; + } sample; + struct { + u32 burst; + u64 rate_bytes_ps; + u64 peakrate_bytes_ps; + u32 avrate; + u16 overhead; + u64 burst_pkt; + u64 rate_pkt_ps; + u32 mtu; + struct { + enum flow_action_id act_id; + u32 extval; + } exceed; + struct { + enum flow_action_id act_id; + u32 extval; + } notexceed; + } police; + struct { + int action; + u16 zone; + struct nf_flowtable *flow_table; + } ct; + struct { + unsigned long cookie; + u32 mark; + u32 labels[4]; + bool orig_dir; + } ct_metadata; + struct { + u32 label; + __be16 proto; + u8 tc; + u8 bos; + u8 ttl; + } mpls_push; + struct { + __be16 proto; + } mpls_pop; + struct { + u32 label; + u8 tc; + u8 bos; + u8 ttl; + } mpls_mangle; + struct { + s32 prio; + u64 basetime; + u64 cycletime; + u64 cycletimeext; + u32 num_entries; + struct action_gate_entry *entries; + } gate; + struct { + u16 sid; + } pppoe; + }; + struct flow_action_cookie *user_cookie; +}; + +struct flow_action { + unsigned int num_entries; + struct flow_action_entry entries[0]; +}; + +struct flow_rule { + struct flow_match match; + struct flow_action action; +}; + +struct nf_flowtable_type; + +struct nf_flowtable { + unsigned int flags; + int priority; + struct rhashtable rhashtable; + struct list_head list; + const struct nf_flowtable_type *type; + struct delayed_work gc_work; + struct flow_block flow_block; + struct rw_semaphore flow_block_lock; + possible_net_t net; +}; + +enum flow_block_command { + FLOW_BLOCK_BIND = 0, + FLOW_BLOCK_UNBIND = 1, +}; + +enum flow_offload_tuple_dir { + FLOW_OFFLOAD_DIR_ORIGINAL = 0, + FLOW_OFFLOAD_DIR_REPLY = 1, +}; + +struct flow_offload; + +struct nf_flow_rule; + +struct nf_flowtable_type { + struct list_head list; + int family; + int (*init)(struct nf_flowtable *); + bool (*gc)(const struct flow_offload *); + int (*setup)(struct nf_flowtable *, struct net_device *, enum flow_block_command); + int (*action)(struct net *, struct flow_offload *, enum flow_offload_tuple_dir, struct nf_flow_rule *); + void (*free)(struct nf_flowtable *); + void (*get)(struct nf_flowtable *); + void (*put)(struct nf_flowtable *); + nf_hookfn *hook; + struct module *owner; +}; + +struct flow_offload_tuple { + union { + struct in_addr src_v4; + struct in6_addr src_v6; + }; + union { + struct in_addr dst_v4; + struct in6_addr dst_v6; + }; + struct { + __be16 src_port; + __be16 dst_port; + }; + int iifidx; + u8 l3proto; + u8 l4proto; + struct { + u16 id; + __be16 proto; + } encap[2]; + struct {} __hash; + u8 dir: 2; + u8 xmit_type: 3; + u8 encap_num: 2; + char: 1; + u8 in_vlan_ingress: 2; + u16 mtu; + union { + struct { + struct dst_entry *dst_cache; + u32 dst_cookie; + }; + struct { + u32 ifidx; + u32 hw_ifidx; + u8 h_source[6]; + u8 h_dest[6]; + } out; + struct { + u32 iifidx; + } tc; }; }; -struct ethtool_value { - __u32 cmd; - __u32 data; +struct flow_offload_tuple_rhash { + struct rhash_head node; + struct flow_offload_tuple tuple; }; -struct ethtool_rx_flow_rule { - struct flow_rule *rule; - unsigned long priv[0]; +struct flow_offload { + struct flow_offload_tuple_rhash tuplehash[2]; + struct nf_conn *ct; + unsigned long flags; + u16 type; + u32 timeout; + struct callback_head callback_head; }; -struct ethtool_eee { - __u32 cmd; - __u32 supported; - __u32 advertised; - __u32 lp_advertised; - __u32 eee_active; - __u32 eee_enabled; - __u32 tx_lpi_enabled; - __u32 tx_lpi_timer; - __u32 reserved[2]; +struct flow_dissector_key_keyid { + __be32 keyid; }; -struct ethtool_link_usettings { - struct ethtool_link_settings base; - struct { - __u32 supported[4]; - __u32 advertising[4]; - __u32 lp_advertising[4]; - } link_modes; +struct flow_dissector_key_tcp { + __be16 flags; }; -struct ethtool_rx_flow_spec_input { - const struct ethtool_rx_flow_spec *fs; - u32 rss_ctx; -}; - -struct ethtool_gstrings { - __u32 cmd; - __u32 string_set; - __u32 len; - __u8 data[0]; -}; - -struct ethtool_perm_addr { - __u32 cmd; - __u32 size; - __u8 data[0]; -}; - -struct ethtool_sset_info { - __u32 cmd; - __u32 reserved; - __u64 sset_mask; - __u32 data[0]; -}; - -struct ethtool_rxfh { - __u32 cmd; - __u32 rss_context; - __u32 indir_size; - __u32 key_size; - __u8 hfunc; - __u8 input_xfrm; - __u8 rsvd8[2]; - __u32 rsvd32; - __u32 rss_config[0]; -}; - -struct ethtool_get_features_block { - __u32 available; - __u32 requested; - __u32 active; - __u32 never_changed; -}; - -struct ethtool_gfeatures { - __u32 cmd; - __u32 size; - struct ethtool_get_features_block features[0]; -}; - -struct ethtool_set_features_block { - __u32 valid; - __u32 requested; -}; - -struct ethtool_sfeatures { - __u32 cmd; - __u32 size; - struct ethtool_set_features_block features[0]; -}; - -struct ethtool_per_queue_op { - __u32 cmd; - __u32 sub_command; - __u32 queue_mask[128]; - char data[0]; -}; - -enum nft_range_ops { - NFT_RANGE_EQ = 0, - NFT_RANGE_NEQ = 1, -}; - -enum nft_range_attributes { - NFTA_RANGE_UNSPEC = 0, - NFTA_RANGE_SREG = 1, - NFTA_RANGE_OP = 2, - NFTA_RANGE_FROM_DATA = 3, - NFTA_RANGE_TO_DATA = 4, - __NFTA_RANGE_MAX = 5, -}; - -struct nft_data_desc { - enum nft_data_types type; - unsigned int size; - unsigned int len; - unsigned int flags; -}; - -struct nft_range_expr { - struct nft_data data_from; - struct nft_data data_to; - u8 sreg; - u8 len; - enum nft_range_ops op: 8; -}; - -struct icmp_filter { - __u32 data; -}; - -struct raw_sock { - struct inet_sock inet; - struct icmp_filter filter; - u32 ipmr_table; -}; - -struct raw_frag_vec { - struct msghdr *msg; +struct nf_flow_key { + struct flow_dissector_key_meta meta; + struct flow_dissector_key_control control; + struct flow_dissector_key_control enc_control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; union { - struct icmphdr icmph; - char c[1]; - } hdr; - int hlen; + struct flow_dissector_key_ipv4_addrs ipv4; + struct flow_dissector_key_ipv6_addrs ipv6; + }; + struct flow_dissector_key_keyid enc_key_id; + union { + struct flow_dissector_key_ipv4_addrs enc_ipv4; + struct flow_dissector_key_ipv6_addrs enc_ipv6; + }; + struct flow_dissector_key_tcp tcp; + struct flow_dissector_key_ports tp; +}; + +struct nf_flow_match { + struct flow_dissector dissector; + struct nf_flow_key key; + struct nf_flow_key mask; +}; + +struct nf_flow_rule { + struct nf_flow_match match; + struct flow_rule *rule; +}; + +struct flow_action_cookie { + u32 cookie_len; + u8 cookie[0]; +}; + +enum nft_counter_attributes { + NFTA_COUNTER_UNSPEC = 0, + NFTA_COUNTER_BYTES = 1, + NFTA_COUNTER_PACKETS = 2, + NFTA_COUNTER_PAD = 3, + __NFTA_COUNTER_MAX = 4, +}; + +struct nft_counter { + s64 bytes; + s64 packets; +}; + +struct nft_counter_percpu_priv { + struct nft_counter __attribute__((btf_type_tag("percpu"))) *counter; +}; + +struct icmp_err { + int errno; + unsigned int fatal: 1; +}; + +struct raw_hashinfo { + spinlock_t lock; + struct hlist_head ht[256]; +}; + +struct icmp_control { + enum skb_drop_reason (*handler)(struct sk_buff *); + short error; +}; + +enum { + ICMP_MIB_NUM = 0, + ICMP_MIB_INMSGS = 1, + ICMP_MIB_INERRORS = 2, + ICMP_MIB_INDESTUNREACHS = 3, + ICMP_MIB_INTIMEEXCDS = 4, + ICMP_MIB_INPARMPROBS = 5, + ICMP_MIB_INSRCQUENCHS = 6, + ICMP_MIB_INREDIRECTS = 7, + ICMP_MIB_INECHOS = 8, + ICMP_MIB_INECHOREPS = 9, + ICMP_MIB_INTIMESTAMPS = 10, + ICMP_MIB_INTIMESTAMPREPS = 11, + ICMP_MIB_INADDRMASKS = 12, + ICMP_MIB_INADDRMASKREPS = 13, + ICMP_MIB_OUTMSGS = 14, + ICMP_MIB_OUTERRORS = 15, + ICMP_MIB_OUTDESTUNREACHS = 16, + ICMP_MIB_OUTTIMEEXCDS = 17, + ICMP_MIB_OUTPARMPROBS = 18, + ICMP_MIB_OUTSRCQUENCHS = 19, + ICMP_MIB_OUTREDIRECTS = 20, + ICMP_MIB_OUTECHOS = 21, + ICMP_MIB_OUTECHOREPS = 22, + ICMP_MIB_OUTTIMESTAMPS = 23, + ICMP_MIB_OUTTIMESTAMPREPS = 24, + ICMP_MIB_OUTADDRMASKS = 25, + ICMP_MIB_OUTADDRMASKREPS = 26, + ICMP_MIB_CSUMERRORS = 27, + ICMP_MIB_RATELIMITGLOBAL = 28, + ICMP_MIB_RATELIMITHOST = 29, + __ICMP_MIB_MAX = 30, +}; + +enum ip_conntrack_status { + IPS_EXPECTED_BIT = 0, + IPS_EXPECTED = 1, + IPS_SEEN_REPLY_BIT = 1, + IPS_SEEN_REPLY = 2, + IPS_ASSURED_BIT = 2, + IPS_ASSURED = 4, + IPS_CONFIRMED_BIT = 3, + IPS_CONFIRMED = 8, + IPS_SRC_NAT_BIT = 4, + IPS_SRC_NAT = 16, + IPS_DST_NAT_BIT = 5, + IPS_DST_NAT = 32, + IPS_NAT_MASK = 48, + IPS_SEQ_ADJUST_BIT = 6, + IPS_SEQ_ADJUST = 64, + IPS_SRC_NAT_DONE_BIT = 7, + IPS_SRC_NAT_DONE = 128, + IPS_DST_NAT_DONE_BIT = 8, + IPS_DST_NAT_DONE = 256, + IPS_NAT_DONE_MASK = 384, + IPS_DYING_BIT = 9, + IPS_DYING = 512, + IPS_FIXED_TIMEOUT_BIT = 10, + IPS_FIXED_TIMEOUT = 1024, + IPS_TEMPLATE_BIT = 11, + IPS_TEMPLATE = 2048, + IPS_UNTRACKED_BIT = 12, + IPS_UNTRACKED = 4096, + IPS_NAT_CLASH_BIT = 12, + IPS_NAT_CLASH = 4096, + IPS_HELPER_BIT = 13, + IPS_HELPER = 8192, + IPS_OFFLOAD_BIT = 14, + IPS_OFFLOAD = 16384, + IPS_HW_OFFLOAD_BIT = 15, + IPS_HW_OFFLOAD = 32768, + IPS_UNCHANGEABLE_MASK = 56313, + __IPS_MAX_BIT = 16, +}; + +enum { + XFRM_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, +}; + +enum xfrm_replay_mode { + XFRM_REPLAY_MODE_LEGACY = 0, + XFRM_REPLAY_MODE_BMP = 1, + XFRM_REPLAY_MODE_ESN = 2, +}; + +enum { + XFRM_LOOKUP_ICMP = 1, + XFRM_LOOKUP_QUEUE = 2, + XFRM_LOOKUP_KEEP_DST_REF = 4, +}; + +struct icmphdr { + __u8 type; + __u8 code; + __sum16 checksum; + union { + struct { + __be16 id; + __be16 sequence; + } echo; + __be32 gateway; + struct { + __be16 __unused; + __be16 mtu; + } frag; + __u8 reserved[4]; + } un; +}; + +struct sockcm_cookie { + u64 transmit_time; + u32 mark; + u32 tsflags; +}; + +struct ipcm_cookie { + struct sockcm_cookie sockc; + __be32 addr; + int oif; + struct ip_options_rcu *opt; + __u8 protocol; + __u8 ttl; + __s16 tos; + char priority; + __u16 gso_size; +}; + +struct ipv4_addr_key { + __be32 addr; + int vif; +}; + +struct inetpeer_addr { + union { + struct ipv4_addr_key a4; + struct in6_addr a6; + u32 key[4]; + }; + __u16 family; +}; + +struct inet_peer { + struct rb_node rb_node; + struct inetpeer_addr daddr; + u32 metrics[17]; + u32 rate_tokens; + u32 n_redirects; + unsigned long rate_last; + union { + struct { + atomic_t rid; + }; + struct callback_head rcu; + }; + __u32 dtime; + refcount_t refcnt; +}; + +struct icmp_extobj_hdr { + __be16 length; + __u8 class_num; + __u8 class_type; +}; + +struct icmp_ext_hdr { + __u8 reserved1: 4; + __u8 version: 4; + __u8 reserved2; + __sum16 checksum; }; struct ip_options_data { @@ -85646,1341 +56355,1406 @@ struct ip_options_data { char data[40]; }; -enum ip6_defrag_users { - IP6_DEFRAG_LOCAL_DELIVER = 0, - IP6_DEFRAG_CONNTRACK_IN = 1, - __IP6_DEFRAG_CONNTRACK_IN = 65536, - IP6_DEFRAG_CONNTRACK_OUT = 65537, - __IP6_DEFRAG_CONNTRACK_OUT = 131072, - IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073, - __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608, +struct icmp_bxm { + struct sk_buff *skb; + int offset; + int data_len; + struct { + struct icmphdr icmph; + __be32 times[3]; + } data; + int head_len; + struct ip_options_data replyopts; }; -enum ocb_deferred_task_flags { - OCB_WORK_HOUSEKEEPING = 0, +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; +}; + +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; + union { + char name[16]; + __be32 ifindex; + struct { + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; +}; + +struct sock_ee_data_rfc4884 { + __u16 len; + __u8 flags; + __u8 reserved; +}; + +struct udp_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + __u16 cscov; + __u8 partial_cov; +}; + +enum ieee80211_internal_key_flags { + KEY_FLAG_UPLOADED_TO_HARDWARE = 1, + KEY_FLAG_TAINTED = 2, +}; + +enum ieee80211_sub_if_data_flags { + IEEE80211_SDATA_ALLMULTI = 1, + IEEE80211_SDATA_DONT_BRIDGE_PACKETS = 8, + IEEE80211_SDATA_DISCONNECT_RESUME = 16, + IEEE80211_SDATA_IN_DRIVER = 32, + IEEE80211_SDATA_DISCONNECT_HW_RESTART = 64, +}; + +enum ieee80211_key_len { + WLAN_KEY_LEN_WEP40 = 5, + WLAN_KEY_LEN_WEP104 = 13, + WLAN_KEY_LEN_CCMP = 16, + WLAN_KEY_LEN_CCMP_256 = 32, + WLAN_KEY_LEN_TKIP = 32, + WLAN_KEY_LEN_AES_CMAC = 16, + WLAN_KEY_LEN_SMS4 = 32, + WLAN_KEY_LEN_GCMP = 16, + WLAN_KEY_LEN_GCMP_256 = 32, + WLAN_KEY_LEN_BIP_CMAC_256 = 32, + WLAN_KEY_LEN_BIP_GMAC_128 = 16, + WLAN_KEY_LEN_BIP_GMAC_256 = 32, +}; + +enum ieee80211_agg_stop_reason { + AGG_STOP_DECLINED = 0, + AGG_STOP_LOCAL_REQUEST = 1, + AGG_STOP_PEER_REQUEST = 2, + AGG_STOP_DESTROY_STA = 3, +}; + +enum nl80211_ext_feature_index { + NL80211_EXT_FEATURE_VHT_IBSS = 0, + NL80211_EXT_FEATURE_RRM = 1, + NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 2, + NL80211_EXT_FEATURE_SCAN_START_TIME = 3, + NL80211_EXT_FEATURE_BSS_PARENT_TSF = 4, + NL80211_EXT_FEATURE_SET_SCAN_DWELL = 5, + NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 6, + NL80211_EXT_FEATURE_BEACON_RATE_HT = 7, + NL80211_EXT_FEATURE_BEACON_RATE_VHT = 8, + NL80211_EXT_FEATURE_FILS_STA = 9, + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 10, + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 11, + NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 12, + NL80211_EXT_FEATURE_CQM_RSSI_LIST = 13, + NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 14, + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 15, + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 16, + NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 17, + NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 18, + NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 19, + NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20, + NL80211_EXT_FEATURE_MFP_OPTIONAL = 21, + NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 22, + NL80211_EXT_FEATURE_LOW_POWER_SCAN = 23, + NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 24, + NL80211_EXT_FEATURE_DFS_OFFLOAD = 25, + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 26, + NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 27, + NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 27, + NL80211_EXT_FEATURE_TXQS = 28, + NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 29, + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 30, + NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 31, + NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 32, + NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 33, + NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 34, + NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35, + NL80211_EXT_FEATURE_EXT_KEY_ID = 36, + NL80211_EXT_FEATURE_STA_TX_PWR = 37, + NL80211_EXT_FEATURE_SAE_OFFLOAD = 38, + NL80211_EXT_FEATURE_VLAN_OFFLOAD = 39, + NL80211_EXT_FEATURE_AQL = 40, + NL80211_EXT_FEATURE_BEACON_PROTECTION = 41, + NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 42, + NL80211_EXT_FEATURE_PROTECTED_TWT = 43, + NL80211_EXT_FEATURE_DEL_IBSS_STA = 44, + NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 45, + NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 46, + NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 47, + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 48, + NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 49, + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 50, + NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51, + NL80211_EXT_FEATURE_FILS_DISCOVERY = 52, + NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53, + NL80211_EXT_FEATURE_BEACON_RATE_HE = 54, + NL80211_EXT_FEATURE_SECURE_LTF = 55, + NL80211_EXT_FEATURE_SECURE_RTT = 56, + NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57, + NL80211_EXT_FEATURE_BSS_COLOR = 58, + NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 59, + NL80211_EXT_FEATURE_RADAR_BACKGROUND = 60, + NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 61, + NL80211_EXT_FEATURE_PUNCT = 62, + NL80211_EXT_FEATURE_SECURE_NAN = 63, + NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 64, + NL80211_EXT_FEATURE_OWE_OFFLOAD = 65, + NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 66, + NL80211_EXT_FEATURE_DFS_CONCURRENT = 67, + NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 68, + NUM_NL80211_EXT_FEATURES = 69, + MAX_NL80211_EXT_FEATURES = 68, }; enum { - PERF_BR_SPEC_NA = 0, - PERF_BR_SPEC_WRONG_PATH = 1, - PERF_BR_NON_SPEC_CORRECT_PATH = 2, - PERF_BR_SPEC_CORRECT_PATH = 3, - PERF_BR_SPEC_MAX = 4, + HW_BREAKPOINT_EMPTY = 0, + HW_BREAKPOINT_R = 1, + HW_BREAKPOINT_W = 2, + HW_BREAKPOINT_RW = 3, + HW_BREAKPOINT_X = 4, + HW_BREAKPOINT_INVALID = 7, }; -enum perf_branch_sample_type_shift { - PERF_SAMPLE_BRANCH_USER_SHIFT = 0, - PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1, - PERF_SAMPLE_BRANCH_HV_SHIFT = 2, - PERF_SAMPLE_BRANCH_ANY_SHIFT = 3, - PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4, - PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5, - PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6, - PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7, - PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8, - PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9, - PERF_SAMPLE_BRANCH_COND_SHIFT = 10, - PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11, - PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12, - PERF_SAMPLE_BRANCH_CALL_SHIFT = 13, - PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, - PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, - PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, - PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, - PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18, - PERF_SAMPLE_BRANCH_COUNTERS_SHIFT = 19, - PERF_SAMPLE_BRANCH_MAX_SHIFT = 20, +enum die_val { + DIE_OOPS = 1, + DIE_INT3 = 2, + DIE_DEBUG = 3, + DIE_PANIC = 4, + DIE_NMI = 5, + DIE_DIE = 6, + DIE_KERNELDEBUG = 7, + DIE_TRAP = 8, + DIE_GPF = 9, + DIE_CALL = 10, + DIE_PAGE_FAULT = 11, + DIE_NMIUNKNOWN = 12, }; -struct branch_entry { +enum { + HW_BREAKPOINT_LEN_1 = 1, + HW_BREAKPOINT_LEN_2 = 2, + HW_BREAKPOINT_LEN_3 = 3, + HW_BREAKPOINT_LEN_4 = 4, + HW_BREAKPOINT_LEN_5 = 5, + HW_BREAKPOINT_LEN_6 = 6, + HW_BREAKPOINT_LEN_7 = 7, + HW_BREAKPOINT_LEN_8 = 8, +}; + +struct x86_hw_tss { + u32 reserved1; + u64 sp0; + u64 sp1; + u64 sp2; + u64 reserved2; + u64 ist[7]; + u32 reserved3; + u32 reserved4; + u16 reserved5; + u16 io_bitmap_base; +} __attribute__((packed)); + +struct x86_io_bitmap { + u64 prev_sequence; + unsigned int prev_max; + unsigned long bitmap[1025]; + unsigned long mapall[1025]; +}; + +struct tss_struct { + struct x86_hw_tss x86_tss; + struct x86_io_bitmap io_bitmap; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tlb_context { + u64 ctx_id; + u64 tlb_gen; +}; + +struct tlb_state { + struct mm_struct *loaded_mm; union { - struct { - u64 ip: 58; - u64 ip_sign_ext: 5; - u64 mispredict: 1; - } split; - u64 full; - } from; - union { - struct { - u64 ip: 58; - u64 ip_sign_ext: 3; - u64 reserved: 1; - u64 spec: 1; - u64 valid: 1; - } split; - u64 full; - } to; -}; - -union cpuid_0x80000022_ebx { - struct { - unsigned int num_core_pmc: 4; - unsigned int lbr_v2_stack_sz: 6; - unsigned int num_df_pmc: 6; - unsigned int num_umc_pmc: 6; - } split; - unsigned int full; -}; - -struct _cache_table { - unsigned char descriptor; - char cache_type; - short size; -}; - -enum cache_type { - CACHE_TYPE_NOCACHE = 0, - CACHE_TYPE_INST = 1, - CACHE_TYPE_DATA = 2, - CACHE_TYPE_SEPARATE = 3, - CACHE_TYPE_UNIFIED = 4, -}; - -enum _cache_type { - CTYPE_NULL = 0, - CTYPE_DATA = 1, - CTYPE_INST = 2, - CTYPE_UNIFIED = 3, -}; - -union _cpuid4_leaf_eax { - struct { - enum _cache_type type: 5; - unsigned int level: 3; - unsigned int is_self_initializing: 1; - unsigned int is_fully_associative: 1; - unsigned int reserved: 4; - unsigned int num_threads_sharing: 12; - unsigned int num_cores_on_die: 6; - } split; - u32 full; -}; - -union _cpuid4_leaf_ebx { - struct { - unsigned int coherency_line_size: 12; - unsigned int physical_line_partition: 10; - unsigned int ways_of_associativity: 10; - } split; - u32 full; -}; - -union _cpuid4_leaf_ecx { - struct { - unsigned int number_of_sets: 32; - } split; - u32 full; -}; - -union l1_cache { - struct { - unsigned int line_size: 8; - unsigned int lines_per_tag: 8; - unsigned int assoc: 8; - unsigned int size_in_kb: 8; + struct mm_struct *last_user_mm; + unsigned long last_user_mm_spec; }; - unsigned int val; + u16 loaded_mm_asid; + u16 next_asid; + bool invalidate_other; + unsigned short user_pcid_flush_mask; + unsigned long cr4; + struct tlb_context ctxs[6]; }; -union l2_cache { - struct { - unsigned int line_size: 8; - unsigned int lines_per_tag: 4; - unsigned int assoc: 4; - unsigned int size_in_kb: 16; - }; - unsigned int val; +struct gdt_page { + struct desc_struct gdt[16]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -union l3_cache { - struct { - unsigned int line_size: 8; - unsigned int lines_per_tag: 4; - unsigned int assoc: 4; - unsigned int res: 2; - unsigned int size_encoded: 14; - }; - unsigned int val; +struct die_args { + struct pt_regs *regs; + const char *str; + long err; + int trapnr; + int signr; }; -struct cacheinfo; - -struct cpu_cacheinfo { - struct cacheinfo *info_list; - unsigned int per_cpu_data_slice_size; - unsigned int num_levels; - unsigned int num_leaves; - bool cpu_map_populated; - bool early_ci_levels; +enum xfeature { + XFEATURE_FP = 0, + XFEATURE_SSE = 1, + XFEATURE_YMM = 2, + XFEATURE_BNDREGS = 3, + XFEATURE_BNDCSR = 4, + XFEATURE_OPMASK = 5, + XFEATURE_ZMM_Hi256 = 6, + XFEATURE_Hi16_ZMM = 7, + XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8, + XFEATURE_PKRU = 9, + XFEATURE_PASID = 10, + XFEATURE_CET_USER = 11, + XFEATURE_CET_KERNEL_UNUSED = 12, + XFEATURE_RSRVD_COMP_13 = 13, + XFEATURE_RSRVD_COMP_14 = 14, + XFEATURE_LBR = 15, + XFEATURE_RSRVD_COMP_16 = 16, + XFEATURE_XTILE_CFG = 17, + XFEATURE_XTILE_DATA = 18, + XFEATURE_MAX = 19, }; -struct cacheinfo { - unsigned int id; - enum cache_type type; - unsigned int level; - unsigned int coherency_line_size; - unsigned int number_of_sets; - unsigned int ways_of_associativity; - unsigned int physical_line_partition; +enum xstate_copy_mode { + XSTATE_COPY_FP = 0, + XSTATE_COPY_FX = 1, + XSTATE_COPY_XSAVE = 2, +}; + +struct membuf { + void *p; + size_t left; +}; + +struct user_regset; + +typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); + +typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void __attribute__((btf_type_tag("user"))) *); + +typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *); + +typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int); + +struct user_regset { + user_regset_get2_fn *regset_get; + user_regset_set_fn *set; + user_regset_active_fn *active; + user_regset_writeback_fn *writeback; + unsigned int n; unsigned int size; - cpumask_t shared_cpu_map; - unsigned int attributes; - void *fw_token; - bool disable_sysfs; - void *priv; + unsigned int align; + unsigned int bias; + unsigned int core_note_type; }; -struct _cpuid4_info_regs { - union _cpuid4_leaf_eax eax; - union _cpuid4_leaf_ebx ebx; - union _cpuid4_leaf_ecx ecx; - unsigned int id; +enum { + SAMPLES = 8, + MIN_CHANGE = 5, +}; + +struct x86_cpu_desc { + u8 x86_family; + u8 x86_vendor; + u8 x86_model; + u8 x86_stepping; + u32 x86_microcode_rev; +}; + +struct x86_cpu_id { + __u16 vendor; + __u16 family; + __u16 model; + __u16 steppings; + __u16 feature; + kernel_ulong_t driver_data; +}; + +struct efi_memory_map_data { + phys_addr_t phys_map; unsigned long size; - struct amd_northbridge *nb; + unsigned long desc_version; + unsigned long desc_size; + unsigned long flags; }; -struct numa_memblk { - u64 start; - u64 end; - int nid; +struct efi_memory_map { + phys_addr_t phys_map; + void *map; + void *map_end; + int nr_map; + unsigned long desc_version; + unsigned long desc_size; + unsigned long flags; }; -struct numa_meminfo { - int nr_blks; - struct numa_memblk blk[2048]; +struct efi_mem_range { + struct range range; + u64 attribute; }; -struct irq_matrix; - -typedef void (*btf_trace_irq_matrix_online)(void *, struct irq_matrix *); - -struct cpumap; - -struct irq_matrix { - unsigned int matrix_bits; - unsigned int alloc_start; - unsigned int alloc_end; - unsigned int alloc_size; - unsigned int global_available; - unsigned int global_reserved; - unsigned int systembits_inalloc; - unsigned int total_allocated; - unsigned int online_maps; - struct cpumap __attribute__((btf_type_tag("percpu"))) *maps; - unsigned long *system_map; - unsigned long scratch_map[0]; +struct timezone { + int tz_minuteswest; + int tz_dsttime; }; -struct cpumap { - unsigned int available; - unsigned int allocated; - unsigned int managed; - unsigned int managed_allocated; - bool initialized; - bool online; - unsigned long *managed_map; - unsigned long alloc_map[0]; +typedef __kernel_long_t __kernel_suseconds_t; + +typedef __kernel_suseconds_t suseconds_t; + +typedef __kernel_long_t __kernel_old_time_t; + +struct __kernel_timex_timeval { + __kernel_time64_t tv_sec; + long long tv_usec; }; -typedef void (*btf_trace_irq_matrix_offline)(void *, struct irq_matrix *); - -typedef void (*btf_trace_irq_matrix_reserve)(void *, struct irq_matrix *); - -typedef void (*btf_trace_irq_matrix_remove_reserved)(void *, struct irq_matrix *); - -typedef void (*btf_trace_irq_matrix_assign_system)(void *, int, struct irq_matrix *); - -typedef void (*btf_trace_irq_matrix_alloc_reserved)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); - -typedef void (*btf_trace_irq_matrix_reserve_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); - -typedef void (*btf_trace_irq_matrix_remove_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); - -typedef void (*btf_trace_irq_matrix_alloc_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); - -typedef void (*btf_trace_irq_matrix_assign)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); - -typedef void (*btf_trace_irq_matrix_alloc)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); - -typedef void (*btf_trace_irq_matrix_free)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); - -struct trace_event_raw_irq_matrix_global { - struct trace_entry ent; - unsigned int online_maps; - unsigned int global_available; - unsigned int global_reserved; - unsigned int total_allocated; - char __data[0]; -}; - -struct trace_event_raw_irq_matrix_global_update { - struct trace_entry ent; - int bit; - unsigned int online_maps; - unsigned int global_available; - unsigned int global_reserved; - unsigned int total_allocated; - char __data[0]; -}; - -struct trace_event_raw_irq_matrix_cpu { - struct trace_entry ent; - int bit; - unsigned int cpu; - bool online; - unsigned int available; - unsigned int allocated; - unsigned int managed; - unsigned int online_maps; - unsigned int global_available; - unsigned int global_reserved; - unsigned int total_allocated; - char __data[0]; -}; - -struct trace_event_data_offsets_irq_matrix_global {}; - -struct trace_event_data_offsets_irq_matrix_global_update {}; - -struct trace_event_data_offsets_irq_matrix_cpu {}; - -struct bpf_dispatcher_prog { - struct bpf_prog *prog; - refcount_t users; -}; - -struct bpf_dispatcher { - struct mutex mutex; - void *func; - struct bpf_dispatcher_prog progs[48]; - int num_progs; - void *image; - void *rw_image; - u32 image_off; - struct bpf_ksym ksym; - struct static_call_key *sc_key; - void *sc_tramp; -}; - -struct swap_iocb { - struct kiocb iocb; - struct bio_vec bvec[32]; - int pages; - int len; -}; - -struct eventfd_ctx { - struct kref kref; - wait_queue_head_t wqh; - __u64 count; - unsigned int flags; - int id; -}; - -struct kernfs_super_info { - struct super_block *sb; - struct kernfs_root *root; - const void *ns; - struct list_head node; -}; - -struct iomap_dio_ops { - int (*end_io)(struct kiocb *, ssize_t, int, unsigned int); - void (*submit_io)(const struct iomap_iter *, struct bio *, loff_t); - struct bio_set *bio_set; -}; - -enum { - BTRFS_ORDERED_REGULAR = 0, - BTRFS_ORDERED_NOCOW = 1, - BTRFS_ORDERED_PREALLOC = 2, - BTRFS_ORDERED_COMPRESSED = 3, - BTRFS_ORDERED_DIRECT = 4, - BTRFS_ORDERED_IO_DONE = 5, - BTRFS_ORDERED_COMPLETE = 6, - BTRFS_ORDERED_IOERR = 7, - BTRFS_ORDERED_TRUNCATED = 8, - BTRFS_ORDERED_LOGGED = 9, - BTRFS_ORDERED_LOGGED_CSUM = 10, - BTRFS_ORDERED_PENDING = 11, - BTRFS_ORDERED_ENCODED = 12, -}; - -enum { - IO_TREE_FS_PINNED_EXTENTS = 0, - IO_TREE_FS_EXCLUDED_EXTENTS = 1, - IO_TREE_BTREE_INODE_IO = 2, - IO_TREE_INODE_IO = 3, - IO_TREE_RELOC_BLOCKS = 4, - IO_TREE_TRANS_DIRTY_PAGES = 5, - IO_TREE_ROOT_DIRTY_LOG_PAGES = 6, - IO_TREE_INODE_FILE_EXTENT = 7, - IO_TREE_LOG_CSUM_RANGE = 8, - IO_TREE_SELFTEST = 9, - IO_TREE_DEVICE_ALLOC_STATE = 10, -}; - -enum { - __PAGE_UNLOCK_BIT = 0, - PAGE_UNLOCK = 1, - __PAGE_UNLOCK_SEQ = 0, - __PAGE_START_WRITEBACK_BIT = 1, - PAGE_START_WRITEBACK = 2, - __PAGE_START_WRITEBACK_SEQ = 1, - __PAGE_END_WRITEBACK_BIT = 2, - PAGE_END_WRITEBACK = 4, - __PAGE_END_WRITEBACK_SEQ = 2, - __PAGE_SET_ORDERED_BIT = 3, - PAGE_SET_ORDERED = 8, - __PAGE_SET_ORDERED_SEQ = 3, -}; - -struct async_cow; - -struct async_chunk { - struct btrfs_inode *inode; - struct page *locked_page; - u64 start; - u64 end; - blk_opf_t write_flags; - struct list_head extents; - struct cgroup_subsys_state *blkcg_css; - struct btrfs_work work; - struct async_cow *async_cow; -}; - -struct async_cow { - atomic_t num_chunks; - struct async_chunk chunks[0]; -}; - -struct async_extent { - u64 start; - u64 ram_size; - u64 compressed_size; - struct page **pages; - unsigned long nr_pages; - int compress_type; - struct list_head list; -}; - -struct btrfs_writepage_fixup { - struct page *page; - struct btrfs_inode *inode; - struct btrfs_work work; -}; - -struct btrfs_swapfile_pin { - struct rb_node node; - void *ptr; - struct inode *inode; - bool is_block_group; - int bg_extent_count; -}; - -struct btrfs_dio_private { - u64 file_offset; - u32 bytes; - struct btrfs_bio bbio; -}; - -struct btrfs_delalloc_work { - struct inode *inode; - struct completion completion; - struct list_head list; - struct btrfs_work work; -}; - -struct data_reloc_warn { - struct btrfs_path path; - struct btrfs_fs_info *fs_info; - u64 extent_item_size; - u64 logical; - int mirror_num; -}; - -struct fscrypt_name { - const struct qstr *usr_fname; - struct fscrypt_str disk_name; - u32 hash; - u32 minor_hash; - struct fscrypt_str crypto_buf; - bool is_nokey_name; -}; - -struct btrfs_iget_args { - u64 ino; - struct btrfs_root *root; -}; - -struct btrfs_new_inode_args { - struct inode *dir; - struct dentry *dentry; - struct inode *inode; - bool orphan; - bool subvol; - struct posix_acl *default_acl; - struct posix_acl *acl; - struct fscrypt_name fname; -}; - -struct btrfs_map_token { - struct extent_buffer *eb; - char *kaddr; - unsigned long offset; -}; - -struct btrfs_swap_info { - u64 start; - u64 block_start; - u64 block_len; - u64 lowest_ppage; - u64 highest_ppage; - unsigned long nr_pages; - int nr_extents; -}; - -struct btrfs_dio_data { - ssize_t submitted; - struct extent_changeset *data_reserved; - struct btrfs_ordered_extent *ordered; - bool data_space_reserved; - bool nocow_done; -}; - -struct btrfs_rename_ctx { - u64 index; -}; - -struct dir_entry { - u64 ino; - u64 offset; - unsigned int type; - int name_len; -}; - -struct can_nocow_file_extent_args { - u64 start; - u64 end; - bool writeback_path; - bool strict; - bool free_path; - u64 disk_bytenr; - u64 disk_num_bytes; - u64 extent_offset; - u64 num_bytes; -}; - -struct btrfs_encoded_read_private { - wait_queue_head_t wait; - atomic_t pending; - blk_status_t status; -}; - -struct btrfs_subpage { - spinlock_t lock; - atomic_t readers; - union { - atomic_t eb_refs; - atomic_t writers; - }; - unsigned long bitmaps[0]; -}; - -enum dd_prio { - DD_RT_PRIO = 0, - DD_BE_PRIO = 1, - DD_IDLE_PRIO = 2, - DD_PRIO_MAX = 2, -}; - -enum dd_data_dir { - DD_READ = 0, - DD_WRITE = 1, -}; - -struct io_stats_per_prio { - uint32_t inserted; - uint32_t merged; - uint32_t dispatched; - atomic_t completed; -}; - -struct dd_per_prio { - struct list_head dispatch; - struct rb_root sort_list[2]; - struct list_head fifo_list[2]; - sector_t latest_pos[2]; - struct io_stats_per_prio stats; -}; - -struct deadline_data { - struct dd_per_prio per_prio[3]; - enum dd_data_dir last_dir; - unsigned int batching; - unsigned int starved; - int fifo_expire[2]; - int fifo_batch; - int writes_starved; - int front_merges; - u32 async_depth; - int prio_aging_expire; - spinlock_t lock; - spinlock_t zone_lock; -}; - -typedef unsigned short ush; - -struct ct_data_s { - union { - ush freq; - ush code; - } fc; - union { - ush dad; - ush len; - } dl; -}; - -typedef struct ct_data_s ct_data; - -typedef unsigned char uch; - -struct static_tree_desc_s { - const ct_data *static_tree; - const int *extra_bits; - int extra_base; - int elems; - int max_length; -}; - -typedef struct static_tree_desc_s static_tree_desc; - -typedef unsigned long ulg; - -struct tree_desc_s { - ct_data *dyn_tree; - int max_code; - static_tree_desc *stat_desc; -}; - -typedef struct tree_desc_s tree_desc; - -typedef unsigned int uInt; - -typedef ush Pos; - -typedef unsigned int IPos; - -struct deflate_state { - z_streamp strm; +struct __kernel_timex { + unsigned int modes; + long long offset; + long long freq; + long long maxerror; + long long esterror; int status; - Byte *pending_buf; - ulg pending_buf_size; - Byte *pending_out; - int pending; - int noheader; - Byte data_type; - Byte method; - int last_flush; - uInt w_size; - uInt w_bits; - uInt w_mask; - Byte *window; - ulg window_size; - Pos *prev; - Pos *head; - uInt ins_h; - uInt hash_size; - uInt hash_bits; - uInt hash_mask; - uInt hash_shift; - long block_start; - uInt match_length; - IPos prev_match; - int match_available; - uInt strstart; - uInt match_start; - uInt lookahead; - uInt prev_length; - uInt max_chain_length; - uInt max_lazy_match; - int level; - int strategy; - uInt good_match; - int nice_match; - struct ct_data_s dyn_ltree[573]; - struct ct_data_s dyn_dtree[61]; - struct ct_data_s bl_tree[39]; - struct tree_desc_s l_desc; - struct tree_desc_s d_desc; - struct tree_desc_s bl_desc; - ush bl_count[16]; - int heap[573]; - int heap_len; - int heap_max; - uch depth[573]; - uch *l_buf; - uInt lit_bufsize; - uInt last_lit; - ush *d_buf; - ulg opt_len; - ulg static_len; - ulg compressed_len; - uInt matches; - int last_eob_len; - ush bi_buf; - int bi_valid; + long long constant; + long long precision; + long long tolerance; + struct __kernel_timex_timeval time; + long long tick; + long long ppsfreq; + long long jitter; + int shift; + long long stabil; + long long jitcnt; + long long calcnt; + long long errcnt; + long long stbcnt; + int tai; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -typedef struct deflate_state deflate_state; +typedef __kernel_clock_t clock_t; -struct ZSTD_DDict_s { - void *dictBuffer; - const void *dictContent; - size_t dictSize; - ZSTD_entropyDTables_t entropy; - U32 dictID; - U32 entropyPresent; - ZSTD_customMem cMem; +struct itimerspec64 { + struct timespec64 it_interval; + struct timespec64 it_value; }; -typedef struct { - U32 f1c; - U32 f1d; - U32 f7b; - U32 f7c; -} ZSTD_cpuid_t; - -typedef struct { - size_t compressedSize; - unsigned long long decompressedBound; -} ZSTD_frameSizeInfo; - -typedef struct { - blockType_e blockType; - U32 lastBlock; - U32 origSize; -} blockProperties_t; - -typedef enum { - not_streaming = 0, - is_streaming = 1, -} streaming_operation; - -typedef enum { - ZSTD_dlm_byCopy = 0, - ZSTD_dlm_byRef = 1, -} ZSTD_dictLoadMethod_e; - -typedef enum { - ZSTD_dct_auto = 0, - ZSTD_dct_rawContent = 1, - ZSTD_dct_fullDict = 2, -} ZSTD_dictContentType_e; - -typedef enum { - ZSTD_reset_session_only = 1, - ZSTD_reset_parameters = 2, - ZSTD_reset_session_and_parameters = 3, -} ZSTD_ResetDirective; - -typedef enum { - ZSTD_d_windowLogMax = 100, - ZSTD_d_experimentalParam1 = 1000, - ZSTD_d_experimentalParam2 = 1001, - ZSTD_d_experimentalParam3 = 1002, - ZSTD_d_experimentalParam4 = 1003, -} ZSTD_dParameter; - -typedef struct { - size_t error; - int lowerBound; - int upperBound; -} ZSTD_bounds; - -typedef enum { - ZSTDnit_frameHeader = 0, - ZSTDnit_blockHeader = 1, - ZSTDnit_block = 2, - ZSTDnit_lastBlock = 3, - ZSTDnit_checksum = 4, - ZSTDnit_skippableFrame = 5, -} ZSTD_nextInputType_e; - -struct vga_device { - struct list_head list; - struct pci_dev *pdev; - unsigned int decodes; - unsigned int owns; - unsigned int locks; - unsigned int io_lock_cnt; - unsigned int mem_lock_cnt; - unsigned int io_norm_cnt; - unsigned int mem_norm_cnt; - bool bridge_has_one_vga; - bool is_firmware_default; - unsigned int (*set_decode)(struct pci_dev *, bool); +struct __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; }; -struct vga_arb_user_card { - struct pci_dev *pdev; - unsigned int mem_cnt; - unsigned int io_cnt; -}; - -struct vga_arb_private { - struct list_head list; - struct pci_dev *target; - struct vga_arb_user_card cards[16]; - spinlock_t lock; -}; - -struct acpi_vendor_uuid { - u8 subtype; - u8 data[16]; -}; - -struct resource_win { - struct resource res; - resource_size_t offset; -}; - -struct acpipnp_parse_option_s { - struct pnp_dev *dev; - unsigned int option_flags; -}; - -enum scsi_device_event { - SDEV_EVT_MEDIA_CHANGE = 1, - SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, - SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, - SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, - SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, - SDEV_EVT_LUN_CHANGE_REPORTED = 6, - SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, - SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, - SDEV_EVT_FIRST = 1, - SDEV_EVT_LAST = 8, - SDEV_EVT_MAXBITS = 9, -}; - -struct scsi_event { - enum scsi_device_event evt_type; - struct list_head node; -}; - -typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); - -struct e1000_reg_info { - u32 ofs; - char *name; -}; - -enum e1000_state_t { - __E1000_TESTING = 0, - __E1000_RESETTING = 1, - __E1000_ACCESS_SHARED_RESOURCE = 2, - __E1000_DOWN = 3, -}; - -enum gro_result { - GRO_MERGED = 0, - GRO_MERGED_FREE = 1, - GRO_HELD = 2, - GRO_NORMAL = 3, - GRO_CONSUMED = 4, -}; - -enum hwtstamp_tx_types { - HWTSTAMP_TX_OFF = 0, - HWTSTAMP_TX_ON = 1, - HWTSTAMP_TX_ONESTEP_SYNC = 2, - HWTSTAMP_TX_ONESTEP_P2P = 3, - __HWTSTAMP_TX_CNT = 4, -}; - -enum hwtstamp_rx_filters { - HWTSTAMP_FILTER_NONE = 0, - HWTSTAMP_FILTER_ALL = 1, - HWTSTAMP_FILTER_SOME = 2, - HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3, - HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4, - HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5, - HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6, - HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7, - HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8, - HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9, - HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10, - HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11, - HWTSTAMP_FILTER_PTP_V2_EVENT = 12, - HWTSTAMP_FILTER_PTP_V2_SYNC = 13, - HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14, - HWTSTAMP_FILTER_NTP_ALL = 15, - __HWTSTAMP_FILTER_CNT = 16, -}; - -enum latency_range { - lowest_latency = 0, - low_latency = 1, - bulk_latency = 2, - latency_invalid = 255, -}; - -struct trace_event_raw_e1000e_trace_mac_register { - struct trace_entry ent; - uint32_t reg; - char __data[0]; -}; - -union e1000_rx_desc_extended { - struct { - __le64 buffer_addr; - __le64 reserved; - } read; - struct { - struct { - __le32 mrq; - union { - __le32 rss; - struct { - __le16 ip_id; - __le16 csum; - } csum_ip; - } hi_dword; - } lower; - struct { - __le32 status_error; - __le16 length; - __le16 vlan; - } upper; - } wb; -}; - -union e1000_rx_desc_packet_split { - struct { - __le64 buffer_addr[4]; - } read; - struct { - struct { - __le32 mrq; - union { - __le32 rss; - struct { - __le16 ip_id; - __le16 csum; - } csum_ip; - } hi_dword; - } lower; - struct { - __le32 status_error; - __le16 length0; - __le16 vlan; - } middle; - struct { - __le16 header_status; - __le16 length[3]; - } upper; - __le64 reserved; - } wb; -}; - -struct e1000_tx_desc { - __le64 buffer_addr; - union { - __le32 data; - struct { - __le16 length; - u8 cso; - u8 cmd; - } flags; - } lower; - union { - __le32 data; - struct { - u8 status; - u8 css; - __le16 special; - } fields; - } upper; -}; - -struct e1000_context_desc { - union { - __le32 ip_config; - struct { - u8 ipcss; - u8 ipcso; - __le16 ipcse; - } ip_fields; - } lower_setup; - union { - __le32 tcp_config; - struct { - u8 tucss; - u8 tucso; - __le16 tucse; - } tcp_fields; - } upper_setup; - __le32 cmd_and_length; - union { - __le32 data; - struct { - u8 status; - u8 hdr_len; - __le16 mss; - } fields; - } tcp_seg_setup; -}; - -struct my_u0 { - __le64 a; - __le64 b; -}; - -struct my_u1 { - __le64 a; - __le64 b; - __le64 c; - __le64 d; -}; - -typedef enum gro_result gro_result_t; - -struct trace_event_data_offsets_e1000e_trace_mac_register {}; - -enum rtw_regulatory_domains { - RTW_REGD_FCC = 0, - RTW_REGD_MKK = 1, - RTW_REGD_ETSI = 2, - RTW_REGD_IC = 3, - RTW_REGD_KCC = 4, - RTW_REGD_ACMA = 5, - RTW_REGD_CHILE = 6, - RTW_REGD_UKRAINE = 7, - RTW_REGD_MEXICO = 8, - RTW_REGD_CN = 9, - RTW_REGD_QATAR = 10, - RTW_REGD_UK = 11, - RTW_REGD_WW = 12, - RTW_REGD_MAX = 13, -}; - -enum rtw_phy_band_type { - PHY_BAND_2G = 0, - PHY_BAND_5G = 1, -}; - -enum rtw_phy_cck_pd_lv { - CCK_PD_LV0 = 0, - CCK_PD_LV1 = 1, - CCK_PD_LV2 = 2, - CCK_PD_LV3 = 3, - CCK_PD_LV4 = 4, - CCK_PD_LV_MAX = 5, -}; - -struct rtw_phy_stat_iter_data { - struct rtw_dev *rtwdev; - u8 min_rssi; -}; - -struct rtw_sar_arg { - u8 sar_band; - u8 path; - u8 rs; -}; - -struct phy_cfg_pair { - u32 addr; - u32 data; -}; - -union phy_table_tile { - struct rtw_phy_cond cond; - struct phy_cfg_pair cfg; -}; - -struct rtw_phy_pg_cfg_pair { - u32 band; - u32 rf_path; - u32 tx_num; - u32 addr; - u32 bitmask; - u32 data; -}; - -struct rtw_txpwr_lmt_cfg_pair { - u8 regd; - u8 band; - u8 bw; - u8 rs; - u8 ch; - s8 txpwr_lmt; -}; - -struct rtw_power_params { - u8 pwr_base; - s8 pwr_offset; - s8 pwr_limit; - s8 pwr_remnant; - s8 pwr_sar; -}; - -struct i2c_algo_bit_data { - void *data; - void (*setsda)(void *, int); - void (*setscl)(void *, int); - int (*getsda)(void *); - int (*getscl)(void *); - int (*pre_xfer)(struct i2c_adapter *); - void (*post_xfer)(struct i2c_adapter *); - int udelay; - int timeout; - bool can_do_atomic; -}; - -struct thermal_hwmon_device { - char type[20]; - struct device *device; - int count; - struct list_head tz_list; - struct list_head node; -}; - -struct thermal_hwmon_attr { - struct device_attribute attr; - char name[16]; -}; - -struct thermal_hwmon_temp { - struct list_head hwmon_node; - struct thermal_zone_device *tz; - struct thermal_hwmon_attr temp_input; - struct thermal_hwmon_attr temp_crit; -}; - -struct arppayload { - unsigned char mac_src[6]; - unsigned char ip_src[4]; - unsigned char mac_dst[6]; - unsigned char ip_dst[4]; -}; - -struct nf_nat_ipv4_range { - unsigned int flags; - __be32 min_ip; - __be32 max_ip; - union nf_conntrack_man_proto min; - union nf_conntrack_man_proto max; -}; - -struct nf_nat_ipv4_multi_range_compat { - unsigned int rangesize; - struct nf_nat_ipv4_range range[1]; -}; - -struct uevent_sock { - struct list_head list; - struct sock *sk; -}; - -struct cpu_perf_ibs; - -struct perf_ibs { - struct pmu pmu; - unsigned int msr; - u64 config_mask; - u64 cnt_mask; - u64 enable_mask; - u64 valid_mask; - u64 max_period; - unsigned long offset_mask[1]; - int offset_max; - unsigned int fetch_count_reset_broken: 1; - unsigned int fetch_ignore_if_zero_rip: 1; - struct cpu_perf_ibs __attribute__((btf_type_tag("percpu"))) *pcpu; - u64 (*get_count)(u64); -}; - -struct cpu_perf_ibs { - struct perf_event *event; - unsigned long state[1]; -}; - -enum perf_hw_id { - PERF_COUNT_HW_CPU_CYCLES = 0, - PERF_COUNT_HW_INSTRUCTIONS = 1, - PERF_COUNT_HW_CACHE_REFERENCES = 2, - PERF_COUNT_HW_CACHE_MISSES = 3, - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4, - PERF_COUNT_HW_BRANCH_MISSES = 5, - PERF_COUNT_HW_BUS_CYCLES = 6, - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7, - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8, - PERF_COUNT_HW_REF_CPU_CYCLES = 9, - PERF_COUNT_HW_MAX = 10, -}; - -enum ibs_states { - IBS_ENABLED = 0, - IBS_STARTED = 1, - IBS_STOPPING = 2, - IBS_STOPPED = 3, - IBS_MAX_STATES = 4, -}; - -union ibs_fetch_ctl { - __u64 val; - struct { - __u64 fetch_maxcnt: 16; - __u64 fetch_cnt: 16; - __u64 fetch_lat: 16; - __u64 fetch_en: 1; - __u64 fetch_val: 1; - __u64 fetch_comp: 1; - __u64 ic_miss: 1; - __u64 phy_addr_valid: 1; - __u64 l1tlb_pgsz: 2; - __u64 l1tlb_miss: 1; - __u64 l2tlb_miss: 1; - __u64 rand_en: 1; - __u64 fetch_l2_miss: 1; - __u64 l3_miss_only: 1; - __u64 fetch_oc_miss: 1; - __u64 fetch_l3_miss: 1; - __u64 reserved: 2; - }; -}; - -union ibs_op_ctl { - __u64 val; - struct { - __u64 opmaxcnt: 16; - __u64 l3_miss_only: 1; - __u64 op_en: 1; - __u64 op_val: 1; - __u64 cnt_ctl: 1; - __u64 opmaxcnt_ext: 7; - __u64 reserved0: 5; - __u64 opcurcnt: 27; - __u64 reserved1: 5; - }; -}; - -struct perf_ibs_data { - u32 size; - union { - u32 data[0]; - u32 caps; - }; - u64 regs[8]; -}; - -union ibs_op_data3 { - __u64 val; - struct { - __u64 ld_op: 1; - __u64 st_op: 1; - __u64 dc_l1tlb_miss: 1; - __u64 dc_l2tlb_miss: 1; - __u64 dc_l1tlb_hit_2m: 1; - __u64 dc_l1tlb_hit_1g: 1; - __u64 dc_l2tlb_hit_2m: 1; - __u64 dc_miss: 1; - __u64 dc_mis_acc: 1; - __u64 reserved: 4; - __u64 dc_wc_mem_acc: 1; - __u64 dc_uc_mem_acc: 1; - __u64 dc_locked_op: 1; - __u64 dc_miss_no_mab_alloc: 1; - __u64 dc_lin_addr_valid: 1; - __u64 dc_phy_addr_valid: 1; - __u64 dc_l2_tlb_hit_1g: 1; - __u64 l2_miss: 1; - __u64 sw_pf: 1; - __u64 op_mem_width: 4; - __u64 op_dc_miss_open_mem_reqs: 6; - __u64 dc_miss_lat: 16; - __u64 tlb_refill_lat: 16; - }; -}; - -union ibs_op_data2 { - __u64 val; - struct { - __u64 data_src_lo: 3; - __u64 reserved0: 1; - __u64 rmt_node: 1; - __u64 cache_hit_st: 1; - __u64 data_src_hi: 2; - __u64 reserved1: 56; - }; -}; - -union ibs_op_data { - __u64 val; - struct { - __u64 comp_to_ret_ctr: 16; - __u64 tag_to_ret_ctr: 16; - __u64 reserved1: 2; - __u64 op_return: 1; - __u64 op_brn_taken: 1; - __u64 op_brn_misp: 1; - __u64 op_brn_ret: 1; - __u64 op_rip_invalid: 1; - __u64 op_brn_fuse: 1; - __u64 op_microcode: 1; - __u64 reserved2: 23; - }; -}; - -enum pcpu_fc { - PCPU_FC_AUTO = 0, - PCPU_FC_EMBED = 1, - PCPU_FC_PAGE = 2, - PCPU_FC_NR = 3, -}; - -typedef int pcpu_fc_cpu_to_node_fn_t(int); - -typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); - -struct apic_override { - void (*eoi)(); - void (*native_eoi)(); - void (*write)(u32, u32); - u32 (*read)(u32); - void (*send_IPI)(int, int); - void (*send_IPI_mask)(const struct cpumask *, int); - void (*send_IPI_mask_allbutself)(const struct cpumask *, int); - void (*send_IPI_allbutself)(int); - void (*send_IPI_all)(int); - void (*send_IPI_self)(int); - u64 (*icr_read)(); - void (*icr_write)(u32, u32); - int (*wakeup_secondary_cpu)(u32, unsigned long); - int (*wakeup_secondary_cpu_64)(u32, unsigned long); -}; - -enum desc_state { - desc_miss = -1, - desc_reserved = 0, - desc_committed = 1, - desc_finalized = 2, - desc_reusable = 3, -}; - -struct prb_data_block { - unsigned long id; - char data[0]; -}; - -struct elf64_note { - Elf64_Word n_namesz; - Elf64_Word n_descsz; - Elf64_Word n_type; +struct old_itimerspec32 { + struct old_timespec32 it_interval; + struct old_timespec32 it_value; }; struct ustring_buffer { @@ -87029,6 +57803,19 @@ enum filter_pred_fn { FILTER_PRED_TEST_VISITED = 29, }; +enum { + FILTER_OTHER = 0, + FILTER_STATIC_STRING = 1, + FILTER_DYN_STRING = 2, + FILTER_RDYN_STRING = 3, + FILTER_PTR_STRING = 4, + FILTER_TRACE_FN = 5, + FILTER_CPUMASK = 6, + FILTER_COMM = 7, + FILTER_CPU = 8, + FILTER_STACKTRACE = 9, +}; + enum filter_op_ids { OP_GLOB = 0, OP_NE = 1, @@ -87080,6 +57867,8 @@ enum { struct regex; +struct ftrace_event_field; + struct filter_pred { struct regex *regex; struct cpumask *mask; @@ -87102,6 +57891,17 @@ struct regex { regex_match_func match; }; +struct ftrace_event_field { + struct list_head link; + const char *name; + const char *type; + int filter_type; + int offset; + int size; + int is_signed; + int len; +}; + struct filter_list { struct list_head list; struct event_filter *filter; @@ -87120,175 +57920,4886 @@ struct function_filter_data { typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); -struct dx_hash_info { - u32 hash; - u32 minor_hash; - int hash_version; - u32 *seed; +struct bp_slots_histogram { + atomic_t count[4]; }; -struct mmp_struct { - __le32 mmp_magic; - __le32 mmp_seq; - __le64 mmp_time; - char mmp_nodename[64]; - char mmp_bdevname[32]; - __le16 mmp_check_interval; - __le16 mmp_pad1; - __le32 mmp_pad2[226]; - __le32 mmp_checksum; +struct bp_cpuinfo { + unsigned int cpu_pinned; + struct bp_slots_histogram tsk_pinned; }; -struct fuse_getxattr_in { - uint32_t size; - uint32_t padding; +enum bp_type_idx { + TYPE_INST = 0, + TYPE_DATA = 0, + TYPE_MAX = 1, }; -struct fuse_getxattr_out { - uint32_t size; - uint32_t padding; +enum perf_type_id { + PERF_TYPE_HARDWARE = 0, + PERF_TYPE_SOFTWARE = 1, + PERF_TYPE_TRACEPOINT = 2, + PERF_TYPE_HW_CACHE = 3, + PERF_TYPE_RAW = 4, + PERF_TYPE_BREAKPOINT = 5, + PERF_TYPE_MAX = 6, }; -struct fuse_setxattr_in { - uint32_t size; +struct memblock_region; + +struct memblock_type { + unsigned long cnt; + unsigned long max; + phys_addr_t total_size; + struct memblock_region *regions; + char *name; +}; + +struct memblock { + bool bottom_up; + phys_addr_t current_limit; + struct memblock_type memory; + struct memblock_type reserved; +}; + +enum memblock_flags { + MEMBLOCK_NONE = 0, + MEMBLOCK_HOTPLUG = 1, + MEMBLOCK_MIRROR = 2, + MEMBLOCK_NOMAP = 4, + MEMBLOCK_DRIVER_MANAGED = 8, + MEMBLOCK_RSRV_NOINIT = 16, +}; + +struct memblock_region { + phys_addr_t base; + phys_addr_t size; + enum memblock_flags flags; + int nid; +}; + +struct timens_offsets { + struct timespec64 monotonic; + struct timespec64 boottime; +}; + +struct time_namespace { + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; + struct timens_offsets offsets; + struct page *vvar_page; + bool frozen_offsets; +}; + +enum alarmtimer_restart { + ALARMTIMER_NORESTART = 0, + ALARMTIMER_RESTART = 1, +}; + +enum alarmtimer_type { + ALARM_REALTIME = 0, + ALARM_BOOTTIME = 1, + ALARM_NUMTYPE = 2, + ALARM_REALTIME_FREEZER = 3, + ALARM_BOOTTIME_FREEZER = 4, +}; + +struct alarm { + struct timerqueue_node node; + struct hrtimer timer; + enum alarmtimer_restart (*function)(struct alarm *, ktime_t); + enum alarmtimer_type type; + int state; + void *data; +}; + +struct timerfd_ctx { + union { + struct hrtimer tmr; + struct alarm alarm; + } t; + ktime_t tintv; + ktime_t moffs; + wait_queue_head_t wqh; + u64 ticks; + int clockid; + unsigned short expired; + unsigned short settime_flags; + struct callback_head rcu; + struct list_head clist; + spinlock_t cancel_lock; + bool might_cancel; +}; + +struct kernfs_syscall_ops; + +struct kernfs_root { + struct kernfs_node *kn; + unsigned int flags; + struct idr ino_idr; + u32 last_id_lowbits; + u32 id_highbits; + struct kernfs_syscall_ops *syscall_ops; + struct list_head supers; + wait_queue_head_t deactivate_waitq; + struct rw_semaphore kernfs_rwsem; + struct rw_semaphore kernfs_iattr_rwsem; + struct rw_semaphore kernfs_supers_rwsem; + struct callback_head rcu; +}; + +struct simple_xattrs { + struct rb_root rb_root; + rwlock_t lock; +}; + +struct kernfs_iattrs { + kuid_t ia_uid; + kgid_t ia_gid; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct simple_xattrs xattrs; + atomic_t nr_user_xattrs; + atomic_t user_xattr_size; +}; + +struct kernfs_syscall_ops { + int (*show_options)(struct seq_file *, struct kernfs_root *); + int (*mkdir)(struct kernfs_node *, const char *, umode_t); + int (*rmdir)(struct kernfs_node *); + int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *); + int (*show_path)(struct seq_file *, struct kernfs_node *, struct kernfs_root *); +}; + +struct fid { + union { + struct { + u32 ino; + u32 gen; + u32 parent_ino; + u32 parent_gen; + } i32; + struct { + u64 ino; + u32 gen; + } __attribute__((packed)) i64; + struct { + u32 block; + u16 partref; + u16 parent_partref; + u32 generation; + u32 parent_block; + u32 parent_generation; + } udf; + struct { + struct {} __empty_raw; + __u32 raw[0]; + }; + }; +}; + +typedef struct { + int val[2]; +} __kernel_fsid_t; + +struct kstatfs { + long f_type; + long f_bsize; + u64 f_blocks; + u64 f_bfree; + u64 f_bavail; + u64 f_files; + u64 f_ffree; + __kernel_fsid_t f_fsid; + long f_namelen; + long f_frsize; + long f_flags; + long f_spare[4]; +}; + +struct kernfs_global_locks { + struct mutex open_file_mutex[1024]; +}; + +enum kernfs_root_flag { + KERNFS_ROOT_CREATE_DEACTIVATED = 1, + KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2, + KERNFS_ROOT_SUPPORT_EXPORTOP = 4, + KERNFS_ROOT_SUPPORT_USER_XATTR = 8, +}; + +enum fid_type { + FILEID_ROOT = 0, + FILEID_INO32_GEN = 1, + FILEID_INO32_GEN_PARENT = 2, + FILEID_BTRFS_WITHOUT_PARENT = 77, + FILEID_BTRFS_WITH_PARENT = 78, + FILEID_BTRFS_WITH_PARENT_ROOT = 79, + FILEID_UDF_WITHOUT_PARENT = 81, + FILEID_UDF_WITH_PARENT = 82, + FILEID_NILFS_WITHOUT_PARENT = 97, + FILEID_NILFS_WITH_PARENT = 98, + FILEID_FAT_WITHOUT_PARENT = 113, + FILEID_FAT_WITH_PARENT = 114, + FILEID_INO64_GEN = 129, + FILEID_INO64_GEN_PARENT = 130, + FILEID_LUSTRE = 151, + FILEID_BCACHEFS_WITHOUT_PARENT = 177, + FILEID_BCACHEFS_WITH_PARENT = 178, + FILEID_KERNFS = 254, + FILEID_INVALID = 255, +}; + +struct kernfs_super_info { + struct super_block *sb; + struct kernfs_root *root; + const void *ns; + struct list_head node; +}; + +struct kernfs_fs_context { + struct kernfs_root *root; + void *ns_tag; + unsigned long magic; + bool new_sb_created; +}; + +struct fuse_mount; + +union fuse_file_args; + +struct fuse_file { + struct fuse_mount *fm; + union fuse_file_args *args; + u64 kh; + u64 fh; + u64 nodeid; + refcount_t count; + u32 open_flags; + struct list_head write_entry; + struct { + loff_t pos; + loff_t cache_off; + u64 version; + } readdir; + struct rb_node polled_node; + wait_queue_head_t poll_wait; + enum { + IOM_NONE = 0, + IOM_CACHED = 1, + IOM_UNCACHED = 2, + } iomode; + struct file *passthrough; + const struct cred *cred; + bool flock: 1; +}; + +struct fuse_conn; + +struct fuse_mount { + struct fuse_conn *fc; + struct super_block *sb; + struct list_head fc_entry; + struct callback_head rcu; +}; + +struct fuse_forget_one { + uint64_t nodeid; + uint64_t nlookup; +}; + +struct fuse_forget_link { + struct fuse_forget_one forget_one; + struct fuse_forget_link *next; +}; + +struct fuse_iqueue_ops; + +struct fuse_iqueue { + unsigned int connected; + spinlock_t lock; + wait_queue_head_t waitq; + u64 reqctr; + struct list_head pending; + struct list_head interrupts; + struct fuse_forget_link forget_list_head; + struct fuse_forget_link *forget_list_tail; + int forget_batch; + struct fasync_struct *fasync; + const struct fuse_iqueue_ops *ops; + void *priv; +}; + +struct fuse_sync_bucket; + +struct fuse_conn { + spinlock_t lock; + refcount_t count; + atomic_t dev_count; + struct callback_head rcu; + kuid_t user_id; + kgid_t group_id; + struct pid_namespace *pid_ns; + struct user_namespace *user_ns; + unsigned int max_read; + unsigned int max_write; + unsigned int max_pages; + unsigned int max_pages_limit; + struct fuse_iqueue iq; + atomic64_t khctr; + struct rb_root polled_files; + unsigned int max_background; + unsigned int congestion_threshold; + unsigned int num_background; + unsigned int active_background; + struct list_head bg_queue; + spinlock_t bg_lock; + int initialized; + int blocked; + wait_queue_head_t blocked_waitq; + unsigned int connected; + bool aborted; + unsigned int conn_error: 1; + unsigned int conn_init: 1; + unsigned int async_read: 1; + unsigned int abort_err: 1; + unsigned int atomic_o_trunc: 1; + unsigned int export_support: 1; + unsigned int writeback_cache: 1; + unsigned int parallel_dirops: 1; + unsigned int handle_killpriv: 1; + unsigned int cache_symlinks: 1; + unsigned int legacy_opts_show: 1; + unsigned int handle_killpriv_v2: 1; + unsigned int no_open: 1; + unsigned int no_opendir: 1; + unsigned int no_fsync: 1; + unsigned int no_fsyncdir: 1; + unsigned int no_flush: 1; + unsigned int no_setxattr: 1; + unsigned int setxattr_ext: 1; + unsigned int no_getxattr: 1; + unsigned int no_listxattr: 1; + unsigned int no_removexattr: 1; + unsigned int no_lock: 1; + unsigned int no_access: 1; + unsigned int no_create: 1; + unsigned int no_interrupt: 1; + unsigned int no_bmap: 1; + unsigned int no_poll: 1; + unsigned int big_writes: 1; + unsigned int dont_mask: 1; + unsigned int no_flock: 1; + unsigned int no_fallocate: 1; + unsigned int no_rename2: 1; + unsigned int auto_inval_data: 1; + unsigned int explicit_inval_data: 1; + unsigned int do_readdirplus: 1; + unsigned int readdirplus_auto: 1; + unsigned int async_dio: 1; + unsigned int no_lseek: 1; + unsigned int posix_acl: 1; + unsigned int default_permissions: 1; + unsigned int allow_other: 1; + unsigned int no_copy_file_range: 1; + unsigned int destroy: 1; + unsigned int delete_stale: 1; + unsigned int no_control: 1; + unsigned int no_force_umount: 1; + unsigned int auto_submounts: 1; + unsigned int sync_fs: 1; + unsigned int init_security: 1; + unsigned int create_supp_group: 1; + unsigned int inode_dax: 1; + unsigned int no_tmpfile: 1; + unsigned int direct_io_allow_mmap: 1; + unsigned int no_statx: 1; + unsigned int passthrough: 1; + int max_stack_depth; + atomic_t num_waiting; + unsigned int minor; + struct list_head entry; + dev_t dev; + struct dentry *ctl_dentry[5]; + int ctl_ndents; + u32 scramble_key[4]; + atomic64_t attr_version; + void (*release)(struct fuse_conn *); + struct rw_semaphore killsb; + struct list_head devices; + struct list_head mounts; + struct fuse_sync_bucket __attribute__((btf_type_tag("rcu"))) *curr_bucket; + struct idr backing_files_map; +}; + +struct fuse_iqueue_ops { + void (*wake_forget_and_unlock)(struct fuse_iqueue *); + void (*wake_interrupt_and_unlock)(struct fuse_iqueue *); + void (*wake_pending_and_unlock)(struct fuse_iqueue *); + void (*release)(struct fuse_iqueue *); +}; + +struct fuse_sync_bucket { + atomic_t count; + wait_queue_head_t waitq; + struct callback_head rcu; +}; + +struct fuse_open_out { + uint64_t fh; + uint32_t open_flags; + int32_t backing_id; +}; + +struct fuse_in_arg { + unsigned int size; + const void *value; +}; + +struct fuse_arg { + unsigned int size; + void *value; +}; + +struct fuse_args { + uint64_t nodeid; + uint32_t opcode; + uint8_t in_numargs; + uint8_t out_numargs; + uint8_t ext_idx; + bool force: 1; + bool noreply: 1; + bool nocreds: 1; + bool in_pages: 1; + bool out_pages: 1; + bool user_pages: 1; + bool out_argvar: 1; + bool page_zeroing: 1; + bool page_replace: 1; + bool may_block: 1; + bool is_ext: 1; + bool is_pinned: 1; + struct fuse_in_arg in_args[3]; + struct fuse_arg out_args[2]; + void (*end)(struct fuse_mount *, struct fuse_args *, int); +}; + +struct fuse_release_in { + uint64_t fh; uint32_t flags; - uint32_t setxattr_flags; - uint32_t padding; + uint32_t release_flags; + uint64_t lock_owner; }; -enum btrfs_caching_type { - BTRFS_CACHE_NO = 0, - BTRFS_CACHE_STARTED = 1, - BTRFS_CACHE_FINISHED = 2, - BTRFS_CACHE_ERROR = 3, +struct fuse_release_args { + struct fuse_args args; + struct fuse_release_in inarg; + struct inode *inode; }; -enum btrfs_raid_types { - BTRFS_RAID_SINGLE = 0, - BTRFS_RAID_RAID0 = 1, - BTRFS_RAID_RAID1 = 2, - BTRFS_RAID_DUP = 3, - BTRFS_RAID_RAID10 = 4, - BTRFS_RAID_RAID5 = 5, - BTRFS_RAID_RAID6 = 6, - BTRFS_RAID_RAID1C3 = 7, - BTRFS_RAID_RAID1C4 = 8, - BTRFS_NR_RAID_TYPES = 9, -}; - -enum btrfs_chunk_alloc_enum { - CHUNK_ALLOC_NO_FORCE = 0, - CHUNK_ALLOC_LIMITED = 1, - CHUNK_ALLOC_FORCE = 2, - CHUNK_ALLOC_FORCE_FOR_EXTENT = 3, -}; - -struct btrfs_dev_extent { - __le64 chunk_tree; - __le64 chunk_objectid; - __le64 chunk_offset; - __le64 length; - __u8 chunk_tree_uuid[16]; -}; - -struct btrfs_block_group_item { - __le64 used; - __le64 chunk_objectid; - __le64 flags; +union fuse_file_args { + struct fuse_open_out open_outarg; + struct fuse_release_args release_args; }; enum { - DIO_SHOULD_DIRTY = 1, - DIO_IS_SYNC = 2, + FUSE_I_ADVISE_RDPLUS = 0, + FUSE_I_INIT_RDPLUS = 1, + FUSE_I_SIZE_UNSTABLE = 2, + FUSE_I_BAD = 3, + FUSE_I_BTIME = 4, + FUSE_I_CACHE_IO_MODE = 5, }; -struct blkdev_dio { +enum fuse_opcode { + FUSE_LOOKUP = 1, + FUSE_FORGET = 2, + FUSE_GETATTR = 3, + FUSE_SETATTR = 4, + FUSE_READLINK = 5, + FUSE_SYMLINK = 6, + FUSE_MKNOD = 8, + FUSE_MKDIR = 9, + FUSE_UNLINK = 10, + FUSE_RMDIR = 11, + FUSE_RENAME = 12, + FUSE_LINK = 13, + FUSE_OPEN = 14, + FUSE_READ = 15, + FUSE_WRITE = 16, + FUSE_STATFS = 17, + FUSE_RELEASE = 18, + FUSE_FSYNC = 20, + FUSE_SETXATTR = 21, + FUSE_GETXATTR = 22, + FUSE_LISTXATTR = 23, + FUSE_REMOVEXATTR = 24, + FUSE_FLUSH = 25, + FUSE_INIT = 26, + FUSE_OPENDIR = 27, + FUSE_READDIR = 28, + FUSE_RELEASEDIR = 29, + FUSE_FSYNCDIR = 30, + FUSE_GETLK = 31, + FUSE_SETLK = 32, + FUSE_SETLKW = 33, + FUSE_ACCESS = 34, + FUSE_CREATE = 35, + FUSE_INTERRUPT = 36, + FUSE_BMAP = 37, + FUSE_DESTROY = 38, + FUSE_IOCTL = 39, + FUSE_POLL = 40, + FUSE_NOTIFY_REPLY = 41, + FUSE_BATCH_FORGET = 42, + FUSE_FALLOCATE = 43, + FUSE_READDIRPLUS = 44, + FUSE_RENAME2 = 45, + FUSE_LSEEK = 46, + FUSE_COPY_FILE_RANGE = 47, + FUSE_SETUPMAPPING = 48, + FUSE_REMOVEMAPPING = 49, + FUSE_SYNCFS = 50, + FUSE_TMPFILE = 51, + FUSE_STATX = 52, + CUSE_INIT = 4096, + CUSE_INIT_BSWAP_RESERVED = 1048576, + FUSE_INIT_BSWAP_RESERVED = 436207616, +}; + +enum fuse_ext_type { + FUSE_MAX_NR_SECCTX = 31, + FUSE_EXT_GROUPS = 32, +}; + +struct fuse_submount_lookup; + +struct fuse_backing; + +struct fuse_inode { + struct inode inode; + u64 nodeid; + u64 nlookup; + struct fuse_forget_link *forget; + u64 i_time; + u32 inval_mask; + umode_t orig_i_mode; + struct timespec64 i_btime; + u64 orig_ino; + u64 attr_version; union { - struct kiocb *iocb; - struct task_struct *waiter; + struct { + struct list_head write_files; + struct list_head queued_writes; + int writectr; + int iocachectr; + wait_queue_head_t page_waitq; + wait_queue_head_t direct_io_waitq; + struct rb_root writepages; + }; + struct { + bool cached; + loff_t size; + loff_t pos; + u64 version; + struct timespec64 mtime; + u64 iversion; + spinlock_t lock; + } rdc; }; - size_t size; - atomic_t ref; - unsigned int flags; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct bio bio; - long: 64; + unsigned long state; + struct mutex mutex; + spinlock_t lock; + struct fuse_submount_lookup *submount_lookup; + struct fuse_backing *fb; }; -struct io_sync { +struct fuse_submount_lookup { + refcount_t count; + u64 nodeid; + struct fuse_forget_link *forget; +}; + +struct fuse_backing { struct file *file; - loff_t len; - loff_t off; + struct cred *cred; + refcount_t count; + struct callback_head rcu; +}; + +struct fuse_supp_groups { + uint32_t nr_groups; + uint32_t groups[0]; +}; + +struct fuse_attr { + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint32_t rdev; + uint32_t blksize; + uint32_t flags; +}; + +struct fuse_entry_out { + uint64_t nodeid; + uint64_t generation; + uint64_t entry_valid; + uint64_t attr_valid; + uint32_t entry_valid_nsec; + uint32_t attr_valid_nsec; + struct fuse_attr attr; +}; + +typedef s64 int64_t; + +struct fuse_sx_time { + int64_t tv_sec; + uint32_t tv_nsec; + int32_t __reserved; +}; + +struct fuse_statx { + uint32_t mask; + uint32_t blksize; + uint64_t attributes; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint16_t mode; + uint16_t __spare0[1]; + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t attributes_mask; + struct fuse_sx_time atime; + struct fuse_sx_time btime; + struct fuse_sx_time ctime; + struct fuse_sx_time mtime; + uint32_t rdev_major; + uint32_t rdev_minor; + uint32_t dev_major; + uint32_t dev_minor; + uint64_t __spare2[14]; +}; + +struct fuse_statx_in { + uint32_t getattr_flags; + uint32_t reserved; + uint64_t fh; + uint32_t sx_flags; + uint32_t sx_mask; +}; + +struct fuse_statx_out { + uint64_t attr_valid; + uint32_t attr_valid_nsec; + uint32_t flags; + uint64_t spare[2]; + struct fuse_statx stat; +}; + +struct fuse_setattr_in { + uint32_t valid; + uint32_t padding; + uint64_t fh; + uint64_t size; + uint64_t lock_owner; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t unused4; + uint32_t uid; + uint32_t gid; + uint32_t unused5; +}; + +struct fuse_attr_out { + uint64_t attr_valid; + uint32_t attr_valid_nsec; + uint32_t dummy; + struct fuse_attr attr; +}; + +struct fuse_access_in { + uint32_t mask; + uint32_t padding; +}; + +struct fuse_mknod_in { + uint32_t mode; + uint32_t rdev; + uint32_t umask; + uint32_t padding; +}; + +struct fuse_secctx_header { + uint32_t size; + uint32_t nr_secctx; +}; + +struct fuse_secctx { + uint32_t size; + uint32_t padding; +}; + +struct fuse_ext_header { + uint32_t size; + uint32_t type; +}; + +struct fuse_getattr_in { + uint32_t getattr_flags; + uint32_t dummy; + uint64_t fh; +}; + +struct fuse_link_in { + uint64_t oldnodeid; +}; + +struct fuse_mkdir_in { + uint32_t mode; + uint32_t umask; +}; + +struct fuse_rename2_in { + uint64_t newdir; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_create_in { + uint32_t flags; + uint32_t mode; + uint32_t umask; + uint32_t open_flags; +}; + +struct fuse_page_desc { + unsigned int length; + unsigned int offset; +}; + +struct fuse_args_pages { + struct fuse_args args; + struct page **pages; + struct fuse_page_desc *descs; + unsigned int num_pages; +}; + +struct ipc_ids { + int in_use; + unsigned short seq; + struct rw_semaphore rwsem; + struct idr ipcs_idr; + int max_idx; + int last_idx; + struct rhashtable key_ht; +}; + +struct ipc_namespace { + struct ipc_ids ids[3]; + int sem_ctls[4]; + int used_sems; + unsigned int msg_ctlmax; + unsigned int msg_ctlmnb; + unsigned int msg_ctlmni; + struct percpu_counter percpu_msg_bytes; + struct percpu_counter percpu_msg_hdrs; + size_t shm_ctlmax; + size_t shm_ctlall; + unsigned long shm_tot; + int shm_ctlmni; + int shm_rmid_forced; + struct notifier_block ipcns_nb; + struct vfsmount *mq_mnt; + unsigned int mq_queues_count; + unsigned int mq_queues_max; + unsigned int mq_msg_max; + unsigned int mq_msgsize_max; + unsigned int mq_msg_default; + unsigned int mq_msgsize_default; + struct ctl_table_set mq_set; + struct ctl_table_header *mq_sysctls; + struct ctl_table_set ipc_set; + struct ctl_table_header *ipc_sysctls; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct llist_node mnt_llist; + struct ns_common ns; +}; + +struct request_key_auth { + struct callback_head rcu; + struct key *target_key; + struct key *dest_keyring; + const struct cred *cred; + void *callout_info; + size_t callout_len; + pid_t pid; + char op[8]; +}; + +struct keyring_search_context { + struct keyring_index_key index_key; + const struct cred *cred; + struct key_match_data match_data; + unsigned int flags; + int (*iterator)(const void *, void *); + int skipped_ret; + bool possessed; + key_ref_t result; + time64_t now; +}; + +struct subprocess_info { + struct work_struct work; + struct completion *complete; + const char *path; + char **argv; + char **envp; + int wait; + int retval; + int (*init)(struct subprocess_info *, struct cred *); + void (*cleanup)(struct subprocess_info *); + void *data; +}; + +struct crypto_skcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_sync_skcipher { + struct crypto_skcipher base; +}; + +struct hash_alg_common { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; +}; + +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); + unsigned int descsize; + union { + struct { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; + }; + struct hash_alg_common halg; + }; +}; + +struct skcipher_request; + +struct skcipher_alg { + int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int); + int (*encrypt)(struct skcipher_request *); + int (*decrypt)(struct skcipher_request *); + int (*export)(struct skcipher_request *, void *); + int (*import)(struct skcipher_request *, const void *); + int (*init)(struct crypto_skcipher *); + void (*exit)(struct crypto_skcipher *); + unsigned int walksize; + union { + struct { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + unsigned int statesize; + struct crypto_alg base; + }; + struct skcipher_alg_common co; + }; +}; + +struct skcipher_request { + unsigned int cryptlen; + u8 *iv; + struct scatterlist *src; + struct scatterlist *dst; + struct crypto_async_request base; + void *__ctx[0]; +}; + +struct scatter_walk { + struct scatterlist *sg; + unsigned int offset; +}; + +struct skcipher_walk { + union { + struct { + struct page *page; + unsigned long offset; + } phys; + struct { + u8 *page; + void *addr; + } virt; + } src; + union { + struct { + struct page *page; + unsigned long offset; + } phys; + struct { + u8 *page; + void *addr; + } virt; + } dst; + struct scatter_walk in; + unsigned int nbytes; + struct scatter_walk out; + unsigned int total; + struct list_head buffers; + u8 *page; + u8 *buffer; + u8 *oiv; + void *iv; + unsigned int ivsize; int flags; - int mode; + unsigned int blocksize; + unsigned int stride; + unsigned int alignmask; }; -struct platform_driver { - int (*probe)(struct platform_device *); - int (*remove)(struct platform_device *); - void (*remove_new)(struct platform_device *); - void (*shutdown)(struct platform_device *); - int (*suspend)(struct platform_device *, pm_message_t); - int (*resume)(struct platform_device *); - struct device_driver driver; - const struct platform_device_id *id_table; - bool prevent_deferred_probe; - bool driver_managed_dma; +struct disk_events { + struct list_head node; + struct gendisk *disk; + spinlock_t lock; + struct mutex block_mutex; + int block; + unsigned int pending; + unsigned int clearing; + long poll_msecs; + struct delayed_work dwork; }; -struct vesafb_par { - u32 pseudo_palette[256]; - resource_size_t base; - resource_size_t size; - int wc_cookie; - struct resource *region; +enum { + DISK_EVENT_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, }; -enum tty_flow_change { - TTY_FLOW_NO_CHANGE = 0, - TTY_THROTTLE_SAFE = 1, - TTY_UNTHROTTLE_SAFE = 2, +enum { + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, }; -struct termios { - tcflag_t c_iflag; - tcflag_t c_oflag; - tcflag_t c_cflag; - tcflag_t c_lflag; - cc_t c_line; - cc_t c_cc[19]; +typedef struct { + unsigned char op; + unsigned char bits; + unsigned short val; +} code; + +typedef enum { + HEAD = 0, + FLAGS = 1, + TIME = 2, + OS = 3, + EXLEN = 4, + EXTRA = 5, + NAME = 6, + COMMENT = 7, + HCRC = 8, + DICTID = 9, + DICT = 10, + TYPE = 11, + TYPEDO = 12, + STORED = 13, + COPY = 14, + TABLE = 15, + LENLENS = 16, + CODELENS = 17, + LEN = 18, + LENEXT = 19, + DIST = 20, + DISTEXT = 21, + MATCH = 22, + LIT = 23, + CHECK = 24, + LENGTH = 25, + DONE = 26, + BAD = 27, + MEM = 28, + SYNC = 29, +} inflate_mode; + +struct inflate_state { + inflate_mode mode; + int last; + int wrap; + int havedict; + int flags; + unsigned int dmax; + unsigned long check; + unsigned long total; + unsigned int wbits; + unsigned int wsize; + unsigned int whave; + unsigned int write; + unsigned char *window; + unsigned long hold; + unsigned int bits; + unsigned int length; + unsigned int offset; + unsigned int extra; + const code *lencode; + const code *distcode; + unsigned int lenbits; + unsigned int distbits; + unsigned int ncode; + unsigned int nlen; + unsigned int ndist; + unsigned int have; + code *next; + unsigned short lens[320]; + unsigned short work[288]; + code codes[2048]; }; -struct termios2 { - tcflag_t c_iflag; - tcflag_t c_oflag; - tcflag_t c_cflag; - tcflag_t c_lflag; - cc_t c_line; - cc_t c_cc[19]; - speed_t c_ispeed; - speed_t c_ospeed; +struct inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; }; -struct termio { - unsigned short c_iflag; - unsigned short c_oflag; - unsigned short c_cflag; - unsigned short c_lflag; - unsigned char c_line; - unsigned char c_cc[8]; +struct z_stream_s; + +typedef struct z_stream_s z_stream; + +typedef z_stream *z_streamp; + +typedef unsigned char Byte; + +typedef unsigned long uLong; + +struct internal_state; + +struct z_stream_s { + const Byte *next_in; + uLong avail_in; + uLong total_in; + Byte *next_out; + uLong avail_out; + uLong total_out; + char *msg; + struct internal_state *state; + void *workspace; + int data_type; + uLong adler; + uLong reserved; }; -struct vcs_poll_data { - struct notifier_block notifier; - unsigned int cons_num; - int event; - wait_queue_head_t waitq; - struct fasync_struct *fasync; +typedef enum { + CODES = 0, + LENS = 1, + DISTS = 2, +} codetype; + +typedef unsigned int uInt; + +typedef enum { + ZSTD_error_no_error = 0, + ZSTD_error_GENERIC = 1, + ZSTD_error_prefix_unknown = 10, + ZSTD_error_version_unsupported = 12, + ZSTD_error_frameParameter_unsupported = 14, + ZSTD_error_frameParameter_windowTooLarge = 16, + ZSTD_error_corruption_detected = 20, + ZSTD_error_checksum_wrong = 22, + ZSTD_error_dictionary_corrupted = 30, + ZSTD_error_dictionary_wrong = 32, + ZSTD_error_dictionaryCreation_failed = 34, + ZSTD_error_parameter_unsupported = 40, + ZSTD_error_parameter_outOfBound = 42, + ZSTD_error_tableLog_tooLarge = 44, + ZSTD_error_maxSymbolValue_tooLarge = 46, + ZSTD_error_maxSymbolValue_tooSmall = 48, + ZSTD_error_stage_wrong = 60, + ZSTD_error_init_missing = 62, + ZSTD_error_memory_allocation = 64, + ZSTD_error_workSpace_tooSmall = 66, + ZSTD_error_dstSize_tooSmall = 70, + ZSTD_error_srcSize_wrong = 72, + ZSTD_error_dstBuffer_null = 74, + ZSTD_error_frameIndex_tooLarge = 100, + ZSTD_error_seekableIO = 102, + ZSTD_error_dstBuffer_wrong = 104, + ZSTD_error_srcBuffer_wrong = 105, + ZSTD_error_maxCode = 120, +} ZSTD_ErrorCode; + +typedef ZSTD_ErrorCode ERR_enum; + +struct raid6_calls { + void (*gen_syndrome)(int, size_t, void **); + void (*xor_syndrome)(int, int, int, size_t, void **); + int (*valid)(); + const char *name; + int priority; +}; + +struct raid6_avx512_constants { + u64 x1d[8]; +}; + +struct lpit_residency_info { + struct acpi_generic_address gaddr; + u64 frequency; + void *iomem_addr; +}; + +struct acpi_lpit_header { + u32 type; + u32 length; + u16 unique_id; + u16 reserved; + u32 flags; +}; + +struct acpi_lpit_native { + struct acpi_lpit_header header; + struct acpi_generic_address entry_trigger; + u32 residency; + u32 latency; + struct acpi_generic_address residency_counter; + u64 counter_frequency; +}; + +struct acpi_table_lpit { + struct acpi_table_header header; +}; + +struct acpi_processor_throttling_arg { + struct acpi_processor *pr; + int target_state; + bool force; +}; + +struct throttling_tstate { + unsigned int cpu; + int target_state; +}; + +struct class_interface { + struct list_head node; + const struct class *class; + int (*add_dev)(struct device *); + void (*remove_dev)(struct device *); +}; + +enum dpm_order { + DPM_ORDER_NONE = 0, + DPM_ORDER_DEV_AFTER_PARENT = 1, + DPM_ORDER_PARENT_BEFORE_DEV = 2, + DPM_ORDER_DEV_LAST = 3, +}; + +struct dev_ext_attribute { + struct device_attribute attr; + void *var; +}; + +struct fwnode_link { + struct fwnode_handle *supplier; + struct list_head s_hook; + struct fwnode_handle *consumer; + struct list_head c_hook; + u8 flags; +}; + +struct class_dir { + struct kobject kobj; + const struct class *class; +}; + +struct root_device { + struct device dev; + struct module *owner; +}; + +struct dev_printk_info { + char subsystem[16]; + char device[48]; +}; + +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; +}; + +struct iwl_rate_mcs_info { + char mbps[12]; + char mcs[12]; +}; + +enum { + IWL_RATE_1M_INDEX = 0, + IWL_FIRST_CCK_RATE = 0, + IWL_RATE_2M_INDEX = 1, + IWL_RATE_5M_INDEX = 2, + IWL_RATE_11M_INDEX = 3, + IWL_LAST_CCK_RATE = 3, + IWL_RATE_6M_INDEX = 4, + IWL_FIRST_OFDM_RATE = 4, + IWL_RATE_MCS_0_INDEX = 4, + IWL_FIRST_HT_RATE = 4, + IWL_FIRST_VHT_RATE = 4, + IWL_RATE_9M_INDEX = 5, + IWL_RATE_12M_INDEX = 6, + IWL_RATE_MCS_1_INDEX = 6, + IWL_RATE_18M_INDEX = 7, + IWL_RATE_MCS_2_INDEX = 7, + IWL_RATE_24M_INDEX = 8, + IWL_RATE_MCS_3_INDEX = 8, + IWL_RATE_36M_INDEX = 9, + IWL_RATE_MCS_4_INDEX = 9, + IWL_RATE_48M_INDEX = 10, + IWL_RATE_MCS_5_INDEX = 10, + IWL_RATE_54M_INDEX = 11, + IWL_RATE_MCS_6_INDEX = 11, + IWL_LAST_NON_HT_RATE = 11, + IWL_RATE_60M_INDEX = 12, + IWL_RATE_MCS_7_INDEX = 12, + IWL_LAST_HT_RATE = 12, + IWL_RATE_MCS_8_INDEX = 13, + IWL_RATE_MCS_9_INDEX = 14, + IWL_LAST_VHT_RATE = 14, + IWL_RATE_MCS_10_INDEX = 15, + IWL_RATE_MCS_11_INDEX = 16, + IWL_LAST_HE_RATE = 16, + IWL_RATE_COUNT_LEGACY = 12, + IWL_RATE_COUNT = 17, + IWL_RATE_INVM_INDEX = 17, + IWL_RATE_INVALID = 17, +}; + +enum iwl_trans_status { + STATUS_SYNC_HCMD_ACTIVE = 0, + STATUS_DEVICE_ENABLED = 1, + STATUS_TPOWER_PMI = 2, + STATUS_INT_ENABLED = 3, + STATUS_RFKILL_HW = 4, + STATUS_RFKILL_OPMODE = 5, + STATUS_FW_ERROR = 6, + STATUS_TRANS_GOING_IDLE = 7, + STATUS_TRANS_IDLE = 8, + STATUS_TRANS_DEAD = 9, + STATUS_SUPPRESS_CMD_ERROR_ONCE = 10, +}; + +enum iwl_error_event_table_status { + IWL_ERROR_EVENT_TABLE_LMAC1 = 1, + IWL_ERROR_EVENT_TABLE_LMAC2 = 2, + IWL_ERROR_EVENT_TABLE_UMAC = 4, + IWL_ERROR_EVENT_TABLE_TCM1 = 8, + IWL_ERROR_EVENT_TABLE_TCM2 = 16, + IWL_ERROR_EVENT_TABLE_RCM1 = 32, + IWL_ERROR_EVENT_TABLE_RCM2 = 64, +}; + +struct iwl_umac_error_event_table { + u32 valid; + u32 error_id; + u32 blink1; + u32 blink2; + u32 ilink1; + u32 ilink2; + u32 data1; + u32 data2; + u32 data3; + u32 umac_major; + u32 umac_minor; + u32 frame_pointer; + u32 stack_pointer; + u32 cmd_header; + u32 nic_isr_pref; +}; + +struct iwl_error_event_table { + u32 valid; + u32 error_id; + u32 trm_hw_status0; + u32 trm_hw_status1; + u32 blink2; + u32 ilink1; + u32 ilink2; + u32 data1; + u32 data2; + u32 data3; + u32 bcon_time; + u32 tsf_low; + u32 tsf_hi; + u32 gp1; + u32 gp2; + u32 fw_rev_type; + u32 major; + u32 minor; + u32 hw_ver; + u32 brd_ver; + u32 log_pc; + u32 frame_ptr; + u32 stack_ptr; + u32 hcmd; + u32 isr0; + u32 isr1; + u32 isr2; + u32 isr3; + u32 isr4; + u32 last_cmd_id; + u32 wait_event; + u32 l2p_control; + u32 l2p_duration; + u32 l2p_mhvalid; + u32 l2p_addr_match; + u32 lmpm_pmg_sel; + u32 u_timestamp; + u32 flow_handler; +}; + +struct iwl_tcm_error_event_table { + u32 valid; + u32 error_id; + u32 blink2; + u32 ilink1; + u32 ilink2; + u32 data1; + u32 data2; + u32 data3; + u32 logpc; + u32 frame_pointer; + u32 stack_pointer; + u32 msgid; + u32 isr; + u32 hw_status[5]; + u32 sw_status[1]; + u32 reserved[4]; +}; + +struct iwl_rcm_error_event_table { + u32 valid; + u32 error_id; + u32 blink2; + u32 ilink1; + u32 ilink2; + u32 data1; + u32 data2; + u32 data3; + u32 logpc; + u32 frame_pointer; + u32 stack_pointer; + u32 msgid; + u32 isr; + u32 frame_hw_status; + u32 mbx_lmac_to_rcm_req; + u32 mbx_rcm_to_lmac_req; + u32 mh_ctl; + u32 mh_addr1_lo; + u32 mh_info; + u32 mh_err; + u32 reserved[3]; +}; + +struct data_queue; + +struct rt2x00lib_ops; + +struct rt2x00_ops { + const char *name; + const unsigned int drv_data_size; + const unsigned int max_ap_intf; + const unsigned int eeprom_size; + const unsigned int rf_size; + const unsigned int tx_queues; + void (*queue_init)(struct data_queue *); + const struct rt2x00lib_ops *lib; + const void *drv; + const struct ieee80211_ops *hw; +}; + +enum data_queue_qid { + QID_AC_VO = 0, + QID_AC_VI = 1, + QID_AC_BE = 2, + QID_AC_BK = 3, + QID_HCCA = 4, + QID_MGMT = 13, + QID_RX = 14, + QID_OTHER = 15, + QID_BEACON = 16, + QID_ATIM = 17, +}; + +struct rt2x00_dev; + +struct queue_entry; + +struct data_queue { + struct rt2x00_dev *rt2x00dev; + struct queue_entry *entries; + enum data_queue_qid qid; + unsigned long flags; + struct mutex status_lock; + spinlock_t tx_lock; + spinlock_t index_lock; + unsigned int count; + unsigned short limit; + unsigned short threshold; + unsigned short length; + unsigned short index[3]; + unsigned short wd_count; + unsigned int wd_idx; + unsigned short txop; + unsigned short aifs; + unsigned short cw_min; + unsigned short cw_max; + unsigned short data_size; + unsigned char desc_size; + unsigned char winfo_size; + unsigned short priv_size; + unsigned short usb_endpoint; + unsigned short usb_maxpacket; +}; + +enum rt2x00_chip_intf { + RT2X00_CHIP_INTF_PCI = 0, + RT2X00_CHIP_INTF_PCIE = 1, + RT2X00_CHIP_INTF_USB = 2, + RT2X00_CHIP_INTF_SOC = 3, +}; + +struct rt2x00_chip { + u16 rt; + u16 rf; + u16 rev; + enum rt2x00_chip_intf intf; +}; + +struct rf_channel; + +struct channel_info; + +struct hw_mode_spec { + unsigned int supported_bands; + unsigned int supported_rates; + unsigned int num_channels; + const struct rf_channel *channels; + const struct channel_info *channels_info; + struct ieee80211_sta_ht_cap ht; +}; + +enum antenna { + ANTENNA_SW_DIVERSITY = 0, + ANTENNA_A = 1, + ANTENNA_B = 2, + ANTENNA_HW_DIVERSITY = 3, +}; + +struct antenna_setup { + enum antenna rx; + enum antenna tx; + u8 rx_chain_num; + u8 tx_chain_num; +}; + +union csr { + void *base; + void *cache; +}; + +struct link_qual { + int rssi; + int false_cca; + u8 vgc_level; + u8 vgc_level_reg; + int rx_success; + int rx_failed; + int tx_success; + int tx_failed; +}; + +struct link_ant { + unsigned int flags; + struct antenna_setup active; + int rssi_history; + struct ewma_rssi rssi_ant; +}; + +struct link { + u32 count; + struct link_qual qual; + struct link_ant ant; + struct ewma_rssi avg_rssi; + struct delayed_work work; + struct delayed_work watchdog_work; + unsigned int watchdog_interval; + unsigned int watchdog; + struct delayed_work agc_work; + struct delayed_work vco_work; +}; + +struct rt2x00_chan_survey; + +struct rt2x00_dev { + struct device *dev; + const struct rt2x00_ops *ops; + void *drv_data; + struct ieee80211_hw *hw; + struct ieee80211_supported_band bands[6]; + struct rt2x00_chan_survey *chan_survey; + enum nl80211_band curr_band; + int curr_freq; + unsigned long flags; + unsigned long cap_flags; + int irq; + const char *name; + struct rt2x00_chip chip; + struct hw_mode_spec spec; + struct antenna_setup default_ant; + union csr csr; + struct mutex csr_mutex; + struct mutex conf_mutex; + unsigned int packet_filter; + unsigned int intf_ap_count; + unsigned int intf_sta_count; + unsigned int intf_associated; + unsigned int intf_beaconing; + struct ieee80211_iface_limit if_limits_ap; + struct ieee80211_iface_combination if_combinations[1]; + struct link link; + __le16 *eeprom; + u32 *rf; + short lna_gain; + u16 tx_power; + u8 short_retry; + u8 long_retry; + u8 rssi_offset; + u8 freq_offset; + u16 aid; + u16 beacon_int; + u16 rxdma_busy; + u16 txdma_busy; + unsigned long last_beacon; + struct ieee80211_low_level_stats low_level_stats; + struct workqueue_struct *workqueue; + struct work_struct intf_work; + struct work_struct rxdone_work; + struct work_struct txdone_work; + struct delayed_work autowakeup_work; + struct work_struct sleep_work; + unsigned int data_queues; + struct data_queue *rx; + struct data_queue *tx; + struct data_queue *bcn; + struct data_queue *atim; + const struct firmware *fw; + struct { + union { + struct __kfifo kfifo; + u32 *type; + const u32 *const_type; + char (*rectype)[0]; + u32 *ptr; + const u32 *ptr_const; + }; + u32 buf[0]; + } txstatus_fifo; + struct hrtimer txstatus_timer; + struct tasklet_struct txstatus_tasklet; + struct tasklet_struct pretbtt_tasklet; + struct tasklet_struct tbtt_tasklet; + struct tasklet_struct rxdone_tasklet; + struct tasklet_struct autowake_tasklet; + int rf_channel; + spinlock_t irqmask_lock; + struct list_head bar_list; + spinlock_t bar_list_lock; + unsigned int extra_tx_headroom; + struct usb_anchor *anchor; + unsigned int num_proto_errs; + struct clk *clk; +}; + +struct rt2x00_chan_survey { + u64 time_idle; + u64 time_busy; + u64 time_ext_busy; +}; + +struct rf_channel { + int channel; + u32 rf1; + u32 rf2; + u32 rf3; + u32 rf4; +}; + +struct channel_info { + unsigned int flags; + short max_power; + short default_power1; + short default_power2; + short default_power3; +}; + +struct queue_entry { + unsigned long flags; + unsigned long last_action; + struct data_queue *queue; + struct sk_buff *skb; + unsigned int entry_idx; + void *priv_data; +}; + +enum dev_state { + STATE_DEEP_SLEEP = 0, + STATE_SLEEP = 1, + STATE_STANDBY = 2, + STATE_AWAKE = 3, + STATE_RADIO_ON = 4, + STATE_RADIO_OFF = 5, + STATE_RADIO_IRQ_ON = 6, + STATE_RADIO_IRQ_OFF = 7, +}; + +struct txentry_desc; + +struct rxdone_entry_desc; + +struct rt2x00lib_crypto; + +struct rt2x00_intf; + +struct rt2x00intf_conf; + +struct rt2x00lib_erp; + +struct rt2x00lib_conf; + +struct rt2x00lib_ops { + irq_handler_t irq_handler; + void (*txstatus_tasklet)(struct tasklet_struct *); + void (*pretbtt_tasklet)(struct tasklet_struct *); + void (*tbtt_tasklet)(struct tasklet_struct *); + void (*rxdone_tasklet)(struct tasklet_struct *); + void (*autowake_tasklet)(struct tasklet_struct *); + int (*probe_hw)(struct rt2x00_dev *); + char * (*get_firmware_name)(struct rt2x00_dev *); + int (*check_firmware)(struct rt2x00_dev *, const u8 *, const size_t); + int (*load_firmware)(struct rt2x00_dev *, const u8 *, const size_t); + int (*initialize)(struct rt2x00_dev *); + void (*uninitialize)(struct rt2x00_dev *); + bool (*get_entry_state)(struct queue_entry *); + void (*clear_entry)(struct queue_entry *); + int (*set_device_state)(struct rt2x00_dev *, enum dev_state); + int (*rfkill_poll)(struct rt2x00_dev *); + void (*link_stats)(struct rt2x00_dev *, struct link_qual *); + void (*reset_tuner)(struct rt2x00_dev *, struct link_qual *); + void (*link_tuner)(struct rt2x00_dev *, struct link_qual *, const u32); + void (*gain_calibration)(struct rt2x00_dev *); + void (*vco_calibration)(struct rt2x00_dev *); + void (*watchdog)(struct rt2x00_dev *); + void (*start_queue)(struct data_queue *); + void (*kick_queue)(struct data_queue *); + void (*stop_queue)(struct data_queue *); + void (*flush_queue)(struct data_queue *, bool); + void (*tx_dma_done)(struct queue_entry *); + void (*write_tx_desc)(struct queue_entry *, struct txentry_desc *); + void (*write_tx_data)(struct queue_entry *, struct txentry_desc *); + void (*write_beacon)(struct queue_entry *, struct txentry_desc *); + void (*clear_beacon)(struct queue_entry *); + int (*get_tx_data_len)(struct queue_entry *); + void (*fill_rxdone)(struct queue_entry *, struct rxdone_entry_desc *); + int (*config_shared_key)(struct rt2x00_dev *, struct rt2x00lib_crypto *, struct ieee80211_key_conf *); + int (*config_pairwise_key)(struct rt2x00_dev *, struct rt2x00lib_crypto *, struct ieee80211_key_conf *); + void (*config_filter)(struct rt2x00_dev *, const unsigned int); + void (*config_intf)(struct rt2x00_dev *, struct rt2x00_intf *, struct rt2x00intf_conf *, const unsigned int); + void (*config_erp)(struct rt2x00_dev *, struct rt2x00lib_erp *, u32); + void (*config_ant)(struct rt2x00_dev *, struct antenna_setup *); + void (*config)(struct rt2x00_dev *, struct rt2x00lib_conf *, const unsigned int); + void (*pre_reset_hw)(struct rt2x00_dev *); + int (*sta_add)(struct rt2x00_dev *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*sta_remove)(struct rt2x00_dev *, struct ieee80211_sta *); +}; + +enum ifs { + IFS_BACKOFF = 0, + IFS_SIFS = 1, + IFS_NEW_BACKOFF = 2, + IFS_NONE = 3, +}; + +enum txop { + TXOP_HTTXOP = 0, + TXOP_PIFS = 1, + TXOP_SIFS = 2, + TXOP_BACKOFF = 3, +}; + +enum rate_modulation { + RATE_MODE_CCK = 0, + RATE_MODE_OFDM = 1, + RATE_MODE_HT_MIX = 2, + RATE_MODE_HT_GREENFIELD = 3, +}; + +enum cipher { + CIPHER_NONE = 0, + CIPHER_WEP64 = 1, + CIPHER_WEP128 = 2, + CIPHER_TKIP = 3, + CIPHER_AES = 4, + CIPHER_CKIP64 = 5, + CIPHER_CKIP128 = 6, + CIPHER_TKIP_NO_MIC = 7, + CIPHER_MAX = 4, +}; + +struct txentry_desc { + unsigned long flags; + u16 length; + u16 header_length; + union { + struct { + u16 length_high; + u16 length_low; + u16 signal; + u16 service; + enum ifs ifs; + } plcp; + struct { + u16 mcs; + u8 stbc; + u8 ba_size; + u8 mpdu_density; + enum txop txop; + int wcid; + } ht; + } u; + enum rate_modulation rate_mode; + short retry_limit; + enum cipher cipher; + u16 key_idx; + u16 iv_offset; + u16 iv_len; +}; + +struct rxdone_entry_desc { + u64 timestamp; + int signal; + int rssi; + int size; + int flags; + int dev_flags; + u16 rate_mode; + u16 enc_flags; + enum mac80211_rx_encoding encoding; + enum rate_info_bw bw; + u8 cipher; + u8 cipher_status; + __le32 iv[2]; + __le32 icv; +}; + +struct rt2x00lib_crypto { + enum cipher cipher; + enum set_key_cmd cmd; + const u8 *address; + u32 bssidx; + u8 key[16]; + u8 tx_mic[8]; + u8 rx_mic[8]; + int wcid; +}; + +struct rt2x00_intf { + struct mutex beacon_skb_mutex; + struct queue_entry *beacon; + bool enable_beacon; + unsigned long delayed_flags; + atomic_t seqno; +}; + +enum tsf_sync { + TSF_SYNC_NONE = 0, + TSF_SYNC_INFRA = 1, + TSF_SYNC_ADHOC = 2, + TSF_SYNC_AP_NONE = 3, +}; + +struct rt2x00intf_conf { + enum nl80211_iftype type; + enum tsf_sync sync; + __le32 mac[2]; + __le32 bssid[2]; +}; + +struct rt2x00lib_erp { + int short_preamble; + int cts_protection; + u32 basic_rates; + int slot_time; + short sifs; + short pifs; + short difs; + short eifs; + u16 beacon_int; + u16 ht_opmode; +}; + +struct rt2x00lib_conf { + struct ieee80211_conf *conf; + struct rf_channel rf; + struct channel_info channel; +}; + +struct rt2x00_field32; + +struct rt2800_ops { + u32 (*register_read)(struct rt2x00_dev *, const unsigned int); + u32 (*register_read_lock)(struct rt2x00_dev *, const unsigned int); + void (*register_write)(struct rt2x00_dev *, const unsigned int, u32); + void (*register_write_lock)(struct rt2x00_dev *, const unsigned int, u32); + void (*register_multiread)(struct rt2x00_dev *, const unsigned int, void *, const u32); + void (*register_multiwrite)(struct rt2x00_dev *, const unsigned int, const void *, const u32); + int (*regbusy_read)(struct rt2x00_dev *, const unsigned int, const struct rt2x00_field32, u32 *); + int (*read_eeprom)(struct rt2x00_dev *); + bool (*hwcrypt_disabled)(struct rt2x00_dev *); + int (*drv_write_firmware)(struct rt2x00_dev *, const u8 *, const size_t); + int (*drv_init_registers)(struct rt2x00_dev *); + __le32 * (*drv_get_txwi)(struct queue_entry *); + unsigned int (*drv_get_dma_done)(struct data_queue *); +}; + +struct rt2x00_field32 { + u32 bit_offset; + u32 bit_mask; +}; + +enum rt2x00_state_flags { + DEVICE_STATE_PRESENT = 0, + DEVICE_STATE_REGISTERED_HW = 1, + DEVICE_STATE_INITIALIZED = 2, + DEVICE_STATE_STARTED = 3, + DEVICE_STATE_ENABLED_RADIO = 4, + DEVICE_STATE_SCANNING = 5, + DEVICE_STATE_FLUSHING = 6, + DEVICE_STATE_RESET = 7, + CONFIG_CHANNEL_HT40 = 8, + CONFIG_POWERSAVING = 9, + CONFIG_HT_DISABLED = 10, + CONFIG_MONITORING = 11, + TX_STATUS_READING = 12, +}; + +enum rt2x00usb_vendor_request { + USB_DEVICE_MODE = 1, + USB_SINGLE_WRITE = 2, + USB_SINGLE_READ = 3, + USB_MULTI_WRITE = 6, + USB_MULTI_READ = 7, + USB_EEPROM_WRITE = 8, + USB_EEPROM_READ = 9, + USB_LED_CONTROL = 10, + USB_RX_CONTROL = 12, +}; + +enum txentry_desc_flags { + ENTRY_TXD_RTS_FRAME = 0, + ENTRY_TXD_CTS_FRAME = 1, + ENTRY_TXD_GENERATE_SEQ = 2, + ENTRY_TXD_FIRST_FRAGMENT = 3, + ENTRY_TXD_MORE_FRAG = 4, + ENTRY_TXD_REQ_TIMESTAMP = 5, + ENTRY_TXD_BURST = 6, + ENTRY_TXD_ACK = 7, + ENTRY_TXD_RETRY_MODE = 8, + ENTRY_TXD_ENCRYPT = 9, + ENTRY_TXD_ENCRYPT_PAIRWISE = 10, + ENTRY_TXD_ENCRYPT_IV = 11, + ENTRY_TXD_ENCRYPT_MMIC = 12, + ENTRY_TXD_HT_AMPDU = 13, + ENTRY_TXD_HT_BW_40 = 14, + ENTRY_TXD_HT_SHORT_GI = 15, + ENTRY_TXD_HT_MIMO_PS = 16, +}; + +enum skb_frame_desc_flags { + SKBDESC_DMA_MAPPED_RX = 1, + SKBDESC_DMA_MAPPED_TX = 2, + SKBDESC_IV_STRIPPED = 4, + SKBDESC_NOT_MAC80211 = 8, + SKBDESC_DESC_IN_SKB = 16, +}; + +enum rx_crypto { + RX_CRYPTO_SUCCESS = 0, + RX_CRYPTO_FAIL_ICV = 1, + RX_CRYPTO_FAIL_MIC = 2, + RX_CRYPTO_FAIL_KEY = 3, +}; + +enum rxdone_entry_desc_flags { + RXDONE_SIGNAL_PLCP = 1, + RXDONE_SIGNAL_BITRATE = 2, + RXDONE_SIGNAL_MCS = 4, + RXDONE_MY_BSS = 8, + RXDONE_CRYPTO_IV = 16, + RXDONE_CRYPTO_ICV = 32, + RXDONE_L2PAD = 64, +}; + +enum rt2x00usb_mode_offset { + USB_MODE_RESET = 1, + USB_MODE_UNPLUG = 2, + USB_MODE_FUNCTION = 3, + USB_MODE_TEST = 4, + USB_MODE_SLEEP = 7, + USB_MODE_FIRMWARE = 8, + USB_MODE_WAKEUP = 9, + USB_MODE_AUTORUN = 17, +}; + +enum rt2x00_capability_flags { + REQUIRE_FIRMWARE = 0, + REQUIRE_BEACON_GUARD = 1, + REQUIRE_ATIM_QUEUE = 2, + REQUIRE_DMA = 3, + REQUIRE_COPY_IV = 4, + REQUIRE_L2PAD = 5, + REQUIRE_TXSTATUS_FIFO = 6, + REQUIRE_TASKLET_CONTEXT = 7, + REQUIRE_SW_SEQNO = 8, + REQUIRE_HT_TX_DESC = 9, + REQUIRE_PS_AUTOWAKE = 10, + REQUIRE_DELAYED_RFKILL = 11, + CAPABILITY_HW_BUTTON = 12, + CAPABILITY_HW_CRYPTO = 13, + CAPABILITY_POWER_LIMIT = 14, + CAPABILITY_CONTROL_FILTERS = 15, + CAPABILITY_CONTROL_FILTER_PSPOLL = 16, + CAPABILITY_PRE_TBTT_INTERRUPT = 17, + CAPABILITY_LINK_TUNING = 18, + CAPABILITY_FRAME_TYPE = 19, + CAPABILITY_RF_SEQUENCE = 20, + CAPABILITY_EXTERNAL_LNA_A = 21, + CAPABILITY_EXTERNAL_LNA_BG = 22, + CAPABILITY_DOUBLE_ANTENNA = 23, + CAPABILITY_BT_COEXIST = 24, + CAPABILITY_VCO_RECALIBRATION = 25, + CAPABILITY_EXTERNAL_PA_TX0 = 26, + CAPABILITY_EXTERNAL_PA_TX1 = 27, + CAPABILITY_RESTART_HW = 28, +}; + +enum queue_index { + Q_INDEX = 0, + Q_INDEX_DMA_DONE = 1, + Q_INDEX_DONE = 2, + Q_INDEX_MAX = 3, +}; + +struct skb_frame_desc { + u8 flags; + u8 desc_len; + u8 tx_rate_idx; + u8 tx_rate_flags; + void *desc; + __le32 iv[2]; + dma_addr_t skb_dma; + struct ieee80211_sta *sta; +}; + +struct thermal_hwmon_device { + char type[20]; + struct device *device; + int count; + struct list_head tz_list; + struct list_head node; +}; + +struct thermal_hwmon_attr { + struct device_attribute attr; + char name[16]; +}; + +struct thermal_hwmon_temp { + struct list_head hwmon_node; + struct thermal_zone_device *tz; + struct thermal_hwmon_attr temp_input; + struct thermal_hwmon_attr temp_crit; +}; + +struct tcp_request_sock_ops; + +struct tcp_request_sock { + struct inet_request_sock req; + const struct tcp_request_sock_ops *af_specific; + u64 snt_synack; + bool tfo_listener; + bool is_mptcp; + bool req_usec_ts; + u32 txhash; + u32 rcv_isn; + u32 snt_isn; + u32 ts_off; + u32 last_oow_ack_time; + u32 rcv_nxt; + u8 syn_tos; +}; + +enum tcp_synack_type { + TCP_SYNACK_NORMAL = 0, + TCP_SYNACK_FASTOPEN = 1, + TCP_SYNACK_COOKIE = 2, +}; + +struct tcp_request_sock_ops { + u16 mss_clamp; + __u32 (*cookie_init_seq)(const struct sk_buff *, __u16 *); + struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *); + u32 (*init_seq)(const struct sk_buff *); + u32 (*init_ts_off)(const struct net *, const struct sk_buff *); + int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); +}; + +enum { + ETHTOOL_A_COALESCE_UNSPEC = 0, + ETHTOOL_A_COALESCE_HEADER = 1, + ETHTOOL_A_COALESCE_RX_USECS = 2, + ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 3, + ETHTOOL_A_COALESCE_RX_USECS_IRQ = 4, + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 5, + ETHTOOL_A_COALESCE_TX_USECS = 6, + ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 7, + ETHTOOL_A_COALESCE_TX_USECS_IRQ = 8, + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 9, + ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 10, + ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 11, + ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 12, + ETHTOOL_A_COALESCE_PKT_RATE_LOW = 13, + ETHTOOL_A_COALESCE_RX_USECS_LOW = 14, + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 15, + ETHTOOL_A_COALESCE_TX_USECS_LOW = 16, + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 17, + ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 18, + ETHTOOL_A_COALESCE_RX_USECS_HIGH = 19, + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 20, + ETHTOOL_A_COALESCE_TX_USECS_HIGH = 21, + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 22, + ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 23, + ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 24, + ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 25, + ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES = 26, + ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES = 27, + ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS = 28, + __ETHTOOL_A_COALESCE_CNT = 29, + ETHTOOL_A_COALESCE_MAX = 28, +}; + +struct coalesce_reply_data { + struct ethnl_reply_data base; + struct ethtool_coalesce coalesce; + struct kernel_ethtool_coalesce kernel_coalesce; + u32 supported_params; +}; + +enum nft_set_class { + NFT_SET_CLASS_O_1 = 0, + NFT_SET_CLASS_O_LOG_N = 1, + NFT_SET_CLASS_O_N = 2, +}; + +enum nft_set_flags { + NFT_SET_ANONYMOUS = 1, + NFT_SET_CONSTANT = 2, + NFT_SET_INTERVAL = 4, + NFT_SET_MAP = 8, + NFT_SET_TIMEOUT = 16, + NFT_SET_EVAL = 32, + NFT_SET_OBJECT = 64, + NFT_SET_CONCAT = 128, + NFT_SET_EXPR = 256, +}; + +enum nft_set_extensions { + NFT_SET_EXT_KEY = 0, + NFT_SET_EXT_KEY_END = 1, + NFT_SET_EXT_DATA = 2, + NFT_SET_EXT_FLAGS = 3, + NFT_SET_EXT_TIMEOUT = 4, + NFT_SET_EXT_EXPIRATION = 5, + NFT_SET_EXT_USERDATA = 6, + NFT_SET_EXT_EXPRESSIONS = 7, + NFT_SET_EXT_OBJREF = 8, + NFT_SET_EXT_NUM = 9, +}; + +union nft_pipapo_map_bucket; + +struct nft_pipapo_field { + unsigned int rules; + unsigned int bsize; + unsigned int rules_alloc; + u8 groups; + u8 bb; + unsigned long *lt; + union nft_pipapo_map_bucket *mt; +}; + +struct nft_pipapo_scratch; + +struct nft_pipapo_match { + u8 field_count; + unsigned int bsize_max; + struct nft_pipapo_scratch * __attribute__((btf_type_tag("percpu"))) *scratch; + struct callback_head rcu; + struct nft_pipapo_field f[0]; +}; + +struct nft_pipapo_scratch { + u8 map_index; + u32 align_off; + unsigned long map[0]; +}; + +struct nft_pipapo_elem; + +union nft_pipapo_map_bucket { + struct { + u32 to; + u32 n; + }; + struct nft_pipapo_elem *e; +}; + +struct nft_elem_priv {}; + +struct nft_set_ext { + u8 genmask; + u8 offset[9]; + char data[0]; +}; + +struct nft_pipapo_elem { + struct nft_elem_priv priv; + struct nft_set_ext ext; +}; + +struct nft_set_desc { + u32 ktype; + unsigned int klen; + u32 dtype; + unsigned int dlen; + u32 objtype; + unsigned int size; + u32 policy; + u32 gc_int; + u64 timeout; + u8 field_len[16]; + u8 field_count; + bool expr; +}; + +struct nft_set_ops; + +struct nft_set { + struct list_head list; + struct list_head bindings; + refcount_t refs; + struct nft_table *table; + possible_net_t net; + char *name; + u64 handle; + u32 ktype; + u32 dtype; + u32 objtype; + u32 size; + u8 field_len[16]; + u8 field_count; + u32 use; + atomic_t nelems; + u32 ndeact; + u64 timeout; + u32 gc_int; + u16 policy; + u16 udlen; + unsigned char *udata; + struct list_head pending_update; + long: 64; + long: 64; + long: 64; + long: 64; + const struct nft_set_ops *ops; + u16 flags: 13; + u16 dead: 1; + u16 genmask: 2; + u8 klen; + u8 dlen; + u8 num_exprs; + struct nft_expr *exprs[2]; + struct list_head catchall_list; + unsigned char data[0]; + long: 64; + long: 64; +}; + +struct nft_set_elem; + +struct nft_set_iter; + +struct nft_set_estimate; + +struct nft_set_ops { + bool (*lookup)(const struct net *, const struct nft_set *, const u32 *, const struct nft_set_ext **); + bool (*update)(struct nft_set *, const u32 *, struct nft_elem_priv * (*)(struct nft_set *, const struct nft_expr *, struct nft_regs *), const struct nft_expr *, struct nft_regs *, const struct nft_set_ext **); + bool (*delete)(const struct nft_set *, const u32 *); + int (*insert)(const struct net *, const struct nft_set *, const struct nft_set_elem *, struct nft_elem_priv **); + void (*activate)(const struct net *, const struct nft_set *, struct nft_elem_priv *); + struct nft_elem_priv * (*deactivate)(const struct net *, const struct nft_set *, const struct nft_set_elem *); + void (*flush)(const struct net *, const struct nft_set *, struct nft_elem_priv *); + void (*remove)(const struct net *, const struct nft_set *, struct nft_elem_priv *); + void (*walk)(const struct nft_ctx *, struct nft_set *, struct nft_set_iter *); + struct nft_elem_priv * (*get)(const struct net *, const struct nft_set *, const struct nft_set_elem *, unsigned int); + void (*commit)(struct nft_set *); + void (*abort)(const struct nft_set *); + u64 (*privsize)(const struct nlattr * const *, const struct nft_set_desc *); + bool (*estimate)(const struct nft_set_desc *, u32, struct nft_set_estimate *); + int (*init)(const struct nft_set *, const struct nft_set_desc *, const struct nlattr * const *); + void (*destroy)(const struct nft_ctx *, const struct nft_set *); + void (*gc_init)(const struct nft_set *); + unsigned int elemsize; +}; + +struct nft_set_elem { + union { + u32 buf[16]; + struct nft_data val; + } key; + union { + u32 buf[16]; + struct nft_data val; + } key_end; + union { + u32 buf[16]; + struct nft_data val; + } data; + struct nft_elem_priv *priv; +}; + +struct nft_set_iter { + u8 genmask; + unsigned int count; + unsigned int skip; + int err; + int (*fn)(const struct nft_ctx *, struct nft_set *, const struct nft_set_iter *, struct nft_elem_priv *); +}; + +struct nft_set_estimate { + u64 size; + enum nft_set_class lookup; + enum nft_set_class space; +}; + +struct nft_pipapo { + struct nft_pipapo_match __attribute__((btf_type_tag("rcu"))) *match; + struct nft_pipapo_match *clone; + int width; + bool dirty; + unsigned long last_gc; +}; + +enum { + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTREQUESTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + IPSTATS_MIB_OUTPKTS = 37, + __IPSTATS_MIB_MAX = 38, +}; + +enum { + INET_ECN_NOT_ECT = 0, + INET_ECN_ECT_1 = 1, + INET_ECN_ECT_0 = 2, + INET_ECN_CE = 3, + INET_ECN_MASK = 3, +}; + +struct inet6_protocol { + int (*handler)(struct sk_buff *); + int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); + unsigned int flags; + u32 secret; +}; + +enum { + MDBA_UNSPEC = 0, + MDBA_MDB = 1, + MDBA_ROUTER = 2, + __MDBA_MAX = 3, +}; + +enum { + MDBA_ROUTER_UNSPEC = 0, + MDBA_ROUTER_PORT = 1, + __MDBA_ROUTER_MAX = 2, +}; + +enum { + MDBA_ROUTER_PATTR_UNSPEC = 0, + MDBA_ROUTER_PATTR_TIMER = 1, + MDBA_ROUTER_PATTR_TYPE = 2, + MDBA_ROUTER_PATTR_INET_TIMER = 3, + MDBA_ROUTER_PATTR_INET6_TIMER = 4, + MDBA_ROUTER_PATTR_VID = 5, + __MDBA_ROUTER_PATTR_MAX = 6, +}; + +enum { + MDBA_MDB_UNSPEC = 0, + MDBA_MDB_ENTRY = 1, + __MDBA_MDB_MAX = 2, +}; + +enum { + MDBA_MDB_ENTRY_UNSPEC = 0, + MDBA_MDB_ENTRY_INFO = 1, + __MDBA_MDB_ENTRY_MAX = 2, +}; + +enum { + MDBA_MDB_EATTR_UNSPEC = 0, + MDBA_MDB_EATTR_TIMER = 1, + MDBA_MDB_EATTR_SRC_LIST = 2, + MDBA_MDB_EATTR_GROUP_MODE = 3, + MDBA_MDB_EATTR_SOURCE = 4, + MDBA_MDB_EATTR_RTPROT = 5, + MDBA_MDB_EATTR_DST = 6, + MDBA_MDB_EATTR_DST_PORT = 7, + MDBA_MDB_EATTR_VNI = 8, + MDBA_MDB_EATTR_IFINDEX = 9, + MDBA_MDB_EATTR_SRC_VNI = 10, + __MDBA_MDB_EATTR_MAX = 11, +}; + +enum { + MDBA_MDB_SRCLIST_UNSPEC = 0, + MDBA_MDB_SRCLIST_ENTRY = 1, + __MDBA_MDB_SRCLIST_MAX = 2, +}; + +enum { + MDBA_MDB_SRCATTR_UNSPEC = 0, + MDBA_MDB_SRCATTR_ADDRESS = 1, + MDBA_MDB_SRCATTR_TIMER = 2, + __MDBA_MDB_SRCATTR_MAX = 3, +}; + +enum { + MDBA_SET_ENTRY_UNSPEC = 0, + MDBA_SET_ENTRY = 1, + MDBA_SET_ENTRY_ATTRS = 2, + __MDBA_SET_ENTRY_MAX = 3, +}; + +enum { + MDBE_ATTR_UNSPEC = 0, + MDBE_ATTR_SOURCE = 1, + MDBE_ATTR_SRC_LIST = 2, + MDBE_ATTR_GROUP_MODE = 3, + MDBE_ATTR_RTPROT = 4, + MDBE_ATTR_DST = 5, + MDBE_ATTR_DST_PORT = 6, + MDBE_ATTR_VNI = 7, + MDBE_ATTR_IFINDEX = 8, + MDBE_ATTR_SRC_VNI = 9, + MDBE_ATTR_STATE_MASK = 10, + __MDBE_ATTR_MAX = 11, +}; + +enum { + MDBE_SRCATTR_UNSPEC = 0, + MDBE_SRCATTR_ADDRESS = 1, + __MDBE_SRCATTR_MAX = 2, +}; + +enum { + BR_VLFLAG_PER_PORT_STATS = 1, + BR_VLFLAG_ADDED_BY_SWITCHDEV = 2, + BR_VLFLAG_MCAST_ENABLED = 4, + BR_VLFLAG_GLOBAL_MCAST_ENABLED = 8, + BR_VLFLAG_NEIGH_SUPPRESS_ENABLED = 16, +}; + +enum { + MDBA_GET_ENTRY_UNSPEC = 0, + MDBA_GET_ENTRY = 1, + MDBA_GET_ENTRY_ATTRS = 2, + __MDBA_GET_ENTRY_MAX = 3, +}; + +struct net_bridge_group_src { + struct hlist_node node; + struct br_ip addr; + struct net_bridge_port_group *pg; + u8 flags; + u8 src_query_rexmit_cnt; + struct timer_list timer; + struct net_bridge *br; + struct net_bridge_mcast_gc mcast_gc; + struct callback_head rcu; +}; + +struct br_port_msg { + __u8 family; + __u32 ifindex; +}; + +struct br_mdb_entry; + +struct br_mdb_src_entry; + +struct br_mdb_config { + struct net_bridge *br; + struct net_bridge_port *p; + struct br_mdb_entry *entry; + struct br_ip group; + bool src_entry; + u8 filter_mode; + u16 nlflags; + struct br_mdb_src_entry *src_entries; + int num_src_entries; + u8 rt_protocol; +}; + +struct br_mdb_entry { + __u32 ifindex; + __u8 state; + __u8 flags; + __u16 vid; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } u; + __be16 proto; + } addr; +}; + +struct br_mdb_src_entry { + struct br_ip addr; +}; + +struct br_mdb_flush_desc { + u32 port_ifindex; + u16 vid; + u8 rt_protocol; + u8 state; + u8 state_mask; +}; + +typedef __u16 Elf32_Half; + +typedef __u32 Elf32_Addr; + +typedef __u32 Elf32_Off; + +struct elf32_hdr { + unsigned char e_ident[16]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +}; + +typedef struct elf32_hdr Elf32_Ehdr; + +struct elf32_phdr { + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Word p_filesz; + Elf32_Word p_memsz; + Elf32_Word p_flags; + Elf32_Word p_align; +}; + +typedef struct elf32_phdr Elf32_Phdr; + +typedef __u64 Elf64_Off; + +struct elf64_hdr { + unsigned char e_ident[16]; + Elf64_Half e_type; + Elf64_Half e_machine; + Elf64_Word e_version; + Elf64_Addr e_entry; + Elf64_Off e_phoff; + Elf64_Off e_shoff; + Elf64_Word e_flags; + Elf64_Half e_ehsize; + Elf64_Half e_phentsize; + Elf64_Half e_phnum; + Elf64_Half e_shentsize; + Elf64_Half e_shnum; + Elf64_Half e_shstrndx; +}; + +typedef struct elf64_hdr Elf64_Ehdr; + +struct elf64_phdr { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; +}; + +typedef struct elf64_phdr Elf64_Phdr; + +typedef struct elf32_note Elf32_Nhdr; + +struct e820_entry { + u64 addr; + u64 size; + enum e820_type type; +} __attribute__((packed)); + +union text_poke_insn { + u8 text[5]; + struct { + u8 opcode; + s32 disp; + } __attribute__((packed)); +}; + +enum insn_type { + CALL = 0, + NOP = 1, + JMP = 2, + RET = 3, + JCC = 4, +}; + +struct ssb_state { + struct ssb_state *shared_state; + raw_spinlock_t lock; + unsigned int disable_state; + unsigned long local_state; +}; + +enum idle_boot_override { + IDLE_NO_OVERRIDE = 0, + IDLE_HALT = 1, + IDLE_NOMWAIT = 2, + IDLE_POLL = 3, +}; + +enum { + UNAME26 = 131072, + ADDR_NO_RANDOMIZE = 262144, + FDPIC_FUNCPTRS = 524288, + MMAP_PAGE_ZERO = 1048576, + ADDR_COMPAT_LAYOUT = 2097152, + READ_IMPLIES_EXEC = 4194304, + ADDR_LIMIT_32BIT = 8388608, + SHORT_INODE = 16777216, + WHOLE_SECONDS = 33554432, + STICKY_TIMEOUTS = 67108864, + ADDR_LIMIT_3GB = 134217728, +}; + +enum { + DESC_TSS = 9, + DESC_LDT = 2, + DESCTYPE_S = 16, +}; + +enum tick_broadcast_mode { + TICK_BROADCAST_OFF = 0, + TICK_BROADCAST_ON = 1, + TICK_BROADCAST_FORCE = 2, +}; + +struct inactive_task_frame { + unsigned long r15; + unsigned long r14; + unsigned long r13; + unsigned long r12; + unsigned long bx; + unsigned long bp; + unsigned long ret_addr; +}; + +struct fork_frame { + struct inactive_task_frame frame; + struct pt_regs regs; +}; + +struct user_desc { + unsigned int entry_number; + unsigned int base_addr; + unsigned int limit; + unsigned int seg_32bit: 1; + unsigned int contents: 2; + unsigned int read_exec_only: 1; + unsigned int limit_in_pages: 1; + unsigned int seg_not_present: 1; + unsigned int useable: 1; + unsigned int lm: 1; +}; + +struct unwind_state { + struct stack_info stack_info; + unsigned long stack_mask; + struct task_struct *task; + int graph_idx; + struct llist_node *kr_cur; + bool error; + bool got_irq; + unsigned long *bp; + unsigned long *orig_sp; + unsigned long ip; + unsigned long *next_bp; + struct pt_regs *regs; +}; + +struct entry_stack { + char stack[4096]; +}; + +struct entry_stack_page { + struct entry_stack stack; +}; + +struct debug_store { + u64 bts_buffer_base; + u64 bts_index; + u64 bts_absolute_maximum; + u64 bts_interrupt_threshold; + u64 pebs_buffer_base; + u64 pebs_index; + u64 pebs_absolute_maximum; + u64 pebs_interrupt_threshold; + u64 pebs_event_reset[48]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct debug_store_buffers { + char bts_buffer[65536]; + char pebs_buffer[65536]; +}; + +struct cpu_entry_area { + char gdt[4096]; + struct entry_stack_page entry_stack_page; + struct tss_struct tss; + struct cea_exception_stacks estacks; + struct debug_store cpu_debug_store; + struct debug_store_buffers cpu_debug_buffers; +}; + +struct kernel_clone_args { + u64 flags; + int __attribute__((btf_type_tag("user"))) *pidfd; + int __attribute__((btf_type_tag("user"))) *child_tid; + int __attribute__((btf_type_tag("user"))) *parent_tid; + const char *name; + int exit_signal; + u32 kthread: 1; + u32 io_thread: 1; + u32 user_worker: 1; + u32 no_files: 1; + unsigned long stack; + unsigned long stack_size; + unsigned long tls; + pid_t *set_tid; + size_t set_tid_size; + int cgroup; + int idle; + int (*fn)(void *); + void *fn_arg; + struct cgroup *cgrp; + struct css_set *cset; +}; + +typedef struct ldttss_desc tss_desc; + +typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); + +typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); + +typedef void (*btf_trace_softirq_entry)(void *, unsigned int); + +typedef void (*btf_trace_softirq_exit)(void *, unsigned int); + +typedef void (*btf_trace_softirq_raise)(void *, unsigned int); + +typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); + +struct tasklet_head { + struct tasklet_struct *head; + struct tasklet_struct **tail; +}; + +struct smp_hotplug_thread { + struct task_struct * __attribute__((btf_type_tag("percpu"))) *store; + struct list_head list; + int (*thread_should_run)(unsigned int); + void (*thread_fn)(unsigned int); + void (*create)(unsigned int); + void (*setup)(unsigned int); + void (*cleanup)(unsigned int, bool); + void (*park)(unsigned int); + void (*unpark)(unsigned int); + bool selfparking; + const char *thread_comm; +}; + +struct trace_event_raw_irq_handler_entry { + struct trace_entry ent; + int irq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_irq_handler_exit { + struct trace_entry ent; + int irq; + int ret; + char __data[0]; +}; + +struct trace_event_raw_softirq { + struct trace_entry ent; + unsigned int vec; + char __data[0]; +}; + +struct trace_event_raw_tasklet { + struct trace_entry ent; + void *tasklet; + void *func; + char __data[0]; +}; + +struct trace_event_data_offsets_irq_handler_entry { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_irq_handler_exit {}; + +struct trace_event_data_offsets_softirq {}; + +struct trace_event_data_offsets_tasklet {}; + +struct misc_res { + u64 max; + atomic64_t usage; + atomic64_t events; +}; + +struct misc_cg { + struct cgroup_subsys_state css; + struct cgroup_file events_file; + struct misc_res res[0]; +}; + +enum misc_res_type { + MISC_CG_RES_TYPES = 0, +}; + +struct dyn_event; + +struct dyn_event_operations { + struct list_head list; + int (*create)(const char *); + int (*show)(struct seq_file *, struct dyn_event *); + bool (*is_busy)(struct dyn_event *); + int (*free)(struct dyn_event *); + bool (*match)(const char *, const char *, int, const char **, struct dyn_event *); +}; + +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; +}; + +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, +}; + +enum { + SYNTH_ERR_BAD_NAME = 0, + SYNTH_ERR_INVALID_CMD = 1, + SYNTH_ERR_INVALID_DYN_CMD = 2, + SYNTH_ERR_EVENT_EXISTS = 3, + SYNTH_ERR_TOO_MANY_FIELDS = 4, + SYNTH_ERR_INCOMPLETE_TYPE = 5, + SYNTH_ERR_INVALID_TYPE = 6, + SYNTH_ERR_INVALID_FIELD = 7, + SYNTH_ERR_INVALID_ARRAY_SPEC = 8, +}; + +enum { + TRACE_EVENT_FL_FILTERED = 1, + TRACE_EVENT_FL_CAP_ANY = 2, + TRACE_EVENT_FL_NO_SET_FILTER = 4, + TRACE_EVENT_FL_IGNORE_ENABLE = 8, + TRACE_EVENT_FL_TRACEPOINT = 16, + TRACE_EVENT_FL_DYNAMIC = 32, + TRACE_EVENT_FL_KPROBE = 64, + TRACE_EVENT_FL_UPROBE = 128, + TRACE_EVENT_FL_EPROBE = 256, + TRACE_EVENT_FL_FPROBE = 512, + TRACE_EVENT_FL_CUSTOM = 1024, +}; + +enum trace_iterator_flags { + TRACE_ITER_PRINT_PARENT = 1, + TRACE_ITER_SYM_OFFSET = 2, + TRACE_ITER_SYM_ADDR = 4, + TRACE_ITER_VERBOSE = 8, + TRACE_ITER_RAW = 16, + TRACE_ITER_HEX = 32, + TRACE_ITER_BIN = 64, + TRACE_ITER_BLOCK = 128, + TRACE_ITER_FIELDS = 256, + TRACE_ITER_PRINTK = 512, + TRACE_ITER_ANNOTATE = 1024, + TRACE_ITER_USERSTACKTRACE = 2048, + TRACE_ITER_SYM_USEROBJ = 4096, + TRACE_ITER_PRINTK_MSGONLY = 8192, + TRACE_ITER_CONTEXT_INFO = 16384, + TRACE_ITER_LATENCY_FMT = 32768, + TRACE_ITER_RECORD_CMD = 65536, + TRACE_ITER_RECORD_TGID = 131072, + TRACE_ITER_OVERWRITE = 262144, + TRACE_ITER_STOP_ON_FREE = 524288, + TRACE_ITER_IRQ_INFO = 1048576, + TRACE_ITER_MARKERS = 2097152, + TRACE_ITER_EVENT_FORK = 4194304, + TRACE_ITER_PAUSE_ON_TRACE = 8388608, + TRACE_ITER_HASH_PTR = 16777216, + TRACE_ITER_FUNCTION = 33554432, + TRACE_ITER_FUNC_FORK = 67108864, + TRACE_ITER_DISPLAY_GRAPH = 134217728, + TRACE_ITER_STACKTRACE = 268435456, +}; + +struct trace_dynamic_info { + u16 offset; + u16 len; +}; + +union trace_synth_field { + u8 as_u8; + u16 as_u16; + u32 as_u32; + u64 as_u64; + struct trace_dynamic_info as_dynamic; +}; + +struct synth_trace_event { + struct trace_entry ent; + union trace_synth_field fields[0]; +}; + +struct synth_field; + +struct synth_event { + struct dyn_event devent; + int ref; + char *name; + struct synth_field **fields; + unsigned int n_fields; + struct synth_field **dynamic_fields; + unsigned int n_dynamic_fields; + unsigned int n_u64; + struct trace_event_class class; + struct trace_event_call call; + struct tracepoint *tp; + struct module *mod; +}; + +struct synth_field { + char *type; + char *name; + size_t size; + unsigned int offset; + unsigned int field_pos; + bool is_signed; + bool is_string; + bool is_dynamic; + bool is_stack; +}; + +struct dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; +}; + +struct dynevent_cmd; + +typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); + +struct dynevent_cmd { + struct seq_buf seq; + const char *event_name; + unsigned int n_fields; + enum dynevent_type type; + dynevent_create_fn_t run_command; + void *private_data; +}; + +typedef int (*dynevent_check_arg_fn_t)(void *); + +struct dynevent_arg { + const char *str; + char separator; +}; + +struct synth_event_trace_state { + struct trace_event_buffer fbuffer; + struct synth_trace_event *entry; + struct trace_buffer *buffer; + struct synth_event *event; + unsigned int cur_field; + unsigned int n_u64; + bool disabled; + bool add_next; + bool add_name; +}; + +struct synth_field_desc { + const char *type; + const char *name; +}; + +struct callchain_cpus_entries { + struct callback_head callback_head; + struct perf_callchain_entry *cpu_entries[0]; +}; + +struct perf_event_mmap_page; + +struct perf_buffer { + refcount_t refcount; + struct callback_head callback_head; + int nr_pages; + int overwrite; + int paused; + atomic_t poll; + local_t head; + unsigned int nest; + local_t events; + local_t wakeup; + local_t lost; + long watermark; + long aux_watermark; + spinlock_t event_lock; + struct list_head event_list; + atomic_t mmap_count; + unsigned long mmap_locked; + struct user_struct *mmap_user; + long aux_head; + unsigned int aux_nest; + long aux_wakeup; + unsigned long aux_pgoff; + int aux_nr_pages; + int aux_overwrite; + atomic_t aux_mmap_count; + unsigned long aux_mmap_locked; + void (*free_aux)(void *); + refcount_t aux_refcount; + int aux_in_sampling; + void **aux_pages; + void *aux_priv; + struct perf_event_mmap_page *user_page; + void *data_pages[0]; +}; + +struct perf_event_mmap_page { + __u32 version; + __u32 compat_version; + __u32 lock; + __u32 index; + __s64 offset; + __u64 time_enabled; + __u64 time_running; + union { + __u64 capabilities; + struct { + __u64 cap_bit0: 1; + __u64 cap_bit0_is_deprecated: 1; + __u64 cap_user_rdpmc: 1; + __u64 cap_user_time: 1; + __u64 cap_user_time_zero: 1; + __u64 cap_user_time_short: 1; + __u64 cap_____res: 58; + }; + }; + __u16 pmc_width; + __u16 time_shift; + __u32 time_mult; + __u64 time_offset; + __u64 time_zero; + __u32 size; + __u32 __reserved_1; + __u64 time_cycles; + __u64 time_mask; + __u8 __reserved[928]; + __u64 data_head; + __u64 data_tail; + __u64 data_offset; + __u64 data_size; + __u64 aux_head; + __u64 aux_tail; + __u64 aux_offset; + __u64 aux_size; +}; + +struct perf_callchain_entry_ctx { + struct perf_callchain_entry *entry; + u32 max_stack; + u32 nr; + short contexts; + bool contexts_maxed; +}; + +struct vm_unmapped_area_info; + +typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); + +struct vm_unmapped_area_info { + unsigned long flags; + unsigned long length; + unsigned long low_limit; + unsigned long high_limit; + unsigned long align_mask; + unsigned long align_offset; +}; + +typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long); + +typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); + +typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); + +enum { + HUGETLB_SHMFS_INODE = 1, + HUGETLB_ANONHUGE_INODE = 2, +}; + +enum { + MM_FILEPAGES = 0, + MM_ANONPAGES = 1, + MM_SWAPENTS = 2, + MM_SHMEMPAGES = 3, + NR_MM_COUNTERS = 4, +}; + +enum zone_stat_item { + NR_FREE_PAGES = 0, + NR_ZONE_LRU_BASE = 1, + NR_ZONE_INACTIVE_ANON = 1, + NR_ZONE_ACTIVE_ANON = 2, + NR_ZONE_INACTIVE_FILE = 3, + NR_ZONE_ACTIVE_FILE = 4, + NR_ZONE_UNEVICTABLE = 5, + NR_ZONE_WRITE_PENDING = 6, + NR_MLOCK = 7, + NR_BOUNCE = 8, + NR_FREE_CMA_PAGES = 9, + NR_VM_ZONE_STAT_ITEMS = 10, +}; + +struct trace_event_raw_vm_unmapped_area { + struct trace_entry ent; + unsigned long addr; + unsigned long total_vm; + unsigned long flags; + unsigned long length; + unsigned long low_limit; + unsigned long high_limit; + unsigned long align_mask; + unsigned long align_offset; + char __data[0]; +}; + +struct trace_event_raw_vma_mas_szero { + struct trace_entry ent; + struct maple_tree *mt; + unsigned long start; + unsigned long end; + char __data[0]; +}; + +struct trace_event_raw_vma_store { + struct trace_entry ent; + struct maple_tree *mt; + struct vm_area_struct *vma; + unsigned long vm_start; + unsigned long vm_end; + char __data[0]; +}; + +struct trace_event_raw_exit_mmap { + struct trace_entry ent; + struct mm_struct *mm; + struct maple_tree *mt; + char __data[0]; +}; + +struct vm_special_mapping { + const char *name; + struct page **pages; + vm_fault_t (*fault)(const struct vm_special_mapping *, struct vm_area_struct *, struct vm_fault *); + int (*mremap)(const struct vm_special_mapping *, struct vm_area_struct *); +}; + +struct vma_iterator { + struct ma_state mas; +}; + +struct vma_prepare { + struct vm_area_struct *vma; + struct vm_area_struct *adj_next; + struct file *file; + struct address_space *mapping; + struct anon_vma *anon_vma; + struct vm_area_struct *insert; + struct vm_area_struct *remove; + struct vm_area_struct *remove2; +}; + +struct anon_vma_name { + struct kref kref; + char name[0]; +}; + +struct trace_event_data_offsets_vm_unmapped_area {}; + +struct trace_event_data_offsets_vma_mas_szero {}; + +struct trace_event_data_offsets_vma_store {}; + +struct trace_event_data_offsets_exit_mmap {}; + +enum proc_hidepid { + HIDEPID_OFF = 0, + HIDEPID_NO_ACCESS = 1, + HIDEPID_INVISIBLE = 2, + HIDEPID_NOT_PTRACEABLE = 4, +}; + +enum proc_pidonly { + PROC_PIDONLY_OFF = 0, + PROC_PIDONLY_ON = 1, +}; + +struct proc_fs_info { + struct pid_namespace *pid_ns; + struct dentry *proc_self; + struct dentry *proc_thread_self; + kgid_t pid_gid; + enum proc_hidepid hide_pid; + enum proc_pidonly pidonly; + struct callback_head rcu; +}; + +struct ext4_inode { + __le16 i_mode; + __le16 i_uid; + __le32 i_size_lo; + __le32 i_atime; + __le32 i_ctime; + __le32 i_mtime; + __le32 i_dtime; + __le16 i_gid; + __le16 i_links_count; + __le32 i_blocks_lo; + __le32 i_flags; + union { + struct { + __le32 l_i_version; + } linux1; + struct { + __u32 h_i_translator; + } hurd1; + struct { + __u32 m_i_reserved1; + } masix1; + } osd1; + __le32 i_block[15]; + __le32 i_generation; + __le32 i_file_acl_lo; + __le32 i_size_high; + __le32 i_obso_faddr; + union { + struct { + __le16 l_i_blocks_high; + __le16 l_i_file_acl_high; + __le16 l_i_uid_high; + __le16 l_i_gid_high; + __le16 l_i_checksum_lo; + __le16 l_i_reserved; + } linux2; + struct { + __le16 h_i_reserved1; + __u16 h_i_mode_high; + __u16 h_i_uid_high; + __u16 h_i_gid_high; + __u32 h_i_author; + } hurd2; + struct { + __le16 h_i_reserved1; + __le16 m_i_file_acl_high; + __u32 m_i_reserved2[2]; + } masix2; + } osd2; + __le16 i_extra_isize; + __le16 i_checksum_hi; + __le32 i_ctime_extra; + __le32 i_mtime_extra; + __le32 i_atime_extra; + __le32 i_crtime; + __le32 i_crtime_extra; + __le32 i_version_hi; + __le32 i_projid; +}; + +struct ext4_group_desc { + __le32 bg_block_bitmap_lo; + __le32 bg_inode_bitmap_lo; + __le32 bg_inode_table_lo; + __le16 bg_free_blocks_count_lo; + __le16 bg_free_inodes_count_lo; + __le16 bg_used_dirs_count_lo; + __le16 bg_flags; + __le32 bg_exclude_bitmap_lo; + __le16 bg_block_bitmap_csum_lo; + __le16 bg_inode_bitmap_csum_lo; + __le16 bg_itable_unused_lo; + __le16 bg_checksum; + __le32 bg_block_bitmap_hi; + __le32 bg_inode_bitmap_hi; + __le32 bg_inode_table_hi; + __le16 bg_free_blocks_count_hi; + __le16 bg_free_inodes_count_hi; + __le16 bg_used_dirs_count_hi; + __le16 bg_itable_unused_hi; + __le32 bg_exclude_bitmap_hi; + __le16 bg_block_bitmap_csum_hi; + __le16 bg_inode_bitmap_csum_hi; + __u32 bg_reserved; +}; + +typedef unsigned int __kernel_mode_t; + +typedef __kernel_mode_t mode_t; + +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; +}; + +struct pipe_buffer; + +struct pipe_inode_info { + struct mutex mutex; + wait_queue_head_t rd_wait; + wait_queue_head_t wr_wait; + unsigned int head; + unsigned int tail; + unsigned int max_usage; + unsigned int ring_size; + unsigned int nr_accounted; + unsigned int readers; + unsigned int writers; + unsigned int files; + unsigned int r_counter; + unsigned int w_counter; + bool poll_usage; + struct page *tmp_page; + struct fasync_struct *fasync_readers; + struct fasync_struct *fasync_writers; + struct pipe_buffer *bufs; + struct user_struct *user; +}; + +struct pipe_buf_operations; + +struct pipe_buffer { + struct page *page; + unsigned int offset; + unsigned int len; + const struct pipe_buf_operations *ops; + unsigned int flags; + unsigned long private; +}; + +struct pipe_buf_operations { + int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *); + void (*release)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*get)(struct pipe_inode_info *, struct pipe_buffer *); +}; + +enum iter_type { + ITER_UBUF = 0, + ITER_IOVEC = 1, + ITER_BVEC = 2, + ITER_KVEC = 3, + ITER_XARRAY = 4, + ITER_DISCARD = 5, +}; + +enum wb_stat_item { + WB_RECLAIMABLE = 0, + WB_WRITEBACK = 1, + WB_DIRTIED = 2, + WB_WRITTEN = 3, + NR_WB_STAT_ITEMS = 4, +}; + +struct fuse_read_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t read_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t write_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_io_priv; + +struct fuse_io_args { + union { + struct { + struct fuse_read_in in; + u64 attr_ver; + } read; + struct { + struct fuse_write_in in; + struct fuse_write_out out; + bool page_locked; + } write; + }; + struct fuse_args_pages ap; + struct fuse_io_priv *io; + struct fuse_file *ff; +}; + +struct fuse_writepage_args { + struct fuse_io_args ia; + struct rb_node writepages_entry; + struct list_head queue_entry; + struct fuse_writepage_args *next; + struct inode *inode; + struct fuse_sync_bucket *bucket; +}; + +struct fuse_io_priv { + struct kref refcnt; + int async; + spinlock_t lock; + unsigned int reqs; + ssize_t bytes; + size_t size; + __u64 offset; + bool write; + bool should_dirty; + int err; + struct kiocb *iocb; + struct completion *done; + bool blocking; +}; + +struct fuse_open_in { + uint32_t flags; + uint32_t open_flags; +}; + +typedef unsigned int iov_iter_extraction_t; + +struct fuse_lseek_in { + uint64_t fh; + uint64_t offset; + uint32_t whence; + uint32_t padding; +}; + +struct fuse_lseek_out { + uint64_t offset; +}; + +struct fuse_file_lock { + uint64_t start; + uint64_t end; + uint32_t type; + uint32_t pid; +}; + +struct fuse_lk_in { + uint64_t fh; + uint64_t owner; + struct fuse_file_lock lk; + uint32_t lk_flags; + uint32_t padding; +}; + +struct fuse_lk_out { + struct fuse_file_lock lk; +}; + +struct fuse_copy_file_range_in { + uint64_t fh_in; + uint64_t off_in; + uint64_t nodeid_out; + uint64_t fh_out; + uint64_t off_out; + uint64_t len; + uint64_t flags; +}; + +typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); + +struct fuse_fill_wb_data { + struct fuse_writepage_args *wpa; + struct fuse_file *ff; + struct inode *inode; + struct page **orig_pages; + unsigned int max_pages; +}; + +struct fuse_fsync_in { + uint64_t fh; + uint32_t fsync_flags; + uint32_t padding; +}; + +struct fuse_poll_out { + uint32_t revents; + uint32_t padding; +}; + +struct fuse_poll_in { + uint64_t fh; + uint64_t kh; + uint32_t flags; + uint32_t events; +}; + +struct fuse_notify_poll_wakeup_out { + uint64_t kh; +}; + +struct fuse_flush_in { + uint64_t fh; + uint32_t unused; + uint32_t padding; + uint64_t lock_owner; +}; + +struct fuse_fallocate_in { + uint64_t fh; + uint64_t offset; + uint64_t length; + uint32_t mode; + uint32_t padding; +}; + +struct fuse_bmap_out { + uint64_t block; +}; + +struct fuse_bmap_in { + uint64_t block; + uint32_t blocksize; + uint32_t padding; +}; + +struct vfs_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; +}; + +struct vfs_ns_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; + __le32 rootid; +}; + +struct cpu_vfs_cap_data { + __u32 magic_etc; + kuid_t rootid; + kernel_cap_t permitted; + kernel_cap_t inheritable; +}; + +enum io_uring_op { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_MSG_RING = 40, + IORING_OP_FSETXATTR = 41, + IORING_OP_SETXATTR = 42, + IORING_OP_FGETXATTR = 43, + IORING_OP_GETXATTR = 44, + IORING_OP_SOCKET = 45, + IORING_OP_URING_CMD = 46, + IORING_OP_SEND_ZC = 47, + IORING_OP_SENDMSG_ZC = 48, + IORING_OP_READ_MULTISHOT = 49, + IORING_OP_WAITID = 50, + IORING_OP_FUTEX_WAIT = 51, + IORING_OP_FUTEX_WAKE = 52, + IORING_OP_FUTEX_WAITV = 53, + IORING_OP_FIXED_FD_INSTALL = 54, + IORING_OP_FTRUNCATE = 55, + IORING_OP_LAST = 56, +}; + +struct io_cache_entry { + struct io_wq_work_node node; +}; + +struct io_rsrc_put { + u64 tag; + union { + void *rsrc; + struct file *file; + struct io_mapped_ubuf *buf; + }; +}; + +struct io_rsrc_node { + union { + struct io_cache_entry cache; + struct io_ring_ctx *ctx; + }; + int refs; + bool empty; + u16 type; + struct list_head node; + struct io_rsrc_put item; +}; + +struct io_mapped_ubuf { + u64 ubuf; + u64 ubuf_end; + unsigned int nr_bvecs; + unsigned long acct_pages; + struct bio_vec bvec[0]; +}; + +struct io_rsrc_data { + struct io_ring_ctx *ctx; + u64 **tags; + unsigned int nr; + u16 rsrc_type; + bool quiesce; +}; + +union futex_key { + struct { + u64 i_seq; + unsigned long pgoff; + unsigned int offset; + } shared; + struct { + union { + struct mm_struct *mm; + u64 __tmp; + }; + unsigned long address; + unsigned int offset; + } private; + struct { + u64 ptr; + unsigned long word; + unsigned int offset; + } both; +}; + +struct futex_pi_state { + struct list_head list; + struct rt_mutex_base pi_mutex; + struct task_struct *owner; + refcount_t refcount; + union futex_key key; +}; + +struct futex_waitv; + +struct io_futex { + struct file *file; + union { + u32 __attribute__((btf_type_tag("user"))) *uaddr; + struct futex_waitv __attribute__((btf_type_tag("user"))) *uwaitv; + }; + unsigned long futex_val; + unsigned long futex_mask; + unsigned long futexv_owned; + u32 futex_flags; + unsigned int futex_nr; + bool futexv_unqueued; +}; + +struct futex_waitv { + __u64 val; + __u64 uaddr; + __u32 flags; + __u32 __reserved; +}; + +struct wake_q_head; + +struct futex_q; + +typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); + +struct futex_q { + struct plist_node list; + struct task_struct *task; + spinlock_t *lock_ptr; + futex_wake_fn *wake; + void *wake_data; + union futex_key key; + struct futex_pi_state *pi_state; + struct rt_mutex_waiter *rt_waiter; + union futex_key *requeue_pi_key; + u32 bitset; + atomic_t requeue_state; +}; + +struct io_futex_data { + union { + struct futex_q q; + struct io_cache_entry cache; + }; + struct io_kiocb *req; +}; + +struct wake_q_head { + struct wake_q_node *first; + struct wake_q_node **lastp; +}; + +struct futex_vector { + struct futex_waitv w; + struct futex_q q; +}; + +struct futex_hash_bucket { + atomic_t waiters; + spinlock_t lock; + struct plist_head chain; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_cancel_data { + struct io_ring_ctx *ctx; + union { + u64 data; + struct file *file; + }; + u8 opcode; + u32 flags; + int seq; +}; + +typedef mpi_limb_t UWtype; + +typedef unsigned int UHWtype; + +typedef enum { + ZSTD_fast = 1, + ZSTD_dfast = 2, + ZSTD_greedy = 3, + ZSTD_lazy = 4, + ZSTD_lazy2 = 5, + ZSTD_btlazy2 = 6, + ZSTD_btopt = 7, + ZSTD_btultra = 8, + ZSTD_btultra2 = 9, +} ZSTD_strategy; + +typedef struct { + unsigned int windowLog; + unsigned int chainLog; + unsigned int hashLog; + unsigned int searchLog; + unsigned int minMatch; + unsigned int targetLength; + ZSTD_strategy strategy; +} ZSTD_compressionParameters; + +typedef struct { + int contentSizeFlag; + int checksumFlag; + int noDictIDFlag; +} ZSTD_frameParameters; + +typedef struct { + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; +} ZSTD_parameters; + +typedef enum { + ZSTDcs_created = 0, + ZSTDcs_init = 1, + ZSTDcs_ongoing = 2, + ZSTDcs_ending = 3, +} ZSTD_compressionStage_e; + +typedef enum { + ZSTD_dictDefaultAttach = 0, + ZSTD_dictForceAttach = 1, + ZSTD_dictForceCopy = 2, + ZSTD_dictForceLoad = 3, +} ZSTD_dictAttachPref_e; + +typedef enum { + ZSTD_ps_auto = 0, + ZSTD_ps_enable = 1, + ZSTD_ps_disable = 2, +} ZSTD_paramSwitch_e; + +typedef struct { + ZSTD_paramSwitch_e enableLdm; + U32 hashLog; + U32 bucketSizeLog; + U32 minMatchLength; + U32 hashRateLog; + U32 windowLog; +} ldmParams_t; + +typedef enum { + ZSTD_sf_noBlockDelimiters = 0, + ZSTD_sf_explicitBlockDelimiters = 1, +} ZSTD_sequenceFormat_e; + +struct ZSTD_CCtx_params_s { + ZSTD_format_e format; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; + int compressionLevel; + int forceWindow; + size_t targetCBlockSize; + int srcSizeHint; + ZSTD_dictAttachPref_e attachDictPref; + ZSTD_paramSwitch_e literalCompressionMode; + int nbWorkers; + size_t jobSize; + int overlapLog; + int rsyncable; + ldmParams_t ldmParams; + int enableDedicatedDictSearch; + ZSTD_bufferMode_e inBufferMode; + ZSTD_bufferMode_e outBufferMode; + ZSTD_sequenceFormat_e blockDelimiters; + int validateSequences; + ZSTD_paramSwitch_e useBlockSplitter; + ZSTD_paramSwitch_e useRowMatchFinder; + int deterministicRefPrefix; + ZSTD_customMem customMem; +}; + +typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params; + +typedef enum { + ZSTD_cwksp_alloc_objects = 0, + ZSTD_cwksp_alloc_buffers = 1, + ZSTD_cwksp_alloc_aligned = 2, +} ZSTD_cwksp_alloc_phase_e; + +typedef enum { + ZSTD_cwksp_dynamic_alloc = 0, + ZSTD_cwksp_static_alloc = 1, +} ZSTD_cwksp_static_alloc_e; + +typedef struct { + void *workspace; + void *workspaceEnd; + void *objectEnd; + void *tableEnd; + void *tableValidEnd; + void *allocStart; + BYTE allocFailed; + int workspaceOversizedDuration; + ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; +} ZSTD_cwksp; + +struct POOL_ctx_s; + +typedef struct POOL_ctx_s ZSTD_threadPool; + +typedef struct { + unsigned int offset; + unsigned int litLength; + unsigned int matchLength; + unsigned int rep; +} ZSTD_Sequence; + +typedef struct { + int collectSequences; + ZSTD_Sequence *seqStart; + size_t seqIndex; + size_t maxSequences; +} SeqCollector; + +typedef enum { + ZSTD_llt_none = 0, + ZSTD_llt_literalLength = 1, + ZSTD_llt_matchLength = 2, +} ZSTD_longLengthType_e; + +struct seqDef_s; + +typedef struct seqDef_s seqDef; + +typedef struct { + seqDef *sequencesStart; + seqDef *sequences; + BYTE *litStart; + BYTE *lit; + BYTE *llCode; + BYTE *mlCode; + BYTE *ofCode; + size_t maxNbSeq; + size_t maxNbLit; + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; +} seqStore_t; + +typedef struct { + const BYTE *nextSrc; + const BYTE *base; + const BYTE *dictBase; + U32 dictLimit; + U32 lowLimit; + U32 nbOverflowCorrections; +} ZSTD_window_t; + +typedef struct { + U32 offset; + U32 checksum; +} ldmEntry_t; + +typedef struct { + const BYTE *split; + U32 hash; + U32 checksum; + ldmEntry_t *bucket; +} ldmMatchCandidate_t; + +typedef struct { + ZSTD_window_t window; + ldmEntry_t *hashTable; + U32 loadedDictEnd; + BYTE *bucketOffsets; + size_t splitIndices[64]; + ldmMatchCandidate_t matchCandidates[64]; +} ldmState_t; + +typedef struct { + U32 offset; + U32 litLength; + U32 matchLength; +} rawSeq; + +typedef struct { + rawSeq *seq; + size_t pos; + size_t posInSequence; + size_t size; + size_t capacity; +} rawSeqStore_t; + +typedef size_t HUF_CElt; + +typedef enum { + HUF_repeat_none = 0, + HUF_repeat_check = 1, + HUF_repeat_valid = 2, +} HUF_repeat; + +typedef struct { + HUF_CElt CTable[257]; + HUF_repeat repeatMode; +} ZSTD_hufCTables_t; + +typedef unsigned int FSE_CTable; + +typedef enum { + FSE_repeat_none = 0, + FSE_repeat_check = 1, + FSE_repeat_valid = 2, +} FSE_repeat; + +typedef struct { + FSE_CTable offcodeCTable[193]; + FSE_CTable matchlengthCTable[363]; + FSE_CTable litlengthCTable[329]; + FSE_repeat offcode_repeatMode; + FSE_repeat matchlength_repeatMode; + FSE_repeat litlength_repeatMode; +} ZSTD_fseCTables_t; + +typedef struct { + ZSTD_hufCTables_t huf; + ZSTD_fseCTables_t fse; +} ZSTD_entropyCTables_t; + +typedef struct { + ZSTD_entropyCTables_t entropy; + U32 rep[3]; +} ZSTD_compressedBlockState_t; + +typedef struct { + U32 off; + U32 len; +} ZSTD_match_t; + +typedef struct { + int price; + U32 off; + U32 mlen; + U32 litlen; + U32 rep[3]; +} ZSTD_optimal_t; + +typedef enum { + zop_dynamic = 0, + zop_predef = 1, +} ZSTD_OptPrice_e; + +typedef struct { + unsigned int *litFreq; + unsigned int *litLengthFreq; + unsigned int *matchLengthFreq; + unsigned int *offCodeFreq; + ZSTD_match_t *matchTable; + ZSTD_optimal_t *priceTable; + U32 litSum; + U32 litLengthSum; + U32 matchLengthSum; + U32 offCodeSum; + U32 litSumBasePrice; + U32 litLengthSumBasePrice; + U32 matchLengthSumBasePrice; + U32 offCodeSumBasePrice; + ZSTD_OptPrice_e priceType; + const ZSTD_entropyCTables_t *symbolCosts; + ZSTD_paramSwitch_e literalCompressionMode; +} optState_t; + +struct ZSTD_matchState_t; + +typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +struct ZSTD_matchState_t { + ZSTD_window_t window; + U32 loadedDictEnd; + U32 nextToUpdate; + U32 hashLog3; + U32 rowHashLog; + U16 *tagTable; + U32 hashCache[8]; + U32 *hashTable; + U32 *hashTable3; + U32 *chainTable; + U32 forceNonContiguous; + int dedicatedDictSearch; + optState_t opt; + const ZSTD_matchState_t *dictMatchState; + ZSTD_compressionParameters cParams; + const rawSeqStore_t *ldmSeqStore; +}; + +typedef struct { + ZSTD_compressedBlockState_t *prevCBlock; + ZSTD_compressedBlockState_t *nextCBlock; + ZSTD_matchState_t matchState; +} ZSTD_blockState_t; + +typedef enum { + ZSTDb_not_buffered = 0, + ZSTDb_buffered = 1, +} ZSTD_buffered_policy_e; + +typedef enum { + zcss_init = 0, + zcss_load = 1, + zcss_flush = 2, +} ZSTD_cStreamStage; + +struct ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; + +typedef enum { + ZSTD_dct_auto = 0, + ZSTD_dct_rawContent = 1, + ZSTD_dct_fullDict = 2, +} ZSTD_dictContentType_e; + +struct ZSTD_CDict_s; + +typedef struct ZSTD_CDict_s ZSTD_CDict; + +typedef struct { + void *dictBuffer; + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; + ZSTD_CDict *cdict; +} ZSTD_localDict; + +struct ZSTD_prefixDict_s { + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; +}; + +typedef struct ZSTD_prefixDict_s ZSTD_prefixDict; + +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[128]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; + +typedef struct { + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[133]; + size_t fseTablesSize; + size_t lastCountSize; +} ZSTD_fseCTablesMetadata_t; + +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; + +typedef struct { + seqStore_t fullSeqStoreChunk; + seqStore_t firstHalfSeqStore; + seqStore_t secondHalfSeqStore; + seqStore_t currSeqStore; + seqStore_t nextSeqStore; + U32 partitions[196]; + ZSTD_entropyCTablesMetadata_t entropyMetadata; +} ZSTD_blockSplitCtx; + +struct ZSTD_CCtx_s { + ZSTD_compressionStage_e stage; + int cParamsChanged; + int bmi2; + ZSTD_CCtx_params requestedParams; + ZSTD_CCtx_params appliedParams; + ZSTD_CCtx_params simpleApiParams; + U32 dictID; + size_t dictContentSize; + ZSTD_cwksp workspace; + size_t blockSize; + unsigned long long pledgedSrcSizePlusOne; + unsigned long long consumedSrcSize; + unsigned long long producedCSize; + struct xxh64_state xxhState; + ZSTD_customMem customMem; + ZSTD_threadPool *pool; + size_t staticSize; + SeqCollector seqCollector; + int isFirstBlock; + int initialized; + seqStore_t seqStore; + ldmState_t ldmState; + rawSeq *ldmSequences; + size_t maxNbLdmSequences; + rawSeqStore_t externSeqStore; + ZSTD_blockState_t blockState; + U32 *entropyWorkspace; + ZSTD_buffered_policy_e bufferedPolicy; + char *inBuff; + size_t inBuffSize; + size_t inToCompress; + size_t inBuffPos; + size_t inBuffTarget; + char *outBuff; + size_t outBuffSize; + size_t outBuffContentSize; + size_t outBuffFlushedSize; + ZSTD_cStreamStage streamStage; + U32 frameEnded; + ZSTD_inBuffer expectedInBuffer; + size_t expectedOutBufferSize; + ZSTD_localDict localDict; + const ZSTD_CDict *cdict; + ZSTD_prefixDict prefixDict; + ZSTD_blockSplitCtx blockSplitCtx; +}; + +typedef struct ZSTD_CCtx_s ZSTD_CCtx; + +typedef enum { + ZSTD_reset_session_only = 1, + ZSTD_reset_parameters = 2, + ZSTD_reset_session_and_parameters = 3, +} ZSTD_ResetDirective; + +typedef enum { + ZSTD_c_compressionLevel = 100, + ZSTD_c_windowLog = 101, + ZSTD_c_hashLog = 102, + ZSTD_c_chainLog = 103, + ZSTD_c_searchLog = 104, + ZSTD_c_minMatch = 105, + ZSTD_c_targetLength = 106, + ZSTD_c_strategy = 107, + ZSTD_c_enableLongDistanceMatching = 160, + ZSTD_c_ldmHashLog = 161, + ZSTD_c_ldmMinMatch = 162, + ZSTD_c_ldmBucketSizeLog = 163, + ZSTD_c_ldmHashRateLog = 164, + ZSTD_c_contentSizeFlag = 200, + ZSTD_c_checksumFlag = 201, + ZSTD_c_dictIDFlag = 202, + ZSTD_c_nbWorkers = 400, + ZSTD_c_jobSize = 401, + ZSTD_c_overlapLog = 402, + ZSTD_c_experimentalParam1 = 500, + ZSTD_c_experimentalParam2 = 10, + ZSTD_c_experimentalParam3 = 1000, + ZSTD_c_experimentalParam4 = 1001, + ZSTD_c_experimentalParam5 = 1002, + ZSTD_c_experimentalParam6 = 1003, + ZSTD_c_experimentalParam7 = 1004, + ZSTD_c_experimentalParam8 = 1005, + ZSTD_c_experimentalParam9 = 1006, + ZSTD_c_experimentalParam10 = 1007, + ZSTD_c_experimentalParam11 = 1008, + ZSTD_c_experimentalParam12 = 1009, + ZSTD_c_experimentalParam13 = 1010, + ZSTD_c_experimentalParam14 = 1011, + ZSTD_c_experimentalParam15 = 1012, +} ZSTD_cParameter; + +typedef ZSTD_CCtx ZSTD_CStream; + +typedef ZSTD_parameters zstd_parameters; + +typedef ZSTD_CCtx zstd_cctx; + +typedef ZSTD_CStream zstd_cstream; + +typedef ZSTD_compressionParameters zstd_compression_parameters; + +typedef ZSTD_outBuffer zstd_out_buffer; + +typedef ZSTD_inBuffer zstd_in_buffer; + +struct raid6_recov_calls { + void (*data2)(int, size_t, int, int, void **); + void (*datap)(int, size_t, int, void **); + int (*valid)(); + const char *name; + int priority; +}; + +struct cpu_rmap { + struct kref refcount; + u16 size; + void **obj; + struct { + u16 index; + u16 dist; + } near[0]; +}; + +struct irq_glue { + struct irq_affinity_notify notify; + struct cpu_rmap *rmap; + u16 index; +}; + +struct acpi_device_physical_node { + unsigned int node_id; + struct list_head node; + struct device *dev; + bool put_online: 1; +}; + +struct acpi_common_descriptor { + void *common_pointer; + u8 descriptor_type; +}; + +union acpi_descriptor { + struct acpi_common_descriptor common; + union acpi_operand_object object; + struct acpi_namespace_node node; + union acpi_parse_object op; +}; + +typedef u32 acpi_mutex_handle; + +struct virtio_device_id { + __u32 device; + __u32 vendor; +}; + +struct virtio_pci_legacy_device { + struct pci_dev *pci_dev; + u8 *isr; + void *ioaddr; + struct virtio_device_id id; +}; + +struct probe; + +struct kobj_map { + struct probe *probes[255]; + struct mutex *lock; +}; + +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); + +struct probe { + struct probe *next; + dev_t dev; + unsigned long range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; +}; + +struct pr_keys { + u32 generation; + u32 num_keys; + u64 keys[0]; +}; + +struct pr_held_reservation { + u64 key; + u32 generation; + enum pr_type type; }; struct nvme_command; @@ -87946,7 +63457,7 @@ struct nvme_core_quirk_entry { }; enum nvme_disposition { - COMPLETE___2 = 0, + COMPLETE = 0, RETRY = 1, FAILOVER = 2, AUTHENTICATE = 3, @@ -88085,6 +63596,13 @@ enum { NVME_CMD_SGL_ALL = 192, }; +enum hctx_type { + HCTX_TYPE_DEFAULT = 0, + HCTX_TYPE_READ = 1, + HCTX_TYPE_POLL = 2, + HCTX_MAX_TYPES = 3, +}; + enum nvme_ctrl_flags { NVME_CTRL_FAILFAST_EXPIRED = 0, NVME_CTRL_ADMIN_Q_STOPPED = 1, @@ -88138,6 +63656,12 @@ enum { NVME_SUBMIT_RETRY = 8, }; +enum { + BLK_MQ_REQ_NOWAIT = 1, + BLK_MQ_REQ_RESERVED = 2, + BLK_MQ_REQ_PM = 4, +}; + enum { NVME_CMD_EFFECTS_CSUPP = 1, NVME_CMD_EFFECTS_LBCC = 2, @@ -88251,6 +63775,67 @@ enum { NVME_ID_CNS_UUID_LIST = 23, }; +enum { + NVME_CC_ENABLE = 1, + NVME_CC_EN_SHIFT = 0, + NVME_CC_CSS_SHIFT = 4, + NVME_CC_MPS_SHIFT = 7, + NVME_CC_AMS_SHIFT = 11, + NVME_CC_SHN_SHIFT = 14, + NVME_CC_IOSQES_SHIFT = 16, + NVME_CC_IOCQES_SHIFT = 20, + NVME_CC_CSS_NVM = 0, + NVME_CC_CSS_CSI = 96, + NVME_CC_CSS_MASK = 112, + NVME_CC_AMS_RR = 0, + NVME_CC_AMS_WRRU = 2048, + NVME_CC_AMS_VS = 14336, + NVME_CC_SHN_NONE = 0, + NVME_CC_SHN_NORMAL = 16384, + NVME_CC_SHN_ABRUPT = 32768, + NVME_CC_SHN_MASK = 49152, + NVME_CC_IOSQES = 393216, + NVME_CC_IOCQES = 4194304, + NVME_CC_CRIME = 16777216, +}; + +enum { + NVME_REG_CAP = 0, + NVME_REG_VS = 8, + NVME_REG_INTMS = 12, + NVME_REG_INTMC = 16, + NVME_REG_CC = 20, + NVME_REG_CSTS = 28, + NVME_REG_NSSR = 32, + NVME_REG_AQA = 36, + NVME_REG_ASQ = 40, + NVME_REG_ACQ = 48, + NVME_REG_CMBLOC = 56, + NVME_REG_CMBSZ = 60, + NVME_REG_BPINFO = 64, + NVME_REG_BPRSEL = 68, + NVME_REG_BPMBL = 72, + NVME_REG_CMBMSC = 80, + NVME_REG_CRTO = 104, + NVME_REG_PMRCAP = 3584, + NVME_REG_PMRCTL = 3588, + NVME_REG_PMRSTS = 3592, + NVME_REG_PMREBS = 3596, + NVME_REG_PMRSWTP = 3600, + NVME_REG_DBS = 4096, +}; + +enum { + NVME_CSTS_RDY = 1, + NVME_CSTS_CFS = 2, + NVME_CSTS_NSSRO = 16, + NVME_CSTS_PP = 32, + NVME_CSTS_SHST_NORMAL = 0, + NVME_CSTS_SHST_OCCUR = 4, + NVME_CSTS_SHST_CMPLT = 8, + NVME_CSTS_SHST_MASK = 12, +}; + enum nvme_quirks { NVME_QUIRK_STRIPE_SIZE = 1, NVME_QUIRK_IDENTIFY_CNS = 2, @@ -88443,6 +64028,12 @@ enum { NVME_NSTAT_NRDY = 1, }; +enum { + GENHD_FL_REMOVABLE = 1, + GENHD_FL_HIDDEN = 2, + GENHD_FL_NO_PART = 4, +}; + enum { NVME_ID_NS_NVM_STS_MASK = 127, NVME_ID_NS_NVM_GUARD_SHIFT = 7, @@ -88757,6 +64348,44 @@ struct nvme_id_ns_nvm { __u8 rsvd268[3828]; }; +struct blk_integrity_profile; + +struct blk_integrity { + const struct blk_integrity_profile *profile; + unsigned char flags; + unsigned char tuple_size; + unsigned char pi_offset; + unsigned char interval_exp; + unsigned char tag_size; +}; + +struct blk_integrity_iter; + +typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *); + +typedef void integrity_prepare_fn(struct request *); + +typedef void integrity_complete_fn(struct request *, unsigned int); + +struct blk_integrity_profile { + integrity_processing_fn *generate_fn; + integrity_processing_fn *verify_fn; + integrity_prepare_fn *prepare_fn; + integrity_complete_fn *complete_fn; + const char *name; +}; + +struct blk_integrity_iter { + void *prot_buf; + void *data_buf; + sector_t seed; + unsigned int data_size; + unsigned short interval; + unsigned char tuple_size; + unsigned char pi_offset; + const char *disk_name; +}; + struct trace_event_data_offsets_nvme_setup_cmd {}; struct trace_event_data_offsets_nvme_complete_rq {}; @@ -88777,247 +64406,7187 @@ struct nvme_feat_auto_pst { __le64 entries[32]; }; -struct iwl_power_vec_entry { - struct iwl_powertable_cmd cmd; - u8 no_dtim; +enum iwl_table_type___2 { + LQ_NONE___2 = 0, + LQ_G = 1, + LQ_A = 2, + LQ_SISO = 3, + LQ_MIMO2 = 4, + LQ_MIMO3 = 5, + LQ_MAX___2 = 6, +}; + +enum { + IWL_RATE_1M_INDEX___2 = 0, + IWL_RATE_2M_INDEX___2 = 1, + IWL_RATE_5M_INDEX___2 = 2, + IWL_RATE_11M_INDEX___2 = 3, + IWL_RATE_6M_INDEX___2 = 4, + IWL_RATE_9M_INDEX___2 = 5, + IWL_RATE_12M_INDEX___2 = 6, + IWL_RATE_18M_INDEX___2 = 7, + IWL_RATE_24M_INDEX___2 = 8, + IWL_RATE_36M_INDEX___2 = 9, + IWL_RATE_48M_INDEX___2 = 10, + IWL_RATE_54M_INDEX___2 = 11, + IWL_RATE_60M_INDEX___2 = 12, + IWL_RATE_COUNT___2 = 13, + IWL_RATE_COUNT_LEGACY___2 = 12, + IWL_RATE_INVM_INDEX___2 = 13, + IWL_RATE_INVALID___2 = 13, +}; + +enum { + IWL_FIRST_OFDM_RATE___2 = 4, + IWL_LAST_OFDM_RATE = 12, + IWL_FIRST_CCK_RATE___2 = 0, + IWL_LAST_CCK_RATE___2 = 3, +}; + +struct iwl_rate_scale_data___2 { + u64 data; + s32 success_counter; + s32 success_ratio; + s32 counter; + s32 average_tpt; + unsigned long stamp; +}; + +struct iwl_scale_tbl_info___2 { + enum iwl_table_type___2 lq_type; + u8 ant_type; + u8 is_SGI; + u8 is_ht40; + u8 is_dup; + u8 action; + u8 max_search; + const u16 *expected_tpt; + u32 current_rate; + struct iwl_rate_scale_data___2 win[13]; +}; + +struct iwl_traffic_load { + unsigned long time_stamp; + u32 packet_count[20]; + u32 total; + u8 queue_count; + u8 head; +}; + +struct iwl_lq_sta___2 { + u8 active_tbl; + u8 enable_counter; + u8 stay_in_tbl; + u8 search_better_tbl; + s32 last_tpt; + u32 table_count_limit; + u32 max_failure_limit; + u32 max_success_limit; + u32 table_count; + u32 total_failed; + u32 total_success; + u64 flush_timer; + u8 action_counter; + u8 is_green; + u8 is_dup; + int: 0; + enum nl80211_band band; + u32 supp_rates; + u16 active_legacy_rate; + u16 active_siso_rate; + u16 active_mimo2_rate; + u16 active_mimo3_rate; + s8 max_rate_idx; + u8 missed_rate_counter; + struct iwl_link_quality_cmd lq; + long: 0; + struct iwl_scale_tbl_info___2 lq_info[2]; + struct iwl_traffic_load load[8]; + u8 tx_agg_tid_en; + long: 0; + struct iwl_priv *drv; + int last_txrate_idx; + u32 last_rate_n_flags; + u8 is_agg; + u8 last_bt_traffic; + long: 0; } __attribute__((packed)); -struct quirk_entry { - u16 vid; - u16 pid; - u32 flags; +struct iwl_station_priv { + struct iwl_rxon_context *ctx; + struct iwl_lq_sta___2 lq_sta; + atomic_t pending_frames; + bool client; + bool asleep; + u8 max_agg_bufsize; + u8 sta_id; }; -struct input_dev_poller { - void (*poll)(struct input_dev *); - unsigned int poll_interval; - unsigned int poll_interval_max; - unsigned int poll_interval_min; - struct input_dev *input; - struct delayed_work work; +struct iwl_wep_cmd { + u8 num_keys; + u8 global_key_type; + u8 flags; + u8 reserved; + struct iwl_wep_key key[0]; }; -struct ir_raw_handler { +struct iwl_add_sta_resp { + u8 status; +}; + +struct iwl_rem_sta_cmd { + u8 num_sta; + u8 reserved[3]; + u8 addr[6]; + u8 reserved2[2]; +}; + +struct iwl_rem_sta_resp { + u8 status; +}; + +struct iwl_vif_priv { + struct iwl_rxon_context *ctx; + u8 ibss_bssid_sta_id; +}; + +enum rtw_chip_type { + RTW_CHIP_TYPE_8822B = 0, + RTW_CHIP_TYPE_8822C = 1, + RTW_CHIP_TYPE_8723D = 2, + RTW_CHIP_TYPE_8821C = 3, +}; + +enum rtw_tx_queue_type { + RTW_TX_QUEUE_BK = 0, + RTW_TX_QUEUE_BE = 1, + RTW_TX_QUEUE_VI = 2, + RTW_TX_QUEUE_VO = 3, + RTW_TX_QUEUE_BCN = 4, + RTW_TX_QUEUE_MGMT = 5, + RTW_TX_QUEUE_HI0 = 6, + RTW_TX_QUEUE_H2C = 7, + RTK_MAX_TX_QUEUE_NUM = 8, +}; + +enum rtw_tx_desc_queue_select { + TX_DESC_QSEL_TID0 = 0, + TX_DESC_QSEL_TID1 = 1, + TX_DESC_QSEL_TID2 = 2, + TX_DESC_QSEL_TID3 = 3, + TX_DESC_QSEL_TID4 = 4, + TX_DESC_QSEL_TID5 = 5, + TX_DESC_QSEL_TID6 = 6, + TX_DESC_QSEL_TID7 = 7, + TX_DESC_QSEL_TID8 = 8, + TX_DESC_QSEL_TID9 = 9, + TX_DESC_QSEL_TID10 = 10, + TX_DESC_QSEL_TID11 = 11, + TX_DESC_QSEL_TID12 = 12, + TX_DESC_QSEL_TID13 = 13, + TX_DESC_QSEL_TID14 = 14, + TX_DESC_QSEL_TID15 = 15, + TX_DESC_QSEL_BEACON = 16, + TX_DESC_QSEL_HIGH = 17, + TX_DESC_QSEL_MGMT = 18, + TX_DESC_QSEL_H2C = 19, +}; + +enum rtw_fw_feature { + FW_FEATURE_SIG = 1, + FW_FEATURE_LPS_C2H = 2, + FW_FEATURE_LCLK = 4, + FW_FEATURE_PG = 8, + FW_FEATURE_TX_WAKE = 16, + FW_FEATURE_BCN_FILTER = 32, + FW_FEATURE_NOTIFY_SCAN = 64, + FW_FEATURE_ADAPTIVITY = 128, + FW_FEATURE_SCAN_OFFLOAD = 256, + FW_FEATURE_MAX = 2147483648, +}; + +enum ieee80211_ac_numbers { + IEEE80211_AC_VO = 0, + IEEE80211_AC_VI = 1, + IEEE80211_AC_BE = 2, + IEEE80211_AC_BK = 3, +}; + +enum rtw_rx_queue_type { + RTW_RX_QUEUE_MPDU = 0, + RTW_RX_QUEUE_C2H = 1, + RTK_MAX_RX_QUEUE_NUM = 2, +}; + +enum rtw_pci_flags { + RTW_PCI_FLAG_NAPI_RUNNING = 0, + NUM_OF_RTW_PCI_FLAGS = 1, +}; + +enum { + NAPI_STATE_SCHED = 0, + NAPI_STATE_MISSED = 1, + NAPI_STATE_DISABLE = 2, + NAPI_STATE_NPSVC = 3, + NAPI_STATE_LISTED = 4, + NAPI_STATE_NO_BUSY_POLL = 5, + NAPI_STATE_IN_BUSY_POLL = 6, + NAPI_STATE_PREFER_BUSY_POLL = 7, + NAPI_STATE_THREADED = 8, + NAPI_STATE_SCHED_THREADED = 9, +}; + +enum rtw_chip_ver { + RTW_CHIP_VER_CUT_A = 0, + RTW_CHIP_VER_CUT_B = 1, + RTW_CHIP_VER_CUT_C = 2, + RTW_CHIP_VER_CUT_D = 3, + RTW_CHIP_VER_CUT_E = 4, + RTW_CHIP_VER_CUT_F = 5, + RTW_CHIP_VER_CUT_G = 6, +}; + +enum rtw_ip_sel { + RTW_IP_SEL_PHY = 0, + RTW_IP_SEL_MAC = 1, + RTW_IP_SEL_DBI = 2, + RTW_IP_SEL_UNDEF = 65535, +}; + +enum mac80211_tx_info_flags { + IEEE80211_TX_CTL_REQ_TX_STATUS = 1, + IEEE80211_TX_CTL_ASSIGN_SEQ = 2, + IEEE80211_TX_CTL_NO_ACK = 4, + IEEE80211_TX_CTL_CLEAR_PS_FILT = 8, + IEEE80211_TX_CTL_FIRST_FRAGMENT = 16, + IEEE80211_TX_CTL_SEND_AFTER_DTIM = 32, + IEEE80211_TX_CTL_AMPDU = 64, + IEEE80211_TX_CTL_INJECTED = 128, + IEEE80211_TX_STAT_TX_FILTERED = 256, + IEEE80211_TX_STAT_ACK = 512, + IEEE80211_TX_STAT_AMPDU = 1024, + IEEE80211_TX_STAT_AMPDU_NO_BACK = 2048, + IEEE80211_TX_CTL_RATE_CTRL_PROBE = 4096, + IEEE80211_TX_INTFL_OFFCHAN_TX_OK = 8192, + IEEE80211_TX_CTL_HW_80211_ENCAP = 16384, + IEEE80211_TX_INTFL_RETRIED = 32768, + IEEE80211_TX_INTFL_DONT_ENCRYPT = 65536, + IEEE80211_TX_CTL_NO_PS_BUFFER = 131072, + IEEE80211_TX_CTL_MORE_FRAMES = 262144, + IEEE80211_TX_INTFL_RETRANSMISSION = 524288, + IEEE80211_TX_INTFL_MLME_CONN_TX = 1048576, + IEEE80211_TX_INTFL_NL80211_FRAME_TX = 2097152, + IEEE80211_TX_CTL_LDPC = 4194304, + IEEE80211_TX_CTL_STBC = 25165824, + IEEE80211_TX_CTL_TX_OFFCHAN = 33554432, + IEEE80211_TX_INTFL_TKIP_MIC_FAILURE = 67108864, + IEEE80211_TX_CTL_NO_CCK_RATE = 134217728, + IEEE80211_TX_STATUS_EOSP = 268435456, + IEEE80211_TX_CTL_USE_MINRATE = 536870912, + IEEE80211_TX_CTL_DONTFRAG = 1073741824, + IEEE80211_TX_STAT_NOACK_TRANSMITTED = 2147483648, +}; + +struct rtw_pci_ring { + u8 *head; + dma_addr_t dma; + u8 desc_size; + u32 len; + u32 wp; + u32 rp; +}; + +struct rtw_pci_tx_ring { + struct rtw_pci_ring r; + struct sk_buff_head queue; + bool queue_stopped; +}; + +struct rtw_pci_rx_ring { + struct rtw_pci_ring r; + struct sk_buff *buf[512]; +}; + +struct rtw_pci { + struct pci_dev *pdev; + spinlock_t hwirq_lock; + spinlock_t irq_lock; + u32 irq_mask[4]; + bool irq_enabled; + bool running; + struct net_device netdev; + struct napi_struct napi; + u16 rx_tag; + unsigned long tx_queued[1]; + struct rtw_pci_tx_ring tx_rings[8]; + struct rtw_pci_rx_ring rx_rings[2]; + u16 link_ctrl; + atomic_t link_usage; + bool rx_no_aspm; + unsigned long flags[1]; + void *mmap; +}; + +struct rtw_pci_tx_buffer_desc { + __le16 buf_size; + __le16 psb_len; + __le32 dma; +}; + +struct rtw_pci_tx_data { + dma_addr_t dma; + u8 sn; +}; + +struct rtw_pci_rx_buffer_desc { + __le16 buf_size; + __le16 total_pkt_size; + __le32 dma; +}; + +enum blk_crypto_mode_num { + BLK_ENCRYPTION_MODE_INVALID = 0, + BLK_ENCRYPTION_MODE_AES_256_XTS = 1, + BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV = 2, + BLK_ENCRYPTION_MODE_ADIANTUM = 3, + BLK_ENCRYPTION_MODE_SM4_XTS = 4, + BLK_ENCRYPTION_MODE_MAX = 5, +}; + +enum suspend_mode { + PRESUSPEND = 0, + PRESUSPEND_UNDO = 1, + POSTSUSPEND = 2, +}; + +enum { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, +}; + +struct dm_dev_internal { struct list_head list; - u64 protocols; - int (*decode)(struct rc_dev *, struct ir_raw_event); - int (*encode)(enum rc_proto, u32, struct ir_raw_event *, unsigned int); - u32 carrier; - u32 min_timeout; - int (*raw_register)(struct rc_dev *); - int (*raw_unregister)(struct rc_dev *); + refcount_t count; + struct dm_dev *dm_dev; }; -struct ir_raw_timings_manchester { - unsigned int leader_pulse; - unsigned int leader_space; - unsigned int clock; - unsigned int invert: 1; - unsigned int trailer_space; +struct dm_arg_set { + unsigned int argc; + char **argv; }; -struct ir_raw_timings_pd { - unsigned int header_pulse; - unsigned int header_space; - unsigned int bit_pulse; - unsigned int bit_space[2]; - unsigned int trailer_pulse; - unsigned int trailer_space; - unsigned int msb_first: 1; +struct dm_arg { + unsigned int min; + unsigned int max; + char *error; }; -struct ir_raw_timings_pl { - unsigned int header_pulse; - unsigned int bit_space; - unsigned int bit_pulse[2]; - unsigned int trailer_space; - unsigned int msb_first: 1; +struct blk_crypto_profile; + +struct blk_crypto_key; + +struct blk_crypto_ll_ops { + int (*keyslot_program)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int); + int (*keyslot_evict)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int); }; -typedef void (*btf_trace_netlink_extack)(void *, const char *); +struct blk_crypto_keyslot; -struct listeners; - -struct netlink_table { - struct rhashtable hash; - struct hlist_head mc_list; - struct listeners __attribute__((btf_type_tag("rcu"))) *listeners; - unsigned int flags; - unsigned int groups; - struct mutex *cb_mutex; - struct module *module; - int (*bind)(struct net *, int); - void (*unbind)(struct net *, int); - void (*release)(struct sock *, unsigned long *); - int registered; +struct blk_crypto_profile { + struct blk_crypto_ll_ops ll_ops; + unsigned int max_dun_bytes_supported; + unsigned int modes_supported[5]; + struct device *dev; + unsigned int num_slots; + struct rw_semaphore lock; + struct lock_class_key lockdep_key; + wait_queue_head_t idle_slots_wait_queue; + struct list_head idle_slots; + spinlock_t idle_slots_lock; + struct hlist_head *slot_hashtable; + unsigned int log_slot_ht_size; + struct blk_crypto_keyslot *slots; }; -struct listeners { +struct blk_crypto_config { + enum blk_crypto_mode_num crypto_mode; + unsigned int data_unit_size; + unsigned int dun_bytes; +}; + +struct blk_crypto_key { + struct blk_crypto_config crypto_cfg; + unsigned int data_unit_size_bits; + unsigned int size; + u8 raw[64]; +}; + +struct netdev_name_node { + struct hlist_node hlist; + struct list_head list; + struct net_device *dev; + const char *name; struct callback_head rcu; - unsigned long masks[0]; }; -enum netlink_skb_flags { - NETLINK_SKB_DST = 8, +enum netdev_reg_state { + NETREG_UNINITIALIZED = 0, + NETREG_REGISTERED = 1, + NETREG_UNREGISTERING = 2, + NETREG_UNREGISTERED = 3, + NETREG_RELEASED = 4, + NETREG_DUMMY = 5, +}; + +struct netdev_hw_addr { + struct list_head list; + struct rb_node node; + unsigned char addr[32]; + unsigned char type; + bool global_use; + int sync_cnt; + int refcount; + int synced; + struct callback_head callback_head; }; enum { - NETLINK_F_KERNEL_SOCKET = 0, - NETLINK_F_RECV_PKTINFO = 1, - NETLINK_F_BROADCAST_SEND_ERROR = 2, - NETLINK_F_RECV_NO_ENOBUFS = 3, - NETLINK_F_LISTEN_ALL_NSID = 4, - NETLINK_F_CAP_ACK = 5, - NETLINK_F_EXT_ACK = 6, - NETLINK_F_STRICT_CHK = 7, + ETHTOOL_A_PAUSE_UNSPEC = 0, + ETHTOOL_A_PAUSE_HEADER = 1, + ETHTOOL_A_PAUSE_AUTONEG = 2, + ETHTOOL_A_PAUSE_RX = 3, + ETHTOOL_A_PAUSE_TX = 4, + ETHTOOL_A_PAUSE_STATS = 5, + ETHTOOL_A_PAUSE_STATS_SRC = 6, + __ETHTOOL_A_PAUSE_CNT = 7, + ETHTOOL_A_PAUSE_MAX = 6, }; enum { - NETLINK_UNCONNECTED = 0, - NETLINK_CONNECTED = 1, + ETHTOOL_A_PAUSE_STAT_UNSPEC = 0, + ETHTOOL_A_PAUSE_STAT_PAD = 1, + ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2, + ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3, + __ETHTOOL_A_PAUSE_STAT_CNT = 4, + ETHTOOL_A_PAUSE_STAT_MAX = 3, }; -enum nlmsgerr_attrs { - NLMSGERR_ATTR_UNUSED = 0, - NLMSGERR_ATTR_MSG = 1, - NLMSGERR_ATTR_OFFS = 2, - NLMSGERR_ATTR_COOKIE = 3, - NLMSGERR_ATTR_POLICY = 4, - NLMSGERR_ATTR_MISS_TYPE = 5, - NLMSGERR_ATTR_MISS_NEST = 6, - __NLMSGERR_ATTR_MAX = 7, - NLMSGERR_ATTR_MAX = 6, +struct pause_req_info { + struct ethnl_req_info base; + enum ethtool_mac_stats_src src; }; -struct trace_event_raw_netlink_extack { +struct pause_reply_data { + struct ethnl_reply_data base; + struct ethtool_pauseparam pauseparam; + struct ethtool_pause_stats pausestat; +}; + +struct xt_af { + struct mutex mutex; + struct list_head match; + struct list_head target; +}; + +enum audit_nfcfgop { + AUDIT_XT_OP_REGISTER = 0, + AUDIT_XT_OP_REPLACE = 1, + AUDIT_XT_OP_UNREGISTER = 2, + AUDIT_NFT_OP_TABLE_REGISTER = 3, + AUDIT_NFT_OP_TABLE_UNREGISTER = 4, + AUDIT_NFT_OP_CHAIN_REGISTER = 5, + AUDIT_NFT_OP_CHAIN_UNREGISTER = 6, + AUDIT_NFT_OP_RULE_REGISTER = 7, + AUDIT_NFT_OP_RULE_UNREGISTER = 8, + AUDIT_NFT_OP_SET_REGISTER = 9, + AUDIT_NFT_OP_SET_UNREGISTER = 10, + AUDIT_NFT_OP_SETELEM_REGISTER = 11, + AUDIT_NFT_OP_SETELEM_UNREGISTER = 12, + AUDIT_NFT_OP_GEN_REGISTER = 13, + AUDIT_NFT_OP_OBJ_REGISTER = 14, + AUDIT_NFT_OP_OBJ_UNREGISTER = 15, + AUDIT_NFT_OP_OBJ_RESET = 16, + AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17, + AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18, + AUDIT_NFT_OP_SETELEM_RESET = 19, + AUDIT_NFT_OP_RULE_RESET = 20, + AUDIT_NFT_OP_INVALID = 21, +}; + +enum { + MTTG_TRAV_INIT = 0, + MTTG_TRAV_NFP_UNSPEC = 1, + MTTG_TRAV_NFP_SPEC = 2, + MTTG_TRAV_DONE = 3, +}; + +struct xt_action_param; + +struct xt_mtchk_param; + +struct xt_mtdtor_param; + +struct xt_match { + struct list_head list; + const char name[29]; + u_int8_t revision; + bool (*match)(const struct sk_buff *, struct xt_action_param *); + int (*checkentry)(const struct xt_mtchk_param *); + void (*destroy)(const struct xt_mtdtor_param *); + struct module *me; + const char *table; + unsigned int matchsize; + unsigned int usersize; + unsigned int hooks; + unsigned short proto; + unsigned short family; +}; + +struct xt_target; + +struct xt_action_param { + union { + const struct xt_match *match; + const struct xt_target *target; + }; + union { + const void *matchinfo; + const void *targinfo; + }; + const struct nf_hook_state *state; + unsigned int thoff; + u16 fragoff; + bool hotdrop; +}; + +struct xt_tgchk_param; + +struct xt_tgdtor_param; + +struct xt_target { + struct list_head list; + const char name[29]; + u_int8_t revision; + unsigned int (*target)(struct sk_buff *, const struct xt_action_param *); + int (*checkentry)(const struct xt_tgchk_param *); + void (*destroy)(const struct xt_tgdtor_param *); + struct module *me; + const char *table; + unsigned int targetsize; + unsigned int usersize; + unsigned int hooks; + unsigned short proto; + unsigned short family; +}; + +struct xt_tgchk_param { + struct net *net; + const char *table; + const void *entryinfo; + const struct xt_target *target; + void *targinfo; + unsigned int hook_mask; + u_int8_t family; + bool nft_compat; +}; + +struct xt_tgdtor_param { + struct net *net; + const struct xt_target *target; + void *targinfo; + u_int8_t family; +}; + +struct xt_mtchk_param { + struct net *net; + const char *table; + const void *entryinfo; + const struct xt_match *match; + void *matchinfo; + unsigned int hook_mask; + u_int8_t family; + bool nft_compat; +}; + +struct xt_mtdtor_param { + struct net *net; + const struct xt_match *match; + void *matchinfo; + u_int8_t family; +}; + +struct xt_table_info; + +struct xt_table { + struct list_head list; + unsigned int valid_hooks; + struct xt_table_info *private; + struct nf_hook_ops *ops; + struct module *me; + u_int8_t af; + int priority; + const char name[32]; +}; + +struct xt_table_info { + unsigned int size; + unsigned int number; + unsigned int initial_entries; + unsigned int hook_entry[5]; + unsigned int underflow[5]; + unsigned int stacksize; + void ***jumpstack; + unsigned char entries[0]; +}; + +struct xt_template { + struct list_head list; + int (*table_init)(struct net *); + struct module *me; + char name[32]; +}; + +struct xt_entry_match { + union { + struct { + __u16 match_size; + char name[29]; + __u8 revision; + } user; + struct { + __u16 match_size; + struct xt_match *match; + } kernel; + __u16 match_size; + } u; + unsigned char data[0]; +}; + +struct seq_net_private { + struct net *net; + netns_tracker ns_tracker; +}; + +struct nf_mttg_trav { + struct list_head *head; + struct list_head *curr; + uint8_t class; +}; + +struct xt_counters { + __u64 pcnt; + __u64 bcnt; +}; + +struct xt_entry_target { + union { + struct { + __u16 target_size; + char name[29]; + __u8 revision; + } user; + struct { + __u16 target_size; + struct xt_target *target; + } kernel; + __u16 target_size; + } u; + unsigned char data[0]; +}; + +struct xt_error_target { + struct xt_entry_target target; + char errorname[30]; +}; + +struct xt_standard_target { + struct xt_entry_target target; + int verdict; +}; + +struct xt_counters_info { + char name[32]; + unsigned int num_counters; + struct xt_counters counters[0]; +}; + +struct xt_pernet { + struct list_head tables[11]; +}; + +struct xt_percpu_counter_alloc_state { + unsigned int off; + const char __attribute__((btf_type_tag("percpu"))) *mem; +}; + +enum skb_ext_id { + SKB_EXT_BRIDGE_NF = 0, + SKB_EXT_NUM = 1, +}; + +struct nf_bridge_info { + enum { + BRNF_PROTO_UNCHANGED = 0, + BRNF_PROTO_8021Q = 1, + BRNF_PROTO_PPPOE = 2, + } orig_proto: 8; + u8 pkt_otherhost: 1; + u8 in_prerouting: 1; + u8 bridged_dnat: 1; + u8 sabotage_in_done: 1; + __u16 frag_max_size; + int physinif; + struct net_device *physoutdev; + union { + __be32 ipv4_daddr; + struct in6_addr ipv6_daddr; + char neigh_header[8]; + }; +}; + +enum { + SKB_GSO_TCPV4 = 1, + SKB_GSO_DODGY = 2, + SKB_GSO_TCP_ECN = 4, + SKB_GSO_TCP_FIXEDID = 8, + SKB_GSO_TCPV6 = 16, + SKB_GSO_FCOE = 32, + SKB_GSO_GRE = 64, + SKB_GSO_GRE_CSUM = 128, + SKB_GSO_IPXIP4 = 256, + SKB_GSO_IPXIP6 = 512, + SKB_GSO_UDP_TUNNEL = 1024, + SKB_GSO_UDP_TUNNEL_CSUM = 2048, + SKB_GSO_PARTIAL = 4096, + SKB_GSO_TUNNEL_REMCSUM = 8192, + SKB_GSO_SCTP = 16384, + SKB_GSO_ESP = 32768, + SKB_GSO_UDP = 65536, + SKB_GSO_UDP_L4 = 131072, + SKB_GSO_FRAGLIST = 262144, +}; + +struct napi_gro_cb { + union { + struct { + void *frag0; + unsigned int frag0_len; + }; + struct { + struct sk_buff *last; + unsigned long age; + }; + }; + int data_offset; + u16 flush; + u16 flush_id; + u16 count; + u16 proto; + union { + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + }; + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + } zeroed; + }; + __wsum csum; +}; + +enum ethtool_stringset { + ETH_SS_TEST = 0, + ETH_SS_STATS = 1, + ETH_SS_PRIV_FLAGS = 2, + ETH_SS_NTUPLE_FILTERS = 3, + ETH_SS_FEATURES = 4, + ETH_SS_RSS_HASH_FUNCS = 5, + ETH_SS_TUNABLES = 6, + ETH_SS_PHY_STATS = 7, + ETH_SS_PHY_TUNABLES = 8, + ETH_SS_LINK_MODES = 9, + ETH_SS_MSG_CLASSES = 10, + ETH_SS_WOL_MODES = 11, + ETH_SS_SOF_TIMESTAMPING = 12, + ETH_SS_TS_TX_TYPES = 13, + ETH_SS_TS_RX_FILTERS = 14, + ETH_SS_UDP_TUNNEL_TYPES = 15, + ETH_SS_STATS_STD = 16, + ETH_SS_STATS_ETH_PHY = 17, + ETH_SS_STATS_ETH_MAC = 18, + ETH_SS_STATS_ETH_CTRL = 19, + ETH_SS_STATS_RMON = 20, + ETH_SS_COUNT = 21, +}; + +enum nl80211_sta_info { + __NL80211_STA_INFO_INVALID = 0, + NL80211_STA_INFO_INACTIVE_TIME = 1, + NL80211_STA_INFO_RX_BYTES = 2, + NL80211_STA_INFO_TX_BYTES = 3, + NL80211_STA_INFO_LLID = 4, + NL80211_STA_INFO_PLID = 5, + NL80211_STA_INFO_PLINK_STATE = 6, + NL80211_STA_INFO_SIGNAL = 7, + NL80211_STA_INFO_TX_BITRATE = 8, + NL80211_STA_INFO_RX_PACKETS = 9, + NL80211_STA_INFO_TX_PACKETS = 10, + NL80211_STA_INFO_TX_RETRIES = 11, + NL80211_STA_INFO_TX_FAILED = 12, + NL80211_STA_INFO_SIGNAL_AVG = 13, + NL80211_STA_INFO_RX_BITRATE = 14, + NL80211_STA_INFO_BSS_PARAM = 15, + NL80211_STA_INFO_CONNECTED_TIME = 16, + NL80211_STA_INFO_STA_FLAGS = 17, + NL80211_STA_INFO_BEACON_LOSS = 18, + NL80211_STA_INFO_T_OFFSET = 19, + NL80211_STA_INFO_LOCAL_PM = 20, + NL80211_STA_INFO_PEER_PM = 21, + NL80211_STA_INFO_NONPEER_PM = 22, + NL80211_STA_INFO_RX_BYTES64 = 23, + NL80211_STA_INFO_TX_BYTES64 = 24, + NL80211_STA_INFO_CHAIN_SIGNAL = 25, + NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 26, + NL80211_STA_INFO_EXPECTED_THROUGHPUT = 27, + NL80211_STA_INFO_RX_DROP_MISC = 28, + NL80211_STA_INFO_BEACON_RX = 29, + NL80211_STA_INFO_BEACON_SIGNAL_AVG = 30, + NL80211_STA_INFO_TID_STATS = 31, + NL80211_STA_INFO_RX_DURATION = 32, + NL80211_STA_INFO_PAD = 33, + NL80211_STA_INFO_ACK_SIGNAL = 34, + NL80211_STA_INFO_ACK_SIGNAL_AVG = 35, + NL80211_STA_INFO_RX_MPDUS = 36, + NL80211_STA_INFO_FCS_ERROR_COUNT = 37, + NL80211_STA_INFO_CONNECTED_TO_GATE = 38, + NL80211_STA_INFO_TX_DURATION = 39, + NL80211_STA_INFO_AIRTIME_WEIGHT = 40, + NL80211_STA_INFO_AIRTIME_LINK_METRIC = 41, + NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 42, + NL80211_STA_INFO_CONNECTED_TO_AS = 43, + __NL80211_STA_INFO_AFTER_LAST = 44, + NL80211_STA_INFO_MAX = 43, +}; + +enum survey_info_flags { + SURVEY_INFO_NOISE_DBM = 1, + SURVEY_INFO_IN_USE = 2, + SURVEY_INFO_TIME = 4, + SURVEY_INFO_TIME_BUSY = 8, + SURVEY_INFO_TIME_EXT_BUSY = 16, + SURVEY_INFO_TIME_RX = 32, + SURVEY_INFO_TIME_TX = 64, + SURVEY_INFO_TIME_SCAN = 128, + SURVEY_INFO_TIME_BSS_RX = 256, +}; + +struct uncore_event_desc { + struct device_attribute attr; + const char *config; +}; + +struct event_constraint { + union { + unsigned long idxmsk[1]; + u64 idxmsk64; + }; + u64 code; + u64 cmask; + int weight; + int overlap; + int flags; + unsigned int size; +}; + +struct intel_uncore_pmu; + +struct intel_uncore_ops; + +struct freerunning_counters; + +struct intel_uncore_topology; + +struct intel_uncore_type { + const char *name; + int num_counters; + int num_boxes; + int perf_ctr_bits; + int fixed_ctr_bits; + int num_freerunning_types; + int type_id; + unsigned int perf_ctr; + unsigned int event_ctl; + unsigned int event_mask; + unsigned int event_mask_ext; + unsigned int fixed_ctr; + unsigned int fixed_ctl; + unsigned int box_ctl; + u64 *box_ctls; + union { + unsigned int msr_offset; + unsigned int mmio_offset; + }; + unsigned int mmio_map_size; + unsigned int num_shared_regs: 8; + unsigned int single_fixed: 1; + unsigned int pair_ctr_ctl: 1; + union { + u64 *msr_offsets; + u64 *pci_offsets; + u64 *mmio_offsets; + }; + unsigned int *box_ids; + struct event_constraint unconstrainted; + struct event_constraint *constraints; + struct intel_uncore_pmu *pmus; + struct intel_uncore_ops *ops; + struct uncore_event_desc *event_descs; + struct freerunning_counters *freerunning; + const struct attribute_group *attr_groups[4]; + const struct attribute_group **attr_update; + struct pmu *pmu; + struct intel_uncore_topology **topology; + int (*get_topology)(struct intel_uncore_type *); + void (*set_mapping)(struct intel_uncore_type *); + void (*cleanup_mapping)(struct intel_uncore_type *); +}; + +struct intel_uncore_box; + +struct intel_uncore_pmu { + struct pmu pmu; + char name[32]; + int pmu_idx; + int func_id; + bool registered; + atomic_t activeboxes; + struct intel_uncore_type *type; + struct intel_uncore_box **boxes; +}; + +struct intel_uncore_extra_reg { + raw_spinlock_t lock; + u64 config; + u64 config1; + u64 config2; + atomic_t ref; +}; + +struct intel_uncore_box { + int dieid; + int n_active; + int n_events; + int cpu; + unsigned long flags; + atomic_t refcnt; + struct perf_event *events[10]; + struct perf_event *event_list[10]; + struct event_constraint *event_constraint[10]; + unsigned long active_mask[1]; + u64 tags[10]; + struct pci_dev *pci_dev; + struct intel_uncore_pmu *pmu; + u64 hrtimer_duration; + struct hrtimer hrtimer; + struct list_head list; + struct list_head active_list; + void *io_addr; + struct intel_uncore_extra_reg shared_regs[0]; +}; + +struct intel_uncore_ops { + void (*init_box)(struct intel_uncore_box *); + void (*exit_box)(struct intel_uncore_box *); + void (*disable_box)(struct intel_uncore_box *); + void (*enable_box)(struct intel_uncore_box *); + void (*disable_event)(struct intel_uncore_box *, struct perf_event *); + void (*enable_event)(struct intel_uncore_box *, struct perf_event *); + u64 (*read_counter)(struct intel_uncore_box *, struct perf_event *); + int (*hw_config)(struct intel_uncore_box *, struct perf_event *); + struct event_constraint * (*get_constraint)(struct intel_uncore_box *, struct perf_event *); + void (*put_constraint)(struct intel_uncore_box *, struct perf_event *); +}; + +struct freerunning_counters { + unsigned int counter_base; + unsigned int counter_offset; + unsigned int box_offset; + unsigned int num_counters; + unsigned int bits; + unsigned int *box_offsets; +}; + +struct uncore_iio_topology; + +struct uncore_upi_topology; + +struct intel_uncore_topology { + int pmu_idx; + union { + void *untyped; + struct uncore_iio_topology *iio; + struct uncore_upi_topology *upi; + }; +}; + +struct uncore_iio_topology { + int pci_bus_no; + int segment; +}; + +struct uncore_upi_topology { + int die_to; + int pmu_idx_to; + int enabled; +}; + +struct extra_reg { + unsigned int event; + unsigned int msr; + u64 config_mask; + u64 valid_mask; + int idx; + bool extra_msr_access; +}; + +enum extra_reg_type { + EXTRA_REG_NONE = -1, + EXTRA_REG_RSP_0 = 0, + EXTRA_REG_RSP_1 = 1, + EXTRA_REG_LBR = 2, + EXTRA_REG_LDLAT = 3, + EXTRA_REG_FE = 4, + EXTRA_REG_SNOOP_0 = 5, + EXTRA_REG_SNOOP_1 = 6, + EXTRA_REG_MAX = 7, +}; + +enum { + EXTRA_REG_NHMEX_M_FILTER = 0, + EXTRA_REG_NHMEX_M_DSP = 1, + EXTRA_REG_NHMEX_M_ISS = 2, + EXTRA_REG_NHMEX_M_MAP = 3, + EXTRA_REG_NHMEX_M_MSC_THR = 4, + EXTRA_REG_NHMEX_M_PGT = 5, + EXTRA_REG_NHMEX_M_PLD = 6, + EXTRA_REG_NHMEX_M_ZDP_CTL_FVC = 7, +}; + +struct taint_flag { + char c_true; + char c_false; + bool module; +}; + +enum con_flush_mode { + CONSOLE_FLUSH_PENDING = 0, + CONSOLE_REPLAY_ALL = 1, +}; + +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, + ERROR_DETECTOR_WARN = 2, +}; + +enum ftrace_dump_mode { + DUMP_NONE = 0, + DUMP_ALL = 1, + DUMP_ORIG = 2, + DUMP_PARAM = 3, +}; + +enum ctx_state { + CONTEXT_DISABLED = -1, + CONTEXT_KERNEL = 0, + CONTEXT_IDLE = 1, + CONTEXT_USER = 2, + CONTEXT_GUEST = 3, + CONTEXT_MAX = 4, +}; + +struct warn_args { + const char *fmt; + va_list args; +}; + +enum proc_cn_event { + PROC_EVENT_NONE = 0, + PROC_EVENT_FORK = 1, + PROC_EVENT_EXEC = 2, + PROC_EVENT_UID = 4, + PROC_EVENT_GID = 64, + PROC_EVENT_SID = 128, + PROC_EVENT_PTRACE = 256, + PROC_EVENT_COMM = 512, + PROC_EVENT_NONZERO_EXIT = 536870912, + PROC_EVENT_COREDUMP = 1073741824, + PROC_EVENT_EXIT = 2147483648, +}; + +struct trace_mark { + unsigned long long val; + char sym; +}; + +enum trace_type { + __TRACE_FIRST_TYPE = 0, + TRACE_FN = 1, + TRACE_CTX = 2, + TRACE_WAKE = 3, + TRACE_STACK = 4, + TRACE_PRINT = 5, + TRACE_BPRINT = 6, + TRACE_MMIO_RW = 7, + TRACE_MMIO_MAP = 8, + TRACE_BRANCH = 9, + TRACE_GRAPH_RET = 10, + TRACE_GRAPH_ENT = 11, + TRACE_USER_STACK = 12, + TRACE_BLK = 13, + TRACE_BPUTS = 14, + TRACE_HWLAT = 15, + TRACE_OSNOISE = 16, + TRACE_TIMERLAT = 17, + TRACE_RAW_DATA = 18, + TRACE_FUNC_REPEATS = 19, + __TRACE_LAST_TYPE = 20, +}; + +enum trace_flag_type { + TRACE_FLAG_IRQS_OFF = 1, + TRACE_FLAG_IRQS_NOSUPPORT = 2, + TRACE_FLAG_NEED_RESCHED = 4, + TRACE_FLAG_HARDIRQ = 8, + TRACE_FLAG_SOFTIRQ = 16, + TRACE_FLAG_PREEMPT_RESCHED = 32, + TRACE_FLAG_NMI = 64, + TRACE_FLAG_BH_OFF = 128, +}; + +enum trace_iter_flags { + TRACE_FILE_LAT_FMT = 1, + TRACE_FILE_ANNOTATE = 2, + TRACE_FILE_TIME_IN_NS = 4, +}; + +struct bputs_entry { struct trace_entry ent; - u32 __data_loc_msg; + unsigned long ip; + const char *str; +}; + +struct bprint_entry { + struct trace_entry ent; + unsigned long ip; + const char *fmt; + u32 buf[0]; +}; + +struct print_entry { + struct trace_entry ent; + unsigned long ip; + char buf[0]; +}; + +struct ftrace_entry { + struct trace_entry ent; + unsigned long ip; + unsigned long parent_ip; +}; + +struct ctx_switch_entry { + struct trace_entry ent; + unsigned int prev_pid; + unsigned int next_pid; + unsigned int next_cpu; + unsigned char prev_prio; + unsigned char prev_state; + unsigned char next_prio; + unsigned char next_state; +}; + +struct stack_entry { + struct trace_entry ent; + int size; + unsigned long caller[0]; +}; + +struct userstack_entry { + struct trace_entry ent; + unsigned int tgid; + unsigned long caller[8]; +}; + +struct hwlat_entry { + struct trace_entry ent; + u64 duration; + u64 outer_duration; + u64 nmi_total_ts; + struct timespec64 timestamp; + unsigned int nmi_count; + unsigned int seqnum; + unsigned int count; +}; + +struct osnoise_entry { + struct trace_entry ent; + u64 noise; + u64 runtime; + u64 max_sample; + unsigned int hw_count; + unsigned int nmi_count; + unsigned int irq_count; + unsigned int softirq_count; + unsigned int thread_count; +}; + +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; +}; + +struct raw_data_entry { + struct trace_entry ent; + unsigned int id; + char buf[0]; +}; + +struct func_repeats_entry { + struct trace_entry ent; + unsigned long ip; + unsigned long parent_ip; + u16 count; + u16 top_delta_ts; + u32 bottom_delta_ts; +}; + +enum bpf_cmd { + BPF_MAP_CREATE = 0, + BPF_MAP_LOOKUP_ELEM = 1, + BPF_MAP_UPDATE_ELEM = 2, + BPF_MAP_DELETE_ELEM = 3, + BPF_MAP_GET_NEXT_KEY = 4, + BPF_PROG_LOAD = 5, + BPF_OBJ_PIN = 6, + BPF_OBJ_GET = 7, + BPF_PROG_ATTACH = 8, + BPF_PROG_DETACH = 9, + BPF_PROG_TEST_RUN = 10, + BPF_PROG_RUN = 10, + BPF_PROG_GET_NEXT_ID = 11, + BPF_MAP_GET_NEXT_ID = 12, + BPF_PROG_GET_FD_BY_ID = 13, + BPF_MAP_GET_FD_BY_ID = 14, + BPF_OBJ_GET_INFO_BY_FD = 15, + BPF_PROG_QUERY = 16, + BPF_RAW_TRACEPOINT_OPEN = 17, + BPF_BTF_LOAD = 18, + BPF_BTF_GET_FD_BY_ID = 19, + BPF_TASK_FD_QUERY = 20, + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21, + BPF_MAP_FREEZE = 22, + BPF_BTF_GET_NEXT_ID = 23, + BPF_MAP_LOOKUP_BATCH = 24, + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25, + BPF_MAP_UPDATE_BATCH = 26, + BPF_MAP_DELETE_BATCH = 27, + BPF_LINK_CREATE = 28, + BPF_LINK_UPDATE = 29, + BPF_LINK_GET_FD_BY_ID = 30, + BPF_LINK_GET_NEXT_ID = 31, + BPF_ENABLE_STATS = 32, + BPF_ITER_CREATE = 33, + BPF_LINK_DETACH = 34, + BPF_PROG_BIND_MAP = 35, + BPF_TOKEN_CREATE = 36, + __MAX_BPF_CMD = 37, +}; + +struct bpf_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + u64 delegate_cmds; + u64 delegate_maps; + u64 delegate_progs; + u64 delegate_attachs; +}; + +typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *); + +typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *); + +typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t); + +typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); + +enum behavior { + EXCLUSIVE = 0, + SHARED = 1, + DROP = 2, +}; + +enum positive_aop_returns { + AOP_WRITEPAGE_ACTIVATE = 524288, + AOP_TRUNCATED_PAGE = 524289, +}; + +struct trace_event_raw_mm_filemap_op_page_cache { + struct trace_entry ent; + unsigned long pfn; + unsigned long i_ino; + unsigned long index; + dev_t s_dev; + unsigned char order; char __data[0]; }; -struct netlink_tap { - struct net_device *dev; - struct module *module; +struct trace_event_raw_filemap_set_wb_err { + struct trace_entry ent; + unsigned long i_ino; + dev_t s_dev; + errseq_t errseq; + char __data[0]; +}; + +struct trace_event_raw_file_check_and_advance_wb_err { + struct trace_entry ent; + struct file *file; + unsigned long i_ino; + dev_t s_dev; + errseq_t old; + errseq_t new; + char __data[0]; +}; + +struct cachestat_range { + __u64 off; + __u64 len; +}; + +struct cachestat { + __u64 nr_cache; + __u64 nr_dirty; + __u64 nr_writeback; + __u64 nr_evicted; + __u64 nr_recently_evicted; +}; + +struct wait_page_key { + struct folio *folio; + int bit_nr; + int page_match; +}; + +struct trace_event_data_offsets_mm_filemap_op_page_cache {}; + +struct trace_event_data_offsets_filemap_set_wb_err {}; + +struct trace_event_data_offsets_file_check_and_advance_wb_err {}; + +enum fsnotify_obj_type { + FSNOTIFY_OBJ_TYPE_ANY = -1, + FSNOTIFY_OBJ_TYPE_INODE = 0, + FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1, + FSNOTIFY_OBJ_TYPE_SB = 2, + FSNOTIFY_OBJ_TYPE_COUNT = 3, + FSNOTIFY_OBJ_TYPE_DETACHED = 3, +}; + +struct fsnotify_group; + +struct fsnotify_mark { + __u32 mask; + refcount_t refcnt; + struct fsnotify_group *group; + struct list_head g_list; + spinlock_t lock; + struct hlist_node obj_list; + struct fsnotify_mark_connector *connector; + __u32 ignore_mask; + unsigned int flags; +}; + +struct inotify_group_private_data { + spinlock_t idr_lock; + struct idr idr; + struct ucounts *ucounts; +}; + +struct fsnotify_ops; + +struct fsnotify_event; + +struct fsnotify_group { + const struct fsnotify_ops *ops; + refcount_t refcnt; + spinlock_t notification_lock; + struct list_head notification_list; + wait_queue_head_t notification_waitq; + unsigned int q_len; + unsigned int max_events; + unsigned int priority; + bool shutdown; + int flags; + unsigned int owner_flags; + struct mutex mark_mutex; + atomic_t user_waits; + struct list_head marks_list; + struct fasync_struct *fsn_fa; + struct fsnotify_event *overflow_event; + struct mem_cgroup *memcg; + union { + void *private; + struct inotify_group_private_data inotify_data; + }; +}; + +struct fsnotify_iter_info; + +struct fsnotify_ops { + int (*handle_event)(struct fsnotify_group *, u32, const void *, int, struct inode *, const struct qstr *, u32, struct fsnotify_iter_info *); + int (*handle_inode_event)(struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32); + void (*free_group_priv)(struct fsnotify_group *); + void (*freeing_mark)(struct fsnotify_mark *, struct fsnotify_group *); + void (*free_event)(struct fsnotify_group *, struct fsnotify_event *); + void (*free_mark)(struct fsnotify_mark *); +}; + +struct fsnotify_iter_info { + struct fsnotify_mark *marks[5]; + struct fsnotify_group *current_group; + unsigned int report_mask; + int srcu_idx; +}; + +struct fsnotify_event { struct list_head list; }; -struct netlink_sock { - struct sock sk; - unsigned long flags; - u32 portid; - u32 dst_portid; - u32 dst_group; - u32 subscriptions; - u32 ngroups; - unsigned long *groups; - unsigned long state; - size_t max_recvmsg_len; - wait_queue_head_t wait; - bool bound; - bool cb_running; - int dump_done_errno; - struct netlink_callback cb; - struct mutex nl_cb_mutex; - struct mutex *dump_cb_mutex; - void (*netlink_rcv)(struct sk_buff *); - int (*netlink_bind)(struct net *, int); - void (*netlink_unbind)(struct net *, int); - void (*netlink_release)(struct sock *, unsigned long *); - struct module *module; - struct rhash_head node; - struct callback_head rcu; +struct inotify_inode_mark { + struct fsnotify_mark fsn_mark; + int wd; +}; + +struct file_handle { + __u32 handle_bytes; + int handle_type; + unsigned char f_handle[0]; +}; + +typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); + +typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); + +typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lease *); + +typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lease *, struct file_lease *); + +struct srcu_notifier_head { + struct mutex mutex; + struct srcu_usage srcuu; + struct srcu_struct srcu; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +}; + +struct file_lock_list_struct { + spinlock_t lock; + struct hlist_head hlist; +}; + +struct trace_event_raw_locks_get_lock_context { + struct trace_entry ent; + unsigned long i_ino; + dev_t s_dev; + unsigned char type; + struct file_lock_context *ctx; + char __data[0]; +}; + +struct trace_event_raw_filelock_lock { + struct trace_entry ent; + struct file_lock *fl; + unsigned long i_ino; + dev_t s_dev; + struct file_lock_core *blocker; + fl_owner_t owner; + unsigned int pid; + unsigned int flags; + unsigned char type; + loff_t fl_start; + loff_t fl_end; + int ret; + char __data[0]; +}; + +struct trace_event_raw_filelock_lease { + struct trace_entry ent; + struct file_lease *fl; + unsigned long i_ino; + dev_t s_dev; + struct file_lock_core *blocker; + fl_owner_t owner; + unsigned int flags; + unsigned char type; + unsigned long break_time; + unsigned long downgrade_time; + char __data[0]; +}; + +struct trace_event_raw_generic_add_lease { + struct trace_entry ent; + unsigned long i_ino; + int wcount; + int rcount; + int icount; + dev_t s_dev; + fl_owner_t owner; + unsigned int flags; + unsigned char type; + char __data[0]; +}; + +struct trace_event_raw_leases_conflict { + struct trace_entry ent; + void *lease; + void *breaker; + unsigned int l_fl_flags; + unsigned int b_fl_flags; + unsigned char l_fl_type; + unsigned char b_fl_type; + bool conflict; + char __data[0]; +}; + +typedef __kernel_long_t __kernel_off_t; + +struct flock { + short l_type; + short l_whence; + __kernel_off_t l_start; + __kernel_off_t l_len; + __kernel_pid_t l_pid; +}; + +struct flock64 { + short l_type; + short l_whence; + __kernel_loff_t l_start; + __kernel_loff_t l_len; + __kernel_pid_t l_pid; +}; + +struct trace_event_data_offsets_locks_get_lock_context {}; + +struct trace_event_data_offsets_filelock_lock {}; + +struct trace_event_data_offsets_filelock_lease {}; + +struct trace_event_data_offsets_generic_add_lease {}; + +struct trace_event_data_offsets_leases_conflict {}; + +struct locks_iterator { + int li_cpu; + loff_t li_pos; +}; + +enum isofs_file_format { + isofs_file_normal = 0, + isofs_file_sparse = 1, + isofs_file_compressed = 2, +}; + +enum { + Opt_block = 0, + Opt_check_r = 1, + Opt_check_s = 2, + Opt_cruft = 3, + Opt_gid___2 = 4, + Opt_ignore___2 = 5, + Opt_iocharset = 6, + Opt_map_a = 7, + Opt_map_n = 8, + Opt_map_o = 9, + Opt_mode = 10, + Opt_nojoliet = 11, + Opt_norock = 12, + Opt_sb = 13, + Opt_session = 14, + Opt_uid___2 = 15, + Opt_unhide = 16, + Opt_utf8 = 17, + Opt_err___2 = 18, + Opt_nocompress = 19, + Opt_hide = 20, + Opt_showassoc = 21, + Opt_dmode = 22, + Opt_overriderockperm = 23, +}; + +typedef __kernel_off_t off_t; + +struct iso_inode_info { + unsigned long i_iget5_block; + unsigned long i_iget5_offset; + unsigned int i_first_extent; + unsigned char i_file_format; + unsigned char i_format_parm[3]; + unsigned long i_next_section_block; + unsigned long i_next_section_offset; + off_t i_section_size; + struct inode vfs_inode; +}; + +struct isofs_iget5_callback_data { + unsigned long block; + unsigned long offset; +}; + +struct iso_directory_record { + __u8 length[1]; + __u8 ext_attr_length[1]; + __u8 extent[8]; + __u8 size[8]; + __u8 date[7]; + __u8 flags[1]; + __u8 file_unit_size[1]; + __u8 interleave[1]; + __u8 volume_sequence_number[4]; + __u8 name_len[1]; + char name[0]; +}; + +struct iso_volume_descriptor { + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 data[2041]; +}; + +struct hs_volume_descriptor { + __u8 foo[8]; + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 data[2033]; +}; + +struct iso_primary_descriptor { + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 unused1[1]; + char system_id[32]; + char volume_id[32]; + __u8 unused2[8]; + __u8 volume_space_size[8]; + __u8 unused3[32]; + __u8 volume_set_size[4]; + __u8 volume_sequence_number[4]; + __u8 logical_block_size[4]; + __u8 path_table_size[8]; + __u8 type_l_path_table[4]; + __u8 opt_type_l_path_table[4]; + __u8 type_m_path_table[4]; + __u8 opt_type_m_path_table[4]; + __u8 root_directory_record[34]; + char volume_set_id[128]; + char publisher_id[128]; + char preparer_id[128]; + char application_id[128]; + char copyright_file_id[37]; + char abstract_file_id[37]; + char bibliographic_file_id[37]; + __u8 creation_date[17]; + __u8 modification_date[17]; + __u8 expiration_date[17]; + __u8 effective_date[17]; + __u8 file_structure_version[1]; + __u8 unused4[1]; + __u8 application_data[512]; + __u8 unused5[653]; +}; + +struct iso_supplementary_descriptor { + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 flags[1]; + char system_id[32]; + char volume_id[32]; + __u8 unused2[8]; + __u8 volume_space_size[8]; + __u8 escape[32]; + __u8 volume_set_size[4]; + __u8 volume_sequence_number[4]; + __u8 logical_block_size[4]; + __u8 path_table_size[8]; + __u8 type_l_path_table[4]; + __u8 opt_type_l_path_table[4]; + __u8 type_m_path_table[4]; + __u8 opt_type_m_path_table[4]; + __u8 root_directory_record[34]; + char volume_set_id[128]; + char publisher_id[128]; + char preparer_id[128]; + char application_id[128]; + char copyright_file_id[37]; + char abstract_file_id[37]; + char bibliographic_file_id[37]; + __u8 creation_date[17]; + __u8 modification_date[17]; + __u8 expiration_date[17]; + __u8 effective_date[17]; + __u8 file_structure_version[1]; + __u8 unused4[1]; + __u8 application_data[512]; + __u8 unused5[653]; +}; + +struct hs_primary_descriptor { + __u8 foo[8]; + __u8 type[1]; + __u8 id[5]; + __u8 version[1]; + __u8 unused1[1]; + char system_id[32]; + char volume_id[32]; + __u8 unused2[8]; + __u8 volume_space_size[8]; + __u8 unused3[32]; + __u8 volume_set_size[4]; + __u8 volume_sequence_number[4]; + __u8 logical_block_size[4]; + __u8 path_table_size[8]; + __u8 type_l_path_table[4]; + __u8 unused4[28]; + __u8 root_directory_record[34]; +}; + +struct isofs_sb_info { + unsigned long s_ninodes; + unsigned long s_nzones; + unsigned long s_firstdatazone; + unsigned long s_log_zone_size; + unsigned long s_max_size; + int s_rock_offset; + s32 s_sbsector; + unsigned char s_joliet_level; + unsigned char s_mapping; + unsigned char s_check; + unsigned char s_session; + unsigned int s_high_sierra: 1; + unsigned int s_rock: 2; + unsigned int s_cruft: 1; + unsigned int s_nocompress: 1; + unsigned int s_hide: 1; + unsigned int s_showassoc: 1; + unsigned int s_overriderockperm: 1; + unsigned int s_uid_set: 1; + unsigned int s_gid_set: 1; + umode_t s_fmode; + umode_t s_dmode; + kgid_t s_gid; + kuid_t s_uid; + struct nls_table *s_nls_iocharset; +}; + +struct iso9660_options { + unsigned int rock: 1; + unsigned int joliet: 1; + unsigned int cruft: 1; + unsigned int hide: 1; + unsigned int showassoc: 1; + unsigned int nocompress: 1; + unsigned int overriderockperm: 1; + unsigned int uid_set: 1; + unsigned int gid_set: 1; + unsigned char map; + unsigned char check; + unsigned int blocksize; + umode_t fmode; + umode_t dmode; + kgid_t gid; + kuid_t uid; + char *iocharset; + s32 session; + s32 sbsector; +}; + +enum btrfs_subpage_type { + BTRFS_SUBPAGE_METADATA = 0, + BTRFS_SUBPAGE_DATA = 1, +}; + +enum btrfs_compression_type { + BTRFS_COMPRESS_NONE = 0, + BTRFS_COMPRESS_ZLIB = 1, + BTRFS_COMPRESS_LZO = 2, + BTRFS_COMPRESS_ZSTD = 3, + BTRFS_NR_COMPRESS_TYPES = 4, +}; + +enum { + __PAGE_UNLOCK_BIT = 0, + PAGE_UNLOCK = 1, + __PAGE_UNLOCK_SEQ = 0, + __PAGE_START_WRITEBACK_BIT = 1, + PAGE_START_WRITEBACK = 2, + __PAGE_START_WRITEBACK_SEQ = 1, + __PAGE_END_WRITEBACK_BIT = 2, + PAGE_END_WRITEBACK = 4, + __PAGE_END_WRITEBACK_SEQ = 2, + __PAGE_SET_ORDERED_BIT = 3, + PAGE_SET_ORDERED = 8, + __PAGE_SET_ORDERED_SEQ = 3, +}; + +enum btrfs_map_op { + BTRFS_MAP_READ = 0, + BTRFS_MAP_WRITE = 1, + BTRFS_MAP_GET_READ_MIRRORS = 2, +}; + +struct btrfs_bio; + +typedef void (*btrfs_bio_end_io_t)(struct btrfs_bio *); + +struct btrfs_bio_ctrl { + struct btrfs_bio *bbio; + enum btrfs_compression_type compress_type; + u32 len_to_oe_boundary; + blk_opf_t opf; + btrfs_bio_end_io_t end_io_func; + struct writeback_control *wbc; +}; + +struct btrfs_bio { + struct btrfs_inode *inode; + u64 file_offset; + union { + struct { + u8 *csum; + u8 csum_inline[64]; + struct bvec_iter saved_iter; + }; + struct { + struct btrfs_ordered_extent *ordered; + struct btrfs_ordered_sum *sums; + u64 orig_physical; + }; + struct btrfs_tree_parent_check parent_check; + }; + btrfs_bio_end_io_t end_io; + void *private; + unsigned int mirror_num; + atomic_t pending_ios; + struct work_struct end_io_work; + struct btrfs_fs_info *fs_info; + struct bio bio; +}; + +struct btrfs_eb_write_context { + struct writeback_control *wbc; + struct extent_buffer *eb; + struct btrfs_block_group *zoned_bg; +}; + +struct btrfs_subpage { + spinlock_t lock; + atomic_t readers; + union { + atomic_t eb_refs; + atomic_t writers; + }; + unsigned long bitmaps[0]; +}; + +struct btrfs_fiemap_entry; + +struct fiemap_cache { + struct btrfs_fiemap_entry *entries; + int entries_size; + int entries_pos; + u64 next_search_offset; + unsigned int extents_mapped; + u64 offset; + u64 phys; + u64 len; + u32 flags; + bool cached; +}; + +struct btrfs_fiemap_entry { + u64 offset; + u64 phys; + u64 len; + u32 flags; +}; + +struct btrfs_backref_shared_cache_entry { + u64 bytenr; + u64 gen; + bool is_shared; +}; + +struct btrfs_backref_share_check_ctx { + struct ulist refs; + u64 curr_leaf_bytenr; + u64 prev_leaf_bytenr; + struct btrfs_backref_shared_cache_entry path_cache_entries[8]; + bool use_path_cache; + struct { + u64 bytenr; + bool is_shared; + } prev_extents_cache[8]; + int prev_extents_cache_slot; +}; + +struct folio_iter { + struct folio *folio; + size_t offset; + size_t length; + struct folio *_next; + size_t _seg_count; + int _i; +}; + +struct processed_extent { + struct btrfs_inode *inode; + u64 start; + u64 end; + bool uptodate; +}; + +struct io_splice { + struct file *file_out; + loff_t off_out; + loff_t off_in; + u64 len; + int splice_fd_in; + unsigned int flags; +}; + +typedef void io_wq_work_fn(struct io_wq_work *); + +typedef struct io_wq_work *free_work_fn(struct io_wq_work *); + +struct io_wq_data { + struct io_wq_hash *hash; + struct task_struct *task; + io_wq_work_fn *do_work; + free_work_fn *free_work; +}; + +struct io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; +}; + +struct io_uring_rsrc_update { + __u32 offset; + __u32 resv; + __u64 data; +}; + +struct msi_domain_template { + char name[48]; + struct irq_chip chip; + struct msi_domain_ops ops; + struct msi_domain_info info; +}; + +enum { + IRQ_DOMAIN_FLAG_HIERARCHY = 1, + IRQ_DOMAIN_NAME_ALLOCATED = 2, + IRQ_DOMAIN_FLAG_IPI_PER_CPU = 4, + IRQ_DOMAIN_FLAG_IPI_SINGLE = 8, + IRQ_DOMAIN_FLAG_MSI = 16, + IRQ_DOMAIN_FLAG_ISOLATED_MSI = 32, + IRQ_DOMAIN_FLAG_NO_MAP = 64, + IRQ_DOMAIN_FLAG_MSI_PARENT = 256, + IRQ_DOMAIN_FLAG_MSI_DEVICE = 512, + IRQ_DOMAIN_FLAG_NONCORE = 65536, +}; + +enum { + ACPI_REFCLASS_LOCAL = 0, + ACPI_REFCLASS_ARG = 1, + ACPI_REFCLASS_REFOF = 2, + ACPI_REFCLASS_INDEX = 3, + ACPI_REFCLASS_TABLE = 4, + ACPI_REFCLASS_NAME = 5, + ACPI_REFCLASS_DEBUG = 6, + ACPI_REFCLASS_MAX = 6, +}; + +enum { + AML_FIELD_ATTRIB_QUICK = 2, + AML_FIELD_ATTRIB_SEND_RECEIVE = 4, + AML_FIELD_ATTRIB_BYTE = 6, + AML_FIELD_ATTRIB_WORD = 8, + AML_FIELD_ATTRIB_BLOCK = 10, + AML_FIELD_ATTRIB_BYTES = 11, + AML_FIELD_ATTRIB_PROCESS_CALL = 12, + AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 13, + AML_FIELD_ATTRIB_RAW_BYTES = 14, + AML_FIELD_ATTRIB_RAW_PROCESS_BYTES = 15, +}; + +struct pnp_resource { + struct list_head list; + struct resource res; +}; + +struct pnp_protocol; + +struct pnp_card; + +struct pnp_driver; + +struct pnp_card_link; + +struct pnp_id; + +struct pnp_dev { + struct device dev; + u64 dma_mask; + unsigned int number; + int status; + struct list_head global_list; + struct list_head protocol_list; + struct list_head card_list; + struct list_head rdev_list; + struct pnp_protocol *protocol; + struct pnp_card *card; + struct pnp_driver *driver; + struct pnp_card_link *card_link; + struct pnp_id *id; + int active; + int capabilities; + unsigned int num_dependent_sets; + struct list_head resources; + struct list_head options; + char name[50]; + int flags; + struct proc_dir_entry *procent; + void *data; +}; + +struct pnp_protocol { + struct list_head protocol_list; + char *name; + int (*get)(struct pnp_dev *); + int (*set)(struct pnp_dev *); + int (*disable)(struct pnp_dev *); + bool (*can_wakeup)(struct pnp_dev *); + int (*suspend)(struct pnp_dev *, pm_message_t); + int (*resume)(struct pnp_dev *); + unsigned char number; + struct device dev; + struct list_head cards; + struct list_head devices; +}; + +struct pnp_card { + struct device dev; + unsigned char number; + struct list_head global_list; + struct list_head protocol_list; + struct list_head devices; + struct pnp_protocol *protocol; + struct pnp_id *id; + char name[50]; + unsigned char pnpver; + unsigned char productver; + unsigned int serial; + unsigned char checksum; + struct proc_dir_entry *procdir; +}; + +struct pnp_id { + char id[8]; + struct pnp_id *next; +}; + +struct pnp_device_id; + +struct pnp_driver { + const char *name; + const struct pnp_device_id *id_table; + unsigned int flags; + int (*probe)(struct pnp_dev *, const struct pnp_device_id *); + void (*remove)(struct pnp_dev *); + void (*shutdown)(struct pnp_dev *); + int (*suspend)(struct pnp_dev *, pm_message_t); + int (*resume)(struct pnp_dev *); + struct device_driver driver; +}; + +struct pnp_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; +}; + +struct pnp_card_driver; + +struct pnp_card_link { + struct pnp_card *card; + struct pnp_card_driver *driver; + void *driver_data; + pm_message_t pm_state; +}; + +struct pnp_card_device_id; + +struct pnp_card_driver { + struct list_head global_list; + char *name; + const struct pnp_card_device_id *id_table; + unsigned int flags; + int (*probe)(struct pnp_card_link *, const struct pnp_card_device_id *); + void (*remove)(struct pnp_card_link *); + int (*suspend)(struct pnp_card_link *, pm_message_t); + int (*resume)(struct pnp_card_link *); + struct pnp_driver link; +}; + +struct pnp_card_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; + struct { + __u8 id[8]; + } devs[8]; +}; + +struct pnp_port { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; +}; + +typedef struct { + unsigned long bits[4]; +} pnp_irq_mask_t; + +struct pnp_irq { + pnp_irq_mask_t map; + unsigned char flags; +}; + +struct pnp_dma { + unsigned char map; + unsigned char flags; +}; + +struct pnp_mem { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; +}; + +struct pnp_option { + struct list_head list; + unsigned int flags; + unsigned long type; + union { + struct pnp_port port; + struct pnp_irq irq; + struct pnp_dma dma; + struct pnp_mem mem; + } u; +}; + +struct serial_rs485 { + __u32 flags; + __u32 delay_rts_before_send; + __u32 delay_rts_after_send; + union { + __u32 padding[5]; + struct { + __u8 addr_recv; + __u8 addr_dest; + __u8 padding0[2]; + __u32 padding1[4]; + }; + }; +}; + +enum uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, +}; + +typedef u64 upf_t; + +struct uart_icount { + __u32 cts; + __u32 dsr; + __u32 rng; + __u32 dcd; + __u32 rx; + __u32 tx; + __u32 frame; + __u32 overrun; + __u32 parity; + __u32 brk; + __u32 buf_overrun; +}; + +typedef unsigned int upstat_t; + +struct serial_iso7816 { + __u32 flags; + __u32 tg; + __u32 sc_fi; + __u32 sc_di; + __u32 clk; + __u32 reserved[5]; +}; + +struct uart_state; + +struct uart_ops; + +struct serial_port_device; + +struct uart_port { + spinlock_t lock; + unsigned long iobase; + unsigned char *membase; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); + void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); + int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); + int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); + unsigned int ctrl_id; + unsigned int port_id; + unsigned int irq; + unsigned long irqflags; + unsigned int uartclk; + unsigned int fifosize; + unsigned char x_char; + unsigned char regshift; + unsigned char iotype; + unsigned char quirks; + unsigned int read_status_mask; + unsigned int ignore_status_mask; + struct uart_state *state; + struct uart_icount icount; + struct console *cons; + upf_t flags; + upstat_t status; + bool hw_stopped; + unsigned int mctrl; + unsigned int frame_time; + unsigned int type; + const struct uart_ops *ops; + unsigned int custom_divisor; + unsigned int line; + unsigned int minor; + resource_size_t mapbase; + resource_size_t mapsize; + struct device *dev; + struct serial_port_device *port_dev; + unsigned long sysrq; + u8 sysrq_ch; + unsigned char has_sysrq; + unsigned char sysrq_seq; + unsigned char hub6; + unsigned char suspended; + unsigned char console_reinit; + const char *name; + struct attribute_group *attr_group; + const struct attribute_group **tty_groups; + struct serial_rs485 rs485; + struct serial_rs485 rs485_supported; + struct gpio_desc *rs485_term_gpio; + struct gpio_desc *rs485_rx_during_tx_gpio; + struct serial_iso7816 iso7816; + void *private_data; +}; + +struct mctrl_gpios; + +struct uart_8250_dma; + +struct uart_8250_ops; + +struct uart_8250_em485; + +struct uart_8250_port { + struct uart_port port; + struct timer_list timer; + struct list_head list; + u32 capabilities; + u16 bugs; + unsigned int tx_loadsz; + unsigned char acr; + unsigned char fcr; + unsigned char ier; + unsigned char lcr; + unsigned char mcr; + unsigned char cur_iotype; + unsigned int rpm_tx_active; + unsigned char canary; + unsigned char probe; + struct mctrl_gpios *gpios; + u16 lsr_saved_flags; + u16 lsr_save_mask; + unsigned char msr_saved_flags; + struct uart_8250_dma *dma; + const struct uart_8250_ops *ops; + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + struct uart_8250_em485 *em485; + void (*rs485_start_tx)(struct uart_8250_port *); + void (*rs485_stop_tx)(struct uart_8250_port *); + struct delayed_work overrun_backoff; + u32 overrun_backoff_time_ms; +}; + +struct circ_buf { + char *buf; + int head; + int tail; +}; + +struct uart_state { + struct tty_port port; + enum uart_pm_state pm_state; + struct circ_buf xmit; + atomic_t refcount; + wait_queue_head_t remove_wait; + struct uart_port *uart_port; +}; + +struct uart_ops { + unsigned int (*tx_empty)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_mctrl)(struct uart_port *); + void (*stop_tx)(struct uart_port *); + void (*start_tx)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + void (*send_xchar)(struct uart_port *, char); + void (*stop_rx)(struct uart_port *); + void (*start_rx)(struct uart_port *); + void (*enable_ms)(struct uart_port *); + void (*break_ctl)(struct uart_port *, int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*flush_buffer)(struct uart_port *); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + const char * (*type)(struct uart_port *); + void (*release_port)(struct uart_port *); + int (*request_port)(struct uart_port *); + void (*config_port)(struct uart_port *, int); + int (*verify_port)(struct uart_port *, struct serial_struct *); + int (*ioctl)(struct uart_port *, unsigned int, unsigned long); +}; + +struct uart_8250_dma { + int (*tx_dma)(struct uart_8250_port *); + int (*rx_dma)(struct uart_8250_port *); + void (*prepare_tx_dma)(struct uart_8250_port *); + void (*prepare_rx_dma)(struct uart_8250_port *); + dma_filter_fn fn; + void *rx_param; + void *tx_param; + struct dma_slave_config rxconf; + struct dma_slave_config txconf; + struct dma_chan *rxchan; + struct dma_chan *txchan; + phys_addr_t rx_dma_addr; + phys_addr_t tx_dma_addr; + dma_addr_t rx_addr; + dma_addr_t tx_addr; + dma_cookie_t rx_cookie; + dma_cookie_t tx_cookie; + void *rx_buf; + size_t rx_size; + size_t tx_size; + unsigned char tx_running; + unsigned char tx_err; + unsigned char rx_running; +}; + +struct uart_8250_ops { + int (*setup_irq)(struct uart_8250_port *); + void (*release_irq)(struct uart_8250_port *); + void (*setup_timer)(struct uart_8250_port *); +}; + +struct uart_8250_em485 { + struct hrtimer start_tx_timer; + struct hrtimer stop_tx_timer; + struct hrtimer *active_timer; + struct uart_8250_port *port; + unsigned int tx_stopped: 1; +}; + +struct pci1xxxx_8250 { + unsigned int nr; + u8 dev_rev; + u8 pad[3]; + void *membase; + int line[0]; +}; + +typedef int suspend_state_t; + +enum iwl_phy_ops_subcmd_ids { + CMD_DTS_MEASUREMENT_TRIGGER_WIDE = 0, + CTDP_CONFIG_CMD = 3, + TEMP_REPORTING_THRESHOLDS_CMD = 4, + PER_CHAIN_LIMIT_OFFSET_CMD = 5, + PER_PLATFORM_ANT_GAIN_CMD = 7, + CT_KILL_NOTIFICATION = 254, + DTS_MEASUREMENT_NOTIF_WIDE = 255, +}; + +enum iwl_mvm_ctdp_cmd_operation { + CTDP_CMD_OPERATION_START = 1, + CTDP_CMD_OPERATION_STOP = 2, + CTDP_CMD_OPERATION_REPORT = 4, +}; + +enum iwl_mvm_init_status { + IWL_MVM_INIT_STATUS_THERMAL_INIT_COMPLETE = 1, + IWL_MVM_INIT_STATUS_LEDS_INIT_COMPLETE = 2, +}; + +enum iwl_mvm_smps_type_request { + IWL_MVM_SMPS_REQ_BT_COEX = 0, + IWL_MVM_SMPS_REQ_TT = 1, + IWL_MVM_SMPS_REQ_PROT = 2, + IWL_MVM_SMPS_REQ_FW = 3, + NUM_IWL_MVM_SMPS_REQ = 4, +}; + +struct ct_kill_notif { + __le16 temperature; + u8 dts; + u8 scheme; +}; + +struct iwl_dts_measurement_notif_v1 { + __le32 temp; + __le32 voltage; +}; + +struct iwl_dts_measurement_cmd { + __le32 flags; +}; + +struct iwl_ext_dts_measurement_cmd { + __le32 control_mode; + __le32 temperature; + __le32 sensor; + __le32 avg_factor; + __le32 bit_mode; + __le32 step_duration; +}; + +struct iwl_dts_measurement_resp { + __le32 temp; +}; + +struct iwl_notification_wait { + struct list_head list; + bool (*fn)(struct iwl_notif_wait_data *, struct iwl_rx_packet *, void *); + void *fn_data; + u16 cmds[5]; + u8 n_cmds; + bool triggered; + bool aborted; +}; + +struct iwl_mvm_ctdp_cmd { + __le32 operation; + __le32 budget; + __le32 window_size; +}; + +struct iwl_dts_measurement_notif_v2 { + __le32 temp; + __le32 voltage; + __le32 threshold_idx; +}; + +struct temp_report_ths_cmd { + __le32 num_temps; + __le16 thresholds[8]; +}; + +struct iwl_trip_walk_data { + __le16 *thresholds; + int count; +}; + +enum amd_chipset_gen { + NOT_AMD_CHIPSET = 0, + AMD_CHIPSET_SB600 = 1, + AMD_CHIPSET_SB700 = 2, + AMD_CHIPSET_SB800 = 3, + AMD_CHIPSET_HUDSON2 = 4, + AMD_CHIPSET_BOLTON = 5, + AMD_CHIPSET_YANGTZE = 6, + AMD_CHIPSET_TAISHAN = 7, + AMD_CHIPSET_UNKNOWN = 8, +}; + +struct amd_chipset_type { + enum amd_chipset_gen gen; + u8 rev; +}; + +struct amd_chipset_info { + struct pci_dev *nb_dev; + struct pci_dev *smbus_dev; + int nb_type; + struct amd_chipset_type sb_type; + int isoc_reqs; + int probe_count; + bool need_pll_quirk; +}; + +typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); + +typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); + +typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); + +struct trace_event_raw_thermal_temperature { + struct trace_entry ent; + u32 __data_loc_thermal_zone; + int id; + int temp_prev; + int temp; + char __data[0]; +}; + +struct trace_event_raw_cdev_update { + struct trace_entry ent; + u32 __data_loc_type; + unsigned long target; + char __data[0]; +}; + +struct trace_event_raw_thermal_zone_trip { + struct trace_entry ent; + u32 __data_loc_thermal_zone; + int id; + int trip; + enum thermal_trip_type trip_type; + char __data[0]; +}; + +struct trace_event_data_offsets_thermal_temperature { + u32 thermal_zone; + const void *thermal_zone_ptr_; +}; + +struct trace_event_data_offsets_cdev_update { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_thermal_zone_trip { + u32 thermal_zone; + const void *thermal_zone_ptr_; +}; + +struct xsk_queue; + +struct xdp_umem; + +struct xdp_buff_xsk; + +struct xdp_desc; + +struct xsk_buff_pool { + struct device *dev; + struct net_device *netdev; + struct list_head xsk_tx_list; + spinlock_t xsk_tx_list_lock; + refcount_t users; + struct xdp_umem *umem; + struct work_struct work; + struct list_head free_list; + struct list_head xskb_list; + u32 heads_cnt; + u16 queue_id; + long: 64; + long: 64; + long: 64; + long: 64; + struct xsk_queue *fq; + struct xsk_queue *cq; + dma_addr_t *dma_pages; + struct xdp_buff_xsk *heads; + struct xdp_desc *tx_descs; + u64 chunk_mask; + u64 addrs_cnt; + u32 free_list_cnt; + u32 dma_pages_cnt; + u32 free_heads_cnt; + u32 headroom; + u32 chunk_size; + u32 chunk_shift; + u32 frame_len; + u8 tx_metadata_len; + u8 cached_need_wakeup; + bool uses_need_wakeup; + bool dma_need_sync; + bool unaligned; + bool tx_sw_csum; + void *addrs; + spinlock_t cq_lock; + struct xdp_buff_xsk *free_heads[0]; + long: 64; + long: 64; + long: 64; +}; + +struct xdp_umem { + void *addrs; + u64 size; + u32 headroom; + u32 chunk_size; + u32 chunks; + u32 npgs; + struct user_struct *user; + refcount_t users; + u8 flags; + u8 tx_metadata_len; + bool zc; + struct page **pgs; + int id; + struct list_head xsk_dma_list; struct work_struct work; }; -struct sockaddr_nl { - __kernel_sa_family_t nl_family; - unsigned short nl_pad; - __u32 nl_pid; - __u32 nl_groups; +struct xdp_buff_xsk { + struct xdp_buff xdp; + u8 cb[24]; + dma_addr_t dma; + dma_addr_t frame_dma; + struct xsk_buff_pool *pool; + u64 orig_addr; + struct list_head free_list_node; + struct list_head xskb_list_node; }; -struct trace_event_data_offsets_netlink_extack { - u32 msg; - const void *msg_ptr_; +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; }; -struct netlink_tap_net { - struct list_head netlink_tap_all; - struct mutex netlink_tap_lock; +enum xdp_mem_type { + MEM_TYPE_PAGE_SHARED = 0, + MEM_TYPE_PAGE_ORDER0 = 1, + MEM_TYPE_PAGE_POOL = 2, + MEM_TYPE_XSK_BUFF_POOL = 3, + MEM_TYPE_MAX = 4, }; -struct netlink_broadcast_data { - struct sock *exclude_sk; - struct net *net; - u32 portid; - u32 group; - int failure; - int delivery_failure; - int congested; - int delivered; - gfp_t allocation; - struct sk_buff *skb; - struct sk_buff *skb2; - int (*tx_filter)(struct sock *, struct sk_buff *, void *); - void *tx_data; +enum netdev_xdp_act { + NETDEV_XDP_ACT_BASIC = 1, + NETDEV_XDP_ACT_REDIRECT = 2, + NETDEV_XDP_ACT_NDO_XMIT = 4, + NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, + NETDEV_XDP_ACT_HW_OFFLOAD = 16, + NETDEV_XDP_ACT_RX_SG = 32, + NETDEV_XDP_ACT_NDO_XMIT_SG = 64, + NETDEV_XDP_ACT_MASK = 127, }; -struct netlink_set_err_data { - struct sock *exclude_sk; - u32 portid; - u32 group; - int code; +enum xdp_buff_flags { + XDP_FLAGS_HAS_FRAGS = 1, + XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, }; -struct netlink_compare_arg { - possible_net_t pnet; - u32 portid; +struct xdp_mem_allocator { + struct xdp_mem_info mem; + union { + void *allocator; + struct page_pool *page_pool; + }; + struct rhash_head node; + struct callback_head rcu; }; -struct scm_fp_list; - -struct scm_cookie { - struct pid *pid; - struct scm_fp_list *fp; - struct scm_creds creds; +struct xdp_frame_bulk { + int count; + void *xa; + void *q[16]; }; -struct scm_fp_list { - short count; - short count_unix; - short max; - struct user_struct *user; - struct file *fp[253]; +struct rhashtable_walker { + struct list_head list; + struct bucket_table *tbl; }; -struct nl_pktinfo { - __u32 group; +struct rhashtable_iter { + struct rhashtable *ht; + struct rhash_head *p; + struct rhlist_head *list; + struct rhashtable_walker walker; + unsigned int slot; + unsigned int skip; + bool end_of_table; }; -struct nl_seq_iter { +struct xdp_attachment_info { + struct bpf_prog *prog; + u32 flags; +}; + +struct nf_conntrack_l4proto { + u_int8_t l4proto; + bool allow_clash; + u16 nlattr_size; + bool (*can_early_drop)(const struct nf_conn *); + int (*to_nlattr)(struct sk_buff *, struct nlattr *, struct nf_conn *, bool); + int (*from_nlattr)(struct nlattr **, struct nf_conn *); + int (*tuple_to_nlattr)(struct sk_buff *, const struct nf_conntrack_tuple *); + unsigned int (*nlattr_tuple_size)(); + int (*nlattr_to_tuple)(struct nlattr **, struct nf_conntrack_tuple *, u_int32_t); + const struct nla_policy *nla_policy; + struct { + int (*nlattr_to_obj)(struct nlattr **, struct net *, void *); + int (*obj_to_nlattr)(struct sk_buff *, const void *); + u16 obj_size; + u16 nlattr_max; + const struct nla_policy *nla_policy; + } ctnl_timeout; + void (*print_conntrack)(struct seq_file *, struct nf_conn *); +}; + +struct nf_loginfo { + u_int8_t type; + union { + struct { + u_int32_t copy_len; + u_int16_t group; + u_int16_t qthreshold; + u_int16_t flags; + } ulog; + struct { + u_int8_t level; + u_int8_t logflags; + } log; + } u; +}; + +enum tcp_conntrack { + TCP_CONNTRACK_NONE = 0, + TCP_CONNTRACK_SYN_SENT = 1, + TCP_CONNTRACK_SYN_RECV = 2, + TCP_CONNTRACK_ESTABLISHED = 3, + TCP_CONNTRACK_FIN_WAIT = 4, + TCP_CONNTRACK_CLOSE_WAIT = 5, + TCP_CONNTRACK_LAST_ACK = 6, + TCP_CONNTRACK_TIME_WAIT = 7, + TCP_CONNTRACK_CLOSE = 8, + TCP_CONNTRACK_LISTEN = 9, + TCP_CONNTRACK_MAX = 10, + TCP_CONNTRACK_IGNORE = 11, + TCP_CONNTRACK_RETRANS = 12, + TCP_CONNTRACK_UNACK = 13, + TCP_CONNTRACK_TIMEOUT_MAX = 14, +}; + +enum ip_conntrack_events { + IPCT_NEW = 0, + IPCT_RELATED = 1, + IPCT_DESTROY = 2, + IPCT_REPLY = 3, + IPCT_ASSURED = 4, + IPCT_PROTOINFO = 5, + IPCT_HELPER = 6, + IPCT_MARK = 7, + IPCT_SEQADJ = 8, + IPCT_NATSEQADJ = 8, + IPCT_SECMARK = 9, + IPCT_LABEL = 10, + IPCT_SYNPROXY = 11, + __IPCT_MAX = 12, +}; + +enum nf_ct_tcp_action { + NFCT_TCP_IGNORE = 0, + NFCT_TCP_INVALID = 1, + NFCT_TCP_ACCEPT = 2, +}; + +enum tcp_bit_set { + TCP_SYN_SET = 0, + TCP_SYNACK_SET = 1, + TCP_FIN_SET = 2, + TCP_ACK_SET = 3, + TCP_RST_SET = 4, + TCP_NONE_SET = 5, +}; + +enum { + TCP_FLAG_CWR = 32768, + TCP_FLAG_ECE = 16384, + TCP_FLAG_URG = 8192, + TCP_FLAG_ACK = 4096, + TCP_FLAG_PSH = 2048, + TCP_FLAG_RST = 1024, + TCP_FLAG_SYN = 512, + TCP_FLAG_FIN = 256, + TCP_RESERVED_BITS = 15, + TCP_DATA_OFFSET = 240, +}; + +enum ctattr_protoinfo { + CTA_PROTOINFO_UNSPEC = 0, + CTA_PROTOINFO_TCP = 1, + CTA_PROTOINFO_DCCP = 2, + CTA_PROTOINFO_SCTP = 3, + __CTA_PROTOINFO_MAX = 4, +}; + +enum ctattr_protoinfo_tcp { + CTA_PROTOINFO_TCP_UNSPEC = 0, + CTA_PROTOINFO_TCP_STATE = 1, + CTA_PROTOINFO_TCP_WSCALE_ORIGINAL = 2, + CTA_PROTOINFO_TCP_WSCALE_REPLY = 3, + CTA_PROTOINFO_TCP_FLAGS_ORIGINAL = 4, + CTA_PROTOINFO_TCP_FLAGS_REPLY = 5, + __CTA_PROTOINFO_TCP_MAX = 6, +}; + +enum ctattr_l4proto { + CTA_PROTO_UNSPEC = 0, + CTA_PROTO_NUM = 1, + CTA_PROTO_SRC_PORT = 2, + CTA_PROTO_DST_PORT = 3, + CTA_PROTO_ICMP_ID = 4, + CTA_PROTO_ICMP_TYPE = 5, + CTA_PROTO_ICMP_CODE = 6, + CTA_PROTO_ICMPV6_ID = 7, + CTA_PROTO_ICMPV6_TYPE = 8, + CTA_PROTO_ICMPV6_CODE = 9, + __CTA_PROTO_MAX = 10, +}; + +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +}; + +struct nf_ct_tcp_flags { + __u8 flags; + __u8 mask; +}; + +enum { + IPT_TTL_EQ = 0, + IPT_TTL_NE = 1, + IPT_TTL_LT = 2, + IPT_TTL_GT = 3, +}; + +enum { + IP6T_HL_EQ = 0, + IP6T_HL_NE = 1, + IP6T_HL_LT = 2, + IP6T_HL_GT = 3, +}; + +struct ipt_ttl_info { + __u8 mode; + __u8 ttl; +}; + +struct ip6t_hl_info { + __u8 mode; + __u8 hop_limit; +}; + +struct ping_table { + struct hlist_head hash[64]; + spinlock_t lock; +}; + +struct pingv6_ops { + int (*ipv6_recv_error)(struct sock *, struct msghdr *, int, int *); + void (*ip6_datagram_recv_common_ctl)(struct sock *, struct msghdr *, struct sk_buff *); + void (*ip6_datagram_recv_specific_ctl)(struct sock *, struct msghdr *, struct sk_buff *); + int (*icmpv6_err_convert)(u8, u8, int *); + void (*ipv6_icmp_error)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*ipv6_chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int); +}; + +enum cgroup_bpf_attach_type { + CGROUP_BPF_ATTACH_TYPE_INVALID = -1, + CGROUP_INET_INGRESS = 0, + CGROUP_INET_EGRESS = 1, + CGROUP_INET_SOCK_CREATE = 2, + CGROUP_SOCK_OPS = 3, + CGROUP_DEVICE = 4, + CGROUP_INET4_BIND = 5, + CGROUP_INET6_BIND = 6, + CGROUP_INET4_CONNECT = 7, + CGROUP_INET6_CONNECT = 8, + CGROUP_UNIX_CONNECT = 9, + CGROUP_INET4_POST_BIND = 10, + CGROUP_INET6_POST_BIND = 11, + CGROUP_UDP4_SENDMSG = 12, + CGROUP_UDP6_SENDMSG = 13, + CGROUP_UNIX_SENDMSG = 14, + CGROUP_SYSCTL = 15, + CGROUP_UDP4_RECVMSG = 16, + CGROUP_UDP6_RECVMSG = 17, + CGROUP_UNIX_RECVMSG = 18, + CGROUP_GETSOCKOPT = 19, + CGROUP_SETSOCKOPT = 20, + CGROUP_INET4_GETPEERNAME = 21, + CGROUP_INET6_GETPEERNAME = 22, + CGROUP_UNIX_GETPEERNAME = 23, + CGROUP_INET4_GETSOCKNAME = 24, + CGROUP_INET6_GETSOCKNAME = 25, + CGROUP_UNIX_GETSOCKNAME = 26, + CGROUP_INET_SOCK_RELEASE = 27, + CGROUP_LSM_START = 28, + CGROUP_LSM_END = 27, + MAX_CGROUP_BPF_ATTACH_TYPE = 28, +}; + +struct ping_iter_state { struct seq_net_private p; - struct rhashtable_iter hti; + int bucket; + sa_family_t family; +}; + +struct pingfakehdr { + struct icmphdr icmph; + struct msghdr *msg; + sa_family_t family; + __wsum wcheck; +}; + +struct net_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; +}; + +enum tpacket_versions { + TPACKET_V1 = 0, + TPACKET_V2 = 1, + TPACKET_V3 = 2, +}; + +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, + PACKET_SOCK_TX_HAS_OFF = 2, + PACKET_SOCK_TP_LOSS = 3, + PACKET_SOCK_RUNNING = 4, + PACKET_SOCK_PRESSURE = 5, + PACKET_SOCK_QDISC_BYPASS = 6, +}; + +enum ip_defrag_users { + IP_DEFRAG_LOCAL_DELIVER = 0, + IP_DEFRAG_CALL_RA_CHAIN = 1, + IP_DEFRAG_CONNTRACK_IN = 2, + __IP_DEFRAG_CONNTRACK_IN_END = 65537, + IP_DEFRAG_CONNTRACK_OUT = 65538, + __IP_DEFRAG_CONNTRACK_OUT_END = 131073, + IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074, + __IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609, + IP_DEFRAG_VS_IN = 196610, + IP_DEFRAG_VS_OUT = 196611, + IP_DEFRAG_VS_FWD = 196612, + IP_DEFRAG_AF_PACKET = 196613, + IP_DEFRAG_MACVLAN = 196614, +}; + +enum { + SKBTX_HW_TSTAMP = 1, + SKBTX_SW_TSTAMP = 2, + SKBTX_IN_PROGRESS = 4, + SKBTX_HW_TSTAMP_USE_CYCLES = 8, + SKBTX_WIFI_STATUS = 16, + SKBTX_HW_TSTAMP_NETDEV = 32, + SKBTX_SCHED_TSTAMP = 64, +}; + +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, + SKBFL_PURE_ZEROCOPY = 4, + SKBFL_DONT_ORPHAN = 8, + SKBFL_MANAGED_FRAG_REFS = 16, +}; + +enum nf_dev_hooks { + NF_NETDEV_INGRESS = 0, + NF_NETDEV_EGRESS = 1, + NF_NETDEV_NUMHOOKS = 2, +}; + +struct tpacket_stats { + unsigned int tp_packets; + unsigned int tp_drops; +}; + +struct tpacket_stats_v3 { + unsigned int tp_packets; + unsigned int tp_drops; + unsigned int tp_freeze_q_cnt; +}; + +union tpacket_stats_u { + struct tpacket_stats stats1; + struct tpacket_stats_v3 stats3; +}; + +struct pgv; + +struct tpacket_kbdq_core { + struct pgv *pkbdq; + unsigned int feature_req_word; + unsigned int hdrlen; + unsigned char reset_pending_on_curr_blk; + unsigned char delete_blk_timer; + unsigned short kactive_blk_num; + unsigned short blk_sizeof_priv; + unsigned short last_kactive_blk_num; + char *pkblk_start; + char *pkblk_end; + int kblk_size; + unsigned int max_frame_len; + unsigned int knum_blocks; + uint64_t knxt_seq_num; + char *prev; + char *nxt_offset; + struct sk_buff *skb; + rwlock_t blk_fill_in_prog_lock; + unsigned short retire_blk_tov; + unsigned short version; + unsigned long tov_in_jiffies; + struct timer_list retire_blk_timer; +}; + +struct packet_ring_buffer { + struct pgv *pg_vec; + unsigned int head; + unsigned int frames_per_block; + unsigned int frame_size; + unsigned int frame_max; + unsigned int pg_vec_order; + unsigned int pg_vec_pages; + unsigned int pg_vec_len; + unsigned int __attribute__((btf_type_tag("percpu"))) *pending_refcnt; + union { + unsigned long *rx_owner_map; + struct tpacket_kbdq_core prb_bdqc; + }; +}; + +struct packet_fanout; + +struct packet_rollover; + +struct packet_mclist; + +struct packet_sock { + struct sock sk; + struct packet_fanout *fanout; + union tpacket_stats_u stats; + struct packet_ring_buffer rx_ring; + struct packet_ring_buffer tx_ring; + int copy_thresh; + spinlock_t bind_lock; + struct mutex pg_vec_lock; + unsigned long flags; + int ifindex; + u8 vnet_hdr_sz; + __be16 num; + struct packet_rollover *rollover; + struct packet_mclist *mclist; + atomic_long_t mapped; + enum tpacket_versions tp_version; + unsigned int tp_hdrlen; + unsigned int tp_reserve; + unsigned int tp_tstamp; + struct completion skb_completion; + struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; + long: 64; + long: 64; + struct packet_type prot_hook; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t tp_drops; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct packet_fanout { + possible_net_t net; + unsigned int num_members; + u32 max_num_members; + u16 id; + u8 type; + u8 flags; + union { + atomic_t rr_cur; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *bpf_prog; + }; + struct list_head list; + spinlock_t lock; + refcount_t sk_ref; + long: 64; + struct packet_type prot_hook; + struct sock __attribute__((btf_type_tag("rcu"))) *arr[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct pgv { + char *buffer; +}; + +struct packet_rollover { + int sock; + atomic_long_t num; + atomic_long_t num_huge; + atomic_long_t num_failed; + long: 64; + long: 64; + long: 64; + long: 64; + u32 history[16]; +}; + +struct packet_mclist { + struct packet_mclist *next; + int ifindex; + int count; + unsigned short type; + unsigned short alen; + unsigned char addr[32]; +}; + +struct tpacket_bd_ts { + unsigned int ts_sec; + union { + unsigned int ts_usec; + unsigned int ts_nsec; + }; +}; + +struct tpacket_hdr_v1 { + __u32 block_status; + __u32 num_pkts; + __u32 offset_to_first_pkt; + __u32 blk_len; + __u64 seq_num; + struct tpacket_bd_ts ts_first_pkt; + struct tpacket_bd_ts ts_last_pkt; +}; + +union tpacket_bd_header_u { + struct tpacket_hdr_v1 bh1; +}; + +struct tpacket_block_desc { + __u32 version; + __u32 offset_to_priv; + union tpacket_bd_header_u hdr; +}; + +struct tpacket_hdr_variant1 { + __u32 tp_rxhash; + __u32 tp_vlan_tci; + __u16 tp_vlan_tpid; + __u16 tp_padding; +}; + +struct tpacket3_hdr { + __u32 tp_next_offset; + __u32 tp_sec; + __u32 tp_nsec; + __u32 tp_snaplen; + __u32 tp_len; + __u32 tp_status; + __u16 tp_mac; + __u16 tp_net; + union { + struct tpacket_hdr_variant1 hv1; + }; + __u8 tp_padding[8]; +}; + +struct sockaddr_ll { + unsigned short sll_family; + __be16 sll_protocol; + int sll_ifindex; + unsigned short sll_hatype; + unsigned char sll_pkttype; + unsigned char sll_halen; + unsigned char sll_addr[8]; +}; + +struct sockaddr_pkt { + unsigned short spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; +}; + +struct packet_skb_cb { + union { + struct sockaddr_pkt pkt; + union { + unsigned int origlen; + struct sockaddr_ll ll; + }; + } sa; +}; + +struct qdisc_skb_cb { + struct { + unsigned int pkt_len; + u16 slave_dev_queue_mapping; + u16 tc_classid; + }; + unsigned char data[20]; +}; + +typedef __u16 __virtio16; + +struct __kernel_sockaddr_storage { + union { + struct { + __kernel_sa_family_t ss_family; + char __data[126]; + }; + void *__align; + }; +}; + +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; +}; + +struct sock_skb_cb { + u32 dropcount; +}; + +struct tpacket_hdr; + +struct tpacket2_hdr; + +union tpacket_uhdr { + struct tpacket_hdr *h1; + struct tpacket2_hdr *h2; + struct tpacket3_hdr *h3; + void *raw; +}; + +struct tpacket_hdr { + unsigned long tp_status; + unsigned int tp_len; + unsigned int tp_snaplen; + unsigned short tp_mac; + unsigned short tp_net; + unsigned int tp_sec; + unsigned int tp_usec; +}; + +struct tpacket2_hdr { + __u32 tp_status; + __u32 tp_len; + __u32 tp_snaplen; + __u16 tp_mac; + __u16 tp_net; + __u32 tp_sec; + __u32 tp_nsec; + __u16 tp_vlan_tci; + __u16 tp_vlan_tpid; + __u8 tp_padding[4]; +}; + +struct virtio_net_hdr_mrg_rxbuf { + struct virtio_net_hdr hdr; + __virtio16 num_buffers; +}; + +struct tpacket_req { + unsigned int tp_block_size; + unsigned int tp_block_nr; + unsigned int tp_frame_size; + unsigned int tp_frame_nr; +}; + +struct tpacket_req3 { + unsigned int tp_block_size; + unsigned int tp_block_nr; + unsigned int tp_frame_size; + unsigned int tp_frame_nr; + unsigned int tp_retire_blk_tov; + unsigned int tp_sizeof_priv; + unsigned int tp_feature_req_word; +}; + +union tpacket_req_u { + struct tpacket_req req; + struct tpacket_req3 req3; +}; + +struct sock_fprog { + unsigned short len; + struct sock_filter __attribute__((btf_type_tag("user"))) *filter; +}; + +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); + +struct flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; +}; + +struct vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; +}; + +struct packet_mreq_max { + int mr_ifindex; + unsigned short mr_type; + unsigned short mr_alen; + unsigned char mr_address[32]; +}; + +struct fanout_args { + __u16 id; + __u16 type_flags; + __u32 max_num_members; +}; + +struct tpacket_rollover_stats { + __u64 tp_all; + __u64 tp_huge; + __u64 tp_failed; +}; + +struct tpacket_auxdata { + __u32 tp_status; + __u32 tp_len; + __u32 tp_snaplen; + __u16 tp_mac; + __u16 tp_net; + __u16 tp_vlan_tci; + __u16 tp_vlan_tpid; +}; + +struct e820_table { + __u32 nr_entries; + struct e820_entry entries[3200]; +}; + +struct restore_data_record { + unsigned long jump_address; + unsigned long jump_address_phys; + unsigned long cr3; + unsigned long magic; + unsigned long e820_checksum; +}; + +typedef long (*sys_call_ptr_t)(const struct pt_regs *); + +typedef void (*btf_trace_x86_fpu_before_save)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_after_save)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_before_restore)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_after_restore)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_regs_activated)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_regs_deactivated)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_init_state)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *); + +typedef void (*btf_trace_x86_fpu_xstate_check_failed)(void *, struct fpu *); + +struct fpu_state_config { + unsigned int max_size; + unsigned int default_size; + u64 max_features; + u64 default_features; + u64 legacy_features; +}; + +struct trace_event_raw_x86_fpu { + struct trace_entry ent; + struct fpu *fpu; + bool load_fpu; + u64 xfeatures; + u64 xcomp_bv; + char __data[0]; +}; + +struct trace_event_data_offsets_x86_fpu {}; + +struct elf64_shdr { + Elf64_Word sh_name; + Elf64_Word sh_type; + Elf64_Xword sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Xword sh_size; + Elf64_Word sh_link; + Elf64_Word sh_info; + Elf64_Xword sh_addralign; + Elf64_Xword sh_entsize; +}; + +typedef struct elf64_shdr Elf64_Shdr; + +typedef __s64 Elf64_Sxword; + +struct elf64_rela { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +}; + +typedef struct elf64_rela Elf64_Rela; + +struct alt_instr { + s32 instr_offset; + s32 repl_offset; + union { + struct { + u32 cpuid: 16; + u32 flags: 16; + }; + u32 ft_flags; + }; + u8 instrlen; + u8 replacementlen; +} __attribute__((packed)); + +struct async_domain { + struct list_head pending; + unsigned int registered: 1; +}; + +enum wq_consts { + WQ_MAX_ACTIVE = 512, + WQ_UNBOUND_MAX_ACTIVE = 512, + WQ_DFL_ACTIVE = 256, + WQ_DFL_MIN_ACTIVE = 8, +}; + +struct async_entry { + struct list_head domain_list; + struct list_head global_list; + struct work_struct work; + async_cookie_t cookie; + async_func_t func; + void *data; + struct async_domain *domain; +}; + +struct pool_workqueue; + +struct worker_pool; + +struct worker { + union { + struct list_head entry; + struct hlist_node hentry; + }; + struct work_struct *current_work; + work_func_t current_func; + struct pool_workqueue *current_pwq; + u64 current_at; + unsigned int current_color; + int sleeping; + work_func_t last_func; + struct list_head scheduled; + struct task_struct *task; + struct worker_pool *pool; + struct list_head node; + unsigned long last_active; + unsigned int flags; + int id; + char desc[24]; + struct workqueue_struct *rescue_wq; +}; + +struct pm_vt_switch { + struct list_head head; + struct device *dev; + bool required; +}; + +struct cgroup_taskset { + struct list_head src_csets; + struct list_head dst_csets; + int nr_tasks; + int ssid; + struct list_head *csets; + struct css_set *cur_cset; + struct task_struct *cur_task; +}; + +enum { + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, +}; + +struct bpf_mem_cache { + struct llist_head free_llist; + local_t active; + struct llist_head free_llist_extra; + struct irq_work refill_work; + struct obj_cgroup *objcg; + int unit_size; + int free_cnt; + int low_watermark; + int high_watermark; + int batch; + int percpu_size; + bool draining; + struct bpf_mem_cache *tgt; + struct llist_head free_by_rcu; + struct llist_node *free_by_rcu_tail; + struct llist_head waiting_for_gp; + struct llist_node *waiting_for_gp_tail; + struct callback_head rcu; + atomic_t call_rcu_in_progress; + struct llist_head free_llist_extra_rcu; + struct llist_head free_by_rcu_ttrace; + struct llist_head waiting_for_gp_ttrace; + struct callback_head rcu_ttrace; + atomic_t call_rcu_ttrace_in_progress; +}; + +struct bpf_mem_caches { + struct bpf_mem_cache cache[11]; +}; + +struct bpf_mem_alloc { + struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches; + struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache; + struct obj_cgroup *objcg; + bool percpu; + struct work_struct work; +}; + +typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_mm_compaction_migratepages)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool); + +typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int); + +typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); + +typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); + +typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); + +typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int); + +typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int); + +typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int); + +typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); + +typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); + +typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); + +enum compact_result { + COMPACT_NOT_SUITABLE_ZONE = 0, + COMPACT_SKIPPED = 1, + COMPACT_DEFERRED = 2, + COMPACT_NO_SUITABLE_PAGE = 3, + COMPACT_CONTINUE = 4, + COMPACT_COMPLETE = 5, + COMPACT_PARTIAL_SKIPPED = 6, + COMPACT_CONTENDED = 7, + COMPACT_SUCCESS = 8, +}; + +enum compact_priority { + COMPACT_PRIO_SYNC_FULL = 0, + MIN_COMPACT_PRIORITY = 0, + COMPACT_PRIO_SYNC_LIGHT = 1, + MIN_COMPACT_COSTLY_PRIORITY = 1, + DEF_COMPACT_PRIORITY = 1, + COMPACT_PRIO_ASYNC = 2, + INIT_COMPACT_PRIORITY = 2, +}; + +enum pageblock_bits { + PB_migrate = 0, + PB_migrate_end = 2, + PB_migrate_skip = 3, + NR_PAGEBLOCK_BITS = 4, +}; + +enum migratetype { + MIGRATE_UNMOVABLE = 0, + MIGRATE_MOVABLE = 1, + MIGRATE_RECLAIMABLE = 2, + MIGRATE_PCPTYPES = 3, + MIGRATE_HIGHATOMIC = 3, + MIGRATE_TYPES = 4, +}; + +enum vmscan_throttle_state { + VMSCAN_THROTTLE_WRITEBACK = 0, + VMSCAN_THROTTLE_ISOLATED = 1, + VMSCAN_THROTTLE_NOPROGRESS = 2, + VMSCAN_THROTTLE_CONGESTED = 3, + NR_VMSCAN_THROTTLE = 4, +}; + +enum lru_list { + LRU_INACTIVE_ANON = 0, + LRU_ACTIVE_ANON = 1, + LRU_INACTIVE_FILE = 2, + LRU_ACTIVE_FILE = 3, + LRU_UNEVICTABLE = 4, + NR_LRU_LISTS = 5, +}; + +enum zone_watermarks { + WMARK_MIN = 0, + WMARK_LOW = 1, + WMARK_HIGH = 2, + WMARK_PROMO = 3, + NR_WMARK = 4, +}; + +enum migrate_reason { + MR_COMPACTION = 0, + MR_MEMORY_FAILURE = 1, + MR_MEMORY_HOTPLUG = 2, + MR_SYSCALL = 3, + MR_MEMPOLICY_MBIND = 4, + MR_NUMA_MISPLACED = 5, + MR_CONTIG_RANGE = 6, + MR_LONGTERM_PIN = 7, + MR_DEMOTION = 8, + MR_TYPES = 9, +}; + +typedef unsigned int isolate_mode_t; + +struct trace_event_raw_mm_compaction_isolate_template { + struct trace_entry ent; + unsigned long start_pfn; + unsigned long end_pfn; + unsigned long nr_scanned; + unsigned long nr_taken; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_migratepages { + struct trace_entry ent; + unsigned long nr_migrated; + unsigned long nr_failed; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_begin { + struct trace_entry ent; + unsigned long zone_start; + unsigned long migrate_pfn; + unsigned long free_pfn; + unsigned long zone_end; + bool sync; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_end { + struct trace_entry ent; + unsigned long zone_start; + unsigned long migrate_pfn; + unsigned long free_pfn; + unsigned long zone_end; + bool sync; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_try_to_compact_pages { + struct trace_entry ent; + int order; + unsigned long gfp_mask; + int prio; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_suitable_template { + struct trace_entry ent; + int nid; + enum zone_type idx; + int order; + int ret; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_defer_template { + struct trace_entry ent; + int nid; + enum zone_type idx; + int order; + unsigned int considered; + unsigned int defer_shift; + int order_failed; + char __data[0]; +}; + +struct trace_event_raw_mm_compaction_kcompactd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; +}; + +struct trace_event_raw_kcompactd_wake_template { + struct trace_entry ent; + int nid; + int order; + enum zone_type highest_zoneidx; + char __data[0]; +}; + +struct movable_operations { + bool (*isolate_page)(struct page *, isolate_mode_t); + int (*migrate_page)(struct page *, struct page *, enum migrate_mode); + void (*putback_page)(struct page *); +}; + +typedef enum { + ISOLATE_ABORT = 0, + ISOLATE_NONE = 1, + ISOLATE_SUCCESS = 2, +} isolate_migrate_t; + +typedef struct folio *new_folio_t(struct folio *, unsigned long); + +typedef void free_folio_t(struct folio *, unsigned long); + +struct trace_event_data_offsets_mm_compaction_isolate_template {}; + +struct trace_event_data_offsets_mm_compaction_migratepages {}; + +struct trace_event_data_offsets_mm_compaction_begin {}; + +struct trace_event_data_offsets_mm_compaction_end {}; + +struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; + +struct trace_event_data_offsets_mm_compaction_suitable_template {}; + +struct trace_event_data_offsets_mm_compaction_defer_template {}; + +struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; + +struct trace_event_data_offsets_kcompactd_wake_template {}; + +struct alloc_context { + struct zonelist *zonelist; + nodemask_t *nodemask; + struct zoneref *preferred_zoneref; + int migratetype; + enum zone_type highest_zoneidx; + bool spread_dirty_pages; +}; + +struct node { + struct device dev; + struct list_head access_list; +}; + +struct ext4_extent { + __le32 ee_block; + __le16 ee_len; + __le16 ee_start_hi; + __le32 ee_start_lo; +}; + +struct ext4_extent_header { + __le16 eh_magic; + __le16 eh_entries; + __le16 eh_max; + __le16 eh_depth; + __le32 eh_generation; +}; + +struct ext4_extent_idx { + __le32 ei_block; + __le32 ei_leaf_lo; + __le16 ei_leaf_hi; + __u16 ei_unused; +}; + +struct migrate_struct { + ext4_lblk_t first_block; + ext4_lblk_t last_block; + ext4_lblk_t curr_block; + ext4_fsblk_t first_pblock; + ext4_fsblk_t last_pblock; +}; + +struct ext4_ext_path { + ext4_fsblk_t p_block; + __u16 p_depth; + __u16 p_maxdepth; + struct ext4_extent *p_ext; + struct ext4_extent_idx *p_idx; + struct ext4_extent_header *p_hdr; + struct buffer_head *p_bh; +}; + +struct isofs_fid { + u32 block; + u16 offset; + u16 parent_offset; + u32 generation; + u32 parent_block; + u32 parent_generation; +}; + +struct inode_defrag { + struct rb_node rb_node; + u64 ino; + u64 transid; + u64 root; + u32 extent_thresh; +}; + +struct defrag_target_range { + struct list_head list; + u64 start; + u64 len; +}; + +struct btrfs_ioctl_defrag_range_args { + __u64 start; + __u64 len; + __u64 flags; + __u32 extent_thresh; + __u32 compress_type; + __u32 unused[4]; +}; + +struct font_desc { + int idx; + const char *name; + unsigned int width; + unsigned int height; + unsigned int charcount; + const void *data; + int pref; +}; + +struct font_data { + unsigned int extra[4]; + const unsigned char data[0]; +}; + +enum asn1_tag { + ASN1_EOC = 0, + ASN1_BOOL = 1, + ASN1_INT = 2, + ASN1_BTS = 3, + ASN1_OTS = 4, + ASN1_NULL = 5, + ASN1_OID = 6, + ASN1_ODE = 7, + ASN1_EXT = 8, + ASN1_REAL = 9, + ASN1_ENUM = 10, + ASN1_EPDV = 11, + ASN1_UTF8STR = 12, + ASN1_RELOID = 13, + ASN1_SEQ = 16, + ASN1_SET = 17, + ASN1_NUMSTR = 18, + ASN1_PRNSTR = 19, + ASN1_TEXSTR = 20, + ASN1_VIDSTR = 21, + ASN1_IA5STR = 22, + ASN1_UNITIM = 23, + ASN1_GENTIM = 24, + ASN1_GRASTR = 25, + ASN1_VISSTR = 26, + ASN1_GENSTR = 27, + ASN1_UNISTR = 28, + ASN1_CHRSTR = 29, + ASN1_BMPSTR = 30, + ASN1_LONG_TAG = 31, +}; + +typedef u16 ucs2_char_t; + +struct sbq_wait { + struct sbitmap_queue *sbq; + struct wait_queue_entry wait; +}; + +enum acpi_predicate { + all_versions = 0, + less_than_or_equal = 1, + equal = 2, + greater_than_or_equal = 3, +}; + +struct acpi_device_bus_id { + const char *bus_id; + struct ida instance_ida; + struct list_head node; +}; + +struct acpi_handle_list { + u32 count; + acpi_handle *handles; +}; + +struct acpi_pld_info { + u8 revision; + u8 ignore_color; + u8 red; + u8 green; + u8 blue; + u16 width; + u16 height; + u8 user_visible; + u8 dock; + u8 lid; + u8 panel; + u8 vertical_position; + u8 horizontal_position; + u8 shape; + u8 group_orientation; + u8 group_token; + u8 group_position; + u8 bay; + u8 ejectable; + u8 ospm_eject_required; + u8 cabinet_number; + u8 card_cage_number; + u8 reference; + u8 rotation; + u8 order; + u8 reserved; + u16 vertical_offset; + u16 horizontal_offset; +}; + +struct acpi_dev_match_info { + struct acpi_device_id hid[2]; + const char *uid; + s64 hrv; +}; + +struct acpi_platform_list { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; + char *table; + enum acpi_predicate pred; + char *reason; + u32 data; +}; + +enum { + AML_FIELD_ACCESS_ANY = 0, + AML_FIELD_ACCESS_BYTE = 1, + AML_FIELD_ACCESS_WORD = 2, + AML_FIELD_ACCESS_DWORD = 3, + AML_FIELD_ACCESS_QWORD = 4, + AML_FIELD_ACCESS_BUFFER = 5, +}; + +struct acpi_create_field_info { + struct acpi_namespace_node *region_node; + struct acpi_namespace_node *field_node; + struct acpi_namespace_node *register_node; + struct acpi_namespace_node *data_register_node; + struct acpi_namespace_node *connection_node; + u8 *resource_buffer; + u32 bank_value; + u32 field_bit_position; + u32 field_bit_length; + u16 resource_length; + u16 pin_number_index; + u8 field_flags; + u8 attribute; + u8 field_type; + u8 access_length; +}; + +struct acpi_vendor_uuid; + +struct acpi_vendor_walk_info { + struct acpi_vendor_uuid *uuid; + struct acpi_buffer *buffer; + acpi_status status; +}; + +struct acpi_vendor_uuid { + u8 subtype; + u8 data[16]; +}; + +struct sysrq_key_op { + void (* const handler)(u8); + const char * const help_msg; + const char * const action_msg; + const int enable_mask; +}; + +enum oom_constraint { + CONSTRAINT_NONE = 0, + CONSTRAINT_CPUSET = 1, + CONSTRAINT_MEMORY_POLICY = 2, + CONSTRAINT_MEMCG = 3, +}; + +enum { + ZONELIST_FALLBACK = 0, + ZONELIST_NOFALLBACK = 1, + MAX_ZONELISTS = 2, +}; + +struct sysrq_state { + struct input_handle handle; + struct work_struct reinject_work; + unsigned long key_down[12]; + unsigned int alt; + unsigned int alt_use; + unsigned int shift; + unsigned int shift_use; + bool active; + bool need_reinject; + bool reinjecting; + bool reset_canceled; + bool reset_requested; + unsigned long reset_keybit[12]; + int reset_seq_len; + int reset_seq_cnt; + int reset_seq_version; + struct timer_list keyreset_timer; +}; + +struct oom_control { + struct zonelist *zonelist; + nodemask_t *nodemask; + struct mem_cgroup *memcg; + const gfp_t gfp_mask; + const int order; + unsigned long totalpages; + struct task_struct *chosen; + long chosen_points; + enum oom_constraint constraint; +}; + +struct swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; +}; + +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, +}; + +struct fixed_phy_status { int link; + int speed; + int duplex; + int pause; + int asym_pause; }; -struct bpf_iter__netlink { +struct fixed_mdio_bus { + struct mii_bus *mii_bus; + struct list_head phys; +}; + +struct fixed_phy { + int addr; + struct phy_device *phydev; + struct fixed_phy_status status; + bool no_carrier; + int (*link_update)(struct net_device *, struct fixed_phy_status *); + struct list_head node; + struct gpio_desc *link_gpiod; +}; + +struct iwl_dump_ini_region_data; + +struct iwl_dump_ini_mem_ops { + u32 (*get_num_of_ranges)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *); + u32 (*get_size)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *); + void * (*fill_mem_hdr)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *, void *, u32); + int (*fill_range)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *, void *, u32, int); +}; + +struct iwl_dump_ini_region_data { + struct iwl_ucode_tlv *reg_tlv; + struct iwl_fwrt_dump_data *dump_data; +}; + +struct iwl_prph_range { + u32 start; + u32 end; +}; + +enum iwl_fw_dbg_trigger_flags { + IWL_FW_DBG_FORCE_RESTART = 1, +}; + +enum iwl_debug_cmds { + LMAC_RD_WR = 0, + UMAC_RD_WR = 1, + HOST_EVENT_CFG = 3, + INVALID_WR_PTR_CMD = 6, + DBGC_SUSPEND_RESUME = 7, + BUFFER_ALLOCATION = 8, + GET_TAS_STATUS = 10, + FW_DUMP_COMPLETE_CMD = 11, + FW_CLEAR_BUFFER = 13, + MFU_ASSERT_DUMP_NTF = 254, +}; + +enum iwl_fw_ini_trigger_apply_policy { + IWL_FW_INI_APPLY_POLICY_MATCH_TIME_POINT = 1, + IWL_FW_INI_APPLY_POLICY_MATCH_DATA = 2, + IWL_FW_INI_APPLY_POLICY_OVERRIDE_REGIONS = 256, + IWL_FW_INI_APPLY_POLICY_OVERRIDE_CFG = 512, + IWL_FW_INI_APPLY_POLICY_OVERRIDE_DATA = 1024, + IWL_FW_INI_APPLY_POLICY_DUMP_COMPLETE_CMD = 65536, +}; + +enum iwl_fw_ini_trigger_reset_fw_policy { + IWL_FW_INI_RESET_FW_MODE_NOTHING = 0, + IWL_FW_INI_RESET_FW_MODE_STOP_FW_ONLY = 1, + IWL_FW_INI_RESET_FW_MODE_STOP_AND_RELOAD_FW = 2, +}; + +enum iwl_fw_ini_region_type { + IWL_FW_INI_REGION_INVALID = 0, + IWL_FW_INI_REGION_TLV = 1, + IWL_FW_INI_REGION_INTERNAL_BUFFER = 2, + IWL_FW_INI_REGION_DRAM_BUFFER = 3, + IWL_FW_INI_REGION_TXF = 4, + IWL_FW_INI_REGION_RXF = 5, + IWL_FW_INI_REGION_LMAC_ERROR_TABLE = 6, + IWL_FW_INI_REGION_UMAC_ERROR_TABLE = 7, + IWL_FW_INI_REGION_RSP_OR_NOTIF = 8, + IWL_FW_INI_REGION_DEVICE_MEMORY = 9, + IWL_FW_INI_REGION_PERIPHERY_MAC = 10, + IWL_FW_INI_REGION_PERIPHERY_PHY = 11, + IWL_FW_INI_REGION_PERIPHERY_AUX = 12, + IWL_FW_INI_REGION_PAGING = 13, + IWL_FW_INI_REGION_CSR = 14, + IWL_FW_INI_REGION_DRAM_IMR = 15, + IWL_FW_INI_REGION_PCI_IOSF_CONFIG = 16, + IWL_FW_INI_REGION_SPECIAL_DEVICE_MEMORY = 17, + IWL_FW_INI_REGION_DBGI_SRAM = 18, + IWL_FW_INI_REGION_PERIPHERY_MAC_RANGE = 19, + IWL_FW_INI_REGION_PERIPHERY_PHY_RANGE = 20, + IWL_FW_INI_REGION_PERIPHERY_SNPS_DPHYIP = 21, + IWL_FW_INI_REGION_NUM = 22, +}; + +enum iwl_fw_ini_dump_type { + IWL_FW_INI_DUMP_BRIEF = 0, + IWL_FW_INI_DUMP_MEDIUM = 1, + IWL_FW_INI_DUMP_VERBOSE = 2, +}; + +enum iwl_fw_ini_dump_policy { + IWL_FW_INI_DEBUG_DUMP_POLICY_NO_LIMIT = 1, + IWL_FW_INI_DEBUG_DUMP_POLICY_MAX_LIMIT_600KB = 2, + IWL_FW_IWL_DEBUG_DUMP_POLICY_MAX_LIMIT_5MB = 4, +}; + +enum iwl_fw_ini_allocation_id { + IWL_FW_INI_ALLOCATION_INVALID = 0, + IWL_FW_INI_ALLOCATION_ID_DBGC1 = 1, + IWL_FW_INI_ALLOCATION_ID_DBGC2 = 2, + IWL_FW_INI_ALLOCATION_ID_DBGC3 = 3, + IWL_FW_INI_ALLOCATION_ID_DBGC4 = 4, + IWL_FW_INI_ALLOCATION_NUM = 5, +}; + +enum iwl_system_subcmd_ids { + SHARED_MEM_CFG_CMD = 0, + SOC_CONFIGURATION_CMD = 1, + INIT_EXTENDED_CFG_CMD = 3, + FW_ERROR_RECOVERY_CMD = 7, + RFI_CONFIG_CMD = 11, + RFI_GET_FREQ_TABLE_CMD = 12, + SYSTEM_FEATURES_CONTROL_CMD = 13, + SYSTEM_STATISTICS_CMD = 15, + SYSTEM_STATISTICS_END_NOTIF = 253, + RFI_DEACTIVATE_NOTIF = 255, +}; + +enum iwl_fw_ini_region_device_memory_subtype { + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_HW_SMEM = 1, + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_UMAC_ERROR_TABLE = 5, + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_1_ERROR_TABLE = 7, + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_2_ERROR_TABLE = 10, + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_1_ERROR_TABLE = 14, + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_2_ERROR_TABLE = 16, + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_1_ERROR_TABLE = 18, + IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_2_ERROR_TABLE = 20, +}; + +enum iwl_fw_error_dump_type { + IWL_FW_ERROR_DUMP_CSR = 1, + IWL_FW_ERROR_DUMP_RXF = 2, + IWL_FW_ERROR_DUMP_TXCMD = 3, + IWL_FW_ERROR_DUMP_DEV_FW_INFO = 4, + IWL_FW_ERROR_DUMP_FW_MONITOR = 5, + IWL_FW_ERROR_DUMP_PRPH = 6, + IWL_FW_ERROR_DUMP_TXF = 7, + IWL_FW_ERROR_DUMP_FH_REGS = 8, + IWL_FW_ERROR_DUMP_MEM = 9, + IWL_FW_ERROR_DUMP_ERROR_INFO = 10, + IWL_FW_ERROR_DUMP_RB = 11, + IWL_FW_ERROR_DUMP_PAGING = 12, + IWL_FW_ERROR_DUMP_RADIO_REG = 13, + IWL_FW_ERROR_DUMP_INTERNAL_TXF = 14, + IWL_FW_ERROR_DUMP_EXTERNAL = 15, + IWL_FW_ERROR_DUMP_MEM_CFG = 16, + IWL_FW_ERROR_DUMP_D3_DEBUG_DATA = 17, +}; + +enum iwl_ucode_sec { + IWL_UCODE_SECTION_DATA = 0, + IWL_UCODE_SECTION_INST = 1, +}; + +enum iwl_fw_error_dump_mem_type { + IWL_FW_ERROR_DUMP_MEM_SRAM = 0, + IWL_FW_ERROR_DUMP_MEM_SMEM = 1, + IWL_FW_ERROR_DUMP_MEM_NAMED_MEM = 10, +}; + +enum iwl_dbg_suspend_resume_cmds { + DBGC_RESUME_CMD = 0, + DBGC_SUSPEND_CMD = 1, +}; + +struct iwl_fw_ini_dump_entry { + struct list_head list; + u32 size; + u8 data[0]; +} __attribute__((packed)); + +struct iwl_dbg_tlv_node { + struct list_head list; + struct iwl_ucode_tlv tlv; +}; + +struct iwl_fw_error_dump_data { + __le32 type; + __le32 len; + __u8 data[0]; +}; + +struct iwl_fw_ini_dump_file_hdr { + __le32 barker; + __le32 file_len; +}; + +struct iwl_fw_ini_region_dev_addr { + __le32 size; + __le32 offset; +}; + +struct iwl_fw_ini_region_dev_addr_range { + __le32 offset; +}; + +struct iwl_fw_ini_region_fifos { + __le32 fid[2]; + __le32 hdr_only; + __le32 offset; +}; + +struct iwl_fw_ini_region_err_table { + __le32 version; + __le32 base_addr; + __le32 size; + __le32 offset; +}; + +struct iwl_fw_ini_region_internal_buffer { + __le32 alloc_id; + __le32 base_addr; + __le32 size; +}; + +struct iwl_fw_ini_region_special_device_memory { + __le16 type; + __le16 version; + __le32 base_addr; + __le32 size; + __le32 offset; +}; + +struct iwl_fw_ini_region_tlv { + struct iwl_fw_ini_header hdr; + __le32 id; + u8 type; + u8 sub_type; + u8 sub_type_ver; + u8 reserved; + u8 name[32]; union { - struct bpf_iter_meta *meta; + struct iwl_fw_ini_region_dev_addr dev_addr; + struct iwl_fw_ini_region_dev_addr_range dev_addr_range; + struct iwl_fw_ini_region_fifos fifos; + struct iwl_fw_ini_region_err_table err_table; + struct iwl_fw_ini_region_internal_buffer internal_buffer; + struct iwl_fw_ini_region_special_device_memory special_mem; + __le32 dram_alloc_id; + __le32 tlv_mask; }; + __le32 addrs[0]; +}; + +struct iwl_fw_dump_ptrs { + struct iwl_trans_dump_data *trans_ptr; + void *fwrt_ptr; + u32 fwrt_len; +}; + +struct iwl_fw_error_dump_file { + __le32 barker; + __le32 file_len; + u8 data[0]; +}; + +struct iwl_fw_error_dump_info { + __le32 hw_type; + __le32 hw_step; + u8 fw_human_readable[64]; + u8 dev_human_readable[64]; + u8 bus_human_readable[8]; + u8 num_of_lmacs; + __le32 umac_err_id; + __le32 lmac_err_id[2]; +} __attribute__((packed)); + +struct iwl_fw_error_dump_smem_cfg { + __le32 num_lmacs; + __le32 num_txfifo_entries; + struct { + __le32 txfifo_size[15]; + __le32 rxfifo1_size; + } lmac[2]; + __le32 rxfifo2_size; + __le32 internal_txfifo_addr; + __le32 internal_txfifo_size[6]; +}; + +struct iwl_dump_file_name_info { + __le32 type; + __le32 len; + __u8 data[0]; +}; + +struct iwl_fw_ini_dump_cfg_name { + __le32 image_type; + __le32 cfg_name_len; + u8 cfg_name[64]; +}; + +struct iwl_fw_ini_dump_info { + __le32 version; + __le32 time_point; + __le32 trigger_reason; + __le32 external_cfg_state; + __le32 ver_type; + __le32 ver_subtype; + __le32 hw_step; + __le32 hw_type; + __le32 rf_id_flavor; + __le32 rf_id_dash; + __le32 rf_id_step; + __le32 rf_id_type; + __le32 lmac_major; + __le32 lmac_minor; + __le32 umac_major; + __le32 umac_minor; + __le32 fw_mon_mode; + __le64 regions_mask; + __le32 build_tag_len; + u8 build_tag[64]; + __le32 num_of_cfg_names; + struct iwl_fw_ini_dump_cfg_name cfg_names[0]; +} __attribute__((packed)); + +struct iwl_fw_ini_debug_info_tlv { + struct iwl_fw_ini_header hdr; + __le32 image_type; + u8 debug_cfg_name[64]; +}; + +struct iwl_dbg_dump_complete_cmd { + __le32 tp; + __le32 tp_data; +}; + +struct iwl_fw_error_dump_fifo { + __le32 fifo_num; + __le32 available_bytes; + __le32 wr_ptr; + __le32 rd_ptr; + __le32 fence_ptr; + __le32 fence_mode; + u8 data[0]; +}; + +struct iwl_fw_error_dump_mem { + __le32 type; + __le32 offset; + u8 data[0]; +}; + +struct iwl_fw_error_dump_paging { + __le32 index; + __le32 reserved; + u8 data[0]; +}; + +struct iwl_fw_error_dump_prph { + __le32 prph_start; + __le32 data[0]; +}; + +struct iwl_fw_dbg_params { + u32 in_sample; + u32 out_ctrl; +}; + +struct iwl_dbg_suspend_resume_cmd { + __le32 operation; +}; + +struct iwl_fw_ini_fifo_hdr { + __le32 fifo_num; + __le32 num_of_registers; +}; + +struct iwl_fw_ini_error_dump_range { + __le32 range_data_size; union { - struct netlink_sock *sk; + __le32 internal_base_addr; + __le64 dram_base_addr; + __le32 page_num; + struct iwl_fw_ini_fifo_hdr fifo_hdr; + struct iwl_cmd_header fw_pkt_hdr; + }; + __le32 data[0]; +} __attribute__((packed)); + +struct iwl_mvm_marker { + u8 dw_len; + u8 marker_id; + __le16 reserved; + __le64 timestamp; + __le32 metadata[0]; +} __attribute__((packed)); + +struct iwl_mvm_marker_rsp { + __le32 gp2; +}; + +struct iwl_fw_dbg_config_cmd { + __le32 type; + __le32 conf; +}; + +struct iwl_fw_ini_error_dump_data { + u8 type; + u8 sub_type; + u8 sub_type_ver; + u8 reserved; + __le32 len; + __u8 data[0]; +}; + +struct iwl_fw_ini_error_dump_header { + __le32 version; + __le32 region_id; + __le32 num_of_ranges; + __le32 name_len; + u8 name[32]; +}; + +struct iwl_fw_ini_monitor_dump { + struct iwl_fw_ini_error_dump_header header; + __le32 write_ptr; + __le32 cycle_cnt; + __le32 cur_frag; + u8 data[0]; +}; + +struct iwl_fw_ini_error_dump { + struct iwl_fw_ini_error_dump_header header; + u8 data[0]; +}; + +struct iwl_fw_ini_error_dump_register { + __le32 addr; + __le32 data; +}; + +struct iwl_ini_rxf_data { + u32 fifo_num; + u32 size; + u32 offset; +}; + +struct iwl_fw_ini_err_table_dump { + struct iwl_fw_ini_error_dump_header header; + __le32 version; + u8 data[0]; +}; + +struct iwl_fw_ini_special_device_memory { + struct iwl_fw_ini_error_dump_header header; + __le16 type; + __le16 version; + u8 data[0]; +}; + +struct iwl_fw_ini_addr_size { + __le32 addr; + __le32 size; +}; + +enum rtw_c2h_cmd_id { + C2H_CCX_TX_RPT = 3, + C2H_BT_INFO = 9, + C2H_BT_MP_INFO = 11, + C2H_BT_HID_INFO = 69, + C2H_RA_RPT = 12, + C2H_HW_FEATURE_REPORT = 25, + C2H_WLAN_INFO = 39, + C2H_WLAN_RFON = 50, + C2H_BCN_FILTER_NOTIFY = 54, + C2H_ADAPTIVITY = 55, + C2H_SCAN_RESULT = 56, + C2H_HW_FEATURE_DUMP = 253, + C2H_HALMAC = 255, +}; + +enum rtw_rsvd_packet_type { + RSVD_BEACON = 0, + RSVD_DUMMY = 1, + RSVD_PS_POLL = 2, + RSVD_PROBE_RESP = 3, + RSVD_NULL = 4, + RSVD_QOS_NULL = 5, + RSVD_LPS_PG_DPK = 6, + RSVD_LPS_PG_INFO = 7, + RSVD_PROBE_REQ = 8, + RSVD_NLO_INFO = 9, + RSVD_CH_INFO = 10, +}; + +enum ieee80211_vht_mcs_support { + IEEE80211_VHT_MCS_SUPPORT_0_7 = 0, + IEEE80211_VHT_MCS_SUPPORT_0_8 = 1, + IEEE80211_VHT_MCS_SUPPORT_0_9 = 2, + IEEE80211_VHT_MCS_NOT_SUPPORTED = 3, +}; + +enum rtw_rate_index { + RTW_RATEID_BGN_40M_2SS = 0, + RTW_RATEID_BGN_40M_1SS = 1, + RTW_RATEID_BGN_20M_2SS = 2, + RTW_RATEID_BGN_20M_1SS = 3, + RTW_RATEID_GN_N2SS = 4, + RTW_RATEID_GN_N1SS = 5, + RTW_RATEID_BG = 6, + RTW_RATEID_G = 7, + RTW_RATEID_B_20M = 8, + RTW_RATEID_ARFR0_AC_2SS = 9, + RTW_RATEID_ARFR1_AC_1SS = 10, + RTW_RATEID_ARFR2_AC_2G_1SS = 11, + RTW_RATEID_ARFR3_AC_2G_2SS = 12, + RTW_RATEID_ARFR4_AC_3SS = 13, + RTW_RATEID_ARFR5_N_3SS = 14, + RTW_RATEID_ARFR7_N_4SS = 15, + RTW_RATEID_ARFR6_AC_4SS = 16, +}; + +enum rtw_txq_flags { + RTW_TXQ_AMPDU = 0, + RTW_TXQ_BLOCK_BA = 1, +}; + +struct rtw_tx_desc { + __le32 w0; + __le32 w1; + __le32 w2; + __le32 w3; + __le32 w4; + __le32 w5; + __le32 w6; + __le32 w7; + __le32 w8; + __le32 w9; +}; + +struct rtw_rsvd_page { + struct list_head vif_list; + struct rtw_vif *rtwvif; + struct list_head build_list; + struct sk_buff *skb; + enum rtw_rsvd_packet_type type; + u8 page; + u16 tim_offset; + bool add_txdesc; + struct cfg80211_ssid *ssid; + u16 probe_req_size; +}; + +struct rtw_txq { + struct list_head list; + unsigned long flags; +}; + +struct ptp_extts_event { + struct ptp_clock_time t; + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct debugfs_u32_array { + u32 *array; + u32 n_elements; +}; + +struct timestamp_event_queue { + struct ptp_extts_event buf[128]; + int head; + int tail; + spinlock_t lock; + struct list_head qlist; + unsigned long *mask; + struct dentry *debugfs_instance; + struct debugfs_u32_array dfs_bitmap; +}; + +struct ptp_vclock { + struct ptp_clock *pclock; + struct ptp_clock_info info; + struct ptp_clock *clock; + struct hlist_node vclock_hash_node; + struct cyclecounter cc; + struct timecounter tc; + struct mutex lock; +}; + +struct posix_clock; + +struct posix_clock_context; + +struct posix_clock_operations { + struct module *owner; + int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); + int (*clock_gettime)(struct posix_clock *, struct timespec64 *); + int (*clock_getres)(struct posix_clock *, struct timespec64 *); + int (*clock_settime)(struct posix_clock *, const struct timespec64 *); + long (*ioctl)(struct posix_clock_context *, unsigned int, unsigned long); + int (*open)(struct posix_clock_context *, fmode_t); + __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); + int (*release)(struct posix_clock_context *); + ssize_t (*read)(struct posix_clock_context *, uint, char __attribute__((btf_type_tag("user"))) *, size_t); +}; + +struct posix_clock { + struct posix_clock_operations ops; + struct cdev cdev; + struct device *dev; + struct rw_semaphore rwsem; + bool zombie; +}; + +struct kthread_work; + +typedef void (*kthread_work_func_t)(struct kthread_work *); + +struct kthread_worker; + +struct kthread_work { + struct list_head node; + kthread_work_func_t func; + struct kthread_worker *worker; + int canceling; +}; + +struct kthread_delayed_work { + struct kthread_work work; + struct timer_list timer; +}; + +struct pps_device; + +struct ptp_clock { + struct posix_clock clock; + struct device dev; + struct ptp_clock_info *info; + dev_t devid; + int index; + struct pps_device *pps_source; + long dialed_frequency; + struct list_head tsevqs; + spinlock_t tsevqs_lock; + struct mutex pincfg_mux; + wait_queue_head_t tsev_wq; + int defunct; + struct device_attribute *pin_dev_attr; + struct attribute **pin_attr; + struct attribute_group pin_attr_group; + const struct attribute_group *pin_attr_groups[2]; + struct kthread_worker *kworker; + struct kthread_delayed_work aux_work; + unsigned int max_vclocks; + unsigned int n_vclocks; + int *vclock_index; + struct mutex n_vclocks_mux; + bool is_virtual_clock; + bool has_cycles; + struct dentry *debugfs_root; +}; + +struct posix_clock_context { + struct posix_clock *clk; + void *private_clkdata; +}; + +struct pps_source_info { + char name[32]; + char path[32]; + int mode; + void (*echo)(struct pps_device *, int, void *); + struct module *owner; + struct device *dev; +}; + +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; +}; + +struct pps_kparams { + int api_version; + int mode; + struct pps_ktime assert_off_tu; + struct pps_ktime clear_off_tu; +}; + +struct pps_device { + struct pps_source_info info; + struct pps_kparams params; + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; + unsigned int last_ev; + wait_queue_head_t queue; + unsigned int id; + const void *lookup_cookie; + struct cdev cdev; + struct device *dev; + struct fasync_struct *async_queue; + spinlock_t lock; +}; + +struct kthread_worker { + unsigned int flags; + raw_spinlock_t lock; + struct list_head work_list; + struct list_head delayed_work_list; + struct task_struct *task; + struct kthread_work *current_work; +}; + +struct dmi_memdev_info { + const char *device; + const char *bank; + u64 size; + u16 handle; + u8 type; +}; + +enum dmi_device_type { + DMI_DEV_TYPE_ANY = 0, + DMI_DEV_TYPE_OTHER = 1, + DMI_DEV_TYPE_UNKNOWN = 2, + DMI_DEV_TYPE_VIDEO = 3, + DMI_DEV_TYPE_SCSI = 4, + DMI_DEV_TYPE_ETHERNET = 5, + DMI_DEV_TYPE_TOKENRING = 6, + DMI_DEV_TYPE_SOUND = 7, + DMI_DEV_TYPE_PATA = 8, + DMI_DEV_TYPE_SATA = 9, + DMI_DEV_TYPE_SAS = 10, + DMI_DEV_TYPE_IPMI = -1, + DMI_DEV_TYPE_OEM_STRING = -2, + DMI_DEV_TYPE_DEV_ONBOARD = -3, + DMI_DEV_TYPE_DEV_SLOT = -4, +}; + +enum dmi_entry_type { + DMI_ENTRY_BIOS = 0, + DMI_ENTRY_SYSTEM = 1, + DMI_ENTRY_BASEBOARD = 2, + DMI_ENTRY_CHASSIS = 3, + DMI_ENTRY_PROCESSOR = 4, + DMI_ENTRY_MEM_CONTROLLER = 5, + DMI_ENTRY_MEM_MODULE = 6, + DMI_ENTRY_CACHE = 7, + DMI_ENTRY_PORT_CONNECTOR = 8, + DMI_ENTRY_SYSTEM_SLOT = 9, + DMI_ENTRY_ONBOARD_DEVICE = 10, + DMI_ENTRY_OEMSTRINGS = 11, + DMI_ENTRY_SYSCONF = 12, + DMI_ENTRY_BIOS_LANG = 13, + DMI_ENTRY_GROUP_ASSOC = 14, + DMI_ENTRY_SYSTEM_EVENT_LOG = 15, + DMI_ENTRY_PHYS_MEM_ARRAY = 16, + DMI_ENTRY_MEM_DEVICE = 17, + DMI_ENTRY_32_MEM_ERROR = 18, + DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, + DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, + DMI_ENTRY_BUILTIN_POINTING_DEV = 21, + DMI_ENTRY_PORTABLE_BATTERY = 22, + DMI_ENTRY_SYSTEM_RESET = 23, + DMI_ENTRY_HW_SECURITY = 24, + DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, + DMI_ENTRY_VOLTAGE_PROBE = 26, + DMI_ENTRY_COOLING_DEV = 27, + DMI_ENTRY_TEMP_PROBE = 28, + DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, + DMI_ENTRY_OOB_REMOTE_ACCESS = 30, + DMI_ENTRY_BIS_ENTRY = 31, + DMI_ENTRY_SYSTEM_BOOT = 32, + DMI_ENTRY_MGMT_DEV = 33, + DMI_ENTRY_MGMT_DEV_COMPONENT = 34, + DMI_ENTRY_MGMT_DEV_THRES = 35, + DMI_ENTRY_MEM_CHANNEL = 36, + DMI_ENTRY_IPMI_DEV = 37, + DMI_ENTRY_SYS_POWER_SUPPLY = 38, + DMI_ENTRY_ADDITIONAL = 39, + DMI_ENTRY_ONBOARD_DEV_EXT = 40, + DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, + DMI_ENTRY_INACTIVE = 126, + DMI_ENTRY_END_OF_TABLE = 127, +}; + +struct dmi_device { + struct list_head list; + int type; + const char *name; + void *device_data; +}; + +struct dmi_header { + u8 type; + u8 length; + u16 handle; +}; + +struct dmi_dev_onboard { + struct dmi_device dev; + int instance; + int segment; + int bus; + int devfn; +}; + +struct rps_sock_flow_table { + u32 mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 ents[0]; +}; + +struct __call_single_data { + struct __call_single_node node; + smp_call_func_t func; + void *info; +}; + +typedef struct __call_single_data call_single_data_t; + +struct sd_flow_limit; + +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + unsigned int processed; + unsigned int time_squeeze; + struct softnet_data *rps_ipi_list; + bool in_net_rx_action; + bool in_napi_threaded_poll; + struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + struct { + u16 recursion; + u8 more; + u8 skip_txqueue; + } xmit; + long: 64; + long: 64; + long: 64; + unsigned int input_queue_head; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + call_single_data_t csd; + struct softnet_data *rps_ipi_next; + unsigned int cpu; + unsigned int input_queue_tail; + unsigned int received_rps; + unsigned int dropped; + struct sk_buff_head input_pkt_queue; + struct napi_struct backlog; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t defer_lock; + int defer_count; + int defer_ipi_scheduled; + struct sk_buff *defer_list; + long: 64; + long: 64; + call_single_data_t defer_csd; +}; + +struct sd_flow_limit { + u64 count; + unsigned int num_buckets; + unsigned int history_head; + u16 history[128]; + u8 buckets[0]; +}; + +enum { + ETHTOOL_A_RSS_UNSPEC = 0, + ETHTOOL_A_RSS_HEADER = 1, + ETHTOOL_A_RSS_CONTEXT = 2, + ETHTOOL_A_RSS_HFUNC = 3, + ETHTOOL_A_RSS_INDIR = 4, + ETHTOOL_A_RSS_HKEY = 5, + ETHTOOL_A_RSS_INPUT_XFRM = 6, + __ETHTOOL_A_RSS_CNT = 7, + ETHTOOL_A_RSS_MAX = 6, +}; + +struct rss_req_info { + struct ethnl_req_info base; + u32 rss_context; +}; + +struct rss_reply_data { + struct ethnl_reply_data base; + u32 indir_size; + u32 hkey_size; + u32 hfunc; + u32 input_xfrm; + u32 *indir_table; + u8 *hkey; +}; + +struct nf_conn___init { + struct nf_conn ct; +}; + +struct inet_protosw { + struct list_head list; + unsigned short type; + unsigned short protocol; + struct proto *prot; + const struct proto_ops *ops; + unsigned char flags; +}; + +enum { + ICMP6_MIB_NUM = 0, + ICMP6_MIB_INMSGS = 1, + ICMP6_MIB_INERRORS = 2, + ICMP6_MIB_OUTMSGS = 3, + ICMP6_MIB_OUTERRORS = 4, + ICMP6_MIB_CSUMERRORS = 5, + ICMP6_MIB_RATELIMITHOST = 6, + __ICMP6_MIB_MAX = 7, +}; + +struct ipcm6_cookie { + struct sockcm_cookie sockc; + __s16 hlimit; + __s16 tclass; + __u16 gso_size; + __s8 dontfrag; + struct ipv6_txoptions *opt; +}; + +struct radiotap_align_size; + +struct ieee80211_radiotap_namespace { + const struct radiotap_align_size *align_size; + int n_bits; + uint32_t oui; + uint8_t subns; +}; + +struct radiotap_align_size { + uint8_t align: 4; + uint8_t size: 4; +}; + +struct ieee80211_radiotap_header; + +struct ieee80211_radiotap_vendor_namespaces; + +struct ieee80211_radiotap_iterator { + struct ieee80211_radiotap_header *_rtheader; + const struct ieee80211_radiotap_vendor_namespaces *_vns; + const struct ieee80211_radiotap_namespace *current_namespace; + unsigned char *_arg; + unsigned char *_next_ns_data; + __le32 *_next_bitmap; + unsigned char *this_arg; + int this_arg_index; + int this_arg_size; + int is_radiotap_ns; + int _max_length; + int _arg_index; + uint32_t _bitmap_shifter; + int _reset_on_ext; +}; + +struct ieee80211_radiotap_header { + uint8_t it_version; + uint8_t it_pad; + __le16 it_len; + __le32 it_present; + __le32 it_optional[0]; +}; + +struct ieee80211_radiotap_vendor_namespaces { + const struct ieee80211_radiotap_namespace *ns; + int n_ns; +}; + +enum ieee80211_eid_ext { + WLAN_EID_EXT_ASSOC_DELAY_INFO = 1, + WLAN_EID_EXT_FILS_REQ_PARAMS = 2, + WLAN_EID_EXT_FILS_KEY_CONFIRM = 3, + WLAN_EID_EXT_FILS_SESSION = 4, + WLAN_EID_EXT_FILS_HLP_CONTAINER = 5, + WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN = 6, + WLAN_EID_EXT_KEY_DELIVERY = 7, + WLAN_EID_EXT_FILS_WRAPPED_DATA = 8, + WLAN_EID_EXT_FILS_PUBLIC_KEY = 12, + WLAN_EID_EXT_FILS_NONCE = 13, + WLAN_EID_EXT_FUTURE_CHAN_GUIDANCE = 14, + WLAN_EID_EXT_HE_CAPABILITY = 35, + WLAN_EID_EXT_HE_OPERATION = 36, + WLAN_EID_EXT_UORA = 37, + WLAN_EID_EXT_HE_MU_EDCA = 38, + WLAN_EID_EXT_HE_SPR = 39, + WLAN_EID_EXT_NDP_FEEDBACK_REPORT_PARAMSET = 41, + WLAN_EID_EXT_BSS_COLOR_CHG_ANN = 42, + WLAN_EID_EXT_QUIET_TIME_PERIOD_SETUP = 43, + WLAN_EID_EXT_ESS_REPORT = 45, + WLAN_EID_EXT_OPS = 46, + WLAN_EID_EXT_HE_BSS_LOAD = 47, + WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME = 52, + WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION = 55, + WLAN_EID_EXT_NON_INHERITANCE = 56, + WLAN_EID_EXT_KNOWN_BSSID = 57, + WLAN_EID_EXT_SHORT_SSID_LIST = 58, + WLAN_EID_EXT_HE_6GHZ_CAPA = 59, + WLAN_EID_EXT_UL_MU_POWER_CAPA = 60, + WLAN_EID_EXT_EHT_OPERATION = 106, + WLAN_EID_EXT_EHT_MULTI_LINK = 107, + WLAN_EID_EXT_EHT_CAPABILITY = 108, + WLAN_EID_EXT_TID_TO_LINK_MAPPING = 109, + WLAN_EID_EXT_BANDWIDTH_INDICATION = 135, +}; + +enum cfg80211_rnr_iter_ret { + RNR_ITER_CONTINUE = 0, + RNR_ITER_BREAK = 1, + RNR_ITER_ERROR = 2, +}; + +enum nl80211_scan_flags { + NL80211_SCAN_FLAG_LOW_PRIORITY = 1, + NL80211_SCAN_FLAG_FLUSH = 2, + NL80211_SCAN_FLAG_AP = 4, + NL80211_SCAN_FLAG_RANDOM_ADDR = 8, + NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 16, + NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 32, + NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 64, + NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 128, + NL80211_SCAN_FLAG_LOW_SPAN = 256, + NL80211_SCAN_FLAG_LOW_POWER = 512, + NL80211_SCAN_FLAG_HIGH_ACCURACY = 1024, + NL80211_SCAN_FLAG_RANDOM_SN = 2048, + NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 4096, + NL80211_SCAN_FLAG_FREQ_KHZ = 8192, + NL80211_SCAN_FLAG_COLOCATED_6GHZ = 16384, +}; + +enum cfg80211_bss_frame_type { + CFG80211_BSS_FTYPE_UNKNOWN = 0, + CFG80211_BSS_FTYPE_BEACON = 1, + CFG80211_BSS_FTYPE_PRESP = 2, + CFG80211_BSS_FTYPE_S1G_BEACON = 3, +}; + +struct cfg80211_inform_single_bss_data { + struct cfg80211_inform_bss *drv_data; + enum cfg80211_bss_frame_type ftype; + struct ieee80211_channel *channel; + u8 bssid[6]; + u64 tsf; + u16 capability; + u16 beacon_interval; + const u8 *ie; + size_t ielen; + enum { + BSS_SOURCE_DIRECT = 0, + BSS_SOURCE_MBSSID = 1, + BSS_SOURCE_STA_PROFILE = 2, + } bss_source; + struct cfg80211_bss *source_bss; + u8 max_bssid_indicator; + u8 bssid_index; + u8 use_for; + u64 cannot_use_reasons; +}; + +enum nl80211_bss_use_for { + NL80211_BSS_USE_FOR_NORMAL = 1, + NL80211_BSS_USE_FOR_MLD_LINK = 2, +}; + +enum bss_compare_mode { + BSS_CMP_REGULAR = 0, + BSS_CMP_HIDE_ZLEN = 1, + BSS_CMP_HIDE_NUL = 2, +}; + +enum nl80211_bss_cannot_use_reasons { + NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 1, + NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 2, +}; + +enum ieee80211_mle_subelems { + IEEE80211_MLE_SUBELEM_PER_STA_PROFILE = 0, + IEEE80211_MLE_SUBELEM_FRAGMENT = 254, +}; + +struct element { + u8 id; + u8 datalen; + u8 data[0]; +}; + +struct cfg80211_colocated_ap { + struct list_head list; + u8 bssid[6]; + u8 ssid[32]; + size_t ssid_len; + u32 short_ssid; + u32 center_freq; + u8 unsolicited_probe: 1; + u8 oct_recommended: 1; + u8 same_ssid: 1; + u8 multi_bss: 1; + u8 transmitted_bssid: 1; + u8 colocated_ess: 1; + u8 short_ssid_valid: 1; + s8 psd_20; +}; + +struct colocated_ap_data { + const struct element *ssid_elem; + struct list_head ap_list; + u32 s_ssid_tmp; + int n_coloc; +}; + +struct ieee80211_neighbor_ap_info { + u8 tbtt_info_hdr; + u8 tbtt_info_len; + u8 op_class; + u8 channel; +}; + +struct ieee80211_rnr_mld_params { + u8 mld_id; + __le16 params; +} __attribute__((packed)); + +struct ieee80211_tbtt_info_ge_11 { + u8 tbtt_offset; + u8 bssid[6]; + __le32 short_ssid; + u8 bss_params; + s8 psd_20; + struct ieee80211_rnr_mld_params mld_params; +} __attribute__((packed)); + +struct ieee80211_tbtt_info_7_8_9 { + u8 tbtt_offset; + u8 bssid[6]; + u8 bss_params; + s8 psd_20; +}; + +struct ieee80211_he_6ghz_oper { + u8 primary; + u8 control; + u8 ccfs0; + u8 ccfs1; + u8 minrate; +}; + +struct cfg80211_mle { + struct ieee80211_multi_link_elem *mle; + struct ieee80211_mle_per_sta_profile *sta_prof[15]; + ssize_t sta_prof_len[15]; + u8 data[0]; +}; + +struct tbtt_info_iter_data { + const struct ieee80211_neighbor_ap_info *ap_info; + u8 param_ch_count; + u32 use_for; + u8 mld_id; + u8 link_id; +}; + +struct ieee80211_ext { + __le16 frame_control; + __le16 duration; + union { + struct { + u8 sa[6]; + __le32 timestamp; + u8 change_seq; + u8 variable[0]; + } __attribute__((packed)) s1g_beacon; + struct { + u8 sa[6]; + __le32 timestamp; + u8 change_seq; + u8 next_tbtt[3]; + u8 variable[0]; + } __attribute__((packed)) s1g_short_beacon; + } u; +}; + +enum vmx_feature_leafs { + MISC_FEATURES = 0, + PRIMARY_CTLS = 1, + SECONDARY_CTLS = 2, + TERTIARY_CTLS_LOW = 3, + TERTIARY_CTLS_HIGH = 4, + NR_VMX_FEATURE_WORDS = 5, +}; + +struct sku_microcode { + u8 model; + u8 stepping; + u32 microcode; +}; + +struct _tlb_table { + unsigned char descriptor; + char tlb_type; + unsigned int entries; + char info[128]; +}; + +enum split_lock_detect_state { + sld_off = 0, + sld_warn = 1, + sld_fatal = 2, + sld_ratelimit = 3, +}; + +struct tick_sched { + unsigned long flags; + unsigned int stalled_jiffies; + unsigned long last_tick_jiffies; + struct hrtimer sched_timer; + ktime_t last_tick; + ktime_t next_tick; + unsigned long idle_jiffies; + ktime_t idle_waketime; + unsigned int got_idle_tick; + seqcount_t idle_sleeptime_seq; + ktime_t idle_entrytime; + unsigned long last_jiffies; + u64 timer_expires_base; + u64 timer_expires; + u64 next_timer; + ktime_t idle_expires; + unsigned long idle_calls; + unsigned long idle_sleeps; + ktime_t idle_exittime; + ktime_t idle_sleeptime; + ktime_t iowait_sleeptime; + atomic_t tick_dep_mask; + unsigned long check_clocks; +}; + +enum tick_dep_bits { + TICK_DEP_BIT_POSIX_TIMER = 0, + TICK_DEP_BIT_PERF_EVENTS = 1, + TICK_DEP_BIT_SCHED = 2, + TICK_DEP_BIT_CLOCK_UNSTABLE = 3, + TICK_DEP_BIT_RCU = 4, + TICK_DEP_BIT_RCU_EXP = 5, +}; + +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, +}; + +struct tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; +}; + +struct bpf_async_cb { + struct bpf_map *map; + struct bpf_prog *prog; + void __attribute__((btf_type_tag("rcu"))) *callback_fn; + void *value; + struct callback_head rcu; + u64 flags; +}; + +struct bpf_hrtimer { + struct bpf_async_cb cb; + struct hrtimer timer; +}; + +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; +}; + +enum bpf_async_type { + BPF_ASYNC_TYPE_TIMER = 0, + BPF_ASYNC_TYPE_WQ = 1, +}; + +enum { + BPF_F_INDEX_MASK = 4294967295ULL, + BPF_F_CURRENT_CPU = 4294967295ULL, + BPF_F_CTXLEN_MASK = 4503595332403200ULL, +}; + +enum { + BPF_F_TIMER_ABS = 1, + BPF_F_TIMER_CPU_PIN = 2, +}; + +typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); + +typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); + +typedef u64 (*btf_bpf_get_smp_processor_id)(); + +typedef u64 (*btf_bpf_get_numa_node_id)(); + +typedef u64 (*btf_bpf_ktime_get_ns)(); + +typedef u64 (*btf_bpf_ktime_get_boot_ns)(); + +typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); + +typedef u64 (*btf_bpf_ktime_get_tai_ns)(); + +typedef u64 (*btf_bpf_get_current_pid_tgid)(); + +typedef u64 (*btf_bpf_get_current_uid_gid)(); + +typedef u64 (*btf_bpf_get_current_comm)(char *, u32); + +struct bpf_spin_lock; + +typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); + +struct bpf_spin_lock { + __u32 val; +}; + +typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); + +typedef u64 (*btf_bpf_jiffies64)(); + +typedef u64 (*btf_bpf_get_current_cgroup_id)(); + +typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); + +typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *); + +typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *); + +typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); + +struct bpf_pidns_info; + +typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); + +struct bpf_pidns_info { + __u32 pid; + __u32 tgid; +}; + +typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); + +typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); + +typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); + +typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); + +typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); + +struct bpf_async_kern; + +typedef u64 (*btf_bpf_timer_init)(struct bpf_async_kern *, struct bpf_map *, u64); + +struct bpf_work; + +struct bpf_async_kern { + union { + struct bpf_async_cb *cb; + struct bpf_hrtimer *timer; + struct bpf_work *work; + }; + struct bpf_spin_lock lock; +}; + +struct bpf_work { + struct bpf_async_cb cb; + struct work_struct work; + struct work_struct delete_work; +}; + +typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_async_kern *, void *, struct bpf_prog_aux *); + +typedef u64 (*btf_bpf_timer_start)(struct bpf_async_kern *, u64, u64); + +typedef u64 (*btf_bpf_timer_cancel)(struct bpf_async_kern *); + +struct bpf_wq { + __u64 __opaque[2]; +}; + +typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); + +struct bpf_dynptr_kern; + +typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); + +struct bpf_dynptr_kern { + void *data; + u32 size; + u32 offset; +}; + +typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); + +typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); + +typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); + +struct bpf_refcount { + __u32 __opaque[1]; +}; + +struct bpf_rb_node_kern { + struct rb_node rb_node; + void *owner; +}; + +struct bpf_rb_node { + __u64 __opaque[4]; +}; + +struct bpf_dynptr { + __u64 __opaque[2]; +}; + +struct bpf_list_node_kern { + struct list_head list_head; + void *owner; +}; + +struct bpf_list_node { + __u64 __opaque[3]; +}; + +struct bpf_timer { + __u64 __opaque[2]; +}; + +typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); + +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; +}; + +struct bpf_list_head { + __u64 __opaque[2]; +}; + +struct bpf_rb_root { + __u64 __opaque[2]; +}; + +struct bpf_throw_ctx { + struct bpf_prog_aux *aux; + u64 sp; + u64 bp; + int cnt; +}; + +struct zswap_tree { + struct rb_root rbroot; + spinlock_t lock; +}; + +enum zswap_init_type { + ZSWAP_UNINIT = 0, + ZSWAP_INIT_SUCCEED = 1, + ZSWAP_INIT_FAILED = 2, +}; + +enum memcg_stat_item { + MEMCG_SWAP = 44, + MEMCG_SOCK = 45, + MEMCG_PERCPU_B = 46, + MEMCG_VMALLOC = 47, + MEMCG_KMEM = 48, + MEMCG_ZSWAP_B = 49, + MEMCG_ZSWAPPED = 50, + MEMCG_NR_STAT = 51, +}; + +enum { + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, +}; + +enum zpool_mapmode { + ZPOOL_MM_RW = 0, + ZPOOL_MM_RO = 1, + ZPOOL_MM_WO = 2, + ZPOOL_MM_DEFAULT = 0, +}; + +struct zpool; + +struct crypto_acomp_ctx; + +struct zswap_pool { + struct zpool *zpools[32]; + struct crypto_acomp_ctx __attribute__((btf_type_tag("percpu"))) *acomp_ctx; + struct percpu_ref ref; + struct list_head list; + struct work_struct release_work; + struct hlist_node node; + char tfm_name[128]; +}; + +struct crypto_acomp; + +struct acomp_req; + +struct crypto_acomp_ctx { + struct crypto_acomp *acomp; + struct acomp_req *req; + struct crypto_wait wait; + u8 *buffer; + struct mutex mutex; + bool is_sleepable; +}; + +struct crypto_acomp { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct acomp_req { + struct crypto_async_request base; + struct scatterlist *src; + struct scatterlist *dst; + unsigned int slen; + unsigned int dlen; + u32 flags; + void *__ctx[0]; +}; + +struct zswap_entry { + struct rb_node rbnode; + swp_entry_t swpentry; + unsigned int length; + struct zswap_pool *pool; + union { + unsigned long handle; + unsigned long value; + }; + struct obj_cgroup *objcg; + struct list_head lru; +}; + +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + unsigned int generation; +}; + +struct inotify_event_info { + struct fsnotify_event fse; + u32 mask; + int wd; + u32 sync_cookie; + int name_len; + char name[0]; +}; + +struct iomap_ops { + int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); + int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); +}; + +struct partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; +}; + +enum { + ES_WRITTEN_B = 0, + ES_UNWRITTEN_B = 1, + ES_DELAYED_B = 2, + ES_HOLE_B = 3, + ES_REFERENCED_B = 4, + ES_FLAGS = 5, +}; + +enum SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, +}; + +struct ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; +}; + +struct ext4_extent_tail { + __le32 et_checksum; +}; + +struct ext4_iloc { + struct buffer_head *bh; + unsigned long offset; + ext4_group_t block_group; +}; + +struct ext4_io_end { + struct list_head list; + handle_t *handle; + struct inode *inode; + struct bio *bio; + unsigned int flag; + refcount_t count; + struct list_head list_vec; +}; + +typedef struct ext4_io_end ext4_io_end_t; + +struct ipc_params; + +struct kern_ipc_perm; + +struct ipc_ops { + int (*getnew)(struct ipc_namespace *, struct ipc_params *); + int (*associate)(struct kern_ipc_perm *, int); + int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *); +}; + +struct sem_undo_list { + refcount_t refcnt; + spinlock_t lock; + struct list_head list_proc; +}; + +typedef int __kernel_key_t; + +typedef __kernel_key_t key_t; + +struct ipc_params { + key_t key; + int flg; + union { + size_t size; + int nsems; + } u; +}; + +struct kern_ipc_perm { + spinlock_t lock; + bool deleted; + int id; + key_t key; + kuid_t uid; + kgid_t gid; + kuid_t cuid; + kgid_t cgid; + umode_t mode; + unsigned long seq; + void *security; + struct rhash_head khtnode; + struct callback_head rcu; + refcount_t refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct sem_undo { + struct list_head list_proc; + struct callback_head rcu; + struct sem_undo_list *ulp; + struct list_head list_id; + int semid; + short semadj[0]; +}; + +struct sem { + int semval; + struct pid *sempid; + spinlock_t lock; + struct list_head pending_alter; + struct list_head pending_const; + time64_t sem_otime; + long: 64; +}; + +struct sem_array { + struct kern_ipc_perm sem_perm; + time64_t sem_ctime; + struct list_head pending_alter; + struct list_head pending_const; + struct list_head list_id; + int sem_nsems; + int complex_count; + unsigned int use_global_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sem sems[0]; +}; + +struct sembuf; + +struct sem_queue { + struct list_head list; + struct task_struct *sleeper; + struct sem_undo *undo; + struct pid *pid; + int status; + struct sembuf *sops; + struct sembuf *blocking; + int nsops; + bool alter; + bool dupsop; +}; + +struct sembuf { + unsigned short sem_num; + short sem_op; + short sem_flg; +}; + +struct ipc64_perm { + __kernel_key_t key; + __kernel_uid32_t uid; + __kernel_gid32_t gid; + __kernel_uid32_t cuid; + __kernel_gid32_t cgid; + __kernel_mode_t mode; + unsigned char __pad1[0]; + unsigned short seq; + unsigned short __pad2; + __kernel_ulong_t __unused1; + __kernel_ulong_t __unused2; +}; + +struct semid64_ds { + struct ipc64_perm sem_perm; + __kernel_long_t sem_otime; + __kernel_ulong_t __unused1; + __kernel_long_t sem_ctime; + __kernel_ulong_t __unused2; + __kernel_ulong_t sem_nsems; + __kernel_ulong_t __unused3; + __kernel_ulong_t __unused4; +}; + +struct seminfo { + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; +}; + +typedef unsigned int __kernel_uid_t; + +typedef unsigned int __kernel_gid_t; + +struct ipc_perm { + __kernel_key_t key; + __kernel_uid_t uid; + __kernel_gid_t gid; + __kernel_uid_t cuid; + __kernel_gid_t cgid; + __kernel_mode_t mode; + unsigned short seq; +}; + +struct semid_ds { + struct ipc_perm sem_perm; + __kernel_old_time_t sem_otime; + __kernel_old_time_t sem_ctime; + struct sem *sem_base; + struct sem_queue *sem_pending; + struct sem_queue **sem_pending_last; + struct sem_undo *undo; + unsigned short sem_nsems; +}; + +struct lzorle_ctx { + void *lzorle_comp_mem; +}; + +typedef struct { + __be64 a; + __be64 b; +} be128; + +struct gf128mul_4k; + +struct gf128mul_64k { + struct gf128mul_4k *t[16]; +}; + +struct gf128mul_4k { + be128 t[256]; +}; + +typedef struct { + __le64 b; + __le64 a; +} le128; + +enum blake2s_lengths { + BLAKE2S_BLOCK_SIZE = 64, + BLAKE2S_HASH_SIZE = 32, + BLAKE2S_KEY_SIZE = 32, + BLAKE2S_128_HASH_SIZE = 16, + BLAKE2S_160_HASH_SIZE = 20, + BLAKE2S_224_HASH_SIZE = 28, + BLAKE2S_256_HASH_SIZE = 32, +}; + +enum blake2s_iv { + BLAKE2S_IV0 = 1779033703, + BLAKE2S_IV1 = 3144134277, + BLAKE2S_IV2 = 1013904242, + BLAKE2S_IV3 = 2773480762, + BLAKE2S_IV4 = 1359893119, + BLAKE2S_IV5 = 2600822924, + BLAKE2S_IV6 = 528734635, + BLAKE2S_IV7 = 1541459225, +}; + +struct blake2s_state { + u32 h[8]; + u32 t[2]; + u32 f[2]; + u8 buf[64]; + unsigned int buflen; + unsigned int outlen; +}; + +struct xxh32_state { + uint32_t total_len_32; + uint32_t large_len; + uint32_t v1; + uint32_t v2; + uint32_t v3; + uint32_t v4; + uint32_t mem32[4]; + uint32_t memsize; +}; + +enum { + EI_ETYPE_NULL = 0, + EI_ETYPE_ERRNO = 1, + EI_ETYPE_ERRNO_NULL = 2, + EI_ETYPE_TRUE = 3, +}; + +struct ei_entry { + struct list_head list; + unsigned long start_addr; + unsigned long end_addr; + int etype; + void *priv; +}; + +enum { + ACPI_GENL_CMD_UNSPEC = 0, + ACPI_GENL_CMD_EVENT = 1, + __ACPI_GENL_CMD_MAX = 2, +}; + +enum { + ACPI_GENL_ATTR_UNSPEC = 0, + ACPI_GENL_ATTR_EVENT = 1, + __ACPI_GENL_ATTR_MAX = 2, +}; + +typedef int (*netlink_filter_fn)(struct sock *, struct sk_buff *, void *); + +struct acpi_bus_event { + struct list_head node; + acpi_device_class device_class; + acpi_bus_id bus_id; + u32 type; + u32 data; +}; + +struct acpi_genl_event { + acpi_device_class device_class; + char bus_id[15]; + u32 type; + u32 data; +}; + +enum scsi_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, +}; + +struct scsi_dev_info_list { + struct list_head dev_info_list; + char vendor[8]; + char model[16]; + blist_flags_t flags; + unsigned int compatible; +}; + +struct scsi_dev_info_list_table { + struct list_head node; + struct list_head scsi_dev_info_list; + const char *name; + int key; +}; + +enum { + AHCI_MAX_PORTS = 32, + AHCI_MAX_SG = 168, + AHCI_DMA_BOUNDARY = 4294967295, + AHCI_MAX_CMDS = 32, + AHCI_CMD_SZ = 32, + AHCI_CMD_SLOT_SZ = 1024, + AHCI_RX_FIS_SZ = 256, + AHCI_CMD_TBL_CDB = 64, + AHCI_CMD_TBL_HDR_SZ = 128, + AHCI_CMD_TBL_SZ = 2816, + AHCI_CMD_TBL_AR_SZ = 90112, + AHCI_PORT_PRIV_DMA_SZ = 91392, + AHCI_PORT_PRIV_FBS_DMA_SZ = 95232, + AHCI_IRQ_ON_SG = 2147483648, + AHCI_CMD_ATAPI = 32, + AHCI_CMD_WRITE = 64, + AHCI_CMD_PREFETCH = 128, + AHCI_CMD_RESET = 256, + AHCI_CMD_CLR_BUSY = 1024, + RX_FIS_PIO_SETUP = 32, + RX_FIS_D2H_REG = 64, + RX_FIS_SDB = 88, + RX_FIS_UNK = 96, + HOST_CAP = 0, + HOST_CTL = 4, + HOST_IRQ_STAT = 8, + HOST_PORTS_IMPL = 12, + HOST_VERSION = 16, + HOST_EM_LOC = 28, + HOST_EM_CTL = 32, + HOST_CAP2 = 36, + HOST_RESET = 1, + HOST_IRQ_EN = 2, + HOST_MRSM = 4, + HOST_AHCI_EN = 2147483648, + HOST_CAP_SXS = 32, + HOST_CAP_EMS = 64, + HOST_CAP_CCC = 128, + HOST_CAP_PART = 8192, + HOST_CAP_SSC = 16384, + HOST_CAP_PIO_MULTI = 32768, + HOST_CAP_FBS = 65536, + HOST_CAP_PMP = 131072, + HOST_CAP_ONLY = 262144, + HOST_CAP_CLO = 16777216, + HOST_CAP_LED = 33554432, + HOST_CAP_ALPM = 67108864, + HOST_CAP_SSS = 134217728, + HOST_CAP_MPS = 268435456, + HOST_CAP_SNTF = 536870912, + HOST_CAP_NCQ = 1073741824, + HOST_CAP_64 = 2147483648, + HOST_CAP2_BOH = 1, + HOST_CAP2_NVMHCI = 2, + HOST_CAP2_APST = 4, + HOST_CAP2_SDS = 8, + HOST_CAP2_SADM = 16, + HOST_CAP2_DESO = 32, + PORT_LST_ADDR = 0, + PORT_LST_ADDR_HI = 4, + PORT_FIS_ADDR = 8, + PORT_FIS_ADDR_HI = 12, + PORT_IRQ_STAT = 16, + PORT_IRQ_MASK = 20, + PORT_CMD = 24, + PORT_TFDATA = 32, + PORT_SIG = 36, + PORT_CMD_ISSUE = 56, + PORT_SCR_STAT = 40, + PORT_SCR_CTL = 44, + PORT_SCR_ERR = 48, + PORT_SCR_ACT = 52, + PORT_SCR_NTF = 60, + PORT_FBS = 64, + PORT_DEVSLP = 68, + PORT_IRQ_COLD_PRES = 2147483648, + PORT_IRQ_TF_ERR = 1073741824, + PORT_IRQ_HBUS_ERR = 536870912, + PORT_IRQ_HBUS_DATA_ERR = 268435456, + PORT_IRQ_IF_ERR = 134217728, + PORT_IRQ_IF_NONFATAL = 67108864, + PORT_IRQ_OVERFLOW = 16777216, + PORT_IRQ_BAD_PMP = 8388608, + PORT_IRQ_PHYRDY = 4194304, + PORT_IRQ_DMPS = 128, + PORT_IRQ_CONNECT = 64, + PORT_IRQ_SG_DONE = 32, + PORT_IRQ_UNK_FIS = 16, + PORT_IRQ_SDB_FIS = 8, + PORT_IRQ_DMAS_FIS = 4, + PORT_IRQ_PIOS_FIS = 2, + PORT_IRQ_D2H_REG_FIS = 1, + PORT_IRQ_FREEZE = 683671632, + PORT_IRQ_ERROR = 2025848912, + DEF_PORT_IRQ = 2025848959, + PORT_CMD_ASP = 134217728, + PORT_CMD_ALPE = 67108864, + PORT_CMD_ATAPI = 16777216, + PORT_CMD_FBSCP = 4194304, + PORT_CMD_ESP = 2097152, + PORT_CMD_CPD = 1048576, + PORT_CMD_MPSP = 524288, + PORT_CMD_HPCP = 262144, + PORT_CMD_PMP = 131072, + PORT_CMD_LIST_ON = 32768, + PORT_CMD_FIS_ON = 16384, + PORT_CMD_FIS_RX = 16, + PORT_CMD_CLO = 8, + PORT_CMD_POWER_ON = 4, + PORT_CMD_SPIN_UP = 2, + PORT_CMD_START = 1, + PORT_CMD_ICC_MASK = 4026531840, + PORT_CMD_ICC_ACTIVE = 268435456, + PORT_CMD_ICC_PARTIAL = 536870912, + PORT_CMD_ICC_SLUMBER = 1610612736, + PORT_CMD_CAP = 8126464, + PORT_FBS_DWE_OFFSET = 16, + PORT_FBS_ADO_OFFSET = 12, + PORT_FBS_DEV_OFFSET = 8, + PORT_FBS_DEV_MASK = 3840, + PORT_FBS_SDE = 4, + PORT_FBS_DEC = 2, + PORT_FBS_EN = 1, + PORT_DEVSLP_DM_OFFSET = 25, + PORT_DEVSLP_DM_MASK = 503316480, + PORT_DEVSLP_DITO_OFFSET = 15, + PORT_DEVSLP_MDAT_OFFSET = 10, + PORT_DEVSLP_DETO_OFFSET = 2, + PORT_DEVSLP_DSP = 2, + PORT_DEVSLP_ADSE = 1, + AHCI_HFLAG_NO_NCQ = 1, + AHCI_HFLAG_IGN_IRQ_IF_ERR = 2, + AHCI_HFLAG_IGN_SERR_INTERNAL = 4, + AHCI_HFLAG_32BIT_ONLY = 8, + AHCI_HFLAG_MV_PATA = 16, + AHCI_HFLAG_NO_MSI = 32, + AHCI_HFLAG_NO_PMP = 64, + AHCI_HFLAG_SECT255 = 256, + AHCI_HFLAG_YES_NCQ = 512, + AHCI_HFLAG_NO_SUSPEND = 1024, + AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = 2048, + AHCI_HFLAG_NO_SNTF = 4096, + AHCI_HFLAG_NO_FPDMA_AA = 8192, + AHCI_HFLAG_YES_FBS = 16384, + AHCI_HFLAG_DELAY_ENGINE = 32768, + AHCI_HFLAG_NO_DEVSLP = 131072, + AHCI_HFLAG_NO_FBS = 262144, + AHCI_HFLAG_MULTI_MSI = 1048576, + AHCI_HFLAG_WAKE_BEFORE_STOP = 4194304, + AHCI_HFLAG_YES_ALPM = 8388608, + AHCI_HFLAG_NO_WRITE_TO_RO = 16777216, + AHCI_HFLAG_SUSPEND_PHYS = 33554432, + AHCI_HFLAG_NO_SXS = 67108864, + AHCI_HFLAG_43BIT_ONLY = 134217728, + AHCI_HFLAG_INTEL_PCS_QUIRK = 268435456, + AHCI_FLAG_COMMON = 393346, + ICH_MAP = 144, + PCS_6 = 146, + PCS_7 = 148, + EM_MAX_SLOTS = 15, + EM_MAX_RETRY = 5, + EM_CTL_RST = 512, + EM_CTL_TM = 256, + EM_CTL_MR = 1, + EM_CTL_ALHD = 67108864, + EM_CTL_XMT = 33554432, + EM_CTL_SMB = 16777216, + EM_CTL_SGPIO = 524288, + EM_CTL_SES = 262144, + EM_CTL_SAFTE = 131072, + EM_CTL_LED = 65536, + EM_MSG_TYPE_LED = 1, + EM_MSG_TYPE_SAFTE = 2, + EM_MSG_TYPE_SES2 = 4, + EM_MSG_TYPE_SGPIO = 8, +}; + +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, +}; + +struct ahci_em_priv { + enum sw_activity blink_policy; + struct timer_list timer; + unsigned long saved_activity; + unsigned long activity; + unsigned long led_state; + struct ata_link *link; +}; + +struct ahci_sg { + __le32 addr; + __le32 addr_hi; + __le32 reserved; + __le32 flags_size; +}; + +struct ahci_cmd_hdr; + +struct ahci_port_priv { + struct ata_link *active_link; + struct ahci_cmd_hdr *cmd_slot; + dma_addr_t cmd_slot_dma; + void *cmd_tbl; + dma_addr_t cmd_tbl_dma; + void *rx_fis; + dma_addr_t rx_fis_dma; + unsigned int ncq_saw_d2h: 1; + unsigned int ncq_saw_dmas: 1; + unsigned int ncq_saw_sdb: 1; + spinlock_t lock; + u32 intr_mask; + bool fbs_supported; + bool fbs_enabled; + int fbs_last_dev; + struct ahci_em_priv em_priv[15]; + char *irq_desc; +}; + +struct ahci_cmd_hdr { + __le32 opts; + __le32 status; + __le32 tbl_addr; + __le32 tbl_addr_hi; + __le32 reserved[4]; +}; + +struct clk_bulk_data; + +struct ahci_host_priv { + unsigned int flags; + u32 mask_port_map; + void *mmio; + u32 cap; + u32 cap2; + u32 version; + u32 port_map; + u32 saved_cap; + u32 saved_cap2; + u32 saved_port_map; + u32 saved_port_cap[32]; + u32 em_loc; + u32 em_buf_sz; + u32 em_msg_type; + u32 remapped_nvme; + bool got_runtime_pm; + unsigned int n_clks; + struct clk_bulk_data *clks; + unsigned int f_rsts; + struct reset_control *rsts; + struct regulator **target_pwrs; + struct regulator *ahci_regulator; + struct regulator *phy_regulator; + struct phy **phys; + unsigned int nports; + void *plat_data; + unsigned int irq; + void (*start_engine)(struct ata_port *); + int (*stop_engine)(struct ata_port *); + irqreturn_t (*irq_handler)(int, void *); + int (*get_irq_vector)(struct ata_host *, int); +}; + +struct clk_bulk_data { + const char *id; + struct clk *clk; +}; + +enum iwl_ucode_tlv_type { + IWL_UCODE_TLV_INVALID = 0, + IWL_UCODE_TLV_INST = 1, + IWL_UCODE_TLV_DATA = 2, + IWL_UCODE_TLV_INIT = 3, + IWL_UCODE_TLV_INIT_DATA = 4, + IWL_UCODE_TLV_BOOT = 5, + IWL_UCODE_TLV_PROBE_MAX_LEN = 6, + IWL_UCODE_TLV_PAN = 7, + IWL_UCODE_TLV_MEM_DESC = 7, + IWL_UCODE_TLV_RUNT_EVTLOG_PTR = 8, + IWL_UCODE_TLV_RUNT_EVTLOG_SIZE = 9, + IWL_UCODE_TLV_RUNT_ERRLOG_PTR = 10, + IWL_UCODE_TLV_INIT_EVTLOG_PTR = 11, + IWL_UCODE_TLV_INIT_EVTLOG_SIZE = 12, + IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13, + IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14, + IWL_UCODE_TLV_PHY_CALIBRATION_SIZE = 15, + IWL_UCODE_TLV_WOWLAN_INST = 16, + IWL_UCODE_TLV_WOWLAN_DATA = 17, + IWL_UCODE_TLV_FLAGS = 18, + IWL_UCODE_TLV_SEC_RT = 19, + IWL_UCODE_TLV_SEC_INIT = 20, + IWL_UCODE_TLV_SEC_WOWLAN = 21, + IWL_UCODE_TLV_DEF_CALIB = 22, + IWL_UCODE_TLV_PHY_SKU = 23, + IWL_UCODE_TLV_SECURE_SEC_RT = 24, + IWL_UCODE_TLV_SECURE_SEC_INIT = 25, + IWL_UCODE_TLV_SECURE_SEC_WOWLAN = 26, + IWL_UCODE_TLV_NUM_OF_CPU = 27, + IWL_UCODE_TLV_CSCHEME = 28, + IWL_UCODE_TLV_API_CHANGES_SET = 29, + IWL_UCODE_TLV_ENABLED_CAPABILITIES = 30, + IWL_UCODE_TLV_N_SCAN_CHANNELS = 31, + IWL_UCODE_TLV_PAGING = 32, + IWL_UCODE_TLV_SEC_RT_USNIFFER = 34, + IWL_UCODE_TLV_FW_VERSION = 36, + IWL_UCODE_TLV_FW_DBG_DEST = 38, + IWL_UCODE_TLV_FW_DBG_CONF = 39, + IWL_UCODE_TLV_FW_DBG_TRIGGER = 40, + IWL_UCODE_TLV_CMD_VERSIONS = 48, + IWL_UCODE_TLV_FW_GSCAN_CAPA = 50, + IWL_UCODE_TLV_FW_MEM_SEG = 51, + IWL_UCODE_TLV_IML = 52, + IWL_UCODE_TLV_UMAC_DEBUG_ADDRS = 54, + IWL_UCODE_TLV_LMAC_DEBUG_ADDRS = 55, + IWL_UCODE_TLV_FW_RECOVERY_INFO = 57, + IWL_UCODE_TLV_HW_TYPE = 58, + IWL_UCODE_TLV_FW_FSEQ_VERSION = 60, + IWL_UCODE_TLV_PHY_INTEGRATION_VERSION = 61, + IWL_UCODE_TLV_PNVM_VERSION = 62, + IWL_UCODE_TLV_PNVM_SKU = 64, + IWL_UCODE_TLV_SEC_TABLE_ADDR = 66, + IWL_UCODE_TLV_D3_KEK_KCK_ADDR = 67, + IWL_UCODE_TLV_CURRENT_PC = 68, + IWL_UCODE_TLV_FW_NUM_STATIONS = 256, + IWL_UCODE_TLV_FW_NUM_BEACONS = 258, + IWL_UCODE_TLV_TYPE_DEBUG_INFO = 16777221, + IWL_UCODE_TLV_TYPE_BUFFER_ALLOCATION = 16777222, + IWL_UCODE_TLV_TYPE_HCMD = 16777223, + IWL_UCODE_TLV_TYPE_REGIONS = 16777224, + IWL_UCODE_TLV_TYPE_TRIGGERS = 16777225, + IWL_UCODE_TLV_TYPE_CONF_SET = 16777226, + IWL_UCODE_TLV_DEBUG_MAX = 16777225, + IWL_UCODE_TLV_FW_DBG_DUMP_LST = 4096, +}; + +enum iwl_dsm_funcs { + DSM_FUNC_QUERY = 0, + DSM_FUNC_DISABLE_SRD = 1, + DSM_FUNC_ENABLE_INDONESIA_5G2 = 2, + DSM_FUNC_ENABLE_6E = 3, + DSM_FUNC_REGULATORY_CONFIG = 4, + DSM_FUNC_11AX_ENABLEMENT = 6, + DSM_FUNC_ENABLE_UNII4_CHAN = 7, + DSM_FUNC_ACTIVATE_CHANNEL = 8, + DSM_FUNC_FORCE_DISABLE_CHANNELS = 9, + DSM_FUNC_ENERGY_DETECTION_THRESHOLD = 10, + DSM_FUNC_RFI_CONFIG = 11, + DSM_FUNC_NUM_FUNCS = 12, +}; + +typedef u16 efi_char16_t; + +typedef guid_t efi_guid_t; + +struct uefi_cnv_common_step_data { + u8 revision; + u8 step_mode; + u8 cnvi_eq_channel; + u8 cnvr_eq_channel; + u8 radio1; + u8 radio2; +}; + +struct uefi_cnv_wlan_sgom_data { + u8 revision; + u8 offset_map[338]; +}; + +struct uefi_cnv_wlan_uats_data { + u8 revision; + u8 offset_map[338]; +}; + +struct uefi_sar_profile { + struct iwl_sar_profile_chain chains[4]; +}; + +struct iwl_tas_data { + __le32 block_list_size; + __le32 block_list_array[16]; + u8 override_tas_iec; + u8 enable_tas_iec; + u8 usa_tas_uhb_allowed; +}; + +struct iwl_uefi_pnvm_mem_desc { + __le32 addr; + __le32 size; + const u8 data[0]; +}; + +struct iwl_sku_id { + __le32 data[3]; +}; + +struct pnvm_sku_package { + u8 rev; + u32 total_size; + u8 n_skus; + u32 reserved[2]; + u8 data[0]; +} __attribute__((packed)); + +struct uefi_cnv_var_wrds { + u8 revision; + u32 mode; + struct uefi_sar_profile sar_profile; +} __attribute__((packed)); + +struct uefi_cnv_var_ewrd { + u8 revision; + u32 mode; + u32 num_profiles; + struct uefi_sar_profile sar_profiles[3]; +} __attribute__((packed)); + +struct uefi_cnv_var_wgds { + u8 revision; + u8 num_profiles; + struct iwl_geo_profile geo_profiles[8]; +}; + +struct uefi_cnv_var_ppag { + u8 revision; + u32 ppag_modes; + struct iwl_ppag_chain ppag_chains[2]; +} __attribute__((packed)); + +struct uefi_cnv_var_wtas { + u8 revision; + u32 tas_selection; + u8 black_list_size; + u16 black_list[16]; +} __attribute__((packed)); + +struct uefi_cnv_var_splc { + u8 revision; + u32 default_pwr_limit; +} __attribute__((packed)); + +struct uefi_cnv_var_wrdd { + u8 revision; + u32 mcc; +} __attribute__((packed)); + +struct uefi_cnv_var_eckv { + u8 revision; + u32 ext_clock_valid; +} __attribute__((packed)); + +struct uefi_cnv_var_general_cfg { + u8 revision; + u32 functions[32]; +} __attribute__((packed)); + +struct rtw_regd_alternative_t { + bool set; + u8 alt; +}; + +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_EXTOFF = 2, + PTP_CLOCK_PPS = 3, + PTP_CLOCK_PPSUSR = 4, +}; + +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_X86_TSC_EARLY = 2, + CSID_X86_TSC = 3, + CSID_X86_KVM_CLK = 4, + CSID_MAX = 5, +}; + +struct xa_limit { + u32 max; + u32 min; +}; + +struct pps_event_time { + struct timespec64 ts_real; +}; + +struct ptp_clock_event { + int type; + int index; + union { + u64 timestamp; + s64 offset; + struct pps_event_time pps_times; }; }; -struct nlmsgerr { - int error; - struct nlmsghdr msg; +struct system_time_snapshot { + u64 cycles; + ktime_t real; + ktime_t raw; + enum clocksource_ids cs_id; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; }; -struct netlink_notify { - struct net *net; - u32 portid; - int protocol; +struct rtnl_link { + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + struct module *owner; + unsigned int flags; + struct callback_head rcu; +}; + +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + IFLA_GRO_MAX_SIZE = 58, + IFLA_TSO_MAX_SIZE = 59, + IFLA_TSO_MAX_SEGS = 60, + IFLA_ALLMULTI = 61, + IFLA_DEVLINK_PORT = 62, + IFLA_GSO_IPV4_MAX_SIZE = 63, + IFLA_GRO_IPV4_MAX_SIZE = 64, + IFLA_DPLL_PIN = 65, + __IFLA_MAX = 66, +}; + +enum { + NDA_UNSPEC = 0, + NDA_DST = 1, + NDA_LLADDR = 2, + NDA_CACHEINFO = 3, + NDA_PROBES = 4, + NDA_VLAN = 5, + NDA_PORT = 6, + NDA_VNI = 7, + NDA_IFINDEX = 8, + NDA_MASTER = 9, + NDA_LINK_NETNSID = 10, + NDA_SRC_VNI = 11, + NDA_PROTOCOL = 12, + NDA_NH_ID = 13, + NDA_FDB_EXT_ATTRS = 14, + NDA_FLAGS_EXT = 15, + NDA_NDM_STATE_MASK = 16, + NDA_NDM_FLAGS_MASK = 17, + __NDA_MAX = 18, +}; + +enum { + IF_OPER_UNKNOWN = 0, + IF_OPER_NOTPRESENT = 1, + IF_OPER_DOWN = 2, + IF_OPER_LOWERLAYERDOWN = 3, + IF_OPER_TESTING = 4, + IF_OPER_DORMANT = 5, + IF_OPER_UP = 6, +}; + +enum { + IFLA_BRIDGE_FLAGS = 0, + IFLA_BRIDGE_MODE = 1, + IFLA_BRIDGE_VLAN_INFO = 2, + IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3, + IFLA_BRIDGE_MRP = 4, + IFLA_BRIDGE_CFM = 5, + IFLA_BRIDGE_MST = 6, + __IFLA_BRIDGE_MAX = 7, +}; + +enum { + IFLA_BRPORT_UNSPEC = 0, + IFLA_BRPORT_STATE = 1, + IFLA_BRPORT_PRIORITY = 2, + IFLA_BRPORT_COST = 3, + IFLA_BRPORT_MODE = 4, + IFLA_BRPORT_GUARD = 5, + IFLA_BRPORT_PROTECT = 6, + IFLA_BRPORT_FAST_LEAVE = 7, + IFLA_BRPORT_LEARNING = 8, + IFLA_BRPORT_UNICAST_FLOOD = 9, + IFLA_BRPORT_PROXYARP = 10, + IFLA_BRPORT_LEARNING_SYNC = 11, + IFLA_BRPORT_PROXYARP_WIFI = 12, + IFLA_BRPORT_ROOT_ID = 13, + IFLA_BRPORT_BRIDGE_ID = 14, + IFLA_BRPORT_DESIGNATED_PORT = 15, + IFLA_BRPORT_DESIGNATED_COST = 16, + IFLA_BRPORT_ID = 17, + IFLA_BRPORT_NO = 18, + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, + IFLA_BRPORT_CONFIG_PENDING = 20, + IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, + IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, + IFLA_BRPORT_HOLD_TIMER = 23, + IFLA_BRPORT_FLUSH = 24, + IFLA_BRPORT_MULTICAST_ROUTER = 25, + IFLA_BRPORT_PAD = 26, + IFLA_BRPORT_MCAST_FLOOD = 27, + IFLA_BRPORT_MCAST_TO_UCAST = 28, + IFLA_BRPORT_VLAN_TUNNEL = 29, + IFLA_BRPORT_BCAST_FLOOD = 30, + IFLA_BRPORT_GROUP_FWD_MASK = 31, + IFLA_BRPORT_NEIGH_SUPPRESS = 32, + IFLA_BRPORT_ISOLATED = 33, + IFLA_BRPORT_BACKUP_PORT = 34, + IFLA_BRPORT_MRP_RING_OPEN = 35, + IFLA_BRPORT_MRP_IN_OPEN = 36, + IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, + IFLA_BRPORT_LOCKED = 39, + IFLA_BRPORT_MAB = 40, + IFLA_BRPORT_MCAST_N_GROUPS = 41, + IFLA_BRPORT_MCAST_MAX_GROUPS = 42, + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, + IFLA_BRPORT_BACKUP_NHID = 44, + __IFLA_BRPORT_MAX = 45, +}; + +enum { + IFLA_STATS_UNSPEC = 0, + IFLA_STATS_LINK_64 = 1, + IFLA_STATS_LINK_XSTATS = 2, + IFLA_STATS_LINK_XSTATS_SLAVE = 3, + IFLA_STATS_LINK_OFFLOAD_XSTATS = 4, + IFLA_STATS_AF_SPEC = 5, + __IFLA_STATS_MAX = 6, +}; + +enum { + IFLA_OFFLOAD_XSTATS_UNSPEC = 0, + IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, + IFLA_OFFLOAD_XSTATS_HW_S_INFO = 2, + IFLA_OFFLOAD_XSTATS_L3_STATS = 3, + __IFLA_OFFLOAD_XSTATS_MAX = 4, +}; + +enum rtnl_kinds { + RTNL_KIND_NEW = 0, + RTNL_KIND_DEL = 1, + RTNL_KIND_GET = 2, + RTNL_KIND_SET = 3, +}; + +enum { + IFLA_EVENT_NONE = 0, + IFLA_EVENT_REBOOT = 1, + IFLA_EVENT_FEATURES = 2, + IFLA_EVENT_BONDING_FAILOVER = 3, + IFLA_EVENT_NOTIFY_PEERS = 4, + IFLA_EVENT_IGMP_RESEND = 5, + IFLA_EVENT_BONDING_OPTIONS = 6, +}; + +enum { + IFLA_PROTO_DOWN_REASON_UNSPEC = 0, + IFLA_PROTO_DOWN_REASON_MASK = 1, + IFLA_PROTO_DOWN_REASON_VALUE = 2, + __IFLA_PROTO_DOWN_REASON_CNT = 3, + IFLA_PROTO_DOWN_REASON_MAX = 2, +}; + +enum { + IFLA_VF_INFO_UNSPEC = 0, + IFLA_VF_INFO = 1, + __IFLA_VF_INFO_MAX = 2, +}; + +enum { + IFLA_VF_UNSPEC = 0, + IFLA_VF_MAC = 1, + IFLA_VF_VLAN = 2, + IFLA_VF_TX_RATE = 3, + IFLA_VF_SPOOFCHK = 4, + IFLA_VF_LINK_STATE = 5, + IFLA_VF_RATE = 6, + IFLA_VF_RSS_QUERY_EN = 7, + IFLA_VF_STATS = 8, + IFLA_VF_TRUST = 9, + IFLA_VF_IB_NODE_GUID = 10, + IFLA_VF_IB_PORT_GUID = 11, + IFLA_VF_VLAN_LIST = 12, + IFLA_VF_BROADCAST = 13, + __IFLA_VF_MAX = 14, +}; + +enum { + IFLA_VF_VLAN_INFO_UNSPEC = 0, + IFLA_VF_VLAN_INFO = 1, + __IFLA_VF_VLAN_INFO_MAX = 2, +}; + +enum { + IFLA_VF_STATS_RX_PACKETS = 0, + IFLA_VF_STATS_TX_PACKETS = 1, + IFLA_VF_STATS_RX_BYTES = 2, + IFLA_VF_STATS_TX_BYTES = 3, + IFLA_VF_STATS_BROADCAST = 4, + IFLA_VF_STATS_MULTICAST = 5, + IFLA_VF_STATS_PAD = 6, + IFLA_VF_STATS_RX_DROPPED = 7, + IFLA_VF_STATS_TX_DROPPED = 8, + __IFLA_VF_STATS_MAX = 9, +}; + +enum { + IFLA_VF_PORT_UNSPEC = 0, + IFLA_VF_PORT = 1, + __IFLA_VF_PORT_MAX = 2, +}; + +enum { + IFLA_PORT_UNSPEC = 0, + IFLA_PORT_VF = 1, + IFLA_PORT_PROFILE = 2, + IFLA_PORT_VSI_TYPE = 3, + IFLA_PORT_INSTANCE_UUID = 4, + IFLA_PORT_HOST_UUID = 5, + IFLA_PORT_REQUEST = 6, + IFLA_PORT_RESPONSE = 7, + __IFLA_PORT_MAX = 8, +}; + +enum { + XDP_ATTACHED_NONE = 0, + XDP_ATTACHED_DRV = 1, + XDP_ATTACHED_SKB = 2, + XDP_ATTACHED_HW = 3, + XDP_ATTACHED_MULTI = 4, +}; + +enum { + IFLA_XDP_UNSPEC = 0, + IFLA_XDP_FD = 1, + IFLA_XDP_ATTACHED = 2, + IFLA_XDP_FLAGS = 3, + IFLA_XDP_PROG_ID = 4, + IFLA_XDP_DRV_PROG_ID = 5, + IFLA_XDP_SKB_PROG_ID = 6, + IFLA_XDP_HW_PROG_ID = 7, + IFLA_XDP_EXPECTED_FD = 8, + __IFLA_XDP_MAX = 9, +}; + +enum bpf_xdp_mode { + XDP_MODE_SKB = 0, + XDP_MODE_DRV = 1, + XDP_MODE_HW = 2, + __MAX_XDP_MODE = 3, +}; + +enum { + IFLA_INFO_UNSPEC = 0, + IFLA_INFO_KIND = 1, + IFLA_INFO_DATA = 2, + IFLA_INFO_XSTATS = 3, + IFLA_INFO_SLAVE_KIND = 4, + IFLA_INFO_SLAVE_DATA = 5, + __IFLA_INFO_MAX = 6, +}; + +enum netdev_offload_xstats_type { + NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, +}; + +enum { + IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0, + IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 1, + IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 2, + __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX = 3, +}; + +enum { + IFLA_STATS_GETSET_UNSPEC = 0, + IFLA_STATS_GET_FILTERS = 1, + IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2, + __IFLA_STATS_GETSET_MAX = 3, +}; + +struct rtnl_af_ops { + struct list_head list; + int family; + int (*fill_link_af)(struct sk_buff *, const struct net_device *, u32); + size_t (*get_link_af_size)(const struct net_device *, u32); + int (*validate_link_af)(const struct net_device *, const struct nlattr *, struct netlink_ext_ack *); + int (*set_link_af)(struct net_device *, const struct nlattr *, struct netlink_ext_ack *); + int (*fill_stats_af)(struct sk_buff *, const struct net_device *); + size_t (*get_stats_af_size)(const struct net_device *); +}; + +struct ifinfomsg { + unsigned char ifi_family; + unsigned char __ifi_pad; + unsigned short ifi_type; + int ifi_index; + unsigned int ifi_flags; + unsigned int ifi_change; +}; + +struct rtnl_offload_xstats_request_used { + bool request; + bool used; +}; + +struct rtnl_newlink_tbs { + struct nlattr *tb[66]; + struct nlattr *attr[51]; + struct nlattr *slave_attr[45]; +}; + +struct if_stats_msg { + __u8 family; + __u8 pad1; + __u16 pad2; + __u32 ifindex; + __u32 filter_mask; +}; + +struct rtnl_link_stats { + __u32 rx_packets; + __u32 tx_packets; + __u32 rx_bytes; + __u32 tx_bytes; + __u32 rx_errors; + __u32 tx_errors; + __u32 rx_dropped; + __u32 tx_dropped; + __u32 multicast; + __u32 collisions; + __u32 rx_length_errors; + __u32 rx_over_errors; + __u32 rx_crc_errors; + __u32 rx_frame_errors; + __u32 rx_fifo_errors; + __u32 rx_missed_errors; + __u32 tx_aborted_errors; + __u32 tx_carrier_errors; + __u32 tx_fifo_errors; + __u32 tx_heartbeat_errors; + __u32 tx_window_errors; + __u32 rx_compressed; + __u32 tx_compressed; + __u32 rx_nohandler; +}; + +struct netlink_kernel_cfg { + unsigned int groups; + unsigned int flags; + void (*input)(struct sk_buff *); + struct mutex *cb_mutex; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); +}; + +struct netlink_dump_control { + int (*start)(struct netlink_callback *); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + struct netlink_ext_ack *extack; + void *data; + struct module *module; + u32 min_dump_alloc; + int flags; +}; + +struct ifla_vf_mac { + __u32 vf; + __u8 mac[32]; +}; + +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; + __u32 qos; +}; + +struct ifla_vf_vlan_info { + __u32 vf; + __u32 vlan; + __u32 qos; + __be16 vlan_proto; +}; + +struct ifla_vf_tx_rate { + __u32 vf; + __u32 rate; +}; + +struct ifla_vf_rate { + __u32 vf; + __u32 min_tx_rate; + __u32 max_tx_rate; +}; + +struct ifla_vf_spoofchk { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_link_state { + __u32 vf; + __u32 link_state; +}; + +struct ifla_vf_rss_query_en { + __u32 vf; + __u32 setting; +}; + +struct ifla_vf_trust { + __u32 vf; + __u32 setting; +}; + +struct rtnl_stats_dump_filters { + u32 mask[6]; +}; + +struct rta_cacheinfo { + __u32 rta_clntref; + __u32 rta_lastuse; + __s32 rta_expires; + __u32 rta_error; + __u32 rta_used; + __u32 rta_id; + __u32 rta_ts; + __u32 rta_tsage; +}; + +struct rtnl_mdb_dump_ctx { + long idx; +}; + +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; +}; + +struct ifla_vf_broadcast { + __u8 broadcast[32]; }; struct inet_timewait_sock { @@ -89038,910 +71607,629 @@ struct inet_timewait_sock { struct inet_bind2_bucket *tw_tb2; }; -struct ipv6_params { - __s32 disable_ipv6; - __s32 autoconf; +struct udp_tunnel_nic_ops { + void (*get_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *); + void (*set_port_priv)(struct net_device *, unsigned int, unsigned int, u8); + void (*add_port)(struct net_device *, struct udp_tunnel_info *); + void (*del_port)(struct net_device *, struct udp_tunnel_info *); + void (*reset_ntf)(struct net_device *); + size_t (*dump_size)(struct net_device *, unsigned int); + int (*dump_write)(struct net_device *, unsigned int, struct sk_buff *); }; -struct ipv6_stub { - int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *); - int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *); - struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *); - int (*ipv6_route_input)(struct sk_buff *); - struct fib6_table * (*fib6_get_table)(struct net *, u32); - int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int); - int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int); - void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int); - u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *); - int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *); - void (*fib6_nh_release)(struct fib6_nh *); - void (*fib6_nh_release_dsts)(struct fib6_nh *); - void (*fib6_update_sernum)(struct net *, struct fib6_info *); - int (*ip6_del_rt)(struct net *, struct fib6_info *, bool); - void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *); - void (*udpv6_encap_enable)(); - void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool); - struct neigh_table *nd_tbl; - int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); - struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); +struct udp_tunnel_info { + unsigned short type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; }; -struct ipv6_bpf_stub { - int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); - struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); - int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); - int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); - int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); +struct udp_tunnel_nic_shared { + struct udp_tunnel_nic *udp_tunnel_nic_info; + struct list_head devices; +}; + +struct nf_br_ops { + int (*br_dev_xmit_hook)(struct sk_buff *); +}; + +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, +}; + +enum syscall_work_bit { + SYSCALL_WORK_BIT_SECCOMP = 0, + SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1, + SYSCALL_WORK_BIT_SYSCALL_TRACE = 2, + SYSCALL_WORK_BIT_SYSCALL_EMU = 3, + SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4, + SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5, + SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6, +}; + +struct wakeup_header { + u16 video_mode; + u32 pmode_entry; + u16 pmode_cs; + u32 pmode_cr0; + u32 pmode_cr3; + u32 pmode_cr4; + u32 pmode_efer_low; + u32 pmode_efer_high; + u64 pmode_gdt; + u32 pmode_misc_en_low; + u32 pmode_misc_en_high; + u32 pmode_behavior; + u32 realmode_flags; + u32 real_magic; + u32 signature; +} __attribute__((packed)); + +struct apic_override { + void (*eoi)(); + void (*native_eoi)(); + void (*write)(u32, u32); + u32 (*read)(u32); + void (*send_IPI)(int, int); + void (*send_IPI_mask)(const struct cpumask *, int); + void (*send_IPI_mask_allbutself)(const struct cpumask *, int); + void (*send_IPI_allbutself)(int); + void (*send_IPI_all)(int); + void (*send_IPI_self)(int); + u64 (*icr_read)(); + void (*icr_write)(u32, u32); + int (*wakeup_secondary_cpu)(u32, unsigned long); + int (*wakeup_secondary_cpu_64)(u32, unsigned long); +}; + +struct dma_chan___2 { + int lock; + const char *device_id; +}; + +struct trace_export { + struct trace_export __attribute__((btf_type_tag("rcu"))) *next; + void (*write)(struct trace_export *, const void *, unsigned int); + int flags; +}; + +struct ftrace_stack { + unsigned long calls[1024]; +}; + +struct ftrace_stacks { + struct ftrace_stack stacks[4]; +}; + +struct trace_buffer_struct { + int nesting; + char buffer[4096]; +}; + +enum event_trigger_type { + ETT_NONE = 0, + ETT_TRACE_ONOFF = 1, + ETT_SNAPSHOT = 2, + ETT_STACKTRACE = 4, + ETT_EVENT_ENABLE = 8, + ETT_EVENT_HIST = 16, + ETT_HIST_ENABLE = 32, + ETT_EVENT_EPROBE = 64, }; enum { - MDBA_UNSPEC = 0, - MDBA_MDB = 1, - MDBA_ROUTER = 2, - __MDBA_MAX = 3, + EVENT_FILE_FL_ENABLED_BIT = 0, + EVENT_FILE_FL_RECORDED_CMD_BIT = 1, + EVENT_FILE_FL_RECORDED_TGID_BIT = 2, + EVENT_FILE_FL_FILTERED_BIT = 3, + EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, + EVENT_FILE_FL_SOFT_MODE_BIT = 5, + EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, + EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, + EVENT_FILE_FL_TRIGGER_COND_BIT = 8, + EVENT_FILE_FL_PID_FILTER_BIT = 9, + EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, }; enum { - MDBA_ROUTER_UNSPEC = 0, - MDBA_ROUTER_PORT = 1, - __MDBA_ROUTER_MAX = 2, + TRACE_ARRAY_FL_GLOBAL = 1, }; -enum { - MDBA_ROUTER_PATTR_UNSPEC = 0, - MDBA_ROUTER_PATTR_TIMER = 1, - MDBA_ROUTER_PATTR_TYPE = 2, - MDBA_ROUTER_PATTR_INET_TIMER = 3, - MDBA_ROUTER_PATTR_INET6_TIMER = 4, - MDBA_ROUTER_PATTR_VID = 5, - __MDBA_ROUTER_PATTR_MAX = 6, +enum ring_buffer_flags { + RB_FL_OVERWRITE = 1, }; -enum { - MDBA_MDB_UNSPEC = 0, - MDBA_MDB_ENTRY = 1, - __MDBA_MDB_MAX = 2, +struct err_info { + const char **errs; + u8 type; + u16 pos; + u64 ts; }; -enum { - MDBA_MDB_ENTRY_UNSPEC = 0, - MDBA_MDB_ENTRY_INFO = 1, - __MDBA_MDB_ENTRY_MAX = 2, +struct tracing_log_err { + struct list_head list; + struct err_info info; + char loc[128]; + char *cmd; }; -enum { - MDBA_MDB_EATTR_UNSPEC = 0, - MDBA_MDB_EATTR_TIMER = 1, - MDBA_MDB_EATTR_SRC_LIST = 2, - MDBA_MDB_EATTR_GROUP_MODE = 3, - MDBA_MDB_EATTR_SOURCE = 4, - MDBA_MDB_EATTR_RTPROT = 5, - MDBA_MDB_EATTR_DST = 6, - MDBA_MDB_EATTR_DST_PORT = 7, - MDBA_MDB_EATTR_VNI = 8, - MDBA_MDB_EATTR_IFINDEX = 9, - MDBA_MDB_EATTR_SRC_VNI = 10, - __MDBA_MDB_EATTR_MAX = 11, -}; - -enum { - MDBA_MDB_SRCLIST_UNSPEC = 0, - MDBA_MDB_SRCLIST_ENTRY = 1, - __MDBA_MDB_SRCLIST_MAX = 2, -}; - -enum { - MDBA_MDB_SRCATTR_UNSPEC = 0, - MDBA_MDB_SRCATTR_ADDRESS = 1, - MDBA_MDB_SRCATTR_TIMER = 2, - __MDBA_MDB_SRCATTR_MAX = 3, -}; - -enum { - MDBA_SET_ENTRY_UNSPEC = 0, - MDBA_SET_ENTRY = 1, - MDBA_SET_ENTRY_ATTRS = 2, - __MDBA_SET_ENTRY_MAX = 3, -}; - -enum { - MDBE_ATTR_UNSPEC = 0, - MDBE_ATTR_SOURCE = 1, - MDBE_ATTR_SRC_LIST = 2, - MDBE_ATTR_GROUP_MODE = 3, - MDBE_ATTR_RTPROT = 4, - MDBE_ATTR_DST = 5, - MDBE_ATTR_DST_PORT = 6, - MDBE_ATTR_VNI = 7, - MDBE_ATTR_IFINDEX = 8, - MDBE_ATTR_SRC_VNI = 9, - MDBE_ATTR_STATE_MASK = 10, - __MDBE_ATTR_MAX = 11, -}; - -enum { - MDBE_SRCATTR_UNSPEC = 0, - MDBE_SRCATTR_ADDRESS = 1, - __MDBE_SRCATTR_MAX = 2, -}; - -enum { - MDBA_GET_ENTRY_UNSPEC = 0, - MDBA_GET_ENTRY = 1, - MDBA_GET_ENTRY_ATTRS = 2, - __MDBA_GET_ENTRY_MAX = 3, -}; - -struct br_port_msg { - __u8 family; - __u32 ifindex; -}; - -struct br_mdb_entry; - -struct br_mdb_src_entry; - -struct br_mdb_config { - struct net_bridge *br; - struct net_bridge_port *p; - struct br_mdb_entry *entry; - struct br_ip group; - bool src_entry; - u8 filter_mode; - u16 nlflags; - struct br_mdb_src_entry *src_entries; - int num_src_entries; - u8 rt_protocol; -}; - -struct br_mdb_entry { - __u32 ifindex; - __u8 state; - __u8 flags; - __u16 vid; - struct { - union { - __be32 ip4; - struct in6_addr ip6; - unsigned char mac_addr[6]; - } u; - __be16 proto; - } addr; -}; - -struct br_mdb_src_entry { - struct br_ip addr; -}; - -struct br_mdb_flush_desc { - u32 port_ifindex; - u16 vid; - u8 rt_protocol; - u8 state; - u8 state_mask; -}; - -enum pci_bf_sort_state { - pci_bf_sort_default = 0, - pci_force_nobf = 1, - pci_force_bf = 2, - pci_dmi_bf = 3, -}; - -struct setup_data { - __u64 next; - __u32 type; - __u32 len; - __u8 data[0]; -}; - -struct pci_setup_rom { - struct setup_data data; - uint16_t vendor; - uint16_t devid; - uint64_t pcilen; - unsigned long segment; - unsigned long bus; - unsigned long device; - unsigned long function; - uint8_t romdata[0]; -}; - -union amd_uncore_info; - -struct amd_uncore_pmu; - -struct amd_uncore { - union amd_uncore_info __attribute__((btf_type_tag("percpu"))) *info; - struct amd_uncore_pmu *pmus; - unsigned int num_pmus; - bool init_done; - void (*scan)(struct amd_uncore *, unsigned int); - int (*init)(struct amd_uncore *, unsigned int); - void (*move)(struct amd_uncore *, unsigned int); - void (*free)(struct amd_uncore *, unsigned int); -}; - -union amd_uncore_info { - struct { - u64 aux_data: 32; - u64 num_pmcs: 8; - u64 gid: 8; - u64 cid: 8; - } split; - u64 full; -}; - -struct amd_uncore_ctx; - -struct amd_uncore_pmu { - char name[16]; - int num_counters; - int rdpmc_base; - u32 msr_base; - int group; - cpumask_t active_mask; - struct pmu pmu; - struct amd_uncore_ctx * __attribute__((btf_type_tag("percpu"))) *ctx; -}; - -struct amd_uncore_ctx { - int refcnt; +struct buffer_ref { + struct trace_buffer *buffer; + void *page; int cpu; - struct perf_event **events; - struct hlist_node node; + refcount_t refcount; }; -enum { - UNCORE_TYPE_DF = 0, - UNCORE_TYPE_L3 = 1, - UNCORE_TYPE_UMC = 2, - UNCORE_TYPE_MAX = 3, +struct trace_parser { + bool cont; + char *buffer; + unsigned int idx; + unsigned int size; }; -struct swsusp_header { - char reserved[4056]; - u32 hw_sig; - u32 crc32; - sector_t image; - unsigned int flags; - char orig_sig[10]; - char sig[10]; +typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); + +struct partial_page; + +struct splice_pipe_desc { + struct page **pages; + struct partial_page *partial; + int nr_pages; + unsigned int nr_pages_max; + const struct pipe_buf_operations *ops; + void (*spd_release)(struct splice_pipe_desc *, unsigned int); }; -struct swsusp_extent { - struct rb_node node; - unsigned long start; - unsigned long end; +struct partial_page { + unsigned int offset; + unsigned int len; + unsigned long private; }; -struct swap_map_page { - sector_t entries[511]; - sector_t next_swap; +struct pipe_wait { + struct trace_iterator *iter; + int wait_index; }; -struct crypto_comp { - struct crypto_tfm base; +typedef bool (*ring_buffer_cond_fn)(void *); + +typedef bool (*cond_update_fn_t)(struct trace_array *, void *); + +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; }; -struct swap_map_page_list; - -struct swap_map_handle { - struct swap_map_page *cur; - struct swap_map_page_list *maps; - sector_t cur_swap; - sector_t first_sector; - unsigned int k; - unsigned long reqd_free_pages; - u32 crc32; +struct ftrace_buffer_info { + struct trace_iterator iter; + void *spare; + unsigned int spare_cpu; + unsigned int spare_size; + unsigned int read; }; -struct swap_map_page_list { - struct swap_map_page *map; - struct swap_map_page_list *next; +enum vmpressure_levels { + VMPRESSURE_LOW = 0, + VMPRESSURE_MEDIUM = 1, + VMPRESSURE_CRITICAL = 2, + VMPRESSURE_NUM_LEVELS = 3, }; -struct hib_bio_batch { - atomic_t count; - wait_queue_head_t wait; - blk_status_t error; - struct blk_plug plug; +enum vmpressure_modes { + VMPRESSURE_NO_PASSTHROUGH = 0, + VMPRESSURE_HIERARCHY = 1, + VMPRESSURE_LOCAL = 2, + VMPRESSURE_NUM_MODES = 3, }; -struct cmp_data { - struct task_struct *thr; - struct crypto_comp *cc; - atomic_t ready; - atomic_t stop; - int ret; - wait_queue_head_t go; - wait_queue_head_t done; - size_t unc_len; - size_t cmp_len; - unsigned char unc[131072]; - unsigned char cmp[143360]; +struct vmpressure_event { + struct eventfd_ctx *efd; + enum vmpressure_levels level; + enum vmpressure_modes mode; + struct list_head node; }; -struct crc_data { - struct task_struct *thr; - atomic_t ready; - atomic_t stop; - unsigned int run_threads; - wait_queue_head_t go; - wait_queue_head_t done; - u32 *crc32; - size_t *unc_len[3]; - unsigned char *unc[3]; +struct proc_fs_opts { + int flag; + const char *str; }; -struct dec_data { - struct task_struct *thr; - struct crypto_comp *cc; - atomic_t ready; - atomic_t stop; - int ret; - wait_queue_head_t go; - wait_queue_head_t done; - size_t unc_len; - size_t cmp_len; - unsigned char unc[131072]; - unsigned char cmp[143360]; +struct proc_mounts { + struct mnt_namespace *ns; + struct path root; + int (*show)(struct seq_file *, struct vfsmount *); }; -struct action_cache { - unsigned long allow_native[8]; +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[4]; }; -struct notification; +typedef unsigned long long llu; -struct seccomp_filter { - refcount_t refs; - refcount_t users; - bool log; - bool wait_killable_recv; - struct action_cache cache; - struct seccomp_filter *prev; - struct bpf_prog *prog; - struct notification *notif; - struct mutex notify_lock; - wait_queue_head_t wqh; +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + long tm_year; + int tm_wday; + int tm_yday; }; -struct notification { - atomic_t requests; - u32 flags; - u64 next_id; - struct list_head notifications; +struct btrfs_dev_replace_item { + __le64 src_devid; + __le64 cursor_left; + __le64 cursor_right; + __le64 cont_reading_from_srcdev_mode; + __le64 replace_state; + __le64 time_started; + __le64 time_stopped; + __le64 num_write_errors; + __le64 num_uncorrectable_read_errors; }; -struct seccomp_log_name { - u32 log; - const char *name; +struct btrfs_dev_extent { + __le64 chunk_tree; + __le64 chunk_objectid; + __le64 chunk_offset; + __le64 length; + __u8 chunk_tree_uuid[16]; }; -enum notify_state { - SECCOMP_NOTIFY_INIT = 0, - SECCOMP_NOTIFY_SENT = 1, - SECCOMP_NOTIFY_REPLIED = 2, +struct btrfs_dev_lookup_args { + u64 devid; + u8 *uuid; + u8 *fsid; + bool missing; }; -struct seccomp_kaddfd { +struct btrfs_ioctl_dev_replace_start_params { + __u64 srcdevid; + __u64 cont_reading_from_srcdev_mode; + __u8 srcdev_name[1025]; + __u8 tgtdev_name[1025]; +}; + +struct btrfs_ioctl_dev_replace_status_params { + __u64 replace_state; + __u64 progress_1000; + __u64 time_started; + __u64 time_stopped; + __u64 num_write_errors; + __u64 num_uncorrectable_read_errors; +}; + +struct btrfs_ioctl_dev_replace_args { + __u64 cmd; + __u64 result; + union { + struct btrfs_ioctl_dev_replace_start_params start; + struct btrfs_ioctl_dev_replace_status_params status; + }; + __u64 spare[64]; +}; + +struct sha512_state; + +typedef void sha512_block_fn(struct sha512_state *, const u8 *, int); + +struct sha512_state { + u64 state[8]; + u64 count[2]; + u8 buf[128]; +}; + +struct badblocks_context { + sector_t start; + sector_t len; + int ack; +}; + +struct open_how { + __u64 flags; + __u64 mode; + __u64 resolve; +}; + +struct io_open { + struct file *file; + int dfd; + u32 file_slot; + struct filename *filename; + struct open_how how; + unsigned long nofile; +}; + +struct io_close { struct file *file; int fd; - unsigned int flags; - __u32 ioctl_flags; + u32 file_slot; +}; + +struct io_fixed_install { + struct file *file; + unsigned int o_flags; +}; + +typedef unsigned short ush; + +typedef enum { + need_more = 0, + block_done = 1, + finish_started = 2, + finish_done = 3, +} block_state; + +struct deflate_state; + +typedef struct deflate_state deflate_state; + +typedef block_state (*compress_func)(deflate_state *, int); + +struct config_s { + ush good_length; + ush max_lazy; + ush nice_length; + ush max_chain; + compress_func func; +}; + +typedef struct config_s config; + +typedef unsigned long ulg; + +typedef ush Pos; + +typedef unsigned int IPos; + +struct ct_data_s { union { - bool setfd; - int ret; - }; - struct completion completion; - struct list_head list; -}; - -struct seccomp_knotif { - struct task_struct *task; - u64 id; - const struct seccomp_data *data; - enum notify_state state; - int error; - long val; - u32 flags; - struct completion ready; - struct list_head list; - struct list_head addfd; -}; - -struct seccomp_notif_sizes { - __u16 seccomp_notif; - __u16 seccomp_notif_resp; - __u16 seccomp_data; -}; - -typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); - -struct seccomp_notif { - __u64 id; - __u32 pid; - __u32 flags; - struct seccomp_data data; -}; - -struct seccomp_notif_resp { - __u64 id; - __s64 val; - __s32 error; - __u32 flags; -}; - -struct seccomp_notif_addfd { - __u64 id; - __u32 flags; - __u32 srcfd; - __u32 newfd; - __u32 newfd_flags; -}; - -enum poll_time_type { - PT_TIMEVAL = 0, - PT_OLD_TIMEVAL = 1, - PT_TIMESPEC = 2, - PT_OLD_TIMESPEC = 3, -}; - -struct poll_table_entry { - struct file *filp; - __poll_t key; - wait_queue_entry_t wait; - wait_queue_head_t *wait_address; -}; - -struct poll_table_page; - -struct poll_wqueues { - poll_table pt; - struct poll_table_page *table; - struct task_struct *polling_task; - int triggered; - int error; - int inline_index; - struct poll_table_entry inline_entries[9]; -}; - -struct poll_table_page { - struct poll_table_page *next; - struct poll_table_entry *entry; - struct poll_table_entry entries[0]; -}; - -typedef struct { - unsigned long fds_bits[16]; -} __kernel_fd_set; - -typedef __kernel_fd_set fd_set; - -struct poll_list { - struct poll_list *next; - unsigned int len; - struct pollfd entries[0]; -}; - -typedef struct { - unsigned long *in; - unsigned long *out; - unsigned long *ex; - unsigned long *res_in; - unsigned long *res_out; - unsigned long *res_ex; -} fd_set_bits; - -struct sigset_argpack { - sigset_t __attribute__((btf_type_tag("user"))) *p; - size_t size; -}; - -struct fname { - __u32 hash; - __u32 minor_hash; - struct rb_node rb_hash; - struct fname *next; - __u32 inode; - __u8 name_len; - __u8 file_type; - char name[0]; -}; - -struct ext4_dir_entry_2 { - __le32 inode; - __le16 rec_len; - __u8 name_len; - __u8 file_type; - char name[255]; -}; - -struct ext4_dir_entry_hash { - __le32 hash; - __le32 minor_hash; -}; - -struct dir_private_info { - struct rb_root root; - struct rb_node *curr_node; - struct fname *extra_fname; - loff_t last_pos; - __u32 curr_hash; - __u32 curr_minor_hash; - __u32 next_hash; -}; - -enum { - AUTOFS_IOC_READY_CMD = 96, - AUTOFS_IOC_FAIL_CMD = 97, - AUTOFS_IOC_CATATONIC_CMD = 98, - AUTOFS_IOC_PROTOVER_CMD = 99, - AUTOFS_IOC_SETTIMEOUT_CMD = 100, - AUTOFS_IOC_EXPIRE_CMD = 101, -}; - -enum { - Opt_err___4 = 0, - Opt_enc = 1, - Opt_hash = 2, -}; - -struct keyctl_pkey_params { - __s32 key_id; - __u32 in_len; + ush freq; + ush code; + } fc; union { - __u32 out_len; - __u32 in2_len; - }; - __u32 __spare[7]; + ush dad; + ush len; + } dl; }; -struct keyctl_pkey_query { - __u32 supported_ops; - __u32 key_size; - __u16 max_data_size; - __u16 max_sig_size; - __u16 max_enc_size; - __u16 max_dec_size; - __u32 __spare[10]; +typedef struct ct_data_s ct_data; + +struct static_tree_desc_s; + +typedef struct static_tree_desc_s static_tree_desc; + +struct tree_desc_s { + ct_data *dyn_tree; + int max_code; + static_tree_desc *stat_desc; }; -struct cmac_desc_ctx { - unsigned int len; - u8 odds[0]; +typedef unsigned char uch; + +struct deflate_state { + z_streamp strm; + int status; + Byte *pending_buf; + ulg pending_buf_size; + Byte *pending_out; + int pending; + int noheader; + Byte data_type; + Byte method; + int last_flush; + uInt w_size; + uInt w_bits; + uInt w_mask; + Byte *window; + ulg window_size; + Pos *prev; + Pos *head; + uInt ins_h; + uInt hash_size; + uInt hash_bits; + uInt hash_mask; + uInt hash_shift; + long block_start; + uInt match_length; + IPos prev_match; + int match_available; + uInt strstart; + uInt match_start; + uInt lookahead; + uInt prev_length; + uInt max_chain_length; + uInt max_lazy_match; + int level; + int strategy; + uInt good_match; + int nice_match; + struct ct_data_s dyn_ltree[573]; + struct ct_data_s dyn_dtree[61]; + struct ct_data_s bl_tree[39]; + struct tree_desc_s l_desc; + struct tree_desc_s d_desc; + struct tree_desc_s bl_desc; + ush bl_count[16]; + int heap[573]; + int heap_len; + int heap_max; + uch depth[573]; + uch *l_buf; + uInt lit_bufsize; + uInt last_lit; + ush *d_buf; + ulg opt_len; + ulg static_len; + ulg compressed_len; + uInt matches; + int last_eob_len; + ush bi_buf; + int bi_valid; }; -struct cmac_tfm_ctx { - struct crypto_cipher *child; - __be64 consts[0]; +struct static_tree_desc_s { + const ct_data *static_tree; + const int *extra_bits; + int extra_base; + int elems; + int max_length; }; -struct percentile_stats { - u64 total; - u64 missed; +struct deflate_workspace { + deflate_state deflate_memory; + Byte *window_memory; + Pos *prev_memory; + Pos *head_memory; + char *overlay_memory; }; -struct latency_stat { +typedef struct deflate_workspace deflate_workspace; + +typedef void (*btf_trace_read_msr)(void *, unsigned int, u64, int); + +typedef void (*btf_trace_write_msr)(void *, unsigned int, u64, int); + +typedef void (*btf_trace_rdpmc)(void *, unsigned int, u64, int); + +struct msr { union { - struct percentile_stats ps; - struct blk_rq_stat rqs; - }; -}; - -struct rq_wait { - wait_queue_head_t wait; - atomic_t inflight; -}; - -struct iolatency_grp; - -struct child_latency_info { - spinlock_t lock; - u64 last_scale_event; - u64 scale_lat; - u64 nr_samples; - struct iolatency_grp *scale_grp; - atomic_t scale_cookie; -}; - -struct blk_iolatency; - -struct iolatency_grp { - struct blkg_policy_data pd; - struct latency_stat __attribute__((btf_type_tag("percpu"))) *stats; - struct latency_stat cur_stat; - struct blk_iolatency *blkiolat; - unsigned int max_depth; - struct rq_wait rq_wait; - atomic64_t window_start; - atomic_t scale_cookie; - u64 min_lat_nsec; - u64 cur_win_nsec; - u64 lat_avg; - u64 nr_samples; - bool ssd; - struct child_latency_info child_lat; -}; - -struct blk_iolatency { - struct rq_qos rqos; - struct timer_list timer; - bool enabled; - atomic_t enable_cnt; - struct work_struct enable_work; -}; - -typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); - -typedef void cleanup_cb_t(struct rq_wait *, void *); - -enum depot_counter_id { - DEPOT_COUNTER_REFD_ALLOCS = 0, - DEPOT_COUNTER_REFD_FREES = 1, - DEPOT_COUNTER_REFD_INUSE = 2, - DEPOT_COUNTER_FREELIST_SIZE = 3, - DEPOT_COUNTER_PERSIST_COUNT = 4, - DEPOT_COUNTER_PERSIST_BYTES = 5, - DEPOT_COUNTER_COUNT = 6, -}; - -typedef u32 depot_flags_t; - -union handle_parts { - depot_stack_handle_t handle; - struct { - u32 pool_index: 17; - u32 offset: 10; - u32 extra: 5; - }; -}; - -struct stack_record { - struct list_head hash_list; - u32 hash; - u32 size; - union handle_parts handle; - refcount_t count; - union { - unsigned long entries[64]; struct { - struct list_head free_list; - unsigned long rcu_state; + u32 l; + u32 h; }; + u64 q; }; }; -struct acpi_data_node { - const char *name; - acpi_handle handle; - struct fwnode_handle fwnode; - struct fwnode_handle *parent; - struct acpi_device_data data; - struct list_head sibling; - struct kobject kobj; - struct completion kobj_done; +struct trace_event_raw_msr_trace_class { + struct trace_entry ent; + unsigned int msr; + u64 val; + int failed; + char __data[0]; }; -struct acpi_device_properties { - const guid_t *guid; - union acpi_object *properties; - struct list_head list; - void **bufs; +struct trace_event_data_offsets_msr_trace_class {}; + +struct acpi_namestring_info { + const char *external_name; + const char *next_external_char; + char *internal_name; + u32 length; + u32 num_segments; + u32 num_carats; + u8 fully_qualified; +}; + +enum tty_flow_change { + TTY_FLOW_NO_CHANGE = 0, + TTY_THROTTLE_SAFE = 1, + TTY_UNTHROTTLE_SAFE = 2, }; enum { - ACPI_RSC_INITGET = 0, - ACPI_RSC_INITSET = 1, - ACPI_RSC_FLAGINIT = 2, - ACPI_RSC_1BITFLAG = 3, - ACPI_RSC_2BITFLAG = 4, - ACPI_RSC_3BITFLAG = 5, - ACPI_RSC_6BITFLAG = 6, - ACPI_RSC_ADDRESS = 7, - ACPI_RSC_BITMASK = 8, - ACPI_RSC_BITMASK16 = 9, - ACPI_RSC_COUNT = 10, - ACPI_RSC_COUNT16 = 11, - ACPI_RSC_COUNT_GPIO_PIN = 12, - ACPI_RSC_COUNT_GPIO_RES = 13, - ACPI_RSC_COUNT_GPIO_VEN = 14, - ACPI_RSC_COUNT_SERIAL_RES = 15, - ACPI_RSC_COUNT_SERIAL_VEN = 16, - ACPI_RSC_DATA8 = 17, - ACPI_RSC_EXIT_EQ = 18, - ACPI_RSC_EXIT_LE = 19, - ACPI_RSC_EXIT_NE = 20, - ACPI_RSC_LENGTH = 21, - ACPI_RSC_MOVE_GPIO_PIN = 22, - ACPI_RSC_MOVE_GPIO_RES = 23, - ACPI_RSC_MOVE_SERIAL_RES = 24, - ACPI_RSC_MOVE_SERIAL_VEN = 25, - ACPI_RSC_MOVE8 = 26, - ACPI_RSC_MOVE16 = 27, - ACPI_RSC_MOVE32 = 28, - ACPI_RSC_MOVE64 = 29, - ACPI_RSC_SET8 = 30, - ACPI_RSC_SOURCE = 31, - ACPI_RSC_SOURCEX = 32, + ERASE = 0, + WERASE = 1, + KILL = 2, }; -typedef u16 acpi_rs_length; +struct n_tty_data { + size_t read_head; + size_t commit_head; + size_t canon_head; + size_t echo_head; + size_t echo_commit; + size_t echo_mark; + unsigned long char_map[4]; + unsigned long overrun_time; + unsigned int num_overrun; + bool no_room; + unsigned char lnext: 1; + unsigned char erasing: 1; + unsigned char raw: 1; + unsigned char real_raw: 1; + unsigned char icanon: 1; + unsigned char push: 1; + u8 read_buf[4096]; + unsigned long read_flags[64]; + u8 echo_buf[4096]; + size_t read_tail; + size_t line_start; + size_t lookahead_count; + unsigned int column; + unsigned int canon_column; + size_t echo_tail; + struct mutex atomic_read_lock; + struct mutex output_lock; +}; -typedef u32 acpi_rsdesc_size; +struct rtl821x_priv { + u16 phycr1; + u16 phycr2; + bool has_phycr2; + struct clk *clk; +}; -struct request_sense; +struct rtw_stas_entry { + struct list_head list; + struct ieee80211_sta *sta; +}; -struct cdrom_generic_command { - unsigned char cmd[12]; - unsigned char __attribute__((btf_type_tag("user"))) *buffer; - unsigned int buflen; - int stat; - struct request_sense __attribute__((btf_type_tag("user"))) *sense; - unsigned char data_direction; - int quiet; +struct rtw_vifs_entry { + struct list_head list; + struct ieee80211_vif *vif; +}; + +struct rtw_backup_info { + u8 len; + u32 reg; + u32 val; +}; + +struct rtw_iter_stas_data { + struct rtw_dev *rtwdev; + struct list_head list; +}; + +struct rtw_iter_vifs_data { + struct rtw_dev *rtwdev; + struct list_head list; +}; + +struct mc146818_get_time_callback_param { + struct rtc_time *time; + unsigned char ctrl; + unsigned char century; +}; + +struct i2c_algo_bit_data { + void *data; + void (*setsda)(void *, int); + void (*setscl)(void *, int); + int (*getsda)(void *); + int (*getscl)(void *); + int (*pre_xfer)(struct i2c_adapter *); + void (*post_xfer)(struct i2c_adapter *); + int udelay; int timeout; - union { - void __attribute__((btf_type_tag("user"))) *reserved[1]; - void __attribute__((btf_type_tag("user"))) *unused; - }; + bool can_do_atomic; }; -struct request_sense { - __u8 error_code: 7; - __u8 valid: 1; - __u8 segment_number; - __u8 sense_key: 4; - __u8 reserved2: 1; - __u8 ili: 1; - __u8 reserved1: 2; - __u8 information[4]; - __u8 add_sense_len; - __u8 command_info[4]; - __u8 asc; - __u8 ascq; - __u8 fruc; - __u8 sks[3]; - __u8 asb[46]; -}; +struct cpufreq_policy_data; -struct scsi_ioctl_command { - unsigned int inlen; - unsigned int outlen; - unsigned char data[0]; -}; - -struct scsi_idlun { - __u32 dev_id; - __u32 host_unique_id; -}; - -struct sg_io_hdr { - int interface_id; - int dxfer_direction; - unsigned char cmd_len; - unsigned char mx_sb_len; - unsigned short iovec_count; - unsigned int dxfer_len; - void __attribute__((btf_type_tag("user"))) *dxferp; - unsigned char __attribute__((btf_type_tag("user"))) *cmdp; - void __attribute__((btf_type_tag("user"))) *sbp; - unsigned int timeout; - unsigned int flags; - int pack_id; - void __attribute__((btf_type_tag("user"))) *usr_ptr; - unsigned char status; - unsigned char masked_status; - unsigned char msg_status; - unsigned char sb_len_wr; - unsigned short host_status; - unsigned short driver_status; - int resid; - unsigned int duration; - unsigned int info; -}; - -struct rq_map_data { - struct page **pages; - unsigned long offset; - unsigned short page_order; - unsigned short nr_entries; - bool null_mapped; - bool from_user; -}; - -enum iwl_context_info_flags { - IWL_CTXT_INFO_AUTO_FUNC_INIT = 1, - IWL_CTXT_INFO_EARLY_DEBUG = 2, - IWL_CTXT_INFO_ENABLE_CDMP = 4, - IWL_CTXT_INFO_RB_CB_SIZE = 240, - IWL_CTXT_INFO_TFD_FORMAT_LONG = 256, - IWL_CTXT_INFO_RB_SIZE = 7680, - IWL_CTXT_INFO_RB_SIZE_1K = 1, - IWL_CTXT_INFO_RB_SIZE_2K = 2, - IWL_CTXT_INFO_RB_SIZE_4K = 4, - IWL_CTXT_INFO_RB_SIZE_8K = 8, - IWL_CTXT_INFO_RB_SIZE_12K = 9, - IWL_CTXT_INFO_RB_SIZE_16K = 10, - IWL_CTXT_INFO_RB_SIZE_20K = 11, - IWL_CTXT_INFO_RB_SIZE_24K = 12, - IWL_CTXT_INFO_RB_SIZE_28K = 13, - IWL_CTXT_INFO_RB_SIZE_32K = 14, -}; - -enum ieee80211_unprotected_wnm_actioncode { - WLAN_UNPROTECTED_WNM_ACTION_TIM = 0, - WLAN_UNPROTECTED_WNM_ACTION_TIMING_MEASUREMENT_RESPONSE = 1, -}; - -struct iwl_time_msmt_ptp_ctx { - union { - struct { - u8 element_id; - u8 length; - __le16 reserved; - u8 data[128]; - } ftm; - struct { - u8 element_id; - u8 length; - u8 data[128]; - } tm; - }; -}; - -struct iwl_time_msmt_notify { - u8 peer_addr[6]; - u8 reserved[2]; - __le32 dialog_token; - __le32 followup_dialog_token; - __le32 t1_hi; - __le32 t1_lo; - __le32 t1_max_err; - __le32 t4_hi; - __le32 t4_lo; - __le32 t4_max_err; - __le32 t2_hi; - __le32 t2_lo; - __le32 t2_max_err; - __le32 t3_hi; - __le32 t3_lo; - __le32 t3_max_err; - struct iwl_time_msmt_ptp_ctx ptp; -}; - -struct iwl_time_msmt_cfm_notify { - u8 peer_addr[6]; - u8 reserved[2]; - __le32 dialog_token; - __le32 t1_hi; - __le32 t1_lo; - __le32 t1_max_err; - __le32 t4_hi; - __le32 t4_lo; - __le32 t4_max_err; -}; - -struct iwl_time_sync_cfg_cmd { - __le32 protocols; - u8 peer_addr[6]; - u8 reserved[2]; -}; - -struct freq_attr { - struct attribute attr; - ssize_t (*show)(struct cpufreq_policy *, char *); - ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); -}; - -struct cpufreq_policy_data { - struct cpufreq_cpuinfo cpuinfo; - struct cpufreq_frequency_table *freq_table; - unsigned int cpu; - unsigned int min; - unsigned int max; -}; +struct freq_attr; struct cpufreq_driver { char name[16]; @@ -89971,45 +72259,2409 @@ struct cpufreq_driver { void (*register_em)(struct cpufreq_policy *); }; -enum { - UNDEFINED_CAPABLE = 0, - SYSTEM_INTEL_MSR_CAPABLE = 1, - SYSTEM_AMD_MSR_CAPABLE = 2, - SYSTEM_IO_CAPABLE = 3, +struct cpufreq_policy_data { + struct cpufreq_cpuinfo cpuinfo; + struct cpufreq_frequency_table *freq_table; + unsigned int cpu; + unsigned int min; + unsigned int max; }; -struct acpi_cpufreq_data { - unsigned int resume; - unsigned int cpu_feature; - unsigned int acpi_perf_cpu; - cpumask_var_t freqdomain_cpus; - void (*cpu_freq_write)(struct acpi_pct_register *, u32); - u32 (*cpu_freq_read)(struct acpi_pct_register *); +struct freq_attr { + struct attribute attr; + ssize_t (*show)(struct cpufreq_policy *, char *); + ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); }; -struct drv_cmd { - struct acpi_pct_register *reg; - u32 val; +enum cpu_usage_stat { + CPUTIME_USER = 0, + CPUTIME_NICE = 1, + CPUTIME_SYSTEM = 2, + CPUTIME_SOFTIRQ = 3, + CPUTIME_IRQ = 4, + CPUTIME_IDLE = 5, + CPUTIME_IOWAIT = 6, + CPUTIME_STEAL = 7, + CPUTIME_GUEST = 8, + CPUTIME_GUEST_NICE = 9, + NR_STATS = 10, +}; + +struct kernel_cpustat { + u64 cpustat[10]; +}; + +struct cpufreq_freqs { + struct cpufreq_policy *policy; + unsigned int old; + unsigned int new; + u8 flags; +}; + +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, + FLOW_DISSECTOR_KEY_PPPOE = 29, + FLOW_DISSECTOR_KEY_L2TPV3 = 30, + FLOW_DISSECTOR_KEY_CFM = 31, + FLOW_DISSECTOR_KEY_IPSEC = 32, + FLOW_DISSECTOR_KEY_MAX = 33, +}; + +enum ethtool_flags { + ETH_FLAG_TXVLAN = 128, + ETH_FLAG_RXVLAN = 256, + ETH_FLAG_LRO = 32768, + ETH_FLAG_NTUPLE = 134217728, + ETH_FLAG_RXHASH = 268435456, +}; + +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT = 0, + ETHTOOL_F_WISH__BIT = 1, + ETHTOOL_F_COMPAT__BIT = 2, +}; + +enum tunable_id { + ETHTOOL_ID_UNSPEC = 0, + ETHTOOL_RX_COPYBREAK = 1, + ETHTOOL_TX_COPYBREAK = 2, + ETHTOOL_PFC_PREVENTION_TOUT = 3, + ETHTOOL_TX_COPYBREAK_BUF_SIZE = 4, + __ETHTOOL_TUNABLE_COUNT = 5, +}; + +enum tunable_type_id { + ETHTOOL_TUNABLE_UNSPEC = 0, + ETHTOOL_TUNABLE_U8 = 1, + ETHTOOL_TUNABLE_U16 = 2, + ETHTOOL_TUNABLE_U32 = 3, + ETHTOOL_TUNABLE_U64 = 4, + ETHTOOL_TUNABLE_STRING = 5, + ETHTOOL_TUNABLE_S8 = 6, + ETHTOOL_TUNABLE_S16 = 7, + ETHTOOL_TUNABLE_S32 = 8, + ETHTOOL_TUNABLE_S64 = 9, +}; + +enum phy_tunable_id { + ETHTOOL_PHY_ID_UNSPEC = 0, + ETHTOOL_PHY_DOWNSHIFT = 1, + ETHTOOL_PHY_FAST_LINK_DOWN = 2, + ETHTOOL_PHY_EDPD = 3, + __ETHTOOL_PHY_TUNABLE_COUNT = 4, +}; + +enum ethtool_fec_config_bits { + ETHTOOL_FEC_NONE_BIT = 0, + ETHTOOL_FEC_AUTO_BIT = 1, + ETHTOOL_FEC_OFF_BIT = 2, + ETHTOOL_FEC_RS_BIT = 3, + ETHTOOL_FEC_BASER_BIT = 4, + ETHTOOL_FEC_LLRS_BIT = 5, +}; + +struct ethtool_rx_flow_key { + struct flow_dissector_key_basic basic; union { - void (*write)(struct acpi_pct_register *, u32); - u32 (*read)(struct acpi_pct_register *); - } func; + struct flow_dissector_key_ipv4_addrs ipv4; + struct flow_dissector_key_ipv6_addrs ipv6; + }; + struct flow_dissector_key_ports tp; + struct flow_dissector_key_ip ip; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_eth_addrs eth_addrs; +}; + +struct ethtool_rx_flow_match { + struct flow_dissector dissector; + struct ethtool_rx_flow_key key; + struct ethtool_rx_flow_key mask; +}; + +struct ethtool_devlink_compat { + struct devlink *devlink; + union { + struct ethtool_flash efl; + struct ethtool_drvinfo info; + }; +}; + +struct ethtool_value { + __u32 cmd; + __u32 data; +}; + +struct ethtool_rx_flow_rule { + struct flow_rule *rule; + unsigned long priv[0]; +}; + +struct ethtool_eee { + __u32 cmd; + __u32 supported; + __u32 advertised; + __u32 lp_advertised; + __u32 eee_active; + __u32 eee_enabled; + __u32 tx_lpi_enabled; + __u32 tx_lpi_timer; + __u32 reserved[2]; +}; + +struct ethtool_link_usettings { + struct ethtool_link_settings base; + struct { + __u32 supported[4]; + __u32 advertising[4]; + __u32 lp_advertising[4]; + } link_modes; +}; + +struct ethtool_rx_flow_spec_input { + const struct ethtool_rx_flow_spec *fs; + u32 rss_ctx; +}; + +struct ethtool_gstrings { + __u32 cmd; + __u32 string_set; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_perm_addr { + __u32 cmd; + __u32 size; + __u8 data[0]; +}; + +struct ethtool_sset_info { + __u32 cmd; + __u32 reserved; + __u64 sset_mask; + __u32 data[0]; +}; + +struct ethtool_rxfh { + __u32 cmd; + __u32 rss_context; + __u32 indir_size; + __u32 key_size; + __u8 hfunc; + __u8 input_xfrm; + __u8 rsvd8[2]; + __u32 rsvd32; + __u32 rss_config[0]; +}; + +struct ethtool_get_features_block { + __u32 available; + __u32 requested; + __u32 active; + __u32 never_changed; +}; + +struct ethtool_gfeatures { + __u32 cmd; + __u32 size; + struct ethtool_get_features_block features[0]; +}; + +struct ethtool_set_features_block { + __u32 valid; + __u32 requested; +}; + +struct ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; +}; + +struct ethtool_per_queue_op { + __u32 cmd; + __u32 sub_command; + __u32 queue_mask[128]; + char data[0]; +}; + +struct xt_ecn_info { + __u8 operation; + __u8 invert; + __u8 ip_ect; + union { + struct { + __u8 ect; + } tcp; + } proto; +}; + +struct ipt_ip { + struct in_addr src; + struct in_addr dst; + struct in_addr smsk; + struct in_addr dmsk; + char iniface[16]; + char outiface[16]; + unsigned char iniface_mask[16]; + unsigned char outiface_mask[16]; + __u16 proto; + __u8 flags; + __u8 invflags; +}; + +struct ip6t_ip6 { + struct in6_addr src; + struct in6_addr dst; + struct in6_addr smsk; + struct in6_addr dmsk; + char iniface[16]; + char outiface[16]; + unsigned char iniface_mask[16]; + unsigned char outiface_mask[16]; + __u16 proto; + __u8 tos; + __u8 flags; + __u8 invflags; +}; + +enum ipt_reject_with { + IPT_ICMP_NET_UNREACHABLE = 0, + IPT_ICMP_HOST_UNREACHABLE = 1, + IPT_ICMP_PROT_UNREACHABLE = 2, + IPT_ICMP_PORT_UNREACHABLE = 3, + IPT_ICMP_ECHOREPLY = 4, + IPT_ICMP_NET_PROHIBITED = 5, + IPT_ICMP_HOST_PROHIBITED = 6, + IPT_TCP_RESET = 7, + IPT_ICMP_ADMIN_PROHIBITED = 8, +}; + +struct ipt_reject_info { + enum ipt_reject_with with; +}; + +struct ipt_entry { + struct ipt_ip ip; + unsigned int nfcache; + __u16 target_offset; + __u16 next_offset; + unsigned int comefrom; + struct xt_counters counters; + unsigned char elems[0]; +}; + +enum ieee80211_reasoncode { + WLAN_REASON_UNSPECIFIED = 1, + WLAN_REASON_PREV_AUTH_NOT_VALID = 2, + WLAN_REASON_DEAUTH_LEAVING = 3, + WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4, + WLAN_REASON_DISASSOC_AP_BUSY = 5, + WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6, + WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7, + WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8, + WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9, + WLAN_REASON_DISASSOC_BAD_POWER = 10, + WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11, + WLAN_REASON_INVALID_IE = 13, + WLAN_REASON_MIC_FAILURE = 14, + WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15, + WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16, + WLAN_REASON_IE_DIFFERENT = 17, + WLAN_REASON_INVALID_GROUP_CIPHER = 18, + WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19, + WLAN_REASON_INVALID_AKMP = 20, + WLAN_REASON_UNSUPP_RSN_VERSION = 21, + WLAN_REASON_INVALID_RSN_IE_CAP = 22, + WLAN_REASON_IEEE8021X_FAILED = 23, + WLAN_REASON_CIPHER_SUITE_REJECTED = 24, + WLAN_REASON_TDLS_TEARDOWN_UNREACHABLE = 25, + WLAN_REASON_TDLS_TEARDOWN_UNSPECIFIED = 26, + WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32, + WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33, + WLAN_REASON_DISASSOC_LOW_ACK = 34, + WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35, + WLAN_REASON_QSTA_LEAVE_QBSS = 36, + WLAN_REASON_QSTA_NOT_USE = 37, + WLAN_REASON_QSTA_REQUIRE_SETUP = 38, + WLAN_REASON_QSTA_TIMEOUT = 39, + WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45, + WLAN_REASON_MESH_PEER_CANCELED = 52, + WLAN_REASON_MESH_MAX_PEERS = 53, + WLAN_REASON_MESH_CONFIG = 54, + WLAN_REASON_MESH_CLOSE = 55, + WLAN_REASON_MESH_MAX_RETRIES = 56, + WLAN_REASON_MESH_CONFIRM_TIMEOUT = 57, + WLAN_REASON_MESH_INVALID_GTK = 58, + WLAN_REASON_MESH_INCONSISTENT_PARAM = 59, + WLAN_REASON_MESH_INVALID_SECURITY = 60, + WLAN_REASON_MESH_PATH_ERROR = 61, + WLAN_REASON_MESH_PATH_NOFORWARD = 62, + WLAN_REASON_MESH_PATH_DEST_UNREACHABLE = 63, + WLAN_REASON_MAC_EXISTS_IN_MBSS = 64, + WLAN_REASON_MESH_CHAN_REGULATORY = 65, + WLAN_REASON_MESH_CHAN = 66, +}; + +enum txq_info_flags { + IEEE80211_TXQ_STOP = 0, + IEEE80211_TXQ_AMPDU = 1, + IEEE80211_TXQ_NO_AMSDU = 2, + IEEE80211_TXQ_DIRTY = 3, +}; + +enum ieee80211_ht_actioncode { + WLAN_HT_ACTION_NOTIFY_CHANWIDTH = 0, + WLAN_HT_ACTION_SMPS = 1, + WLAN_HT_ACTION_PSMP = 2, + WLAN_HT_ACTION_PCO_PHASE = 3, + WLAN_HT_ACTION_CSI = 4, + WLAN_HT_ACTION_NONCOMPRESSED_BF = 5, + WLAN_HT_ACTION_COMPRESSED_BF = 6, + WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7, +}; + +enum ieee80211_status_data { + IEEE80211_STATUS_TYPE_MASK = 15, + IEEE80211_STATUS_TYPE_INVALID = 0, + IEEE80211_STATUS_TYPE_SMPS = 1, + IEEE80211_STATUS_SUBDATA_MASK = 4080, +}; + +struct codel_stats { + u32 maxpacket; + u32 drop_count; + u32 drop_len; + u32 ecn_mark; + u32 ce_mark; +}; + +struct txq_info { + struct fq_tin tin; + struct codel_vars def_cvars; + struct codel_stats cstats; + u16 schedule_round; + struct list_head schedule_order; + struct sk_buff_head frags; + unsigned long flags; + struct ieee80211_txq txq; +}; + +struct vdso_exception_table_entry { + int insn; + int fixup; +}; + +enum pcpu_fc { + PCPU_FC_AUTO = 0, + PCPU_FC_EMBED = 1, + PCPU_FC_PAGE = 2, + PCPU_FC_NR = 3, +}; + +typedef int pcpu_fc_cpu_to_node_fn_t(int); + +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); + +enum apic_intr_mode_id { + APIC_PIC = 0, + APIC_VIRTUAL_WIRE = 1, + APIC_VIRTUAL_WIRE_NO_CONFIG = 2, + APIC_SYMMETRIC_IO = 3, + APIC_SYMMETRIC_IO_NO_ROUTING = 4, +}; + +struct syscore_ops { + struct list_head node; + int (*suspend)(); + void (*resume)(); + void (*shutdown)(); +}; + +union apic_ir { + unsigned long map[4]; + u32 regs[8]; +}; + +struct irq_cfg { + unsigned int dest_apicid; + unsigned int vector; +}; + +struct cfs_rq { + struct load_weight load; + unsigned int nr_running; + unsigned int h_nr_running; + unsigned int idle_nr_running; + unsigned int idle_h_nr_running; + s64 avg_vruntime; + u64 avg_load; + u64 exec_clock; + u64 min_vruntime; + struct rb_root_cached tasks_timeline; + struct sched_entity *curr; + struct sched_entity *next; + unsigned int nr_spread_over; + long: 64; + long: 64; + long: 64; + struct sched_avg avg; + struct { + raw_spinlock_t lock; + int nr; + unsigned long load_avg; + unsigned long util_avg; + unsigned long runnable_avg; + long: 64; + long: 64; + long: 64; + long: 64; + } removed; + u64 last_update_tg_load_avg; + unsigned long tg_load_avg_contrib; + long propagate; + long prop_runnable_sum; + unsigned long h_load; + u64 last_h_load_update; + struct sched_entity *h_load_next; + struct rq *rq; + int on_list; + struct list_head leaf_cfs_rq_list; + struct task_group *tg; + int idle; + long: 64; + long: 64; + long: 64; +}; + +struct rt_prio_array { + unsigned long bitmap[2]; + struct list_head queue[100]; +}; + +struct rt_rq { + struct rt_prio_array active; + unsigned int rt_nr_running; + unsigned int rr_nr_running; + struct { + int curr; + int next; + } highest_prio; + int overloaded; + struct plist_head pushable_tasks; + int rt_queued; + int rt_throttled; + u64 rt_time; + u64 rt_runtime; + raw_spinlock_t rt_runtime_lock; +}; + +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + struct { + u64 curr; + u64 next; + } earliest_dl; + int overloaded; + struct rb_root_cached pushable_dl_tasks_root; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 max_bw; + u64 bw_ratio; +}; + +struct scx_rq { + struct scx_dispatch_q local_dsq; + struct list_head runnable_list; + unsigned long ops_qseq; + u64 extra_enq_flags; + u32 nr_running; + u32 flags; + u32 cpuperf_target; + bool cpu_released; + cpumask_var_t cpus_to_kick; + cpumask_var_t cpus_to_kick_if_idle; + cpumask_var_t cpus_to_preempt; + cpumask_var_t cpus_to_wait; + unsigned long pnt_seq; + struct irq_work kick_cpus_irq_work; +}; + +typedef int (*cpu_stop_fn_t)(void *); + +struct cpu_stop_done; + +struct cpu_stop_work { + struct list_head list; + cpu_stop_fn_t fn; + unsigned long caller; + void *arg; + struct cpu_stop_done *done; +}; + +struct root_domain; + +struct sched_domain; + +struct balance_callback; + +struct rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned long last_blocked_load_update_tick; + unsigned int has_blocked_load; + long: 64; + call_single_data_t nohz_csd; + unsigned int nohz_tick_stopped; + atomic_t nohz_flags; + unsigned int ttwu_pending; + u64 nr_switches; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cfs_rq cfs; + struct rt_rq rt; + struct dl_rq dl; + struct scx_rq scx; + struct list_head leaf_cfs_rq_list; + struct list_head *tmp_alone_branch; + unsigned int nr_uninterruptible; + struct task_struct __attribute__((btf_type_tag("rcu"))) *curr; + struct task_struct *idle; + struct task_struct *stop; + unsigned long next_balance; + struct mm_struct *prev_mm; + unsigned int clock_update_flags; + u64 clock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u64 clock_task; + u64 clock_pelt; + unsigned long lost_idle_time; + u64 clock_pelt_idle; + u64 clock_idle; + atomic_t nr_iowait; + u64 last_seen_need_resched_ns; + int ticks_without_resched; + int membarrier_state; + struct root_domain *rd; + struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd; + unsigned long cpu_capacity; + struct balance_callback *balance_callback; + unsigned char nohz_idle_balance; + unsigned char idle_balance; + unsigned long misfit_task_load; + int active_balance; + int push_cpu; + struct cpu_stop_work active_balance_work; + int cpu; + int online; + struct list_head cfs_tasks; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + u64 idle_stamp; + u64 avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + unsigned long calc_load_update; + long calc_load_active; + long: 64; + long: 64; + call_single_data_t hrtick_csd; + struct hrtimer hrtick_timer; + ktime_t hrtick_time; + struct cpuidle_state *idle_state; + unsigned int nr_pinned; + unsigned int push_busy; + struct cpu_stop_work push_work; + cpumask_var_t scratch_mask; + long: 64; + long: 64; +}; + +struct dl_bw { + raw_spinlock_t lock; + u64 bw; + u64 total_bw; +}; + +struct cpudl_item; + +struct cpudl { + raw_spinlock_t lock; + int size; + cpumask_var_t free_cpus; + struct cpudl_item *elements; +}; + +struct cpupri_vec { + atomic_t count; + cpumask_var_t mask; +}; + +struct cpupri { + struct cpupri_vec pri_to_cpu[101]; + int *cpu_to_pri; +}; + +struct perf_domain; + +struct root_domain { + atomic_t refcount; + atomic_t rto_count; + struct callback_head rcu; + cpumask_var_t span; + cpumask_var_t online; + int overload; + int overutilized; + cpumask_var_t dlo_mask; + atomic_t dlo_count; + struct dl_bw dl_bw; + struct cpudl cpudl; + u64 visit_gen; + struct irq_work rto_push_work; + raw_spinlock_t rto_lock; + int rto_loop; + int rto_cpu; + atomic_t rto_loop_next; + atomic_t rto_loop_start; + cpumask_var_t rto_mask; + struct cpupri cpupri; + unsigned long max_cpu_capacity; + struct perf_domain __attribute__((btf_type_tag("rcu"))) *pd; +}; + +struct cpudl_item { + u64 dl; + int cpu; + int idx; +}; + +struct em_perf_domain; + +struct perf_domain { + struct em_perf_domain *em_pd; + struct perf_domain *next; + struct callback_head rcu; +}; + +struct em_perf_table; + +struct em_perf_domain { + struct em_perf_table __attribute__((btf_type_tag("rcu"))) *em_table; + int nr_perf_states; + unsigned long flags; + unsigned long cpus[0]; +}; + +struct em_perf_state { + unsigned long performance; + unsigned long frequency; + unsigned long power; + unsigned long cost; + unsigned long flags; +}; + +struct em_perf_table { + struct callback_head rcu; + struct kref kref; + struct em_perf_state state[0]; +}; + +struct sched_group; + +struct sched_domain_shared; + +struct sched_domain { + struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent; + struct sched_domain __attribute__((btf_type_tag("rcu"))) *child; + struct sched_group *groups; + unsigned long min_interval; + unsigned long max_interval; + unsigned int busy_factor; + unsigned int imbalance_pct; + unsigned int cache_nice_tries; + unsigned int imb_numa_nr; + int nohz_idle; + int flags; + int level; + unsigned long last_balance; + unsigned int balance_interval; + unsigned int nr_balance_failed; + u64 max_newidle_lb_cost; + unsigned long last_decay_max_lb_cost; + char *name; + union { + void *private; + struct callback_head rcu; + }; + struct sched_domain_shared *shared; + unsigned int span_weight; + unsigned long span[0]; +}; + +struct sched_group_capacity; + +struct sched_group { + struct sched_group *next; + atomic_t ref; + unsigned int group_weight; + unsigned int cores; + struct sched_group_capacity *sgc; + int asym_prefer_cpu; + int flags; + unsigned long cpumask[0]; +}; + +struct sched_group_capacity { + atomic_t ref; + unsigned long capacity; + unsigned long min_capacity; + unsigned long max_capacity; + unsigned long next_update; + int imbalance; + int id; + unsigned long cpumask[0]; +}; + +struct sched_domain_shared { + atomic_t ref; + atomic_t nr_busy_cpus; + int has_idle_cores; + int nr_idle_scan; +}; + +struct balance_callback { + struct balance_callback *next; + void (*func)(struct rq *); +}; + +struct cfs_bandwidth {}; + +struct task_group { + struct cgroup_subsys_state css; + struct sched_entity **se; + struct cfs_rq **cfs_rq; + unsigned long shares; + int idle; + long: 64; + atomic_long_t load_avg; + u32 scx_flags; + u32 scx_weight; + struct callback_head rcu; + struct list_head list; + struct task_group *parent; + struct list_head siblings; + struct list_head children; + struct cfs_bandwidth cfs_bandwidth; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct pin_cookie { + unsigned int val; +}; + +struct rq_flags { + unsigned long flags; + struct pin_cookie cookie; + unsigned int clock_update_flags; +}; + +struct affinity_context { + const struct cpumask *new_mask; + struct cpumask *user_mask; + unsigned int flags; +}; + +struct sd_flag_debug { + unsigned int meta_flags; + char *name; +}; + +struct update_util_data { + void (*func)(struct update_util_data *, u64, unsigned int); +}; + +enum numa_topology_type { + NUMA_DIRECT = 0, + NUMA_GLUELESS_MESH = 1, + NUMA_BACKPLANE = 2, +}; + +typedef const struct cpumask * (*sched_domain_mask_f)(int); + +typedef int (*sched_domain_flags_f)(); + +struct sd_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; + struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; + struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; +}; + +struct sched_domain_topology_level { + sched_domain_mask_f mask; + sched_domain_flags_f sd_flags; + int flags; + int numa_level; + struct sd_data data; + char *name; +}; + +struct sched_domain_attr { + int relax_domain_level; +}; + +struct housekeeping { + cpumask_var_t cpumasks[9]; + unsigned long flags; +}; + +struct sched_clock_data { + u64 tick_raw; + u64 tick_gtod; + u64 clock; +}; + +struct cpuacct { + struct cgroup_subsys_state css; + u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; + struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; +}; + +struct gov_attr_set { + struct kobject kobj; + struct list_head policy_list; + struct mutex update_lock; + int usage_count; +}; + +struct sugov_tunables { + struct gov_attr_set attr_set; + unsigned int rate_limit_us; +}; + +struct governor_attr { + struct attribute attr; + ssize_t (*show)(struct gov_attr_set *, char *); + ssize_t (*store)(struct gov_attr_set *, const char *, size_t); +}; + +struct sugov_policy; + +struct sugov_cpu { + struct update_util_data update_util; + struct sugov_policy *sg_policy; + unsigned int cpu; + bool iowait_boost_pending; + unsigned int iowait_boost; + u64 last_update; + unsigned long util; + unsigned long bw_min; + unsigned long saved_idle_calls; +}; + +struct sugov_policy { + struct cpufreq_policy *policy; + struct sugov_tunables *tunables; + struct list_head tunables_hook; + raw_spinlock_t update_lock; + u64 last_freq_update_time; + s64 freq_update_delay_ns; + unsigned int next_freq; + unsigned int cached_raw_freq; + struct irq_work irq_work; + struct kthread_work work; + struct mutex work_lock; + struct kthread_worker worker; + struct task_struct *thread; + bool work_in_progress; + bool limits_changed; + bool need_freq_update; +}; + +enum psi_task_count { + NR_IOWAIT = 0, + NR_MEMSTALL = 1, + NR_RUNNING = 2, + NR_MEMSTALL_RUNNING = 3, + NR_PSI_TASK_COUNTS = 4, +}; + +enum psi_states { + PSI_IO_SOME = 0, + PSI_IO_FULL = 1, + PSI_MEM_SOME = 2, + PSI_MEM_FULL = 3, + PSI_CPU_SOME = 4, + PSI_CPU_FULL = 5, + PSI_NONIDLE = 6, + NR_PSI_STATES = 7, +}; + +enum psi_res { + PSI_IO = 0, + PSI_MEM = 1, + PSI_CPU = 2, + NR_PSI_RESOURCES = 3, +}; + +enum psi_aggregators { + PSI_AVGS = 0, + PSI_POLL = 1, + NR_PSI_AGGREGATORS = 2, +}; + +enum hk_flags { + HK_FLAG_TIMER = 1, + HK_FLAG_RCU = 2, + HK_FLAG_MISC = 4, + HK_FLAG_SCHED = 8, + HK_FLAG_TICK = 16, + HK_FLAG_DOMAIN = 32, + HK_FLAG_WQ = 64, + HK_FLAG_MANAGED_IRQ = 128, + HK_FLAG_KTHREAD = 256, +}; + +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + hugetlb_cgrp_id = 9, + pids_cgrp_id = 10, + rdma_cgrp_id = 11, + misc_cgrp_id = 12, + debug_cgrp_id = 13, + CGROUP_SUBSYS_COUNT = 14, +}; + +enum cpuacct_stat_index { + CPUACCT_STAT_USER = 0, + CPUACCT_STAT_SYSTEM = 1, + CPUACCT_STAT_NSTATS = 2, }; enum { - ETHTOOL_A_TSINFO_UNSPEC = 0, - ETHTOOL_A_TSINFO_HEADER = 1, - ETHTOOL_A_TSINFO_TIMESTAMPING = 2, - ETHTOOL_A_TSINFO_TX_TYPES = 3, - ETHTOOL_A_TSINFO_RX_FILTERS = 4, - ETHTOOL_A_TSINFO_PHC_INDEX = 5, - __ETHTOOL_A_TSINFO_CNT = 6, - ETHTOOL_A_TSINFO_MAX = 5, + __SCHED_FEAT_PLACE_LAG = 0, + __SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1, + __SCHED_FEAT_RUN_TO_PARITY = 2, + __SCHED_FEAT_NEXT_BUDDY = 3, + __SCHED_FEAT_CACHE_HOT_BUDDY = 4, + __SCHED_FEAT_WAKEUP_PREEMPTION = 5, + __SCHED_FEAT_HRTICK = 6, + __SCHED_FEAT_HRTICK_DL = 7, + __SCHED_FEAT_DOUBLE_TICK = 8, + __SCHED_FEAT_NONTASK_CAPACITY = 9, + __SCHED_FEAT_TTWU_QUEUE = 10, + __SCHED_FEAT_SIS_UTIL = 11, + __SCHED_FEAT_WARN_DOUBLE_CLOCK = 12, + __SCHED_FEAT_RT_PUSH_IPI = 13, + __SCHED_FEAT_RT_RUNTIME_SHARE = 14, + __SCHED_FEAT_LB_MIN = 15, + __SCHED_FEAT_ATTACH_AGE_LOAD = 16, + __SCHED_FEAT_WA_IDLE = 17, + __SCHED_FEAT_WA_WEIGHT = 18, + __SCHED_FEAT_WA_BIAS = 19, + __SCHED_FEAT_UTIL_EST = 20, + __SCHED_FEAT_LATENCY_WARN = 21, + __SCHED_FEAT_HZ_BW = 22, + __SCHED_FEAT_NR = 23, }; -struct tsinfo_reply_data { +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, +}; + +enum { + __SD_BALANCE_NEWIDLE = 0, + __SD_BALANCE_EXEC = 1, + __SD_BALANCE_FORK = 2, + __SD_BALANCE_WAKE = 3, + __SD_WAKE_AFFINE = 4, + __SD_ASYM_CPUCAPACITY = 5, + __SD_ASYM_CPUCAPACITY_FULL = 6, + __SD_SHARE_CPUCAPACITY = 7, + __SD_CLUSTER = 8, + __SD_SHARE_LLC = 9, + __SD_SERIALIZE = 10, + __SD_ASYM_PACKING = 11, + __SD_PREFER_SIBLING = 12, + __SD_OVERLAP = 13, + __SD_NUMA = 14, + __SD_FLAG_CNT = 15, +}; + +enum { + SD_BALANCE_NEWIDLE = 1, + SD_BALANCE_EXEC = 2, + SD_BALANCE_FORK = 4, + SD_BALANCE_WAKE = 8, + SD_WAKE_AFFINE = 16, + SD_ASYM_CPUCAPACITY = 32, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_CLUSTER = 256, + SD_SHARE_LLC = 512, + SD_SERIALIZE = 1024, + SD_ASYM_PACKING = 2048, + SD_PREFER_SIBLING = 4096, + SD_OVERLAP = 8192, + SD_NUMA = 16384, +}; + +enum s_alloc { + sa_rootdomain = 0, + sa_sd = 1, + sa_sd_storage = 2, + sa_none = 3, +}; + +enum membarrier_cmd { + MEMBARRIER_CMD_QUERY = 0, + MEMBARRIER_CMD_GLOBAL = 1, + MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2, + MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4, + MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8, + MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16, + MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32, + MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64, + MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128, + MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256, + MEMBARRIER_CMD_GET_REGISTRATIONS = 512, + MEMBARRIER_CMD_SHARED = 1, +}; + +enum membarrier_cmd_flag { + MEMBARRIER_CMD_FLAG_CPU = 1, +}; + +enum { + MEMBARRIER_FLAG_SYNC_CORE = 1, + MEMBARRIER_FLAG_RSEQ = 2, +}; + +enum { + MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1, + MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2, + MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4, + MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, +}; + +enum rseq_event_mask_bits { + RSEQ_EVENT_PREEMPT_BIT = 0, + RSEQ_EVENT_SIGNAL_BIT = 1, + RSEQ_EVENT_MIGRATE_BIT = 2, +}; + +struct swait_queue { + struct task_struct *task; + struct list_head task_list; +}; + +struct psi_window { + u64 size; + u64 start_time; + u64 start_value; + u64 prev_growth; +}; + +struct psi_trigger { + enum psi_states state; + u64 threshold; + struct list_head node; + struct psi_group *group; + wait_queue_head_t event_wait; + struct kernfs_open_file *of; + int event; + struct psi_window win; + u64 last_event_time; + bool pending_event; + enum psi_aggregators aggregator; +}; + +struct __cmp_key { + const struct cpumask *cpus; + struct cpumask ***masks; + int node; + int cpu; + int w; +}; + +struct asym_cap_data { + struct list_head link; + unsigned long capacity; + unsigned long cpus[0]; +}; + +struct sched_attr { + __u32 size; + __u32 sched_policy; + __u64 sched_flags; + __s32 sched_nice; + __u32 sched_priority; + __u64 sched_runtime; + __u64 sched_deadline; + __u64 sched_period; + __u32 sched_util_min; + __u32 sched_util_max; +}; + +struct s_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct root_domain *rd; +}; + +typedef struct mutex *class_mutex_t; + +struct bpf_local_storage_data { + struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; + u8 data[0]; +}; + +struct bpf_local_storage_map_bucket; + +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + struct bpf_mem_alloc selem_ma; + struct bpf_mem_alloc storage_ma; + bool bpf_ma; +}; + +struct bpf_local_storage_map_bucket { + struct hlist_head list; + raw_spinlock_t lock; +}; + +struct bpf_cgroup_storage_map { + struct bpf_map map; + spinlock_t lock; + struct rb_root root; + struct list_head list; +}; + +enum bpf_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, +}; + +struct hugetlb_vma_lock { + struct kref refs; + struct rw_semaphore rw_sema; + struct vm_area_struct *vma; +}; + +struct zpool_driver { + char *type; + struct module *owner; + atomic_t refcount; + struct list_head list; + void * (*create)(const char *, gfp_t); + void (*destroy)(void *); + bool malloc_support_movable; + int (*malloc)(void *, size_t, gfp_t, unsigned long *); + void (*free)(void *, unsigned long); + bool sleep_mapped; + void * (*map)(void *, unsigned long, enum zpool_mapmode); + void (*unmap)(void *, unsigned long); + u64 (*total_size)(void *); +}; + +enum buddy { + FIRST = 0, + LAST = 1, +}; + +struct zbud_header { + struct list_head buddy; + unsigned int first_chunks; + unsigned int last_chunks; +}; + +struct zbud_pool { + spinlock_t lock; + union { + struct list_head buddied; + struct list_head unbuddied[63]; + }; + u64 pages_nr; +}; + +enum kernfs_node_type { + KERNFS_DIR = 1, + KERNFS_FILE = 2, + KERNFS_LINK = 4, +}; + +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); + +typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); + +typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); + +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; +}; + +struct trace_event_raw_jbd2_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + char __data[0]; +}; + +struct trace_event_raw_jbd2_end_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + tid_t head; + char __data[0]; +}; + +struct trace_event_raw_jbd2_submit_inode_data { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_start_class { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int requested_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_extend { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int buffer_credits; + int requested_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int interval; + int sync; + int requested_blocks; + int dirtied_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_run_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned long wait; + unsigned long request_delay; + unsigned long running; + unsigned long locked; + unsigned long flushing; + unsigned long logging; + __u32 handle_count; + __u32 blocks; + __u32 blocks_logged; + char __data[0]; +}; + +struct trace_event_raw_jbd2_checkpoint_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned long chp_time; + __u32 forced_to_close; + __u32 written; + __u32 dropped; + char __data[0]; +}; + +struct trace_event_raw_jbd2_update_log_tail { + struct trace_entry ent; + dev_t dev; + tid_t tail_sequence; + tid_t first_tid; + unsigned long block_nr; + unsigned long freed; + char __data[0]; +}; + +struct trace_event_raw_jbd2_write_superblock { + struct trace_entry ent; + dev_t dev; + blk_opf_t write_flags; + char __data[0]; +}; + +struct trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + unsigned long stall_ms; + char __data[0]; +}; + +struct trace_event_raw_jbd2_journal_shrink { + struct trace_entry ent; + dev_t dev; + unsigned long nr_to_scan; + unsigned long count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_scan_exit { + struct trace_entry ent; + dev_t dev; + unsigned long nr_to_scan; + unsigned long nr_shrunk; + unsigned long count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_checkpoint_list { + struct trace_entry ent; + dev_t dev; + tid_t first_tid; + tid_t tid; + tid_t last_tid; + unsigned long nr_freed; + tid_t next_tid; + char __data[0]; +}; + +struct trace_event_data_offsets_jbd2_checkpoint {}; + +struct trace_event_data_offsets_jbd2_commit {}; + +struct trace_event_data_offsets_jbd2_end_commit {}; + +struct trace_event_data_offsets_jbd2_submit_inode_data {}; + +struct trace_event_data_offsets_jbd2_handle_start_class {}; + +struct trace_event_data_offsets_jbd2_handle_extend {}; + +struct trace_event_data_offsets_jbd2_handle_stats {}; + +struct trace_event_data_offsets_jbd2_run_stats {}; + +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; + +struct trace_event_data_offsets_jbd2_update_log_tail {}; + +struct trace_event_data_offsets_jbd2_write_superblock {}; + +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; + +struct trace_event_data_offsets_jbd2_journal_shrink {}; + +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; + +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; + +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; +}; + +enum blktrace_cat { + BLK_TC_READ = 1, + BLK_TC_WRITE = 2, + BLK_TC_FLUSH = 4, + BLK_TC_SYNC = 8, + BLK_TC_SYNCIO = 8, + BLK_TC_QUEUE = 16, + BLK_TC_REQUEUE = 32, + BLK_TC_ISSUE = 64, + BLK_TC_COMPLETE = 128, + BLK_TC_FS = 256, + BLK_TC_PC = 512, + BLK_TC_NOTIFY = 1024, + BLK_TC_AHEAD = 2048, + BLK_TC_META = 4096, + BLK_TC_DISCARD = 8192, + BLK_TC_DRV_DATA = 16384, + BLK_TC_FUA = 32768, + BLK_TC_END = 32768, +}; + +struct bfq_sched_data; + +struct bfq_queue; + +struct bfq_entity { + struct rb_node rb_node; + bool on_st_or_in_serv; + u64 start; + u64 finish; + struct rb_root *tree; + u64 min_start; + int service; + int budget; + int allocated; + int dev_weight; + int weight; + int new_weight; + int orig_weight; + struct bfq_entity *parent; + struct bfq_sched_data *my_sched_data; + struct bfq_sched_data *sched_data; + int prio_changed; + bool in_groups_with_pending_reqs; + struct bfq_queue *last_bfqq_created; +}; + +struct bfq_ttime { + u64 last_end_request; + u64 ttime_total; + unsigned long ttime_samples; + u64 ttime_mean; +}; + +struct bfq_data; + +struct bfq_weight_counter; + +struct bfq_io_cq; + +struct bfq_queue { + int ref; + int stable_ref; + struct bfq_data *bfqd; + unsigned short ioprio; + unsigned short ioprio_class; + unsigned short new_ioprio; + unsigned short new_ioprio_class; + u64 last_serv_time_ns; + unsigned int inject_limit; + unsigned long decrease_time_jif; + struct bfq_queue *new_bfqq; + struct rb_node pos_node; + struct rb_root *pos_root; + struct rb_root sort_list; + struct request *next_rq; + int queued[2]; + int meta_pending; + struct list_head fifo; + struct bfq_entity entity; + struct bfq_weight_counter *weight_counter; + int max_budget; + unsigned long budget_timeout; + int dispatched; + unsigned long flags; + struct list_head bfqq_list; + struct bfq_ttime ttime; + u64 io_start_time; + u64 tot_idle_time; + u32 seek_history; + struct hlist_node burst_list_node; + sector_t last_request_pos; + unsigned int requests_within_timer; + pid_t pid; + struct bfq_io_cq *bic; + unsigned long wr_cur_max_time; + unsigned long soft_rt_next_start; + unsigned long last_wr_start_finish; + unsigned int wr_coeff; + unsigned long last_idle_bklogged; + unsigned long service_from_backlogged; + unsigned long service_from_wr; + unsigned long wr_start_at_switch_to_srt; + unsigned long split_time; + unsigned long first_IO_time; + unsigned long creation_time; + struct bfq_queue *waker_bfqq; + struct bfq_queue *tentative_waker_bfqq; + unsigned int num_waker_detections; + u64 waker_detection_started; + struct hlist_node woken_list_node; + struct hlist_head woken_list; + unsigned int actuator_idx; +}; + +struct bfq_group; + +struct bfq_data { + struct request_queue *queue; + struct list_head dispatch; + struct bfq_group *root_group; + struct rb_root_cached queue_weights_tree; + unsigned int num_groups_with_pending_reqs; + unsigned int busy_queues[3]; + int wr_busy_queues; + int queued; + int tot_rq_in_driver; + int rq_in_driver[8]; + bool nonrot_with_queueing; + int max_rq_in_driver; + int hw_tag_samples; + int hw_tag; + int budgets_assigned; + struct hrtimer idle_slice_timer; + struct bfq_queue *in_service_queue; + sector_t last_position; + sector_t in_serv_last_pos; + u64 last_completion; + struct bfq_queue *last_completed_rq_bfqq; + struct bfq_queue *last_bfqq_created; + u64 last_empty_occupied_ns; + bool wait_dispatch; + struct request *waited_rq; + bool rqs_injected; + u64 first_dispatch; + u64 last_dispatch; + ktime_t last_budget_start; + ktime_t last_idling_start; + unsigned long last_idling_start_jiffies; + int peak_rate_samples; + u32 sequential_samples; + u64 tot_sectors_dispatched; + u32 last_rq_max_size; + u64 delta_from_first; + u32 peak_rate; + int bfq_max_budget; + struct list_head active_list[8]; + struct list_head idle_list; + u64 bfq_fifo_expire[2]; + unsigned int bfq_back_penalty; + unsigned int bfq_back_max; + u32 bfq_slice_idle; + int bfq_user_max_budget; + unsigned int bfq_timeout; + bool strict_guarantees; + unsigned long last_ins_in_burst; + unsigned long bfq_burst_interval; + int burst_size; + struct bfq_entity *burst_parent_entity; + unsigned long bfq_large_burst_thresh; + bool large_burst; + struct hlist_head burst_list; + bool low_latency; + unsigned int bfq_wr_coeff; + unsigned int bfq_wr_rt_max_time; + unsigned int bfq_wr_min_idle_time; + unsigned long bfq_wr_min_inter_arr_async; + unsigned int bfq_wr_max_softrt_rate; + u64 rate_dur_prod; + struct bfq_queue oom_bfqq; + spinlock_t lock; + struct bfq_io_cq *bio_bic; + struct bfq_queue *bio_bfqq; + unsigned int word_depths[4]; + unsigned int full_depth_shift; + unsigned int num_actuators; + sector_t sector[8]; + sector_t nr_sectors[8]; + struct blk_independent_access_range ia_ranges[8]; + unsigned int actuator_load_threshold; +}; + +struct bfq_service_tree { + struct rb_root active; + struct rb_root idle; + struct bfq_entity *first_idle; + struct bfq_entity *last_idle; + u64 vtime; + unsigned long wsum; +}; + +struct bfq_sched_data { + struct bfq_entity *in_service_entity; + struct bfq_entity *next_in_service; + struct bfq_service_tree service_tree[3]; + unsigned long bfq_class_idle_last_service; +}; + +struct blkg_rwstat { + struct percpu_counter cpu_cnt[5]; + atomic64_t aux_cnt[5]; +}; + +struct bfqg_stats { + struct blkg_rwstat bytes; + struct blkg_rwstat ios; +}; + +struct bfq_group { + struct blkg_policy_data pd; + char blkg_path[128]; + refcount_t ref; + struct bfq_entity entity; + struct bfq_sched_data sched_data; + struct bfq_data *bfqd; + struct bfq_queue *async_bfqq[128]; + struct bfq_queue *async_idle_bfqq[8]; + struct bfq_entity *my_entity; + int active_entities; + int num_queues_with_pending_reqs; + struct rb_root rq_pos_tree; + struct bfqg_stats stats; +}; + +struct bfq_iocq_bfqq_data { + bool saved_has_short_ttime; + bool saved_IO_bound; + u64 saved_io_start_time; + u64 saved_tot_idle_time; + bool saved_in_large_burst; + bool was_in_burst_list; + unsigned int saved_weight; + unsigned long saved_wr_coeff; + unsigned long saved_last_wr_start_finish; + unsigned long saved_service_from_wr; + unsigned long saved_wr_start_at_switch_to_srt; + unsigned int saved_wr_cur_max_time; + struct bfq_ttime saved_ttime; + u64 saved_last_serv_time_ns; + unsigned int saved_inject_limit; + unsigned long saved_decrease_time_jif; + struct bfq_queue *stable_merge_bfqq; + bool stably_merged; +}; + +struct bfq_io_cq { + struct io_cq icq; + struct bfq_queue *bfqq[16]; + int ioprio; + uint64_t blkcg_serial_nr; + struct bfq_iocq_bfqq_data bfqq_data[8]; + unsigned int requests; +}; + +struct bfq_weight_counter { + unsigned int weight; + unsigned int num_active; + struct rb_node weights_node; +}; + +struct io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; +}; + +struct acpi_table_desc { + acpi_physical_address address; + struct acpi_table_header *pointer; + u32 length; + union acpi_name_union signature; + acpi_owner_id owner_id; + u8 flags; + u16 validation_count; +}; + +struct mid8250; + +struct mid8250_board { + unsigned long freq; + unsigned int base_baud; + unsigned int bar; + int (*setup)(struct mid8250 *, struct uart_port *); + void (*exit)(struct mid8250 *); +}; + +struct hsu_dma; + +struct hsu_dma_chip { + struct device *dev; + int irq; + void *regs; + unsigned int length; + unsigned int offset; + struct hsu_dma *hsu; +}; + +struct mid8250 { + int line; + int dma_index; + struct pci_dev *dma_dev; + struct uart_8250_dma dma; + struct mid8250_board *board; + struct hsu_dma_chip dma_chip; +}; + +struct hsu_dma_slave { + struct device *dma_dev; + int chan_id; +}; + +enum scsi_host_status { + DID_OK = 0, + DID_NO_CONNECT = 1, + DID_BUS_BUSY = 2, + DID_TIME_OUT = 3, + DID_BAD_TARGET = 4, + DID_ABORT = 5, + DID_PARITY = 6, + DID_ERROR = 7, + DID_RESET = 8, + DID_BAD_INTR = 9, + DID_PASSTHROUGH = 10, + DID_SOFT_ERROR = 11, + DID_IMM_RETRY = 12, + DID_REQUEUE = 13, + DID_TRANSPORT_DISRUPTED = 14, + DID_TRANSPORT_FAILFAST = 15, + DID_TRANSPORT_MARGINAL = 20, +}; + +enum scsi_disposition { + NEEDS_RETRY = 8193, + SUCCESS = 8194, + FAILED = 8195, + QUEUED = 8196, + SOFT_ERROR = 8197, + ADD_TO_MLQUEUE = 8198, + TIMEOUT_ERROR = 8199, + SCSI_RETURN_NOT_HANDLED = 8200, + FAST_IO_FAIL = 8201, +}; + +enum iwl_pcie_fw_reset_state { + FW_RESET_IDLE = 0, + FW_RESET_REQUESTED = 1, + FW_RESET_OK = 2, + FW_RESET_ERROR = 3, +}; + +enum iwl_pcie_imr_status { + IMR_D2S_IDLE = 0, + IMR_D2S_REQUESTED = 1, + IMR_D2S_COMPLETED = 2, + IMR_D2S_ERROR = 3, +}; + +enum msix_hw_int_causes { + MSIX_HW_INT_CAUSES_REG_ALIVE = 1, + MSIX_HW_INT_CAUSES_REG_WAKEUP = 2, + MSIX_HW_INT_CAUSES_REG_IML = 2, + MSIX_HW_INT_CAUSES_REG_RESET_DONE = 4, + MSIX_HW_INT_CAUSES_REG_TOP_FATAL_ERR = 8, + MSIX_HW_INT_CAUSES_REG_SW_ERR_BZ = 32, + MSIX_HW_INT_CAUSES_REG_CT_KILL = 64, + MSIX_HW_INT_CAUSES_REG_RF_KILL = 128, + MSIX_HW_INT_CAUSES_REG_PERIODIC = 256, + MSIX_HW_INT_CAUSES_REG_SW_ERR = 33554432, + MSIX_HW_INT_CAUSES_REG_SCD = 67108864, + MSIX_HW_INT_CAUSES_REG_FH_TX = 134217728, + MSIX_HW_INT_CAUSES_REG_HW_ERR = 536870912, + MSIX_HW_INT_CAUSES_REG_HAP = 1073741824, +}; + +enum { + SILICON_A_STEP = 0, + SILICON_B_STEP = 1, + SILICON_C_STEP = 2, + SILICON_D_STEP = 3, + SILICON_E_STEP = 4, + SILICON_TC_STEP = 14, + SILICON_Z_STEP = 15, +}; + +struct iwl_rb_allocator { + atomic_t req_pending; + atomic_t req_ready; + struct list_head rbd_allocated; + struct list_head rbd_empty; + spinlock_t lock; + struct workqueue_struct *alloc_wq; + struct work_struct rx_alloc; +}; + +struct isr_statistics { + u32 hw; + u32 sw; + u32 err_code; + u32 sch; + u32 alive; + u32 rfkill; + u32 ctkill; + u32 wakeup; + u32 rx; + u32 tx; + u32 unhandled; +}; + +struct iwl_dram_regions { + struct iwl_dram_data drams[64]; + struct iwl_dram_data prph_scratch_mem_desc; + u8 n_regions; +}; + +struct iwl_rxq; + +struct iwl_rx_mem_buffer; + +struct iwl_context_info; + +struct iwl_context_info_gen3; + +struct iwl_prph_info; + +struct iwl_prph_scratch; + +struct iwl_trans_pcie { + struct iwl_rxq *rxq; + struct iwl_rx_mem_buffer *rx_pool; + struct iwl_rx_mem_buffer **global_table; + struct iwl_rb_allocator rba; + union { + struct iwl_context_info *ctxt_info; + struct iwl_context_info_gen3 *ctxt_info_gen3; + }; + struct iwl_prph_info *prph_info; + struct iwl_prph_scratch *prph_scratch; + void *iml; + dma_addr_t ctxt_info_dma_addr; + dma_addr_t prph_info_dma_addr; + dma_addr_t prph_scratch_dma_addr; + dma_addr_t iml_dma_addr; + struct iwl_trans *trans; + struct net_device napi_dev; + __le32 *ict_tbl; + dma_addr_t ict_tbl_dma; + int ict_index; + bool use_ict; + bool is_down; + bool opmode_down; + s8 debug_rfkill; + struct isr_statistics isr_stats; + spinlock_t irq_lock; + struct mutex mutex; + u32 inta_mask; + u32 scd_base_addr; + struct iwl_dma_ptr kw; + struct iwl_dram_regions pnvm_data; + struct iwl_dram_regions reduced_tables_data; + struct iwl_txq *txq_memory; + struct pci_dev *pci_dev; + u8 *hw_base; + bool ucode_write_complete; + bool sx_complete; + wait_queue_head_t ucode_write_waitq; + wait_queue_head_t sx_waitq; + u8 n_no_reclaim_cmds; + u8 no_reclaim_cmds[6]; + u16 num_rx_bufs; + enum iwl_amsdu_size rx_buf_size; + bool scd_set_active; + bool pcie_dbg_dumped_once; + u32 rx_page_order; + u32 rx_buf_bytes; + u32 supported_dma_mask; + spinlock_t alloc_page_lock; + struct page *alloc_page; + u32 alloc_page_used; + spinlock_t reg_lock; + bool cmd_hold_nic_awake; + struct msix_entry msix_entries[16]; + bool msix_enabled; + u8 shared_vec_mask; + u32 alloc_vecs; + u32 def_irq; + u32 fh_init_mask; + u32 hw_init_mask; + u32 fh_mask; + u32 hw_mask; + cpumask_t affinity_mask[16]; + u16 tx_cmd_queue_size; + bool in_rescan; + void *base_rb_stts; + dma_addr_t base_rb_stts_dma; + bool fw_reset_handshake; + enum iwl_pcie_fw_reset_state fw_reset_state; + wait_queue_head_t fw_reset_waitq; + enum iwl_pcie_imr_status imr_status; + wait_queue_head_t imr_waitq; + char rf_name[32]; +}; + +struct iwl_rxq { + int id; + void *bd; + dma_addr_t bd_dma; + void *used_bd; + dma_addr_t used_bd_dma; + u32 read; + u32 write; + u32 free_count; + u32 used_count; + u32 write_actual; + u32 queue_size; + struct list_head rx_free; + struct list_head rx_used; + bool need_update; + bool next_rb_is_fragment; + void *rb_stts; + dma_addr_t rb_stts_dma; + spinlock_t lock; + struct napi_struct napi; + struct iwl_rx_mem_buffer *queue[256]; +}; + +struct iwl_rx_mem_buffer { + dma_addr_t page_dma; + struct page *page; + struct list_head list; + u32 offset; + u16 vid; + bool invalid; +}; + +struct iwl_context_info_version { + __le16 mac_id; + __le16 version; + __le16 size; + __le16 reserved; +}; + +struct iwl_context_info_control { + __le32 control_flags; + __le32 reserved; +}; + +struct iwl_context_info_rbd_cfg { + __le64 free_rbd_addr; + __le64 used_rbd_addr; + __le64 status_wr_ptr; +}; + +struct iwl_context_info_hcmd_cfg { + __le64 cmd_queue_addr; + u8 cmd_queue_size; + u8 reserved[7]; +}; + +struct iwl_context_info_dump_cfg { + __le64 core_dump_addr; + __le32 core_dump_size; + __le32 reserved; +}; + +struct iwl_context_info_early_dbg_cfg { + __le64 early_debug_addr; + __le32 early_debug_size; + __le32 reserved; +}; + +struct iwl_context_info_pnvm_cfg { + __le64 platform_nvm_addr; + __le32 platform_nvm_size; + __le32 reserved; +}; + +struct iwl_context_info_dram { + __le64 umac_img[64]; + __le64 lmac_img[64]; + __le64 virtual_img[64]; +}; + +struct iwl_context_info { + struct iwl_context_info_version version; + struct iwl_context_info_control control; + __le64 reserved0; + struct iwl_context_info_rbd_cfg rbd_cfg; + struct iwl_context_info_hcmd_cfg hcmd_cfg; + __le32 reserved1[4]; + struct iwl_context_info_dump_cfg dump_cfg; + struct iwl_context_info_early_dbg_cfg edbg_cfg; + struct iwl_context_info_pnvm_cfg pnvm_cfg; + __le32 reserved2[16]; + struct iwl_context_info_dram dram; + __le32 reserved3[16]; +}; + +struct iwl_context_info_gen3 { + __le16 version; + __le16 size; + __le32 config; + __le64 prph_info_base_addr; + __le64 cr_head_idx_arr_base_addr; + __le64 tr_tail_idx_arr_base_addr; + __le64 cr_tail_idx_arr_base_addr; + __le64 tr_head_idx_arr_base_addr; + __le16 cr_idx_arr_size; + __le16 tr_idx_arr_size; + __le64 mtr_base_addr; + __le64 mcr_base_addr; + __le16 mtr_size; + __le16 mcr_size; + __le16 mtr_doorbell_vec; + __le16 mcr_doorbell_vec; + __le16 mtr_msi_vec; + __le16 mcr_msi_vec; + u8 mtr_opt_header_size; + u8 mtr_opt_footer_size; + u8 mcr_opt_header_size; + u8 mcr_opt_footer_size; + __le16 msg_rings_ctrl_flags; + __le16 prph_info_msi_vec; + __le64 prph_scratch_base_addr; + __le32 prph_scratch_size; + __le32 reserved; +} __attribute__((packed)); + +struct iwl_prph_info { + __le32 boot_stage_mirror; + __le32 ipc_status_mirror; + __le32 sleep_notif; + __le32 reserved; +}; + +struct iwl_prph_scratch_version { + __le16 mac_id; + __le16 version; + __le16 size; + __le16 reserved; +}; + +struct iwl_prph_scratch_control { + __le32 control_flags; + __le32 reserved; +}; + +struct iwl_prph_scratch_pnvm_cfg { + __le64 pnvm_base_addr; + __le32 pnvm_size; + __le32 reserved; +}; + +struct iwl_prph_scratch_hwm_cfg { + __le64 hwm_base_addr; + __le32 hwm_size; + __le32 debug_token_config; +}; + +struct iwl_prph_scratch_rbd_cfg { + __le64 free_rbd_addr; + __le32 reserved; +} __attribute__((packed)); + +struct iwl_prph_scratch_uefi_cfg { + __le64 base_addr; + __le32 size; + __le32 reserved; +}; + +struct iwl_prph_scratch_step_cfg { + __le32 mbx_addr_0; + __le32 mbx_addr_1; +}; + +struct iwl_prph_scratch_ctrl_cfg { + struct iwl_prph_scratch_version version; + struct iwl_prph_scratch_control control; + struct iwl_prph_scratch_pnvm_cfg pnvm_cfg; + struct iwl_prph_scratch_hwm_cfg hwm_cfg; + struct iwl_prph_scratch_rbd_cfg rbd_cfg; + struct iwl_prph_scratch_uefi_cfg reduce_power_cfg; + struct iwl_prph_scratch_step_cfg step_cfg; +} __attribute__((packed)); + +struct iwl_prph_scratch { + struct iwl_prph_scratch_ctrl_cfg ctrl_cfg; + __le32 fseq_override; + __le32 step_analog_params; + __le32 reserved[8]; + struct iwl_context_info_dram dram; +} __attribute__((packed)); + +enum queue_entry_flags { + ENTRY_BCN_ASSIGNED = 0, + ENTRY_BCN_ENABLED = 1, + ENTRY_OWNER_DEVICE_DATA = 2, + ENTRY_DATA_PENDING = 3, + ENTRY_DATA_IO_FAILED = 4, + ENTRY_DATA_STATUS_PENDING = 5, +}; + +enum data_queue_flags { + QUEUE_STARTED = 0, + QUEUE_PAUSED = 1, +}; + +enum mac80211_rate_control_flags { + IEEE80211_TX_RC_USE_RTS_CTS = 1, + IEEE80211_TX_RC_USE_CTS_PROTECT = 2, + IEEE80211_TX_RC_USE_SHORT_PREAMBLE = 4, + IEEE80211_TX_RC_MCS = 8, + IEEE80211_TX_RC_GREEN_FIELD = 16, + IEEE80211_TX_RC_40_MHZ_WIDTH = 32, + IEEE80211_TX_RC_DUP_DATA = 64, + IEEE80211_TX_RC_SHORT_GI = 128, + IEEE80211_TX_RC_VHT_MCS = 256, + IEEE80211_TX_RC_80_MHZ_WIDTH = 512, + IEEE80211_TX_RC_160_MHZ_WIDTH = 1024, +}; + +enum rt2x00_dump_type { + DUMP_FRAME_RXDONE = 1, + DUMP_FRAME_TX = 2, + DUMP_FRAME_TXDONE = 3, + DUMP_FRAME_BEACON = 4, +}; + +struct rt2x00_sta { + int wcid; +}; + +struct ieee80211_bar { + __le16 frame_control; + __le16 duration; + __u8 ra[6]; + __u8 ta[6]; + __le16 control; + __le16 start_seq_num; +}; + +struct rt2x00_bar_list_entry { + struct list_head list; + struct callback_head head; + struct queue_entry *entry; + int block_acked; + __u8 ra[6]; + __u8 ta[6]; + __le16 control; + __le16 start_seq_num; +}; + +struct rt2x00_rate { + unsigned short flags; + unsigned short bitrate; + unsigned short ratemask; + unsigned short plcp; + unsigned short mcs; +}; + +struct ir_raw_timings_pd { + unsigned int header_pulse; + unsigned int header_space; + unsigned int bit_pulse; + unsigned int bit_space[2]; + unsigned int trailer_pulse; + unsigned int trailer_space; + unsigned int msb_first: 1; +}; + +enum jvc_state { + STATE_INACTIVE___2 = 0, + STATE_HEADER_SPACE___2 = 1, + STATE_BIT_PULSE___2 = 2, + STATE_BIT_SPACE___2 = 3, + STATE_TRAILER_PULSE = 4, + STATE_TRAILER_SPACE = 5, + STATE_CHECK_REPEAT = 6, +}; + +enum { + ETHTOOL_A_MODULE_EEPROM_UNSPEC = 0, + ETHTOOL_A_MODULE_EEPROM_HEADER = 1, + ETHTOOL_A_MODULE_EEPROM_OFFSET = 2, + ETHTOOL_A_MODULE_EEPROM_LENGTH = 3, + ETHTOOL_A_MODULE_EEPROM_PAGE = 4, + ETHTOOL_A_MODULE_EEPROM_BANK = 5, + ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS = 6, + ETHTOOL_A_MODULE_EEPROM_DATA = 7, + __ETHTOOL_A_MODULE_EEPROM_CNT = 8, + ETHTOOL_A_MODULE_EEPROM_MAX = 7, +}; + +struct eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; +}; + +struct eeprom_reply_data { struct ethnl_reply_data base; - struct ethtool_ts_info ts_info; + u32 length; + u8 *data; +}; + +enum nft_cmp_ops { + NFT_CMP_EQ = 0, + NFT_CMP_NEQ = 1, + NFT_CMP_LT = 2, + NFT_CMP_LTE = 3, + NFT_CMP_GT = 4, + NFT_CMP_GTE = 5, +}; + +enum nft_cmp_attributes { + NFTA_CMP_UNSPEC = 0, + NFTA_CMP_SREG = 1, + NFTA_CMP_OP = 2, + NFTA_CMP_DATA = 3, + __NFTA_CMP_MAX = 4, +}; + +enum nft_offload_reg_flags { + NFT_OFFLOAD_F_NETWORK2HOST = 1, +}; + +enum nft_registers { + NFT_REG_VERDICT = 0, + NFT_REG_1 = 1, + NFT_REG_2 = 2, + NFT_REG_3 = 3, + NFT_REG_4 = 4, + __NFT_REG_MAX = 5, + NFT_REG32_00 = 8, + NFT_REG32_01 = 9, + NFT_REG32_02 = 10, + NFT_REG32_03 = 11, + NFT_REG32_04 = 12, + NFT_REG32_05 = 13, + NFT_REG32_06 = 14, + NFT_REG32_07 = 15, + NFT_REG32_08 = 16, + NFT_REG32_09 = 17, + NFT_REG32_10 = 18, + NFT_REG32_11 = 19, + NFT_REG32_12 = 20, + NFT_REG32_13 = 21, + NFT_REG32_14 = 22, + NFT_REG32_15 = 23, +}; + +union nft_cmp_offload_data { + u16 val16; + u32 val32; + u64 val64; +}; + +struct nft_cmp_expr { + struct nft_data data; + u8 sreg; + u8 len; + enum nft_cmp_ops op: 8; +}; + +struct nft_cmp_fast_expr { + u32 data; + u32 mask; + u8 sreg; + u8 len; + bool inv; +}; + +struct nft_cmp16_fast_expr { + struct nft_data data; + struct nft_data mask; + u8 sreg; + u8 len; + bool inv; }; typedef unsigned int t_key; @@ -90050,6 +74702,18 @@ struct fib_entry_notifier_info { u32 tb_id; }; +struct fib_dump_filter { + u32 table_id; + bool filter_set; + bool dump_routes; + bool dump_exceptions; + bool rtnl_held; + unsigned char protocol; + unsigned char rt_type; + unsigned int flags; + struct net_device *dev; +}; + struct trie_stat { unsigned int totdepth; unsigned int maxdepth; @@ -90076,162 +74740,4299 @@ struct fib_route_iter { t_key key; }; -struct printf_spec { - unsigned int type: 8; - int field_width: 24; - unsigned int flags: 8; - unsigned int base: 8; - int precision: 16; +enum nl80211_attrs { + NL80211_ATTR_UNSPEC = 0, + NL80211_ATTR_WIPHY = 1, + NL80211_ATTR_WIPHY_NAME = 2, + NL80211_ATTR_IFINDEX = 3, + NL80211_ATTR_IFNAME = 4, + NL80211_ATTR_IFTYPE = 5, + NL80211_ATTR_MAC = 6, + NL80211_ATTR_KEY_DATA = 7, + NL80211_ATTR_KEY_IDX = 8, + NL80211_ATTR_KEY_CIPHER = 9, + NL80211_ATTR_KEY_SEQ = 10, + NL80211_ATTR_KEY_DEFAULT = 11, + NL80211_ATTR_BEACON_INTERVAL = 12, + NL80211_ATTR_DTIM_PERIOD = 13, + NL80211_ATTR_BEACON_HEAD = 14, + NL80211_ATTR_BEACON_TAIL = 15, + NL80211_ATTR_STA_AID = 16, + NL80211_ATTR_STA_FLAGS = 17, + NL80211_ATTR_STA_LISTEN_INTERVAL = 18, + NL80211_ATTR_STA_SUPPORTED_RATES = 19, + NL80211_ATTR_STA_VLAN = 20, + NL80211_ATTR_STA_INFO = 21, + NL80211_ATTR_WIPHY_BANDS = 22, + NL80211_ATTR_MNTR_FLAGS = 23, + NL80211_ATTR_MESH_ID = 24, + NL80211_ATTR_STA_PLINK_ACTION = 25, + NL80211_ATTR_MPATH_NEXT_HOP = 26, + NL80211_ATTR_MPATH_INFO = 27, + NL80211_ATTR_BSS_CTS_PROT = 28, + NL80211_ATTR_BSS_SHORT_PREAMBLE = 29, + NL80211_ATTR_BSS_SHORT_SLOT_TIME = 30, + NL80211_ATTR_HT_CAPABILITY = 31, + NL80211_ATTR_SUPPORTED_IFTYPES = 32, + NL80211_ATTR_REG_ALPHA2 = 33, + NL80211_ATTR_REG_RULES = 34, + NL80211_ATTR_MESH_CONFIG = 35, + NL80211_ATTR_BSS_BASIC_RATES = 36, + NL80211_ATTR_WIPHY_TXQ_PARAMS = 37, + NL80211_ATTR_WIPHY_FREQ = 38, + NL80211_ATTR_WIPHY_CHANNEL_TYPE = 39, + NL80211_ATTR_KEY_DEFAULT_MGMT = 40, + NL80211_ATTR_MGMT_SUBTYPE = 41, + NL80211_ATTR_IE = 42, + NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 43, + NL80211_ATTR_SCAN_FREQUENCIES = 44, + NL80211_ATTR_SCAN_SSIDS = 45, + NL80211_ATTR_GENERATION = 46, + NL80211_ATTR_BSS = 47, + NL80211_ATTR_REG_INITIATOR = 48, + NL80211_ATTR_REG_TYPE = 49, + NL80211_ATTR_SUPPORTED_COMMANDS = 50, + NL80211_ATTR_FRAME = 51, + NL80211_ATTR_SSID = 52, + NL80211_ATTR_AUTH_TYPE = 53, + NL80211_ATTR_REASON_CODE = 54, + NL80211_ATTR_KEY_TYPE = 55, + NL80211_ATTR_MAX_SCAN_IE_LEN = 56, + NL80211_ATTR_CIPHER_SUITES = 57, + NL80211_ATTR_FREQ_BEFORE = 58, + NL80211_ATTR_FREQ_AFTER = 59, + NL80211_ATTR_FREQ_FIXED = 60, + NL80211_ATTR_WIPHY_RETRY_SHORT = 61, + NL80211_ATTR_WIPHY_RETRY_LONG = 62, + NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 63, + NL80211_ATTR_WIPHY_RTS_THRESHOLD = 64, + NL80211_ATTR_TIMED_OUT = 65, + NL80211_ATTR_USE_MFP = 66, + NL80211_ATTR_STA_FLAGS2 = 67, + NL80211_ATTR_CONTROL_PORT = 68, + NL80211_ATTR_TESTDATA = 69, + NL80211_ATTR_PRIVACY = 70, + NL80211_ATTR_DISCONNECTED_BY_AP = 71, + NL80211_ATTR_STATUS_CODE = 72, + NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 73, + NL80211_ATTR_CIPHER_SUITE_GROUP = 74, + NL80211_ATTR_WPA_VERSIONS = 75, + NL80211_ATTR_AKM_SUITES = 76, + NL80211_ATTR_REQ_IE = 77, + NL80211_ATTR_RESP_IE = 78, + NL80211_ATTR_PREV_BSSID = 79, + NL80211_ATTR_KEY = 80, + NL80211_ATTR_KEYS = 81, + NL80211_ATTR_PID = 82, + NL80211_ATTR_4ADDR = 83, + NL80211_ATTR_SURVEY_INFO = 84, + NL80211_ATTR_PMKID = 85, + NL80211_ATTR_MAX_NUM_PMKIDS = 86, + NL80211_ATTR_DURATION = 87, + NL80211_ATTR_COOKIE = 88, + NL80211_ATTR_WIPHY_COVERAGE_CLASS = 89, + NL80211_ATTR_TX_RATES = 90, + NL80211_ATTR_FRAME_MATCH = 91, + NL80211_ATTR_ACK = 92, + NL80211_ATTR_PS_STATE = 93, + NL80211_ATTR_CQM = 94, + NL80211_ATTR_LOCAL_STATE_CHANGE = 95, + NL80211_ATTR_AP_ISOLATE = 96, + NL80211_ATTR_WIPHY_TX_POWER_SETTING = 97, + NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 98, + NL80211_ATTR_TX_FRAME_TYPES = 99, + NL80211_ATTR_RX_FRAME_TYPES = 100, + NL80211_ATTR_FRAME_TYPE = 101, + NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 102, + NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 103, + NL80211_ATTR_SUPPORT_IBSS_RSN = 104, + NL80211_ATTR_WIPHY_ANTENNA_TX = 105, + NL80211_ATTR_WIPHY_ANTENNA_RX = 106, + NL80211_ATTR_MCAST_RATE = 107, + NL80211_ATTR_OFFCHANNEL_TX_OK = 108, + NL80211_ATTR_BSS_HT_OPMODE = 109, + NL80211_ATTR_KEY_DEFAULT_TYPES = 110, + NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 111, + NL80211_ATTR_MESH_SETUP = 112, + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 113, + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 114, + NL80211_ATTR_SUPPORT_MESH_AUTH = 115, + NL80211_ATTR_STA_PLINK_STATE = 116, + NL80211_ATTR_WOWLAN_TRIGGERS = 117, + NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 118, + NL80211_ATTR_SCHED_SCAN_INTERVAL = 119, + NL80211_ATTR_INTERFACE_COMBINATIONS = 120, + NL80211_ATTR_SOFTWARE_IFTYPES = 121, + NL80211_ATTR_REKEY_DATA = 122, + NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 123, + NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 124, + NL80211_ATTR_SCAN_SUPP_RATES = 125, + NL80211_ATTR_HIDDEN_SSID = 126, + NL80211_ATTR_IE_PROBE_RESP = 127, + NL80211_ATTR_IE_ASSOC_RESP = 128, + NL80211_ATTR_STA_WME = 129, + NL80211_ATTR_SUPPORT_AP_UAPSD = 130, + NL80211_ATTR_ROAM_SUPPORT = 131, + NL80211_ATTR_SCHED_SCAN_MATCH = 132, + NL80211_ATTR_MAX_MATCH_SETS = 133, + NL80211_ATTR_PMKSA_CANDIDATE = 134, + NL80211_ATTR_TX_NO_CCK_RATE = 135, + NL80211_ATTR_TDLS_ACTION = 136, + NL80211_ATTR_TDLS_DIALOG_TOKEN = 137, + NL80211_ATTR_TDLS_OPERATION = 138, + NL80211_ATTR_TDLS_SUPPORT = 139, + NL80211_ATTR_TDLS_EXTERNAL_SETUP = 140, + NL80211_ATTR_DEVICE_AP_SME = 141, + NL80211_ATTR_DONT_WAIT_FOR_ACK = 142, + NL80211_ATTR_FEATURE_FLAGS = 143, + NL80211_ATTR_PROBE_RESP_OFFLOAD = 144, + NL80211_ATTR_PROBE_RESP = 145, + NL80211_ATTR_DFS_REGION = 146, + NL80211_ATTR_DISABLE_HT = 147, + NL80211_ATTR_HT_CAPABILITY_MASK = 148, + NL80211_ATTR_NOACK_MAP = 149, + NL80211_ATTR_INACTIVITY_TIMEOUT = 150, + NL80211_ATTR_RX_SIGNAL_DBM = 151, + NL80211_ATTR_BG_SCAN_PERIOD = 152, + NL80211_ATTR_WDEV = 153, + NL80211_ATTR_USER_REG_HINT_TYPE = 154, + NL80211_ATTR_CONN_FAILED_REASON = 155, + NL80211_ATTR_AUTH_DATA = 156, + NL80211_ATTR_VHT_CAPABILITY = 157, + NL80211_ATTR_SCAN_FLAGS = 158, + NL80211_ATTR_CHANNEL_WIDTH = 159, + NL80211_ATTR_CENTER_FREQ1 = 160, + NL80211_ATTR_CENTER_FREQ2 = 161, + NL80211_ATTR_P2P_CTWINDOW = 162, + NL80211_ATTR_P2P_OPPPS = 163, + NL80211_ATTR_LOCAL_MESH_POWER_MODE = 164, + NL80211_ATTR_ACL_POLICY = 165, + NL80211_ATTR_MAC_ADDRS = 166, + NL80211_ATTR_MAC_ACL_MAX = 167, + NL80211_ATTR_RADAR_EVENT = 168, + NL80211_ATTR_EXT_CAPA = 169, + NL80211_ATTR_EXT_CAPA_MASK = 170, + NL80211_ATTR_STA_CAPABILITY = 171, + NL80211_ATTR_STA_EXT_CAPABILITY = 172, + NL80211_ATTR_PROTOCOL_FEATURES = 173, + NL80211_ATTR_SPLIT_WIPHY_DUMP = 174, + NL80211_ATTR_DISABLE_VHT = 175, + NL80211_ATTR_VHT_CAPABILITY_MASK = 176, + NL80211_ATTR_MDID = 177, + NL80211_ATTR_IE_RIC = 178, + NL80211_ATTR_CRIT_PROT_ID = 179, + NL80211_ATTR_MAX_CRIT_PROT_DURATION = 180, + NL80211_ATTR_PEER_AID = 181, + NL80211_ATTR_COALESCE_RULE = 182, + NL80211_ATTR_CH_SWITCH_COUNT = 183, + NL80211_ATTR_CH_SWITCH_BLOCK_TX = 184, + NL80211_ATTR_CSA_IES = 185, + NL80211_ATTR_CNTDWN_OFFS_BEACON = 186, + NL80211_ATTR_CNTDWN_OFFS_PRESP = 187, + NL80211_ATTR_RXMGMT_FLAGS = 188, + NL80211_ATTR_STA_SUPPORTED_CHANNELS = 189, + NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 190, + NL80211_ATTR_HANDLE_DFS = 191, + NL80211_ATTR_SUPPORT_5_MHZ = 192, + NL80211_ATTR_SUPPORT_10_MHZ = 193, + NL80211_ATTR_OPMODE_NOTIF = 194, + NL80211_ATTR_VENDOR_ID = 195, + NL80211_ATTR_VENDOR_SUBCMD = 196, + NL80211_ATTR_VENDOR_DATA = 197, + NL80211_ATTR_VENDOR_EVENTS = 198, + NL80211_ATTR_QOS_MAP = 199, + NL80211_ATTR_MAC_HINT = 200, + NL80211_ATTR_WIPHY_FREQ_HINT = 201, + NL80211_ATTR_MAX_AP_ASSOC_STA = 202, + NL80211_ATTR_TDLS_PEER_CAPABILITY = 203, + NL80211_ATTR_SOCKET_OWNER = 204, + NL80211_ATTR_CSA_C_OFFSETS_TX = 205, + NL80211_ATTR_MAX_CSA_COUNTERS = 206, + NL80211_ATTR_TDLS_INITIATOR = 207, + NL80211_ATTR_USE_RRM = 208, + NL80211_ATTR_WIPHY_DYN_ACK = 209, + NL80211_ATTR_TSID = 210, + NL80211_ATTR_USER_PRIO = 211, + NL80211_ATTR_ADMITTED_TIME = 212, + NL80211_ATTR_SMPS_MODE = 213, + NL80211_ATTR_OPER_CLASS = 214, + NL80211_ATTR_MAC_MASK = 215, + NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 216, + NL80211_ATTR_EXT_FEATURES = 217, + NL80211_ATTR_SURVEY_RADIO_STATS = 218, + NL80211_ATTR_NETNS_FD = 219, + NL80211_ATTR_SCHED_SCAN_DELAY = 220, + NL80211_ATTR_REG_INDOOR = 221, + NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 222, + NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 223, + NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 224, + NL80211_ATTR_SCHED_SCAN_PLANS = 225, + NL80211_ATTR_PBSS = 226, + NL80211_ATTR_BSS_SELECT = 227, + NL80211_ATTR_STA_SUPPORT_P2P_PS = 228, + NL80211_ATTR_PAD = 229, + NL80211_ATTR_IFTYPE_EXT_CAPA = 230, + NL80211_ATTR_MU_MIMO_GROUP_DATA = 231, + NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 232, + NL80211_ATTR_SCAN_START_TIME_TSF = 233, + NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 234, + NL80211_ATTR_MEASUREMENT_DURATION = 235, + NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 236, + NL80211_ATTR_MESH_PEER_AID = 237, + NL80211_ATTR_NAN_MASTER_PREF = 238, + NL80211_ATTR_BANDS = 239, + NL80211_ATTR_NAN_FUNC = 240, + NL80211_ATTR_NAN_MATCH = 241, + NL80211_ATTR_FILS_KEK = 242, + NL80211_ATTR_FILS_NONCES = 243, + NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 244, + NL80211_ATTR_BSSID = 245, + NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 246, + NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 247, + NL80211_ATTR_TIMEOUT_REASON = 248, + NL80211_ATTR_FILS_ERP_USERNAME = 249, + NL80211_ATTR_FILS_ERP_REALM = 250, + NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 251, + NL80211_ATTR_FILS_ERP_RRK = 252, + NL80211_ATTR_FILS_CACHE_ID = 253, + NL80211_ATTR_PMK = 254, + NL80211_ATTR_SCHED_SCAN_MULTI = 255, + NL80211_ATTR_SCHED_SCAN_MAX_REQS = 256, + NL80211_ATTR_WANT_1X_4WAY_HS = 257, + NL80211_ATTR_PMKR0_NAME = 258, + NL80211_ATTR_PORT_AUTHORIZED = 259, + NL80211_ATTR_EXTERNAL_AUTH_ACTION = 260, + NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 261, + NL80211_ATTR_NSS = 262, + NL80211_ATTR_ACK_SIGNAL = 263, + NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 264, + NL80211_ATTR_TXQ_STATS = 265, + NL80211_ATTR_TXQ_LIMIT = 266, + NL80211_ATTR_TXQ_MEMORY_LIMIT = 267, + NL80211_ATTR_TXQ_QUANTUM = 268, + NL80211_ATTR_HE_CAPABILITY = 269, + NL80211_ATTR_FTM_RESPONDER = 270, + NL80211_ATTR_FTM_RESPONDER_STATS = 271, + NL80211_ATTR_TIMEOUT = 272, + NL80211_ATTR_PEER_MEASUREMENTS = 273, + NL80211_ATTR_AIRTIME_WEIGHT = 274, + NL80211_ATTR_STA_TX_POWER_SETTING = 275, + NL80211_ATTR_STA_TX_POWER = 276, + NL80211_ATTR_SAE_PASSWORD = 277, + NL80211_ATTR_TWT_RESPONDER = 278, + NL80211_ATTR_HE_OBSS_PD = 279, + NL80211_ATTR_WIPHY_EDMG_CHANNELS = 280, + NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 281, + NL80211_ATTR_VLAN_ID = 282, + NL80211_ATTR_HE_BSS_COLOR = 283, + NL80211_ATTR_IFTYPE_AKM_SUITES = 284, + NL80211_ATTR_TID_CONFIG = 285, + NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 286, + NL80211_ATTR_PMK_LIFETIME = 287, + NL80211_ATTR_PMK_REAUTH_THRESHOLD = 288, + NL80211_ATTR_RECEIVE_MULTICAST = 289, + NL80211_ATTR_WIPHY_FREQ_OFFSET = 290, + NL80211_ATTR_CENTER_FREQ1_OFFSET = 291, + NL80211_ATTR_SCAN_FREQ_KHZ = 292, + NL80211_ATTR_HE_6GHZ_CAPABILITY = 293, + NL80211_ATTR_FILS_DISCOVERY = 294, + NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 295, + NL80211_ATTR_S1G_CAPABILITY = 296, + NL80211_ATTR_S1G_CAPABILITY_MASK = 297, + NL80211_ATTR_SAE_PWE = 298, + NL80211_ATTR_RECONNECT_REQUESTED = 299, + NL80211_ATTR_SAR_SPEC = 300, + NL80211_ATTR_DISABLE_HE = 301, + NL80211_ATTR_OBSS_COLOR_BITMAP = 302, + NL80211_ATTR_COLOR_CHANGE_COUNT = 303, + NL80211_ATTR_COLOR_CHANGE_COLOR = 304, + NL80211_ATTR_COLOR_CHANGE_ELEMS = 305, + NL80211_ATTR_MBSSID_CONFIG = 306, + NL80211_ATTR_MBSSID_ELEMS = 307, + NL80211_ATTR_RADAR_BACKGROUND = 308, + NL80211_ATTR_AP_SETTINGS_FLAGS = 309, + NL80211_ATTR_EHT_CAPABILITY = 310, + NL80211_ATTR_DISABLE_EHT = 311, + NL80211_ATTR_MLO_LINKS = 312, + NL80211_ATTR_MLO_LINK_ID = 313, + NL80211_ATTR_MLD_ADDR = 314, + NL80211_ATTR_MLO_SUPPORT = 315, + NL80211_ATTR_MAX_NUM_AKM_SUITES = 316, + NL80211_ATTR_EML_CAPABILITY = 317, + NL80211_ATTR_MLD_CAPA_AND_OPS = 318, + NL80211_ATTR_TX_HW_TIMESTAMP = 319, + NL80211_ATTR_RX_HW_TIMESTAMP = 320, + NL80211_ATTR_TD_BITMAP = 321, + NL80211_ATTR_PUNCT_BITMAP = 322, + NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 323, + NL80211_ATTR_HW_TIMESTAMP_ENABLED = 324, + NL80211_ATTR_EMA_RNR_ELEMS = 325, + NL80211_ATTR_MLO_LINK_DISABLED = 326, + NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 327, + NL80211_ATTR_MLO_TTLM_DLINK = 328, + NL80211_ATTR_MLO_TTLM_ULINK = 329, + NL80211_ATTR_ASSOC_SPP_AMSDU = 330, + __NL80211_ATTR_AFTER_LAST = 331, + NUM_NL80211_ATTR = 331, + NL80211_ATTR_MAX = 330, }; -struct page_flags_fields { - int width; - int shift; - int mask; - const struct printf_spec *spec; +enum nl80211_rate_info { + __NL80211_RATE_INFO_INVALID = 0, + NL80211_RATE_INFO_BITRATE = 1, + NL80211_RATE_INFO_MCS = 2, + NL80211_RATE_INFO_40_MHZ_WIDTH = 3, + NL80211_RATE_INFO_SHORT_GI = 4, + NL80211_RATE_INFO_BITRATE32 = 5, + NL80211_RATE_INFO_VHT_MCS = 6, + NL80211_RATE_INFO_VHT_NSS = 7, + NL80211_RATE_INFO_80_MHZ_WIDTH = 8, + NL80211_RATE_INFO_80P80_MHZ_WIDTH = 9, + NL80211_RATE_INFO_160_MHZ_WIDTH = 10, + NL80211_RATE_INFO_10_MHZ_WIDTH = 11, + NL80211_RATE_INFO_5_MHZ_WIDTH = 12, + NL80211_RATE_INFO_HE_MCS = 13, + NL80211_RATE_INFO_HE_NSS = 14, + NL80211_RATE_INFO_HE_GI = 15, + NL80211_RATE_INFO_HE_DCM = 16, + NL80211_RATE_INFO_HE_RU_ALLOC = 17, + NL80211_RATE_INFO_320_MHZ_WIDTH = 18, + NL80211_RATE_INFO_EHT_MCS = 19, + NL80211_RATE_INFO_EHT_NSS = 20, + NL80211_RATE_INFO_EHT_GI = 21, + NL80211_RATE_INFO_EHT_RU_ALLOC = 22, + NL80211_RATE_INFO_S1G_MCS = 23, + NL80211_RATE_INFO_S1G_NSS = 24, + NL80211_RATE_INFO_1_MHZ_WIDTH = 25, + NL80211_RATE_INFO_2_MHZ_WIDTH = 26, + NL80211_RATE_INFO_4_MHZ_WIDTH = 27, + NL80211_RATE_INFO_8_MHZ_WIDTH = 28, + NL80211_RATE_INFO_16_MHZ_WIDTH = 29, + __NL80211_RATE_INFO_AFTER_LAST = 30, + NL80211_RATE_INFO_MAX = 29, +}; + +enum rate_info_flags { + RATE_INFO_FLAGS_MCS = 1, + RATE_INFO_FLAGS_VHT_MCS = 2, + RATE_INFO_FLAGS_SHORT_GI = 4, + RATE_INFO_FLAGS_DMG = 8, + RATE_INFO_FLAGS_HE_MCS = 16, + RATE_INFO_FLAGS_EDMG = 32, + RATE_INFO_FLAGS_EXTENDED_SC_DMG = 64, + RATE_INFO_FLAGS_EHT_MCS = 128, + RATE_INFO_FLAGS_S1G_MCS = 256, +}; + +enum cfg80211_station_type { + CFG80211_STA_AP_CLIENT = 0, + CFG80211_STA_AP_CLIENT_UNASSOC = 1, + CFG80211_STA_AP_MLME_CLIENT = 2, + CFG80211_STA_AP_STA = 3, + CFG80211_STA_IBSS = 4, + CFG80211_STA_TDLS_PEER_SETUP = 5, + CFG80211_STA_TDLS_PEER_ACTIVE = 6, + CFG80211_STA_MESH_PEER_KERNEL = 7, + CFG80211_STA_MESH_PEER_USER = 8, +}; + +enum nl80211_sta_flags { + __NL80211_STA_FLAG_INVALID = 0, + NL80211_STA_FLAG_AUTHORIZED = 1, + NL80211_STA_FLAG_SHORT_PREAMBLE = 2, + NL80211_STA_FLAG_WME = 3, + NL80211_STA_FLAG_MFP = 4, + NL80211_STA_FLAG_AUTHENTICATED = 5, + NL80211_STA_FLAG_TDLS_PEER = 6, + NL80211_STA_FLAG_ASSOCIATED = 7, + NL80211_STA_FLAG_SPP_AMSDU = 8, + __NL80211_STA_FLAG_AFTER_LAST = 9, + NL80211_STA_FLAG_MAX = 8, +}; + +enum plink_actions { + NL80211_PLINK_ACTION_NO_ACTION = 0, + NL80211_PLINK_ACTION_OPEN = 1, + NL80211_PLINK_ACTION_BLOCK = 2, + NUM_NL80211_PLINK_ACTIONS = 3, +}; + +enum station_parameters_apply_mask { + STATION_PARAM_APPLY_UAPSD = 1, + STATION_PARAM_APPLY_CAPABILITY = 2, + STATION_PARAM_APPLY_PLINK_STATE = 4, +}; + +enum nl80211_feature_flags { + NL80211_FEATURE_SK_TX_STATUS = 1, + NL80211_FEATURE_HT_IBSS = 2, + NL80211_FEATURE_INACTIVITY_TIMER = 4, + NL80211_FEATURE_CELL_BASE_REG_HINTS = 8, + NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 16, + NL80211_FEATURE_SAE = 32, + NL80211_FEATURE_LOW_PRIORITY_SCAN = 64, + NL80211_FEATURE_SCAN_FLUSH = 128, + NL80211_FEATURE_AP_SCAN = 256, + NL80211_FEATURE_VIF_TXPOWER = 512, + NL80211_FEATURE_NEED_OBSS_SCAN = 1024, + NL80211_FEATURE_P2P_GO_CTWIN = 2048, + NL80211_FEATURE_P2P_GO_OPPPS = 4096, + NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 16384, + NL80211_FEATURE_FULL_AP_CLIENT_STATE = 32768, + NL80211_FEATURE_USERSPACE_MPM = 65536, + NL80211_FEATURE_ACTIVE_MONITOR = 131072, + NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 262144, + NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 524288, + NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1048576, + NL80211_FEATURE_QUIET = 2097152, + NL80211_FEATURE_TX_POWER_INSERTION = 4194304, + NL80211_FEATURE_ACKTO_ESTIMATION = 8388608, + NL80211_FEATURE_STATIC_SMPS = 16777216, + NL80211_FEATURE_DYNAMIC_SMPS = 33554432, + NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 67108864, + NL80211_FEATURE_MAC_ON_CREATE = 134217728, + NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 268435456, + NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 536870912, + NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1073741824, + NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 2147483648, +}; + +enum nl80211_multicast_groups { + NL80211_MCGRP_CONFIG = 0, + NL80211_MCGRP_SCAN = 1, + NL80211_MCGRP_REGULATORY = 2, + NL80211_MCGRP_MLME = 3, + NL80211_MCGRP_VENDOR = 4, + NL80211_MCGRP_NAN = 5, + NL80211_MCGRP_TESTMODE = 6, +}; + +enum nl80211_nan_match_attributes { + __NL80211_NAN_MATCH_INVALID = 0, + NL80211_NAN_MATCH_FUNC_LOCAL = 1, + NL80211_NAN_MATCH_FUNC_PEER = 2, + NUM_NL80211_NAN_MATCH_ATTR = 3, + NL80211_NAN_MATCH_ATTR_MAX = 2, +}; + +enum nl80211_nan_func_attributes { + __NL80211_NAN_FUNC_INVALID = 0, + NL80211_NAN_FUNC_TYPE = 1, + NL80211_NAN_FUNC_SERVICE_ID = 2, + NL80211_NAN_FUNC_PUBLISH_TYPE = 3, + NL80211_NAN_FUNC_PUBLISH_BCAST = 4, + NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 5, + NL80211_NAN_FUNC_FOLLOW_UP_ID = 6, + NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 7, + NL80211_NAN_FUNC_FOLLOW_UP_DEST = 8, + NL80211_NAN_FUNC_CLOSE_RANGE = 9, + NL80211_NAN_FUNC_TTL = 10, + NL80211_NAN_FUNC_SERVICE_INFO = 11, + NL80211_NAN_FUNC_SRF = 12, + NL80211_NAN_FUNC_RX_MATCH_FILTER = 13, + NL80211_NAN_FUNC_TX_MATCH_FILTER = 14, + NL80211_NAN_FUNC_INSTANCE_ID = 15, + NL80211_NAN_FUNC_TERM_REASON = 16, + NUM_NL80211_NAN_FUNC_ATTR = 17, + NL80211_NAN_FUNC_ATTR_MAX = 16, +}; + +enum nl80211_nan_func_term_reason { + NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0, + NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 1, + NL80211_NAN_FUNC_TERM_REASON_ERROR = 2, +}; + +enum nl80211_timeout_reason { + NL80211_TIMEOUT_UNSPECIFIED = 0, + NL80211_TIMEOUT_SCAN = 1, + NL80211_TIMEOUT_AUTH = 2, + NL80211_TIMEOUT_ASSOC = 3, +}; + +enum nl80211_connect_failed_reason { + NL80211_CONN_FAIL_MAX_CLIENTS = 0, + NL80211_CONN_FAIL_BLOCKED_CLIENT = 1, +}; + +enum nl80211_attr_cqm { + __NL80211_ATTR_CQM_INVALID = 0, + NL80211_ATTR_CQM_RSSI_THOLD = 1, + NL80211_ATTR_CQM_RSSI_HYST = 2, + NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 3, + NL80211_ATTR_CQM_PKT_LOSS_EVENT = 4, + NL80211_ATTR_CQM_TXE_RATE = 5, + NL80211_ATTR_CQM_TXE_PKTS = 6, + NL80211_ATTR_CQM_TXE_INTVL = 7, + NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 8, + NL80211_ATTR_CQM_RSSI_LEVEL = 9, + __NL80211_ATTR_CQM_AFTER_LAST = 10, + NL80211_ATTR_CQM_MAX = 9, +}; + +enum wiphy_opmode_flag { + STA_OPMODE_MAX_BW_CHANGED = 1, + STA_OPMODE_SMPS_MODE_CHANGED = 2, + STA_OPMODE_N_SS_CHANGED = 4, +}; + +enum nl80211_wowlan_triggers { + __NL80211_WOWLAN_TRIG_INVALID = 0, + NL80211_WOWLAN_TRIG_ANY = 1, + NL80211_WOWLAN_TRIG_DISCONNECT = 2, + NL80211_WOWLAN_TRIG_MAGIC_PKT = 3, + NL80211_WOWLAN_TRIG_PKT_PATTERN = 4, + NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 5, + NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 6, + NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 7, + NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 8, + NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 9, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 10, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 11, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 12, + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 13, + NL80211_WOWLAN_TRIG_TCP_CONNECTION = 14, + NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 15, + NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 16, + NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 17, + NL80211_WOWLAN_TRIG_NET_DETECT = 18, + NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 19, + NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 20, + NUM_NL80211_WOWLAN_TRIG = 21, + MAX_NL80211_WOWLAN_TRIG = 20, +}; + +enum nl80211_txq_attr { + __NL80211_TXQ_ATTR_INVALID = 0, + NL80211_TXQ_ATTR_AC = 1, + NL80211_TXQ_ATTR_TXOP = 2, + NL80211_TXQ_ATTR_CWMIN = 3, + NL80211_TXQ_ATTR_CWMAX = 4, + NL80211_TXQ_ATTR_AIFS = 5, + __NL80211_TXQ_ATTR_AFTER_LAST = 6, + NL80211_TXQ_ATTR_MAX = 5, +}; + +enum wiphy_params_flags { + WIPHY_PARAM_RETRY_SHORT = 1, + WIPHY_PARAM_RETRY_LONG = 2, + WIPHY_PARAM_FRAG_THRESHOLD = 4, + WIPHY_PARAM_RTS_THRESHOLD = 8, + WIPHY_PARAM_COVERAGE_CLASS = 16, + WIPHY_PARAM_DYN_ACK = 32, + WIPHY_PARAM_TXQ_LIMIT = 64, + WIPHY_PARAM_TXQ_MEMORY_LIMIT = 128, + WIPHY_PARAM_TXQ_QUANTUM = 256, +}; + +enum monitor_flags { + MONITOR_FLAG_CHANGED = 1, + MONITOR_FLAG_FCSFAIL = 2, + MONITOR_FLAG_PLCPFAIL = 4, + MONITOR_FLAG_CONTROL = 8, + MONITOR_FLAG_OTHER_BSS = 16, + MONITOR_FLAG_COOK_FRAMES = 32, + MONITOR_FLAG_ACTIVE = 64, +}; + +enum nl80211_mntr_flags { + __NL80211_MNTR_FLAG_INVALID = 0, + NL80211_MNTR_FLAG_FCSFAIL = 1, + NL80211_MNTR_FLAG_PLCPFAIL = 2, + NL80211_MNTR_FLAG_CONTROL = 3, + NL80211_MNTR_FLAG_OTHER_BSS = 4, + NL80211_MNTR_FLAG_COOK_FRAMES = 5, + NL80211_MNTR_FLAG_ACTIVE = 6, + __NL80211_MNTR_FLAG_AFTER_LAST = 7, + NL80211_MNTR_FLAG_MAX = 6, +}; + +enum nl80211_key_attributes { + __NL80211_KEY_INVALID = 0, + NL80211_KEY_DATA = 1, + NL80211_KEY_IDX = 2, + NL80211_KEY_CIPHER = 3, + NL80211_KEY_SEQ = 4, + NL80211_KEY_DEFAULT = 5, + NL80211_KEY_DEFAULT_MGMT = 6, + NL80211_KEY_TYPE = 7, + NL80211_KEY_DEFAULT_TYPES = 8, + NL80211_KEY_MODE = 9, + NL80211_KEY_DEFAULT_BEACON = 10, + __NL80211_KEY_AFTER_LAST = 11, + NL80211_KEY_MAX = 10, +}; + +enum nl80211_key_default_types { + __NL80211_KEY_DEFAULT_TYPE_INVALID = 0, + NL80211_KEY_DEFAULT_TYPE_UNICAST = 1, + NL80211_KEY_DEFAULT_TYPE_MULTICAST = 2, + NUM_NL80211_KEY_DEFAULT_TYPES = 3, +}; + +enum nl80211_ftm_responder_attributes { + __NL80211_FTM_RESP_ATTR_INVALID = 0, + NL80211_FTM_RESP_ATTR_ENABLED = 1, + NL80211_FTM_RESP_ATTR_LCI = 2, + NL80211_FTM_RESP_ATTR_CIVICLOC = 3, + __NL80211_FTM_RESP_ATTR_LAST = 4, + NL80211_FTM_RESP_ATTR_MAX = 3, +}; + +enum nl80211_bss_color_attributes { + __NL80211_HE_BSS_COLOR_ATTR_INVALID = 0, + NL80211_HE_BSS_COLOR_ATTR_COLOR = 1, + NL80211_HE_BSS_COLOR_ATTR_DISABLED = 2, + NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 3, + __NL80211_HE_BSS_COLOR_ATTR_LAST = 4, + NL80211_HE_BSS_COLOR_ATTR_MAX = 3, +}; + +enum nl80211_fils_discovery_attributes { + __NL80211_FILS_DISCOVERY_ATTR_INVALID = 0, + NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 1, + NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 2, + NL80211_FILS_DISCOVERY_ATTR_TMPL = 3, + __NL80211_FILS_DISCOVERY_ATTR_LAST = 4, + NL80211_FILS_DISCOVERY_ATTR_MAX = 3, +}; + +enum nl80211_unsol_bcast_probe_resp_attributes { + __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID = 0, + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 1, + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 2, + __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST = 3, + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 2, +}; + +enum nl80211_ap_settings_flags { + NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1, + NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 2, +}; + +enum nl80211_tx_rate_attributes { + __NL80211_TXRATE_INVALID = 0, + NL80211_TXRATE_LEGACY = 1, + NL80211_TXRATE_HT = 2, + NL80211_TXRATE_VHT = 3, + NL80211_TXRATE_GI = 4, + NL80211_TXRATE_HE = 5, + NL80211_TXRATE_HE_GI = 6, + NL80211_TXRATE_HE_LTF = 7, + __NL80211_TXRATE_AFTER_LAST = 8, + NL80211_TXRATE_MAX = 7, +}; + +enum ieee80211_he_mcs_support { + IEEE80211_HE_MCS_SUPPORT_0_7 = 0, + IEEE80211_HE_MCS_SUPPORT_0_9 = 1, + IEEE80211_HE_MCS_SUPPORT_0_11 = 2, + IEEE80211_HE_MCS_NOT_SUPPORTED = 3, +}; + +enum nl80211_obss_pd_attributes { + __NL80211_HE_OBSS_PD_ATTR_INVALID = 0, + NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 1, + NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 2, + NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 3, + NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 4, + NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 5, + NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 6, + __NL80211_HE_OBSS_PD_ATTR_LAST = 7, + NL80211_HE_OBSS_PD_ATTR_MAX = 6, +}; + +enum nl80211_mbssid_config_attributes { + __NL80211_MBSSID_CONFIG_ATTR_INVALID = 0, + NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 1, + NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 2, + NL80211_MBSSID_CONFIG_ATTR_INDEX = 3, + NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 4, + NL80211_MBSSID_CONFIG_ATTR_EMA = 5, + __NL80211_MBSSID_CONFIG_ATTR_LAST = 6, + NL80211_MBSSID_CONFIG_ATTR_MAX = 5, +}; + +enum nl80211_sta_wme_attr { + __NL80211_STA_WME_INVALID = 0, + NL80211_STA_WME_UAPSD_QUEUES = 1, + NL80211_STA_WME_MAX_SP = 2, + __NL80211_STA_WME_AFTER_LAST = 3, + NL80211_STA_WME_MAX = 2, +}; + +enum mpath_info_flags { + MPATH_INFO_FRAME_QLEN = 1, + MPATH_INFO_SN = 2, + MPATH_INFO_METRIC = 4, + MPATH_INFO_EXPTIME = 8, + MPATH_INFO_DISCOVERY_TIMEOUT = 16, + MPATH_INFO_DISCOVERY_RETRIES = 32, + MPATH_INFO_FLAGS = 64, + MPATH_INFO_HOP_COUNT = 128, + MPATH_INFO_PATH_CHANGE = 256, +}; + +enum nl80211_mpath_info { + __NL80211_MPATH_INFO_INVALID = 0, + NL80211_MPATH_INFO_FRAME_QLEN = 1, + NL80211_MPATH_INFO_SN = 2, + NL80211_MPATH_INFO_METRIC = 3, + NL80211_MPATH_INFO_EXPTIME = 4, + NL80211_MPATH_INFO_FLAGS = 5, + NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 6, + NL80211_MPATH_INFO_DISCOVERY_RETRIES = 7, + NL80211_MPATH_INFO_HOP_COUNT = 8, + NL80211_MPATH_INFO_PATH_CHANGE = 9, + __NL80211_MPATH_INFO_AFTER_LAST = 10, + NL80211_MPATH_INFO_MAX = 9, +}; + +enum nl80211_reg_rule_attr { + __NL80211_REG_RULE_ATTR_INVALID = 0, + NL80211_ATTR_REG_RULE_FLAGS = 1, + NL80211_ATTR_FREQ_RANGE_START = 2, + NL80211_ATTR_FREQ_RANGE_END = 3, + NL80211_ATTR_FREQ_RANGE_MAX_BW = 4, + NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 5, + NL80211_ATTR_POWER_RULE_MAX_EIRP = 6, + NL80211_ATTR_DFS_CAC_TIME = 7, + NL80211_ATTR_POWER_RULE_PSD = 8, + __NL80211_REG_RULE_ATTR_AFTER_LAST = 9, + NL80211_REG_RULE_ATTR_MAX = 8, +}; + +enum nl80211_meshconf_params { + __NL80211_MESHCONF_INVALID = 0, + NL80211_MESHCONF_RETRY_TIMEOUT = 1, + NL80211_MESHCONF_CONFIRM_TIMEOUT = 2, + NL80211_MESHCONF_HOLDING_TIMEOUT = 3, + NL80211_MESHCONF_MAX_PEER_LINKS = 4, + NL80211_MESHCONF_MAX_RETRIES = 5, + NL80211_MESHCONF_TTL = 6, + NL80211_MESHCONF_AUTO_OPEN_PLINKS = 7, + NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 8, + NL80211_MESHCONF_PATH_REFRESH_TIME = 9, + NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 10, + NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 11, + NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 12, + NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 13, + NL80211_MESHCONF_HWMP_ROOTMODE = 14, + NL80211_MESHCONF_ELEMENT_TTL = 15, + NL80211_MESHCONF_HWMP_RANN_INTERVAL = 16, + NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 17, + NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 18, + NL80211_MESHCONF_FORWARDING = 19, + NL80211_MESHCONF_RSSI_THRESHOLD = 20, + NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 21, + NL80211_MESHCONF_HT_OPMODE = 22, + NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 23, + NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 24, + NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 25, + NL80211_MESHCONF_POWER_MODE = 26, + NL80211_MESHCONF_AWAKE_WINDOW = 27, + NL80211_MESHCONF_PLINK_TIMEOUT = 28, + NL80211_MESHCONF_CONNECTED_TO_GATE = 29, + NL80211_MESHCONF_NOLEARN = 30, + NL80211_MESHCONF_CONNECTED_TO_AS = 31, + __NL80211_MESHCONF_ATTR_AFTER_LAST = 32, + NL80211_MESHCONF_ATTR_MAX = 31, +}; + +enum nl80211_bss { + __NL80211_BSS_INVALID = 0, + NL80211_BSS_BSSID = 1, + NL80211_BSS_FREQUENCY = 2, + NL80211_BSS_TSF = 3, + NL80211_BSS_BEACON_INTERVAL = 4, + NL80211_BSS_CAPABILITY = 5, + NL80211_BSS_INFORMATION_ELEMENTS = 6, + NL80211_BSS_SIGNAL_MBM = 7, + NL80211_BSS_SIGNAL_UNSPEC = 8, + NL80211_BSS_STATUS = 9, + NL80211_BSS_SEEN_MS_AGO = 10, + NL80211_BSS_BEACON_IES = 11, + NL80211_BSS_CHAN_WIDTH = 12, + NL80211_BSS_BEACON_TSF = 13, + NL80211_BSS_PRESP_DATA = 14, + NL80211_BSS_LAST_SEEN_BOOTTIME = 15, + NL80211_BSS_PAD = 16, + NL80211_BSS_PARENT_TSF = 17, + NL80211_BSS_PARENT_BSSID = 18, + NL80211_BSS_CHAIN_SIGNAL = 19, + NL80211_BSS_FREQUENCY_OFFSET = 20, + NL80211_BSS_MLO_LINK_ID = 21, + NL80211_BSS_MLD_ADDR = 22, + NL80211_BSS_USE_FOR = 23, + NL80211_BSS_CANNOT_USE_REASONS = 24, + __NL80211_BSS_AFTER_LAST = 25, + NL80211_BSS_MAX = 24, +}; + +enum nl80211_bss_status { + NL80211_BSS_STATUS_AUTHENTICATED = 0, + NL80211_BSS_STATUS_ASSOCIATED = 1, + NL80211_BSS_STATUS_IBSS_JOINED = 2, +}; + +enum nl80211_sched_scan_match_attr { + __NL80211_SCHED_SCAN_MATCH_ATTR_INVALID = 0, + NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 1, + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 2, + NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 3, + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 4, + NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 5, + NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 6, + __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST = 7, + NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 6, +}; + +enum nl80211_sched_scan_plan { + __NL80211_SCHED_SCAN_PLAN_INVALID = 0, + NL80211_SCHED_SCAN_PLAN_INTERVAL = 1, + NL80211_SCHED_SCAN_PLAN_ITERATIONS = 2, + __NL80211_SCHED_SCAN_PLAN_AFTER_LAST = 3, + NL80211_SCHED_SCAN_PLAN_MAX = 2, +}; + +enum cfg80211_assoc_req_flags { + ASSOC_REQ_DISABLE_HT = 1, + ASSOC_REQ_DISABLE_VHT = 2, + ASSOC_REQ_USE_RRM = 4, + CONNECT_REQ_EXTERNAL_AUTH_SUPPORT = 8, + ASSOC_REQ_DISABLE_HE = 16, + ASSOC_REQ_DISABLE_EHT = 32, + CONNECT_REQ_MLO_SUPPORT = 64, + ASSOC_REQ_SPP_AMSDU = 128, +}; + +enum cfg80211_connect_params_changed { + UPDATE_ASSOC_IES = 1, + UPDATE_FILS_ERP_INFO = 2, + UPDATE_AUTH_TYPE = 4, +}; + +enum nl80211_survey_info { + __NL80211_SURVEY_INFO_INVALID = 0, + NL80211_SURVEY_INFO_FREQUENCY = 1, + NL80211_SURVEY_INFO_NOISE = 2, + NL80211_SURVEY_INFO_IN_USE = 3, + NL80211_SURVEY_INFO_TIME = 4, + NL80211_SURVEY_INFO_TIME_BUSY = 5, + NL80211_SURVEY_INFO_TIME_EXT_BUSY = 6, + NL80211_SURVEY_INFO_TIME_RX = 7, + NL80211_SURVEY_INFO_TIME_TX = 8, + NL80211_SURVEY_INFO_TIME_SCAN = 9, + NL80211_SURVEY_INFO_PAD = 10, + NL80211_SURVEY_INFO_TIME_BSS_RX = 11, + NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 12, + __NL80211_SURVEY_INFO_AFTER_LAST = 13, + NL80211_SURVEY_INFO_MAX = 12, +}; + +enum nl80211_ps_state { + NL80211_PS_DISABLED = 0, + NL80211_PS_ENABLED = 1, +}; + +enum nl80211_mesh_setup_params { + __NL80211_MESH_SETUP_INVALID = 0, + NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 1, + NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 2, + NL80211_MESH_SETUP_IE = 3, + NL80211_MESH_SETUP_USERSPACE_AUTH = 4, + NL80211_MESH_SETUP_USERSPACE_AMPE = 5, + NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 6, + NL80211_MESH_SETUP_USERSPACE_MPM = 7, + NL80211_MESH_SETUP_AUTH_PROTOCOL = 8, + __NL80211_MESH_SETUP_ATTR_AFTER_LAST = 9, + NL80211_MESH_SETUP_ATTR_MAX = 8, +}; + +enum ieee80211_mesh_sync_method { + IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1, + IEEE80211_SYNC_METHOD_VENDOR = 255, +}; + +enum ieee80211_mesh_path_protocol { + IEEE80211_PATH_PROTOCOL_HWMP = 1, + IEEE80211_PATH_PROTOCOL_VENDOR = 255, +}; + +enum ieee80211_mesh_path_metric { + IEEE80211_PATH_METRIC_AIRTIME = 1, + IEEE80211_PATH_METRIC_VENDOR = 255, +}; + +enum nl80211_packet_pattern_attr { + __NL80211_PKTPAT_INVALID = 0, + NL80211_PKTPAT_MASK = 1, + NL80211_PKTPAT_PATTERN = 2, + NL80211_PKTPAT_OFFSET = 3, + NUM_NL80211_PKTPAT = 4, + MAX_NL80211_PKTPAT = 3, +}; + +enum nl80211_wowlan_tcp_attrs { + __NL80211_WOWLAN_TCP_INVALID = 0, + NL80211_WOWLAN_TCP_SRC_IPV4 = 1, + NL80211_WOWLAN_TCP_DST_IPV4 = 2, + NL80211_WOWLAN_TCP_DST_MAC = 3, + NL80211_WOWLAN_TCP_SRC_PORT = 4, + NL80211_WOWLAN_TCP_DST_PORT = 5, + NL80211_WOWLAN_TCP_DATA_PAYLOAD = 6, + NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 7, + NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 8, + NL80211_WOWLAN_TCP_DATA_INTERVAL = 9, + NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 10, + NL80211_WOWLAN_TCP_WAKE_MASK = 11, + NUM_NL80211_WOWLAN_TCP = 12, + MAX_NL80211_WOWLAN_TCP = 11, +}; + +enum wiphy_wowlan_support_flags { + WIPHY_WOWLAN_ANY = 1, + WIPHY_WOWLAN_MAGIC_PKT = 2, + WIPHY_WOWLAN_DISCONNECT = 4, + WIPHY_WOWLAN_SUPPORTS_GTK_REKEY = 8, + WIPHY_WOWLAN_GTK_REKEY_FAILURE = 16, + WIPHY_WOWLAN_EAP_IDENTITY_REQ = 32, + WIPHY_WOWLAN_4WAY_HANDSHAKE = 64, + WIPHY_WOWLAN_RFKILL_RELEASE = 128, + WIPHY_WOWLAN_NET_DETECT = 256, +}; + +enum nl80211_rekey_data { + __NL80211_REKEY_DATA_INVALID = 0, + NL80211_REKEY_DATA_KEK = 1, + NL80211_REKEY_DATA_KCK = 2, + NL80211_REKEY_DATA_REPLAY_CTR = 3, + NL80211_REKEY_DATA_AKM = 4, + NUM_NL80211_REKEY_DATA = 5, + MAX_NL80211_REKEY_DATA = 4, +}; + +enum nl80211_nan_publish_type { + NL80211_NAN_SOLICITED_PUBLISH = 1, + NL80211_NAN_UNSOLICITED_PUBLISH = 2, +}; + +enum nl80211_nan_srf_attributes { + __NL80211_NAN_SRF_INVALID = 0, + NL80211_NAN_SRF_INCLUDE = 1, + NL80211_NAN_SRF_BF = 2, + NL80211_NAN_SRF_BF_IDX = 3, + NL80211_NAN_SRF_MAC_ADDRS = 4, + NUM_NL80211_NAN_SRF_ATTR = 5, + NL80211_NAN_SRF_ATTR_MAX = 4, +}; + +enum cfg80211_nan_conf_changes { + CFG80211_NAN_CONF_CHANGED_PREF = 1, + CFG80211_NAN_CONF_CHANGED_BANDS = 2, +}; + +enum nl80211_protocol_features { + NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1, +}; + +enum nl80211_attr_coalesce_rule { + __NL80211_COALESCE_RULE_INVALID = 0, + NL80211_ATTR_COALESCE_RULE_DELAY = 1, + NL80211_ATTR_COALESCE_RULE_CONDITION = 2, + NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 3, + NUM_NL80211_ATTR_COALESCE_RULE = 4, + NL80211_ATTR_COALESCE_RULE_MAX = 3, +}; + +enum wiphy_vendor_command_flags { + WIPHY_VENDOR_CMD_NEED_WDEV = 1, + WIPHY_VENDOR_CMD_NEED_NETDEV = 2, + WIPHY_VENDOR_CMD_NEED_RUNNING = 4, +}; + +enum nl80211_ftm_responder_stats { + __NL80211_FTM_STATS_INVALID = 0, + NL80211_FTM_STATS_SUCCESS_NUM = 1, + NL80211_FTM_STATS_PARTIAL_NUM = 2, + NL80211_FTM_STATS_FAILED_NUM = 3, + NL80211_FTM_STATS_ASAP_NUM = 4, + NL80211_FTM_STATS_NON_ASAP_NUM = 5, + NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 6, + NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 7, + NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 8, + NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 9, + NL80211_FTM_STATS_PAD = 10, + __NL80211_FTM_STATS_AFTER_LAST = 11, + NL80211_FTM_STATS_MAX = 10, +}; + +enum nl80211_tid_config_attr { + __NL80211_TID_CONFIG_ATTR_INVALID = 0, + NL80211_TID_CONFIG_ATTR_PAD = 1, + NL80211_TID_CONFIG_ATTR_VIF_SUPP = 2, + NL80211_TID_CONFIG_ATTR_PEER_SUPP = 3, + NL80211_TID_CONFIG_ATTR_OVERRIDE = 4, + NL80211_TID_CONFIG_ATTR_TIDS = 5, + NL80211_TID_CONFIG_ATTR_NOACK = 6, + NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 7, + NL80211_TID_CONFIG_ATTR_RETRY_LONG = 8, + NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 9, + NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 10, + NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 11, + NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 12, + NL80211_TID_CONFIG_ATTR_TX_RATE = 13, + __NL80211_TID_CONFIG_ATTR_AFTER_LAST = 14, + NL80211_TID_CONFIG_ATTR_MAX = 13, +}; + +enum nl80211_sar_attrs { + __NL80211_SAR_ATTR_INVALID = 0, + NL80211_SAR_ATTR_TYPE = 1, + NL80211_SAR_ATTR_SPECS = 2, + __NL80211_SAR_ATTR_LAST = 3, + NL80211_SAR_ATTR_MAX = 2, +}; + +enum nl80211_sar_specs_attrs { + __NL80211_SAR_ATTR_SPECS_INVALID = 0, + NL80211_SAR_ATTR_SPECS_POWER = 1, + NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 2, + NL80211_SAR_ATTR_SPECS_START_FREQ = 3, + NL80211_SAR_ATTR_SPECS_END_FREQ = 4, + __NL80211_SAR_ATTR_SPECS_LAST = 5, + NL80211_SAR_ATTR_SPECS_MAX = 4, +}; + +enum nl80211_band_attr { + __NL80211_BAND_ATTR_INVALID = 0, + NL80211_BAND_ATTR_FREQS = 1, + NL80211_BAND_ATTR_RATES = 2, + NL80211_BAND_ATTR_HT_MCS_SET = 3, + NL80211_BAND_ATTR_HT_CAPA = 4, + NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 5, + NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 6, + NL80211_BAND_ATTR_VHT_MCS_SET = 7, + NL80211_BAND_ATTR_VHT_CAPA = 8, + NL80211_BAND_ATTR_IFTYPE_DATA = 9, + NL80211_BAND_ATTR_EDMG_CHANNELS = 10, + NL80211_BAND_ATTR_EDMG_BW_CONFIG = 11, + NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 12, + NL80211_BAND_ATTR_S1G_CAPA = 13, + __NL80211_BAND_ATTR_AFTER_LAST = 14, + NL80211_BAND_ATTR_MAX = 13, +}; + +enum nl80211_bitrate_attr { + __NL80211_BITRATE_ATTR_INVALID = 0, + NL80211_BITRATE_ATTR_RATE = 1, + NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 2, + __NL80211_BITRATE_ATTR_AFTER_LAST = 3, + NL80211_BITRATE_ATTR_MAX = 2, +}; + +enum ieee80211_rate_flags { + IEEE80211_RATE_SHORT_PREAMBLE = 1, + IEEE80211_RATE_MANDATORY_A = 2, + IEEE80211_RATE_MANDATORY_B = 4, + IEEE80211_RATE_MANDATORY_G = 8, + IEEE80211_RATE_ERP_G = 16, + IEEE80211_RATE_SUPPORTS_5MHZ = 32, + IEEE80211_RATE_SUPPORTS_10MHZ = 64, +}; + +enum nl80211_band_iftype_attr { + __NL80211_BAND_IFTYPE_ATTR_INVALID = 0, + NL80211_BAND_IFTYPE_ATTR_IFTYPES = 1, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 2, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 3, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 4, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 5, + NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 6, + NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 7, + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 8, + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 9, + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 10, + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 11, + __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST = 12, + NL80211_BAND_IFTYPE_ATTR_MAX = 11, +}; + +enum nl80211_if_combination_attrs { + NL80211_IFACE_COMB_UNSPEC = 0, + NL80211_IFACE_COMB_LIMITS = 1, + NL80211_IFACE_COMB_MAXNUM = 2, + NL80211_IFACE_COMB_STA_AP_BI_MATCH = 3, + NL80211_IFACE_COMB_NUM_CHANNELS = 4, + NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 5, + NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 6, + NL80211_IFACE_COMB_BI_MIN_GCD = 7, + NUM_NL80211_IFACE_COMB = 8, + MAX_NL80211_IFACE_COMB = 7, +}; + +enum nl80211_iface_limit_attrs { + NL80211_IFACE_LIMIT_UNSPEC = 0, + NL80211_IFACE_LIMIT_MAX = 1, + NL80211_IFACE_LIMIT_TYPES = 2, + NUM_NL80211_IFACE_LIMIT = 3, + MAX_NL80211_IFACE_LIMIT = 2, +}; + +enum nl80211_txq_stats { + __NL80211_TXQ_STATS_INVALID = 0, + NL80211_TXQ_STATS_BACKLOG_BYTES = 1, + NL80211_TXQ_STATS_BACKLOG_PACKETS = 2, + NL80211_TXQ_STATS_FLOWS = 3, + NL80211_TXQ_STATS_DROPS = 4, + NL80211_TXQ_STATS_ECN_MARKS = 5, + NL80211_TXQ_STATS_OVERLIMIT = 6, + NL80211_TXQ_STATS_OVERMEMORY = 7, + NL80211_TXQ_STATS_COLLISIONS = 8, + NL80211_TXQ_STATS_TX_BYTES = 9, + NL80211_TXQ_STATS_TX_PACKETS = 10, + NL80211_TXQ_STATS_MAX_FLOWS = 11, + NUM_NL80211_TXQ_STATS = 12, + NL80211_TXQ_STATS_MAX = 11, +}; + +enum nl80211_peer_measurement_attrs { + __NL80211_PMSR_ATTR_INVALID = 0, + NL80211_PMSR_ATTR_MAX_PEERS = 1, + NL80211_PMSR_ATTR_REPORT_AP_TSF = 2, + NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 3, + NL80211_PMSR_ATTR_TYPE_CAPA = 4, + NL80211_PMSR_ATTR_PEERS = 5, + NUM_NL80211_PMSR_ATTR = 6, + NL80211_PMSR_ATTR_MAX = 5, +}; + +enum nl80211_peer_measurement_type { + NL80211_PMSR_TYPE_INVALID = 0, + NL80211_PMSR_TYPE_FTM = 1, + NUM_NL80211_PMSR_TYPES = 2, + NL80211_PMSR_TYPE_MAX = 1, +}; + +enum nl80211_peer_measurement_ftm_capa { + __NL80211_PMSR_FTM_CAPA_ATTR_INVALID = 0, + NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 1, + NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 2, + NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 3, + NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 4, + NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 5, + NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 6, + NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 7, + NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 8, + NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 9, + NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 10, + NUM_NL80211_PMSR_FTM_CAPA_ATTR = 11, + NL80211_PMSR_FTM_CAPA_ATTR_MAX = 10, +}; + +enum nl80211_iftype_akm_attributes { + __NL80211_IFTYPE_AKM_ATTR_INVALID = 0, + NL80211_IFTYPE_AKM_ATTR_IFTYPES = 1, + NL80211_IFTYPE_AKM_ATTR_SUITES = 2, + __NL80211_IFTYPE_AKM_ATTR_LAST = 3, + NL80211_IFTYPE_AKM_ATTR_MAX = 2, +}; + +enum nl80211_reg_type { + NL80211_REGDOM_TYPE_COUNTRY = 0, + NL80211_REGDOM_TYPE_WORLD = 1, + NL80211_REGDOM_TYPE_CUSTOM_WORLD = 2, + NL80211_REGDOM_TYPE_INTERSECTION = 3, +}; + +enum nl80211_frequency_attr { + __NL80211_FREQUENCY_ATTR_INVALID = 0, + NL80211_FREQUENCY_ATTR_FREQ = 1, + NL80211_FREQUENCY_ATTR_DISABLED = 2, + NL80211_FREQUENCY_ATTR_NO_IR = 3, + __NL80211_FREQUENCY_ATTR_NO_IBSS = 4, + NL80211_FREQUENCY_ATTR_RADAR = 5, + NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 6, + NL80211_FREQUENCY_ATTR_DFS_STATE = 7, + NL80211_FREQUENCY_ATTR_DFS_TIME = 8, + NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 9, + NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 10, + NL80211_FREQUENCY_ATTR_NO_80MHZ = 11, + NL80211_FREQUENCY_ATTR_NO_160MHZ = 12, + NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 13, + NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 14, + NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 15, + NL80211_FREQUENCY_ATTR_NO_20MHZ = 16, + NL80211_FREQUENCY_ATTR_NO_10MHZ = 17, + NL80211_FREQUENCY_ATTR_WMM = 18, + NL80211_FREQUENCY_ATTR_NO_HE = 19, + NL80211_FREQUENCY_ATTR_OFFSET = 20, + NL80211_FREQUENCY_ATTR_1MHZ = 21, + NL80211_FREQUENCY_ATTR_2MHZ = 22, + NL80211_FREQUENCY_ATTR_4MHZ = 23, + NL80211_FREQUENCY_ATTR_8MHZ = 24, + NL80211_FREQUENCY_ATTR_16MHZ = 25, + NL80211_FREQUENCY_ATTR_NO_320MHZ = 26, + NL80211_FREQUENCY_ATTR_NO_EHT = 27, + NL80211_FREQUENCY_ATTR_PSD = 28, + NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 29, + NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 30, + NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 31, + NL80211_FREQUENCY_ATTR_CAN_MONITOR = 32, + __NL80211_FREQUENCY_ATTR_AFTER_LAST = 33, + NL80211_FREQUENCY_ATTR_MAX = 32, +}; + +enum nl80211_wmm_rule { + __NL80211_WMMR_INVALID = 0, + NL80211_WMMR_CW_MIN = 1, + NL80211_WMMR_CW_MAX = 2, + NL80211_WMMR_AIFSN = 3, + NL80211_WMMR_TXOP = 4, + __NL80211_WMMR_LAST = 5, + NL80211_WMMR_MAX = 4, +}; + +enum bss_param_flags { + BSS_PARAM_FLAGS_CTS_PROT = 1, + BSS_PARAM_FLAGS_SHORT_PREAMBLE = 2, + BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 4, +}; + +enum nl80211_sta_bss_param { + __NL80211_STA_BSS_PARAM_INVALID = 0, + NL80211_STA_BSS_PARAM_CTS_PROT = 1, + NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 2, + NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 3, + NL80211_STA_BSS_PARAM_DTIM_PERIOD = 4, + NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 5, + __NL80211_STA_BSS_PARAM_AFTER_LAST = 6, + NL80211_STA_BSS_PARAM_MAX = 5, +}; + +enum nl80211_tid_stats { + __NL80211_TID_STATS_INVALID = 0, + NL80211_TID_STATS_RX_MSDU = 1, + NL80211_TID_STATS_TX_MSDU = 2, + NL80211_TID_STATS_TX_MSDU_RETRIES = 3, + NL80211_TID_STATS_TX_MSDU_FAILED = 4, + NL80211_TID_STATS_PAD = 5, + NL80211_TID_STATS_TXQ_STATS = 6, + NUM_NL80211_TID_STATS = 7, + NL80211_TID_STATS_MAX = 6, +}; + +enum nl80211_pmksa_candidate_attr { + __NL80211_PMKSA_CANDIDATE_INVALID = 0, + NL80211_PMKSA_CANDIDATE_INDEX = 1, + NL80211_PMKSA_CANDIDATE_BSSID = 2, + NL80211_PMKSA_CANDIDATE_PREAUTH = 3, + NUM_NL80211_PMKSA_CANDIDATE = 4, + MAX_NL80211_PMKSA_CANDIDATE = 3, +}; + +struct cfg80211_beacon_registration { + struct list_head list; + u32 nlportid; +}; + +struct key_parse { + struct key_params p; + int idx; + int type; + bool def; + bool defmgmt; + bool defbeacon; + bool def_uni; + bool def_multi; +}; + +struct nl80211_txrate_vht { + __u16 mcs[8]; +}; + +struct nl80211_txrate_he { + __u16 mcs[8]; +}; + +struct cfg80211_nan_match_params { + enum nl80211_nan_function_type type; + u8 inst_id; + u8 peer_inst_id; + const u8 *addr; + u8 info_len; + const u8 *info; + u64 cookie; +}; + +struct nl80211_dump_wiphy_state { + s64 filter_wiphy; + long start; + long split_start; + long band_start; + long chan_start; + long capa_start; + bool split; +}; + +struct nl80211_mlme_event { + enum nl80211_commands cmd; + const u8 *buf; + size_t buf_len; + int uapsd_queues; + const u8 *req_ies; + size_t req_ies_len; + bool reconnect; +}; + +struct cfg80211_fils_resp_params { + const u8 *kek; + size_t kek_len; + bool update_erp_next_seq_num; + u16 erp_next_seq_num; + const u8 *pmk; + size_t pmk_len; + const u8 *pmkid; +}; + +struct cfg80211_connect_resp_params { + int status; + const u8 *req_ie; + size_t req_ie_len; + const u8 *resp_ie; + size_t resp_ie_len; + struct cfg80211_fils_resp_params fils; + enum nl80211_timeout_reason timeout_reason; + const u8 *ap_mld_addr; + u16 valid_links; + struct { + const u8 *addr; + const u8 *bssid; + struct cfg80211_bss *bss; + u16 status; + } links[15]; +}; + +struct cfg80211_roam_info { + const u8 *req_ie; + size_t req_ie_len; + const u8 *resp_ie; + size_t resp_ie_len; + struct cfg80211_fils_resp_params fils; + const u8 *ap_mld_addr; + u16 valid_links; + struct { + const u8 *addr; + const u8 *bssid; + struct ieee80211_channel *channel; + struct cfg80211_bss *bss; + } links[15]; +}; + +struct cfg80211_tx_status { + u64 cookie; + u64 tx_tstamp; + u64 ack_tstamp; + const u8 *buf; + size_t len; + bool ack; +}; + +struct sta_opmode_info { + u32 changed; + enum nl80211_smps_mode smps_mode; + enum nl80211_chan_width bw; + u8 rx_nss; +}; + +struct get_key_cookie { + struct sk_buff *msg; + int error; + int idx; +}; + +struct nl80211_bss_select_rssi_adjust { + __u8 band; + __s8 delta; +}; + +struct nl80211_pattern_support { + __u32 max_patterns; + __u32 min_pattern_len; + __u32 max_pattern_len; + __u32 max_pkt_offset; +}; + +struct nl80211_coalesce_rule_support { + __u32 max_rules; + struct nl80211_pattern_support pat; + __u32 max_delay; +}; + +struct netlink_notify { + struct net *net; + u32 portid; + int protocol; +}; + +struct machine_ops { + void (*restart)(char *); + void (*halt)(); + void (*power_off)(); + void (*shutdown)(); + void (*crash_shutdown)(struct pt_regs *); + void (*emergency_restart)(); +}; + +typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *); + +struct nmiaction { + struct list_head list; + nmi_handler_t handler; + u64 max_duration; + unsigned long flags; const char *name; }; -enum format_type { - FORMAT_TYPE_NONE = 0, - FORMAT_TYPE_WIDTH = 1, - FORMAT_TYPE_PRECISION = 2, - FORMAT_TYPE_CHAR = 3, - FORMAT_TYPE_STR = 4, - FORMAT_TYPE_PTR = 5, - FORMAT_TYPE_PERCENT_CHAR = 6, - FORMAT_TYPE_INVALID = 7, - FORMAT_TYPE_LONG_LONG = 8, - FORMAT_TYPE_ULONG = 9, - FORMAT_TYPE_LONG = 10, - FORMAT_TYPE_UBYTE = 11, - FORMAT_TYPE_BYTE = 12, - FORMAT_TYPE_USHORT = 13, - FORMAT_TYPE_SHORT = 14, - FORMAT_TYPE_UINT = 15, - FORMAT_TYPE_INT = 16, - FORMAT_TYPE_SIZE_T = 17, - FORMAT_TYPE_PTRDIFF = 18, +typedef void (*nmi_shootdown_cb)(int, struct pt_regs *); + +enum { + NMI_LOCAL = 0, + NMI_UNKNOWN = 1, + NMI_SERR = 2, + NMI_IO_CHECK = 3, + NMI_MAX = 4, }; -struct clk { - struct clk_core *core; - struct device *dev; - const char *dev_id; - const char *con_id; - unsigned long min_rate; - unsigned long max_rate; - unsigned int exclusive_count; - struct hlist_node clks_node; +enum reboot_type { + BOOT_TRIPLE = 116, + BOOT_KBD = 107, + BOOT_BIOS = 98, + BOOT_ACPI = 97, + BOOT_EFI = 101, + BOOT_CF9_FORCE = 112, + BOOT_CF9_SAFE = 113, }; -struct tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - long tm_year; - int tm_wday; - int tm_yday; +struct chipset { + u32 vendor; + u32 device; + u32 class; + u32 class_mask; + u32 flags; + void (*f)(int, int, int); }; -enum rseq_event_mask_bits { - RSEQ_EVENT_PREEMPT_BIT = 0, - RSEQ_EVENT_SIGNAL_BIT = 1, - RSEQ_EVENT_MIGRATE_BIT = 2, +struct intel_early_ops { + resource_size_t (*stolen_size)(int, int, int); + resource_size_t (*stolen_base)(int, int, int, resource_size_t); }; -struct kernel_vm86_regs { - struct pt_regs pt; - unsigned short es; - unsigned short __esh; - unsigned short ds; - unsigned short __dsh; - unsigned short fs; - unsigned short __fsh; - unsigned short gs; - unsigned short __gsh; +typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); + +struct tsc_adjust { + s64 bootval; + s64 adjusted; + unsigned long nextcheck; + bool warned; }; -enum align_flags { - ALIGN_VA_32 = 1, - ALIGN_VA_64 = 2, +typedef unsigned long long cycles_t; + +struct x86_mapping_info { + void * (*alloc_pgt_page)(void *); + void *context; + unsigned long page_flag; + unsigned long offset; + bool direct_gbpages; + unsigned long kernpg_flag; }; -enum spectre_v2_mitigation { - SPECTRE_V2_NONE = 0, - SPECTRE_V2_RETPOLINE = 1, - SPECTRE_V2_LFENCE = 2, - SPECTRE_V2_EIBRS = 3, - SPECTRE_V2_EIBRS_RETPOLINE = 4, - SPECTRE_V2_EIBRS_LFENCE = 5, - SPECTRE_V2_IBRS = 6, +struct init_pgtable_data { + struct x86_mapping_info *info; + pgd_t *level4p; }; -struct var_mtrr_range_state { - unsigned long base_pfn; - unsigned long size_pfn; - mtrr_type type; +enum { + CGRP_NOTIFY_ON_RELEASE = 0, + CGRP_CPUSET_CLONE_CHILDREN = 1, + CGRP_FREEZE = 2, + CGRP_FROZEN = 3, + CGRP_KILL = 4, }; -enum ucode_state { - UCODE_OK = 0, - UCODE_NEW = 1, - UCODE_NEW_SAFE = 2, - UCODE_UPDATED = 3, - UCODE_NFOUND = 4, - UCODE_ERROR = 5, - UCODE_TIMEOUT = 6, - UCODE_OFFLINE = 7, +struct css_task_iter { + struct cgroup_subsys *ss; + unsigned int flags; + struct list_head *cset_pos; + struct list_head *cset_head; + struct list_head *tcset_pos; + struct list_head *tcset_head; + struct list_head *task_pos; + struct list_head *cur_tasks_head; + struct css_set *cur_cset; + struct css_set *cur_dcset; + struct task_struct *cur_task; + struct list_head iters_node; }; -struct cpu_signature; - -struct microcode_ops { - enum ucode_state (*request_microcode_fw)(int, struct device *); - void (*microcode_fini_cpu)(int); - enum ucode_state (*apply_microcode)(int); - int (*collect_cpu_info)(int, struct cpu_signature *); - void (*finalize_late_load)(int); - unsigned int nmi_safe: 1; - unsigned int use_nmi: 1; +struct context_tracking { + bool active; + int recursion; + atomic_t state; + long dynticks_nesting; + long dynticks_nmi_nesting; }; -struct cpu_signature { - unsigned int sig; - unsigned int pf; - unsigned int rev; +typedef void (*btf_trace_user_enter)(void *, int); + +typedef void (*btf_trace_user_exit)(void *, int); + +struct trace_event_raw_context_tracking_user { + struct trace_entry ent; + int dummy; + char __data[0]; }; -struct ucode_cpu_info { - struct cpu_signature cpu_sig; - void *mc; +struct trace_event_data_offsets_context_tracking_user {}; + +struct mempolicy_operations { + int (*create)(struct mempolicy *, const nodemask_t *); + void (*rebind)(struct mempolicy *, const nodemask_t *); }; -struct early_load_data { - u32 old_rev; - u32 new_rev; +struct iw_node_attr { + struct kobj_attribute kobj_attr; + int nid; }; -struct platform_device_info { - struct device *parent; - struct fwnode_handle *fwnode; - bool of_node_reused; +enum { + MPOL_DEFAULT = 0, + MPOL_PREFERRED = 1, + MPOL_BIND = 2, + MPOL_INTERLEAVE = 3, + MPOL_LOCAL = 4, + MPOL_PREFERRED_MANY = 5, + MPOL_WEIGHTED_INTERLEAVE = 6, + MPOL_MAX = 7, +}; + +enum numa_stat_item { + NUMA_HIT = 0, + NUMA_MISS = 1, + NUMA_FOREIGN = 2, + NUMA_INTERLEAVE_HIT = 3, + NUMA_LOCAL = 4, + NUMA_OTHER = 5, + NR_VM_NUMA_EVENT_ITEMS = 6, +}; + +struct sp_node { + struct rb_node nd; + unsigned long start; + unsigned long end; + struct mempolicy *policy; +}; + +typedef u32 compat_ulong_t; + +struct migration_mpol { + struct mempolicy *pol; + unsigned long ilx; +}; + +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; +}; + +struct queue_pages { + struct list_head *pagelist; + unsigned long flags; + nodemask_t *nmask; + unsigned long start; + unsigned long end; + struct vm_area_struct *first; + struct folio *large; + long nr_failed; +}; + +struct nodemask_scratch { + nodemask_t mask1; + nodemask_t mask2; +}; + +struct shared_policy { + struct rb_root root; + rwlock_t lock; +}; + +struct tracefs_dir_ops { + int (*mkdir)(const char *); + int (*rmdir)(const char *); +}; + +struct tree_descr { const char *name; - int id; - const struct resource *res; - unsigned int num_res; - const void *data; - size_t size_data; - u64 dma_mask; - const struct property_entry *properties; + const struct file_operations *ops; + int mode; }; -struct cpio_data { +enum { + Opt_uid___3 = 0, + Opt_gid___3 = 1, + Opt_mode___2 = 2, + Opt_err___3 = 3, +}; + +enum { + TRACEFS_EVENT_INODE = 2, + TRACEFS_EVENT_TOP_INODE = 4, + TRACEFS_GID_PERM_SET = 8, + TRACEFS_UID_PERM_SET = 16, + TRACEFS_INSTANCE_INODE = 32, +}; + +struct tracefs_inode { + struct inode vfs_inode; + unsigned long flags; + void *private; +}; + +struct tracefs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; + +struct tracefs_fs_info { + struct tracefs_mount_opts mount_opts; +}; + +struct eventfs_attr { + int mode; + kuid_t uid; + kgid_t gid; +}; + +struct eventfs_entry; + +struct eventfs_inode { + union { + struct list_head list; + struct callback_head rcu; + }; + struct list_head children; + const struct eventfs_entry *entries; + const char *name; + struct eventfs_attr *entry_attrs; void *data; - size_t size; - char name[18]; + struct eventfs_attr attr; + struct kref kref; + unsigned int is_freed: 1; + unsigned int is_events: 1; + unsigned int nr_entries: 30; + unsigned int ino; +}; + +typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); + +struct eventfs_entry { + const char *name; + eventfs_callback callback; +}; + +enum btrfs_dev_stat_values { + BTRFS_DEV_STAT_WRITE_ERRS = 0, + BTRFS_DEV_STAT_READ_ERRS = 1, + BTRFS_DEV_STAT_FLUSH_ERRS = 2, + BTRFS_DEV_STAT_CORRUPTION_ERRS = 3, + BTRFS_DEV_STAT_GENERATION_ERRS = 4, + BTRFS_DEV_STAT_VALUES_MAX = 5, +}; + +struct async_submit_bio { + struct btrfs_bio *bbio; + struct btrfs_io_context *bioc; + struct btrfs_io_stripe smap; + int mirror_num; + struct btrfs_work work; +}; + +struct btrfs_failed_bio { + struct btrfs_bio *bbio; + int num_copies; + atomic_t repair_count; +}; + +enum { + BLK_MQ_NO_TAG = 4294967295, + BLK_MQ_TAG_MIN = 1, + BLK_MQ_TAG_MAX = 4294967294, +}; + +enum { + BLK_MQ_UNIQUE_TAG_BITS = 16, + BLK_MQ_UNIQUE_TAG_MASK = 65535, +}; + +typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); + +struct bt_iter_data { + struct blk_mq_hw_ctx *hctx; + struct request_queue *q; + busy_tag_iter_fn *fn; + void *data; + bool reserved; +}; + +struct bt_tags_iter_data { + struct blk_mq_tags *tags; + busy_tag_iter_fn *fn; + void *data; + unsigned int flags; +}; + +typedef struct { + S16 norm[53]; + U32 wksp[285]; +} ZSTD_BuildCTableWksp; + +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; + +typedef struct { + ptrdiff_t value; + const void *stateTable; + const void *symbolTT; + unsigned int stateLog; +} FSE_CState_t; + +typedef struct { + size_t bitContainer; + unsigned int bitPos; + char *startPtr; + char *ptr; + char *endPtr; +} BIT_CStream_t; + +struct seqDef_s { + U32 offBase; + U16 litLength; + U16 mlBase; +}; + +typedef enum { + ZSTD_defaultDisallowed = 0, + ZSTD_defaultAllowed = 1, +} ZSTD_defaultPolicy_e; + +struct node_groups { + unsigned int id; + union { + unsigned int ngroups; + unsigned int ncpus; + }; +}; + +struct pcie_link_state { + struct pci_dev *pdev; + struct pci_dev *downstream; + struct pcie_link_state *root; + struct pcie_link_state *parent; + struct list_head sibling; + u32 aspm_support: 7; + u32 aspm_enabled: 7; + u32 aspm_capable: 7; + u32 aspm_default: 7; + int: 4; + u32 aspm_disable: 7; + u32 clkpm_capable: 1; + u32 clkpm_enabled: 1; + u32 clkpm_default: 1; + u32 clkpm_disable: 1; +}; + +struct pci_cap_saved_data { + u16 cap_nr; + bool cap_extended; + unsigned int size; + u32 data[0]; +}; + +struct pci_cap_saved_state { + struct hlist_node next; + struct pci_cap_saved_data cap; +}; + +struct pci_host_bridge { + struct device dev; + struct pci_bus *bus; + struct pci_ops *ops; + struct pci_ops *child_ops; + void *sysdata; + int busnr; + int domain_nr; + struct list_head windows; + struct list_head dma_ranges; + u8 (*swizzle_irq)(struct pci_dev *, u8 *); + int (*map_irq)(const struct pci_dev *, u8, u8); + void (*release_fn)(struct pci_host_bridge *); + void *release_data; + unsigned int ignore_reset_delay: 1; + unsigned int no_ext_tags: 1; + unsigned int no_inc_mrrs: 1; + unsigned int native_aer: 1; + unsigned int native_pcie_hotplug: 1; + unsigned int native_shpc_hotplug: 1; + unsigned int native_pme: 1; + unsigned int native_ltr: 1; + unsigned int native_dpc: 1; + unsigned int native_cxl_error: 1; + unsigned int preserve_config: 1; + unsigned int size_windows: 1; + unsigned int msi_domain: 1; + resource_size_t (*align_resource)(struct pci_dev *, const struct resource *, resource_size_t, resource_size_t, resource_size_t); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long private[0]; +}; + +struct acpi_pkg_info { + u8 *free_space; + acpi_size length; + u32 object_space; + u32 num_packages; +}; + +typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); + +struct attribute_container; + +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + struct device classdev; +}; + +struct attribute_container { + struct list_head node; + struct klist containers; + struct class *class; + const struct attribute_group *grp; + struct device_attribute **attrs; + int (*match)(struct attribute_container *, struct device *); + unsigned long flags; +}; + +struct scsi_sense_hdr; + +struct scsi_failures; + +struct scsi_exec_args { + unsigned char *sense; + unsigned int sense_len; + struct scsi_sense_hdr *sshdr; + blk_mq_req_flags_t req_flags; + int scmd_flags; + int *resid; + struct scsi_failures *failures; +}; + +struct scsi_sense_hdr { + u8 response_code; + u8 sense_key; + u8 asc; + u8 ascq; + u8 byte4; + u8 byte5; + u8 byte6; + u8 additional_length; +}; + +struct scsi_failure; + +struct scsi_failures { + int total_allowed; + int total_retries; + struct scsi_failure *failure_definitions; +}; + +struct scsi_failure { + int result; + u8 sense; + u8 asc; + u8 ascq; + s8 allowed; + s8 retries; +}; + +enum { + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_DELAYED_REPREP = 2, + ACTION_RETRY = 3, + ACTION_DELAYED_RETRY = 4, +}; + +enum scsi_device_event { + SDEV_EVT_MEDIA_CHANGE = 1, + SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, + SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, + SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, + SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, + SDEV_EVT_LUN_CHANGE_REPORTED = 6, + SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, + SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, + SDEV_EVT_FIRST = 1, + SDEV_EVT_LAST = 8, + SDEV_EVT_MAXBITS = 9, +}; + +enum scsi_ml_status { + SCSIML_STAT_OK = 0, + SCSIML_STAT_RESV_CONFLICT = 1, + SCSIML_STAT_NOSPC = 2, + SCSIML_STAT_MED_ERROR = 3, + SCSIML_STAT_TGT_FAILURE = 4, + SCSIML_STAT_DL_TIMEOUT = 5, +}; + +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, +}; + +enum scsi_prot_operations { + SCSI_PROT_NORMAL = 0, + SCSI_PROT_READ_INSERT = 1, + SCSI_PROT_WRITE_STRIP = 2, + SCSI_PROT_READ_STRIP = 3, + SCSI_PROT_WRITE_INSERT = 4, + SCSI_PROT_READ_PASS = 5, + SCSI_PROT_WRITE_PASS = 6, +}; + +struct transport_container { + struct attribute_container ac; + const struct attribute_group *statistics; +}; + +struct scsi_transport_template { + struct transport_container host_attrs; + struct transport_container target_attrs; + struct transport_container device_attrs; + int (*user_scan)(struct Scsi_Host *, uint, uint, u64); + int device_size; + int device_private_offset; + int target_size; + int target_private_offset; + int host_size; + unsigned int create_work_queue: 1; + void (*eh_strategy_handler)(struct Scsi_Host *); +}; + +typedef void (*activate_complete)(void *, int); + +struct scsi_device_handler { + struct list_head list; + struct module *module; + const char *name; + enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); + int (*attach)(struct scsi_device *); + void (*detach)(struct scsi_device *); + int (*activate)(struct scsi_device *, activate_complete, void *); + blk_status_t (*prep_fn)(struct scsi_device *, struct request *); + int (*set_params)(struct scsi_device *, const char *); + void (*rescan)(struct scsi_device *); +}; + +struct scsi_event { + enum scsi_device_event evt_type; + struct list_head node; +}; + +struct scsi_driver { + struct device_driver gendrv; + void (*rescan)(struct device *); + blk_status_t (*init_command)(struct scsi_cmnd *); + void (*uninit_command)(struct scsi_cmnd *); + int (*done)(struct scsi_cmnd *); + int (*eh_action)(struct scsi_cmnd *, int); + void (*eh_reset)(struct scsi_cmnd *); +}; + +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; +}; + +enum igb_tx_buf_type { + IGB_TYPE_SKB = 0, + IGB_TYPE_XDP = 1, +}; + +enum e1000_mac_type___2 { + e1000_undefined = 0, + e1000_82575 = 1, + e1000_82576 = 2, + e1000_82580 = 3, + e1000_i350 = 4, + e1000_i354 = 5, + e1000_i210 = 6, + e1000_i211 = 7, + e1000_num_macs = 8, +}; + +enum e1000_phy_type___2 { + e1000_phy_unknown___2 = 0, + e1000_phy_none___2 = 1, + e1000_phy_m88___2 = 2, + e1000_phy_igp___2 = 3, + e1000_phy_igp_2___2 = 4, + e1000_phy_gg82563___2 = 5, + e1000_phy_igp_3___2 = 6, + e1000_phy_ife___2 = 7, + e1000_phy_82580 = 8, + e1000_phy_i210 = 9, + e1000_phy_bcm54616 = 10, +}; + +enum e1000_nvm_type___2 { + e1000_nvm_unknown___2 = 0, + e1000_nvm_none___2 = 1, + e1000_nvm_eeprom_spi___2 = 2, + e1000_nvm_flash_hw___2 = 3, + e1000_nvm_invm = 4, + e1000_nvm_flash_sw___2 = 5, +}; + +enum e1000_bus_type { + e1000_bus_type_unknown = 0, + e1000_bus_type_pci = 1, + e1000_bus_type_pcix = 2, + e1000_bus_type_pci_express = 3, + e1000_bus_type_reserved = 4, +}; + +enum e1000_bus_speed { + e1000_bus_speed_unknown = 0, + e1000_bus_speed_33 = 1, + e1000_bus_speed_66 = 2, + e1000_bus_speed_100 = 3, + e1000_bus_speed_120 = 4, + e1000_bus_speed_133 = 5, + e1000_bus_speed_2500 = 6, + e1000_bus_speed_5000 = 7, + e1000_bus_speed_reserved = 8, +}; + +struct e1000_hw___2; + +struct e1000_thermal_diode_data; + +struct hwmon_attr { + struct device_attribute dev_attr; + struct e1000_hw___2 *hw; + struct e1000_thermal_diode_data *sensor; + char name[12]; +}; + +struct e1000_sfp_flags { + u8 e1000_base_sx: 1; + u8 e1000_base_lx: 1; + u8 e1000_base_cx: 1; + u8 e1000_base_t: 1; + u8 e100_base_lx: 1; + u8 e100_base_fx: 1; + u8 e10_base_bx10: 1; + u8 e10_base_px: 1; +}; + +struct e1000_dev_spec_82575 { + bool sgmii_active; + bool global_device_reset; + bool eee_disable; + bool clear_semaphore_once; + struct e1000_sfp_flags eth_flags; + bool module_plugged; + u8 media_port; + bool media_changed; + bool mas_capable; +}; + +struct e1000_mac_operations___2 { + s32 (*check_for_link)(struct e1000_hw___2 *); + s32 (*reset_hw)(struct e1000_hw___2 *); + s32 (*init_hw)(struct e1000_hw___2 *); + bool (*check_mng_mode)(struct e1000_hw___2 *); + s32 (*setup_physical_interface)(struct e1000_hw___2 *); + void (*rar_set)(struct e1000_hw___2 *, u8 *, u32); + s32 (*read_mac_addr)(struct e1000_hw___2 *); + s32 (*get_speed_and_duplex)(struct e1000_hw___2 *, u16 *, u16 *); + s32 (*acquire_swfw_sync)(struct e1000_hw___2 *, u16); + void (*release_swfw_sync)(struct e1000_hw___2 *, u16); + s32 (*get_thermal_sensor_data)(struct e1000_hw___2 *); + s32 (*init_thermal_sensor_thresh)(struct e1000_hw___2 *); + void (*write_vfta)(struct e1000_hw___2 *, u32, u32); +}; + +struct e1000_thermal_diode_data { + u8 location; + u8 temp; + u8 caution_thresh; + u8 max_op_thresh; +}; + +struct e1000_thermal_sensor_data { + struct e1000_thermal_diode_data sensor[3]; +}; + +struct e1000_mac_info___2 { + struct e1000_mac_operations___2 ops; + u8 addr[6]; + u8 perm_addr[6]; + enum e1000_mac_type___2 type; + u32 ledctl_default; + u32 ledctl_mode1; + u32 ledctl_mode2; + u32 mc_filter_type; + u32 txcw; + u16 mta_reg_count; + u16 uta_reg_count; + u32 mta_shadow[128]; + u16 rar_entry_count; + u8 forced_speed_duplex; + bool adaptive_ifs; + bool arc_subsystem_valid; + bool asf_firmware_present; + bool autoneg; + bool autoneg_failed; + bool disable_hw_init_bits; + bool get_link_status; + bool ifs_params_forced; + bool in_ifs_mode; + bool report_tx_early; + bool serdes_has_link; + bool tx_pkt_filtering; + struct e1000_thermal_sensor_data thermal_sensor_data; +}; + +struct e1000_fc_info___2 { + u32 high_water; + u32 low_water; + u16 pause_time; + bool send_xon; + bool strict_ieee; + enum e1000_fc_mode current_mode; + enum e1000_fc_mode requested_mode; +}; + +struct e1000_phy_operations___2 { + s32 (*acquire)(struct e1000_hw___2 *); + s32 (*check_polarity)(struct e1000_hw___2 *); + s32 (*check_reset_block)(struct e1000_hw___2 *); + s32 (*force_speed_duplex)(struct e1000_hw___2 *); + s32 (*get_cfg_done)(struct e1000_hw___2 *); + s32 (*get_cable_length)(struct e1000_hw___2 *); + s32 (*get_phy_info)(struct e1000_hw___2 *); + s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *); + void (*release)(struct e1000_hw___2 *); + s32 (*reset)(struct e1000_hw___2 *); + s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool); + s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool); + s32 (*write_reg)(struct e1000_hw___2 *, u32, u16); + s32 (*read_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8 *); + s32 (*write_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8); +}; + +struct e1000_phy_info___2 { + struct e1000_phy_operations___2 ops; + enum e1000_phy_type___2 type; + enum e1000_1000t_rx_status local_rx; + enum e1000_1000t_rx_status remote_rx; + enum e1000_ms_type ms_type; + enum e1000_ms_type original_ms_type; + enum e1000_rev_polarity cable_polarity; + enum e1000_smart_speed smart_speed; + u32 addr; + u32 id; + u32 reset_delay_us; + u32 revision; + enum e1000_media_type media_type; + u16 autoneg_advertised; + u16 autoneg_mask; + u16 cable_length; + u16 max_cable_length; + u16 min_cable_length; + u16 pair_length[4]; + u8 mdix; + bool disable_polarity_correction; + bool is_mdix; + bool polarity_correction; + bool reset_disable; + bool speed_downgraded; + bool autoneg_wait_to_complete; +}; + +struct e1000_nvm_operations___2 { + s32 (*acquire)(struct e1000_hw___2 *); + s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *); + void (*release)(struct e1000_hw___2 *); + s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *); + s32 (*update)(struct e1000_hw___2 *); + s32 (*validate)(struct e1000_hw___2 *); + s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *); +}; + +struct e1000_nvm_info___2 { + struct e1000_nvm_operations___2 ops; + enum e1000_nvm_type___2 type; + enum e1000_nvm_override override; + u32 flash_bank_size; + u32 flash_base_addr; + u16 word_size; + u16 delay_usec; + u16 address_bits; + u16 opcode_bits; + u16 page_size; +}; + +struct e1000_bus_info___2 { + enum e1000_bus_type type; + enum e1000_bus_speed speed; + enum e1000_bus_width width; + u32 snoop; + u16 func; + u16 pci_cmd_word; +}; + +struct e1000_mbx_operations { + s32 (*init_params)(struct e1000_hw___2 *); + s32 (*read)(struct e1000_hw___2 *, u32 *, u16, u16, bool); + s32 (*write)(struct e1000_hw___2 *, u32 *, u16, u16); + s32 (*read_posted)(struct e1000_hw___2 *, u32 *, u16, u16); + s32 (*write_posted)(struct e1000_hw___2 *, u32 *, u16, u16); + s32 (*check_for_msg)(struct e1000_hw___2 *, u16); + s32 (*check_for_ack)(struct e1000_hw___2 *, u16); + s32 (*check_for_rst)(struct e1000_hw___2 *, u16); + s32 (*unlock)(struct e1000_hw___2 *, u16); +}; + +struct e1000_mbx_stats { + u32 msgs_tx; + u32 msgs_rx; + u32 acks; + u32 reqs; + u32 rsts; +}; + +struct e1000_mbx_info { + struct e1000_mbx_operations ops; + struct e1000_mbx_stats stats; + u32 timeout; + u32 usec_delay; + u16 size; +}; + +struct e1000_hw___2 { + void *back; + u8 *hw_addr; + u8 *flash_address; + unsigned long io_base; + struct e1000_mac_info___2 mac; + struct e1000_fc_info___2 fc; + struct e1000_phy_info___2 phy; + struct e1000_nvm_info___2 nvm; + struct e1000_bus_info___2 bus; + struct e1000_mbx_info mbx; + struct e1000_host_mng_dhcp_cookie mng_cookie; + union { + struct e1000_dev_spec_82575 _82575; + } dev_spec; + u16 device_id; + u16 subsystem_vendor_id; + u16 subsystem_device_id; + u16 vendor_id; + u8 revision_id; +}; + +struct e1000_hw_stats___2 { + u64 crcerrs; + u64 algnerrc; + u64 symerrs; + u64 rxerrc; + u64 mpc; + u64 scc; + u64 ecol; + u64 mcc; + u64 latecol; + u64 colc; + u64 dc; + u64 tncrs; + u64 sec; + u64 cexterr; + u64 rlec; + u64 xonrxc; + u64 xontxc; + u64 xoffrxc; + u64 xofftxc; + u64 fcruc; + u64 prc64; + u64 prc127; + u64 prc255; + u64 prc511; + u64 prc1023; + u64 prc1522; + u64 gprc; + u64 bprc; + u64 mprc; + u64 gptc; + u64 gorc; + u64 gotc; + u64 rnbc; + u64 ruc; + u64 rfc; + u64 roc; + u64 rjc; + u64 mgprc; + u64 mgpdc; + u64 mgptc; + u64 tor; + u64 tot; + u64 tpr; + u64 tpt; + u64 ptc64; + u64 ptc127; + u64 ptc255; + u64 ptc511; + u64 ptc1023; + u64 ptc1522; + u64 mptc; + u64 bptc; + u64 tsctc; + u64 tsctfc; + u64 iac; + u64 icrxptc; + u64 icrxatc; + u64 ictxptc; + u64 ictxatc; + u64 ictxqec; + u64 ictxqmtc; + u64 icrxdmtc; + u64 icrxoc; + u64 cbtmpc; + u64 htdpmc; + u64 cbrdpc; + u64 cbrmpc; + u64 rpthc; + u64 hgptc; + u64 htcbdpc; + u64 hgorc; + u64 hgotc; + u64 lenerrs; + u64 scvpc; + u64 hrmpc; + u64 doosync; + u64 o2bgptc; + u64 o2bspc; + u64 b2ospc; + u64 b2ogprc; +}; + +struct igb_tx_queue_stats { + u64 packets; + u64 bytes; + u64 restart_queue; + u64 restart_queue2; +}; + +struct igb_rx_queue_stats { + u64 packets; + u64 bytes; + u64 drops; + u64 csum_err; + u64 alloc_failed; +}; + +struct igb_q_vector; + +struct igb_tx_buffer; + +struct igb_rx_buffer; + +struct igb_ring { + struct igb_q_vector *q_vector; + struct net_device *netdev; + struct bpf_prog *xdp_prog; + struct device *dev; + union { + struct igb_tx_buffer *tx_buffer_info; + struct igb_rx_buffer *rx_buffer_info; + }; + void *desc; + unsigned long flags; + void *tail; + dma_addr_t dma; + unsigned int size; + u16 count; + u8 queue_index; + u8 reg_idx; + bool launchtime_enable; + bool cbs_enable; + s32 idleslope; + s32 sendslope; + s32 hicredit; + s32 locredit; + u16 next_to_clean; + u16 next_to_use; + u16 next_to_alloc; + union { + struct { + struct igb_tx_queue_stats tx_stats; + struct u64_stats_sync tx_syncp; + struct u64_stats_sync tx_syncp2; + }; + struct { + struct sk_buff *skb; + struct igb_rx_queue_stats rx_stats; + struct u64_stats_sync rx_syncp; + }; + }; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; +}; + +struct e1000_info___2 { + s32 (*get_invariants)(struct e1000_hw___2 *); + struct e1000_mac_operations___2 *mac_ops; + const struct e1000_phy_operations___2 *phy_ops; + struct e1000_nvm_operations___2 *nvm_ops; +}; + +struct vf_mac_filter { + struct list_head l; + int vf; + bool free; + u8 vf_mac[6]; +}; + +struct vf_data_storage; + +struct hwmon_buff; + +struct igb_mac_addr; + +struct igb_adapter { + unsigned long active_vlans[64]; + struct net_device *netdev; + struct bpf_prog *xdp_prog; + unsigned long state; + unsigned int flags; + unsigned int num_q_vectors; + struct msix_entry msix_entries[10]; + u32 rx_itr_setting; + u32 tx_itr_setting; + u16 tx_itr; + u16 rx_itr; + u16 tx_work_limit; + u32 tx_timeout_count; + int num_tx_queues; + struct igb_ring *tx_ring[16]; + int num_rx_queues; + struct igb_ring *rx_ring[16]; + u32 max_frame_size; + u32 min_frame_size; + struct timer_list watchdog_timer; + struct timer_list phy_info_timer; + u16 mng_vlan_id; + u32 bd_number; + u32 wol; + u32 en_mng_pt; + u16 link_speed; + u16 link_duplex; + u8 *io_addr; + struct work_struct reset_task; + struct work_struct watchdog_task; + bool fc_autoneg; + u8 tx_timeout_factor; + struct timer_list blink_timer; + unsigned long led_status; + struct pci_dev *pdev; + spinlock_t stats64_lock; + struct rtnl_link_stats64 stats64; + struct e1000_hw___2 hw; + struct e1000_hw_stats___2 stats; + struct e1000_phy_info___2 phy_info; + u32 test_icr; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct igb_ring test_tx_ring; + struct igb_ring test_rx_ring; + int msg_enable; + struct igb_q_vector *q_vector[8]; + u32 eims_enable_mask; + u32 eims_other; + u16 tx_ring_count; + u16 rx_ring_count; + unsigned int vfs_allocated_count; + struct vf_data_storage *vf_data; + int vf_rate_link_speed; + u32 rss_queues; + u32 wvbr; + u32 *shadow_vfta; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_caps; + struct delayed_work ptp_overflow_work; + struct work_struct ptp_tx_work; + struct sk_buff *ptp_tx_skb; + struct hwtstamp_config tstamp_config; + unsigned long ptp_tx_start; + unsigned long last_rx_ptp_check; + unsigned long last_rx_timestamp; + unsigned int ptp_flags; + spinlock_t tmreg_lock; + struct cyclecounter cc; + struct timecounter tc; + u32 tx_hwtstamp_timeouts; + u32 tx_hwtstamp_skipped; + u32 rx_hwtstamp_cleared; + bool pps_sys_wrap_on; + struct ptp_pin_desc sdp_config[4]; + struct { + struct timespec64 start; + struct timespec64 period; + } perout[2]; + char fw_version[48]; + struct hwmon_buff *igb_hwmon_buff; + bool ets; + struct i2c_algo_bit_data i2c_algo; + struct i2c_adapter i2c_adap; + struct i2c_client *i2c_client; + u32 rss_indir_tbl_init; + u8 rss_indir_tbl[128]; + unsigned long link_check_timeout; + int copper_tries; + struct e1000_info___2 ei; + u16 eee_advert; + struct hlist_head nfc_filter_list; + struct hlist_head cls_flower_list; + unsigned int nfc_filter_count; + spinlock_t nfc_lock; + bool etype_bitmap[3]; + struct igb_mac_addr *mac_table; + struct vf_mac_filter vf_macs; + struct vf_mac_filter *vf_mac_list; + spinlock_t vfs_lock; + long: 64; +}; + +struct igb_ring_container { + struct igb_ring *ring; + unsigned int total_bytes; + unsigned int total_packets; + u16 work_limit; + u8 count; + u8 itr; +}; + +struct igb_q_vector { + struct igb_adapter *adapter; + int cpu; + u32 eims_value; + u16 itr_val; + u8 set_itr; + void *itr_register; + struct igb_ring_container rx; + struct igb_ring_container tx; + struct napi_struct napi; + struct callback_head rcu; + char name[25]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct igb_ring ring[0]; +}; + +union e1000_adv_tx_desc; + +struct igb_tx_buffer { + union e1000_adv_tx_desc *next_to_watch; + unsigned long time_stamp; + enum igb_tx_buf_type type; + union { + struct sk_buff *skb; + struct xdp_frame *xdpf; + }; + unsigned int bytecount; + u16 gso_segs; + __be16 protocol; + dma_addr_t dma; + __u32 len; + u32 tx_flags; +}; + +union e1000_adv_tx_desc { + struct { + __le64 buffer_addr; + __le32 cmd_type_len; + __le32 olinfo_status; + } read; + struct { + __le64 rsvd; + __le32 nxtseq_seed; + __le32 status; + } wb; +}; + +struct igb_rx_buffer { + dma_addr_t dma; + struct page *page; + __u32 page_offset; + __u16 pagecnt_bias; +}; + +struct vf_data_storage { + unsigned char vf_mac_addresses[6]; + u16 vf_mc_hashes[30]; + u16 num_vf_mc_hashes; + u32 flags; + unsigned long last_nack; + u16 pf_vlan; + u16 pf_qos; + u16 tx_rate; + bool spoofchk_enabled; + bool trusted; +}; + +struct hwmon_buff { + struct attribute_group group; + const struct attribute_group *groups[2]; + struct attribute *attrs[13]; + struct hwmon_attr hwmon_list[12]; + unsigned int n_hwmon; +}; + +struct igb_mac_addr { + u8 addr[6]; + u8 queue; + u8 state; +}; + +enum iwl_geo_per_chain_offset_operation { + IWL_PER_CHAIN_OFFSET_SET_TABLES = 0, + IWL_PER_CHAIN_OFFSET_GET_CURRENT_TABLE = 1, +}; + +enum iwl_error_recovery_flags { + ERROR_RECOVERY_UPDATE_DB = 1, + ERROR_RECOVERY_END_OF_RECOVERY = 2, +}; + +enum iwl_time_sync_protocol_type { + IWL_TIME_SYNC_PROTOCOL_TM = 1, + IWL_TIME_SYNC_PROTOCOL_FTM = 2, +}; + +enum iwl_extended_cfg_flags { + IWL_INIT_DEBUG_CFG = 0, + IWL_INIT_NVM = 1, + IWL_INIT_PHY = 2, +}; + +enum iwl_regulatory_and_nvm_subcmd_ids { + NVM_ACCESS_COMPLETE = 0, + LARI_CONFIG_CHANGE = 1, + NVM_GET_INFO = 2, + TAS_CONFIG = 3, + SAR_OFFSET_MAPPING_TABLE_CMD = 4, + UATS_TABLE_CMD = 5, + PNVM_INIT_COMPLETE_NTFY = 254, +}; + +enum iwl_mvm_dqa_txq { + IWL_MVM_DQA_CMD_QUEUE = 0, + IWL_MVM_DQA_AUX_QUEUE = 1, + IWL_MVM_DQA_P2P_DEVICE_QUEUE = 2, + IWL_MVM_DQA_INJECT_MONITOR_QUEUE = 2, + IWL_MVM_DQA_GCAST_QUEUE = 3, + IWL_MVM_DQA_BSS_CLIENT_QUEUE = 4, + IWL_MVM_DQA_MIN_MGMT_QUEUE = 5, + IWL_MVM_DQA_MAX_MGMT_QUEUE = 8, + IWL_MVM_DQA_AP_PROBE_RESP_QUEUE = 9, + IWL_MVM_DQA_MIN_DATA_QUEUE = 10, + IWL_MVM_DQA_MAX_DATA_QUEUE = 30, +}; + +enum iwl_fw_phy_cfg { + FW_PHY_CFG_RADIO_TYPE_POS = 0, + FW_PHY_CFG_RADIO_TYPE = 3, + FW_PHY_CFG_RADIO_STEP_POS = 2, + FW_PHY_CFG_RADIO_STEP = 12, + FW_PHY_CFG_RADIO_DASH_POS = 4, + FW_PHY_CFG_RADIO_DASH = 48, + FW_PHY_CFG_TX_CHAIN_POS = 16, + FW_PHY_CFG_TX_CHAIN = 983040, + FW_PHY_CFG_RX_CHAIN_POS = 20, + FW_PHY_CFG_RX_CHAIN = 15728640, + FW_PHY_CFG_CHAIN_SAD_POS = 23, + FW_PHY_CFG_CHAIN_SAD_ENABLED = 8388608, + FW_PHY_CFG_CHAIN_SAD_ANT_A = 16777216, + FW_PHY_CFG_CHAIN_SAD_ANT_B = 33554432, + FW_PHY_CFG_SHARED_CLK = 2147483648, +}; + +enum iwl_dsm_values_rfi { + DSM_VALUE_RFI_DLVR_DISABLE = 1, + DSM_VALUE_RFI_DDR_DISABLE = 2, +}; + +struct iwl_tx_ant_cfg_cmd { + __le32 valid; +}; + +union iwl_ppag_table_cmd { + struct { + __le32 flags; + s8 gain[10]; + s8 reserved[2]; + } v1; + struct { + __le32 flags; + s8 gain[22]; + s8 reserved[2]; + } v2; +}; + +struct iwl_rfi_lut_entry { + __le16 freq; + u8 channels[15]; + u8 bands[15]; +}; + +struct iwl_per_chain_offset { + __le16 max_tx_power; + u8 chain_a; + u8 chain_b; +}; + +struct iwl_lmac_debug_addrs { + __le32 error_event_table_ptr; + __le32 log_event_table_ptr; + __le32 cpu_register_ptr; + __le32 dbgm_config_ptr; + __le32 alive_counter_ptr; + __le32 scd_base_ptr; + __le32 st_fwrd_addr; + __le32 st_fwrd_size; +}; + +struct iwl_lmac_alive { + __le32 ucode_major; + __le32 ucode_minor; + u8 ver_subtype; + u8 ver_type; + u8 mac; + u8 opt; + __le32 timestamp; + struct iwl_lmac_debug_addrs dbg_ptrs; +}; + +struct iwl_umac_debug_addrs { + __le32 error_info_addr; + __le32 dbg_print_buff_addr; +}; + +struct iwl_umac_alive { + __le32 umac_major; + __le32 umac_minor; + struct iwl_umac_debug_addrs dbg_ptrs; +}; + +struct iwl_mfu_assert_dump_notif { + __le32 assert_id; + __le32 curr_reset_num; + __le16 index_num; + __le16 parts_num; + __le32 data_size; + __le32 data[0]; +}; + +struct iwl_nvm_access_complete_cmd { + __le32 reserved; +}; + +struct iwl_init_extended_cfg_cmd { + __le32 init_flags; +}; + +struct iwl_mvm_alive_data { + bool valid; + u32 scd_base_addr; +}; + +struct iwl_calib_ctrl { + __le32 flow_trigger; + __le32 event_trigger; +}; + +struct iwl_phy_cfg_cmd_v3 { + __le32 phy_cfg; + struct iwl_calib_ctrl calib_control; + struct iwl_phy_specific_cfg phy_specific_cfg; +}; + +struct iwl_dev_tx_power_cmd_v3 { + __le16 per_chain[10]; +}; + +struct iwl_dev_tx_power_cmd_v4 { + __le16 per_chain[10]; + u8 enable_ack_reduction; + u8 reserved[3]; +}; + +struct iwl_dev_tx_power_cmd_v5 { + __le16 per_chain[10]; + u8 enable_ack_reduction; + u8 per_chain_restriction_changed; + u8 reserved[2]; + __le32 timer_period; +}; + +struct iwl_dev_tx_power_cmd_v6 { + __le16 per_chain[44]; + u8 enable_ack_reduction; + u8 per_chain_restriction_changed; + u8 reserved[2]; + __le32 timer_period; +}; + +struct iwl_dev_tx_power_cmd_v7 { + __le16 per_chain[44]; + u8 enable_ack_reduction; + u8 per_chain_restriction_changed; + u8 reserved[2]; + __le32 timer_period; + __le32 flags; +}; + +struct iwl_dev_tx_power_common { + __le32 set_mode; + __le32 mac_context_id; + __le16 pwr_restriction; + __le16 dev_24; + __le16 dev_52_low; + __le16 dev_52_high; +}; + +struct iwl_dev_tx_power_cmd { + struct iwl_dev_tx_power_common common; + union { + struct iwl_dev_tx_power_cmd_v3 v3; + struct iwl_dev_tx_power_cmd_v4 v4; + struct iwl_dev_tx_power_cmd_v5 v5; + struct iwl_dev_tx_power_cmd_v6 v6; + struct iwl_dev_tx_power_cmd_v7 v7; + }; +}; + +struct iwl_geo_tx_power_profiles_cmd_v1 { + __le32 ops; + struct iwl_per_chain_offset table[6]; +}; + +struct iwl_geo_tx_power_profiles_cmd_v2 { + __le32 ops; + struct iwl_per_chain_offset table[6]; + __le32 table_revision; +}; + +struct iwl_geo_tx_power_profiles_cmd_v3 { + __le32 ops; + struct iwl_per_chain_offset table[9]; + __le32 table_revision; +}; + +struct iwl_geo_tx_power_profiles_cmd_v4 { + __le32 ops; + struct iwl_per_chain_offset table[16]; + __le32 table_revision; +}; + +struct iwl_geo_tx_power_profiles_cmd_v5 { + __le32 ops; + struct iwl_per_chain_offset table[24]; + __le32 table_revision; +}; + +union iwl_geo_tx_power_profiles_cmd { + struct iwl_geo_tx_power_profiles_cmd_v1 v1; + struct iwl_geo_tx_power_profiles_cmd_v2 v2; + struct iwl_geo_tx_power_profiles_cmd_v3 v3; + struct iwl_geo_tx_power_profiles_cmd_v4 v4; + struct iwl_geo_tx_power_profiles_cmd_v5 v5; +}; + +struct iwl_geo_tx_power_profiles_resp { + __le32 profile_idx; +}; + +struct iwl_fw_error_recovery_cmd { + __le32 flags; + __le32 buf_size; +}; + +struct iwl_lari_config_change_cmd_v7 { + __le32 config_bitmap; + __le32 oem_uhb_allow_bitmap; + __le32 oem_11ax_allow_bitmap; + __le32 oem_unii4_allow_bitmap; + __le32 chan_state_active_bitmap; + __le32 force_disable_channels_bitmap; + __le32 edt_bitmap; +}; + +struct iwl_rss_config_cmd { + __le32 flags; + u8 hash_mask; + u8 reserved[3]; + __le32 secret_key[10]; + u8 indirection_table[128]; +}; + +struct iwl_dqa_enable_cmd { + __le32 cmd_queue; +}; + +struct iwl_ltr_config_cmd { + __le32 flags; + __le32 static_long; + __le32 static_short; + __le32 ltr_cfg_values[4]; + __le32 ltr_short_idle_timeout; +}; + +struct iwl_tas_config_cmd_v3 { + __le16 override_tas_iec; + __le16 enable_tas_iec; +}; + +struct iwl_tas_config_cmd_v4 { + u8 override_tas_iec; + u8 enable_tas_iec; + u8 usa_tas_uhb_allowed; + u8 reserved; +}; + +struct iwl_tas_config_cmd_common { + __le32 block_list_size; + __le32 block_list_array[16]; +}; + +struct iwl_tas_config_cmd { + struct iwl_tas_config_cmd_common common; + union { + struct iwl_tas_config_cmd_v3 v3; + struct iwl_tas_config_cmd_v4 v4; + }; +}; + +struct iwl_mfuart_load_notif { + __le32 installed_ver; + __le32 external_ver; + __le32 status; + __le32 duration; + __le32 image_size; +}; + +struct iwl_imr_alive_info { + __le64 base_addr; + __le32 size; + __le32 enabled; +}; + +struct iwl_alive_ntf_v6 { + __le16 status; + __le16 flags; + struct iwl_lmac_alive lmac_data[2]; + struct iwl_umac_alive umac_data; + struct iwl_sku_id sku_id; + struct iwl_imr_alive_info imr; +}; + +struct iwl_alive_ntf_v5 { + __le16 status; + __le16 flags; + struct iwl_lmac_alive lmac_data[2]; + struct iwl_umac_alive umac_data; + struct iwl_sku_id sku_id; +}; + +struct iwl_alive_ntf_v4 { + __le16 status; + __le16 flags; + struct iwl_lmac_alive lmac_data[2]; + struct iwl_umac_alive umac_data; +}; + +struct iwl_alive_ntf_v3 { + __le16 status; + __le16 flags; + struct iwl_lmac_alive lmac_data; + struct iwl_umac_alive umac_data; +}; + +struct us_data; + +typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); + +typedef int (*trans_reset)(struct us_data *); + +typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); + +struct usb_sg_request { + int status; + size_t bytes; + spinlock_t lock; + struct usb_device *dev; + int pipe; + int entries; + struct urb **urbs; + int count; + struct completion complete; +}; + +typedef void (*extra_data_destructor)(void *); + +typedef void (*pm_hook)(struct us_data *, int); + +struct us_unusual_dev; + +struct usb_ctrlrequest; + +struct us_data { + struct mutex dev_mutex; + struct usb_device *pusb_dev; + struct usb_interface *pusb_intf; + const struct us_unusual_dev *unusual_dev; + u64 fflags; + unsigned long dflags; + unsigned int send_bulk_pipe; + unsigned int recv_bulk_pipe; + unsigned int send_ctrl_pipe; + unsigned int recv_ctrl_pipe; + unsigned int recv_intr_pipe; + char *transport_name; + char *protocol_name; + __le32 bcs_signature; + u8 subclass; + u8 protocol; + u8 max_lun; + u8 ifnum; + u8 ep_bInterval; + trans_cmnd transport; + trans_reset transport_reset; + proto_cmnd proto_handler; + struct scsi_cmnd *srb; + unsigned int tag; + char scsi_name[32]; + struct urb *current_urb; + struct usb_ctrlrequest *cr; + struct usb_sg_request current_sg; + unsigned char *iobuf; + dma_addr_t iobuf_dma; + struct task_struct *ctl_thread; + struct completion cmnd_ready; + struct completion notify; + wait_queue_head_t delay_wait; + struct delayed_work scan_dwork; + void *extra; + extra_data_destructor extra_destructor; + pm_hook suspend_resume_hook; + int use_last_sector_hacks; + int last_sector_retries; +}; + +struct us_unusual_dev { + const char *vendorName; + const char *productName; + __u8 useProtocol; + __u8 useTransport; + int (*initFunction)(struct us_data *); +}; + +struct usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; +}; + +enum r5c_journal_mode { + R5C_JOURNAL_MODE_WRITE_THROUGH = 0, + R5C_JOURNAL_MODE_WRITE_BACK = 1, +}; + +enum r5l_payload_type { + R5LOG_PAYLOAD_DATA = 0, + R5LOG_PAYLOAD_PARITY = 1, + R5LOG_PAYLOAD_FLUSH = 2, +}; + +enum r5l_io_unit_state { + IO_UNIT_RUNNING = 0, + IO_UNIT_IO_START = 1, + IO_UNIT_IO_END = 2, + IO_UNIT_STRIPE_END = 3, +}; + +struct r5l_log { + struct md_rdev *rdev; + u32 uuid_checksum; + sector_t device_size; + sector_t max_free_space; + sector_t last_checkpoint; + u64 last_cp_seq; + sector_t log_start; + u64 seq; + sector_t next_checkpoint; + struct mutex io_mutex; + struct r5l_io_unit *current_io; + spinlock_t io_list_lock; + struct list_head running_ios; + struct list_head io_end_ios; + struct list_head flushing_ios; + struct list_head finished_ios; + struct bio flush_bio; + struct list_head no_mem_stripes; + struct kmem_cache *io_kc; + mempool_t io_pool; + struct bio_set bs; + mempool_t meta_pool; + struct md_thread __attribute__((btf_type_tag("rcu"))) *reclaim_thread; + unsigned long reclaim_target; + wait_queue_head_t iounit_wait; + struct list_head no_space_stripes; + spinlock_t no_space_stripes_lock; + bool need_cache_flush; + enum r5c_journal_mode r5c_journal_mode; + struct list_head stripe_in_journal_list; + spinlock_t stripe_in_journal_lock; + atomic_t stripe_in_journal_count; + struct work_struct deferred_io_work; + struct work_struct disable_writeback_work; + spinlock_t tree_lock; + struct xarray big_stripe_tree; +}; + +struct r5l_io_unit { + struct r5l_log *log; + struct page *meta_page; + int meta_offset; + struct bio *current_bio; + atomic_t pending_stripe; + u64 seq; + sector_t log_start; + sector_t log_end; + struct list_head log_sibling; + struct list_head stripe_list; + int state; + bool need_split_bio; + struct bio *split_bio; + unsigned int has_flush: 1; + unsigned int has_fua: 1; + unsigned int has_null_flush: 1; + unsigned int has_flush_payload: 1; + unsigned int io_deferred: 1; + struct bio_list flush_barriers; +}; + +struct r5l_payload_header { + __le16 type; + __le16 flags; +}; + +struct r5l_payload_data_parity { + struct r5l_payload_header header; + __le32 size; + __le64 location; + __le32 checksum[0]; +}; + +struct r5l_meta_block { + __le32 magic; + __le32 checksum; + __u8 version; + __u8 __zero_pading_1; + __le16 __zero_pading_2; + __le32 meta_size; + __le64 seq; + __le64 position; + struct r5l_payload_header payloads[0]; +}; + +struct r5l_payload_flush { + struct r5l_payload_header header; + __le32 size; + __le64 flush_stripes[0]; +}; + +struct r5l_recovery_ctx { + struct page *meta_page; + sector_t meta_total_blocks; + sector_t pos; + u64 seq; + int data_parity_stripes; + int data_only_stripes; + struct list_head cached_list; + struct page *ra_pool[256]; + struct bio_vec ra_bvec[256]; + sector_t pool_offset; + int total_pages; + int valid_pages; +}; + +enum { + BPF_F_INGRESS = 1, +}; + +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, +}; + +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; +}; + +struct strp_msg { + int full_len; + int offset; +}; + +struct nft_set_ext_type { + u8 len; + u8 align; +}; + +enum nfnl_abort_action { + NFNL_ABORT_NONE = 0, + NFNL_ABORT_AUTOLOAD = 1, + NFNL_ABORT_VALIDATE = 2, +}; + +struct nfnl_callback; + +struct nfnetlink_subsystem { + const char *name; + __u8 subsys_id; + __u8 cb_count; + const struct nfnl_callback *cb; + struct module *owner; + int (*commit)(struct net *, struct sk_buff *); + int (*abort)(struct net *, struct sk_buff *, enum nfnl_abort_action); + bool (*valid_genid)(struct net *, u32); +}; + +enum nfnl_callback_type { + NFNL_CB_UNSPEC = 0, + NFNL_CB_MUTEX = 1, + NFNL_CB_RCU = 2, + NFNL_CB_BATCH = 3, +}; + +struct nfnl_info; + +struct nfnl_callback { + int (*call)(struct sk_buff *, const struct nfnl_info *, const struct nlattr * const *); + const struct nla_policy *policy; + enum nfnl_callback_type type; + __u16 attr_count; +}; + +struct nfgenmsg; + +struct nfnl_info { + struct net *net; + struct sock *sk; + const struct nlmsghdr *nlh; + const struct nfgenmsg *nfmsg; + struct netlink_ext_ack *extack; +}; + +struct nfgenmsg { + __u8 nfgen_family; + __u8 version; + __be16 res_id; +}; + +struct nft_set_type { + const struct nft_set_ops ops; + u32 features; +}; + +enum nft_expr_attributes { + NFTA_EXPR_UNSPEC = 0, + NFTA_EXPR_NAME = 1, + NFTA_EXPR_DATA = 2, + __NFTA_EXPR_MAX = 3, +}; + +enum nft_set_elem_flags { + NFT_SET_ELEM_INTERVAL_END = 1, + NFT_SET_ELEM_CATCHALL = 2, +}; + +enum nf_tables_msg_types { + NFT_MSG_NEWTABLE = 0, + NFT_MSG_GETTABLE = 1, + NFT_MSG_DELTABLE = 2, + NFT_MSG_NEWCHAIN = 3, + NFT_MSG_GETCHAIN = 4, + NFT_MSG_DELCHAIN = 5, + NFT_MSG_NEWRULE = 6, + NFT_MSG_GETRULE = 7, + NFT_MSG_DELRULE = 8, + NFT_MSG_NEWSET = 9, + NFT_MSG_GETSET = 10, + NFT_MSG_DELSET = 11, + NFT_MSG_NEWSETELEM = 12, + NFT_MSG_GETSETELEM = 13, + NFT_MSG_DELSETELEM = 14, + NFT_MSG_NEWGEN = 15, + NFT_MSG_GETGEN = 16, + NFT_MSG_TRACE = 17, + NFT_MSG_NEWOBJ = 18, + NFT_MSG_GETOBJ = 19, + NFT_MSG_DELOBJ = 20, + NFT_MSG_GETOBJ_RESET = 21, + NFT_MSG_NEWFLOWTABLE = 22, + NFT_MSG_GETFLOWTABLE = 23, + NFT_MSG_DELFLOWTABLE = 24, + NFT_MSG_GETRULE_RESET = 25, + NFT_MSG_DESTROYTABLE = 26, + NFT_MSG_DESTROYCHAIN = 27, + NFT_MSG_DESTROYRULE = 28, + NFT_MSG_DESTROYSET = 29, + NFT_MSG_DESTROYSETELEM = 30, + NFT_MSG_DESTROYOBJ = 31, + NFT_MSG_DESTROYFLOWTABLE = 32, + NFT_MSG_GETSETELEM_RESET = 33, + NFT_MSG_MAX = 34, +}; + +enum nft_verdict_attributes { + NFTA_VERDICT_UNSPEC = 0, + NFTA_VERDICT_CODE = 1, + NFTA_VERDICT_CHAIN = 2, + NFTA_VERDICT_CHAIN_ID = 3, + __NFTA_VERDICT_MAX = 4, +}; + +enum nft_data_attributes { + NFTA_DATA_UNSPEC = 0, + NFTA_DATA_VALUE = 1, + NFTA_DATA_VERDICT = 2, + __NFTA_DATA_MAX = 3, +}; + +enum nft_chain_flags { + NFT_CHAIN_BASE = 1, + NFT_CHAIN_HW_OFFLOAD = 2, + NFT_CHAIN_BINDING = 4, +}; + +enum nfnetlink_groups { + NFNLGRP_NONE = 0, + NFNLGRP_CONNTRACK_NEW = 1, + NFNLGRP_CONNTRACK_UPDATE = 2, + NFNLGRP_CONNTRACK_DESTROY = 3, + NFNLGRP_CONNTRACK_EXP_NEW = 4, + NFNLGRP_CONNTRACK_EXP_UPDATE = 5, + NFNLGRP_CONNTRACK_EXP_DESTROY = 6, + NFNLGRP_NFTABLES = 7, + NFNLGRP_ACCT_QUOTA = 8, + NFNLGRP_NFTRACE = 9, + __NFNLGRP_MAX = 10, +}; + +enum nft_set_attributes { + NFTA_SET_UNSPEC = 0, + NFTA_SET_TABLE = 1, + NFTA_SET_NAME = 2, + NFTA_SET_FLAGS = 3, + NFTA_SET_KEY_TYPE = 4, + NFTA_SET_KEY_LEN = 5, + NFTA_SET_DATA_TYPE = 6, + NFTA_SET_DATA_LEN = 7, + NFTA_SET_POLICY = 8, + NFTA_SET_DESC = 9, + NFTA_SET_ID = 10, + NFTA_SET_TIMEOUT = 11, + NFTA_SET_GC_INTERVAL = 12, + NFTA_SET_USERDATA = 13, + NFTA_SET_PAD = 14, + NFTA_SET_OBJ_TYPE = 15, + NFTA_SET_HANDLE = 16, + NFTA_SET_EXPR = 17, + NFTA_SET_EXPRESSIONS = 18, + __NFTA_SET_MAX = 19, +}; + +enum nft_set_policies { + NFT_SET_POL_PERFORMANCE = 0, + NFT_SET_POL_MEMORY = 1, +}; + +enum nft_set_desc_attributes { + NFTA_SET_DESC_UNSPEC = 0, + NFTA_SET_DESC_SIZE = 1, + NFTA_SET_DESC_CONCAT = 2, + __NFTA_SET_DESC_MAX = 3, +}; + +enum nft_list_attributes { + NFTA_LIST_UNSPEC = 0, + NFTA_LIST_ELEM = 1, + __NFTA_LIST_MAX = 2, +}; + +enum nft_set_field_attributes { + NFTA_SET_FIELD_UNSPEC = 0, + NFTA_SET_FIELD_LEN = 1, + __NFTA_SET_FIELD_MAX = 2, +}; + +enum nft_object_attributes { + NFTA_OBJ_UNSPEC = 0, + NFTA_OBJ_TABLE = 1, + NFTA_OBJ_NAME = 2, + NFTA_OBJ_TYPE = 3, + NFTA_OBJ_DATA = 4, + NFTA_OBJ_USE = 5, + NFTA_OBJ_HANDLE = 6, + NFTA_OBJ_PAD = 7, + NFTA_OBJ_USERDATA = 8, + __NFTA_OBJ_MAX = 9, +}; + +enum nft_data_desc_flags { + NFT_DATA_DESC_SETELEM = 1, +}; + +enum nft_table_flags { + NFT_TABLE_F_DORMANT = 1, + NFT_TABLE_F_OWNER = 2, + NFT_TABLE_F_PERSIST = 4, +}; + +enum nft_table_attributes { + NFTA_TABLE_UNSPEC = 0, + NFTA_TABLE_NAME = 1, + NFTA_TABLE_FLAGS = 2, + NFTA_TABLE_USE = 3, + NFTA_TABLE_HANDLE = 4, + NFTA_TABLE_PAD = 5, + NFTA_TABLE_USERDATA = 6, + NFTA_TABLE_OWNER = 7, + __NFTA_TABLE_MAX = 8, +}; + +enum nft_rule_attributes { + NFTA_RULE_UNSPEC = 0, + NFTA_RULE_TABLE = 1, + NFTA_RULE_CHAIN = 2, + NFTA_RULE_HANDLE = 3, + NFTA_RULE_EXPRESSIONS = 4, + NFTA_RULE_COMPAT = 5, + NFTA_RULE_POSITION = 6, + NFTA_RULE_USERDATA = 7, + NFTA_RULE_PAD = 8, + NFTA_RULE_ID = 9, + NFTA_RULE_POSITION_ID = 10, + NFTA_RULE_CHAIN_ID = 11, + __NFTA_RULE_MAX = 12, +}; + +enum nft_chain_attributes { + NFTA_CHAIN_UNSPEC = 0, + NFTA_CHAIN_TABLE = 1, + NFTA_CHAIN_HANDLE = 2, + NFTA_CHAIN_NAME = 3, + NFTA_CHAIN_HOOK = 4, + NFTA_CHAIN_POLICY = 5, + NFTA_CHAIN_USE = 6, + NFTA_CHAIN_TYPE = 7, + NFTA_CHAIN_COUNTERS = 8, + NFTA_CHAIN_PAD = 9, + NFTA_CHAIN_FLAGS = 10, + NFTA_CHAIN_ID = 11, + NFTA_CHAIN_USERDATA = 12, + __NFTA_CHAIN_MAX = 13, +}; + +enum nft_hook_attributes { + NFTA_HOOK_UNSPEC = 0, + NFTA_HOOK_HOOKNUM = 1, + NFTA_HOOK_PRIORITY = 2, + NFTA_HOOK_DEV = 3, + NFTA_HOOK_DEVS = 4, + __NFTA_HOOK_MAX = 5, +}; + +enum nf_ip_hook_priorities { + NF_IP_PRI_FIRST = -2147483648, + NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP_PRI_CONNTRACK_DEFRAG = -400, + NF_IP_PRI_RAW = -300, + NF_IP_PRI_SELINUX_FIRST = -225, + NF_IP_PRI_CONNTRACK = -200, + NF_IP_PRI_MANGLE = -150, + NF_IP_PRI_NAT_DST = -100, + NF_IP_PRI_FILTER = 0, + NF_IP_PRI_SECURITY = 50, + NF_IP_PRI_NAT_SRC = 100, + NF_IP_PRI_SELINUX_LAST = 225, + NF_IP_PRI_CONNTRACK_HELPER = 300, + NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, + NF_IP_PRI_LAST = 2147483647, +}; + +enum nft_devices_attributes { + NFTA_DEVICE_UNSPEC = 0, + NFTA_DEVICE_NAME = 1, + __NFTA_DEVICE_MAX = 2, +}; + +enum { + NFT_VALIDATE_SKIP = 0, + NFT_VALIDATE_NEED = 1, + NFT_VALIDATE_DO = 2, +}; + +enum nft_set_elem_list_attributes { + NFTA_SET_ELEM_LIST_UNSPEC = 0, + NFTA_SET_ELEM_LIST_TABLE = 1, + NFTA_SET_ELEM_LIST_SET = 2, + NFTA_SET_ELEM_LIST_ELEMENTS = 3, + NFTA_SET_ELEM_LIST_SET_ID = 4, + __NFTA_SET_ELEM_LIST_MAX = 5, +}; + +enum nft_set_elem_attributes { + NFTA_SET_ELEM_UNSPEC = 0, + NFTA_SET_ELEM_KEY = 1, + NFTA_SET_ELEM_DATA = 2, + NFTA_SET_ELEM_FLAGS = 3, + NFTA_SET_ELEM_TIMEOUT = 4, + NFTA_SET_ELEM_EXPIRATION = 5, + NFTA_SET_ELEM_USERDATA = 6, + NFTA_SET_ELEM_EXPR = 7, + NFTA_SET_ELEM_PAD = 8, + NFTA_SET_ELEM_OBJREF = 9, + NFTA_SET_ELEM_KEY_END = 10, + NFTA_SET_ELEM_EXPRESSIONS = 11, + __NFTA_SET_ELEM_MAX = 12, +}; + +enum nft_gen_attributes { + NFTA_GEN_UNSPEC = 0, + NFTA_GEN_ID = 1, + NFTA_GEN_PROC_PID = 2, + NFTA_GEN_PROC_NAME = 3, + __NFTA_GEN_MAX = 4, +}; + +enum nft_flowtable_attributes { + NFTA_FLOWTABLE_UNSPEC = 0, + NFTA_FLOWTABLE_TABLE = 1, + NFTA_FLOWTABLE_NAME = 2, + NFTA_FLOWTABLE_HOOK = 3, + NFTA_FLOWTABLE_USE = 4, + NFTA_FLOWTABLE_HANDLE = 5, + NFTA_FLOWTABLE_PAD = 6, + NFTA_FLOWTABLE_FLAGS = 7, + __NFTA_FLOWTABLE_MAX = 8, +}; + +enum nft_flowtable_flags { + NFT_FLOWTABLE_HW_OFFLOAD = 1, + NFT_FLOWTABLE_COUNTER = 2, + NFT_FLOWTABLE_MASK = 3, +}; + +enum nft_flowtable_hook_attributes { + NFTA_FLOWTABLE_HOOK_UNSPEC = 0, + NFTA_FLOWTABLE_HOOK_NUM = 1, + NFTA_FLOWTABLE_HOOK_PRIORITY = 2, + NFTA_FLOWTABLE_HOOK_DEVS = 3, + __NFTA_FLOWTABLE_HOOK_MAX = 4, +}; + +struct nft_module_request { + struct list_head list; + char module[56]; + bool done; +}; + +struct nft_hook { + struct list_head list; + struct nf_hook_ops ops; + struct callback_head rcu; +}; + +struct nft_stats { + u64 bytes; + u64 pkts; + struct u64_stats_sync syncp; +}; + +struct nft_rule { + struct list_head list; + u64 handle: 42; + u64 genmask: 2; + u64 dlen: 12; + u64 udata: 1; + unsigned char data[0]; +}; + +struct nft_set_elem_catchall { + struct list_head list; + struct callback_head rcu; + struct nft_elem_priv *elem; +}; + +struct nft_set_binding { + struct list_head list; + const struct nft_chain *chain; + u32 flags; +}; + +struct nft_flowtable { + struct list_head list; + struct nft_table *table; + char *name; + int hooknum; + int ops_len; + u32 genmask: 2; + u32 use; + u64 handle; + long: 64; + struct list_head hook_list; + struct nf_flowtable data; + long: 64; + long: 64; + long: 64; +}; + +struct nft_trans { + struct list_head list; + struct list_head binding_list; + int msg_type; + bool put_net; + struct nft_ctx ctx; + char data[0]; +}; + +struct nft_base_chain; + +struct nft_trans_chain { + struct nft_chain *chain; + bool update; + char *name; + struct nft_stats __attribute__((btf_type_tag("percpu"))) *stats; + u8 policy; + bool bound; + u32 chain_id; + struct nft_base_chain *basechain; + struct list_head hook_list; +}; + +struct nft_base_chain { + struct nf_hook_ops ops; + struct list_head hook_list; + const struct nft_chain_type *type; + u8 policy; + u8 flags; + struct nft_stats __attribute__((btf_type_tag("percpu"))) *stats; + struct nft_chain chain; + struct flow_block flow_block; +}; + +struct nft_trans_rule { + struct nft_rule *rule; + struct nft_flow_rule *flow; + u32 rule_id; + bool bound; +}; + +struct nft_trans_set { + struct nft_set *set; + u32 set_id; + u32 gc_int; + u64 timeout; + bool update; + bool bound; + u32 size; +}; + +struct nft_trans_elem { + struct nft_set *set; + struct nft_elem_priv *elem_priv; + bool bound; +}; + +struct nftnl_skb_parms { + bool report; +}; + +struct nft_trans_obj { + struct nft_object *obj; + struct nft_object *newobj; + bool update; +}; + +struct nft_trans_flowtable { + struct nft_flowtable *flowtable; + bool update; + struct list_head hook_list; + u32 flags; +}; + +struct nft_trans_gc { + struct list_head list; + struct net *net; + struct nft_set *set; + u32 seq; + u16 count; + struct nft_elem_priv *priv[256]; + struct callback_head rcu; +}; + +struct nft_trans_table { + bool update; +}; + +struct nft_rule_dp { + u64 is_last: 1; + u64 dlen: 12; + u64 handle: 42; + long: 0; + unsigned char data[0]; +}; + +struct nft_rule_dp_last { + struct nft_rule_dp end; + struct callback_head h; + struct nft_rule_blob *blob; + const struct nft_chain *chain; +}; + +struct nft_set_dump_args { + const struct netlink_callback *cb; + struct nft_set_iter iter; + struct sk_buff *skb; + bool reset; +}; + +struct nft_audit_data { + struct nft_table *table; + int entries; + int op; + struct list_head list; +}; + +struct nftables_pernet { + struct list_head tables; + struct list_head commit_list; + struct list_head binding_list; + struct list_head module_list; + struct list_head notify_list; + struct mutex commit_mutex; + u64 table_handle; + u64 tstamp; + unsigned int base_seq; + unsigned int gc_seq; + u8 validate_state; +}; + +struct nft_set_elem_expr { + u8 size; + long: 0; + unsigned char data[0]; +}; + +struct nft_expr_info { + const struct nft_expr_ops *ops; + const struct nlattr *attr; + struct nlattr *tb[17]; +}; + +struct nft_set_ext_tmpl { + u16 len; + u8 offset[9]; + u8 ext_len[9]; +}; + +struct nft_chain_hook { + u32 num; + s32 priority; + const struct nft_chain_type *type; + struct list_head list; +}; + +struct nft_userdata { + u8 len; + unsigned char data[0]; +}; + +struct nft_flowtable_hook { + u32 num; + int priority; + struct list_head list; +}; + +struct nft_rule_dump_ctx { + unsigned int s_idx; + char *table; + char *chain; + bool reset; +}; + +struct nft_immediate_expr { + struct nft_data data; + u8 dreg; + u8 dlen; +}; + +struct nft_set_dump_ctx { + const struct nft_set *set; + struct nft_ctx ctx; + bool reset; +}; + +struct nft_obj_dump_ctx { + unsigned int s_idx; + char *table; + u32 type; + bool reset; +}; + +struct nft_flowtable_filter { + char *table; +}; + +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, +}; + +enum intel_excl_state_type { + INTEL_EXCL_UNUSED = 0, + INTEL_EXCL_SHARED = 1, + INTEL_EXCL_EXCLUSIVE = 2, +}; + +enum { + PERF_X86_EVENT_PEBS_LDLAT = 1, + PERF_X86_EVENT_PEBS_ST = 2, + PERF_X86_EVENT_PEBS_ST_HSW = 4, + PERF_X86_EVENT_PEBS_LD_HSW = 8, + PERF_X86_EVENT_PEBS_NA_HSW = 16, + PERF_X86_EVENT_EXCL = 32, + PERF_X86_EVENT_DYNAMIC = 64, + PERF_X86_EVENT_EXCL_ACCT = 256, + PERF_X86_EVENT_AUTO_RELOAD = 512, + PERF_X86_EVENT_LARGE_PEBS = 1024, + PERF_X86_EVENT_PEBS_VIA_PT = 2048, + PERF_X86_EVENT_PAIR = 4096, + PERF_X86_EVENT_LBR_SELECT = 8192, + PERF_X86_EVENT_TOPDOWN = 16384, + PERF_X86_EVENT_PEBS_STLAT = 32768, + PERF_X86_EVENT_AMD_BRS = 65536, + PERF_X86_EVENT_PEBS_LAT_HYBRID = 131072, + PERF_X86_EVENT_NEEDS_BRANCH_STACK = 262144, + PERF_X86_EVENT_BRANCH_COUNTERS = 524288, +}; + +enum { + LBR_FORMAT_32 = 0, + LBR_FORMAT_LIP = 1, + LBR_FORMAT_EIP = 2, + LBR_FORMAT_EIP_FLAGS = 3, + LBR_FORMAT_EIP_FLAGS2 = 4, + LBR_FORMAT_INFO = 5, + LBR_FORMAT_TIME = 6, + LBR_FORMAT_INFO2 = 7, + LBR_FORMAT_MAX_KNOWN = 7, +}; + +enum perf_branch_sample_type_shift { + PERF_SAMPLE_BRANCH_USER_SHIFT = 0, + PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1, + PERF_SAMPLE_BRANCH_HV_SHIFT = 2, + PERF_SAMPLE_BRANCH_ANY_SHIFT = 3, + PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4, + PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5, + PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6, + PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7, + PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8, + PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9, + PERF_SAMPLE_BRANCH_COND_SHIFT = 10, + PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11, + PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12, + PERF_SAMPLE_BRANCH_CALL_SHIFT = 13, + PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, + PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, + PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18, + PERF_SAMPLE_BRANCH_COUNTERS_SHIFT = 19, + PERF_SAMPLE_BRANCH_MAX_SHIFT = 20, +}; + +enum { + LBR_NONE = 0, + LBR_VALID = 1, +}; + +enum { + X86_BR_NONE = 0, + X86_BR_USER = 1, + X86_BR_KERNEL = 2, + X86_BR_CALL = 4, + X86_BR_RET = 8, + X86_BR_SYSCALL = 16, + X86_BR_SYSRET = 32, + X86_BR_INT = 64, + X86_BR_IRET = 128, + X86_BR_JCC = 256, + X86_BR_JMP = 512, + X86_BR_IRQ = 1024, + X86_BR_IND_CALL = 2048, + X86_BR_ABORT = 4096, + X86_BR_IN_TX = 8192, + X86_BR_NO_TX = 16384, + X86_BR_ZERO_CALL = 32768, + X86_BR_CALL_STACK = 65536, + X86_BR_IND_JMP = 131072, + X86_BR_TYPE_SAVE = 262144, +}; + +enum { + PERF_BR_SPEC_NA = 0, + PERF_BR_SPEC_WRONG_PATH = 1, + PERF_BR_NON_SPEC_CORRECT_PATH = 2, + PERF_BR_SPEC_CORRECT_PATH = 3, + PERF_BR_SPEC_MAX = 4, +}; + +enum perf_branch_sample_type { + PERF_SAMPLE_BRANCH_USER = 1, + PERF_SAMPLE_BRANCH_KERNEL = 2, + PERF_SAMPLE_BRANCH_HV = 4, + PERF_SAMPLE_BRANCH_ANY = 8, + PERF_SAMPLE_BRANCH_ANY_CALL = 16, + PERF_SAMPLE_BRANCH_ANY_RETURN = 32, + PERF_SAMPLE_BRANCH_IND_CALL = 64, + PERF_SAMPLE_BRANCH_ABORT_TX = 128, + PERF_SAMPLE_BRANCH_IN_TX = 256, + PERF_SAMPLE_BRANCH_NO_TX = 512, + PERF_SAMPLE_BRANCH_COND = 1024, + PERF_SAMPLE_BRANCH_CALL_STACK = 2048, + PERF_SAMPLE_BRANCH_IND_JUMP = 4096, + PERF_SAMPLE_BRANCH_CALL = 8192, + PERF_SAMPLE_BRANCH_NO_FLAGS = 16384, + PERF_SAMPLE_BRANCH_NO_CYCLES = 32768, + PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536, + PERF_SAMPLE_BRANCH_HW_INDEX = 131072, + PERF_SAMPLE_BRANCH_PRIV_SAVE = 262144, + PERF_SAMPLE_BRANCH_COUNTERS = 524288, + PERF_SAMPLE_BRANCH_MAX = 1048576, +}; + +enum { + ARCH_LBR_BR_TYPE_JCC = 0, + ARCH_LBR_BR_TYPE_NEAR_IND_JMP = 1, + ARCH_LBR_BR_TYPE_NEAR_REL_JMP = 2, + ARCH_LBR_BR_TYPE_NEAR_IND_CALL = 3, + ARCH_LBR_BR_TYPE_NEAR_REL_CALL = 4, + ARCH_LBR_BR_TYPE_NEAR_RET = 5, + ARCH_LBR_BR_TYPE_KNOWN_MAX = 5, + ARCH_LBR_BR_TYPE_MAP_MAX = 16, +}; + +struct perf_guest_switch_msr { + unsigned int msr; + u64 host; + u64 guest; +}; + +struct er_account; + +struct intel_shared_regs; + +struct intel_excl_cntrs; + +struct amd_nb; + +struct cpu_hw_events { + struct perf_event *events[64]; + unsigned long active_mask[1]; + unsigned long dirty[1]; + int enabled; + int n_events; + int n_added; + int n_txn; + int n_txn_pair; + int n_txn_metric; + int assign[64]; + u64 tags[64]; + struct perf_event *event_list[64]; + struct event_constraint *event_constraint[64]; + int n_excl; + unsigned int txn_flags; + int is_fake; + struct debug_store *ds; + void *ds_pebs_vaddr; + void *ds_bts_vaddr; + u64 pebs_enabled; + int n_pebs; + int n_large_pebs; + int n_pebs_via_pt; + int pebs_output; + u64 pebs_data_cfg; + u64 active_pebs_data_cfg; + int pebs_record_size; + u64 fixed_ctrl_val; + u64 active_fixed_ctrl_val; + int lbr_users; + int lbr_pebs_users; + struct perf_branch_stack lbr_stack; + struct perf_branch_entry lbr_entries[32]; + u64 lbr_counters[32]; + union { + struct er_account *lbr_sel; + struct er_account *lbr_ctl; + }; + u64 br_sel; + void *last_task_ctx; + int last_log_id; + int lbr_select; + void *lbr_xsave; + u64 intel_ctrl_guest_mask; + u64 intel_ctrl_host_mask; + struct perf_guest_switch_msr guest_switch_msrs[64]; + u64 intel_cp_status; + struct intel_shared_regs *shared_regs; + struct event_constraint *constraint_list; + struct intel_excl_cntrs *excl_cntrs; + int excl_thread_id; + u64 tfa_shadow; + int n_metric; + struct amd_nb *amd_nb; + int brs_active; + u64 perf_ctr_virt_mask; + int n_pair; + void *kfree_on_online[2]; + struct pmu *pmu; +}; + +struct er_account { + raw_spinlock_t lock; + u64 config; + u64 reg; + atomic_t ref; +}; + +struct intel_shared_regs { + struct er_account regs[7]; + int refcnt; + unsigned int core_id; +}; + +struct intel_excl_states { + enum intel_excl_state_type state[64]; + bool sched_started; +}; + +struct intel_excl_cntrs { + raw_spinlock_t lock; + struct intel_excl_states states[2]; + union { + u16 has_exclusive[2]; + u32 exclusive_present; + }; + int refcnt; + unsigned int core_id; +}; + +struct amd_nb { + int nb_id; + int refcnt; + struct perf_event *owners[64]; + struct event_constraint event_constraints[64]; +}; + +struct x86_perf_task_context_opt { + int lbr_callstack_users; + int lbr_stack_state; + int log_id; +}; + +struct lbr_entry { + u64 from; + u64 to; + u64 info; +}; + +struct x86_perf_task_context_arch_lbr { + struct x86_perf_task_context_opt opt; + struct lbr_entry entries[0]; +}; + +struct x86_perf_task_context { + u64 lbr_sel; + int tos; + int valid_lbrs; + struct x86_perf_task_context_opt opt; + struct lbr_entry lbr[32]; +}; + +union cpuid28_eax { + struct { + unsigned int lbr_depth_mask: 8; + unsigned int reserved: 22; + unsigned int lbr_deep_c_reset: 1; + unsigned int lbr_lip: 1; + } split; + unsigned int full; +}; + +union cpuid28_ecx { + struct { + unsigned int lbr_mispred: 1; + unsigned int lbr_timed_lbr: 1; + unsigned int lbr_br_type: 1; + unsigned int reserved: 13; + unsigned int lbr_counters: 4; + } split; + unsigned int full; +}; + +union cpuid28_ebx { + struct { + unsigned int lbr_cpl: 1; + unsigned int lbr_filter: 1; + unsigned int lbr_call_stack: 1; + } split; + unsigned int full; +}; + +struct arch_lbr_state { + u64 lbr_ctl; + u64 lbr_depth; + u64 ler_from; + u64 ler_to; + u64 ler_info; + struct lbr_entry entries[0]; +}; + +struct x86_perf_task_context_arch_lbr_xsave { + struct x86_perf_task_context_opt opt; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct xregs_state xsave; + struct { + struct fxregs_state i387; + struct xstate_header header; + struct arch_lbr_state lbr; + long: 64; + long: 64; + long: 64; + }; + }; +}; + +struct x86_pmu_lbr { + unsigned int nr; + unsigned int from; + unsigned int to; + unsigned int info; +}; + +struct arch_uprobe; + +struct uprobe_xol_ops { + bool (*emulate)(struct arch_uprobe *, struct pt_regs *); + int (*pre_xol)(struct arch_uprobe *, struct pt_regs *); + int (*post_xol)(struct arch_uprobe *, struct pt_regs *); + void (*abort)(struct arch_uprobe *, struct pt_regs *); +}; + +struct arch_uprobe { + union { + u8 insn[16]; + u8 ixol[16]; + }; + const struct uprobe_xol_ops *ops; + union { + struct { + s32 offs; + u8 ilen; + u8 opc1; + } branch; + struct { + u8 fixups; + u8 ilen; + } defparam; + struct { + u8 reg_offset; + u8 ilen; + } push; + }; +}; + +enum rp_check { + RP_CHECK_CALL = 0, + RP_CHECK_CHAIN_CALL = 1, + RP_CHECK_RET = 2, }; struct va_alignment { @@ -90245,322 +79046,2816 @@ struct va_alignment { long: 64; }; -struct mcs_spinlock { - struct mcs_spinlock *next; - int locked; - int count; -}; - -struct qnode { - struct mcs_spinlock mcs; -}; - -struct ftrace_graph_ent; - -typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); - -struct ftrace_graph_ret; - -typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); - -struct fgraph_ops { - trace_func_graph_ent_t entryfunc; - trace_func_graph_ret_t retfunc; -}; - -struct ftrace_graph_ent { - unsigned long func; - int depth; -} __attribute__((packed)); - -struct ftrace_graph_ret { - unsigned long func; - int depth; - unsigned int overrun; - unsigned long long calltime; - unsigned long long rettime; -}; - -enum { - FTRACE_HASH_FL_MOD = 1, -}; - -enum { - FLAGS_FILL_FULL = 268435456, - FLAGS_FILL_START = 536870912, - FLAGS_FILL_END = 805306368, -}; - -struct fgraph_cpu_data { - pid_t last_pid; - int depth; - int depth_irq; - int ignore; - unsigned long enter_funcs[50]; -}; - -struct ftrace_graph_ent_entry { - struct trace_entry ent; - struct ftrace_graph_ent graph_ent; -}; - -struct ftrace_graph_ret_entry { - struct trace_entry ent; - struct ftrace_graph_ret ret; -}; - -struct ftrace_func_entry { - struct hlist_node hlist; - unsigned long ip; - unsigned long direct; -}; - -struct fgraph_data { - struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; - struct ftrace_graph_ent_entry ent; - struct ftrace_graph_ret_entry ret; - int failed; +struct timer_list_iter { int cpu; - long: 0; + bool second_pass; + u64 now; +}; + +enum kernel_load_data_id { + LOADING_UNKNOWN = 0, + LOADING_FIRMWARE = 1, + LOADING_MODULE = 2, + LOADING_KEXEC_IMAGE = 3, + LOADING_KEXEC_INITRAMFS = 4, + LOADING_POLICY = 5, + LOADING_X509_CERTIFICATE = 6, + LOADING_MAX_ID = 7, +}; + +struct bpf_verifier_stack_elem { + struct bpf_verifier_state st; + int insn_idx; + int prev_insn_idx; + struct bpf_verifier_stack_elem *next; + u32 log_pos; +}; + +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; + u16 offset; + unsigned long addr; +}; + +struct bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; +}; + +struct bpf_kfunc_btf { + struct btf *btf; + struct module *module; + u16 offset; +}; + +struct bpf_kfunc_btf_tab { + struct bpf_kfunc_btf descs[256]; + u32 nr_descs; +}; + +struct bpf_reg_types { + const enum bpf_reg_type types[10]; + u32 *btf_id; +}; + +enum { + BPF_REG_0 = 0, + BPF_REG_1 = 1, + BPF_REG_2 = 2, + BPF_REG_3 = 3, + BPF_REG_4 = 4, + BPF_REG_5 = 5, + BPF_REG_6 = 6, + BPF_REG_7 = 7, + BPF_REG_8 = 8, + BPF_REG_9 = 9, + BPF_REG_10 = 10, + __MAX_BPF_REG = 11, +}; + +enum { + INSN_F_FRAMENO_MASK = 7, + INSN_F_SPI_MASK = 63, + INSN_F_SPI_SHIFT = 3, + INSN_F_STACK_ACCESS = 512, +}; + +enum special_kfunc_type { + KF_bpf_obj_new_impl = 0, + KF_bpf_obj_drop_impl = 1, + KF_bpf_refcount_acquire_impl = 2, + KF_bpf_list_push_front_impl = 3, + KF_bpf_list_push_back_impl = 4, + KF_bpf_list_pop_front = 5, + KF_bpf_list_pop_back = 6, + KF_bpf_cast_to_kern_ctx = 7, + KF_bpf_rdonly_cast = 8, + KF_bpf_rcu_read_lock = 9, + KF_bpf_rcu_read_unlock = 10, + KF_bpf_rbtree_remove = 11, + KF_bpf_rbtree_add_impl = 12, + KF_bpf_rbtree_first = 13, + KF_bpf_dynptr_from_skb = 14, + KF_bpf_dynptr_from_xdp = 15, + KF_bpf_dynptr_slice = 16, + KF_bpf_dynptr_slice_rdwr = 17, + KF_bpf_dynptr_clone = 18, + KF_bpf_percpu_obj_new_impl = 19, + KF_bpf_percpu_obj_drop_impl = 20, + KF_bpf_throw = 21, + KF_bpf_wq_set_callback_impl = 22, + KF_bpf_preempt_disable = 23, + KF_bpf_preempt_enable = 24, + KF_bpf_iter_css_task_new = 25, +}; + +enum bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, + STACK_DYNPTR = 4, + STACK_ITER = 5, +}; + +enum { + DISCOVERED = 16, + EXPLORED = 32, + FALLTHROUGH = 1, + BRANCH = 2, +}; + +enum { + DONE_EXPLORING = 0, + KEEP_EXPLORING = 1, +}; + +enum bpf_cond_pseudo_jmp { + BPF_MAY_GOTO = 0, +}; + +enum reg_arg_type { + SRC_OP = 0, + DST_OP = 1, + DST_OP_NO_MARK = 2, +}; + +enum exact_level { + NOT_EXACT = 0, + EXACT = 1, + RANGE_WITHIN = 2, +}; + +enum bpf_addr_space_cast { + BPF_ADDR_SPACE_CAST = 1, +}; + +enum { + REASON_BOUNDS = -1, + REASON_TYPE = -2, + REASON_PATHS = -3, + REASON_LIMIT = -4, + REASON_STACK = -5, +}; + +enum bpf_access_src { + ACCESS_DIRECT = 1, + ACCESS_HELPER = 2, +}; + +enum kfunc_ptr_arg_type { + KF_ARG_PTR_TO_CTX = 0, + KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, + KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, + KF_ARG_PTR_TO_DYNPTR = 3, + KF_ARG_PTR_TO_ITER = 4, + KF_ARG_PTR_TO_LIST_HEAD = 5, + KF_ARG_PTR_TO_LIST_NODE = 6, + KF_ARG_PTR_TO_BTF_ID = 7, + KF_ARG_PTR_TO_MEM = 8, + KF_ARG_PTR_TO_MEM_SIZE = 9, + KF_ARG_PTR_TO_CALLBACK = 10, + KF_ARG_PTR_TO_RB_ROOT = 11, + KF_ARG_PTR_TO_RB_NODE = 12, + KF_ARG_PTR_TO_NULL = 13, + KF_ARG_PTR_TO_CONST_STR = 14, + KF_ARG_PTR_TO_MAP = 15, + KF_ARG_PTR_TO_WORKQUEUE = 16, +}; + +enum { + KF_ARG_DYNPTR_ID = 0, + KF_ARG_LIST_HEAD_ID = 1, + KF_ARG_LIST_NODE_ID = 2, + KF_ARG_RB_ROOT_ID = 3, + KF_ARG_RB_NODE_ID = 4, + KF_ARG_WORKQUEUE_ID = 5, +}; + +enum { + BTF_TRACING_TYPE_TASK = 0, + BTF_TRACING_TYPE_FILE = 1, + BTF_TRACING_TYPE_VMA = 2, + MAX_BTF_TRACING_TYPE = 3, +}; + +enum { + AT_PKT_END = -1, + BEYOND_PKT_END = -2, +}; + +enum { + BPF_MAX_LOOPS = 8388608, +}; + +enum bpf_jit_poke_reason { + BPF_POKE_REASON_TAIL_CALL = 0, +}; + +struct bpf_iter_meta__safe_trusted { + struct seq_file *seq; +}; + +struct bpf_iter_meta; + +struct bpf_iter__task__safe_trusted { + struct bpf_iter_meta *meta; + struct task_struct *task; +}; + +struct bpf_iter_meta { + union { + struct seq_file *seq; + }; + u64 session_id; + u64 seq_num; +}; + +struct linux_binprm__safe_trusted { + struct file *file; +}; + +struct file__safe_trusted { + struct inode *f_inode; +}; + +struct dentry__safe_trusted { + struct inode *d_inode; +}; + +struct socket__safe_trusted { + struct sock *sk; +}; + +struct task_struct__safe_rcu { + const cpumask_t *cpus_ptr; + struct css_set __attribute__((btf_type_tag("rcu"))) *cgroups; + struct task_struct __attribute__((btf_type_tag("rcu"))) *real_parent; + struct task_struct *group_leader; +}; + +struct cgroup__safe_rcu { + struct kernfs_node *kn; +}; + +struct css_set__safe_rcu { + struct cgroup *dfl_cgrp; +}; + +struct mm_struct__safe_rcu_or_null { + struct file __attribute__((btf_type_tag("rcu"))) *exe_file; +}; + +struct sk_buff__safe_rcu_or_null { + struct sock *sk; +}; + +struct request_sock__safe_rcu_or_null { + struct sock *sk; +}; + +struct bpf_iter; + +typedef void (*bpf_insn_print_t)(void *, const char *, ...); + +typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *); + +typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64); + +struct bpf_insn_cbs { + bpf_insn_print_t cb_print; + bpf_insn_revmap_call_t cb_call; + bpf_insn_print_imm_t cb_imm; + void *private_data; +}; + +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + +struct bpf_attach_target_info { + struct btf_func_model fmodel; + long tgt_addr; + struct module *tgt_mod; + const char *tgt_name; + const struct btf_type *tgt_type; +}; + +struct bpf_kfunc_call_arg_meta { + struct btf *btf; + u32 func_id; + u32 kfunc_flags; + const struct btf_type *func_proto; + const char *func_name; + u32 ref_obj_id; + u8 release_regno; + bool r0_rdonly; + u32 ret_btf_id; + u64 r0_size; + u32 subprogno; + struct { + u64 value; + bool found; + } arg_constant; + struct btf *arg_btf; + u32 arg_btf_id; + bool arg_owning_ref; + struct { + struct btf_field *field; + } arg_list_head; + struct { + struct btf_field *field; + } arg_rbtree_root; + struct { + enum bpf_dynptr_type type; + u32 id; + u32 ref_obj_id; + } initialized_dynptr; + struct { + u8 spi; + u8 frameno; + } iter; + struct { + struct bpf_map *ptr; + int uid; + } map; + u64 mem_size; +}; + +struct bpf_call_arg_meta { + struct bpf_map *map_ptr; + bool raw_mode; + bool pkt_access; + u8 release_regno; + int regno; + int access_size; + int mem_size; + u64 msize_max_value; + int ref_obj_id; + int dynptr_id; + int map_uid; + int func_id; + struct btf *btf; + u32 btf_id; + struct btf *ret_btf; + u32 ret_btf_id; + u32 subprogno; + struct btf_field *kptr_field; +}; + +struct bpf_sanitize_info { + struct bpf_insn_aux_data aux; + bool mask_to_left; +}; + +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); + +typedef __kernel_rwf_t rwf_t; + +struct backing_aio { + struct kiocb iocb; + refcount_t ref; + struct kiocb *orig_iocb; + void (*end_write)(struct file *); + struct work_struct work; + long res; +}; + +struct backing_file_ctx { + const struct cred *cred; + struct file *user_file; + void (*accessed)(struct file *); + void (*end_write)(struct file *); +}; + +enum { + I_DATA_SEM_NORMAL = 0, + I_DATA_SEM_OTHER = 1, + I_DATA_SEM_QUOTA = 2, + I_DATA_SEM_EA = 3, +}; + +struct root_name_map { + u64 id; + char name[16]; +}; + +enum btrfs_raid_types { + BTRFS_RAID_SINGLE = 0, + BTRFS_RAID_RAID0 = 1, + BTRFS_RAID_RAID1 = 2, + BTRFS_RAID_DUP = 3, + BTRFS_RAID_RAID10 = 4, + BTRFS_RAID_RAID5 = 5, + BTRFS_RAID_RAID6 = 6, + BTRFS_RAID_RAID1C3 = 7, + BTRFS_RAID_RAID1C4 = 8, + BTRFS_NR_RAID_TYPES = 9, +}; + +struct btrfs_dir_item { + struct btrfs_disk_key location; + __le64 transid; + __le16 data_len; + __le16 name_len; + __u8 type; } __attribute__((packed)); -enum bpf_lru_list_type { - BPF_LRU_LIST_T_ACTIVE = 0, - BPF_LRU_LIST_T_INACTIVE = 1, - BPF_LRU_LIST_T_FREE = 2, - BPF_LRU_LOCAL_LIST_T_FREE = 3, - BPF_LRU_LOCAL_LIST_T_PENDING = 4, +struct btrfs_extent_data_ref { + __le64 root; + __le64 objectid; + __le64 offset; + __le32 count; +} __attribute__((packed)); + +struct btrfs_shared_data_ref { + __le32 count; }; -struct bpf_lru_list { - struct list_head lists[3]; - unsigned int counts[2]; - struct list_head *next_inactive_rotation; - raw_spinlock_t lock; +struct btrfs_block_group_item { + __le64 used; + __le64 chunk_objectid; + __le64 flags; }; -struct bpf_lru_locallist { - struct list_head lists[2]; - u16 next_steal; - raw_spinlock_t lock; +struct btrfs_stripe { + __le64 devid; + __le64 offset; + __u8 dev_uuid[16]; }; -struct bpf_lru_node { +struct btrfs_chunk { + __le64 length; + __le64 owner; + __le64 stripe_len; + __le64 type; + __le32 io_align; + __le32 io_width; + __le32 sector_size; + __le16 num_stripes; + __le16 sub_stripes; + struct btrfs_stripe stripe; +}; + +struct btrfs_raid_stride { + __le64 devid; + __le64 physical; +}; + +struct btrfs_stripe_extent { + __u8 encoding; + __u8 reserved[7]; + struct btrfs_raid_stride strides[0]; +}; + +struct btrfs_extent_owner_ref { + __le64 root_id; +}; + +struct fileattr { + u32 flags; + u32 fsx_xflags; + u32 fsx_extsize; + u32 fsx_nextents; + u32 fsx_projid; + u32 fsx_cowextsize; + bool flags_valid: 1; + bool fsx_valid: 1; +}; + +struct efivarfs_mount_opts { + kuid_t uid; + kgid_t gid; +}; + +struct efivarfs_fs_info { + struct efivarfs_mount_opts mount_opts; + struct list_head efivarfs_list; + struct super_block *sb; + struct notifier_block nb; +}; + +struct efi_variable { + efi_char16_t VariableName[512]; + efi_guid_t VendorGuid; + unsigned long DataSize; + __u8 Data[1024]; + efi_status_t Status; + __u32 Attributes; +} __attribute__((packed)); + +struct efivar_entry { + struct efi_variable var; struct list_head list; - u16 cpu; - u8 type; - u8 ref; + struct kobject kobj; }; -struct bpf_common_lru { - struct bpf_lru_list lru_list; - struct bpf_lru_locallist __attribute__((btf_type_tag("percpu"))) *local_list; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); + +typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); + +typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); + +typedef void (*btf_trace_block_rq_insert)(void *, struct request *); + +typedef void (*btf_trace_block_rq_issue)(void *, struct request *); + +typedef void (*btf_trace_block_rq_merge)(void *, struct request *); + +typedef void (*btf_trace_block_io_start)(void *, struct request *); + +typedef void (*btf_trace_block_io_done)(void *, struct request *); + +typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); + +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); + +typedef void (*btf_trace_block_getrq)(void *, struct bio *); + +typedef void (*btf_trace_block_plug)(void *, struct request_queue *); + +typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); + +typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); + +typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); + +typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); + +enum blkg_rwstat_type { + BLKG_RWSTAT_READ = 0, + BLKG_RWSTAT_WRITE = 1, + BLKG_RWSTAT_SYNC = 2, + BLKG_RWSTAT_ASYNC = 3, + BLKG_RWSTAT_DISCARD = 4, + BLKG_RWSTAT_NR = 5, + BLKG_RWSTAT_TOTAL = 5, }; -typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *); +enum stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, +}; -struct bpf_lru { - union { - struct bpf_common_lru common_lru; - struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru; +struct trace_event_raw_block_buffer { + struct trace_entry ent; + dev_t dev; + sector_t sector; + size_t size; + char __data[0]; +}; + +struct trace_event_raw_block_rq_requeue { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + char rwbs[8]; + u32 __data_loc_cmd; + char __data[0]; +}; + +struct trace_event_raw_block_rq_completion { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + int error; + char rwbs[8]; + u32 __data_loc_cmd; + char __data[0]; +}; + +struct trace_event_raw_block_rq { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + unsigned int bytes; + char rwbs[8]; + char comm[16]; + u32 __data_loc_cmd; + char __data[0]; +}; + +struct trace_event_raw_block_bio_complete { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + int error; + char rwbs[8]; + char __data[0]; +}; + +struct trace_event_raw_block_bio { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + char rwbs[8]; + char comm[16]; + char __data[0]; +}; + +struct trace_event_raw_block_plug { + struct trace_entry ent; + char comm[16]; + char __data[0]; +}; + +struct trace_event_raw_block_unplug { + struct trace_entry ent; + int nr_rq; + char comm[16]; + char __data[0]; +}; + +struct trace_event_raw_block_split { + struct trace_entry ent; + dev_t dev; + sector_t sector; + sector_t new_sector; + char rwbs[8]; + char comm[16]; + char __data[0]; +}; + +struct trace_event_raw_block_bio_remap { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + dev_t old_dev; + sector_t old_sector; + char rwbs[8]; + char __data[0]; +}; + +struct trace_event_raw_block_rq_remap { + struct trace_entry ent; + dev_t dev; + sector_t sector; + unsigned int nr_sector; + dev_t old_dev; + sector_t old_sector; + unsigned int nr_bios; + char rwbs[8]; + char __data[0]; +}; + +struct throtl_service_queue { + struct throtl_service_queue *parent_sq; + struct list_head queued[2]; + unsigned int nr_queued[2]; + struct rb_root_cached pending_tree; + unsigned int nr_pending; + unsigned long first_pending_disptime; + struct timer_list pending_timer; +}; + +struct throtl_grp; + +struct throtl_qnode { + struct list_head node; + struct bio_list bios; + struct throtl_grp *tg; +}; + +struct throtl_grp { + struct blkg_policy_data pd; + struct rb_node rb_node; + struct throtl_data *td; + struct throtl_service_queue service_queue; + struct throtl_qnode qnode_on_self[2]; + struct throtl_qnode qnode_on_parent[2]; + unsigned long disptime; + unsigned int flags; + bool has_rules_bps[2]; + bool has_rules_iops[2]; + uint64_t bps[4]; + uint64_t bps_conf[4]; + unsigned int iops[4]; + unsigned int iops_conf[4]; + uint64_t bytes_disp[2]; + unsigned int io_disp[2]; + unsigned long last_low_overflow_time[2]; + uint64_t last_bytes_disp[2]; + unsigned int last_io_disp[2]; + long long carryover_bytes[2]; + int carryover_ios[2]; + unsigned long last_check_time; + unsigned long latency_target; + unsigned long latency_target_conf; + unsigned long slice_start[2]; + unsigned long slice_end[2]; + unsigned long last_finish_time; + unsigned long checked_last_finish_time; + unsigned long avg_idletime; + unsigned long idletime_threshold; + unsigned long idletime_threshold_conf; + unsigned int bio_cnt; + unsigned int bad_bio_cnt; + unsigned long bio_cnt_reset_time; + struct blkg_rwstat stat_bytes; + struct blkg_rwstat stat_ios; +}; + +typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); + +typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); + +typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); + +typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); + +struct blkcg_policy { + int plid; + struct cftype *dfl_cftypes; + struct cftype *legacy_cftypes; + blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; + blkcg_pol_free_cpd_fn *cpd_free_fn; + blkcg_pol_alloc_pd_fn *pd_alloc_fn; + blkcg_pol_init_pd_fn *pd_init_fn; + blkcg_pol_online_pd_fn *pd_online_fn; + blkcg_pol_offline_pd_fn *pd_offline_fn; + blkcg_pol_free_pd_fn *pd_free_fn; + blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; + blkcg_pol_stat_pd_fn *pd_stat_fn; +}; + +struct trace_event_data_offsets_block_buffer {}; + +struct trace_event_data_offsets_block_rq_requeue { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_rq_completion { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_rq { + u32 cmd; + const void *cmd_ptr_; +}; + +struct trace_event_data_offsets_block_bio_complete {}; + +struct trace_event_data_offsets_block_bio {}; + +struct trace_event_data_offsets_block_plug {}; + +struct trace_event_data_offsets_block_unplug {}; + +struct trace_event_data_offsets_block_split {}; + +struct trace_event_data_offsets_block_bio_remap {}; + +struct trace_event_data_offsets_block_rq_remap {}; + +enum { + FB_BLANK_UNBLANK = 0, + FB_BLANK_NORMAL = 1, + FB_BLANK_VSYNC_SUSPEND = 2, + FB_BLANK_HSYNC_SUSPEND = 3, + FB_BLANK_POWERDOWN = 4, +}; + +struct fb_modelist { + struct list_head list; + struct fb_videomode mode; +}; + +struct fb_event { + struct fb_info *info; + void *data; +}; + +struct container_dev { + struct device dev; + int (*offline)(struct container_dev *); +}; + +struct serial_ctrl_device { + struct device dev; + struct ida port_ida; +}; + +struct serial_port_device { + struct device dev; + struct uart_port *port; +}; + +enum scsi_pr_type { + SCSI_PR_WRITE_EXCLUSIVE = 1, + SCSI_PR_EXCLUSIVE_ACCESS = 3, + SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, + SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, + SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, + SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, +}; + +enum pr_status { + PR_STS_SUCCESS = 0, + PR_STS_IOERR = 2, + PR_STS_RESERVATION_CONFLICT = 24, + PR_STS_RETRY_PATH_FAILURE = 917504, + PR_STS_PATH_FAST_FAILED = 983040, + PR_STS_PATH_FAILED = 65536, +}; + +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, +}; + +enum { + SD_LBP_FULL = 0, + SD_LBP_UNMAP = 1, + SD_LBP_WS16 = 2, + SD_LBP_WS10 = 3, + SD_LBP_ZERO = 4, + SD_LBP_DISABLE = 5, +}; + +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, +}; + +enum string_size_units { + STRING_UNITS_10 = 0, + STRING_UNITS_2 = 1, + STRING_UNITS_MASK = 1, + STRING_UNITS_NO_SPACE = 1073741824, + STRING_UNITS_NO_BYTES = 2147483648, +}; + +enum { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, +}; + +enum bip_flags { + BIP_BLOCK_INTEGRITY = 1, + BIP_MAPPED_INTEGRITY = 2, + BIP_CTRL_NOCHECK = 4, + BIP_DISK_NOCHECK = 8, + BIP_IP_CHECKSUM = 16, + BIP_INTEGRITY_USER = 32, + BIP_COPY_USER = 64, +}; + +enum scsi_prot_flags { + SCSI_PROT_TRANSFER_PI = 1, + SCSI_PROT_GUARD_CHECK = 2, + SCSI_PROT_REF_CHECK = 4, + SCSI_PROT_REF_INCREMENT = 8, + SCSI_PROT_IP_CHECKSUM = 16, +}; + +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, +}; + +struct scsi_disk { + struct scsi_device *device; + struct device disk_dev; + struct gendisk *disk; + struct opal_dev *opal_dev; + atomic_t openers; + sector_t capacity; + int max_retries; + u32 min_xfer_blocks; + u32 max_xfer_blocks; + u32 opt_xfer_blocks; + u32 max_ws_blocks; + u32 max_unmap_blocks; + u32 unmap_granularity; + u32 unmap_alignment; + u32 index; + unsigned int physical_block_size; + unsigned int max_medium_access_timeouts; + unsigned int medium_access_timed_out; + u16 permanent_stream_count; + u8 media_present; + u8 write_prot; + u8 protection_type; + u8 provisioning_mode; + u8 zeroing_mode; + u8 nr_actuators; + bool suspended; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; + unsigned int rscs: 1; +}; + +struct scsi_io_group_descriptor { + u8 ic_enable: 1; + u8 cs_enble: 1; + u8 st_enble: 1; + u8 reserved1: 3; + u8 io_advice_hints_mode: 2; + u8 reserved2[3]; + u8 lbm_descriptor_type: 4; + u8 rlbsr: 2; + u8 reserved3: 1; + u8 acdlu: 1; + u8 params[2]; + u8 reserved4; + u8 reserved5[8]; +}; + +struct scsi_stream_status { + u8 reserved1: 7; + u8 perm: 1; + u8 reserved2; + __be16 stream_identifier; + u8 rel_lifetime: 6; + u8 reserved3: 2; + u8 reserved4[3]; +}; + +struct scsi_stream_status_header { + __be32 len; + u16 reserved; + __be16 number_of_open_streams; + struct { + struct {} __empty_stream_status; + struct scsi_stream_status stream_status[0]; }; - del_from_htab_func del_from_htab; - void *del_arg; - unsigned int hash_offset; - unsigned int nr_scans; - bool percpu; +}; + +struct iwl_pnvm_section { + __le32 offset; + const u8 data[0]; +}; + +struct iwl_pnvm_init_complete_ntfy { + __le32 status; +}; + +struct iwl_synced_time_cmd { + __le32 operation; +}; + +struct iwl_synced_time_rsp { + __le32 operation; + __le32 platform_timestamp_hi; + __le32 platform_timestamp_lo; + __le32 gp2_timestamp_hi; + __le32 gp2_timestamp_lo; +}; + +enum { + US_FL_SINGLE_LUN = 1, + US_FL_NEED_OVERRIDE = 2, + US_FL_SCM_MULT_TARG = 4, + US_FL_FIX_INQUIRY = 8, + US_FL_FIX_CAPACITY = 16, + US_FL_IGNORE_RESIDUE = 32, + US_FL_BULK32 = 64, + US_FL_NOT_LOCKABLE = 128, + US_FL_GO_SLOW = 256, + US_FL_NO_WP_DETECT = 512, + US_FL_MAX_SECTORS_64 = 1024, + US_FL_IGNORE_DEVICE = 2048, + US_FL_CAPACITY_HEURISTICS = 4096, + US_FL_MAX_SECTORS_MIN = 8192, + US_FL_BULK_IGNORE_TAG = 16384, + US_FL_SANE_SENSE = 32768, + US_FL_CAPACITY_OK = 65536, + US_FL_BAD_SENSE = 131072, + US_FL_NO_READ_DISC_INFO = 262144, + US_FL_NO_READ_CAPACITY_16 = 524288, + US_FL_INITIAL_READ10 = 1048576, + US_FL_WRITE_CACHE = 2097152, + US_FL_NEEDS_CAP16 = 4194304, + US_FL_IGNORE_UAS = 8388608, + US_FL_BROKEN_FUA = 16777216, + US_FL_NO_ATA_1X = 33554432, + US_FL_NO_REPORT_OPCODES = 67108864, + US_FL_MAX_SECTORS_240 = 134217728, + US_FL_NO_REPORT_LUNS = 268435456, + US_FL_ALWAYS_SYNC = 536870912, + US_FL_NO_SAME = 1073741824, + US_FL_SENSE_AFTER_SYNC = 2147483648, +}; + +struct _thermal_state { + u64 next_check; + u64 last_interrupt_time; + struct delayed_work therm_work; + unsigned long count; + unsigned long last_count; + unsigned long max_time_ms; + unsigned long total_time_ms; + bool rate_control_active; + bool new_event; + u8 level; + u8 sample_index; + u8 sample_count; + u8 average; + u8 baseline_temp; + u8 temp_samples[3]; +}; + +struct thermal_state { + struct _thermal_state core_throttle; + struct _thermal_state core_power_limit; + struct _thermal_state package_throttle; + struct _thermal_state package_power_limit; + struct _thermal_state core_thresh0; + struct _thermal_state core_thresh1; + struct _thermal_state pkg_thresh0; + struct _thermal_state pkg_thresh1; +}; + +struct rps_map; + +struct rps_dev_flow_table; + +struct netdev_rx_queue { + struct xdp_rxq_info xdp_rxq; + struct rps_map __attribute__((btf_type_tag("rcu"))) *rps_map; + struct rps_dev_flow_table __attribute__((btf_type_tag("rcu"))) *rps_flow_table; + struct kobject kobj; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct napi_struct *napi; long: 64; long: 64; long: 64; long: 64; }; -struct bpf_bloom_filter { - struct bpf_map map; - u32 bitset_mask; - u32 hash_seed; - u32 nr_hash_funcs; - unsigned long bitset[0]; +struct rps_map { + unsigned int len; + struct callback_head rcu; + u16 cpus[0]; }; -struct fsuuid2 { - __u8 len; - __u8 uuid[16]; +struct rps_dev_flow { + u16 cpu; + u16 filter; + unsigned int last_qtail; }; -struct file_clone_range { - __s64 src_fd; - __u64 src_offset; - __u64 src_length; - __u64 dest_offset; -}; - -struct space_resv { - __s16 l_type; - __s16 l_whence; - __s64 l_start; - __s64 l_len; - __s32 l_sysid; - __u32 l_pid; - __s32 l_pad[4]; -}; - -struct fsxattr { - __u32 fsx_xflags; - __u32 fsx_extsize; - __u32 fsx_nextents; - __u32 fsx_projid; - __u32 fsx_cowextsize; - unsigned char fsx_pad[8]; -}; - -struct fs_sysfs_path { - __u8 len; - __u8 name[128]; -}; - -enum proc_param { - Opt_gid___4 = 0, - Opt_hidepid = 1, - Opt_subset = 2, -}; - -struct proc_fs_context { - struct pid_namespace *pid_ns; +struct rps_dev_flow_table { unsigned int mask; - enum proc_hidepid hidepid; - int gid; - enum proc_pidonly pidonly; + struct callback_head rcu; + struct rps_dev_flow flows[0]; }; -enum ramfs_param { - Opt_mode___3 = 0, +struct rx_queue_attribute { + struct attribute attr; + ssize_t (*show)(struct netdev_rx_queue *, char *); + ssize_t (*store)(struct netdev_rx_queue *, const char *, size_t); }; -struct ramfs_mount_opts { +struct netdev_queue_attribute { + struct attribute attr; + ssize_t (*show)(struct netdev_queue *, char *); + ssize_t (*store)(struct netdev_queue *, const char *, size_t); +}; + +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, +}; + +struct class_attribute { + struct attribute attr; + ssize_t (*show)(const struct class *, const struct class_attribute *, char *); + ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); +}; + +enum nf_ct_helper_flags { + NF_CT_HELPER_F_USERSPACE = 1, + NF_CT_HELPER_F_CONFIGURED = 2, +}; + +struct nf_conntrack_expect_policy; + +struct nf_conntrack_helper { + struct hlist_node hnode; + char name[16]; + refcount_t refcnt; + struct module *me; + const struct nf_conntrack_expect_policy *expect_policy; + struct nf_conntrack_tuple tuple; + int (*help)(struct sk_buff *, unsigned int, struct nf_conn *, enum ip_conntrack_info); + void (*destroy)(struct nf_conn *); + int (*from_nlattr)(struct nlattr *, struct nf_conn *); + int (*to_nlattr)(struct sk_buff *, const struct nf_conn *); + unsigned int expect_class_max; + unsigned int flags; + unsigned int queue_num; + u16 data_len; + char nat_mod_name[16]; +}; + +struct nf_conntrack_expect_policy { + unsigned int max_expected; + unsigned int timeout; + char name[16]; +}; + +struct nf_conntrack_expect; + +struct nf_ct_helper_expectfn { + struct list_head head; + const char *name; + void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); +}; + +struct nf_conntrack_tuple_mask { + struct { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + } src; +}; + +struct nf_conntrack_expect { + struct hlist_node lnode; + struct hlist_node hnode; + struct nf_conntrack_tuple tuple; + struct nf_conntrack_tuple_mask mask; + refcount_t use; + unsigned int flags; + unsigned int class; + void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); + struct nf_conntrack_helper *helper; + struct nf_conn *master; + struct timer_list timeout; + union nf_inet_addr saved_addr; + union nf_conntrack_man_proto saved_proto; + enum ip_conntrack_dir dir; + struct callback_head rcu; +}; + +struct nf_conntrack_nat_helper { + struct list_head list; + char mod_name[16]; + struct module *module; +}; + +struct nf_conn_help { + struct nf_conntrack_helper __attribute__((btf_type_tag("rcu"))) *helper; + struct hlist_head expectations; + u8 expecting[4]; + long: 0; + char data[32]; +}; + +struct sock_extended_err { + __u32 ee_errno; + __u8 ee_origin; + __u8 ee_type; + __u8 ee_code; + __u8 ee_pad; + __u32 ee_info; + union { + __u32 ee_data; + struct sock_ee_data_rfc4884 ee_rfc4884; + }; +}; + +struct sock_exterr_skb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + struct sock_extended_err ee; + u16 addr_offset; + __be16 port; + u8 opt_stats: 1; + u8 unused: 7; +}; + +struct ip6_mtuinfo { + struct sockaddr_in6 ip6m_addr; + __u32 ip6m_mtu; +}; + +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; +}; + +struct cmsghdr { + __kernel_size_t cmsg_len; + int cmsg_level; + int cmsg_type; +}; + +struct drop_reason_list { + const char * const *reasons; + size_t n_reasons; +}; + +struct mesh_rmc { + struct hlist_head bucket[256]; + u32 idx_mask; +}; + +enum ieee80211_filter_flags { + FIF_ALLMULTI = 2, + FIF_FCSFAIL = 4, + FIF_PLCPFAIL = 8, + FIF_BCN_PRBRESP_PROMISC = 16, + FIF_CONTROL = 32, + FIF_OTHER_BSS = 64, + FIF_PSPOLL = 128, + FIF_PROBE_REQ = 256, + FIF_MCAST_ACTION = 512, +}; + +enum mac80211_scan_flags { + SCAN_SW_SCANNING = 0, + SCAN_HW_SCANNING = 1, + SCAN_ONCHANNEL_SCANNING = 2, + SCAN_COMPLETED = 3, + SCAN_ABORTED = 4, + SCAN_HW_CANCELLED = 5, + SCAN_BEACON_WAIT = 6, + SCAN_BEACON_DONE = 7, +}; + +enum ieee80211_conf_changed { + IEEE80211_CONF_CHANGE_SMPS = 2, + IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = 4, + IEEE80211_CONF_CHANGE_MONITOR = 8, + IEEE80211_CONF_CHANGE_PS = 16, + IEEE80211_CONF_CHANGE_POWER = 32, + IEEE80211_CONF_CHANGE_CHANNEL = 64, + IEEE80211_CONF_CHANGE_RETRY_LIMITS = 128, + IEEE80211_CONF_CHANGE_IDLE = 256, +}; + +enum ieee80211_max_queues { + IEEE80211_MAX_QUEUES = 16, + IEEE80211_MAX_QUEUE_MAP = 65535, +}; + +enum queue_stop_reason { + IEEE80211_QUEUE_STOP_REASON_DRIVER = 0, + IEEE80211_QUEUE_STOP_REASON_PS = 1, + IEEE80211_QUEUE_STOP_REASON_CSA = 2, + IEEE80211_QUEUE_STOP_REASON_AGGREGATION = 3, + IEEE80211_QUEUE_STOP_REASON_SUSPEND = 4, + IEEE80211_QUEUE_STOP_REASON_SKB_ADD = 5, + IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL = 6, + IEEE80211_QUEUE_STOP_REASON_FLUSH = 7, + IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN = 8, + IEEE80211_QUEUE_STOP_REASON_RESERVE_TID = 9, + IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE = 10, + IEEE80211_QUEUE_STOP_REASONS = 11, +}; + +enum ieee80211_radiotap_mcs_have { + IEEE80211_RADIOTAP_MCS_HAVE_BW = 1, + IEEE80211_RADIOTAP_MCS_HAVE_MCS = 2, + IEEE80211_RADIOTAP_MCS_HAVE_GI = 4, + IEEE80211_RADIOTAP_MCS_HAVE_FMT = 8, + IEEE80211_RADIOTAP_MCS_HAVE_FEC = 16, + IEEE80211_RADIOTAP_MCS_HAVE_STBC = 32, +}; + +enum ieee80211_radiotap_vht_known { + IEEE80211_RADIOTAP_VHT_KNOWN_STBC = 1, + IEEE80211_RADIOTAP_VHT_KNOWN_TXOP_PS_NA = 2, + IEEE80211_RADIOTAP_VHT_KNOWN_GI = 4, + IEEE80211_RADIOTAP_VHT_KNOWN_SGI_NSYM_DIS = 8, + IEEE80211_RADIOTAP_VHT_KNOWN_LDPC_EXTRA_OFDM_SYM = 16, + IEEE80211_RADIOTAP_VHT_KNOWN_BEAMFORMED = 32, + IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH = 64, + IEEE80211_RADIOTAP_VHT_KNOWN_GROUP_ID = 128, + IEEE80211_RADIOTAP_VHT_KNOWN_PARTIAL_AID = 256, +}; + +enum ieee80211_conf_flags { + IEEE80211_CONF_MONITOR = 1, + IEEE80211_CONF_PS = 2, + IEEE80211_CONF_IDLE = 4, + IEEE80211_CONF_OFFCHANNEL = 8, +}; + +enum rate_control_capabilities { + RATE_CTRL_CAPA_VHT_EXT_NSS_BW = 1, + RATE_CTRL_CAPA_AMPDU_TRIGGER = 2, +}; + +enum skb_drop_reason_subsys { + SKB_DROP_REASON_SUBSYS_CORE = 0, + SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, + SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, + SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 3, + SKB_DROP_REASON_SUBSYS_NUM = 4, +}; + +enum { + IEEE80211_RX_MSG = 1, + IEEE80211_TX_STATUS_MSG = 2, +}; + +struct iommu_group {}; + +enum show_regs_mode { + SHOW_REGS_SHORT = 0, + SHOW_REGS_USER = 1, + SHOW_REGS_ALL = 2, +}; + +enum which_selector { + FS = 0, + GS = 1, +}; + +enum { + AFFINITY = 0, + AFFINITY_LIST = 1, + EFFECTIVE = 2, + EFFECTIVE_LIST = 3, +}; + +typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); + +typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); + +struct trace_event_raw_sys_enter { + struct trace_entry ent; + long id; + unsigned long args[6]; + char __data[0]; +}; + +struct trace_event_raw_sys_exit { + struct trace_entry ent; + long id; + long ret; + char __data[0]; +}; + +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; +}; + +struct trace_event_data_offsets_sys_enter {}; + +struct trace_event_data_offsets_sys_exit {}; + +typedef void (*btf_trace_benchmark_event)(void *, const char *, u64); + +struct trace_event_raw_benchmark_event { + struct trace_entry ent; + char str[128]; + u64 delta; + char __data[0]; +}; + +struct trace_event_data_offsets_benchmark_event {}; + +struct mminit_pfnnid_cache { + unsigned long last_start; + unsigned long last_end; + int last_nid; +}; + +enum meminit_context { + MEMINIT_EARLY = 0, + MEMINIT_HOTPLUG = 1, +}; + +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, +}; + +struct pid_entry { + const char *name; + unsigned int len; umode_t mode; + const struct inode_operations *iop; + const struct file_operations *fop; + union proc_op op; }; -struct ramfs_fs_info { - struct ramfs_mount_opts mount_opts; -}; - -struct btrfs_csums { - u16 size; - const char name[10]; - const char driver[12]; -}; - -enum btrfs_lock_nesting { - BTRFS_NESTING_NORMAL = 0, - BTRFS_NESTING_COW = 1, - BTRFS_NESTING_LEFT = 2, - BTRFS_NESTING_RIGHT = 3, - BTRFS_NESTING_LEFT_COW = 4, - BTRFS_NESTING_RIGHT_COW = 5, - BTRFS_NESTING_SPLIT = 6, - BTRFS_NESTING_NEW_ROOT = 7, - BTRFS_NESTING_MAX = 8, -}; - -enum btrfs_mod_log_op { - BTRFS_MOD_LOG_KEY_REPLACE = 0, - BTRFS_MOD_LOG_KEY_ADD = 1, - BTRFS_MOD_LOG_KEY_REMOVE = 2, - BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING = 3, - BTRFS_MOD_LOG_KEY_REMOVE_WHILE_MOVING = 4, - BTRFS_MOD_LOG_MOVE_KEYS = 5, - BTRFS_MOD_LOG_ROOT_REPLACE = 6, -}; - -struct acpi_init_walk_info { - u32 table_index; - u32 object_count; - u32 method_count; - u32 serial_method_count; - u32 non_serial_method_count; - u32 serialized_method_count; - u32 device_count; - u32 op_region_count; - u32 field_count; - u32 buffer_count; - u32 package_count; - u32 op_region_init; - u32 field_init; - u32 buffer_init; - u32 package_init; - acpi_owner_id owner_id; -}; - -struct acpi_device_walk_info { - struct acpi_table_desc *table_desc; - struct acpi_evaluate_info *evaluate_info; - u32 device_count; - u32 num_STA; - u32 num_INI; -}; - -typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); - -struct device_attach_data { - struct device *dev; - bool check_async; - bool want_async; - bool have_async; -}; - -struct ata_eh_cmd_timeout_ent { - const u8 *commands; - const unsigned int *timeouts; +struct limit_names { + const char *name; + const char *unit; }; enum { - ATA_EH_SPDN_NCQ_OFF = 1, - ATA_EH_SPDN_SPEED_DOWN = 2, - ATA_EH_SPDN_FALLBACK_TO_PIO = 4, - ATA_EH_SPDN_KEEP_ERRORS = 8, - ATA_EFLAG_IS_IO = 1, - ATA_EFLAG_DUBIOUS_XFER = 2, - ATA_EFLAG_OLD_ER = -2147483648, - ATA_ECAT_NONE = 0, - ATA_ECAT_ATA_BUS = 1, - ATA_ECAT_TOUT_HSM = 2, - ATA_ECAT_UNK_DEV = 3, - ATA_ECAT_DUBIOUS_NONE = 4, - ATA_ECAT_DUBIOUS_ATA_BUS = 5, - ATA_ECAT_DUBIOUS_TOUT_HSM = 6, - ATA_ECAT_DUBIOUS_UNK_DEV = 7, - ATA_ECAT_NR = 8, - ATA_EH_CMD_DFL_TIMEOUT = 5000, - ATA_EH_RESET_COOL_DOWN = 5000, - ATA_EH_PRERESET_TIMEOUT = 10000, - ATA_EH_FASTDRAIN_INTERVAL = 3000, - ATA_EH_UA_TRIES = 5, - ATA_EH_PROBE_TRIAL_INTERVAL = 60000, - ATA_EH_PROBE_TRIALS = 2, + FOLL_WRITE = 1, + FOLL_GET = 2, + FOLL_DUMP = 4, + FOLL_FORCE = 8, + FOLL_NOWAIT = 16, + FOLL_NOFAULT = 32, + FOLL_HWPOISON = 64, + FOLL_ANON = 128, + FOLL_LONGTERM = 256, + FOLL_SPLIT_PMD = 512, + FOLL_PCI_P2PDMA = 1024, + FOLL_INTERRUPTIBLE = 2048, + FOLL_HONOR_NUMA_FAULT = 4096, +}; + +struct map_files_info { + unsigned long start; + unsigned long end; + fmode_t mode; +}; + +struct syscall_info { + __u64 sp; + struct seccomp_data data; +}; + +struct genradix_root; + +struct __genradix { + struct genradix_root *root; +}; + +struct proc_timens_offset { + int clockid; + struct timespec64 val; +}; + +struct tgid_iter { + unsigned int tgid; + struct task_struct *task; +}; + +struct btrfs_lockdep_keyset { + u64 id; + char names[192]; + struct lock_class_key keys[8]; +}; + +struct ipc_proc_iface { + const char *path; + const char *header; + int ids; + int (*show)(struct seq_file *, void *); +}; + +struct ipc_proc_iter { + struct ipc_namespace *ns; + struct pid_namespace *pid_ns; + struct ipc_proc_iface *iface; +}; + +struct biovec_slab { + int nr_vecs; + char *name; + struct kmem_cache *slab; +}; + +struct bvec_iter_all { + struct bio_vec bv; + int idx; + unsigned int done; +}; + +struct bio_slab { + struct kmem_cache *slab; + unsigned int slab_ref; + unsigned int slab_size; + char name[8]; +}; + +struct fb_cmap_user { + __u32 start; + __u32 len; + __u16 __attribute__((btf_type_tag("user"))) *red; + __u16 __attribute__((btf_type_tag("user"))) *green; + __u16 __attribute__((btf_type_tag("user"))) *blue; + __u16 __attribute__((btf_type_tag("user"))) *transp; +}; + +struct prt_quirk { + const struct dmi_system_id *system; + unsigned int segment; + unsigned int bus; + unsigned int device; + unsigned char pin; + const char *source; + const char *actual_source; +}; + +enum acpi_irq_model_id { + ACPI_IRQ_MODEL_PIC = 0, + ACPI_IRQ_MODEL_IOAPIC = 1, + ACPI_IRQ_MODEL_IOSAPIC = 2, + ACPI_IRQ_MODEL_PLATFORM = 3, + ACPI_IRQ_MODEL_GIC = 4, + ACPI_IRQ_MODEL_LPIC = 5, + ACPI_IRQ_MODEL_COUNT = 6, +}; + +enum pci_irq_reroute_variant { + INTEL_IRQ_REROUTE_VARIANT = 1, + MAX_IRQ_REROUTE_VARIANTS = 3, +}; + +struct acpi_pci_routing_table { + u32 length; + u32 pin; + u64 address; + u32 source_index; + union { + char pad[4]; + struct { + struct {} __Empty_source; + char source[0]; + }; + }; +}; + +struct acpi_pci_id { + u16 segment; + u16 bus; + u16 device; + u16 function; +}; + +struct acpi_prt_entry { + struct acpi_pci_id id; + u8 pin; + acpi_handle link; + u32 index; +}; + +struct clk_composite { + struct clk_hw hw; + struct clk_ops ops; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + const struct clk_ops *mux_ops; + const struct clk_ops *rate_ops; + const struct clk_ops *gate_ops; +}; + +struct exar8250; + +struct exar8250_board { + unsigned int num_ports; + unsigned int reg_shift; + int (*setup)(struct exar8250 *, struct pci_dev *, struct uart_8250_port *, int); + void (*exit)(struct pci_dev *); +}; + +struct exar8250 { + unsigned int nr; + struct exar8250_board *board; + void *virt; + int line[0]; +}; + +struct exar8250_platform { + int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); + const struct serial_rs485 *rs485_supported; + int (*register_gpio)(struct pci_dev *, struct uart_8250_port *); + void (*unregister_gpio)(struct uart_8250_port *); +}; + +struct iwl_time_quota_data_v1 { + __le32 id_and_color; + __le32 quota; + __le32 max_duration; +}; + +struct iwl_mvm_quota_iterator_data { + int n_interfaces[4]; + int colors[4]; + int low_latency[4]; + int n_low_latency_bindings; + struct ieee80211_vif *disabled_vif; +}; + +enum rtl_version { + RTL_VER_UNKNOWN = 0, + RTL_VER_01 = 1, + RTL_VER_02 = 2, + RTL_VER_03 = 3, + RTL_VER_04 = 4, + RTL_VER_05 = 5, + RTL_VER_06 = 6, + RTL_VER_07 = 7, + RTL_VER_08 = 8, + RTL_VER_09 = 9, + RTL_TEST_01 = 10, + RTL_VER_10 = 11, + RTL_VER_11 = 12, + RTL_VER_12 = 13, + RTL_VER_13 = 14, + RTL_VER_14 = 15, + RTL_VER_15 = 16, + RTL_VER_MAX = 17, +}; + +enum rtl8152_flags { + RTL8152_INACCESSIBLE = 0, + RTL8152_SET_RX_MODE = 1, + WORK_ENABLE = 2, + RTL8152_LINK_CHG = 3, + SELECTIVE_SUSPEND = 4, + PHY_RESET = 5, + SCHEDULE_TASKLET = 6, + GREEN_ETHERNET = 7, + RX_EPROTO = 8, + IN_PRE_RESET = 9, + PROBED_WITH_NO_ERRORS = 10, + PROBE_SHOULD_RETRY = 11, }; enum { - ATA_READID_POSTRESET = 1, - ATA_DNXFER_PIO = 0, - ATA_DNXFER_DMA = 1, - ATA_DNXFER_40C = 2, - ATA_DNXFER_FORCE_PIO = 3, - ATA_DNXFER_FORCE_PIO0 = 4, - ATA_DNXFER_QUIET = -2147483648, + NETIF_MSG_DRV_BIT = 0, + NETIF_MSG_PROBE_BIT = 1, + NETIF_MSG_LINK_BIT = 2, + NETIF_MSG_TIMER_BIT = 3, + NETIF_MSG_IFDOWN_BIT = 4, + NETIF_MSG_IFUP_BIT = 5, + NETIF_MSG_RX_ERR_BIT = 6, + NETIF_MSG_TX_ERR_BIT = 7, + NETIF_MSG_TX_QUEUED_BIT = 8, + NETIF_MSG_INTR_BIT = 9, + NETIF_MSG_TX_DONE_BIT = 10, + NETIF_MSG_RX_STATUS_BIT = 11, + NETIF_MSG_PKTDATA_BIT = 12, + NETIF_MSG_HW_BIT = 13, + NETIF_MSG_WOL_BIT = 14, + NETIF_MSG_CLASS_COUNT = 15, }; -struct speed_down_verdict_arg { - u64 since; - int xfer_ok; - int nr_errors[8]; +enum rtl_register_content { + _2500bps = 1024, + _1250bps = 512, + _500bps = 256, + _tx_flow = 64, + _rx_flow = 32, + _1000bps = 16, + _100bps = 8, + _10bps = 4, + LINK_STATUS = 2, + FULL_DUP = 1, +}; + +enum rtl_fw_type { + RTL_FW_END = 0, + RTL_FW_PLA = 1, + RTL_FW_USB = 2, + RTL_FW_PHY_START = 3, + RTL_FW_PHY_STOP = 4, + RTL_FW_PHY_NC = 5, + RTL_FW_PHY_FIXUP = 6, + RTL_FW_PHY_UNION_NC = 7, + RTL_FW_PHY_UNION_NC1 = 8, + RTL_FW_PHY_UNION_NC2 = 9, + RTL_FW_PHY_UNION_UC2 = 10, + RTL_FW_PHY_UNION_UC = 11, + RTL_FW_PHY_UNION_MISC = 12, + RTL_FW_PHY_SPEED_UP = 13, + RTL_FW_PHY_VER = 14, +}; + +enum rtl8152_fw_fixup_cmd { + FW_FIXUP_AND = 0, + FW_FIXUP_OR = 1, + FW_FIXUP_NOT = 2, + FW_FIXUP_XOR = 3, +}; + +enum spd_duplex { + NWAY_10M_HALF = 0, + NWAY_10M_FULL = 1, + NWAY_100M_HALF = 2, + NWAY_100M_FULL = 3, + NWAY_1000M_FULL = 4, + FORCE_10M_HALF = 5, + FORCE_10M_FULL = 6, + FORCE_100M_HALF = 7, + FORCE_100M_FULL = 8, + FORCE_1000M_FULL = 9, + NWAY_2500M_FULL = 10, +}; + +enum rtl8152_fw_flags { + FW_FLAGS_USB = 0, + FW_FLAGS_PLA = 1, + FW_FLAGS_START = 2, + FW_FLAGS_STOP = 3, + FW_FLAGS_NC = 4, + FW_FLAGS_NC1 = 5, + FW_FLAGS_NC2 = 6, + FW_FLAGS_UC2 = 7, + FW_FLAGS_UC = 8, + FW_FLAGS_SPEED_UP = 9, + FW_FLAGS_VER = 10, +}; + +enum tx_csum_stat { + TX_CSUM_SUCCESS = 0, + TX_CSUM_TSO = 1, + TX_CSUM_NONE = 2, +}; + +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, +}; + +struct r8152; + +struct rx_agg { + struct list_head list; + struct list_head info_list; + struct urb *urb; + struct r8152 *context; + struct page *page; + void *buffer; +}; + +struct tx_agg { + struct list_head list; + struct urb *urb; + struct r8152 *context; + void *buffer; + void *head; + u32 skb_num; + u32 skb_len; +}; + +struct mii_if_info { + int phy_id; + int advertising; + int phy_id_mask; + int reg_num_mask; + unsigned int full_duplex: 1; + unsigned int force_media: 1; + unsigned int supports_gmii: 1; + struct net_device *dev; + int (*mdio_read)(struct net_device *, int, int); + void (*mdio_write)(struct net_device *, int, int, int); +}; + +struct rtl_ops { + void (*init)(struct r8152 *); + int (*enable)(struct r8152 *); + void (*disable)(struct r8152 *); + void (*up)(struct r8152 *); + void (*down)(struct r8152 *); + void (*unload)(struct r8152 *); + int (*eee_get)(struct r8152 *, struct ethtool_keee *); + int (*eee_set)(struct r8152 *, struct ethtool_keee *); + bool (*in_nway)(struct r8152 *); + void (*hw_phy_cfg)(struct r8152 *); + void (*autosuspend_en)(struct r8152 *, bool); + void (*change_mtu)(struct r8152 *); +}; + +struct ups_info { + u32 r_tune: 1; + u32 _10m_ckdiv: 1; + u32 _250m_ckdiv: 1; + u32 aldps: 1; + u32 lite_mode: 2; + u32 speed_duplex: 4; + u32 eee: 1; + u32 eee_lite: 1; + u32 eee_ckdiv: 1; + u32 eee_plloff_100: 1; + u32 eee_plloff_giga: 1; + u32 eee_cmod_lv: 1; + u32 green: 1; + u32 flow_control: 1; + u32 ctap_short_off: 1; +}; + +struct rtl_fw { + const char *fw_name; + const struct firmware *fw; + char version[32]; + int (*pre_fw)(struct r8152 *); + int (*post_fw)(struct r8152 *); + bool retry; +}; + +struct r8152 { + unsigned long flags; + struct usb_device *udev; + struct napi_struct napi; + struct usb_interface *intf; + struct net_device *netdev; + struct urb *intr_urb; + struct tx_agg tx_info[4]; + struct list_head rx_info; + struct list_head rx_used; + struct list_head rx_done; + struct list_head tx_free; + struct sk_buff_head tx_queue; + struct sk_buff_head rx_queue; + spinlock_t rx_lock; + spinlock_t tx_lock; + struct delayed_work schedule; + struct delayed_work hw_phy_work; + struct mii_if_info mii; + struct mutex control; + struct notifier_block pm_notifier; + struct tasklet_struct tx_tl; + struct rtl_ops rtl_ops; + struct ups_info ups_info; + struct rtl_fw rtl_fw; + atomic_t rx_count; + bool eee_en; + int intr_interval; + u32 saved_wolopts; + u32 msg_enable; + u32 tx_qlen; + u32 coalesce; + u32 advertising; + u32 rx_buf_sz; + u32 rx_copybreak; + u32 rx_pending; + u32 fc_pause_on; + u32 fc_pause_off; + unsigned int pipe_in; + unsigned int pipe_out; + unsigned int pipe_intr; + unsigned int pipe_ctrl_in; + unsigned int pipe_ctrl_out; + u32 support_2500full: 1; + u32 lenovo_macpassthru: 1; + u32 dell_tb_rx_agg_bug: 1; + u16 ocp_base; + u16 speed; + u16 eee_adv; + u8 *intr_buff; + u8 version; + u8 duplex; + u8 autoneg; + unsigned int reg_access_reset_count; +}; + +struct fw_block { + __le32 type; + __le32 length; +}; + +struct fw_header { + u8 checksum[32]; + char version[32]; + struct fw_block blocks[0]; +}; + +struct fw_mac { + struct fw_block blk_hdr; + __le16 fw_offset; + __le16 fw_reg; + __le16 bp_ba_addr; + __le16 bp_ba_value; + __le16 bp_en_addr; + __le16 bp_en_value; + __le16 bp_start; + __le16 bp_num; + __le16 bp[16]; + __le32 reserved; + __le16 fw_ver_reg; + u8 fw_ver_data; + char info[0]; +} __attribute__((packed)); + +struct fw_phy_patch_key { + struct fw_block blk_hdr; + __le16 key_reg; + __le16 key_data; + __le32 reserved; +}; + +struct fw_phy_nc { + struct fw_block blk_hdr; + __le16 fw_offset; + __le16 fw_reg; + __le16 ba_reg; + __le16 ba_data; + __le16 patch_en_addr; + __le16 patch_en_value; + __le16 mode_reg; + __le16 mode_pre; + __le16 mode_post; + __le16 reserved; + __le16 bp_start; + __le16 bp_num; + __le16 bp[4]; + char info[0]; +}; + +struct fw_phy_set { + __le16 addr; + __le16 data; +}; + +struct fw_phy_ver { + struct fw_block blk_hdr; + struct fw_phy_set ver; + __le32 reserved; +}; + +struct fw_phy_union { + struct fw_block blk_hdr; + __le16 fw_offset; + __le16 fw_reg; + struct fw_phy_set pre_set[2]; + struct fw_phy_set bp[8]; + struct fw_phy_set bp_en; + u8 pre_num; + u8 bp_num; + char info[0]; +} __attribute__((packed)); + +struct fw_phy_fixup { + struct fw_block blk_hdr; + struct fw_phy_set setting; + __le16 bit_cmd; + __le16 reserved; +}; + +struct fw_phy_speed_up { + struct fw_block blk_hdr; + __le16 fw_offset; + __le16 version; + __le16 fw_reg; + __le16 reserved; + char info[0]; +}; + +struct tx_desc { + __le32 opts1; + __le32 opts2; +}; + +struct rx_desc { + __le32 opts1; + __le32 opts2; + __le32 opts3; + __le32 opts4; + __le32 opts5; + __le32 opts6; +}; + +typedef enum gro_result gro_result_t; + +struct tally_counter { + __le64 tx_packets; + __le64 rx_packets; + __le64 tx_errors; + __le32 rx_errors; + __le16 rx_missed; + __le16 align_errors; + __le32 tx_one_collision; + __le32 tx_multi_collision; + __le64 rx_unicast; + __le64 rx_broadcast; + __le32 rx_multicast; + __le16 tx_aborted; + __le16 tx_underrun; +}; + +struct llc_pdu_un { + u8 dsap; + u8 ssap; + u8 ctrl_1; +}; + +struct llc_addr { + unsigned char lsap; + unsigned char mac[6]; +}; + +struct llc_sap { + unsigned char state; + unsigned char p_bit; + unsigned char f_bit; + refcount_t refcnt; + int (*rcv_func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *); + struct llc_addr laddr; + struct list_head node; + spinlock_t sk_lock; + int sk_count; + struct hlist_nulls_head sk_laddr_hash[64]; + struct hlist_head sk_dev_hash[64]; + struct callback_head rcu; +}; + +struct nf_ct_bridge_info { + struct nf_hook_ops *ops; + unsigned int ops_size; + struct module *me; +}; + +struct nf_sockopt_ops { + struct list_head list; + u_int8_t pf; + int set_optmin; + int set_optmax; + int (*set)(struct sock *, int, sockptr_t, unsigned int); + int get_optmin; + int get_optmax; + int (*get)(struct sock *, int, void __attribute__((btf_type_tag("user"))) *, int *); + struct module *owner; +}; + +struct nf_conntrack_net { + atomic_t count; + unsigned int expect_count; + unsigned int users4; + unsigned int users6; + unsigned int users_bridge; + struct ctl_table_header *sysctl_header; +}; + +struct nf_conntrack_zone { + u16 id; + u8 flags; + u8 dir; +}; + +enum { + LINUX_MIB_NUM = 0, + LINUX_MIB_SYNCOOKIESSENT = 1, + LINUX_MIB_SYNCOOKIESRECV = 2, + LINUX_MIB_SYNCOOKIESFAILED = 3, + LINUX_MIB_EMBRYONICRSTS = 4, + LINUX_MIB_PRUNECALLED = 5, + LINUX_MIB_RCVPRUNED = 6, + LINUX_MIB_OFOPRUNED = 7, + LINUX_MIB_OUTOFWINDOWICMPS = 8, + LINUX_MIB_LOCKDROPPEDICMPS = 9, + LINUX_MIB_ARPFILTER = 10, + LINUX_MIB_TIMEWAITED = 11, + LINUX_MIB_TIMEWAITRECYCLED = 12, + LINUX_MIB_TIMEWAITKILLED = 13, + LINUX_MIB_PAWSACTIVEREJECTED = 14, + LINUX_MIB_PAWSESTABREJECTED = 15, + LINUX_MIB_DELAYEDACKS = 16, + LINUX_MIB_DELAYEDACKLOCKED = 17, + LINUX_MIB_DELAYEDACKLOST = 18, + LINUX_MIB_LISTENOVERFLOWS = 19, + LINUX_MIB_LISTENDROPS = 20, + LINUX_MIB_TCPHPHITS = 21, + LINUX_MIB_TCPPUREACKS = 22, + LINUX_MIB_TCPHPACKS = 23, + LINUX_MIB_TCPRENORECOVERY = 24, + LINUX_MIB_TCPSACKRECOVERY = 25, + LINUX_MIB_TCPSACKRENEGING = 26, + LINUX_MIB_TCPSACKREORDER = 27, + LINUX_MIB_TCPRENOREORDER = 28, + LINUX_MIB_TCPTSREORDER = 29, + LINUX_MIB_TCPFULLUNDO = 30, + LINUX_MIB_TCPPARTIALUNDO = 31, + LINUX_MIB_TCPDSACKUNDO = 32, + LINUX_MIB_TCPLOSSUNDO = 33, + LINUX_MIB_TCPLOSTRETRANSMIT = 34, + LINUX_MIB_TCPRENOFAILURES = 35, + LINUX_MIB_TCPSACKFAILURES = 36, + LINUX_MIB_TCPLOSSFAILURES = 37, + LINUX_MIB_TCPFASTRETRANS = 38, + LINUX_MIB_TCPSLOWSTARTRETRANS = 39, + LINUX_MIB_TCPTIMEOUTS = 40, + LINUX_MIB_TCPLOSSPROBES = 41, + LINUX_MIB_TCPLOSSPROBERECOVERY = 42, + LINUX_MIB_TCPRENORECOVERYFAIL = 43, + LINUX_MIB_TCPSACKRECOVERYFAIL = 44, + LINUX_MIB_TCPRCVCOLLAPSED = 45, + LINUX_MIB_TCPDSACKOLDSENT = 46, + LINUX_MIB_TCPDSACKOFOSENT = 47, + LINUX_MIB_TCPDSACKRECV = 48, + LINUX_MIB_TCPDSACKOFORECV = 49, + LINUX_MIB_TCPABORTONDATA = 50, + LINUX_MIB_TCPABORTONCLOSE = 51, + LINUX_MIB_TCPABORTONMEMORY = 52, + LINUX_MIB_TCPABORTONTIMEOUT = 53, + LINUX_MIB_TCPABORTONLINGER = 54, + LINUX_MIB_TCPABORTFAILED = 55, + LINUX_MIB_TCPMEMORYPRESSURES = 56, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, + LINUX_MIB_TCPSACKDISCARD = 58, + LINUX_MIB_TCPDSACKIGNOREDOLD = 59, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, + LINUX_MIB_TCPSPURIOUSRTOS = 61, + LINUX_MIB_TCPMD5NOTFOUND = 62, + LINUX_MIB_TCPMD5UNEXPECTED = 63, + LINUX_MIB_TCPMD5FAILURE = 64, + LINUX_MIB_SACKSHIFTED = 65, + LINUX_MIB_SACKMERGED = 66, + LINUX_MIB_SACKSHIFTFALLBACK = 67, + LINUX_MIB_TCPBACKLOGDROP = 68, + LINUX_MIB_PFMEMALLOCDROP = 69, + LINUX_MIB_TCPMINTTLDROP = 70, + LINUX_MIB_TCPDEFERACCEPTDROP = 71, + LINUX_MIB_IPRPFILTER = 72, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, + LINUX_MIB_TCPREQQFULLDROP = 75, + LINUX_MIB_TCPRETRANSFAIL = 76, + LINUX_MIB_TCPRCVCOALESCE = 77, + LINUX_MIB_TCPBACKLOGCOALESCE = 78, + LINUX_MIB_TCPOFOQUEUE = 79, + LINUX_MIB_TCPOFODROP = 80, + LINUX_MIB_TCPOFOMERGE = 81, + LINUX_MIB_TCPCHALLENGEACK = 82, + LINUX_MIB_TCPSYNCHALLENGE = 83, + LINUX_MIB_TCPFASTOPENACTIVE = 84, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, + LINUX_MIB_TCPFASTOPENPASSIVE = 86, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, + LINUX_MIB_BUSYPOLLRXPACKETS = 92, + LINUX_MIB_TCPAUTOCORKING = 93, + LINUX_MIB_TCPFROMZEROWINDOWADV = 94, + LINUX_MIB_TCPTOZEROWINDOWADV = 95, + LINUX_MIB_TCPWANTZEROWINDOWADV = 96, + LINUX_MIB_TCPSYNRETRANS = 97, + LINUX_MIB_TCPORIGDATASENT = 98, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, + LINUX_MIB_TCPHYSTARTTRAINCWND = 100, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, + LINUX_MIB_TCPHYSTARTDELAYCWND = 102, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, + LINUX_MIB_TCPACKSKIPPEDPAWS = 104, + LINUX_MIB_TCPACKSKIPPEDSEQ = 105, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, + LINUX_MIB_TCPWINPROBE = 109, + LINUX_MIB_TCPKEEPALIVE = 110, + LINUX_MIB_TCPMTUPFAIL = 111, + LINUX_MIB_TCPMTUPSUCCESS = 112, + LINUX_MIB_TCPDELIVERED = 113, + LINUX_MIB_TCPDELIVEREDCE = 114, + LINUX_MIB_TCPACKCOMPRESSED = 115, + LINUX_MIB_TCPZEROWINDOWDROP = 116, + LINUX_MIB_TCPRCVQDROP = 117, + LINUX_MIB_TCPWQUEUETOOBIG = 118, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, + LINUX_MIB_TCPTIMEOUTREHASH = 120, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, + LINUX_MIB_TCPDSACKRECVSEGS = 122, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 124, + LINUX_MIB_TCPMIGRATEREQFAILURE = 125, + LINUX_MIB_TCPPLBREHASH = 126, + LINUX_MIB_TCPAOREQUIRED = 127, + LINUX_MIB_TCPAOBAD = 128, + LINUX_MIB_TCPAOKEYNOTFOUND = 129, + LINUX_MIB_TCPAOGOOD = 130, + LINUX_MIB_TCPAODROPPEDICMPS = 131, + __LINUX_MIB_MAX = 132, +}; + +struct seg6_pernet_data { + struct mutex lock; + struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; +}; + +struct udp_seq_afinfo { + sa_family_t family; + struct udp_table *udp_table; +}; + +enum { + UDP_MIB_NUM = 0, + UDP_MIB_INDATAGRAMS = 1, + UDP_MIB_NOPORTS = 2, + UDP_MIB_INERRORS = 3, + UDP_MIB_OUTDATAGRAMS = 4, + UDP_MIB_RCVBUFERRORS = 5, + UDP_MIB_SNDBUFERRORS = 6, + UDP_MIB_CSUMERRORS = 7, + UDP_MIB_IGNOREDMULTI = 8, + UDP_MIB_MEMERRORS = 9, + __UDP_MIB_MAX = 10, +}; + +enum { + UDP_FLAGS_CORK = 0, + UDP_FLAGS_NO_CHECK6_TX = 1, + UDP_FLAGS_NO_CHECK6_RX = 2, + UDP_FLAGS_GRO_ENABLED = 3, + UDP_FLAGS_ACCEPT_FRAGLIST = 4, + UDP_FLAGS_ACCEPT_L4 = 5, + UDP_FLAGS_ENCAP_ENABLED = 6, + UDP_FLAGS_UDPLITE_SEND_CC = 7, + UDP_FLAGS_UDPLITE_RECV_CC = 8, +}; + +struct udp_iter_state { + struct seq_net_private p; + int bucket; +}; + +struct udp_dev_scratch { + u32 _tsize_state; + u16 len; + bool is_linear; + bool csum_unnecessary; +}; + +struct ipv6_sr_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; + __u8 first_segment; + __u8 flags; + __u16 tag; + struct in6_addr segments[0]; +}; + +struct ip6_tnl_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi6 *); + int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); +}; + +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); + +enum mac80211_tx_status_flags { + IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = 1, +}; + +enum ieee80211_radiotap_tx_flags { + IEEE80211_RADIOTAP_F_TX_FAIL = 1, + IEEE80211_RADIOTAP_F_TX_CTS = 2, + IEEE80211_RADIOTAP_F_TX_RTS = 4, + IEEE80211_RADIOTAP_F_TX_NOACK = 8, + IEEE80211_RADIOTAP_F_TX_NOSEQNO = 16, + IEEE80211_RADIOTAP_F_TX_ORDER = 32, +}; + +enum ieee80211_radiotap_mcs_flags { + IEEE80211_RADIOTAP_MCS_BW_MASK = 3, + IEEE80211_RADIOTAP_MCS_BW_20 = 0, + IEEE80211_RADIOTAP_MCS_BW_40 = 1, + IEEE80211_RADIOTAP_MCS_BW_20L = 2, + IEEE80211_RADIOTAP_MCS_BW_20U = 3, + IEEE80211_RADIOTAP_MCS_SGI = 4, + IEEE80211_RADIOTAP_MCS_FMT_GF = 8, + IEEE80211_RADIOTAP_MCS_FEC_LDPC = 16, + IEEE80211_RADIOTAP_MCS_STBC_MASK = 96, + IEEE80211_RADIOTAP_MCS_STBC_1 = 1, + IEEE80211_RADIOTAP_MCS_STBC_2 = 2, + IEEE80211_RADIOTAP_MCS_STBC_3 = 3, + IEEE80211_RADIOTAP_MCS_STBC_SHIFT = 5, +}; + +enum ieee80211_radiotap_vht_flags { + IEEE80211_RADIOTAP_VHT_FLAG_STBC = 1, + IEEE80211_RADIOTAP_VHT_FLAG_TXOP_PS_NA = 2, + IEEE80211_RADIOTAP_VHT_FLAG_SGI = 4, + IEEE80211_RADIOTAP_VHT_FLAG_SGI_NSYM_M10_9 = 8, + IEEE80211_RADIOTAP_VHT_FLAG_LDPC_EXTRA_OFDM_SYM = 16, + IEEE80211_RADIOTAP_VHT_FLAG_BEAMFORMED = 32, +}; + +enum mac80211_tx_control_flags { + IEEE80211_TX_CTRL_PORT_CTRL_PROTO = 1, + IEEE80211_TX_CTRL_PS_RESPONSE = 2, + IEEE80211_TX_CTRL_RATE_INJECT = 4, + IEEE80211_TX_CTRL_AMSDU = 8, + IEEE80211_TX_CTRL_FAST_XMIT = 16, + IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP = 32, + IEEE80211_TX_INTCFL_NEED_TXPROCESSING = 64, + IEEE80211_TX_CTRL_NO_SEQNO = 128, + IEEE80211_TX_CTRL_DONT_REORDER = 256, + IEEE80211_TX_CTRL_MCAST_MLO_FIRST_TX = 512, + IEEE80211_TX_CTRL_MLO_LINK = 4026531840, +}; + +enum ieee80211_sta_flags { + IEEE80211_STA_CONNECTION_POLL = 2, + IEEE80211_STA_CONTROL_PORT = 4, + IEEE80211_STA_MFP_ENABLED = 64, + IEEE80211_STA_UAPSD_ENABLED = 128, + IEEE80211_STA_NULLFUNC_ACKED = 256, + IEEE80211_STA_ENABLE_RRM = 32768, +}; + +enum ieee80211_tdls_actioncode { + WLAN_TDLS_SETUP_REQUEST = 0, + WLAN_TDLS_SETUP_RESPONSE = 1, + WLAN_TDLS_SETUP_CONFIRM = 2, + WLAN_TDLS_TEARDOWN = 3, + WLAN_TDLS_PEER_TRAFFIC_INDICATION = 4, + WLAN_TDLS_CHANNEL_SWITCH_REQUEST = 5, + WLAN_TDLS_CHANNEL_SWITCH_RESPONSE = 6, + WLAN_TDLS_PEER_PSM_REQUEST = 7, + WLAN_TDLS_PEER_PSM_RESPONSE = 8, + WLAN_TDLS_PEER_TRAFFIC_RESPONSE = 9, + WLAN_TDLS_DISCOVERY_REQUEST = 10, +}; + +struct stack_frame_user { + const void __attribute__((btf_type_tag("user"))) *next_fp; + unsigned long ret_addr; +}; + +typedef bool (*stack_trace_consume_fn)(void *, unsigned long); + +struct _cache_table { + unsigned char descriptor; + char cache_type; + short size; +}; + +enum cache_type { + CACHE_TYPE_NOCACHE = 0, + CACHE_TYPE_INST = 1, + CACHE_TYPE_DATA = 2, + CACHE_TYPE_SEPARATE = 3, + CACHE_TYPE_UNIFIED = 4, +}; + +enum _cache_type { + CTYPE_NULL = 0, + CTYPE_DATA = 1, + CTYPE_INST = 2, + CTYPE_UNIFIED = 3, +}; + +union _cpuid4_leaf_eax { + struct { + enum _cache_type type: 5; + unsigned int level: 3; + unsigned int is_self_initializing: 1; + unsigned int is_fully_associative: 1; + unsigned int reserved: 4; + unsigned int num_threads_sharing: 12; + unsigned int num_cores_on_die: 6; + } split; + u32 full; +}; + +union _cpuid4_leaf_ebx { + struct { + unsigned int coherency_line_size: 12; + unsigned int physical_line_partition: 10; + unsigned int ways_of_associativity: 10; + } split; + u32 full; +}; + +union _cpuid4_leaf_ecx { + struct { + unsigned int number_of_sets: 32; + } split; + u32 full; +}; + +union l1_cache { + struct { + unsigned int line_size: 8; + unsigned int lines_per_tag: 8; + unsigned int assoc: 8; + unsigned int size_in_kb: 8; + }; + unsigned int val; +}; + +union l2_cache { + struct { + unsigned int line_size: 8; + unsigned int lines_per_tag: 4; + unsigned int assoc: 4; + unsigned int size_in_kb: 16; + }; + unsigned int val; +}; + +union l3_cache { + struct { + unsigned int line_size: 8; + unsigned int lines_per_tag: 4; + unsigned int assoc: 4; + unsigned int res: 2; + unsigned int size_encoded: 14; + }; + unsigned int val; +}; + +struct cacheinfo; + +struct cpu_cacheinfo { + struct cacheinfo *info_list; + unsigned int per_cpu_data_slice_size; + unsigned int num_levels; + unsigned int num_leaves; + bool cpu_map_populated; + bool early_ci_levels; +}; + +struct cacheinfo { + unsigned int id; + enum cache_type type; + unsigned int level; + unsigned int coherency_line_size; + unsigned int number_of_sets; + unsigned int ways_of_associativity; + unsigned int physical_line_partition; + unsigned int size; + cpumask_t shared_cpu_map; + unsigned int attributes; + void *fw_token; + bool disable_sysfs; + void *priv; +}; + +struct amd_northbridge; + +struct _cpuid4_info_regs { + union _cpuid4_leaf_eax eax; + union _cpuid4_leaf_ebx ebx; + union _cpuid4_leaf_ecx ecx; + unsigned int id; + unsigned long size; + struct amd_northbridge *nb; +}; + +struct amd_l3_cache { + unsigned int indices; + u8 subcaches[4]; +}; + +struct threshold_bank; + +struct amd_northbridge { + struct pci_dev *root; + struct pci_dev *misc; + struct pci_dev *link; + struct amd_l3_cache l3_cache; + struct threshold_bank *bank4; +}; + +struct threshold_block; + +struct threshold_bank { + struct kobject *kobj; + struct threshold_block *blocks; + refcount_t cpus; + unsigned int shared; +}; + +struct threshold_block { + unsigned int block; + unsigned int bank; + unsigned int cpu; + u32 address; + u16 interrupt_enable; + bool interrupt_capable; + u16 threshold_limit; + struct kobject kobj; + struct list_head miscj; +}; + +struct sigqueue { + struct list_head list; + int flags; + kernel_siginfo_t info; + struct ucounts *ucounts; +}; + +struct siginfo { + union { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; + int _si_pad[32]; + }; +}; + +typedef struct siginfo siginfo_t; + +struct ptrace_peeksiginfo_args { + __u64 off; + __u32 flags; + __s32 nr; +}; + +struct ptrace_syscall_info { + __u8 op; + __u8 pad[3]; + __u32 arch; + __u64 instruction_pointer; + __u64 stack_pointer; + union { + struct { + __u64 nr; + __u64 args[6]; + } entry; + struct { + __s64 rval; + __u8 is_error; + } exit; + struct { + __u64 nr; + __u64 args[6]; + __u32 ret_data; + } seccomp; + }; +}; + +struct ptrace_rseq_configuration { + __u64 rseq_abi_pointer; + __u32 rseq_abi_size; + __u32 signature; + __u32 flags; + __u32 pad; +}; + +struct user_regset_view { + const char *name; + const struct user_regset *regsets; + unsigned int n; + u32 e_flags; + u16 e_machine; + u8 ei_osabi; +}; + +typedef class_mutex_t class_mutex_intr_t; + +typedef struct { + rwlock_t *lock; +} class_write_lock_irq_t; + +typedef struct task_struct *class_task_lock_t; + +typedef struct { + spinlock_t *lock; +} class_spinlock_t; + +struct trace_bprintk_fmt { + struct list_head list; + const char *fmt; +}; + +enum netns_bpf_attach_type { + NETNS_BPF_INVALID = -1, + NETNS_BPF_FLOW_DISSECTOR = 0, + NETNS_BPF_SK_LOOKUP = 1, + MAX_NETNS_BPF_ATTACH_TYPE = 2, +}; + +struct bpf_netns_link { + struct bpf_link link; + enum bpf_attach_type type; + enum netns_bpf_attach_type netns_type; + struct net *net; + struct list_head node; +}; + +struct bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; +}; + +struct madvise_walk_private { + struct mmu_gather *tlb; + bool pageout; +}; + +struct mmu_notifier_range { + unsigned long start; + unsigned long end; +}; + +typedef unsigned int zap_flags_t; + +struct zap_details { + struct folio *single_folio; + bool even_cows; + zap_flags_t zap_flags; +}; + +struct core_vma_metadata; + +struct coredump_params { + const kernel_siginfo_t *siginfo; + struct file *file; + unsigned long limit; + unsigned long mm_flags; + int cpu; + loff_t written; + loff_t pos; + loff_t to_skip; + int vma_count; + size_t vma_data_size; + struct core_vma_metadata *vma_meta; +}; + +struct core_vma_metadata { + unsigned long start; + unsigned long end; + unsigned long flags; + unsigned long dump_size; + unsigned long pgoff; + struct file *file; +}; + +struct core_name { + char *corename; + int used; + int size; +}; + +struct btrfs_map_token { + struct extent_buffer *eb; + char *kaddr; + unsigned long offset; +}; + +struct btrfs_lru_cache_entry { + struct list_head lru_list; + u64 key; + u64 gen; + struct list_head list; +}; + +struct btrfs_lru_cache { + struct list_head lru_list; + struct maple_tree entries; + unsigned int size; + unsigned int max_size; +}; + +struct lskcipher_instance { + void (*free)(struct lskcipher_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct lskcipher_alg alg; + }; +}; + +enum dma_transaction_type { + DMA_MEMCPY = 0, + DMA_XOR = 1, + DMA_PQ = 2, + DMA_XOR_VAL = 3, + DMA_PQ_VAL = 4, + DMA_MEMSET = 5, + DMA_MEMSET_SG = 6, + DMA_INTERRUPT = 7, + DMA_PRIVATE = 8, + DMA_ASYNC_TX = 9, + DMA_SLAVE = 10, + DMA_CYCLIC = 11, + DMA_INTERLEAVE = 12, + DMA_COMPLETION_NO_ORDER = 13, + DMA_REPEAT = 14, + DMA_LOAD_EOT = 15, + DMA_TX_TYPE_END = 16, +}; + +enum sum_check_bits { + SUM_CHECK_P = 0, + SUM_CHECK_Q = 1, +}; + +struct crypto_aes_ctx { + u32 key_enc[60]; + u32 key_dec[60]; + u32 key_length; +}; + +struct sha256_state { + u32 state[8]; + u64 count; + u8 buf[64]; +}; + +typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); + +struct gcry_mpi; + +typedef struct gcry_mpi *MPI; + +struct gcry_mpi { + int alloced; + int nlimbs; + int nbits; + int sign; + unsigned int flags; + mpi_limb_t *d; +}; + +typedef struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; + +typedef enum { + ZSTD_noDict = 0, + ZSTD_extDict = 1, + ZSTD_dictMatchState = 2, + ZSTD_dedicatedDictSearch = 3, +} ZSTD_dictMode_e; + +typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); + +typedef enum { + ZSTD_dtlm_fast = 0, + ZSTD_dtlm_full = 1, +} ZSTD_dictTableLoadMethod_e; + +enum smbios_attr_enum { + SMBIOS_ATTR_NONE = 0, + SMBIOS_ATTR_LABEL_SHOW = 1, + SMBIOS_ATTR_INSTANCE_SHOW = 2, +}; + +enum acpi_attr_enum { + ACPI_ATTR_LABEL_SHOW = 0, + ACPI_ATTR_INDEX_SHOW = 1, +}; + +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, }; typedef void (*btf_trace_iwlwifi_dev_ioread32)(void *, const struct device *, u32, u32); @@ -90900,198 +82195,444 @@ struct trace_event_data_offsets_iwlwifi_dev_ucode_event { const void *dev_ptr_; }; -struct rtw_regd_alternative_t { - bool set; - u8 alt; +struct power_supply_attr { + const char *prop_name; + char attr_name[31]; + struct device_attribute dev_attr; + const char * const *text_values; + int text_values_len; }; -struct userspace_policy { - unsigned int is_managed; - unsigned int setspeed; - struct mutex mutex; +enum power_supply_type { + POWER_SUPPLY_TYPE_UNKNOWN = 0, + POWER_SUPPLY_TYPE_BATTERY = 1, + POWER_SUPPLY_TYPE_UPS = 2, + POWER_SUPPLY_TYPE_MAINS = 3, + POWER_SUPPLY_TYPE_USB = 4, + POWER_SUPPLY_TYPE_USB_DCP = 5, + POWER_SUPPLY_TYPE_USB_CDP = 6, + POWER_SUPPLY_TYPE_USB_ACA = 7, + POWER_SUPPLY_TYPE_USB_TYPE_C = 8, + POWER_SUPPLY_TYPE_USB_PD = 9, + POWER_SUPPLY_TYPE_USB_PD_DRP = 10, + POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11, + POWER_SUPPLY_TYPE_WIRELESS = 12, }; -struct cpuidle_state_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_state *, struct cpuidle_state_usage *, char *); - ssize_t (*store)(struct cpuidle_state *, struct cpuidle_state_usage *, const char *, size_t); +enum power_supply_usb_type { + POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, + POWER_SUPPLY_USB_TYPE_SDP = 1, + POWER_SUPPLY_USB_TYPE_DCP = 2, + POWER_SUPPLY_USB_TYPE_CDP = 3, + POWER_SUPPLY_USB_TYPE_ACA = 4, + POWER_SUPPLY_USB_TYPE_C = 5, + POWER_SUPPLY_USB_TYPE_PD = 6, + POWER_SUPPLY_USB_TYPE_PD_DRP = 7, + POWER_SUPPLY_USB_TYPE_PD_PPS = 8, + POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, }; -struct cpuidle_state_kobj { - struct cpuidle_state *state; - struct cpuidle_state_usage *state_usage; - struct completion kobj_unregister; - struct kobject kobj; - struct cpuidle_device *device; +enum power_supply_property { + POWER_SUPPLY_PROP_STATUS = 0, + POWER_SUPPLY_PROP_CHARGE_TYPE = 1, + POWER_SUPPLY_PROP_HEALTH = 2, + POWER_SUPPLY_PROP_PRESENT = 3, + POWER_SUPPLY_PROP_ONLINE = 4, + POWER_SUPPLY_PROP_AUTHENTIC = 5, + POWER_SUPPLY_PROP_TECHNOLOGY = 6, + POWER_SUPPLY_PROP_CYCLE_COUNT = 7, + POWER_SUPPLY_PROP_VOLTAGE_MAX = 8, + POWER_SUPPLY_PROP_VOLTAGE_MIN = 9, + POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10, + POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11, + POWER_SUPPLY_PROP_VOLTAGE_NOW = 12, + POWER_SUPPLY_PROP_VOLTAGE_AVG = 13, + POWER_SUPPLY_PROP_VOLTAGE_OCV = 14, + POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15, + POWER_SUPPLY_PROP_CURRENT_MAX = 16, + POWER_SUPPLY_PROP_CURRENT_NOW = 17, + POWER_SUPPLY_PROP_CURRENT_AVG = 18, + POWER_SUPPLY_PROP_CURRENT_BOOT = 19, + POWER_SUPPLY_PROP_POWER_NOW = 20, + POWER_SUPPLY_PROP_POWER_AVG = 21, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22, + POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23, + POWER_SUPPLY_PROP_CHARGE_FULL = 24, + POWER_SUPPLY_PROP_CHARGE_EMPTY = 25, + POWER_SUPPLY_PROP_CHARGE_NOW = 26, + POWER_SUPPLY_PROP_CHARGE_AVG = 27, + POWER_SUPPLY_PROP_CHARGE_COUNTER = 28, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34, + POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35, + POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36, + POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 37, + POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 38, + POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 39, + POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 40, + POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 41, + POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 42, + POWER_SUPPLY_PROP_ENERGY_FULL = 43, + POWER_SUPPLY_PROP_ENERGY_EMPTY = 44, + POWER_SUPPLY_PROP_ENERGY_NOW = 45, + POWER_SUPPLY_PROP_ENERGY_AVG = 46, + POWER_SUPPLY_PROP_CAPACITY = 47, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 48, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 49, + POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 50, + POWER_SUPPLY_PROP_CAPACITY_LEVEL = 51, + POWER_SUPPLY_PROP_TEMP = 52, + POWER_SUPPLY_PROP_TEMP_MAX = 53, + POWER_SUPPLY_PROP_TEMP_MIN = 54, + POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 55, + POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 56, + POWER_SUPPLY_PROP_TEMP_AMBIENT = 57, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 58, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 59, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 60, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 61, + POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 62, + POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 63, + POWER_SUPPLY_PROP_TYPE = 64, + POWER_SUPPLY_PROP_USB_TYPE = 65, + POWER_SUPPLY_PROP_SCOPE = 66, + POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 67, + POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 68, + POWER_SUPPLY_PROP_CALIBRATE = 69, + POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 70, + POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 71, + POWER_SUPPLY_PROP_MANUFACTURE_DAY = 72, + POWER_SUPPLY_PROP_MODEL_NAME = 73, + POWER_SUPPLY_PROP_MANUFACTURER = 74, + POWER_SUPPLY_PROP_SERIAL_NUMBER = 75, }; -struct cpuidle_device_kobj { - struct cpuidle_device *dev; - struct completion kobj_unregister; - struct kobject kobj; +enum power_supply_charge_behaviour { + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, + POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, + POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, }; -struct cpuidle_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_device *, char *); - ssize_t (*store)(struct cpuidle_device *, const char *, size_t); -}; +struct power_supply; -struct scm_stat { - atomic_t nr_fds; -}; +union power_supply_propval; -struct unix_address; - -struct unix_sock { - struct sock sk; - struct unix_address *addr; - struct path path; - struct mutex iolock; - struct mutex bindlock; - struct sock *peer; - struct list_head link; - unsigned long inflight; - spinlock_t lock; - unsigned long gc_flags; - long: 64; - struct socket_wq peer_wq; - wait_queue_entry_t peer_wake; - struct scm_stat scm_stat; - struct sk_buff *oob_skb; - long: 64; -}; - -struct sockaddr_un { - __kernel_sa_family_t sun_family; - char sun_path[108]; -}; - -struct unix_address { - refcount_t refcnt; - int len; - struct sockaddr_un name[0]; -}; - -struct scm_timestamping64 { - struct __kernel_timespec ts[3]; -}; - -struct scm_timestamping { - struct __kernel_old_timespec ts[3]; -}; - -enum { - ETHTOOL_A_BITSET_UNSPEC = 0, - ETHTOOL_A_BITSET_NOMASK = 1, - ETHTOOL_A_BITSET_SIZE = 2, - ETHTOOL_A_BITSET_BITS = 3, - ETHTOOL_A_BITSET_VALUE = 4, - ETHTOOL_A_BITSET_MASK = 5, - __ETHTOOL_A_BITSET_CNT = 6, - ETHTOOL_A_BITSET_MAX = 5, -}; - -enum { - ETHTOOL_A_BITSET_BITS_UNSPEC = 0, - ETHTOOL_A_BITSET_BITS_BIT = 1, - __ETHTOOL_A_BITSET_BITS_CNT = 2, - ETHTOOL_A_BITSET_BITS_MAX = 1, -}; - -enum { - ETHTOOL_A_BITSET_BIT_UNSPEC = 0, - ETHTOOL_A_BITSET_BIT_INDEX = 1, - ETHTOOL_A_BITSET_BIT_NAME = 2, - ETHTOOL_A_BITSET_BIT_VALUE = 3, - __ETHTOOL_A_BITSET_BIT_CNT = 4, - ETHTOOL_A_BITSET_BIT_MAX = 3, -}; - -struct nf_ct_helper_expectfn { - struct list_head head; +struct power_supply_desc { const char *name; - void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); + enum power_supply_type type; + u8 charge_behaviours; + const enum power_supply_usb_type *usb_types; + size_t num_usb_types; + const enum power_supply_property *properties; + size_t num_properties; + int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *); + int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *); + int (*property_is_writeable)(struct power_supply *, enum power_supply_property); + void (*external_power_changed)(struct power_supply *); + void (*set_charged)(struct power_supply *); + bool no_thermal; + int use_for_apm; }; -struct nf_nat_hook { - int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *); - void (*decode_session)(struct sk_buff *, struct flowi *); - unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); - void (*remove_nat_bysrc)(struct nf_conn *); +struct power_supply_battery_info; + +struct power_supply { + const struct power_supply_desc *desc; + char **supplied_to; + size_t num_supplicants; + char **supplied_from; + size_t num_supplies; + struct device_node *of_node; + void *drv_data; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool initialized; + bool removing; + atomic_t use_cnt; + struct power_supply_battery_info *battery_info; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; }; -enum ctattr_nat { - CTA_NAT_UNSPEC = 0, - CTA_NAT_V4_MINIP = 1, - CTA_NAT_V4_MAXIP = 2, - CTA_NAT_PROTO = 3, - CTA_NAT_V6_MINIP = 4, - CTA_NAT_V6_MAXIP = 5, - __CTA_NAT_MAX = 6, +struct power_supply_maintenance_charge_table; + +struct power_supply_battery_ocv_table; + +struct power_supply_resistance_temp_table; + +struct power_supply_vbat_ri_table; + +struct power_supply_battery_info { + unsigned int technology; + int energy_full_design_uwh; + int charge_full_design_uah; + int voltage_min_design_uv; + int voltage_max_design_uv; + int tricklecharge_current_ua; + int precharge_current_ua; + int precharge_voltage_max_uv; + int charge_term_current_ua; + int charge_restart_voltage_uv; + int overvoltage_limit_uv; + int constant_charge_current_max_ua; + int constant_charge_voltage_max_uv; + struct power_supply_maintenance_charge_table *maintenance_charge; + int maintenance_charge_size; + int alert_low_temp_charge_current_ua; + int alert_low_temp_charge_voltage_uv; + int alert_high_temp_charge_current_ua; + int alert_high_temp_charge_voltage_uv; + int factory_internal_resistance_uohm; + int factory_internal_resistance_charging_uohm; + int ocv_temp[20]; + int temp_ambient_alert_min; + int temp_ambient_alert_max; + int temp_alert_min; + int temp_alert_max; + int temp_min; + int temp_max; + struct power_supply_battery_ocv_table *ocv_table[20]; + int ocv_table_size[20]; + struct power_supply_resistance_temp_table *resist_table; + int resist_table_size; + struct power_supply_vbat_ri_table *vbat2ri_discharging; + int vbat2ri_discharging_size; + struct power_supply_vbat_ri_table *vbat2ri_charging; + int vbat2ri_charging_size; + int bti_resistance_ohm; + int bti_resistance_tolerance; }; -enum ctattr_protonat { - CTA_PROTONAT_UNSPEC = 0, - CTA_PROTONAT_PORT_MIN = 1, - CTA_PROTONAT_PORT_MAX = 2, - __CTA_PROTONAT_MAX = 3, +struct power_supply_maintenance_charge_table { + int charge_current_max_ua; + int charge_voltage_max_uv; + int charge_safety_timer_minutes; }; -union nf_conntrack_nat_help {}; - -struct nf_conn_nat { - union nf_conntrack_nat_help help; - int masq_index; +struct power_supply_battery_ocv_table { + int ocv; + int capacity; }; -struct nf_ct_seqadj { - u32 correction_pos; - s32 offset_before; - s32 offset_after; +struct power_supply_resistance_temp_table { + int temp; + int resistance; }; -struct nf_conn_seqadj { - struct nf_ct_seqadj seq[2]; +struct power_supply_vbat_ri_table { + int vbat_uv; + int ri_uohm; }; -struct nf_nat_proto_clean { - u8 l3proto; - u8 l4proto; +union power_supply_propval { + int intval; + const char *strval; }; -struct nf_nat_lookup_hook_priv { - struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *entries; - struct callback_head callback_head; +struct cpuidle_governor { + char name[16]; + struct list_head governor_list; + unsigned int rating; + int (*enable)(struct cpuidle_driver *, struct cpuidle_device *); + void (*disable)(struct cpuidle_driver *, struct cpuidle_device *); + int (*select)(struct cpuidle_driver *, struct cpuidle_device *, bool *); + void (*reflect)(struct cpuidle_device *, int); }; -struct nf_nat_hooks_net { - struct nf_hook_ops *nat_hook_ops; - unsigned int users; +struct dst_cache_pcpu { + unsigned long refresh_ts; + struct dst_entry *dst; + u32 cookie; + union { + struct in_addr in_saddr; + struct in6_addr in6_saddr; + }; }; -struct nat_net { - struct nf_nat_hooks_net nat_proto_net[11]; +enum ethtool_podl_pse_admin_state { + ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1, + ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED = 2, + ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED = 3, }; -enum tcp_fastopen_client_fail { - TFO_STATUS_UNSPEC = 0, - TFO_COOKIE_UNAVAILABLE = 1, - TFO_DATA_NOT_ACKED = 2, - TFO_SYN_RETRANSMITTED = 3, +enum ethtool_podl_pse_pw_d_status { + ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1, + ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED = 2, + ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING = 3, + ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING = 4, + ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP = 5, + ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE = 6, + ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR = 7, }; -struct mld2_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - struct in6_addr grec_mca; - struct in6_addr grec_src[0]; +enum { + ETHTOOL_A_PSE_UNSPEC = 0, + ETHTOOL_A_PSE_HEADER = 1, + ETHTOOL_A_PODL_PSE_ADMIN_STATE = 2, + ETHTOOL_A_PODL_PSE_ADMIN_CONTROL = 3, + ETHTOOL_A_PODL_PSE_PW_D_STATUS = 4, + __ETHTOOL_A_PSE_CNT = 5, + ETHTOOL_A_PSE_MAX = 4, }; -struct mld2_report { - struct icmp6hdr mld2r_hdr; - struct mld2_grec mld2r_grec[0]; +struct pse_control_status { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_podl_pse_pw_d_status podl_pw_status; +}; + +struct pse_reply_data { + struct ethnl_reply_data base; + struct pse_control_status status; +}; + +struct pse_control_config { + enum ethtool_podl_pse_admin_state admin_cotrol; +}; + +enum pkt_hash_types { + PKT_HASH_TYPE_NONE = 0, + PKT_HASH_TYPE_L2 = 1, + PKT_HASH_TYPE_L3 = 2, + PKT_HASH_TYPE_L4 = 3, +}; + +enum { + LWTUNNEL_XMIT_DONE = 0, + LWTUNNEL_XMIT_CONTINUE = 256, +}; + +struct ip_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + __be32 sl_addr[0]; +}; + +struct mmpin { + struct user_struct *user; + unsigned int num_pg; +}; + +struct ubuf_info_msgzc { + struct ubuf_info ubuf; + union { + struct { + unsigned long desc; + void *ctx; + }; + struct { + u32 id; + u16 len; + u16 zerocopy: 1; + u32 bytelen; + }; + }; + struct mmpin mmp; +}; + +struct ip_frag_state { + bool DF; + unsigned int hlen; + unsigned int ll_rs; + unsigned int mtu; + unsigned int left; + int offset; + int ptr; + __be16 not_last_frag; +}; + +struct ip_fraglist_iter { + struct sk_buff *frag; + struct iphdr *iph; + int offset; + unsigned int hlen; +}; + +struct ip_reply_arg { + struct kvec iov[1]; + int flags; + __wsum csum; + int csumoffset; + int bound_dev_if; + u8 tos; + kuid_t uid; +}; + +struct ip_sf_list { + struct ip_sf_list *sf_next; + unsigned long sf_count[2]; + __be32 sf_inaddr; + unsigned char sf_gsresp; + unsigned char sf_oldin; + unsigned char sf_crcount; +}; + +enum { + BRIDGE_QUERIER_UNSPEC = 0, + BRIDGE_QUERIER_IP_ADDRESS = 1, + BRIDGE_QUERIER_IP_PORT = 2, + BRIDGE_QUERIER_IP_OTHER_TIMER = 3, + BRIDGE_QUERIER_PAD = 4, + BRIDGE_QUERIER_IPV6_ADDRESS = 5, + BRIDGE_QUERIER_IPV6_PORT = 6, + BRIDGE_QUERIER_IPV6_OTHER_TIMER = 7, + __BRIDGE_QUERIER_MAX = 8, +}; + +enum switchdev_attr_id { + SWITCHDEV_ATTR_ID_UNDEFINED = 0, + SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, + SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, + SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, + SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, + SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, + SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, + SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, + SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, + SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, + SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, + SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, +}; + +enum { + PIM_TYPE_HELLO = 0, + PIM_TYPE_REGISTER = 1, + PIM_TYPE_REGISTER_STOP = 2, + PIM_TYPE_JOIN_PRUNE = 3, + PIM_TYPE_BOOTSTRAP = 4, + PIM_TYPE_ASSERT = 5, + PIM_TYPE_GRAFT = 6, + PIM_TYPE_GRAFT_ACK = 7, + PIM_TYPE_CANDIDATE_RP_ADV = 8, +}; + +struct igmphdr { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; +}; + +struct igmpv3_query { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; + __u8 qrv: 3; + __u8 suppress: 1; + __u8 resv: 4; + __u8 qqic; + __be16 nsrcs; + __be32 srcs[0]; }; struct mld_msg { @@ -91110,856 +82651,194 @@ struct mld2_query { struct in6_addr mld2q_srcs[0]; }; -struct igmp6_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; +struct igmpv3_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[0]; }; -struct igmp6_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; - struct ifmcaddr6 *im; +struct igmpv3_report { + __u8 type; + __u8 resv1; + __sum16 csum; + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[0]; }; -enum { - TKIP_DECRYPT_OK = 0, - TKIP_DECRYPT_NO_EXT_IV = -1, - TKIP_DECRYPT_INVALID_KEYIDX = -2, - TKIP_DECRYPT_REPLAY = -3, +struct mld2_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + struct in6_addr grec_mca; + struct in6_addr grec_src[0]; }; -struct ieee80211_mmie { - u8 element_id; - u8 length; - __le16 key_id; - u8 sequence_number[6]; - u8 mic[8]; +struct mld2_report { + struct icmp6hdr mld2r_hdr; + struct mld2_grec mld2r_grec[0]; }; -struct ieee80211_mmie_16 { - u8 element_id; - u8 length; - __le16 key_id; - u8 sequence_number[6]; - u8 mic[16]; +struct pimhdr { + __u8 type; + __u8 reserved; + __be16 csum; }; -struct vdso_exception_table_entry { - int insn; - int fixup; -}; - -struct e820_entry { - u64 addr; - u64 size; - enum e820_type type; -} __attribute__((packed)); - -enum insn_type { - CALL = 0, - NOP___2 = 1, - JMP = 2, - RET = 3, - JCC = 4, -}; - -typedef void (*btf_trace_x86_fpu_before_save)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_after_save)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_before_restore)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_after_restore)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_regs_activated)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_regs_deactivated)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_init_state)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *); - -typedef void (*btf_trace_x86_fpu_xstate_check_failed)(void *, struct fpu *); - -struct fpu_state_config { - unsigned int max_size; - unsigned int default_size; - u64 max_features; - u64 default_features; - u64 legacy_features; -}; - -struct trace_event_raw_x86_fpu { - struct trace_entry ent; - struct fpu *fpu; - bool load_fpu; - u64 xfeatures; - u64 xcomp_bv; - char __data[0]; -}; - -struct trace_event_data_offsets_x86_fpu {}; - -struct cfs_rq { - struct load_weight load; - unsigned int nr_running; - unsigned int h_nr_running; - unsigned int idle_nr_running; - unsigned int idle_h_nr_running; - s64 avg_vruntime; - u64 avg_load; - u64 exec_clock; - u64 min_vruntime; - struct rb_root_cached tasks_timeline; - struct sched_entity *curr; - struct sched_entity *next; - unsigned int nr_spread_over; - long: 64; - long: 64; - long: 64; - struct sched_avg avg; - struct { - raw_spinlock_t lock; - int nr; - unsigned long load_avg; - unsigned long util_avg; - unsigned long runnable_avg; - long: 64; - long: 64; - long: 64; - long: 64; - } removed; - u64 last_update_tg_load_avg; - unsigned long tg_load_avg_contrib; - long propagate; - long prop_runnable_sum; - unsigned long h_load; - u64 last_h_load_update; - struct sched_entity *h_load_next; - struct rq *rq; - int on_list; - struct list_head leaf_cfs_rq_list; - struct task_group *tg; - int idle; - long: 64; - long: 64; - long: 64; -}; - -struct rt_prio_array { - unsigned long bitmap[2]; - struct list_head queue[100]; -}; - -struct rt_rq { - struct rt_prio_array active; - unsigned int rt_nr_running; - unsigned int rr_nr_running; - struct { - int curr; - int next; - } highest_prio; - int overloaded; - struct plist_head pushable_tasks; - int rt_queued; - int rt_throttled; - u64 rt_time; - u64 rt_runtime; - raw_spinlock_t rt_runtime_lock; -}; - -struct dl_rq { - struct rb_root_cached root; - unsigned int dl_nr_running; - struct { - u64 curr; - u64 next; - } earliest_dl; - int overloaded; - struct rb_root_cached pushable_dl_tasks_root; - u64 running_bw; - u64 this_bw; - u64 extra_bw; - u64 max_bw; - u64 bw_ratio; -}; - -struct scx_rq { - struct scx_dispatch_q local_dsq; - struct list_head runnable_list; - unsigned long ops_qseq; - u64 extra_enq_flags; - u32 nr_running; - u32 flags; - bool cpu_released; - cpumask_var_t cpus_to_kick; - cpumask_var_t cpus_to_kick_if_idle; - cpumask_var_t cpus_to_preempt; - cpumask_var_t cpus_to_wait; - unsigned long pnt_seq; - struct irq_work kick_cpus_irq_work; -}; - -struct root_domain; - -struct sched_domain; - -struct balance_callback; - -struct rq { - raw_spinlock_t __lock; - unsigned int nr_running; - unsigned long last_blocked_load_update_tick; - unsigned int has_blocked_load; - long: 64; - call_single_data_t nohz_csd; - unsigned int nohz_tick_stopped; - atomic_t nohz_flags; - unsigned int ttwu_pending; - u64 nr_switches; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct cfs_rq cfs; - struct rt_rq rt; - struct dl_rq dl; - struct scx_rq scx; - struct list_head leaf_cfs_rq_list; - struct list_head *tmp_alone_branch; - unsigned int nr_uninterruptible; - struct task_struct __attribute__((btf_type_tag("rcu"))) *curr; - struct task_struct *idle; - struct task_struct *stop; - unsigned long next_balance; - struct mm_struct *prev_mm; - unsigned int clock_update_flags; - u64 clock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u64 clock_task; - u64 clock_pelt; - unsigned long lost_idle_time; - u64 clock_pelt_idle; - u64 clock_idle; - atomic_t nr_iowait; - u64 last_seen_need_resched_ns; - int ticks_without_resched; - int membarrier_state; - struct root_domain *rd; - struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd; - unsigned long cpu_capacity; - struct balance_callback *balance_callback; - unsigned char nohz_idle_balance; - unsigned char idle_balance; - unsigned long misfit_task_load; - int active_balance; - int push_cpu; - struct cpu_stop_work active_balance_work; - int cpu; - int online; - struct list_head cfs_tasks; - struct sched_avg avg_rt; - struct sched_avg avg_dl; - u64 idle_stamp; - u64 avg_idle; - u64 max_idle_balance_cost; - struct rcuwait hotplug_wait; - unsigned long calc_load_update; - long calc_load_active; - long: 64; - long: 64; - call_single_data_t hrtick_csd; - struct hrtimer hrtick_timer; - ktime_t hrtick_time; - struct cpuidle_state *idle_state; - unsigned int nr_pinned; - unsigned int push_busy; - struct cpu_stop_work push_work; - cpumask_var_t scratch_mask; - long: 64; - long: 64; -}; - -struct dl_bw { - raw_spinlock_t lock; - u64 bw; - u64 total_bw; -}; - -struct cpudl_item; - -struct cpudl { - raw_spinlock_t lock; - int size; - cpumask_var_t free_cpus; - struct cpudl_item *elements; -}; - -struct cpupri_vec { - atomic_t count; - cpumask_var_t mask; -}; - -struct cpupri { - struct cpupri_vec pri_to_cpu[101]; - int *cpu_to_pri; -}; - -struct perf_domain; - -struct root_domain { - atomic_t refcount; - atomic_t rto_count; - struct callback_head rcu; - cpumask_var_t span; - cpumask_var_t online; - int overload; - int overutilized; - cpumask_var_t dlo_mask; - atomic_t dlo_count; - struct dl_bw dl_bw; - struct cpudl cpudl; - u64 visit_gen; - struct irq_work rto_push_work; - raw_spinlock_t rto_lock; - int rto_loop; - int rto_cpu; - atomic_t rto_loop_next; - atomic_t rto_loop_start; - cpumask_var_t rto_mask; - struct cpupri cpupri; - unsigned long max_cpu_capacity; - struct perf_domain __attribute__((btf_type_tag("rcu"))) *pd; -}; - -struct cpudl_item { - u64 dl; - int cpu; - int idx; -}; - -struct em_perf_domain; - -struct perf_domain { - struct em_perf_domain *em_pd; - struct perf_domain *next; - struct callback_head rcu; -}; - -struct em_perf_table; - -struct em_perf_domain { - struct em_perf_table __attribute__((btf_type_tag("rcu"))) *em_table; - int nr_perf_states; - unsigned long flags; - unsigned long cpus[0]; -}; - -struct em_perf_state { - unsigned long performance; - unsigned long frequency; - unsigned long power; - unsigned long cost; - unsigned long flags; -}; - -struct em_perf_table { - struct callback_head rcu; - struct kref kref; - struct em_perf_state state[0]; -}; - -struct sched_group; - -struct sched_domain_shared; - -struct sched_domain { - struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent; - struct sched_domain __attribute__((btf_type_tag("rcu"))) *child; - struct sched_group *groups; - unsigned long min_interval; - unsigned long max_interval; - unsigned int busy_factor; - unsigned int imbalance_pct; - unsigned int cache_nice_tries; - unsigned int imb_numa_nr; - int nohz_idle; - int flags; - int level; - unsigned long last_balance; - unsigned int balance_interval; - unsigned int nr_balance_failed; - u64 max_newidle_lb_cost; - unsigned long last_decay_max_lb_cost; - char *name; - union { - void *private; - struct callback_head rcu; - }; - struct sched_domain_shared *shared; - unsigned int span_weight; - unsigned long span[0]; -}; - -struct sched_group_capacity; - -struct sched_group { - struct sched_group *next; - atomic_t ref; - unsigned int group_weight; - unsigned int cores; - struct sched_group_capacity *sgc; - int asym_prefer_cpu; - int flags; - unsigned long cpumask[0]; -}; - -struct sched_group_capacity { - atomic_t ref; - unsigned long capacity; - unsigned long min_capacity; - unsigned long max_capacity; - unsigned long next_update; - int imbalance; - int id; - unsigned long cpumask[0]; -}; - -struct sched_domain_shared { - atomic_t ref; - atomic_t nr_busy_cpus; - int has_idle_cores; - int nr_idle_scan; -}; - -struct balance_callback { - struct balance_callback *next; - void (*func)(struct rq *); -}; - -struct cfs_bandwidth {}; - -struct task_group { - struct cgroup_subsys_state css; - struct sched_entity **se; - struct cfs_rq **cfs_rq; - unsigned long shares; - int idle; - long: 64; - atomic_long_t load_avg; - u32 scx_flags; - u32 scx_weight; - struct callback_head rcu; +struct br_ip_list { struct list_head list; - struct task_group *parent; - struct list_head siblings; - struct list_head children; - struct cfs_bandwidth cfs_bandwidth; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; + struct br_ip addr; }; -struct pin_cookie { - unsigned int val; +struct printf_spec { + unsigned int type: 8; + int field_width: 24; + unsigned int flags: 8; + unsigned int base: 8; + int precision: 16; }; -struct rq_flags { - unsigned long flags; - struct pin_cookie cookie; - unsigned int clock_update_flags; -}; - -struct affinity_context { - const struct cpumask *new_mask; - struct cpumask *user_mask; - unsigned int flags; -}; - -struct sd_flag_debug { - unsigned int meta_flags; - char *name; -}; - -enum numa_topology_type { - NUMA_DIRECT = 0, - NUMA_GLUELESS_MESH = 1, - NUMA_BACKPLANE = 2, -}; - -typedef const struct cpumask * (*sched_domain_mask_f)(int); - -typedef int (*sched_domain_flags_f)(); - -struct sd_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; - struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; - struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; -}; - -struct sched_domain_topology_level { - sched_domain_mask_f mask; - sched_domain_flags_f sd_flags; - int flags; - int numa_level; - struct sd_data data; - char *name; -}; - -struct housekeeping { - cpumask_var_t cpumasks[9]; - unsigned long flags; -}; - -struct sched_clock_data { - u64 tick_raw; - u64 tick_gtod; - u64 clock; -}; - -struct cpuacct { - struct cgroup_subsys_state css; - u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; - struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; -}; - -struct sugov_tunables { - struct gov_attr_set attr_set; - unsigned int rate_limit_us; -}; - -struct sugov_policy; - -struct sugov_cpu { - struct update_util_data update_util; - struct sugov_policy *sg_policy; - unsigned int cpu; - bool iowait_boost_pending; - unsigned int iowait_boost; - u64 last_update; - unsigned long util; - unsigned long bw_min; - unsigned long saved_idle_calls; -}; - -struct sugov_policy { - struct cpufreq_policy *policy; - struct sugov_tunables *tunables; - struct list_head tunables_hook; - raw_spinlock_t update_lock; - u64 last_freq_update_time; - s64 freq_update_delay_ns; - unsigned int next_freq; - unsigned int cached_raw_freq; - struct irq_work irq_work; - struct kthread_work work; - struct mutex work_lock; - struct kthread_worker worker; - struct task_struct *thread; - bool work_in_progress; - bool limits_changed; - bool need_freq_update; -}; - -enum psi_task_count { - NR_IOWAIT = 0, - NR_MEMSTALL = 1, - NR_RUNNING = 2, - NR_MEMSTALL_RUNNING = 3, - NR_PSI_TASK_COUNTS = 4, -}; - -enum psi_states { - PSI_IO_SOME = 0, - PSI_IO_FULL = 1, - PSI_MEM_SOME = 2, - PSI_MEM_FULL = 3, - PSI_CPU_SOME = 4, - PSI_CPU_FULL = 5, - PSI_NONIDLE = 6, - NR_PSI_STATES = 7, -}; - -enum psi_res { - PSI_IO = 0, - PSI_MEM = 1, - PSI_CPU = 2, - NR_PSI_RESOURCES = 3, -}; - -enum psi_aggregators { - PSI_AVGS = 0, - PSI_POLL = 1, - NR_PSI_AGGREGATORS = 2, -}; - -enum hk_flags { - HK_FLAG_TIMER = 1, - HK_FLAG_RCU = 2, - HK_FLAG_MISC = 4, - HK_FLAG_SCHED = 8, - HK_FLAG_TICK = 16, - HK_FLAG_DOMAIN = 32, - HK_FLAG_WQ = 64, - HK_FLAG_MANAGED_IRQ = 128, - HK_FLAG_KTHREAD = 256, -}; - -enum cpuacct_stat_index { - CPUACCT_STAT_USER = 0, - CPUACCT_STAT_SYSTEM = 1, - CPUACCT_STAT_NSTATS = 2, -}; - -enum { - __SCHED_FEAT_PLACE_LAG = 0, - __SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1, - __SCHED_FEAT_RUN_TO_PARITY = 2, - __SCHED_FEAT_NEXT_BUDDY = 3, - __SCHED_FEAT_CACHE_HOT_BUDDY = 4, - __SCHED_FEAT_WAKEUP_PREEMPTION = 5, - __SCHED_FEAT_HRTICK = 6, - __SCHED_FEAT_HRTICK_DL = 7, - __SCHED_FEAT_DOUBLE_TICK = 8, - __SCHED_FEAT_NONTASK_CAPACITY = 9, - __SCHED_FEAT_TTWU_QUEUE = 10, - __SCHED_FEAT_SIS_UTIL = 11, - __SCHED_FEAT_WARN_DOUBLE_CLOCK = 12, - __SCHED_FEAT_RT_PUSH_IPI = 13, - __SCHED_FEAT_RT_RUNTIME_SHARE = 14, - __SCHED_FEAT_LB_MIN = 15, - __SCHED_FEAT_ATTACH_AGE_LOAD = 16, - __SCHED_FEAT_WA_IDLE = 17, - __SCHED_FEAT_WA_WEIGHT = 18, - __SCHED_FEAT_WA_BIAS = 19, - __SCHED_FEAT_UTIL_EST = 20, - __SCHED_FEAT_LATENCY_WARN = 21, - __SCHED_FEAT_HZ_BW = 22, - __SCHED_FEAT_NR = 23, -}; - -enum sched_tunable_scaling { - SCHED_TUNABLESCALING_NONE = 0, - SCHED_TUNABLESCALING_LOG = 1, - SCHED_TUNABLESCALING_LINEAR = 2, - SCHED_TUNABLESCALING_END = 3, -}; - -enum { - __SD_BALANCE_NEWIDLE = 0, - __SD_BALANCE_EXEC = 1, - __SD_BALANCE_FORK = 2, - __SD_BALANCE_WAKE = 3, - __SD_WAKE_AFFINE = 4, - __SD_ASYM_CPUCAPACITY = 5, - __SD_ASYM_CPUCAPACITY_FULL = 6, - __SD_SHARE_CPUCAPACITY = 7, - __SD_CLUSTER = 8, - __SD_SHARE_LLC = 9, - __SD_SERIALIZE = 10, - __SD_ASYM_PACKING = 11, - __SD_PREFER_SIBLING = 12, - __SD_OVERLAP = 13, - __SD_NUMA = 14, - __SD_FLAG_CNT = 15, -}; - -enum { - CSD_FLAG_LOCK = 1, - IRQ_WORK_PENDING = 1, - IRQ_WORK_BUSY = 2, - IRQ_WORK_LAZY = 4, - IRQ_WORK_HARD_IRQ = 8, - IRQ_WORK_CLAIMED = 3, - CSD_TYPE_ASYNC = 0, - CSD_TYPE_SYNC = 16, - CSD_TYPE_IRQ_WORK = 32, - CSD_TYPE_TTWU = 48, - CSD_FLAG_TYPE_MASK = 240, -}; - -enum { - SD_BALANCE_NEWIDLE = 1, - SD_BALANCE_EXEC = 2, - SD_BALANCE_FORK = 4, - SD_BALANCE_WAKE = 8, - SD_WAKE_AFFINE = 16, - SD_ASYM_CPUCAPACITY = 32, - SD_ASYM_CPUCAPACITY_FULL = 64, - SD_SHARE_CPUCAPACITY = 128, - SD_CLUSTER = 256, - SD_SHARE_LLC = 512, - SD_SERIALIZE = 1024, - SD_ASYM_PACKING = 2048, - SD_PREFER_SIBLING = 4096, - SD_OVERLAP = 8192, - SD_NUMA = 16384, -}; - -enum s_alloc { - sa_rootdomain = 0, - sa_sd = 1, - sa_sd_storage = 2, - sa_none = 3, -}; - -enum membarrier_cmd { - MEMBARRIER_CMD_QUERY = 0, - MEMBARRIER_CMD_GLOBAL = 1, - MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2, - MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4, - MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8, - MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16, - MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32, - MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64, - MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128, - MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256, - MEMBARRIER_CMD_GET_REGISTRATIONS = 512, - MEMBARRIER_CMD_SHARED = 1, -}; - -enum membarrier_cmd_flag { - MEMBARRIER_CMD_FLAG_CPU = 1, -}; - -enum { - MEMBARRIER_FLAG_SYNC_CORE = 1, - MEMBARRIER_FLAG_RSEQ = 2, -}; - -enum { - MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1, - MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2, - MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4, - MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, -}; - -struct swait_queue { - struct task_struct *task; - struct list_head task_list; -}; - -struct psi_window { - u64 size; - u64 start_time; - u64 start_value; - u64 prev_growth; -}; - -struct psi_trigger { - enum psi_states state; - u64 threshold; - struct list_head node; - struct psi_group *group; - wait_queue_head_t event_wait; - struct kernfs_open_file *of; - int event; - struct psi_window win; - u64 last_event_time; - bool pending_event; - enum psi_aggregators aggregator; -}; - -struct __cmp_key { - const struct cpumask *cpus; - struct cpumask ***masks; - int node; - int cpu; - int w; -}; - -struct asym_cap_data { - struct list_head link; - unsigned long capacity; - unsigned long cpus[0]; -}; - -struct sched_attr { - __u32 size; - __u32 sched_policy; - __u64 sched_flags; - __s32 sched_nice; - __u32 sched_priority; - __u64 sched_runtime; - __u64 sched_deadline; - __u64 sched_period; - __u32 sched_util_min; - __u32 sched_util_max; -}; - -struct s_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct root_domain *rd; -}; - -struct btf_enum { - __u32 name_off; - __s32 val; -}; - -struct btf_enum64 { - __u32 name_off; - __u32 val_lo32; - __u32 val_hi32; -}; - -struct bpf_core_accessor { - __u32 type_id; - __u32 idx; +struct page_flags_fields { + int width; + int shift; + int mask; + const struct printf_spec *spec; const char *name; }; -struct bpf_core_spec { - const struct btf *btf; - struct bpf_core_accessor spec[64]; - __u32 root_type_id; - enum bpf_core_relo_kind relo_kind; - int len; - int raw_spec[64]; - int raw_len; - __u32 bit_offset; +enum format_type { + FORMAT_TYPE_NONE = 0, + FORMAT_TYPE_WIDTH = 1, + FORMAT_TYPE_PRECISION = 2, + FORMAT_TYPE_CHAR = 3, + FORMAT_TYPE_STR = 4, + FORMAT_TYPE_PTR = 5, + FORMAT_TYPE_PERCENT_CHAR = 6, + FORMAT_TYPE_INVALID = 7, + FORMAT_TYPE_LONG_LONG = 8, + FORMAT_TYPE_ULONG = 9, + FORMAT_TYPE_LONG = 10, + FORMAT_TYPE_UBYTE = 11, + FORMAT_TYPE_BYTE = 12, + FORMAT_TYPE_USHORT = 13, + FORMAT_TYPE_SHORT = 14, + FORMAT_TYPE_UINT = 15, + FORMAT_TYPE_INT = 16, + FORMAT_TYPE_SIZE_T = 17, + FORMAT_TYPE_PTRDIFF = 18, }; -struct bpf_core_relo_res { - __u64 orig_val; - __u64 new_val; - bool poison; - bool validate; - bool fail_memsz_adjust; - __u32 orig_sz; - __u32 orig_type_id; - __u32 new_sz; - __u32 new_type_id; +struct clk { + struct clk_core *core; + struct device *dev; + const char *dev_id; + const char *con_id; + unsigned long min_rate; + unsigned long max_rate; + unsigned int exclusive_count; + struct hlist_node clks_node; }; -struct bpf_core_cand; - -struct bpf_core_cand_list { - struct bpf_core_cand *cands; - int len; +struct perf_msr { + u64 msr; + struct attribute_group *grp; + bool (*test)(int, void *); + bool no_check; + u64 mask; }; -struct bpf_core_cand { - const struct btf *btf; - __u32 id; +enum cfi_mode { + CFI_DEFAULT = 0, + CFI_OFF = 1, + CFI_KCFI = 2, + CFI_FINEIBT = 3, +}; + +struct text_poke_loc { + s32 rel_addr; + s32 disp; + u8 len; + u8 opcode; + const u8 text[5]; + u8 old; +}; + +struct bp_patching_desc { + struct text_poke_loc *vec; + int nr_entries; + atomic_t refs; +}; + +struct smp_alt_module { + struct module *mod; + char *name; + const s32 *locks; + const s32 *locks_end; + u8 *text; + u8 *text_end; + struct list_head next; +}; + +typedef void text_poke_f(void *, const void *, size_t); + +typedef struct { + struct mm_struct *mm; +} temp_mm_state_t; + +enum pg_level { + PG_LEVEL_NONE = 0, + PG_LEVEL_4K = 1, + PG_LEVEL_2M = 2, + PG_LEVEL_1G = 3, + PG_LEVEL_512G = 4, + PG_LEVEL_NUM = 5, +}; + +enum cpa_warn { + CPA_CONFLICT = 0, + CPA_PROTECT = 1, + CPA_DETECT = 2, +}; + +struct cpa_data { + unsigned long *vaddr; + pgd_t *pgd; + pgprot_t mask_set; + pgprot_t mask_clr; + unsigned long numpages; + unsigned long curpage; + unsigned long pfn; + unsigned int flags; + unsigned int force_split: 1; + unsigned int force_static_prot: 1; + unsigned int force_flush_all: 1; + struct page **pages; +}; + +struct syscall_trace_enter { + struct trace_entry ent; + int nr; + unsigned long args[0]; +}; + +struct syscall_trace_exit { + struct trace_entry ent; + int nr; + long ret; +}; + +struct syscall_tp_t { + struct trace_entry ent; + int syscall_nr; + unsigned long args[6]; +}; + +struct syscall_tp_t___2 { + struct trace_entry ent; + int syscall_nr; + unsigned long ret; }; struct perf_cpu_context { @@ -91997,6 +82876,12 @@ struct pmu_event_list { struct list_head list; }; +enum perf_addr_filter_action_t { + PERF_ADDR_FILTER_ACTION_STOP = 0, + PERF_ADDR_FILTER_ACTION_START = 1, + PERF_ADDR_FILTER_ACTION_FILTER = 2, +}; + enum event_type_t { EVENT_FLEXIBLE = 1, EVENT_PINNED = 2, @@ -92006,6 +82891,31 @@ enum event_type_t { EVENT_ALL = 3, }; +enum perf_event_type { + PERF_RECORD_MMAP = 1, + PERF_RECORD_LOST = 2, + PERF_RECORD_COMM = 3, + PERF_RECORD_EXIT = 4, + PERF_RECORD_THROTTLE = 5, + PERF_RECORD_UNTHROTTLE = 6, + PERF_RECORD_FORK = 7, + PERF_RECORD_READ = 8, + PERF_RECORD_SAMPLE = 9, + PERF_RECORD_MMAP2 = 10, + PERF_RECORD_AUX = 11, + PERF_RECORD_ITRACE_START = 12, + PERF_RECORD_LOST_SAMPLES = 13, + PERF_RECORD_SWITCH = 14, + PERF_RECORD_SWITCH_CPU_WIDE = 15, + PERF_RECORD_NAMESPACES = 16, + PERF_RECORD_KSYMBOL = 17, + PERF_RECORD_BPF_EVENT = 18, + PERF_RECORD_CGROUP = 19, + PERF_RECORD_TEXT_POKE = 20, + PERF_RECORD_AUX_OUTPUT_HW_ID = 21, + PERF_RECORD_MAX = 22, +}; + enum { NET_NS_INDEX = 0, UTS_NS_INDEX = 1, @@ -92017,6 +82927,20 @@ enum { NR_NAMESPACES = 7, }; +enum perf_record_ksymbol_type { + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, + PERF_RECORD_KSYMBOL_TYPE_BPF = 1, + PERF_RECORD_KSYMBOL_TYPE_OOL = 2, + PERF_RECORD_KSYMBOL_TYPE_MAX = 3, +}; + +enum perf_bpf_event_type { + PERF_BPF_EVENT_UNKNOWN = 0, + PERF_BPF_EVENT_PROG_LOAD = 1, + PERF_BPF_EVENT_PROG_UNLOAD = 2, + PERF_BPF_EVENT_MAX = 3, +}; + enum perf_event_read_format { PERF_FORMAT_TOTAL_TIME_ENABLED = 1, PERF_FORMAT_TOTAL_TIME_RUNNING = 2, @@ -92038,6 +82962,52 @@ enum perf_probe_config { PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, }; +enum perf_event_x86_regs { + PERF_REG_X86_AX = 0, + PERF_REG_X86_BX = 1, + PERF_REG_X86_CX = 2, + PERF_REG_X86_DX = 3, + PERF_REG_X86_SI = 4, + PERF_REG_X86_DI = 5, + PERF_REG_X86_BP = 6, + PERF_REG_X86_SP = 7, + PERF_REG_X86_IP = 8, + PERF_REG_X86_FLAGS = 9, + PERF_REG_X86_CS = 10, + PERF_REG_X86_SS = 11, + PERF_REG_X86_DS = 12, + PERF_REG_X86_ES = 13, + PERF_REG_X86_FS = 14, + PERF_REG_X86_GS = 15, + PERF_REG_X86_R8 = 16, + PERF_REG_X86_R9 = 17, + PERF_REG_X86_R10 = 18, + PERF_REG_X86_R11 = 19, + PERF_REG_X86_R12 = 20, + PERF_REG_X86_R13 = 21, + PERF_REG_X86_R14 = 22, + PERF_REG_X86_R15 = 23, + PERF_REG_X86_32_MAX = 16, + PERF_REG_X86_64_MAX = 24, + PERF_REG_X86_XMM0 = 32, + PERF_REG_X86_XMM1 = 34, + PERF_REG_X86_XMM2 = 36, + PERF_REG_X86_XMM3 = 38, + PERF_REG_X86_XMM4 = 40, + PERF_REG_X86_XMM5 = 42, + PERF_REG_X86_XMM6 = 44, + PERF_REG_X86_XMM7 = 46, + PERF_REG_X86_XMM8 = 48, + PERF_REG_X86_XMM9 = 50, + PERF_REG_X86_XMM10 = 52, + PERF_REG_X86_XMM11 = 54, + PERF_REG_X86_XMM12 = 56, + PERF_REG_X86_XMM13 = 58, + PERF_REG_X86_XMM14 = 60, + PERF_REG_X86_XMM15 = 62, + PERF_REG_X86_XMM_MAX = 64, +}; + enum perf_event_ioc_flags { PERF_IOC_FLAG_GROUP = 1, }; @@ -92059,24 +83029,28 @@ enum { IF_SRC_KERNELADDR = 6, }; -enum perf_sw_ids { - PERF_COUNT_SW_CPU_CLOCK = 0, - PERF_COUNT_SW_TASK_CLOCK = 1, - PERF_COUNT_SW_PAGE_FAULTS = 2, - PERF_COUNT_SW_CONTEXT_SWITCHES = 3, - PERF_COUNT_SW_CPU_MIGRATIONS = 4, - PERF_COUNT_SW_PAGE_FAULTS_MIN = 5, - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6, - PERF_COUNT_SW_ALIGNMENT_FAULTS = 7, - PERF_COUNT_SW_EMULATION_FAULTS = 8, - PERF_COUNT_SW_DUMMY = 9, - PERF_COUNT_SW_BPF_OUTPUT = 10, - PERF_COUNT_SW_CGROUP_SWITCHES = 11, - PERF_COUNT_SW_MAX = 12, +struct perf_pmu_events_attr { + struct device_attribute attr; + u64 id; + const char *event_str; +}; + +struct perf_addr_filter { + struct list_head entry; + struct path path; + unsigned long offset; + unsigned long size; + enum perf_addr_filter_action_t action; }; typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; +}; + struct perf_switch_event { struct task_struct *task; struct task_struct *next_prev; @@ -92258,436 +83232,455 @@ struct perf_read_data { int ret; }; -typedef struct pt_regs bpf_user_pt_regs_t; - -struct bpf_perf_event_data_kern { - bpf_user_pt_regs_t *regs; - struct perf_sample_data *data; - struct perf_event *event; -}; - struct remote_output { struct perf_buffer *rb; int err; }; -enum btrfs_qgroup_mode { - BTRFS_QGROUP_MODE_DISABLED = 0, - BTRFS_QGROUP_MODE_FULL = 1, - BTRFS_QGROUP_MODE_SIMPLE = 2, +struct ext4_xattr_ibody_header { + __le32 h_magic; }; -enum { - __QGROUP_RESERVE_BIT = 0, - QGROUP_RESERVE = 1, - __QGROUP_RESERVE_SEQ = 0, - __QGROUP_RELEASE_BIT = 1, - QGROUP_RELEASE = 2, - __QGROUP_RELEASE_SEQ = 1, - __QGROUP_FREE_BIT = 2, - QGROUP_FREE = 4, - __QGROUP_FREE_SEQ = 2, +struct ext4_xattr_entry { + __u8 e_name_len; + __u8 e_name_index; + __le16 e_value_offs; + __le32 e_value_inum; + __le32 e_value_size; + __le32 e_hash; + char e_name[0]; }; -struct btrfs_qgroup_status_item { - __le64 version; - __le64 generation; - __le64 flags; - __le64 rescan; - __le64 enable_gen; -}; - -struct btrfs_qgroup_info_item { - __le64 generation; - __le64 rfer; - __le64 rfer_cmpr; - __le64 excl; - __le64 excl_cmpr; -}; - -struct btrfs_qgroup_limit_item { - __le64 flags; - __le64 max_rfer; - __le64 max_excl; - __le64 rsv_rfer; - __le64 rsv_excl; -}; - -struct btrfs_qgroup_rsv { - u64 values[3]; -}; - -struct btrfs_qgroup { - u64 qgroupid; - u64 rfer; - u64 rfer_cmpr; - u64 excl; - u64 excl_cmpr; - u64 lim_flags; - u64 max_rfer; - u64 max_excl; - u64 rsv_rfer; - u64 rsv_excl; - struct btrfs_qgroup_rsv rsv; - struct list_head groups; - struct list_head members; - struct list_head dirty; - struct list_head iterator; - struct list_head nested_iterator; - struct rb_node node; - u64 old_refcnt; - u64 new_refcnt; - struct kobject kobj; -}; - -struct btrfs_qgroup_list { - struct list_head next_group; - struct list_head next_member; - struct btrfs_qgroup *group; - struct btrfs_qgroup *member; -}; - -struct btrfs_qgroup_swapped_block { - struct rb_node node; - int level; - bool trace_leaf; - u64 subvol_bytenr; - u64 subvol_generation; - u64 reloc_bytenr; - u64 reloc_generation; - u64 last_snapshot; - struct btrfs_key first_key; -}; - -struct btrfs_ioctl_quota_ctl_args { - __u64 cmd; - __u64 status; -}; - -struct btrfs_squota_delta { - u64 root; - u64 num_bytes; - u64 generation; - bool is_inc; - bool is_data; -}; - -struct asymmetric_key_parser { - struct list_head link; - struct module *owner; +struct ext4_xattr_info { const char *name; - int (*parse)(struct key_preparsed_payload *); + const void *value; + size_t value_len; + int name_index; + int in_inode; }; -enum OID { - OID_id_dsa_with_sha1 = 0, - OID_id_dsa = 1, - OID_id_ecPublicKey = 2, - OID_id_prime192v1 = 3, - OID_id_prime256v1 = 4, - OID_id_ecdsa_with_sha1 = 5, - OID_id_ecdsa_with_sha224 = 6, - OID_id_ecdsa_with_sha256 = 7, - OID_id_ecdsa_with_sha384 = 8, - OID_id_ecdsa_with_sha512 = 9, - OID_rsaEncryption = 10, - OID_sha1WithRSAEncryption = 11, - OID_sha256WithRSAEncryption = 12, - OID_sha384WithRSAEncryption = 13, - OID_sha512WithRSAEncryption = 14, - OID_sha224WithRSAEncryption = 15, - OID_data = 16, - OID_signed_data = 17, - OID_email_address = 18, - OID_contentType = 19, - OID_messageDigest = 20, - OID_signingTime = 21, - OID_smimeCapabilites = 22, - OID_smimeAuthenticatedAttrs = 23, - OID_mskrb5 = 24, - OID_krb5 = 25, - OID_krb5u2u = 26, - OID_msIndirectData = 27, - OID_msStatementType = 28, - OID_msSpOpusInfo = 29, - OID_msPeImageDataObjId = 30, - OID_msIndividualSPKeyPurpose = 31, - OID_msOutlookExpress = 32, - OID_ntlmssp = 33, - OID_negoex = 34, - OID_spnego = 35, - OID_IAKerb = 36, - OID_PKU2U = 37, - OID_Scram = 38, - OID_certAuthInfoAccess = 39, - OID_sha1 = 40, - OID_id_ansip384r1 = 41, - OID_sha256 = 42, - OID_sha384 = 43, - OID_sha512 = 44, - OID_sha224 = 45, - OID_commonName = 46, - OID_surname = 47, - OID_countryName = 48, - OID_locality = 49, - OID_stateOrProvinceName = 50, - OID_organizationName = 51, - OID_organizationUnitName = 52, - OID_title = 53, - OID_description = 54, - OID_name = 55, - OID_givenName = 56, - OID_initials = 57, - OID_generationalQualifier = 58, - OID_subjectKeyIdentifier = 59, - OID_keyUsage = 60, - OID_subjectAltName = 61, - OID_issuerAltName = 62, - OID_basicConstraints = 63, - OID_crlDistributionPoints = 64, - OID_certPolicies = 65, - OID_authorityKeyIdentifier = 66, - OID_extKeyUsage = 67, - OID_NetlogonMechanism = 68, - OID_appleLocalKdcSupported = 69, - OID_gostCPSignA = 70, - OID_gostCPSignB = 71, - OID_gostCPSignC = 72, - OID_gost2012PKey256 = 73, - OID_gost2012PKey512 = 74, - OID_gost2012Digest256 = 75, - OID_gost2012Digest512 = 76, - OID_gost2012Signature256 = 77, - OID_gost2012Signature512 = 78, - OID_gostTC26Sign256A = 79, - OID_gostTC26Sign256B = 80, - OID_gostTC26Sign256C = 81, - OID_gostTC26Sign256D = 82, - OID_gostTC26Sign512A = 83, - OID_gostTC26Sign512B = 84, - OID_gostTC26Sign512C = 85, - OID_sm2 = 86, - OID_sm3 = 87, - OID_SM2_with_SM3 = 88, - OID_sm3WithRSAEncryption = 89, - OID_TPMLoadableKey = 90, - OID_TPMImportableKey = 91, - OID_TPMSealedData = 92, - OID_sha3_256 = 93, - OID_sha3_384 = 94, - OID_sha3_512 = 95, - OID_id_ecdsa_with_sha3_256 = 96, - OID_id_ecdsa_with_sha3_384 = 97, - OID_id_ecdsa_with_sha3_512 = 98, - OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 99, - OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 100, - OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 101, - OID__NR = 102, +struct ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; }; -enum blacklist_hash_type { - BLACKLIST_HASH_X509_TBS = 1, - BLACKLIST_HASH_BINARY = 2, +struct ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; }; -enum asymmetric_payload_bits { - asym_crypto = 0, - asym_subtype = 1, - asym_key_ids = 2, - asym_auth = 3, +enum btrfs_qgroup_rsv_type { + BTRFS_QGROUP_RSV_DATA = 0, + BTRFS_QGROUP_RSV_META_PERTRANS = 1, + BTRFS_QGROUP_RSV_META_PREALLOC = 2, + BTRFS_QGROUP_RSV_LAST = 3, }; -struct public_key { - void *key; - u32 keylen; - enum OID algo; - void *params; - u32 paramlen; - bool key_is_private; - const char *id_type; - const char *pkey_algo; - unsigned long key_eflags; +struct btrfs_root_ref { + __le64 dirid; + __le64 sequence; + __le16 name_len; +} __attribute__((packed)); + +enum key_state { + KEY_IS_UNINSTANTIATED = 0, + KEY_IS_POSITIVE = 1, }; -struct asymmetric_key_id; - -struct public_key_signature { - struct asymmetric_key_id *auth_ids[3]; - u8 *s; - u8 *digest; - u32 s_size; - u32 digest_size; - const char *pkey_algo; - const char *hash_algo; - const char *encoding; +struct crypto_istat_aead { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; }; -struct asymmetric_key_id { - unsigned short len; - unsigned char data[0]; +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; + __u16 bgid; }; -struct x509_certificate { - struct x509_certificate *next; - struct x509_certificate *signer; - struct public_key *pub; - struct public_key_signature *sig; - char *issuer; - char *subject; - struct asymmetric_key_id *id; - struct asymmetric_key_id *skid; - time64_t valid_from; - time64_t valid_to; - const void *tbs; - unsigned int tbs_size; - unsigned int raw_sig_size; - const void *raw_sig; - const void *raw_serial; - unsigned int raw_serial_size; - unsigned int raw_issuer_size; - const void *raw_issuer; - const void *raw_subject; - unsigned int raw_subject_size; - unsigned int raw_skid_size; - const void *raw_skid; - unsigned int index; - bool seen; - bool verified; - bool self_signed; - bool unsupported_sig; - bool blacklisted; -}; +struct io_uring_buf_ring; -struct asymmetric_key_ids { - void *id[3]; -}; - -enum { - IOU_POLL_DONE = 0, - IOU_POLL_NO_ACTION = 1, - IOU_POLL_REMOVE_POLL_USE_RES = 2, - IOU_POLL_REISSUE = 3, - IOU_POLL_REQUEUE = 4, -}; - -struct io_poll_update { - struct file *file; - u64 old_user_data; - u64 new_user_data; - __poll_t events; - bool update_events; - bool update_user_data; -}; - -struct io_poll_table { - struct poll_table_struct pt; - struct io_kiocb *req; - int nr_entries; - int error; - bool owning; - __poll_t result_mask; -}; - -struct io_cancel_data { - struct io_ring_ctx *ctx; +struct io_buffer_list { union { - u64 data; - struct file *file; + struct list_head buf_list; + struct { + struct page **buf_pages; + struct io_uring_buf_ring *buf_ring; + }; + struct callback_head rcu; }; - u8 opcode; - u32 flags; - int seq; + __u16 bgid; + __u16 buf_nr_pages; + __u16 nr_entries; + __u16 head; + __u16 mask; + __u8 is_buf_ring; + __u8 is_mmap; + __u8 is_ready; }; -struct lpi_constraints { - acpi_handle handle; - int min_dstate; +struct io_uring_buf { + __u64 addr; + __u32 len; + __u16 bid; + __u16 resv; }; -struct amd_lps0_hid_device_data { - const bool check_off_by_one; -}; - -struct platform_s2idle_ops { - int (*begin)(); - int (*prepare)(); - int (*prepare_late)(); - void (*check)(); - bool (*wake)(); - void (*restore_early)(); - void (*restore)(); - void (*end)(); -}; - -struct acpi_s2idle_dev_ops { - struct list_head list_node; - void (*prepare)(); - void (*check)(); - void (*restore)(); -}; - -struct lpi_device_constraint_amd { - char *name; - int enabled; - int function_states; - int min_dstate; -}; - -struct lpi_device_info { - char *name; - int enabled; - union acpi_object *package; -}; - -struct lpi_device_constraint { - int uid; - int min_dstate; - int function_states; -}; - -typedef enum { - ACPI_TRACE_AML_METHOD = 0, - ACPI_TRACE_AML_OPCODE = 1, - ACPI_TRACE_AML_REGION = 2, -} acpi_trace_event_type; - -struct acpi_namestring_info { - const char *external_name; - const char *next_external_char; - char *internal_name; - u32 length; - u32 num_segments; - u32 num_carats; - u8 fully_qualified; -}; - -struct clk_composite { - struct clk_hw hw; - struct clk_ops ops; - struct clk_hw *mux_hw; - struct clk_hw *rate_hw; - struct clk_hw *gate_hw; - const struct clk_ops *mux_ops; - const struct clk_ops *rate_ops; - const struct clk_ops *gate_ops; -}; - -enum pm_qos_req_action { - PM_QOS_ADD_REQ = 0, - PM_QOS_UPDATE_REQ = 1, - PM_QOS_REMOVE_REQ = 2, -}; - -struct e1000_stats { - char stat_string[32]; - int type; - int sizeof_stat; - int stat_offset; +struct io_uring_buf_ring { + union { + struct { + __u64 resv1; + __u32 resv2; + __u16 resv3; + __u16 tail; + }; + struct { + struct {} __empty_bufs; + struct io_uring_buf bufs[0]; + }; + }; }; enum { - NETDEV_STATS = 0, - E1000_STATS = 1, + IORING_CQE_BUFFER_SHIFT = 16, +}; + +enum { + IOU_F_TWQ_LAZY_WAKE = 1, +}; + +struct io_shutdown { + struct file *file; + int how; +}; + +struct compat_msghdr; + +struct user_msghdr; + +struct io_sr_msg { + struct file *file; + union { + struct compat_msghdr __attribute__((btf_type_tag("user"))) *umsg_compat; + struct user_msghdr __attribute__((btf_type_tag("user"))) *umsg; + void __attribute__((btf_type_tag("user"))) *buf; + }; + unsigned int len; + unsigned int done_io; + unsigned int msg_flags; + unsigned int nr_multishot_loops; + u16 flags; + u16 addr_len; + u16 buf_group; + void __attribute__((btf_type_tag("user"))) *addr; + void __attribute__((btf_type_tag("user"))) *msg_control; + struct io_kiocb *notif; +}; + +typedef u32 compat_uptr_t; + +typedef s32 compat_int_t; + +typedef u32 compat_size_t; + +typedef u32 compat_uint_t; + +struct compat_msghdr { + compat_uptr_t msg_name; + compat_int_t msg_namelen; + compat_uptr_t msg_iov; + compat_size_t msg_iovlen; + compat_uptr_t msg_control; + compat_size_t msg_controllen; + compat_uint_t msg_flags; +}; + +struct user_msghdr { + void __attribute__((btf_type_tag("user"))) *msg_name; + int msg_namelen; + struct iovec __attribute__((btf_type_tag("user"))) *msg_iov; + __kernel_size_t msg_iovlen; + void __attribute__((btf_type_tag("user"))) *msg_control; + __kernel_size_t msg_controllen; + unsigned int msg_flags; +}; + +struct io_accept { + struct file *file; + struct sockaddr __attribute__((btf_type_tag("user"))) *addr; + int __attribute__((btf_type_tag("user"))) *addr_len; + int flags; + u32 file_slot; + unsigned long nofile; +}; + +struct io_socket { + struct file *file; + int domain; + int type; + int protocol; + int flags; + u32 file_slot; + unsigned long nofile; +}; + +struct io_connect { + struct file *file; + struct sockaddr __attribute__((btf_type_tag("user"))) *addr; + int addr_len; + bool in_progress; + bool seen_econnaborted; +}; + +struct io_async_msghdr { + union { + struct iovec fast_iov[8]; + struct { + struct iovec fast_iov_one; + __kernel_size_t controllen; + int namelen; + __kernel_size_t payloadlen; + }; + struct io_cache_entry cache; + }; + struct iovec *free_iov; + struct sockaddr __attribute__((btf_type_tag("user"))) *uaddr; + struct msghdr msg; + struct __kernel_sockaddr_storage addr; +}; + +struct __large_struct { + unsigned long buf[100]; +}; + +struct io_notif_data { + struct file *file; + struct ubuf_info uarg; + unsigned long account_pages; + bool zc_report; + bool zc_used; + bool zc_copied; +}; + +struct io_uring_recvmsg_out { + __u32 namelen; + __u32 controllen; + __u32 payloadlen; + __u32 flags; +}; + +struct io_recvmsg_multishot_hdr { + struct io_uring_recvmsg_out msg; + struct __kernel_sockaddr_storage addr; +}; + +struct io_async_connect { + struct __kernel_sockaddr_storage address; +}; + +struct screen_info { + __u8 orig_x; + __u8 orig_y; + __u16 ext_mem_k; + __u16 orig_video_page; + __u8 orig_video_mode; + __u8 orig_video_cols; + __u8 flags; + __u8 unused2; + __u16 orig_video_ega_bx; + __u16 unused3; + __u8 orig_video_lines; + __u8 orig_video_isVGA; + __u16 orig_video_points; + __u16 lfb_width; + __u16 lfb_height; + __u16 lfb_depth; + __u32 lfb_base; + __u32 lfb_size; + __u16 cl_magic; + __u16 cl_offset; + __u16 lfb_linelength; + __u8 red_size; + __u8 red_pos; + __u8 green_size; + __u8 green_pos; + __u8 blue_size; + __u8 blue_pos; + __u8 rsvd_size; + __u8 rsvd_pos; + __u16 vesapm_seg; + __u16 vesapm_off; + __u16 pages; + __u16 vesa_attributes; + __u32 capabilities; + __u32 ext_lfb_base; + __u8 _reserved[2]; +} __attribute__((packed)); + +struct efifb_par { + u32 pseudo_palette[16]; + resource_size_t base; + resource_size_t size; +}; + +typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); + +typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); + +enum scsi_vpd_parameters { + SCSI_VPD_HEADER_SIZE = 4, + SCSI_VPD_LIST_SIZE = 36, +}; + +struct trace_event_raw_scsi_dispatch_cmd_start { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + char __data[0]; +}; + +struct trace_event_raw_scsi_dispatch_cmd_error { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int rtn; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + char __data[0]; +}; + +struct trace_event_raw_scsi_cmd_done_timeout_template { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + u8 sense_key; + u8 asc; + u8 ascq; + char __data[0]; +}; + +struct trace_event_raw_scsi_eh_wakeup { + struct trace_entry ent; + unsigned int host_no; + char __data[0]; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; + const void *cmnd_ptr_; +}; + +struct trace_event_data_offsets_scsi_eh_wakeup {}; + +struct rtl8169_private; + +typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); + +struct phy_reg { + u16 reg; + u16 val; +}; + +enum mac_version { + RTL_GIGA_MAC_VER_02 = 0, + RTL_GIGA_MAC_VER_03 = 1, + RTL_GIGA_MAC_VER_04 = 2, + RTL_GIGA_MAC_VER_05 = 3, + RTL_GIGA_MAC_VER_06 = 4, + RTL_GIGA_MAC_VER_07 = 5, + RTL_GIGA_MAC_VER_08 = 6, + RTL_GIGA_MAC_VER_09 = 7, + RTL_GIGA_MAC_VER_10 = 8, + RTL_GIGA_MAC_VER_11 = 9, + RTL_GIGA_MAC_VER_14 = 10, + RTL_GIGA_MAC_VER_17 = 11, + RTL_GIGA_MAC_VER_18 = 12, + RTL_GIGA_MAC_VER_19 = 13, + RTL_GIGA_MAC_VER_20 = 14, + RTL_GIGA_MAC_VER_21 = 15, + RTL_GIGA_MAC_VER_22 = 16, + RTL_GIGA_MAC_VER_23 = 17, + RTL_GIGA_MAC_VER_24 = 18, + RTL_GIGA_MAC_VER_25 = 19, + RTL_GIGA_MAC_VER_26 = 20, + RTL_GIGA_MAC_VER_28 = 21, + RTL_GIGA_MAC_VER_29 = 22, + RTL_GIGA_MAC_VER_30 = 23, + RTL_GIGA_MAC_VER_31 = 24, + RTL_GIGA_MAC_VER_32 = 25, + RTL_GIGA_MAC_VER_33 = 26, + RTL_GIGA_MAC_VER_34 = 27, + RTL_GIGA_MAC_VER_35 = 28, + RTL_GIGA_MAC_VER_36 = 29, + RTL_GIGA_MAC_VER_37 = 30, + RTL_GIGA_MAC_VER_38 = 31, + RTL_GIGA_MAC_VER_39 = 32, + RTL_GIGA_MAC_VER_40 = 33, + RTL_GIGA_MAC_VER_42 = 34, + RTL_GIGA_MAC_VER_43 = 35, + RTL_GIGA_MAC_VER_44 = 36, + RTL_GIGA_MAC_VER_46 = 37, + RTL_GIGA_MAC_VER_48 = 38, + RTL_GIGA_MAC_VER_51 = 39, + RTL_GIGA_MAC_VER_52 = 40, + RTL_GIGA_MAC_VER_53 = 41, + RTL_GIGA_MAC_VER_61 = 42, + RTL_GIGA_MAC_VER_63 = 43, + RTL_GIGA_MAC_VER_65 = 44, + RTL_GIGA_MAC_NONE = 45, }; enum iwl_tlc_update_flags { @@ -92757,6 +83750,13 @@ enum iwl_tlc_mng_ht_rates { IWL_TLC_MNG_HT_RATE_MAX = 11, }; +enum ieee80211_vht_chanwidth { + IEEE80211_VHT_CHANWIDTH_USE_HT = 0, + IEEE80211_VHT_CHANWIDTH_80MHZ = 1, + IEEE80211_VHT_CHANWIDTH_160MHZ = 2, + IEEE80211_VHT_CHANWIDTH_80P80MHZ = 3, +}; + struct iwl_tlc_config_cmd_v4 { u8 sta_id; u8 reserved1[3]; @@ -92796,1001 +83796,8896 @@ struct iwl_tlc_config_cmd_v3 { __le32 max_tx_op; }; -struct mc146818_get_time_callback_param { - struct rtc_time *time; - unsigned char ctrl; - unsigned char century; +struct xhci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); }; -struct cmos_rtc { - struct rtc_device *rtc; - struct device *dev; - int irq; - struct resource *iomem; - time64_t alarm_expires; - void (*wake_on)(struct device *); - void (*wake_off)(struct device *); - u8 enabled_wake; - u8 suspend_ctrl; - u8 day_alrm; - u8 mon_alrm; - u8 century; - struct rtc_wkalrm saved_wkalrm; +struct xhci_driver_data { + u64 quirks; + const char *firmware; }; -struct cmos_read_alarm_callback_param { - struct cmos_rtc *cmos; - struct rtc_time *time; - unsigned char rtc_control; +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); + +struct hid_usage_entry { + unsigned int page; + unsigned int usage; + const char *description; }; -struct cmos_set_alarm_callback_param { - struct cmos_rtc *cmos; - unsigned char mon; - unsigned char mday; - unsigned char hrs; - unsigned char min; - unsigned char sec; - struct rtc_wkalrm *t; +enum hid_report_type { + HID_INPUT_REPORT = 0, + HID_OUTPUT_REPORT = 1, + HID_FEATURE_REPORT = 2, + HID_REPORT_TYPES = 3, }; -typedef irqreturn_t (*rtc_irq_handler)(int, void *); - -struct cmos_rtc_board_info { - void (*wake_on)(struct device *); - void (*wake_off)(struct device *); - u32 flags; - int address_space; - u8 rtc_day_alarm; - u8 rtc_mon_alarm; - u8 rtc_century; +enum hid_type { + HID_TYPE_OTHER = 0, + HID_TYPE_USBMOUSE = 1, + HID_TYPE_USBNONE = 2, }; -struct md_setup_args { - int minor; - int partitioned; - int level; - int chunk; - char *device_names; -}; +struct hid_field; -struct sk_psock_progs { - struct bpf_prog *msg_parser; - struct bpf_prog *stream_parser; - struct bpf_prog *stream_verdict; - struct bpf_prog *skb_verdict; -}; +struct hid_field_entry; -struct sk_psock_work_state { - u32 len; - u32 off; -}; +struct hid_device; -struct sk_msg; - -struct sk_psock { - struct sock *sk; - struct sock *sk_redir; - u32 apply_bytes; - u32 cork_bytes; - u32 eval; - bool redir_ingress; - struct sk_msg *cork; - struct sk_psock_progs progs; - struct sk_buff_head ingress_skb; - struct list_head ingress_msg; - spinlock_t ingress_lock; - unsigned long state; - struct list_head link; - spinlock_t link_lock; - refcount_t refcnt; - void (*saved_unhash)(struct sock *); - void (*saved_destroy)(struct sock *); - void (*saved_close)(struct sock *, long); - void (*saved_write_space)(struct sock *); - void (*saved_data_ready)(struct sock *); - int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); - struct proto *sk_proto; - struct mutex work_mutex; - struct sk_psock_work_state work_state; - struct delayed_work work; - struct sock *sk_pair; - struct rcu_work rwork; -}; - -struct sk_msg_sg { - u32 start; - u32 curr; - u32 end; - u32 size; - u32 copybreak; - unsigned long copy[1]; - struct scatterlist data[19]; -}; - -struct sk_msg { - struct sk_msg_sg sg; - void *data; - void *data_end; - u32 apply_bytes; - u32 cork_bytes; - u32 flags; - struct sk_buff *skb; - struct sock *sk_redir; - struct sock *sk; +struct hid_report { struct list_head list; + struct list_head hidinput_list; + struct list_head field_entry_list; + unsigned int id; + enum hid_report_type type; + unsigned int application; + struct hid_field *field[256]; + struct hid_field_entry *field_entries; + unsigned int maxfield; + unsigned int size; + struct hid_device *device; + bool tool_active; + unsigned int tool; }; -struct bpf_scratchpad { - union { - __be32 diff[128]; - u8 buff[512]; - }; +struct hid_usage; + +struct hid_input; + +struct hid_field { + unsigned int physical; + unsigned int logical; + unsigned int application; + struct hid_usage *usage; + unsigned int maxusage; + unsigned int flags; + unsigned int report_offset; + unsigned int report_size; + unsigned int report_count; + unsigned int report_type; + __s32 *value; + __s32 *new_value; + __s32 *usages_priorities; + __s32 logical_minimum; + __s32 logical_maximum; + __s32 physical_minimum; + __s32 physical_maximum; + __s32 unit_exponent; + unsigned int unit; + bool ignored; + struct hid_report *report; + unsigned int index; + struct hid_input *hidinput; + __u16 dpad; + unsigned int slot_idx; }; -enum { - BPF_F_NEIGH = 2, - BPF_F_PEER = 4, - BPF_F_NEXTHOP = 8, +struct hid_usage { + unsigned int hid; + unsigned int collection_index; + unsigned int usage_index; + __s8 resolution_multiplier; + __s8 wheel_factor; + __u16 code; + __u8 type; + __s8 hat_min; + __s8 hat_max; + __s8 hat_dir; + __s16 wheel_accumulated; }; -enum { - BPF_F_RECOMPUTE_CSUM = 1, - BPF_F_INVALIDATE_HASH = 2, +struct hid_input { + struct list_head list; + struct hid_report *report; + struct input_dev *input; + const char *name; + struct list_head reports; + unsigned int application; + bool registered; }; -enum bpf_hdr_start_off { - BPF_HDR_START_MAC = 0, - BPF_HDR_START_NET = 1, +struct hid_field_entry { + struct list_head list; + struct hid_field *field; + unsigned int index; + __s32 priority; }; -enum { - BPF_F_HDR_FIELD_MASK = 15, +struct hid_report_enum { + unsigned int numbered; + struct list_head report_list; + struct hid_report *report_id_hash[256]; }; -enum { - BPF_F_PSEUDO_HDR = 16, - BPF_F_MARK_MANGLED_0 = 32, - BPF_F_MARK_ENFORCE = 64, +struct hid_collection; + +struct hid_driver; + +struct hid_ll_driver; + +struct hid_device { + __u8 *dev_rdesc; + unsigned int dev_rsize; + __u8 *rdesc; + unsigned int rsize; + struct hid_collection *collection; + unsigned int collection_size; + unsigned int maxcollection; + unsigned int maxapplication; + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + __u32 version; + enum hid_type type; + unsigned int country; + struct hid_report_enum report_enum[3]; + struct work_struct led_work; + struct semaphore driver_input_lock; + struct device dev; + struct hid_driver *driver; + void *devres_group_id; + const struct hid_ll_driver *ll_driver; + struct mutex ll_open_lock; + unsigned int ll_open_count; + unsigned long status; + unsigned int claimed; + unsigned int quirks; + unsigned int initial_quirks; + bool io_started; + struct list_head inputs; + void *hiddev; + void *hidraw; + char name[128]; + char phys[64]; + char uniq[64]; + void *driver_data; + int (*ff_init)(struct hid_device *); + int (*hiddev_connect)(struct hid_device *, unsigned int); + void (*hiddev_disconnect)(struct hid_device *); + void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); + void (*hiddev_report_event)(struct hid_device *, struct hid_report *); + unsigned short debug; + struct dentry *debug_dir; + struct dentry *debug_rdesc; + struct dentry *debug_events; + struct list_head debug_list; + spinlock_t debug_list_lock; + wait_queue_head_t debug_wait; + struct kref ref; + unsigned int id; }; -enum { - BPF_CSUM_LEVEL_QUERY = 0, - BPF_CSUM_LEVEL_INC = 1, - BPF_CSUM_LEVEL_DEC = 2, - BPF_CSUM_LEVEL_RESET = 3, +struct hid_collection { + int parent_idx; + unsigned int type; + unsigned int usage; + unsigned int level; }; -enum { - BPF_F_INGRESS = 1, +struct hid_device_id; + +struct hid_report_id; + +struct hid_usage_id; + +struct hid_driver { + char *name; + const struct hid_device_id *id_table; + struct list_head dyn_list; + spinlock_t dyn_lock; + bool (*match)(struct hid_device *, bool); + int (*probe)(struct hid_device *, const struct hid_device_id *); + void (*remove)(struct hid_device *); + const struct hid_report_id *report_table; + int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int); + const struct hid_usage_id *usage_table; + int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); + void (*report)(struct hid_device *, struct hid_report *); + __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); + int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); + int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); + int (*input_configured)(struct hid_device *, struct hid_input *); + void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *); + int (*suspend)(struct hid_device *, pm_message_t); + int (*resume)(struct hid_device *); + int (*reset_resume)(struct hid_device *); + struct device_driver driver; }; -enum { - BPF_F_ADJ_ROOM_FIXED_GSO = 1, - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 2, - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 4, - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 8, - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 16, - BPF_F_ADJ_ROOM_NO_CSUM_RESET = 32, - BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 64, - BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 128, - BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 256, +struct hid_device_id { + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + kernel_ulong_t driver_data; }; -enum { - BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, +struct hid_report_id { + __u32 report_type; }; -enum bpf_adj_room_mode { - BPF_ADJ_ROOM_NET = 0, - BPF_ADJ_ROOM_MAC = 1, +struct hid_usage_id { + __u32 usage_hid; + __u32 usage_type; + __u32 usage_code; }; -enum xdp_mem_type { - MEM_TYPE_PAGE_SHARED = 0, - MEM_TYPE_PAGE_ORDER0 = 1, - MEM_TYPE_PAGE_POOL = 2, - MEM_TYPE_XSK_BUFF_POOL = 3, - MEM_TYPE_MAX = 4, +struct hid_ll_driver { + int (*start)(struct hid_device *); + void (*stop)(struct hid_device *); + int (*open)(struct hid_device *); + void (*close)(struct hid_device *); + int (*power)(struct hid_device *, int); + int (*parse)(struct hid_device *); + void (*request)(struct hid_device *, struct hid_report *, int); + int (*wait)(struct hid_device *); + int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); + int (*output_report)(struct hid_device *, __u8 *, size_t); + int (*idle)(struct hid_device *, int, int, int); + bool (*may_wakeup)(struct hid_device *); + unsigned int max_buffer_size; }; -struct xdp_sock { - struct sock sk; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct xsk_queue *rx; - struct net_device *dev; - struct xdp_umem *umem; - struct list_head flush_node; - struct xsk_buff_pool *pool; - u16 queue_id; - bool zc; - bool sg; - enum { - XSK_READY = 0, - XSK_BOUND = 1, - XSK_UNBOUND = 2, - } state; - long: 64; - struct xsk_queue *tx; - struct list_head tx_list; - u32 tx_budget_spent; - spinlock_t rx_lock; - u64 rx_dropped; - u64 rx_queue_full; - struct sk_buff *skb; - struct list_head map_list; - spinlock_t map_list_lock; - struct mutex mutex; - struct xsk_queue *fq_tmp; - struct xsk_queue *cq_tmp; - long: 64; - long: 64; - long: 64; -}; - -enum { - BPF_F_INDEX_MASK = 4294967295ULL, - BPF_F_CURRENT_CPU = 4294967295ULL, - BPF_F_CTXLEN_MASK = 4503595332403200ULL, -}; - -enum { - BPF_F_TUNINFO_IPV6 = 1, -}; - -enum { - BPF_F_TUNINFO_FLAGS = 16, -}; - -enum { - BPF_F_ZERO_CSUM_TX = 2, - BPF_F_DONT_FRAGMENT = 4, - BPF_F_SEQ_NUMBER = 8, - BPF_F_NO_TUNNEL_KEY = 16, -}; - -enum { - TCP_BPF_IW = 1001, - TCP_BPF_SNDCWND_CLAMP = 1002, - TCP_BPF_DELACK_MAX = 1003, - TCP_BPF_RTO_MIN = 1004, - TCP_BPF_SYN = 1005, - TCP_BPF_SYN_IP = 1006, - TCP_BPF_SYN_MAC = 1007, -}; - -enum { - BPF_FIB_LOOKUP_DIRECT = 1, - BPF_FIB_LOOKUP_OUTPUT = 2, - BPF_FIB_LOOKUP_SKIP_NEIGH = 4, - BPF_FIB_LOOKUP_TBID = 8, - BPF_FIB_LOOKUP_SRC = 16, - BPF_FIB_LOOKUP_MARK = 32, -}; - -enum { - BPF_FIB_LKUP_RET_SUCCESS = 0, - BPF_FIB_LKUP_RET_BLACKHOLE = 1, - BPF_FIB_LKUP_RET_UNREACHABLE = 2, - BPF_FIB_LKUP_RET_PROHIBIT = 3, - BPF_FIB_LKUP_RET_NOT_FWDED = 4, - BPF_FIB_LKUP_RET_FWD_DISABLED = 5, - BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, - BPF_FIB_LKUP_RET_NO_NEIGH = 7, - BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, - BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, -}; - -enum bpf_check_mtu_ret { - BPF_MTU_CHK_RET_SUCCESS = 0, - BPF_MTU_CHK_RET_FRAG_NEEDED = 1, - BPF_MTU_CHK_RET_SEGS_TOOBIG = 2, -}; - -enum bpf_check_mtu_flags { - BPF_MTU_CHK_SEGS = 1, -}; - -enum { - BPF_LOAD_HDR_OPT_TCP_SYN = 1, -}; - -enum { - BPF_SKB_TSTAMP_UNSPEC = 0, - BPF_SKB_TSTAMP_DELIVERY_MONO = 1, -}; - -enum { - BPF_SK_LOOKUP_F_REPLACE = 1, - BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, -}; - -typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); - -typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); - -typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); - -typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); - -typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); - -typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); - -typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); - -typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); - -typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); - -typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); - -typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); - -typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); - -typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_bpf_redirect)(u32, u64); - -typedef u64 (*btf_bpf_redirect_peer)(u32, u64); - -struct bpf_redir_neigh; - -typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); - -struct bpf_redir_neigh { - __u32 nh_family; - union { - __be32 ipv4_nh; - __u32 ipv6_nh[4]; - }; -}; - -typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); - -typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); - -typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); - -typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); - -typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); - -typedef u64 (*btf_bpf_get_cgroup_classid_curr)(); - -typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); - -typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); - -typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); - -typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); - -typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); - -typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); - -typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); - -typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); - -typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); - -typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); - -typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); - -typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); - -typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); - -typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); - -typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); - -typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); - -typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); - -typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); - -struct bpf_tunnel_key; - -typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); - -struct bpf_tunnel_key { - __u32 tunnel_id; - union { - __u32 remote_ipv4; - __u32 remote_ipv6[4]; - }; - __u8 tunnel_tos; - __u8 tunnel_ttl; - union { - __u16 tunnel_ext; - __be16 tunnel_flags; - }; - __u32 tunnel_label; - union { - __u32 local_ipv4; - __u32 local_ipv6[4]; - }; -}; - -typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); - -typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); - -typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); - -typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); - -typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); - -typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); - -typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); - -typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); - -typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); - -struct bpf_sock_addr_kern; - -typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); - -struct bpf_sock_addr_kern { - struct sock *sk; - struct sockaddr *uaddr; - u64 tmp_reg; - void *t_ctx; - u32 uaddrlen; -}; - -typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); - -typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); - -typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); - -typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); - -typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); - -struct bpf_fib_lookup; - -typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); - -struct bpf_fib_lookup { - __u8 family; - __u8 l4_protocol; - __be16 sport; - __be16 dport; - union { - __u16 tot_len; - __u16 mtu_result; - }; - __u32 ifindex; - union { - __u8 tos; - __be32 flowinfo; - __u32 rt_metric; - }; - union { - __be32 ipv4_src; - __u32 ipv6_src[4]; - }; - union { - __be32 ipv4_dst; - __u32 ipv6_dst[4]; - }; - union { - struct { - __be16 h_vlan_proto; - __be16 h_vlan_TCI; - }; - __u32 tbid; - }; - union { - struct { - __u32 mark; - }; - struct { - __u8 smac[6]; - __u8 dmac[6]; - }; - }; -}; - -typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); - -typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); - -typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); - -typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); - -struct bpf_sock_tuple; - -typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -struct bpf_sock_tuple { - union { - struct { - __be32 saddr; - __be32 daddr; - __be16 sport; - __be16 dport; - } ipv4; - struct { - __be32 saddr[4]; - __be32 daddr[4]; - __be16 sport; - __be16 dport; - } ipv6; - }; -}; - -typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sk_release)(struct sock *); - -typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); - -typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); - -typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); - -typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); - -struct bpf_tcp_sock { - __u32 snd_cwnd; - __u32 srtt_us; - __u32 rtt_min; - __u32 snd_ssthresh; - __u32 rcv_nxt; - __u32 snd_nxt; - __u32 snd_una; - __u32 mss_cache; - __u32 ecn_flags; - __u32 rate_delivered; - __u32 rate_interval_us; - __u32 packets_out; - __u32 retrans_out; - __u32 total_retrans; - __u32 segs_in; - __u32 data_segs_in; - __u32 segs_out; - __u32 data_segs_out; - __u32 lost_out; - __u32 sacked_out; - __u64 bytes_received; - __u64 bytes_acked; - __u32 dsack_dups; - __u32 delivered; - __u32 delivered_ce; - __u32 icsk_retransmits; -}; - -typedef u64 (*btf_bpf_tcp_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); - -typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); - -typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); - -typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); - -typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); - -typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); - -typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); - -typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); - -typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); - -typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv4)(struct iphdr *, struct tcphdr *, u32); - -typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *, u32); - -typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *); - -typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *); - -struct sk_reuseport_kern; - -typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); - -struct sk_reuseport_kern { - struct sk_buff *skb; - struct sock *sk; - struct sock *selected_sk; - struct sock *migrating_sk; - void *data_end; - u32 hash; - u32 reuseport_id; - bool bind_inany; -}; - -typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); - -typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); - -struct bpf_sk_lookup_kern; - -typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); - -struct bpf_sk_lookup_kern { - u16 family; - u16 protocol; - __be16 sport; - u16 dport; +struct hid_debug_list { struct { - __be32 saddr; - __be32 daddr; - } v4; - struct { - const struct in6_addr *saddr; - const struct in6_addr *daddr; - } v6; - struct sock *selected_sk; - u32 ingress_ifindex; - bool no_reuseport; + union { + struct __kfifo kfifo; + char *type; + const char *const_type; + char (*rectype)[0]; + char *ptr; + const char *ptr_const; + }; + char buf[0]; + } hid_debug_fifo; + struct fasync_struct *fasync; + struct hid_device *hdev; + struct list_head node; + struct mutex read_mutex; }; -typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); +enum { + CTRL_CMD_UNSPEC = 0, + CTRL_CMD_NEWFAMILY = 1, + CTRL_CMD_DELFAMILY = 2, + CTRL_CMD_GETFAMILY = 3, + CTRL_CMD_NEWOPS = 4, + CTRL_CMD_DELOPS = 5, + CTRL_CMD_GETOPS = 6, + CTRL_CMD_NEWMCAST_GRP = 7, + CTRL_CMD_DELMCAST_GRP = 8, + CTRL_CMD_GETMCAST_GRP = 9, + CTRL_CMD_GETPOLICY = 10, + __CTRL_CMD_MAX = 11, +}; -typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); +enum genl_validate_flags { + GENL_DONT_VALIDATE_STRICT = 1, + GENL_DONT_VALIDATE_DUMP = 2, + GENL_DONT_VALIDATE_DUMP_STRICT = 4, +}; -typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *); +enum { + CTRL_ATTR_UNSPEC = 0, + CTRL_ATTR_FAMILY_ID = 1, + CTRL_ATTR_FAMILY_NAME = 2, + CTRL_ATTR_VERSION = 3, + CTRL_ATTR_HDRSIZE = 4, + CTRL_ATTR_MAXATTR = 5, + CTRL_ATTR_OPS = 6, + CTRL_ATTR_MCAST_GROUPS = 7, + CTRL_ATTR_POLICY = 8, + CTRL_ATTR_OP_POLICY = 9, + CTRL_ATTR_OP = 10, + __CTRL_ATTR_MAX = 11, +}; -typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); +enum { + CTRL_ATTR_OP_UNSPEC = 0, + CTRL_ATTR_OP_ID = 1, + CTRL_ATTR_OP_FLAGS = 2, + __CTRL_ATTR_OP_MAX = 3, +}; -typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); +enum { + CTRL_ATTR_MCAST_GRP_UNSPEC = 0, + CTRL_ATTR_MCAST_GRP_NAME = 1, + CTRL_ATTR_MCAST_GRP_ID = 2, + __CTRL_ATTR_MCAST_GRP_MAX = 3, +}; -typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); +enum { + CTRL_ATTR_POLICY_UNSPEC = 0, + CTRL_ATTR_POLICY_DO = 1, + CTRL_ATTR_POLICY_DUMP = 2, + __CTRL_ATTR_POLICY_DUMP_MAX = 3, + CTRL_ATTR_POLICY_DUMP_MAX = 2, +}; -typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); +struct genl_op_iter { + const struct genl_family *family; + struct genl_split_ops doit; + struct genl_split_ops dumpit; + int cmd_idx; + int entry_idx; + u32 cmd; + u8 flags; +}; -typedef u64 (*btf_bpf_sock_from_file)(struct file *); +struct genl_dumpit_info { + struct genl_split_ops op; + struct genl_info info; +}; -struct qdisc_skb_cb { +struct netlink_policy_dump_state; + +struct ctrl_dump_policy_ctx { + struct netlink_policy_dump_state *state; + const struct genl_family *rt; + struct genl_op_iter *op_iter; + u32 op; + u16 fam_id; + u8 dump_map: 1; + u8 single_op: 1; +}; + +struct genl_start_context { + const struct genl_family *family; + struct nlmsghdr *nlh; + struct netlink_ext_ack *extack; + const struct genl_split_ops *ops; + int hdrlen; +}; + +struct frag_hdr { + __u8 nexthdr; + __u8 reserved; + __be16 frag_off; + __be32 identification; +}; + +struct flow_dissector_key_tags { + u32 flow_label; +}; + +struct flow_dissector_key_icmp { struct { - unsigned int pkt_len; - u16 slave_dev_queue_mapping; - u16 tc_classid; + u8 type; + u8 code; }; - unsigned char data[20]; + u16 id; }; -struct bpf_skb_data_end { - struct qdisc_skb_cb qdisc_cb; - void *data_meta; - void *data_end; +struct flow_dissector_key_tipc { + __be32 key; }; -struct strp_msg { - int full_len; +struct flow_dissector_key_addrs { + union { + struct flow_dissector_key_ipv4_addrs v4addrs; + struct flow_dissector_key_ipv6_addrs v6addrs; + struct flow_dissector_key_tipc tipckey; + }; +}; + +struct flow_keys { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_tags tags; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; + struct flow_dissector_key_keyid keyid; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_addrs addrs; + long: 0; +}; + +struct ip6_frag_state { + u8 *prevhdr; + unsigned int hlen; + unsigned int mtu; + unsigned int left; int offset; + int ptr; + int hroom; + int troom; + __be32 frag_id; + u8 nexthdr; }; -struct tls_strparser { +struct ip6_fraglist_iter { + struct ipv6hdr *tmp_hdr; + struct sk_buff *frag; + int offset; + unsigned int hlen; + __be32 frag_id; + u8 nexthdr; +}; + +struct hop_jumbo_hdr { + u8 nexthdr; + u8 hdrlen; + u8 tlv_type; + u8 tlv_len; + __be32 jumbo_payload_len; +}; + +struct ip6_ra_chain { + struct ip6_ra_chain *next; struct sock *sk; - u32 mark: 8; - u32 stopped: 1; - u32 copy_mode: 1; - u32 mixed_decrypted: 1; - u32 msg_ready: 1; - struct strp_msg stm; - struct sk_buff *anchor; - struct work_struct work; + int sel; + void (*destructor)(struct sock *); }; -struct tls_sw_context_rx { - struct crypto_aead *aead_recv; - struct crypto_wait async_wait; - struct sk_buff_head rx_list; - void (*saved_data_ready)(struct sock *); - u8 reader_present; - u8 async_capable: 1; - u8 zc_capable: 1; - u8 reader_contended: 1; - struct tls_strparser strp; - atomic_t decrypt_pending; - struct sk_buff_head async_hold; - struct wait_queue_head wq; +struct link_container { + struct ieee80211_link_data data; + struct ieee80211_bss_conf conf; }; -struct tcp6_sock { - struct tcp_sock tcp; - struct ipv6_pinfo inet6; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +enum { + PERF_BR_UNKNOWN = 0, + PERF_BR_COND = 1, + PERF_BR_UNCOND = 2, + PERF_BR_IND = 3, + PERF_BR_CALL = 4, + PERF_BR_IND_CALL = 5, + PERF_BR_RET = 6, + PERF_BR_SYSCALL = 7, + PERF_BR_SYSRET = 8, + PERF_BR_COND_CALL = 9, + PERF_BR_COND_RET = 10, + PERF_BR_ERET = 11, + PERF_BR_IRQ = 12, + PERF_BR_SERROR = 13, + PERF_BR_NO_TX = 14, + PERF_BR_EXTEND_ABI = 15, + PERF_BR_MAX = 16, }; -struct tcp_timewait_sock { - struct inet_timewait_sock tw_sk; - u32 tw_rcv_wnd; - u32 tw_ts_offset; - u32 tw_ts_recent; - u32 tw_last_oow_ack_time; - int tw_ts_recent_stamp; - u32 tw_tx_delay; +struct mpc_ioapic { + unsigned char type; + unsigned char apicid; + unsigned char apicver; + unsigned char flags; + unsigned int apicaddr; }; -struct udp6_sock { - struct udp_sock udp; - struct ipv6_pinfo inet6; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct mp_ioapic_gsi { + u32 gsi_base; + u32 gsi_end; }; -struct mptcp_sock {}; - -struct tls_prot_info { - u16 version; - u16 cipher_type; - u16 prepend_size; - u16 tag_size; - u16 overhead_size; - u16 iv_size; - u16 salt_size; - u16 rec_seq_size; - u16 aad_size; - u16 tail_size; +enum ioapic_domain_type { + IOAPIC_DOMAIN_INVALID = 0, + IOAPIC_DOMAIN_LEGACY = 1, + IOAPIC_DOMAIN_STRICT = 2, + IOAPIC_DOMAIN_DYNAMIC = 3, }; -struct cipher_context { - char iv[20]; - char rec_seq[8]; +struct ioapic_domain_cfg { + enum ioapic_domain_type type; + const struct irq_domain_ops *ops; + struct device_node *dev; }; -struct tls_crypto_info { - __u16 version; - __u16 cipher_type; +struct IO_APIC_route_entry; + +struct ioapic { + int nr_registers; + struct IO_APIC_route_entry *saved_registers; + struct mpc_ioapic mp_config; + struct mp_ioapic_gsi gsi_config; + struct ioapic_domain_cfg irqdomain_cfg; + struct irq_domain *irqdomain; + struct resource *iomem_res; }; -struct tls12_crypto_info_aes_gcm_128 { - struct tls_crypto_info info; - unsigned char iv[8]; - unsigned char key[16]; - unsigned char salt[4]; - unsigned char rec_seq[8]; -}; - -struct tls12_crypto_info_aes_gcm_256 { - struct tls_crypto_info info; - unsigned char iv[8]; - unsigned char key[32]; - unsigned char salt[4]; - unsigned char rec_seq[8]; -}; - -struct tls12_crypto_info_chacha20_poly1305 { - struct tls_crypto_info info; - unsigned char iv[12]; - unsigned char key[32]; - unsigned char salt[0]; - unsigned char rec_seq[8]; -}; - -struct tls12_crypto_info_sm4_gcm { - struct tls_crypto_info info; - unsigned char iv[8]; - unsigned char key[16]; - unsigned char salt[4]; - unsigned char rec_seq[8]; -}; - -struct tls12_crypto_info_sm4_ccm { - struct tls_crypto_info info; - unsigned char iv[8]; - unsigned char key[16]; - unsigned char salt[4]; - unsigned char rec_seq[8]; -}; - -union tls_crypto_context { - struct tls_crypto_info info; +struct IO_APIC_route_entry { union { - struct tls12_crypto_info_aes_gcm_128 aes_gcm_128; - struct tls12_crypto_info_aes_gcm_256 aes_gcm_256; - struct tls12_crypto_info_chacha20_poly1305 chacha20_poly1305; - struct tls12_crypto_info_sm4_gcm sm4_gcm; - struct tls12_crypto_info_sm4_ccm sm4_ccm; + struct { + u64 vector: 8; + u64 delivery_mode: 3; + u64 dest_mode_logical: 1; + u64 delivery_status: 1; + u64 active_low: 1; + u64 irr: 1; + u64 is_level: 1; + u64 masked: 1; + u64 reserved_0: 15; + u64 reserved_1: 17; + u64 virt_destid_8_14: 7; + u64 destid_0_7: 8; + }; + struct { + u64 ir_shared_0: 8; + u64 ir_zero: 3; + u64 ir_index_15: 1; + u64 ir_shared_1: 5; + u64 ir_reserved_0: 31; + u64 ir_format: 1; + u64 ir_index_0_14: 15; + }; + struct { + u64 w1: 32; + u64 w2: 32; + }; }; }; -struct tls_context { - struct tls_prot_info prot_info; - u8 tx_conf: 3; - u8 rx_conf: 3; - u8 zerocopy_sendfile: 1; - u8 rx_no_pad: 1; - int (*push_pending_record)(struct sock *, int); - void (*sk_write_space)(struct sock *); - void *priv_ctx_tx; - void *priv_ctx_rx; - struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; - struct cipher_context tx; - struct cipher_context rx; - struct scatterlist *partially_sent_record; - u16 partially_sent_offset; - bool splicing_pages; - bool pending_open_record_frags; - struct mutex tx_lock; - unsigned long flags; - struct proto *sk_proto; - struct sock *sk; - void (*sk_destruct)(struct sock *); - union tls_crypto_context crypto_send; - union tls_crypto_context crypto_recv; +struct mpc_intsrc { + unsigned char type; + unsigned char irqtype; + unsigned short irqflag; + unsigned char srcbus; + unsigned char srcbusirq; + unsigned char dstapic; + unsigned char dstirq; +}; + +enum mp_irq_source_types { + mp_INT = 0, + mp_NMI = 1, + mp_SMI = 2, + mp_ExtINT = 3, +}; + +enum { + X86_IRQ_ALLOC_LEGACY = 1, +}; + +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, +}; + +struct irq_pin_list { struct list_head list; - refcount_t refcount; + int apic; + int pin; +}; + +struct io_apic { + unsigned int index; + unsigned int unused[3]; + unsigned int data; + unsigned int unused2[11]; + unsigned int eoi; +}; + +union IO_APIC_reg_00 { + u32 raw; + struct { + u32 __reserved_2: 14; + u32 LTS: 1; + u32 delivery_type: 1; + u32 __reserved_1: 8; + u32 ID: 8; + } bits; +}; + +union IO_APIC_reg_01 { + u32 raw; + struct { + u32 version: 8; + u32 __reserved_2: 7; + u32 PRQ: 1; + u32 entries: 8; + u32 __reserved_1: 8; + } bits; +}; + +union IO_APIC_reg_02 { + u32 raw; + struct { + u32 __reserved_2: 24; + u32 arbitration: 4; + u32 __reserved_1: 4; + } bits; +}; + +struct mp_chip_data { + struct list_head irq_2_pin; + struct IO_APIC_route_entry entry; + bool is_level; + bool active_low; + bool isa_irq; + u32 count; +}; + +union IO_APIC_reg_03 { + u32 raw; + struct { + u32 boot_DT: 1; + u32 __reserved_1: 31; + } bits; +}; + +typedef void (*btf_trace_console)(void *, const char *, size_t); + +struct prb_desc; + +struct printk_info; + +struct prb_desc_ring { + unsigned int count_bits; + struct prb_desc *descs; + struct printk_info *infos; + atomic_long_t head_id; + atomic_long_t tail_id; + atomic_long_t last_finalized_seq; +}; + +struct prb_data_ring { + unsigned int size_bits; + char *data; + atomic_long_t head_lpos; + atomic_long_t tail_lpos; +}; + +struct printk_ringbuffer { + struct prb_desc_ring desc_ring; + struct prb_data_ring text_data_ring; + atomic_long_t fail; +}; + +struct prb_data_blk_lpos { + unsigned long begin; + unsigned long next; +}; + +struct prb_desc { + atomic_long_t state_var; + struct prb_data_blk_lpos text_blk_lpos; +}; + +struct printk_info { + u64 seq; + u64 ts_nsec; + u16 text_len; + u8 facility; + u8 flags: 5; + u8 level: 3; + u32 caller_id; + struct dev_printk_info dev_info; +}; + +struct printk_buffers { + char outbuf[2048]; + char scratchbuf[1024]; +}; + +typedef struct { + seqcount_t seqcount; +} seqcount_latch_t; + +struct latched_seq { + seqcount_latch_t latch; + u64 val[2]; +}; + +struct console_cmdline { + char name[16]; + int index; + bool user_specified; + char *options; +}; + +enum devkmsg_log_masks { + DEVKMSG_LOG_MASK_ON = 1, + DEVKMSG_LOG_MASK_OFF = 2, + DEVKMSG_LOG_MASK_LOCK = 4, +}; + +enum printk_info_flags { + LOG_NEWLINE = 2, + LOG_CONT = 8, +}; + +enum con_msg_format_flags { + MSG_FORMAT_DEFAULT = 0, + MSG_FORMAT_SYSLOG = 1, +}; + +struct kmsg_dumper { + struct list_head list; + void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason); + enum kmsg_dump_reason max_reason; + bool registered; +}; + +struct trace_event_raw_console { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_data_offsets_console { + u32 msg; + const void *msg_ptr_; +}; + +struct printk_record { + struct printk_info *info; + char *text_buf; + unsigned int text_buf_size; +}; + +struct prb_reserved_entry { + struct printk_ringbuffer *rb; + unsigned long irqflags; + unsigned long id; + unsigned int text_space; +}; + +struct printk_message { + struct printk_buffers *pbufs; + unsigned int outbuf_len; + u64 seq; + unsigned long dropped; +}; + +struct devkmsg_user { + atomic64_t seq; + struct ratelimit_state rs; + struct mutex lock; + struct printk_buffers pbufs; +}; + +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; +}; + +struct bpf_mprog_cp { + struct bpf_link *link; +}; + +struct bpf_mprog_bundle { + struct bpf_mprog_entry a; + struct bpf_mprog_entry b; + struct bpf_mprog_cp cp_items[64]; + struct bpf_prog *ref; + atomic64_t revision; + u32 count; +}; + +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, +}; + +enum bpf_task_fd_type { + BPF_FD_TYPE_RAW_TRACEPOINT = 0, + BPF_FD_TYPE_TRACEPOINT = 1, + BPF_FD_TYPE_KPROBE = 2, + BPF_FD_TYPE_KRETPROBE = 3, + BPF_FD_TYPE_UPROBE = 4, + BPF_FD_TYPE_URETPROBE = 5, +}; + +enum bpf_perf_event_type { + BPF_PERF_EVENT_UNSPEC = 0, + BPF_PERF_EVENT_UPROBE = 1, + BPF_PERF_EVENT_URETPROBE = 2, + BPF_PERF_EVENT_KPROBE = 3, + BPF_PERF_EVENT_KRETPROBE = 4, + BPF_PERF_EVENT_TRACEPOINT = 5, + BPF_PERF_EVENT_EVENT = 6, +}; + +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, +}; + +typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32); + +typedef u64 (*btf_bpf_sys_close)(u32); + +typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *); + +struct bpf_tramp_link { + struct bpf_link link; + struct hlist_node tramp_hlist; + u64 cookie; +}; + +struct bpf_tracing_link { + struct bpf_tramp_link link; + enum bpf_attach_type attach_type; + struct bpf_trampoline *trampoline; + struct bpf_prog *tgt_prog; +}; + +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; +}; + +struct bpf_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; +}; + +struct bpf_tramp_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + struct bpf_run_ctx *saved_run_ctx; +}; + +struct bpf_prog_info { + __u32 type; + __u32 id; + __u8 tag[8]; + __u32 jited_prog_len; + __u32 xlated_prog_len; + __u64 jited_prog_insns; + __u64 xlated_prog_insns; + __u64 load_time; + __u32 created_by_uid; + __u32 nr_map_ids; + __u64 map_ids; + char name[16]; + __u32 ifindex; + __u32 gpl_compatible: 1; + __u64 netns_dev; + __u64 netns_ino; + __u32 nr_jited_ksyms; + __u32 nr_jited_func_lens; + __u64 jited_ksyms; + __u64 jited_func_lens; + __u32 btf_id; + __u32 func_info_rec_size; + __u64 func_info; + __u32 nr_func_info; + __u32 nr_line_info; + __u64 line_info; + __u64 jited_line_info; + __u32 nr_jited_line_info; + __u32 line_info_rec_size; + __u32 jited_line_info_rec_size; + __u32 nr_prog_tags; + __u64 prog_tags; + __u64 run_time_ns; + __u64 run_cnt; + __u64 recursion_misses; + __u32 verified_insns; + __u32 attach_btf_obj_id; + __u32 attach_btf_id; +}; + +struct bpf_map_info { + __u32 type; + __u32 id; + __u32 key_size; + __u32 value_size; + __u32 max_entries; + __u32 map_flags; + char name[16]; + __u32 ifindex; + __u32 btf_vmlinux_value_type_id; + __u64 netns_dev; + __u64 netns_ino; + __u32 btf_id; + __u32 btf_key_type_id; + __u32 btf_value_type_id; + __u32 btf_vmlinux_id; + __u64 map_extra; +}; + +typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int); + +typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int); + +typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int); + +typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int); + +typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct page *, struct file *, int, int, int); + +typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct page *, unsigned long, bool, unsigned long, struct file *, int, int); + +struct collapse_control { + bool is_khugepaged; + u32 node_load[1024]; + nodemask_t alloc_nmask; +}; + +struct khugepaged_mm_slot; + +struct khugepaged_scan { + struct list_head mm_head; + struct khugepaged_mm_slot *mm_slot; + unsigned long address; +}; + +struct mm_slot { + struct hlist_node hash; + struct list_head mm_node; + struct mm_struct *mm; +}; + +struct khugepaged_mm_slot { + struct mm_slot slot; +}; + +enum scan_result { + SCAN_FAIL = 0, + SCAN_SUCCEED = 1, + SCAN_PMD_NULL = 2, + SCAN_PMD_NONE = 3, + SCAN_PMD_MAPPED = 4, + SCAN_EXCEED_NONE_PTE = 5, + SCAN_EXCEED_SWAP_PTE = 6, + SCAN_EXCEED_SHARED_PTE = 7, + SCAN_PTE_NON_PRESENT = 8, + SCAN_PTE_UFFD_WP = 9, + SCAN_PTE_MAPPED_HUGEPAGE = 10, + SCAN_PAGE_RO = 11, + SCAN_LACK_REFERENCED_PAGE = 12, + SCAN_PAGE_NULL = 13, + SCAN_SCAN_ABORT = 14, + SCAN_PAGE_COUNT = 15, + SCAN_PAGE_LRU = 16, + SCAN_PAGE_LOCK = 17, + SCAN_PAGE_ANON = 18, + SCAN_PAGE_COMPOUND = 19, + SCAN_ANY_PROCESS = 20, + SCAN_VMA_NULL = 21, + SCAN_VMA_CHECK = 22, + SCAN_ADDRESS_RANGE = 23, + SCAN_DEL_PAGE_LRU = 24, + SCAN_ALLOC_HUGE_PAGE_FAIL = 25, + SCAN_CGROUP_CHARGE_FAIL = 26, + SCAN_TRUNCATED = 27, + SCAN_PAGE_HAS_PRIVATE = 28, + SCAN_STORE_FAILED = 29, + SCAN_COPY_MC = 30, + SCAN_PAGE_FILLED = 31, +}; + +enum transparent_hugepage_flag { + TRANSPARENT_HUGEPAGE_UNSUPPORTED = 0, + TRANSPARENT_HUGEPAGE_FLAG = 1, + TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2, + TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5, + TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6, + TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7, + TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8, +}; + +enum sgp_type { + SGP_READ = 0, + SGP_NOALLOC = 1, + SGP_CACHE = 2, + SGP_WRITE = 3, + SGP_FALLOC = 4, +}; + +enum ttu_flags { + TTU_SPLIT_HUGE_PMD = 4, + TTU_IGNORE_MLOCK = 8, + TTU_SYNC = 16, + TTU_HWPOISON = 32, + TTU_BATCH_FLUSH = 64, + TTU_RMAP_LOCKED = 128, +}; + +struct trace_event_raw_mm_khugepaged_scan_pmd { + struct trace_entry ent; + struct mm_struct *mm; + unsigned long pfn; + bool writable; + int referenced; + int none_or_zero; + int status; + int unmapped; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page { + struct trace_entry ent; + struct mm_struct *mm; + int isolated; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page_isolate { + struct trace_entry ent; + unsigned long pfn; + int none_or_zero; + int referenced; + bool writable; + int status; + char __data[0]; +}; + +struct trace_event_raw_mm_collapse_huge_page_swapin { + struct trace_entry ent; + struct mm_struct *mm; + int swapped_in; + int referenced; + int ret; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_scan_file { + struct trace_entry ent; + struct mm_struct *mm; + unsigned long pfn; + u32 __data_loc_filename; + int present; + int swap; + int result; + char __data[0]; +}; + +struct trace_event_raw_mm_khugepaged_collapse_file { + struct trace_entry ent; + struct mm_struct *mm; + unsigned long hpfn; + unsigned long index; + unsigned long addr; + bool is_shmem; + u32 __data_loc_filename; + int nr; + int result; + char __data[0]; +}; + +struct trace_event_data_offsets_mm_khugepaged_scan_file { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_mm_khugepaged_collapse_file { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_mm_khugepaged_scan_pmd {}; + +struct trace_event_data_offsets_mm_collapse_huge_page {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_isolate {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_swapin {}; + +struct prop_handler { + struct hlist_node node; + const char *xattr_name; + int (*validate)(const struct btrfs_inode *, const char *, size_t); + int (*apply)(struct inode *, const char *, size_t); + const char * (*extract)(struct inode *); + bool (*ignore)(const struct btrfs_inode *); + int inheritable; +}; + +enum { + REQ_FSEQ_PREFLUSH = 1, + REQ_FSEQ_DATA = 2, + REQ_FSEQ_POSTFLUSH = 4, + REQ_FSEQ_DONE = 8, + REQ_FSEQ_ACTIONS = 7, + FLUSH_PENDING_TIMEOUT = 5000, +}; + +struct blk_ia_range_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_independent_access_range *, char *); +}; + +typedef unsigned int FSE_DTable; + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; + +typedef struct { + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; + +typedef struct { + short ncount[256]; + FSE_DTable dtable[0]; +} FSE_DecompressWksp; + +typedef struct { + size_t state; + const void *table; +} FSE_DState_t; + +typedef u32 acpi_name; + +struct vring_desc; + +typedef struct vring_desc vring_desc_t; + +struct vring_avail; + +typedef struct vring_avail vring_avail_t; + +struct vring_used; + +typedef struct vring_used vring_used_t; + +struct vring { + unsigned int num; + vring_desc_t *desc; + vring_avail_t *avail; + vring_used_t *used; +}; + +struct vring_desc_state_split; + +struct vring_desc_extra; + +struct vring_virtqueue_split { + struct vring vring; + u16 avail_flags_shadow; + u16 avail_idx_shadow; + struct vring_desc_state_split *desc_state; + struct vring_desc_extra *desc_extra; + dma_addr_t queue_dma_addr; + size_t queue_size_in_bytes; + u32 vring_align; + bool may_reduce_num; +}; + +struct vring_packed_desc; + +struct vring_packed_desc_event; + +struct vring_desc_state_packed; + +struct vring_virtqueue_packed { + struct { + unsigned int num; + struct vring_packed_desc *desc; + struct vring_packed_desc_event *driver; + struct vring_packed_desc_event *device; + } vring; + bool avail_wrap_counter; + u16 avail_used_flags; + u16 next_avail_idx; + u16 event_flags_shadow; + struct vring_desc_state_packed *desc_state; + struct vring_desc_extra *desc_extra; + dma_addr_t ring_dma_addr; + dma_addr_t driver_event_dma_addr; + dma_addr_t device_event_dma_addr; + size_t ring_size_in_bytes; + size_t event_size_in_bytes; +}; + +struct virtio_device; + +struct virtqueue { + struct list_head list; + void (*callback)(struct virtqueue *); + const char *name; + struct virtio_device *vdev; + unsigned int index; + unsigned int num_free; + unsigned int num_max; + bool reset; + void *priv; +}; + +struct vring_virtqueue { + struct virtqueue vq; + bool packed_ring; + bool use_dma_api; + bool weak_barriers; + bool broken; + bool indirect; + bool event; + bool premapped; + bool do_unmap; + unsigned int free_head; + unsigned int num_added; + u16 last_used_idx; + bool event_triggered; + union { + struct vring_virtqueue_split split; + struct vring_virtqueue_packed packed; + }; + bool (*notify)(struct virtqueue *); + bool we_own_ring; + struct device *dma_dev; +}; + +struct vringh_config_ops; + +struct virtio_config_ops; + +struct virtio_device { + int index; + bool failed; + bool config_enabled; + bool config_change_pending; + spinlock_t config_lock; + spinlock_t vqs_list_lock; + struct device dev; + struct virtio_device_id id; + const struct virtio_config_ops *config; + const struct vringh_config_ops *vringh_config; + struct list_head vqs; + u64 features; + void *priv; +}; + +typedef void vq_callback_t(struct virtqueue *); + +struct virtio_shm_region; + +struct virtio_config_ops { + void (*get)(struct virtio_device *, unsigned int, void *, unsigned int); + void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int); + u32 (*generation)(struct virtio_device *); + u8 (*get_status)(struct virtio_device *); + void (*set_status)(struct virtio_device *, u8); + void (*reset)(struct virtio_device *); + int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *); + void (*del_vqs)(struct virtio_device *); + void (*synchronize_cbs)(struct virtio_device *); + u64 (*get_features)(struct virtio_device *); + int (*finalize_features)(struct virtio_device *); + const char * (*bus_name)(struct virtio_device *); + int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *); + const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int); + bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8); + int (*disable_vq_and_reset)(struct virtqueue *); + int (*enable_vq_after_reset)(struct virtqueue *); + int (*create_avq)(struct virtio_device *); + void (*destroy_avq)(struct virtio_device *); +}; + +struct virtio_shm_region { + u64 addr; + u64 len; +}; + +typedef __u64 __virtio64; + +typedef __u32 __virtio32; + +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; +}; + +struct vring_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; +}; + +struct vring_used_elem { + __virtio32 id; + __virtio32 len; +}; + +typedef struct vring_used_elem vring_used_elem_t; + +struct vring_used { + __virtio16 flags; + __virtio16 idx; + vring_used_elem_t ring[0]; +}; + +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; +}; + +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; +}; + +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; +}; + +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; +}; + +struct vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; +}; + +struct mdiobus_devres { + struct mii_bus *mii; +}; + +enum iwl_tx_flags { + TX_CMD_FLG_PROT_REQUIRE = 1, + TX_CMD_FLG_WRITE_TX_POWER = 2, + TX_CMD_FLG_ACK = 8, + TX_CMD_FLG_STA_RATE = 16, + TX_CMD_FLG_BAR = 64, + TX_CMD_FLG_TXOP_PROT = 128, + TX_CMD_FLG_VHT_NDPA = 256, + TX_CMD_FLG_HT_NDPA = 512, + TX_CMD_FLG_CSI_FDBK2HOST = 1024, + TX_CMD_FLG_BT_PRIO_POS = 11, + TX_CMD_FLG_BT_PRIO_MASK = 6144, + TX_CMD_FLG_BT_DIS = 4096, + TX_CMD_FLG_SEQ_CTL = 8192, + TX_CMD_FLG_MORE_FRAG = 16384, + TX_CMD_FLG_TSF = 65536, + TX_CMD_FLG_CALIB = 131072, + TX_CMD_FLG_KEEP_SEQ_CTL = 262144, + TX_CMD_FLG_MH_PAD = 1048576, + TX_CMD_FLG_RESP_TO_DRV = 2097152, + TX_CMD_FLG_TKIP_MIC_DONE = 8388608, + TX_CMD_FLG_DUR = 33554432, + TX_CMD_FLG_FW_DROP = 67108864, + TX_CMD_FLG_EXEC_PAPD = 134217728, + TX_CMD_FLG_PAPD_TYPE = 268435456, + TX_CMD_FLG_HCCA_CHUNK = 2147483648, +}; + +struct iwl_tx_cmd { + __le16 len; + __le16 offload_assist; + __le32 tx_flags; + struct { + u8 try_cnt; + u8 btkill_cnt; + __le16 reserved; + } scratch; + __le32 rate_n_flags; + u8 sta_id; + u8 sec_ctl; + u8 initial_rate_index; + u8 reserved2; + u8 key[16]; + __le32 reserved3; + __le32 life_time; + __le32 dram_lsb_ptr; + u8 dram_msb_ptr; + u8 rts_retry_limit; + u8 data_retry_limit; + u8 tid_tspec; + __le16 pm_frame_timeout; + __le16 reserved4; + union { + struct { + struct {} __empty_payload; + u8 payload[0]; + }; + struct { + struct {} __empty_hdr; + struct ieee80211_hdr hdr[0]; + }; + }; +}; + +struct iwl_tfd_tb { + __le32 lo; + __le16 hi_n_len; +} __attribute__((packed)); + +struct iwl_tfd { + u8 __reserved1[3]; + u8 num_tbs; + struct iwl_tfd_tb tbs[20]; + __le32 __pad; +}; + +struct iwl_tfh_tb { + __le16 tb_len; + __le64 addr; +} __attribute__((packed)); + +struct iwl_tfh_tfd { + __le16 num_tbs; + struct iwl_tfh_tb tbs[25]; + __le32 __pad; +}; + +struct tso_t { + int next_frag_idx; + int size; + void *data; + u16 ip_id; + u8 tlen; + bool ipv6; + u32 tcp_seq; +}; + +struct iwl_device_cmd { + union { + struct { + struct iwl_cmd_header hdr; + u8 payload[320]; + }; + struct { + struct iwl_cmd_header_wide hdr_wide; + u8 payload_wide[316]; + }; + }; +}; + +enum iwl_scan_status { + IWL_MVM_SCAN_REGULAR = 1, + IWL_MVM_SCAN_SCHED = 2, + IWL_MVM_SCAN_NETDETECT = 4, + IWL_MVM_SCAN_STOPPING_REGULAR = 256, + IWL_MVM_SCAN_STOPPING_SCHED = 512, + IWL_MVM_SCAN_STOPPING_NETDETECT = 1024, + IWL_MVM_SCAN_REGULAR_MASK = 257, + IWL_MVM_SCAN_SCHED_MASK = 514, + IWL_MVM_SCAN_NETDETECT_MASK = 1028, + IWL_MVM_SCAN_STOPPING_MASK = 65280, + IWL_MVM_SCAN_MASK = 255, +}; + +enum iwl_wowlan_flags { + IS_11W_ASSOC = 1, + ENABLE_L3_FILTERING = 2, + ENABLE_NBNS_FILTERING = 4, + ENABLE_DHCP_FILTERING = 8, + ENABLE_STORE_BEACON = 16, +}; + +enum iwl_wowlan_wakeup_filters { + IWL_WOWLAN_WAKEUP_MAGIC_PACKET = 1, + IWL_WOWLAN_WAKEUP_PATTERN_MATCH = 2, + IWL_WOWLAN_WAKEUP_BEACON_MISS = 4, + IWL_WOWLAN_WAKEUP_LINK_CHANGE = 8, + IWL_WOWLAN_WAKEUP_GTK_REKEY_FAIL = 16, + IWL_WOWLAN_WAKEUP_EAP_IDENT_REQ = 32, + IWL_WOWLAN_WAKEUP_4WAY_HANDSHAKE = 64, + IWL_WOWLAN_WAKEUP_ENABLE_NET_DETECT = 128, + IWL_WOWLAN_WAKEUP_RF_KILL_DEASSERT = 256, + IWL_WOWLAN_WAKEUP_REMOTE_LINK_LOSS = 512, + IWL_WOWLAN_WAKEUP_REMOTE_SIGNATURE_TABLE = 1024, + IWL_WOWLAN_WAKEUP_REMOTE_TCP_EXTERNAL = 2048, + IWL_WOWLAN_WAKEUP_REMOTE_WAKEUP_PACKET = 4096, + IWL_WOWLAN_WAKEUP_IOAC_MAGIC_PACKET = 8192, + IWL_WOWLAN_WAKEUP_HOST_TIMER = 16384, + IWL_WOWLAN_WAKEUP_RX_FRAME = 32768, + IWL_WOWLAN_WAKEUP_BCN_FILTERING = 65536, +}; + +enum iwl_sta_key_flag { + STA_KEY_FLG_NO_ENC = 0, + STA_KEY_FLG_WEP = 1, + STA_KEY_FLG_CCM = 2, + STA_KEY_FLG_TKIP = 3, + STA_KEY_FLG_EXT = 4, + STA_KEY_FLG_GCMP = 5, + STA_KEY_FLG_CMAC = 6, + STA_KEY_FLG_ENC_UNKNOWN = 7, + STA_KEY_FLG_EN_MSK = 7, + STA_KEY_FLG_WEP_KEY_MAP = 8, + STA_KEY_FLG_AMSDU_SPP = 128, + STA_KEY_FLG_KEYID_POS = 8, + STA_KEY_FLG_KEYID_MSK = 768, + STA_KEY_NOT_VALID = 2048, + STA_KEY_FLG_WEP_13BYTES = 4096, + STA_KEY_FLG_KEY_32BYTES = 4096, + STA_KEY_MULTICAST = 16384, + STA_KEY_MFP = 32768, +}; + +enum iwl_wowlan_pattern_type { + WOWLAN_PATTERN_TYPE_BITMASK = 0, + WOWLAN_PATTERN_TYPE_IPV4_TCP_SYN = 1, + WOWLAN_PATTERN_TYPE_IPV6_TCP_SYN = 2, + WOWLAN_PATTERN_TYPE_IPV4_TCP_SYN_WILDCARD = 3, + WOWLAN_PATTERN_TYPE_IPV6_TCP_SYN_WILDCARD = 4, +}; + +enum iwl_d3_notif { + IWL_D3_NOTIF_WOWLAN_INFO = 1, + IWL_D3_NOTIF_WOWLAN_WAKE_PKT = 2, + IWL_D3_NOTIF_PROT_OFFLOAD = 4, + IWL_D3_ND_MATCH_INFO = 8, + IWL_D3_NOTIF_D3_END_NOTIF = 16, +}; + +enum iwl_d0i3_flags { + IWL_D0I3_RESET_REQUIRE = 1, +}; + +enum iwl_prot_offload_subcmd_ids { + WOWLAN_WAKE_PKT_NOTIFICATION = 252, + WOWLAN_INFO_NOTIFICATION = 253, + D3_END_NOTIFICATION = 254, + STORED_BEACON_NTF = 255, +}; + +enum iwl_wowlan_wakeup_reason { + IWL_WOWLAN_WAKEUP_BY_NON_WIRELESS = 0, + IWL_WOWLAN_WAKEUP_BY_MAGIC_PACKET = 1, + IWL_WOWLAN_WAKEUP_BY_PATTERN = 2, + IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_MISSED_BEACON = 4, + IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_DEAUTH = 8, + IWL_WOWLAN_WAKEUP_BY_GTK_REKEY_FAILURE = 16, + IWL_WOWLAN_WAKEUP_BY_RFKILL_DEASSERTED = 32, + IWL_WOWLAN_WAKEUP_BY_UCODE_ERROR = 64, + IWL_WOWLAN_WAKEUP_BY_EAPOL_REQUEST = 128, + IWL_WOWLAN_WAKEUP_BY_FOUR_WAY_HANDSHAKE = 256, + IWL_WOWLAN_WAKEUP_BY_REM_WAKE_LINK_LOSS = 512, + IWL_WOWLAN_WAKEUP_BY_REM_WAKE_SIGNATURE_TABLE = 1024, + IWL_WOWLAN_WAKEUP_BY_REM_WAKE_TCP_EXTERNAL = 2048, + IWL_WOWLAN_WAKEUP_BY_REM_WAKE_WAKEUP_PACKET = 4096, + IWL_WOWLAN_WAKEUP_BY_IOAC_MAGIC_PACKET = 8192, + IWL_WOWLAN_WAKEUP_BY_D3_WAKEUP_HOST_TIMER = 16384, + IWL_WOWLAN_WAKEUP_BY_RXFRAME_FILTERED_IN = 32768, + IWL_WOWLAN_WAKEUP_BY_BEACON_FILTERED_IN = 65536, + IWL_WAKEUP_BY_11W_UNPROTECTED_DEAUTH_OR_DISASSOC = 131072, + IWL_WAKEUP_BY_PATTERN_IPV4_TCP_SYN = 262144, + IWL_WAKEUP_BY_PATTERN_IPV4_TCP_SYN_WILDCARD = 524288, + IWL_WAKEUP_BY_PATTERN_IPV6_TCP_SYN = 1048576, + IWL_WAKEUP_BY_PATTERN_IPV6_TCP_SYN_WILDCARD = 2097152, +}; + +struct iwl_d3_manager_config { + __le32 min_sleep_time; + __le32 wakeup_flags; + __le32 wakeup_host_timer; +}; + +struct iwl_wowlan_config_cmd { + __le32 wakeup_filter; + __le16 non_qos_seq; + __le16 qos_seq[8]; + u8 wowlan_ba_teardown_tids; + u8 is_11n_connection; + u8 offloading_tid; + u8 flags; + u8 sta_id; + u8 reserved; +}; + +struct iwl_nonqos_seq_query_cmd { + __le32 get_set_flag; + __le32 mac_id_n_color; + __le16 value; + __le16 reserved; +}; + +struct iwl_binding_cmd_v1 { + __le32 id_and_color; + __le32 action; + __le32 macs[3]; + __le32 phy; +}; + +struct wowlan_key_reprogram_data { + bool error; + int wep_key_idx; +}; + +struct iwl_mic_keys { + u8 tx[8]; + u8 rx_unicast[8]; + u8 rx_mcast[8]; +}; + +struct iwl_p1k_cache { + __le16 p1k[5]; +}; + +struct iwl_wowlan_tkip_params_cmd { + struct iwl_mic_keys mic_keys; + struct iwl_p1k_cache tx; + struct iwl_p1k_cache rx_uni[2]; + struct iwl_p1k_cache rx_multi[2]; + u8 reversed[2]; + __le32 sta_id; +}; + +struct wowlan_key_tkip_data { + struct iwl_wowlan_tkip_params_cmd tkip; + bool have_tkip_keys; +} __attribute__((packed)); + +struct iwl_wowlan_kek_kck_material_cmd_v4 { + __le32 sta_id; + u8 kck[32]; + u8 kek[32]; + __le16 kck_len; + __le16 kek_len; + __le64 replay_ctr; + __le32 akm; + __le32 gtk_cipher; + __le32 igtk_cipher; + __le32 bigtk_cipher; +}; + +struct wowlan_key_gtk_type_iter { + struct iwl_wowlan_kek_kck_material_cmd_v4 *kek_kck_cmd; +}; + +struct iwl_wowlan_rsc_tsc_params_cmd; + +struct wowlan_key_rsc_v5_data { + struct iwl_wowlan_rsc_tsc_params_cmd *rsc; + bool have_rsc; + int gtks; + int gtk_ids[4]; +}; + +struct iwl_wowlan_rsc_tsc_params_cmd { + __le64 ucast_rsc[8]; + __le64 mcast_rsc[16]; + __le32 sta_id; + u8 mcast_key_id_map[4]; +}; + +struct iwl_wowlan_rsc_tsc_params_cmd_v4; + +struct wowlan_key_rsc_tsc_data { + struct iwl_wowlan_rsc_tsc_params_cmd_v4 *rsc_tsc; + bool have_rsc_tsc; +}; + +struct tkip_sc { + __le16 iv16; + __le16 pad; + __le32 iv32; +}; + +struct iwl_tkip_rsc_tsc { + struct tkip_sc unicast_rsc[16]; + struct tkip_sc multicast_rsc[16]; + struct tkip_sc tsc; +}; + +struct aes_sc { + __le64 pn; +}; + +struct iwl_aes_rsc_tsc { + struct aes_sc unicast_rsc[16]; + struct aes_sc multicast_rsc[16]; + struct aes_sc tsc; +}; + +union iwl_all_tsc_rsc { + struct iwl_tkip_rsc_tsc tkip; + struct iwl_aes_rsc_tsc aes; +}; + +struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 { + union iwl_all_tsc_rsc all_tsc_rsc; +}; + +struct iwl_wowlan_rsc_tsc_params_cmd_v4 { + struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 params; + __le32 sta_id; +} __attribute__((packed)); + +struct iwl_wowlan_pattern_v1 { + u8 mask[16]; + u8 pattern[128]; + u8 mask_size; + u8 pattern_size; + __le16 reserved; +}; + +struct iwl_wowlan_patterns_cmd_v1 { + __le32 n_patterns; + struct iwl_wowlan_pattern_v1 patterns[0]; +}; + +struct iwl_wowlan_ipv4_tcp_syn { + u8 src_addr[4]; + u8 dst_addr[4]; + __le16 src_port; + __le16 dst_port; +}; + +struct iwl_wowlan_ipv6_tcp_syn { + u8 src_addr[16]; + u8 dst_addr[16]; + __le16 src_port; + __le16 dst_port; +}; + +union iwl_wowlan_pattern_data { + struct iwl_wowlan_pattern_v1 bitmask; + struct iwl_wowlan_ipv4_tcp_syn ipv4_tcp_syn; + struct iwl_wowlan_ipv6_tcp_syn ipv6_tcp_syn; +}; + +struct iwl_wowlan_pattern_v2 { + u8 pattern_type; + u8 reserved[3]; + union iwl_wowlan_pattern_data u; +}; + +struct iwl_wowlan_patterns_cmd { + u8 n_patterns; + u8 sta_id; + __le16 reserved; + struct iwl_wowlan_pattern_v2 patterns[0]; +}; + +struct iwl_mvm_nd_results { + u32 matched_profiles; + u8 matches[198]; +}; + +struct iwl_wowlan_status_data; + +struct iwl_d3_data { + struct iwl_wowlan_status_data *status; + bool test; + u32 d3_end_flags; + u32 notif_expected; + u32 notif_received; + struct iwl_mvm_nd_results *nd_results; + bool nd_results_valid; +}; + +struct iwl_multicast_key_data { + u8 key[32]; + u8 len; + u8 flags; + u8 id; + u8 ipn[6]; +}; + +struct iwl_wowlan_status_data { + u64 replay_ctr; + u32 num_of_gtk_rekeys; + u32 received_beacons; + u32 wakeup_reasons; + u32 wake_packet_length; + u32 wake_packet_bufsize; + u16 pattern_number; + u16 non_qos_seq_ctr; + u16 qos_seq_ctr[8]; + u8 tid_tear_down; + struct { + u8 key[32]; + u8 len; + u8 flags; + u8 id; + } gtk[2]; + struct { + struct { + struct ieee80211_key_seq seq[8]; + } tkip; + struct { + struct ieee80211_key_seq seq[8]; + } aes; + s8 key_id; + bool valid; + } gtk_seq[2]; + struct { + struct { + struct ieee80211_key_seq seq[8]; + u64 tx_pn; + } tkip; + struct { + struct ieee80211_key_seq seq[8]; + u64 tx_pn; + } aes; + } ptk; + struct iwl_multicast_key_data igtk; + struct iwl_multicast_key_data bigtk[2]; + u8 *wake_packet; +}; + +struct error_table_start { + u32 valid; + __le32 err_id; +}; + +struct iwl_wowlan_get_status_cmd { + __le32 sta_id; +}; + +struct iwl_wowlan_gtk_status_v1 { + u8 key_index; + u8 reserved[3]; + u8 decrypt_key[16]; + u8 tkip_mic_key[8]; + struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 rsc; +} __attribute__((packed)); + +struct iwl_wowlan_status_v6 { + struct iwl_wowlan_gtk_status_v1 gtk; + __le64 replay_ctr; + __le16 pattern_number; + __le16 non_qos_seq_ctr; + __le16 qos_seq_ctr[8]; + __le32 wakeup_reasons; + __le32 num_of_gtk_rekeys; + __le32 transmitted_ndps; + __le32 received_beacons; + __le32 wake_packet_length; + __le32 wake_packet_bufsize; + u8 wake_packet[0]; +} __attribute__((packed)); + +struct iwl_wowlan_gtk_status_v2 { + u8 key[32]; + u8 key_len; + u8 key_flags; + u8 reserved[2]; + u8 tkip_mic_key[8]; + struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 rsc; +} __attribute__((packed)); + +struct iwl_wowlan_igtk_status { + u8 key[32]; + u8 ipn[6]; + u8 key_len; + u8 key_flags; +}; + +struct iwl_wowlan_status_v7 { + struct iwl_wowlan_gtk_status_v2 gtk[2]; + struct iwl_wowlan_igtk_status igtk[2]; + __le64 replay_ctr; + __le16 pattern_number; + __le16 non_qos_seq_ctr; + __le16 qos_seq_ctr[8]; + __le32 wakeup_reasons; + __le32 num_of_gtk_rekeys; + __le32 transmitted_ndps; + __le32 received_beacons; + __le32 wake_packet_length; + __le32 wake_packet_bufsize; + u8 wake_packet[0]; +} __attribute__((packed)); + +struct iwl_wowlan_status_v9 { + struct iwl_wowlan_gtk_status_v2 gtk[2]; + struct iwl_wowlan_igtk_status igtk[2]; + __le64 replay_ctr; + __le16 pattern_number; + __le16 non_qos_seq_ctr; + __le16 qos_seq_ctr[8]; + __le32 wakeup_reasons; + __le32 num_of_gtk_rekeys; + __le32 transmitted_ndps; + __le32 received_beacons; + __le32 wake_packet_length; + __le32 wake_packet_bufsize; + u8 tid_tear_down; + u8 reserved[3]; + u8 wake_packet[0]; +}; + +struct iwl_wowlan_all_rsc_tsc_v5 { + __le64 ucast_rsc[8]; + __le64 mcast_rsc[16]; + __le32 sta_id; + u8 mcast_key_id_map[4]; +}; + +struct iwl_wowlan_gtk_status_v3 { + u8 key[32]; + u8 key_len; + u8 key_flags; + u8 reserved[2]; + u8 tkip_mic_key[8]; + struct iwl_wowlan_all_rsc_tsc_v5 sc; +} __attribute__((packed)); + +struct iwl_wowlan_status_v12 { + struct iwl_wowlan_gtk_status_v3 gtk[2]; + struct iwl_wowlan_igtk_status igtk[2]; + __le64 replay_ctr; + __le16 pattern_number; + __le16 non_qos_seq_ctr; + __le16 qos_seq_ctr[8]; + __le32 wakeup_reasons; + __le32 num_of_gtk_rekeys; + __le32 transmitted_ndps; + __le32 received_beacons; + __le32 wake_packet_length; + __le32 wake_packet_bufsize; + u8 tid_tear_down; + u8 reserved[3]; + u8 wake_packet[0]; +}; + +struct iwl_scan_offload_profile_match { + u8 bssid[6]; + __le16 reserved; + u8 channel; + u8 energy; + u8 matching_feature; + u8 matching_channels[7]; +}; + +struct iwl_scan_offload_match_info { + __le32 matched_profiles; + __le32 last_scan_age; + __le32 n_scans_done; + __le32 gp2_d0u; + __le32 gp2_invoked; + u8 resume_while_scanning; + u8 self_recovery; + __le16 reserved; + struct iwl_scan_offload_profile_match matches[0]; +}; + +struct iwl_scan_offload_profile_match_v1 { + u8 bssid[6]; + __le16 reserved; + u8 channel; + u8 energy; + u8 matching_feature; + u8 matching_channels[5]; +}; + +struct iwl_mvm_d3_gtk_iter_data { + struct iwl_mvm *mvm; + struct iwl_wowlan_status_data *status; + u32 gtk_cipher; + u32 igtk_cipher; + u32 bigtk_cipher; + bool unhandled_cipher; + bool igtk_support; + bool bigtk_support; + int num_keys; +}; + +struct iwl_mvm_wep_key { + u8 key_index; + u8 key_offset; + __le16 reserved1; + u8 key_size; + u8 reserved2[3]; + u8 key[16]; +}; + +struct iwl_mvm_wep_key_cmd { + __le32 mac_id_n_color; + u8 num_keys; + u8 decryption_type; + u8 flags; + u8 reserved; + struct iwl_mvm_wep_key wep_key[0]; +}; + +struct iwl_wowlan_wake_pkt_notif { + __le32 wake_packet_length; + u8 station_id; + u8 reserved[3]; + u8 wake_packet[1]; +} __attribute__((packed)); + +struct iwl_wowlan_info_notif { + struct iwl_wowlan_gtk_status_v3 gtk[2]; + struct iwl_wowlan_igtk_status igtk[2]; + struct iwl_wowlan_igtk_status bigtk[2]; + __le64 replay_ctr; + __le16 pattern_number; + __le16 reserved1; + __le16 qos_seq_ctr[8]; + __le32 wakeup_reasons; + __le32 num_of_gtk_rekeys; + __le32 transmitted_ndps; + __le32 received_beacons; + u8 tid_tear_down; + u8 station_id; + u8 reserved2[2]; +}; + +struct iwl_wowlan_info_notif_v1 { + struct iwl_wowlan_gtk_status_v3 gtk[2]; + struct iwl_wowlan_igtk_status igtk[2]; + __le64 replay_ctr; + __le16 pattern_number; + __le16 reserved1; + __le16 qos_seq_ctr[8]; + __le32 wakeup_reasons; + __le32 num_of_gtk_rekeys; + __le32 transmitted_ndps; + __le32 received_beacons; + __le32 wake_packet_length; + __le32 wake_packet_bufsize; + u8 tid_tear_down; + u8 station_id; + u8 reserved2[2]; +}; + +struct iwl_wowlan_info_notif_v2 { + struct iwl_wowlan_gtk_status_v3 gtk[2]; + struct iwl_wowlan_igtk_status igtk[2]; + __le64 replay_ctr; + __le16 pattern_number; + __le16 reserved1; + __le16 qos_seq_ctr[8]; + __le32 wakeup_reasons; + __le32 num_of_gtk_rekeys; + __le32 transmitted_ndps; + __le32 received_beacons; + u8 tid_tear_down; + u8 station_id; + u8 reserved2[2]; +}; + +struct iwl_mvm_d3_end_notif { + __le32 flags; +}; + +struct mbox_chan_ops; + +struct mbox_chan; + +struct of_phandle_args; + +struct mbox_controller { + struct device *dev; + const struct mbox_chan_ops *ops; + struct mbox_chan *chans; + int num_chans; + bool txdone_irq; + bool txdone_poll; + unsigned int txpoll_period; + struct mbox_chan * (*of_xlate)(struct mbox_controller *, const struct of_phandle_args *); + struct hrtimer poll_hrt; + spinlock_t poll_hrt_lock; + struct list_head node; +}; + +struct mbox_chan_ops { + int (*send_data)(struct mbox_chan *, void *); + int (*flush)(struct mbox_chan *, unsigned long); + int (*startup)(struct mbox_chan *); + void (*shutdown)(struct mbox_chan *); + bool (*last_tx_done)(struct mbox_chan *); + bool (*peek_data)(struct mbox_chan *); +}; + +struct mbox_client; + +struct mbox_chan { + struct mbox_controller *mbox; + unsigned int txdone_method; + struct mbox_client *cl; + struct completion tx_complete; + void *active_req; + unsigned int msg_count; + unsigned int msg_free; + void *msg_data[20]; + spinlock_t lock; + void *con_priv; +}; + +struct mbox_client { + struct device *dev; + bool tx_block; + unsigned long tx_tout; + bool knows_txdone; + void (*rx_callback)(struct mbox_client *, void *); + void (*tx_prepare)(struct mbox_client *, void *); + void (*tx_done)(struct mbox_client *, void *, int); +}; + +struct of_phandle_args { + struct device_node *np; + int args_count; + uint32_t args[16]; +}; + +struct packet_offload { + __be16 type; + u16 priority; + struct offload_callbacks callbacks; + struct list_head list; +}; + +struct skb_gso_cb { + union { + int mac_offset; + int data_offset; + }; + int encap_level; + __wsum csum; + __u16 csum_start; +}; + +enum { + ETHTOOL_A_MM_STAT_UNSPEC = 0, + ETHTOOL_A_MM_STAT_PAD = 1, + ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS = 2, + ETHTOOL_A_MM_STAT_SMD_ERRORS = 3, + ETHTOOL_A_MM_STAT_REASSEMBLY_OK = 4, + ETHTOOL_A_MM_STAT_RX_FRAG_COUNT = 5, + ETHTOOL_A_MM_STAT_TX_FRAG_COUNT = 6, + ETHTOOL_A_MM_STAT_HOLD_COUNT = 7, + __ETHTOOL_A_MM_STAT_CNT = 8, + ETHTOOL_A_MM_STAT_MAX = 7, +}; + +enum { + ETHTOOL_A_MM_UNSPEC = 0, + ETHTOOL_A_MM_HEADER = 1, + ETHTOOL_A_MM_PMAC_ENABLED = 2, + ETHTOOL_A_MM_TX_ENABLED = 3, + ETHTOOL_A_MM_TX_ACTIVE = 4, + ETHTOOL_A_MM_TX_MIN_FRAG_SIZE = 5, + ETHTOOL_A_MM_RX_MIN_FRAG_SIZE = 6, + ETHTOOL_A_MM_VERIFY_ENABLED = 7, + ETHTOOL_A_MM_VERIFY_STATUS = 8, + ETHTOOL_A_MM_VERIFY_TIME = 9, + ETHTOOL_A_MM_MAX_VERIFY_TIME = 10, + ETHTOOL_A_MM_STATS = 11, + __ETHTOOL_A_MM_CNT = 12, + ETHTOOL_A_MM_MAX = 11, +}; + +struct mm_reply_data { + struct ethnl_reply_data base; + struct ethtool_mm_state state; + struct ethtool_mm_stats stats; +}; + +enum tcp_queue { + TCP_FRAG_IN_WRITE_QUEUE = 0, + TCP_FRAG_IN_RTX_QUEUE = 1, +}; + +enum inet_csk_ack_state_t { + ICSK_ACK_SCHED = 1, + ICSK_ACK_TIMER = 2, + ICSK_ACK_PUSHED = 4, + ICSK_ACK_PUSHED2 = 8, + ICSK_ACK_NOW = 16, + ICSK_ACK_NOMEM = 32, +}; + +struct switchdev_mst_state { + u16 msti; + u8 state; +}; + +struct switchdev_brport_flags { + unsigned long val; + unsigned long mask; +}; + +struct switchdev_vlan_msti { + u16 vid; + u16 msti; +}; + +struct switchdev_attr { + struct net_device *orig_dev; + enum switchdev_attr_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); + union { + u8 stp_state; + struct switchdev_mst_state mst_state; + struct switchdev_brport_flags brport_flags; + bool mrouter; + clock_t ageing_time; + bool vlan_filtering; + u16 vlan_protocol; + bool mst; + bool mc_disabled; + u8 mrp_port_role; + struct switchdev_vlan_msti vlan_msti; + } u; +}; + +struct br_config_bpdu { + unsigned int topology_change: 1; + unsigned int topology_change_ack: 1; + bridge_id root; + int root_path_cost; + bridge_id bridge_id; + port_id port_id; + int message_age; + int max_age; + int hello_time; + int forward_delay; +}; + +struct freq_band_range { + u64 start; + u64 end; +}; + +struct wbrf_ranges_in_out { + u64 num_of_ranges; + struct freq_band_range band_list[11]; +}; + +struct rapl_pmu; + +struct rapl_pmus { + struct pmu pmu; + unsigned int maxdie; + struct rapl_pmu *pmus[0]; +}; + +struct rapl_pmu { + raw_spinlock_t lock; + int n_active; + int cpu; + struct list_head active_list; + struct pmu *pmu; + ktime_t timer_interval; + struct hrtimer hrtimer; +}; + +enum rapl_unit_quirk { + RAPL_UNIT_QUIRK_NONE = 0, + RAPL_UNIT_QUIRK_INTEL_HSW = 1, + RAPL_UNIT_QUIRK_INTEL_SPR = 2, +}; + +struct rapl_model { + struct perf_msr *rapl_msrs; + unsigned long events; + unsigned int msr_power_unit; + enum rapl_unit_quirk unit_quirk; +}; + +enum perf_rapl_events { + PERF_RAPL_PP0 = 0, + PERF_RAPL_PKG = 1, + PERF_RAPL_RAM = 2, + PERF_RAPL_PP1 = 3, + PERF_RAPL_PSYS = 4, + PERF_RAPL_MAX = 5, + NR_RAPL_DOMAINS = 5, +}; + +struct cppc_perf_caps { + u32 guaranteed_perf; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_perf; + u32 lowest_nonlinear_perf; + u32 lowest_freq; + u32 nominal_freq; + u32 energy_perf; + bool auto_sel; +}; + +struct cpc_reg { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); + +struct cstate_entry { + struct { + unsigned int eax; + unsigned int ecx; + } states[8]; +}; + +struct acpi_power_register { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct mwait_cpu_dead { + unsigned int control; + unsigned int status; +}; + +enum sysctl_writes_mode { + SYSCTL_WRITES_LEGACY = -1, + SYSCTL_WRITES_WARN = 0, + SYSCTL_WRITES_STRICT = 1, +}; + +struct do_proc_dointvec_minmax_conv_param { + int *min; + int *max; +}; + +struct do_proc_douintvec_minmax_conv_param { + unsigned int *min; + unsigned int *max; +}; + +struct rt_waiter_node { + struct rb_node entry; + int prio; + u64 deadline; +}; + +struct ww_acquire_ctx; + +struct rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; +}; + +enum futex_access { + FUTEX_READ = 0, + FUTEX_WRITE = 1, +}; + +enum { + Q_REQUEUE_PI_NONE = 0, + Q_REQUEUE_PI_IGNORE = 1, + Q_REQUEUE_PI_IN_PROGRESS = 2, + Q_REQUEUE_PI_WAIT = 3, + Q_REQUEUE_PI_DONE = 4, + Q_REQUEUE_PI_LOCKED = 5, +}; + +struct bpf_local_storage_cache { + spinlock_t idx_lock; + u64 idx_usage_counts[16]; +}; + +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, +}; + +typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *); + +struct bpf_local_storage_elem { + struct hlist_node map_node; + struct hlist_node snode; + struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *local_storage; + struct callback_head rcu; + long: 64; + struct bpf_local_storage_data sdata; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct mlock_fbatch { + local_lock_t lock; + struct folio_batch fbatch; +}; + +enum kernel_read_file_id { + READING_UNKNOWN = 0, + READING_FIRMWARE = 1, + READING_MODULE = 2, + READING_KEXEC_IMAGE = 3, + READING_KEXEC_INITRAMFS = 4, + READING_POLICY = 5, + READING_X509_CERTIFICATE = 6, + READING_MAX_ID = 7, +}; + +enum { + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, +}; + +struct msdos_dir_entry { + __u8 name[11]; + __u8 attr; + __u8 lcase; + __u8 ctime_cs; + __le16 ctime; + __le16 cdate; + __le16 adate; + __le16 starthi; + __le16 time; + __le16 date; + __le16 start; + __le32 size; +}; + +struct msdos_dir_slot { + __u8 id; + __u8 name0_4[10]; + __u8 attr; + __u8 reserved; + __u8 alias_checksum; + __u8 name5_10[12]; + __le16 start; + __u8 name11_12[4]; +}; + +struct __fat_dirent { + long d_ino; + __kernel_off_t d_off; + unsigned short d_reclen; + char d_name[256]; +}; + +struct fat_ioctl_filldir_callback { + struct dir_context ctx; + void __attribute__((btf_type_tag("user"))) *dirent; + int result; + const char *longname; + int long_len; + const char *shortname; + int short_len; +}; + +struct fat_slot_info { + loff_t i_pos; + loff_t slot_off; + int nr_slots; + struct msdos_dir_entry *de; + struct buffer_head *bh; +}; + +struct btrfs_csums { + u16 size; + const char name[10]; + const char driver[12]; +}; + +enum btrfs_mod_log_op { + BTRFS_MOD_LOG_KEY_REPLACE = 0, + BTRFS_MOD_LOG_KEY_ADD = 1, + BTRFS_MOD_LOG_KEY_REMOVE = 2, + BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING = 3, + BTRFS_MOD_LOG_KEY_REMOVE_WHILE_MOVING = 4, + BTRFS_MOD_LOG_MOVE_KEYS = 5, + BTRFS_MOD_LOG_ROOT_REPLACE = 6, +}; + +struct statx; + +struct io_statx { + struct file *file; + int dfd; + unsigned int mask; + unsigned int flags; + struct filename *filename; + struct statx __attribute__((btf_type_tag("user"))) *buffer; +}; + +struct statx_timestamp { + __s64 tv_sec; + __u32 tv_nsec; + __s32 __reserved; +}; + +struct statx { + __u32 stx_mask; + __u32 stx_blksize; + __u64 stx_attributes; + __u32 stx_nlink; + __u32 stx_uid; + __u32 stx_gid; + __u16 stx_mode; + __u16 __spare0[1]; + __u64 stx_ino; + __u64 stx_size; + __u64 stx_blocks; + __u64 stx_attributes_mask; + struct statx_timestamp stx_atime; + struct statx_timestamp stx_btime; + struct statx_timestamp stx_ctime; + struct statx_timestamp stx_mtime; + __u32 stx_rdev_major; + __u32 stx_rdev_minor; + __u32 stx_dev_major; + __u32 stx_dev_minor; + __u64 stx_mnt_id; + __u32 stx_dio_mem_align; + __u32 stx_dio_offset_align; + __u64 __spare3[12]; +}; + +enum devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_UC = 1, + DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, +}; + +struct arch_io_reserve_memtype_wc_devres { + resource_size_t start; + resource_size_t size; +}; + +struct event_counter { + u32 count; + u32 flags; +}; + +struct acpi_data_attr; + +struct acpi_data_obj { + char *name; + int (*fn)(void *, struct acpi_data_attr *); +}; + +struct acpi_data_attr { + struct bin_attribute attr; + u64 addr; +}; + +struct acpi_table_attr { + struct bin_attribute attr; + char name[4]; + int instance; + char filename[8]; + struct list_head node; +}; + +typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); + +struct acpi_table_bert { + struct acpi_table_header header; + u32 region_length; + u64 address; +}; + +struct acpi_table_ccel { + struct acpi_table_header header; + u8 CCtype; + u8 Ccsub_type; + u16 reserved; + u64 log_area_minimum_length; + u64 log_area_start_address; +}; + +enum { + AHCI_PCI_BAR_STA2X11 = 0, + AHCI_PCI_BAR_CAVIUM = 0, + AHCI_PCI_BAR_LOONGSON = 0, + AHCI_PCI_BAR_ENMOTUS = 2, + AHCI_PCI_BAR_CAVIUM_GEN5 = 4, + AHCI_PCI_BAR_STANDARD = 5, +}; + +enum board_ids { + board_ahci = 0, + board_ahci_43bit_dma = 1, + board_ahci_ign_iferr = 2, + board_ahci_no_debounce_delay = 3, + board_ahci_no_msi = 4, + board_ahci_pcs_quirk = 5, + board_ahci_pcs_quirk_no_devslp = 6, + board_ahci_pcs_quirk_no_sntf = 7, + board_ahci_yes_fbs = 8, + board_ahci_al = 9, + board_ahci_avn = 10, + board_ahci_mcp65 = 11, + board_ahci_mcp77 = 12, + board_ahci_mcp89 = 13, + board_ahci_mv = 14, + board_ahci_sb600 = 15, + board_ahci_sb700 = 16, + board_ahci_vt8251 = 17, + board_ahci_mcp_linux = 11, + board_ahci_mcp67 = 11, + board_ahci_mcp73 = 11, + board_ahci_mcp79 = 12, +}; + +struct iwl_rate_info { + u8 plcp; + u8 plcp_siso; + u8 plcp_mimo2; + u8 plcp_mimo3; + u8 ieee; + u8 prev_ieee; + u8 next_ieee; + u8 prev_rs; + u8 next_rs; + u8 prev_rs_tgg; + u8 next_rs_tgg; +}; + +enum { + IWL_RATE_SISO_6M_PLCP = 0, + IWL_RATE_SISO_12M_PLCP = 1, + IWL_RATE_SISO_18M_PLCP = 2, + IWL_RATE_SISO_24M_PLCP = 3, + IWL_RATE_SISO_36M_PLCP = 4, + IWL_RATE_SISO_48M_PLCP = 5, + IWL_RATE_SISO_54M_PLCP = 6, + IWL_RATE_SISO_60M_PLCP = 7, + IWL_RATE_MIMO2_6M_PLCP = 8, + IWL_RATE_MIMO2_12M_PLCP = 9, + IWL_RATE_MIMO2_18M_PLCP = 10, + IWL_RATE_MIMO2_24M_PLCP = 11, + IWL_RATE_MIMO2_36M_PLCP = 12, + IWL_RATE_MIMO2_48M_PLCP = 13, + IWL_RATE_MIMO2_54M_PLCP = 14, + IWL_RATE_MIMO2_60M_PLCP = 15, + IWL_RATE_MIMO3_6M_PLCP = 16, + IWL_RATE_MIMO3_12M_PLCP = 17, + IWL_RATE_MIMO3_18M_PLCP = 18, + IWL_RATE_MIMO3_24M_PLCP = 19, + IWL_RATE_MIMO3_36M_PLCP = 20, + IWL_RATE_MIMO3_48M_PLCP = 21, + IWL_RATE_MIMO3_54M_PLCP = 22, + IWL_RATE_MIMO3_60M_PLCP = 23, + IWL_RATE_SISO_INVM_PLCP = 24, + IWL_RATE_MIMO2_INVM_PLCP = 24, + IWL_RATE_MIMO3_INVM_PLCP = 24, +}; + +enum iwl_bt_coex_profile_traffic_load { + IWL_BT_COEX_TRAFFIC_LOAD_NONE = 0, + IWL_BT_COEX_TRAFFIC_LOAD_LOW = 1, + IWL_BT_COEX_TRAFFIC_LOAD_HIGH = 2, + IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS = 3, +}; + +struct rtw_vif_recalc_lps_iter_data { + struct rtw_dev *rtwdev; + struct ieee80211_vif *found_vif; + int count; +}; + +enum xfer_buf_dir { + TO_XFER_BUF = 0, + FROM_XFER_BUF = 1, +}; + +struct sg_page_iter { + struct scatterlist *sg; + unsigned int sg_pgoffset; + unsigned int __nents; + int __pg_advance; +}; + +struct sg_mapping_iter { + struct page *page; + void *addr; + size_t length; + size_t consumed; + struct sg_page_iter piter; + unsigned int __offset; + unsigned int __remaining; + unsigned int __flags; +}; + +enum r1bio_state { + R1BIO_Uptodate = 0, + R1BIO_IsSync = 1, + R1BIO_Degraded = 2, + R1BIO_BehindIO = 3, + R1BIO_ReadError = 4, + R1BIO_Returned = 5, + R1BIO_MadeGood = 6, + R1BIO_WriteError = 7, + R1BIO_FailFast = 8, +}; + +enum bitmap_state { + BITMAP_STALE = 1, + BITMAP_WRITE_ERROR = 2, + BITMAP_HOSTENDIAN = 15, +}; + +struct serial_info { + struct rb_node node; + sector_t start; + sector_t last; + sector_t _subtree_last; +}; + +struct raid1_plug_cb { + struct blk_plug_cb cb; + struct bio_list pending; + unsigned int count; +}; + +struct r1bio { + atomic_t remaining; + atomic_t behind_remaining; + sector_t sector; + int sectors; + unsigned long state; + struct mddev *mddev; + struct bio *master_bio; + int read_disk; + struct list_head retry_list; + struct bio *behind_master_bio; + struct bio *bios[0]; +}; + +struct raid1_info; + +struct pool_info; + +struct r1conf { + struct mddev *mddev; + struct raid1_info *mirrors; + int raid_disks; + int nonrot_disks; + spinlock_t device_lock; + struct list_head retry_list; + struct list_head bio_end_io_list; + struct bio_list pending_bio_list; + wait_queue_head_t wait_barrier; + spinlock_t resync_lock; + atomic_t nr_sync_pending; + atomic_t *nr_pending; + atomic_t *nr_waiting; + atomic_t *nr_queued; + atomic_t *barrier; + int array_frozen; + int fullsync; + int recovery_disabled; + struct pool_info *poolinfo; + mempool_t r1bio_pool; + mempool_t r1buf_pool; + struct bio_set bio_split; + struct page *tmppage; + struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; + sector_t cluster_sync_low; + sector_t cluster_sync_high; +}; + +struct raid1_info { + struct md_rdev *rdev; + sector_t head_position; + sector_t next_seq_sect; + sector_t seq_start; +}; + +struct pool_info { + struct mddev *mddev; + int raid_disks; +}; + +struct resync_pages { + void *raid_bio; + struct page *pages[16]; +}; + +struct read_balance_ctl { + sector_t closest_dist; + int closest_dist_disk; + int min_pending; + int min_pending_disk; + int sequential_disk; + int readable_disks; +}; + +enum { + SKB_FCLONE_UNAVAILABLE = 0, + SKB_FCLONE_ORIG = 1, + SKB_FCLONE_CLONE = 2, +}; + +struct nf_log_buf { + unsigned int count; + char buf[1020]; +}; + +enum nft_bitwise_ops { + NFT_BITWISE_BOOL = 0, + NFT_BITWISE_LSHIFT = 1, + NFT_BITWISE_RSHIFT = 2, +}; + +enum nft_bitwise_attributes { + NFTA_BITWISE_UNSPEC = 0, + NFTA_BITWISE_SREG = 1, + NFTA_BITWISE_DREG = 2, + NFTA_BITWISE_LEN = 3, + NFTA_BITWISE_MASK = 4, + NFTA_BITWISE_XOR = 5, + NFTA_BITWISE_OP = 6, + NFTA_BITWISE_DATA = 7, + __NFTA_BITWISE_MAX = 8, +}; + +struct nft_bitwise { + u8 sreg; + u8 dreg; + enum nft_bitwise_ops op: 8; + u8 len; + struct nft_data mask; + struct nft_data xor; + struct nft_data data; +}; + +struct nft_bitwise_fast_expr { + u32 mask; + u32 xor; + u8 sreg; + u8 dreg; +}; + +struct group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +}; + +struct compat_group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +} __attribute__((packed)); + +struct group_filter { + union { + struct { + __u32 gf_interface_aux; + struct __kernel_sockaddr_storage gf_group_aux; + __u32 gf_fmode_aux; + __u32 gf_numsrc_aux; + struct __kernel_sockaddr_storage gf_slist[1]; + }; + struct { + __u32 gf_interface; + struct __kernel_sockaddr_storage gf_group; + __u32 gf_fmode; + __u32 gf_numsrc; + struct __kernel_sockaddr_storage gf_slist_flex[0]; + }; + }; +}; + +struct in6_flowlabel_req { + struct in6_addr flr_dst; + __be32 flr_label; + __u8 flr_action; + __u8 flr_share; + __u16 flr_flags; + __u16 flr_expires; + __u16 flr_linger; + __u32 __flr_pad; +}; + +struct ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; + int ipv6mr_ifindex; +}; + +struct group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +}; + +struct resource_entry { + struct list_head node; + struct resource *res; + resource_size_t offset; + struct resource __res; +}; + +struct pci_root_res { + struct list_head list; + struct resource res; +}; + +struct pci_root_info { + struct list_head list; + char name[12]; + struct list_head resources; + struct resource busn; + int node; + int link; +}; + +enum cpio_fields { + C_MAGIC = 0, + C_INO = 1, + C_MODE = 2, + C_UID = 3, + C_GID = 4, + C_NLINK = 5, + C_MTIME = 6, + C_FILESIZE = 7, + C_MAJ = 8, + C_MIN = 9, + C_RMAJ = 10, + C_RMIN = 11, + C_NAMESIZE = 12, + C_CHKSUM = 13, + C_NFIELDS = 14, +}; + +struct klist_waiter { + struct list_head list; + struct klist_node *node; + struct task_struct *process; + int woken; +}; + +struct cstate_model { + unsigned long core_events; + unsigned long pkg_events; + unsigned long module_events; + unsigned long quirks; +}; + +enum perf_cstate_pkg_events { + PERF_CSTATE_PKG_C2_RES = 0, + PERF_CSTATE_PKG_C3_RES = 1, + PERF_CSTATE_PKG_C6_RES = 2, + PERF_CSTATE_PKG_C7_RES = 3, + PERF_CSTATE_PKG_C8_RES = 4, + PERF_CSTATE_PKG_C9_RES = 5, + PERF_CSTATE_PKG_C10_RES = 6, + PERF_CSTATE_PKG_EVENT_MAX = 7, +}; + +enum perf_cstate_core_events { + PERF_CSTATE_CORE_C1_RES = 0, + PERF_CSTATE_CORE_C3_RES = 1, + PERF_CSTATE_CORE_C6_RES = 2, + PERF_CSTATE_CORE_C7_RES = 3, + PERF_CSTATE_CORE_EVENT_MAX = 4, +}; + +enum perf_cstate_module_events { + PERF_CSTATE_MODULE_C6_RES = 0, + PERF_CSTATE_MODULE_EVENT_MAX = 1, +}; + +enum { + FTRACE_UPDATE_IGNORE = 0, + FTRACE_UPDATE_MAKE_CALL = 1, + FTRACE_UPDATE_MODIFY_CALL = 2, + FTRACE_UPDATE_MAKE_NOP = 3, +}; + +enum { + FTRACE_OPS_FL_ENABLED = 1, + FTRACE_OPS_FL_DYNAMIC = 2, + FTRACE_OPS_FL_SAVE_REGS = 4, + FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, + FTRACE_OPS_FL_RECURSION = 16, + FTRACE_OPS_FL_STUB = 32, + FTRACE_OPS_FL_INITIALIZED = 64, + FTRACE_OPS_FL_DELETED = 128, + FTRACE_OPS_FL_ADDING = 256, + FTRACE_OPS_FL_REMOVING = 512, + FTRACE_OPS_FL_MODIFYING = 1024, + FTRACE_OPS_FL_ALLOC_TRAMP = 2048, + FTRACE_OPS_FL_IPMODIFY = 4096, + FTRACE_OPS_FL_PID = 8192, + FTRACE_OPS_FL_RCU = 16384, + FTRACE_OPS_FL_TRACE_ARRAY = 32768, + FTRACE_OPS_FL_PERMANENT = 65536, + FTRACE_OPS_FL_DIRECT = 131072, +}; + +enum { + FTRACE_FL_ENABLED = 2147483648, + FTRACE_FL_REGS = 1073741824, + FTRACE_FL_REGS_EN = 536870912, + FTRACE_FL_TRAMP = 268435456, + FTRACE_FL_TRAMP_EN = 134217728, + FTRACE_FL_IPMODIFY = 67108864, + FTRACE_FL_DISABLED = 33554432, + FTRACE_FL_DIRECT = 16777216, + FTRACE_FL_DIRECT_EN = 8388608, + FTRACE_FL_CALL_OPS = 4194304, + FTRACE_FL_CALL_OPS_EN = 2097152, + FTRACE_FL_TOUCHED = 1048576, + FTRACE_FL_MODIFIED = 524288, +}; + +enum { + TRACE_FTRACE_BIT = 0, + TRACE_FTRACE_NMI_BIT = 1, + TRACE_FTRACE_IRQ_BIT = 2, + TRACE_FTRACE_SIRQ_BIT = 3, + TRACE_FTRACE_TRANSITION_BIT = 4, + TRACE_INTERNAL_BIT = 5, + TRACE_INTERNAL_NMI_BIT = 6, + TRACE_INTERNAL_IRQ_BIT = 7, + TRACE_INTERNAL_SIRQ_BIT = 8, + TRACE_INTERNAL_TRANSITION_BIT = 9, + TRACE_BRANCH_BIT = 10, + TRACE_IRQ_BIT = 11, + TRACE_GRAPH_BIT = 12, + TRACE_GRAPH_DEPTH_START_BIT = 13, + TRACE_GRAPH_DEPTH_END_BIT = 14, + TRACE_GRAPH_NOTRACE_BIT = 15, + TRACE_RECORD_RECURSION_BIT = 16, +}; + +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, +}; + +struct dyn_arch_ftrace {}; + +struct dyn_ftrace { + unsigned long ip; + unsigned long flags; + struct dyn_arch_ftrace arch; +}; + +union ftrace_op_code_union { + char code[7]; + struct { + char op[3]; + int offset; + } __attribute__((packed)); +}; + +struct prog_poke_elem { + struct list_head list; + struct bpf_prog_aux *aux; +}; + +struct bpf_event_entry { + struct perf_event *event; + struct file *perf_file; + struct file *map_file; struct callback_head rcu; }; -struct bpf_tcp_req_attrs { - u32 rcv_tsval; - u32 rcv_tsecr; - u16 mss; - u8 rcv_wscale; - u8 snd_wscale; - u8 ecn_ok; - u8 wscale_ok; - u8 sack_ok; - u8 tstamp_ok; - u8 usec_ts_ok; - u8 reserved[3]; +struct bpf_iter__bpf_map_elem { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + void *value; + }; }; -enum nft_immediate_attributes { - NFTA_IMMEDIATE_UNSPEC = 0, - NFTA_IMMEDIATE_DREG = 1, - NFTA_IMMEDIATE_DATA = 2, - __NFTA_IMMEDIATE_MAX = 3, +struct bpf_iter_seq_array_map_info { + struct bpf_map *map; + void *percpu_value_buf; + u32 index; }; -enum nft_registers { - NFT_REG_VERDICT = 0, - NFT_REG_1 = 1, - NFT_REG_2 = 2, - NFT_REG_3 = 3, - NFT_REG_4 = 4, - __NFT_REG_MAX = 5, - NFT_REG32_00 = 8, - NFT_REG32_01 = 9, - NFT_REG32_02 = 10, - NFT_REG32_03 = 11, - NFT_REG32_04 = 12, - NFT_REG32_05 = 13, - NFT_REG32_06 = 14, - NFT_REG32_07 = 15, - NFT_REG32_08 = 16, - NFT_REG32_09 = 17, - NFT_REG32_10 = 18, - NFT_REG32_11 = 19, - NFT_REG32_12 = 20, - NFT_REG32_13 = 21, - NFT_REG32_14 = 22, - NFT_REG32_15 = 23, +struct slab { + unsigned long __page_flags; + struct kmem_cache *slab_cache; + union { + struct { + union { + struct list_head slab_list; + struct { + struct slab *next; + int slabs; + }; + }; + union { + struct { + void *freelist; + union { + unsigned long counters; + struct { + unsigned int inuse: 16; + unsigned int objects: 15; + unsigned int frozen: 1; + }; + }; + }; + freelist_aba_t freelist_counter; + }; + }; + struct callback_head callback_head; + }; + unsigned int __unused; + atomic_t __page_refcount; + unsigned long memcg_data; }; -enum nft_chain_flags { - NFT_CHAIN_BASE = 1, - NFT_CHAIN_HW_OFFLOAD = 2, - NFT_CHAIN_BINDING = 4, +struct kmem_cache_node { + spinlock_t list_lock; + unsigned long nr_partial; + struct list_head partial; }; -struct nft_rule { +struct slub_flush_work { + struct work_struct work; + struct kmem_cache *s; + bool skip; +}; + +struct slab_attribute { + struct attribute attr; + ssize_t (*show)(struct kmem_cache *, char *); + ssize_t (*store)(struct kmem_cache *, const char *, size_t); +}; + +struct saved_alias { + struct kmem_cache *s; + const char *name; + struct saved_alias *next; +}; + +enum slab_state { + DOWN = 0, + PARTIAL = 1, + UP = 2, + FULL = 3, +}; + +enum stat_item { + ALLOC_FASTPATH = 0, + ALLOC_SLOWPATH = 1, + FREE_FASTPATH = 2, + FREE_SLOWPATH = 3, + FREE_FROZEN = 4, + FREE_ADD_PARTIAL = 5, + FREE_REMOVE_PARTIAL = 6, + ALLOC_FROM_PARTIAL = 7, + ALLOC_SLAB = 8, + ALLOC_REFILL = 9, + ALLOC_NODE_MISMATCH = 10, + FREE_SLAB = 11, + CPUSLAB_FLUSH = 12, + DEACTIVATE_FULL = 13, + DEACTIVATE_EMPTY = 14, + DEACTIVATE_TO_HEAD = 15, + DEACTIVATE_TO_TAIL = 16, + DEACTIVATE_REMOTE_FREES = 17, + DEACTIVATE_BYPASS = 18, + ORDER_FALLBACK = 19, + CMPXCHG_DOUBLE_CPU_FAIL = 20, + CMPXCHG_DOUBLE_FAIL = 21, + CPU_PARTIAL_ALLOC = 22, + CPU_PARTIAL_FREE = 23, + CPU_PARTIAL_NODE = 24, + CPU_PARTIAL_DRAIN = 25, + NR_SLUB_STAT_ITEMS = 26, +}; + +enum track_item { + TRACK_ALLOC = 0, + TRACK_FREE = 1, +}; + +enum slab_stat_type { + SL_ALL = 0, + SL_PARTIAL = 1, + SL_CPU = 2, + SL_OBJECTS = 3, + SL_TOTAL = 4, +}; + +typedef struct { + unsigned long v; +} freeptr_t; + +struct detached_freelist { + struct slab *slab; + void *tail; + void *freelist; + int cnt; + struct kmem_cache *s; +}; + +struct partial_context { + gfp_t flags; + unsigned int orig_size; + void *object; +}; + +union __u128_halves { + u128 full; + struct { + u64 low; + u64 high; + }; +}; + +struct kmem_obj_info { + void *kp_ptr; + struct slab *kp_slab; + void *kp_objp; + unsigned long kp_data_offset; + struct kmem_cache *kp_slab_cache; + void *kp_ret; + void *kp_stack[16]; + void *kp_free_stack[16]; +}; + +typedef u32 depot_stack_handle_t; + +struct track { + unsigned long addr; + depot_stack_handle_t handle; + int cpu; + int pid; + unsigned long when; +}; + +enum { + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, +}; + +struct mb_cache_entry { + struct list_head e_list; + struct hlist_bl_node e_hash_list; + atomic_t e_refcnt; + u32 e_key; + unsigned long e_flags; + u64 e_value; +}; + +struct mb_cache { + struct hlist_bl_head *c_hash; + int c_bucket_bits; + unsigned long c_max_entries; + spinlock_t c_list_lock; + struct list_head c_list; + unsigned long c_entry_count; + struct shrinker *c_shrink; + struct work_struct c_shrink_work; +}; + +struct posix_acl_xattr_header { + __le32 a_version; +}; + +struct posix_acl_xattr_entry { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +}; + +enum { + EVENTFS_SAVE_MODE = 65536, + EVENTFS_SAVE_UID = 131072, + EVENTFS_SAVE_GID = 262144, + EVENTFS_TOPLEVEL = 524288, +}; + +struct eventfs_root_inode { + struct eventfs_inode ei; + struct dentry *events_dir; +}; + +struct msg_queue { + struct kern_ipc_perm q_perm; + time64_t q_stime; + time64_t q_rtime; + time64_t q_ctime; + unsigned long q_cbytes; + unsigned long q_qnum; + unsigned long q_qbytes; + struct pid *q_lspid; + struct pid *q_lrpid; + struct list_head q_messages; + struct list_head q_receivers; + struct list_head q_senders; + long: 64; + long: 64; +}; + +struct msg; + +typedef int __kernel_ipc_pid_t; + +struct msqid_ds { + struct ipc_perm msg_perm; + struct msg *msg_first; + struct msg *msg_last; + __kernel_old_time_t msg_stime; + __kernel_old_time_t msg_rtime; + __kernel_old_time_t msg_ctime; + unsigned long msg_lcbytes; + unsigned long msg_lqbytes; + unsigned short msg_cbytes; + unsigned short msg_qnum; + unsigned short msg_qbytes; + __kernel_ipc_pid_t msg_lspid; + __kernel_ipc_pid_t msg_lrpid; +}; + +struct msg_msg; + +struct msg_receiver { + struct list_head r_list; + struct task_struct *r_tsk; + int r_mode; + long r_msgtype; + long r_maxsize; + struct msg_msg *r_msg; +}; + +struct msg_msgseg; + +struct msg_msg { + struct list_head m_list; + long m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; +}; + +struct msg_sender { struct list_head list; - u64 handle: 42; - u64 genmask: 2; - u64 dlen: 12; - u64 udata: 1; - unsigned char data[0]; + struct task_struct *tsk; + size_t msgsz; }; -struct nft_immediate_expr { - struct nft_data data; - u8 dreg; - u8 dlen; +struct msgbuf { + __kernel_long_t mtype; + char mtext[1]; }; -enum tcp_tw_status { - TCP_TW_SUCCESS = 0, - TCP_TW_RST = 1, - TCP_TW_ACK = 2, - TCP_TW_SYN = 3, +struct msqid64_ds { + struct ipc64_perm msg_perm; + long msg_stime; + long msg_rtime; + long msg_ctime; + unsigned long msg_cbytes; + unsigned long msg_qnum; + unsigned long msg_qbytes; + __kernel_pid_t msg_lspid; + __kernel_pid_t msg_lrpid; + unsigned long __unused4; + unsigned long __unused5; +}; + +struct msginfo { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + unsigned short msgseg; +}; + +enum { + IO_EVENTFD_OP_SIGNAL_BIT = 0, + IO_EVENTFD_OP_FREE_BIT = 1, +}; + +enum { + IORING_REGISTER_BUFFERS = 0, + IORING_UNREGISTER_BUFFERS = 1, + IORING_REGISTER_FILES = 2, + IORING_UNREGISTER_FILES = 3, + IORING_REGISTER_EVENTFD = 4, + IORING_UNREGISTER_EVENTFD = 5, + IORING_REGISTER_FILES_UPDATE = 6, + IORING_REGISTER_EVENTFD_ASYNC = 7, + IORING_REGISTER_PROBE = 8, + IORING_REGISTER_PERSONALITY = 9, + IORING_UNREGISTER_PERSONALITY = 10, + IORING_REGISTER_RESTRICTIONS = 11, + IORING_REGISTER_ENABLE_RINGS = 12, + IORING_REGISTER_FILES2 = 13, + IORING_REGISTER_FILES_UPDATE2 = 14, + IORING_REGISTER_BUFFERS2 = 15, + IORING_REGISTER_BUFFERS_UPDATE = 16, + IORING_REGISTER_IOWQ_AFF = 17, + IORING_UNREGISTER_IOWQ_AFF = 18, + IORING_REGISTER_IOWQ_MAX_WORKERS = 19, + IORING_REGISTER_RING_FDS = 20, + IORING_UNREGISTER_RING_FDS = 21, + IORING_REGISTER_PBUF_RING = 22, + IORING_UNREGISTER_PBUF_RING = 23, + IORING_REGISTER_SYNC_CANCEL = 24, + IORING_REGISTER_FILE_ALLOC_RANGE = 25, + IORING_REGISTER_PBUF_STATUS = 26, + IORING_REGISTER_NAPI = 27, + IORING_UNREGISTER_NAPI = 28, + IORING_REGISTER_LAST = 29, + IORING_REGISTER_USE_REGISTERED_RING = 2147483648, +}; + +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, +}; + +enum { + IORING_RESTRICTION_REGISTER_OP = 0, + IORING_RESTRICTION_SQE_OP = 1, + IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, + IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, + IORING_RESTRICTION_LAST = 4, +}; + +struct io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; +}; + +struct io_uring_probe_op { + __u8 op; + __u8 resv; + __u16 flags; + __u32 resv2; +}; + +struct io_uring_probe { + __u8 last_op; + __u8 ops_len; + __u16 resv; + __u32 resv2[3]; + struct io_uring_probe_op ops[0]; +}; + +struct io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; +}; + +struct acpi_ged_event { + struct list_head node; + struct device *dev; + unsigned int gsi; + unsigned int irq; + acpi_handle handle; +}; + +struct acpi_ged_device { + struct device *dev; + struct list_head event_list; +}; + +struct acpi_fan_fps { + u64 control; + u64 trip_point; + u64 speed; + u64 noise_level; + u64 power; + char name[20]; + struct device_attribute dev_attr; +}; + +struct acpi_fan_fst { + u64 revision; + u64 control; + u64 speed; +}; + +struct acpi_fan_fif { + u8 revision; + u8 fine_grain_ctrl; + u8 step_size; + u8 low_speed_notification; +}; + +struct acpi_fan { + bool acpi4; + struct acpi_fan_fif fif; + struct acpi_fan_fps *fps; + int fps_count; + struct thermal_cooling_device *cdev; + struct device_attribute fst_speed; + struct device_attribute fine_grain_control; +}; + +struct cpu { + int node_id; + int hotpluggable; + struct device dev; +}; + +struct cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; +}; + +enum blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, +}; + +typedef unsigned long ulong; + +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *); + void *priv; +}; + +enum e1000_mng_mode { + e1000_mng_mode_none = 0, + e1000_mng_mode_asf = 1, + e1000_mng_mode_pt = 2, + e1000_mng_mode_ipmi = 3, + e1000_mng_mode_host_if_only = 4, +}; + +enum iwl_tdls_channel_switch_type { + TDLS_SEND_CHAN_SW_REQ = 0, + TDLS_SEND_CHAN_SW_RESP_AND_MOVE_CH = 1, + TDLS_MOVE_CH = 2, +}; + +enum iwl_tx_cmd_sec_ctrl { + TX_CMD_SEC_WEP = 1, + TX_CMD_SEC_CCM = 2, + TX_CMD_SEC_TKIP = 3, + TX_CMD_SEC_EXT = 4, + TX_CMD_SEC_GCMP = 5, + TX_CMD_SEC_KEY128 = 8, + TX_CMD_SEC_KEY_FROM_TABLE = 16, +}; + +struct iwl_tdls_sta_info { + u8 sta_id; + u8 tx_to_peer_tid; + __le16 tx_to_peer_ssn; + __le32 is_initiator; +}; + +struct iwl_tdls_config_cmd { + __le32 id_and_color; + u8 tdls_peer_count; + u8 tx_to_ap_tid; + __le16 tx_to_ap_ssn; + struct iwl_tdls_sta_info sta_info[4]; + __le32 pti_req_data_offset; + struct iwl_tx_cmd pti_req_tx_cmd; + u8 pti_req_template[0]; +}; + +struct iwl_tdls_config_sta_info_res { + __le16 sta_id; + __le16 tx_to_peer_last_seq; +}; + +struct iwl_tdls_config_res { + __le32 tx_to_ap_last_seq; + struct iwl_tdls_config_sta_info_res sta_info[4]; +}; + +struct iwl_tdls_channel_switch_notif { + __le32 status; + __le32 offchannel_duration; + __le32 sta_id; +}; + +struct iwl_tdls_channel_switch_timing { + __le32 frame_timestamp; + __le32 max_offchan_duration; + __le32 switch_time; + __le32 switch_timeout; +}; + +struct iwl_tdls_channel_switch_frame { + __le32 switch_time_offset; + struct iwl_tx_cmd tx_cmd; + u8 data[200]; +}; + +struct iwl_tdls_channel_switch_cmd_tail { + struct iwl_tdls_channel_switch_timing timing; + struct iwl_tdls_channel_switch_frame frame; +}; + +struct iwl_tdls_channel_switch_cmd { + u8 switch_type; + __le32 peer_sta_id; + struct iwl_fw_channel_info ci; + struct iwl_tdls_channel_switch_cmd_tail tail; +} __attribute__((packed)); + +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARED = 3, +}; + +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; +}; + +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; +}; + +struct xhci_td { + struct list_head td_list; + struct list_head cancelled_td_list; + int status; + enum xhci_cancelled_td_status cancel_status; + struct urb *urb; + struct xhci_segment *start_seg; + union xhci_trb *first_trb; + union xhci_trb *last_trb; + struct xhci_segment *last_trb_seg; + struct xhci_segment *bounce_seg; + bool urb_length_set; + bool error_mid_td; + unsigned int num_trbs; +}; + +struct urb_priv { + int num_tds; + int num_tds_done; + struct xhci_td td[0]; +}; + +enum bitmap_page_attr { + BITMAP_PAGE_DIRTY = 0, + BITMAP_PAGE_PENDING = 1, + BITMAP_PAGE_NEEDWRITE = 2, +}; + +typedef __u16 bitmap_counter_t; + +struct bitmap_unplug_work { + struct work_struct work; + struct bitmap *bitmap; + struct completion *done; +}; + +struct bitmap_super_s { + __le32 magic; + __le32 version; + __u8 uuid[16]; + __le64 events; + __le64 events_cleared; + __le64 sync_size; + __le32 state; + __le32 chunksize; + __le32 daemon_sleep; + __le32 write_behind; + __le32 sectors_reserved; + __le32 nodes; + __u8 cluster_name[64]; + __u8 pad[120]; +}; + +typedef struct bitmap_super_s bitmap_super_t; + +union bpf_iter_link_info; + +typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); + +typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); + +typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); + +typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *); + +struct bpf_iter_reg { + const char *target; + bpf_iter_attach_target_t attach_target; + bpf_iter_detach_target_t detach_target; + bpf_iter_show_fdinfo_t show_fdinfo; + bpf_iter_fill_link_info_t fill_link_info; + bpf_iter_get_func_proto_t get_func_proto; + u32 ctx_arg_info_size; + u32 feature; + struct bpf_ctx_arg_aux ctx_arg_info[2]; + const struct bpf_iter_seq_info *seq_info; +}; + +union bpf_iter_link_info { + struct { + __u32 map_fd; + } map; + struct { + enum bpf_cgroup_iter_order order; + __u32 cgroup_fd; + __u64 cgroup_id; + } cgroup; + struct { + __u32 tid; + __u32 pid; + __u32 pid_fd; + } task; +}; + +enum { + BPF_SOCK_OPS_VOID = 0, + BPF_SOCK_OPS_TIMEOUT_INIT = 1, + BPF_SOCK_OPS_RWND_INIT = 2, + BPF_SOCK_OPS_TCP_CONNECT_CB = 3, + BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 4, + BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 5, + BPF_SOCK_OPS_NEEDS_ECN = 6, + BPF_SOCK_OPS_BASE_RTT = 7, + BPF_SOCK_OPS_RTO_CB = 8, + BPF_SOCK_OPS_RETRANS_CB = 9, + BPF_SOCK_OPS_STATE_CB = 10, + BPF_SOCK_OPS_TCP_LISTEN_CB = 11, + BPF_SOCK_OPS_RTT_CB = 12, + BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 13, + BPF_SOCK_OPS_HDR_OPT_LEN_CB = 14, + BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 15, +}; + +enum { + BTF_SOCK_TYPE_INET = 0, + BTF_SOCK_TYPE_INET_CONN = 1, + BTF_SOCK_TYPE_INET_REQ = 2, + BTF_SOCK_TYPE_INET_TW = 3, + BTF_SOCK_TYPE_REQ = 4, + BTF_SOCK_TYPE_SOCK = 5, + BTF_SOCK_TYPE_SOCK_COMMON = 6, + BTF_SOCK_TYPE_TCP = 7, + BTF_SOCK_TYPE_TCP_REQ = 8, + BTF_SOCK_TYPE_TCP_TW = 9, + BTF_SOCK_TYPE_TCP6 = 10, + BTF_SOCK_TYPE_UDP = 11, + BTF_SOCK_TYPE_UDP6 = 12, + BTF_SOCK_TYPE_UNIX = 13, + BTF_SOCK_TYPE_MPTCP = 14, + BTF_SOCK_TYPE_SOCKET = 15, + MAX_BTF_SOCK_TYPE = 16, +}; + +typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); + +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + spinlock_t lock; +}; + +struct bpf_shtab_bucket; + +struct bpf_shtab { + struct bpf_map map; + struct bpf_shtab_bucket *buckets; + u32 buckets_num; + u32 elem_size; + struct sk_psock_progs progs; + atomic_t count; +}; + +struct bpf_shtab_bucket { + struct hlist_head head; + spinlock_t lock; +}; + +struct bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; +}; + +struct sockmap_link { + struct bpf_link link; + struct bpf_map *map; + enum bpf_attach_type attach_type; +}; + +struct sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; +}; + +struct bpf_iter__sockmap { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; + }; +}; + +struct sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; +}; + +enum { + __ND_OPT_PREFIX_INFO_END = 0, + ND_OPT_SOURCE_LL_ADDR = 1, + ND_OPT_TARGET_LL_ADDR = 2, + ND_OPT_PREFIX_INFO = 3, + ND_OPT_REDIRECT_HDR = 4, + ND_OPT_MTU = 5, + ND_OPT_NONCE = 14, + __ND_OPT_ARRAY_MAX = 15, + ND_OPT_ROUTE_INFO = 24, + ND_OPT_RDNSS = 25, + ND_OPT_DNSSL = 31, + ND_OPT_6CO = 34, + ND_OPT_CAPTIVE_PORTAL = 37, + ND_OPT_PREF64 = 38, + __ND_OPT_MAX = 39, +}; + +struct rd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + struct in6_addr dest; + __u8 opt[0]; +}; + +struct uncached_list { + spinlock_t lock; + struct list_head head; + struct list_head quarantine; +}; + +struct rt_cache_stat { + unsigned int in_slow_tot; + unsigned int in_slow_mc; + unsigned int in_no_route; + unsigned int in_brd; + unsigned int in_martian_dst; + unsigned int in_martian_src; + unsigned int out_slow_tot; + unsigned int out_slow_mc; +}; + +enum netevent_notif_type { + NETEVENT_NEIGH_UPDATE = 1, + NETEVENT_REDIRECT = 2, + NETEVENT_DELAY_PROBE_TIME_UPDATE = 3, + NETEVENT_IPV4_MPATH_HASH_UPDATE = 4, + NETEVENT_IPV6_MPATH_HASH_UPDATE = 5, + NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE = 6, +}; + +struct fib6_result; + +typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); + +struct fib6_result { + struct fib6_nh *nh; + struct fib6_info *f6i; + u32 fib6_flags; + u8 fib6_type; + struct rt6_info *rt6; +}; + +enum rt6_nud_state { + RT6_NUD_FAIL_HARD = -3, + RT6_NUD_FAIL_PROBE = -2, + RT6_NUD_FAIL_DO_RR = -1, + RT6_NUD_SUCCEED = 1, +}; + +struct rt6_rtnl_dump_arg { + struct sk_buff *skb; + struct netlink_callback *cb; + struct net *net; + struct fib_dump_filter filter; +}; + +struct trace_event_raw_fib6_table_lookup { + struct trace_entry ent; + u32 tb_id; + int err; + int oif; + int iif; + __u8 tos; + __u8 scope; + __u8 flags; + __u8 src[16]; + __u8 dst[16]; + u16 sport; + u16 dport; + u8 proto; + u8 rt_type; + char name[16]; + __u8 gw[16]; + char __data[0]; +}; + +struct rt6_exception { + struct hlist_node hlist; + struct rt6_info *rt6i; + unsigned long stamp; + struct callback_head rcu; +}; + +struct ip6rd_flowi { + struct flowi6 fl6; + struct in6_addr gateway; +}; + +struct arg_dev_net_ip { + struct net *net; + struct in6_addr *addr; +}; + +struct rt6_mtu_change_arg { + struct net_device *dev; + unsigned int mtu; + struct fib6_info *f6i; +}; + +struct rt6_nh { + struct fib6_info *fib6_info; + struct fib6_config r_cfg; + struct list_head next; +}; + +typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); + +struct fib6_nh_dm_arg { + struct net *net; + const struct in6_addr *saddr; + int oif; + int flags; + struct fib6_nh *nh; +}; + +struct fib6_gc_args { + int timeout; + int more; +}; + +struct fib6_nh_match_arg { + const struct net_device *dev; + const struct in6_addr *gw; + struct fib6_nh *match; +}; + +struct in6_rtmsg { + struct in6_addr rtmsg_dst; + struct in6_addr rtmsg_src; + struct in6_addr rtmsg_gateway; + __u32 rtmsg_type; + __u16 rtmsg_dst_len; + __u16 rtmsg_src_len; + __u32 rtmsg_metric; + unsigned long rtmsg_info; + __u32 rtmsg_flags; + int rtmsg_ifindex; +}; + +struct fib6_nh_del_cached_rt_arg { + struct fib6_config *cfg; + struct fib6_info *f6i; +}; + +struct arg_netdev_event { + const struct net_device *dev; + union { + unsigned char nh_flags; + unsigned long event; + }; +}; + +struct trace_event_data_offsets_fib6_table_lookup {}; + +struct fib6_nh_age_excptn_arg { + struct fib6_gc_args *gc_args; + unsigned long now; +}; + +struct netevent_redirect { + struct dst_entry *old; + struct dst_entry *new; + struct neighbour *neigh; + const void *daddr; +}; + +struct fib6_nh_exception_dump_walker { + struct rt6_rtnl_dump_arg *dump; + struct fib6_info *rt; + unsigned int flags; + unsigned int skip; + unsigned int count; +}; + +struct fib6_nh_frl_arg { + u32 flags; + int oif; + int strict; + int *mpri; + bool *do_rr; + struct fib6_nh *nh; +}; + +struct fib6_nh_rd_arg { + struct fib6_result *res; + struct flowi6 *fl6; + const struct in6_addr *gw; + struct rt6_info **ret; +}; + +struct fib6_nh_excptn_arg { + struct rt6_info *rt; + int plen; +}; + +struct ieee80211_tdls_data { + u8 da[6]; + u8 sa[6]; + __be16 ether_type; + u8 payload_type; + u8 category; + u8 action_code; + union { + struct { + u8 dialog_token; + __le16 capability; + u8 variable[0]; + } __attribute__((packed)) setup_req; + struct { + __le16 status_code; + u8 dialog_token; + __le16 capability; + u8 variable[0]; + } __attribute__((packed)) setup_resp; + struct { + __le16 status_code; + u8 dialog_token; + u8 variable[0]; + } __attribute__((packed)) setup_cfm; + struct { + __le16 reason_code; + u8 variable[0]; + } teardown; + struct { + u8 dialog_token; + u8 variable[0]; + } discover_req; + struct { + u8 target_channel; + u8 oper_class; + u8 variable[0]; + } chan_switch_req; + struct { + __le16 status_code; + u8 variable[0]; + } chan_switch_resp; + } u; +}; + +struct ieee80211_wmm_ac_param { + u8 aci_aifsn; + u8 cw; + __le16 txop_limit; +}; + +struct ieee80211_wmm_param_ie { + u8 element_id; + u8 len; + u8 oui[3]; + u8 oui_type; + u8 oui_subtype; + u8 version; + u8 qos_info; + u8 reserved; + struct ieee80211_wmm_ac_param ac[4]; +}; + +struct branch_entry { + union { + struct { + u64 ip: 58; + u64 ip_sign_ext: 5; + u64 mispredict: 1; + } split; + u64 full; + } from; + union { + struct { + u64 ip: 58; + u64 ip_sign_ext: 3; + u64 reserved: 1; + u64 spec: 1; + u64 valid: 1; + } split; + u64 full; + } to; +}; + +enum desc_state { + desc_miss = -1, + desc_reserved = 0, + desc_committed = 1, + desc_finalized = 2, + desc_reusable = 3, +}; + +struct prb_data_block { + unsigned long id; + char data[0]; +}; + +struct dma_sgt_handle { + struct sg_table sgt; + struct page **pages; +}; + +struct dma_map_ops { + unsigned int flags; + void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, unsigned long); + void (*free)(struct device *, size_t, void *, dma_addr_t, unsigned long); + struct page * (*alloc_pages)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t); + void (*free_pages)(struct device *, size_t, struct page *, dma_addr_t, enum dma_data_direction); + struct sg_table * (*alloc_noncontiguous)(struct device *, size_t, enum dma_data_direction, gfp_t, unsigned long); + void (*free_noncontiguous)(struct device *, size_t, struct sg_table *, enum dma_data_direction); + int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, unsigned long); + int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, unsigned long); + dma_addr_t (*map_page)(struct device *, struct page *, unsigned long, size_t, enum dma_data_direction, unsigned long); + void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long); + int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long); + void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long); + dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, unsigned long); + void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long); + void (*sync_single_for_cpu)(struct device *, dma_addr_t, size_t, enum dma_data_direction); + void (*sync_single_for_device)(struct device *, dma_addr_t, size_t, enum dma_data_direction); + void (*sync_sg_for_cpu)(struct device *, struct scatterlist *, int, enum dma_data_direction); + void (*sync_sg_for_device)(struct device *, struct scatterlist *, int, enum dma_data_direction); + void (*cache_sync)(struct device *, void *, size_t, enum dma_data_direction); + int (*dma_supported)(struct device *, u64); + u64 (*get_required_mask)(struct device *); + size_t (*max_mapping_size)(struct device *); + size_t (*opt_mapping_size)(); + unsigned long (*get_merge_boundary)(struct device *); +}; + +struct dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; + unsigned long attrs; +}; + +enum { + Blktrace_setup = 1, + Blktrace_running = 2, + Blktrace_stopped = 3, +}; + +enum blktrace_notify { + __BLK_TN_PROCESS = 0, + __BLK_TN_TIMESTAMP = 1, + __BLK_TN_MESSAGE = 2, + __BLK_TN_CGROUP = 256, +}; + +enum blktrace_act { + __BLK_TA_QUEUE = 1, + __BLK_TA_BACKMERGE = 2, + __BLK_TA_FRONTMERGE = 3, + __BLK_TA_GETRQ = 4, + __BLK_TA_SLEEPRQ = 5, + __BLK_TA_REQUEUE = 6, + __BLK_TA_ISSUE = 7, + __BLK_TA_COMPLETE = 8, + __BLK_TA_PLUG = 9, + __BLK_TA_UNPLUG_IO = 10, + __BLK_TA_UNPLUG_TIMER = 11, + __BLK_TA_INSERT = 12, + __BLK_TA_SPLIT = 13, + __BLK_TA_BOUNCE = 14, + __BLK_TA_REMAP = 15, + __BLK_TA_ABORT = 16, + __BLK_TA_DRV_DATA = 17, + __BLK_TA_CGROUP = 256, +}; + +struct blk_io_trace { + __u32 magic; + __u32 sequence; + __u64 time; + __u64 sector; + __u32 bytes; + __u32 action; + __u32 pid; + __u32 device; + __u32 cpu; + __u16 error; + __u16 pdu_len; +}; + +struct blk_user_trace_setup { + char name[32]; + __u16 act_mask; + __u32 buf_size; + __u32 buf_nr; + __u64 start_lba; + __u64 end_lba; + __u32 pid; +}; + +struct blk_io_trace_remap { + __be32 device_from; + __be32 device_to; + __be64 sector_from; +}; + +typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); + +typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); + +typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); + +struct lru_rotate { + local_lock_t lock; + struct folio_batch fbatch; +}; + +struct cpu_fbatches { + local_lock_t lock; + struct folio_batch lru_add; + struct folio_batch lru_deactivate_file; + struct folio_batch lru_deactivate; + struct folio_batch lru_lazyfree; + struct folio_batch activate; +}; + +struct trace_event_raw_mm_lru_insertion { + struct trace_entry ent; + struct folio *folio; + unsigned long pfn; + enum lru_list lru; + unsigned long flags; + char __data[0]; +}; + +struct trace_event_raw_mm_lru_activate { + struct trace_entry ent; + struct folio *folio; + unsigned long pfn; + char __data[0]; +}; + +typedef void (*move_fn_t)(struct lruvec *, struct folio *); + +struct trace_event_data_offsets_mm_lru_insertion {}; + +struct trace_event_data_offsets_mm_lru_activate {}; + +typedef union { + struct page **pages; + struct folio **folios; + struct encoded_page **encoded_pages; +} release_pages_arg; + +struct splice_desc { + size_t total_len; + unsigned int len; + unsigned int flags; + union { + void __attribute__((btf_type_tag("user"))) *userptr; + struct file *file; + void *data; + } u; + void (*splice_eof)(struct splice_desc *); + loff_t pos; + loff_t *opos; + size_t num_spliced; + bool need_wakeup; +}; + +typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); + +typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); + +struct SU_SP_s { + __u8 magic[2]; + __u8 skip; +}; + +struct SU_CE_s { + __u8 extent[8]; + __u8 offset[8]; + __u8 size[8]; +}; + +struct SU_ER_s { + __u8 len_id; + __u8 len_des; + __u8 len_src; + __u8 ext_ver; + __u8 data[0]; +}; + +struct RR_RR_s { + __u8 flags[1]; +}; + +struct RR_PX_s { + __u8 mode[8]; + __u8 n_links[8]; + __u8 uid[8]; + __u8 gid[8]; +}; + +struct RR_PN_s { + __u8 dev_high[8]; + __u8 dev_low[8]; +}; + +struct SL_component { + __u8 flags; + __u8 len; + __u8 text[0]; +}; + +struct RR_SL_s { + __u8 flags; + struct SL_component link; +}; + +struct RR_NM_s { + __u8 flags; + char name[0]; +}; + +struct RR_CL_s { + __u8 location[8]; +}; + +struct RR_PL_s { + __u8 location[8]; +}; + +struct stamp { + __u8 time[7]; +}; + +struct RR_TF_s { + __u8 flags; + struct stamp times[0]; +}; + +struct RR_ZF_s { + __u8 algorithm[2]; + __u8 parms[2]; + __u8 real_size[8]; +}; + +struct rock_ridge { + __u8 signature[2]; + __u8 len; + __u8 version; + union { + struct SU_SP_s SP; + struct SU_CE_s CE; + struct SU_ER_s ER; + struct RR_RR_s RR; + struct RR_PX_s PX; + struct RR_PN_s PN; + struct RR_SL_s SL; + struct RR_NM_s NM; + struct RR_CL_s CL; + struct RR_PL_s PL; + struct RR_TF_s TF; + struct RR_ZF_s ZF; + } u; +}; + +struct rock_state { + void *buffer; + unsigned char *chr; + int len; + int cont_size; + int cont_extent; + int cont_offset; + int cont_loops; + struct inode *inode; +}; + +struct x509_parse_context { + struct x509_certificate *cert; + unsigned long data; + const void *key; + size_t key_size; + const void *params; + size_t params_size; + enum OID key_algo; + enum OID last_oid; + enum OID sig_algo; + u8 o_size; + u8 cn_size; + u8 email_size; + u16 o_offset; + u16 cn_offset; + u16 email_offset; + unsigned int raw_akid_size; + const void *raw_akid; + const void *akid_raw_issuer; + unsigned int akid_raw_issuer_size; +}; + +enum hash_algo { + HASH_ALGO_MD4 = 0, + HASH_ALGO_MD5 = 1, + HASH_ALGO_SHA1 = 2, + HASH_ALGO_RIPE_MD_160 = 3, + HASH_ALGO_SHA256 = 4, + HASH_ALGO_SHA384 = 5, + HASH_ALGO_SHA512 = 6, + HASH_ALGO_SHA224 = 7, + HASH_ALGO_RIPE_MD_128 = 8, + HASH_ALGO_RIPE_MD_256 = 9, + HASH_ALGO_RIPE_MD_320 = 10, + HASH_ALGO_WP_256 = 11, + HASH_ALGO_WP_384 = 12, + HASH_ALGO_WP_512 = 13, + HASH_ALGO_TGR_128 = 14, + HASH_ALGO_TGR_160 = 15, + HASH_ALGO_TGR_192 = 16, + HASH_ALGO_SM3_256 = 17, + HASH_ALGO_STREEBOG_256 = 18, + HASH_ALGO_STREEBOG_512 = 19, + HASH_ALGO_SHA3_256 = 20, + HASH_ALGO_SHA3_384 = 21, + HASH_ALGO_SHA3_512 = 22, + HASH_ALGO__LAST = 23, +}; + +struct queue_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct request_queue *, char *); + ssize_t (*store)(struct request_queue *, const char *, size_t); +}; + +struct raid6_sse_constants { + u64 x1d[2]; +}; + +struct dim_cq_moder { + u16 usec; + u16 pkts; + u16 comps; + u8 cq_period_mode; +}; + +enum dim_cq_period_mode { + DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, + DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, + DIM_CQ_PERIOD_NUM_MODES = 2, +}; + +enum dim_state { + DIM_START_MEASURE = 0, + DIM_MEASURE_IN_PROGRESS = 1, + DIM_APPLY_NEW_PROFILE = 2, +}; + +enum dim_tune_state { + DIM_PARKING_ON_TOP = 0, + DIM_PARKING_TIRED = 1, + DIM_GOING_RIGHT = 2, + DIM_GOING_LEFT = 3, +}; + +enum dim_stats_state { + DIM_STATS_WORSE = 0, + DIM_STATS_SAME = 1, + DIM_STATS_BETTER = 2, +}; + +enum dim_step_result { + DIM_STEPPED = 0, + DIM_TOO_TIRED = 1, + DIM_ON_EDGE = 2, +}; + +struct dim_stats { + int ppms; + int bpms; + int epms; + int cpms; + int cpe_ratio; +}; + +struct dim_sample { + ktime_t time; + u32 pkt_ctr; + u32 byte_ctr; + u16 event_ctr; + u32 comp_ctr; +}; + +struct dim { + u8 state; + struct dim_stats prev_stats; + struct dim_sample start_sample; + struct dim_sample measuring_sample; + struct work_struct work; + void *priv; + u8 profile_ix; + u8 mode; + u8 tune_state; + u8 steps_right; + u8 steps_left; + u8 tired; +}; + +struct aperture_range { + struct device *dev; + resource_size_t base; + resource_size_t size; + struct list_head lh; + void (*detach)(struct device *); +}; + +struct acpi_power_resource; + +struct acpi_power_resource_entry { + struct list_head node; + struct acpi_power_resource *resource; +}; + +struct acpi_power_resource { + struct acpi_device device; + struct list_head list_node; + u32 system_level; + u32 order; + unsigned int ref_count; + u8 state; + struct mutex resource_lock; + struct list_head dependents; +}; + +struct acpi_power_dependent_device { + struct device *dev; + struct list_head node; +}; + +struct acpi_pnp_device_id { + u32 length; + char *string; +}; + +struct acpi_pnp_device_id_list { + u32 count; + u32 list_size; + struct acpi_pnp_device_id ids[0]; +}; + +struct acpi_device_info { + u32 info_size; + u32 name; + acpi_object_type type; + u8 param_count; + u16 valid; + u8 flags; + u8 highest_dstates[4]; + u8 lowest_dstates[5]; + u64 address; + struct acpi_pnp_device_id hardware_id; + struct acpi_pnp_device_id unique_id; + struct acpi_pnp_device_id class_code; + struct acpi_pnp_device_id_list compatible_id_list; +}; + +struct virtio_pci_common_cfg; + +struct virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + size_t common_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; + int (*device_id_check)(struct pci_dev *); + u64 dma_mask; +}; + +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; +}; + +struct virtio_pci_admin_vq { + struct virtio_pci_vq_info info; + struct mutex cmd_lock; + u64 supported_cmds; + char name[10]; + u16 vq_index; +}; + +struct virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; + union { + struct virtio_pci_legacy_device ldev; + struct virtio_pci_modern_device mdev; + }; + bool is_legacy; + u8 *isr; + spinlock_t lock; + struct list_head virtqueues; + struct virtio_pci_vq_info **vqs; + struct virtio_pci_admin_vq admin_vq; + int msix_enabled; + int intx_enabled; + cpumask_var_t *msix_affinity_masks; + char (*msix_names)[256]; + unsigned int msix_vectors; + unsigned int msix_used_vectors; + bool per_vq_vectors; + struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16); + void (*del_vq)(struct virtio_pci_vq_info *); + u16 (*config_vector)(struct virtio_pci_device *, u16); + bool (*is_avq)(struct virtio_device *, unsigned int); +}; + +struct virtio_pci_common_cfg { + __le32 device_feature_select; + __le32 device_feature; + __le32 guest_feature_select; + __le32 guest_feature; + __le16 msix_config; + __le16 num_queues; + __u8 device_status; + __u8 config_generation; + __le16 queue_select; + __le16 queue_size; + __le16 queue_msix_vector; + __le16 queue_enable; + __le16 queue_notify_off; + __le32 queue_desc_lo; + __le32 queue_desc_hi; + __le32 queue_avail_lo; + __le32 queue_avail_hi; + __le32 queue_used_lo; + __le32 queue_used_hi; +}; + +struct virtio_admin_cmd { + __le16 opcode; + __le16 group_type; + __le64 group_member_id; + struct scatterlist *data_sg; + struct scatterlist *result_sg; +}; + +struct virtio_admin_cmd_legacy_wr_data { + __u8 offset; + __u8 reserved[7]; + __u8 registers[0]; +}; + +struct virtio_admin_cmd_legacy_rd_data { + __u8 offset; +}; + +struct virtio_admin_cmd_notify_info_data { + __u8 flags; + __u8 bar; + __u8 padding[6]; + __le64 offset; +}; + +struct virtio_admin_cmd_notify_info_result { + struct virtio_admin_cmd_notify_info_data entries[4]; +}; + +struct dma_fence; + +typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); + +struct dma_fence_ops; + +struct dma_fence { + spinlock_t *lock; + const struct dma_fence_ops *ops; + union { + struct list_head cb_list; + ktime_t timestamp; + struct callback_head rcu; + }; + u64 context; + u64 seqno; + unsigned long flags; + struct kref refcount; + int error; +}; + +struct dma_fence_ops { + bool use_64bit_seqno; + const char * (*get_driver_name)(struct dma_fence *); + const char * (*get_timeline_name)(struct dma_fence *); + bool (*enable_signaling)(struct dma_fence *); + bool (*signaled)(struct dma_fence *); + long (*wait)(struct dma_fence *, bool, long); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); + void (*set_deadline)(struct dma_fence *, ktime_t); +}; + +typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); + +enum dma_fence_flag_bits { + DMA_FENCE_FLAG_SIGNALED_BIT = 0, + DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, + DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, + DMA_FENCE_FLAG_USER_BITS = 3, +}; + +struct dma_fence_cb; + +typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); + +struct dma_fence_cb { + struct list_head node; + dma_fence_func_t func; +}; + +struct trace_event_raw_dma_fence { + struct trace_entry ent; + u32 __data_loc_driver; + u32 __data_loc_timeline; + unsigned int context; + unsigned int seqno; + char __data[0]; +}; + +struct default_wait_cb { + struct dma_fence_cb base; + struct task_struct *task; +}; + +struct trace_event_data_offsets_dma_fence { + u32 driver; + const void *driver_ptr_; + u32 timeline; + const void *timeline_ptr_; +}; + +struct iwl_causes_list { + u16 mask_reg; + u8 bit; + u8 addr; +}; + +enum iwl_fw_dbg_monitor_mode { + SMEM_MODE = 0, + EXTERNAL_MODE = 1, + MARBH_MODE = 2, + MIPI_MODE = 3, +}; + +enum iwl_fw_dbg_reg_operator { + CSR_ASSIGN = 0, + CSR_SETBIT = 1, + CSR_CLEARBIT = 2, + PRPH_ASSIGN = 3, + PRPH_SETBIT = 4, + PRPH_CLEARBIT = 5, + INDIRECT_ASSIGN = 6, + INDIRECT_SETBIT = 7, + INDIRECT_CLEARBIT = 8, + PRPH_BLOCKBIT = 9, +}; + +enum iwl_shared_irq_flags { + IWL_SHARED_IRQ_NON_RX = 1, + IWL_SHARED_IRQ_FIRST_RSS = 2, +}; + +enum msix_fh_int_causes { + MSIX_FH_INT_CAUSES_Q0 = 1, + MSIX_FH_INT_CAUSES_Q1 = 2, + MSIX_FH_INT_CAUSES_D2S_CH0_NUM = 65536, + MSIX_FH_INT_CAUSES_D2S_CH1_NUM = 131072, + MSIX_FH_INT_CAUSES_S2D = 524288, + MSIX_FH_INT_CAUSES_FH_ERR = 2097152, +}; + +enum { + LMPM_CHICK_EXTENDED_ADDR_SPACE = 1, +}; + +struct iwl_trans_pcie_removal { + struct pci_dev *pdev; + struct work_struct work; + bool rescan; +}; + +struct iwl_rb_status { + __le16 closed_rb_num; + __le16 closed_fr_num; + __le16 finished_rb_num; + __le16 finished_fr_num; + __le32 __spare; +}; + +struct iwl_fw_error_dump_rb { + __le32 index; + __le32 rxq; + __le32 reserved; + u8 data[0]; +}; + +struct iwl_fw_error_dump_fw_mon { + __le32 fw_mon_wr_ptr; + __le32 fw_mon_base_ptr; + __le32 fw_mon_cycle_cnt; + __le32 fw_mon_base_high_ptr; + __le32 reserved[2]; + u8 data[0]; +}; + +struct iwl_fw_error_dump_txcmd { + __le32 cmdlen; + __le32 caplen; + u8 data[0]; +}; + +enum firmware_errors { + FW_OK = 0, + FW_BAD_CRC = 1, + FW_BAD_LENGTH = 2, + FW_BAD_VERSION = 3, +}; + +enum txdone_entry_desc_flags { + TXDONE_UNKNOWN = 0, + TXDONE_SUCCESS = 1, + TXDONE_FALLBACK = 2, + TXDONE_FAILURE = 3, + TXDONE_EXCESSIVE_RETRY = 4, + TXDONE_AMPDU = 5, + TXDONE_NO_ACK_REQ = 6, +}; + +enum rt2800_eeprom_word { + EEPROM_CHIP_ID = 0, + EEPROM_VERSION = 1, + EEPROM_MAC_ADDR_0 = 2, + EEPROM_MAC_ADDR_1 = 3, + EEPROM_MAC_ADDR_2 = 4, + EEPROM_NIC_CONF0 = 5, + EEPROM_NIC_CONF1 = 6, + EEPROM_FREQ = 7, + EEPROM_LED_AG_CONF = 8, + EEPROM_LED_ACT_CONF = 9, + EEPROM_LED_POLARITY = 10, + EEPROM_NIC_CONF2 = 11, + EEPROM_LNA = 12, + EEPROM_RSSI_BG = 13, + EEPROM_RSSI_BG2 = 14, + EEPROM_TXMIXER_GAIN_BG = 15, + EEPROM_RSSI_A = 16, + EEPROM_RSSI_A2 = 17, + EEPROM_TXMIXER_GAIN_A = 18, + EEPROM_EIRP_MAX_TX_POWER = 19, + EEPROM_TXPOWER_DELTA = 20, + EEPROM_TXPOWER_BG1 = 21, + EEPROM_TXPOWER_BG2 = 22, + EEPROM_TSSI_BOUND_BG1 = 23, + EEPROM_TSSI_BOUND_BG2 = 24, + EEPROM_TSSI_BOUND_BG3 = 25, + EEPROM_TSSI_BOUND_BG4 = 26, + EEPROM_TSSI_BOUND_BG5 = 27, + EEPROM_TXPOWER_A1 = 28, + EEPROM_TXPOWER_A2 = 29, + EEPROM_TXPOWER_INIT = 30, + EEPROM_TSSI_BOUND_A1 = 31, + EEPROM_TSSI_BOUND_A2 = 32, + EEPROM_TSSI_BOUND_A3 = 33, + EEPROM_TSSI_BOUND_A4 = 34, + EEPROM_TSSI_BOUND_A5 = 35, + EEPROM_TXPOWER_BYRATE = 36, + EEPROM_BBP_START = 37, + EEPROM_EXT_LNA2 = 38, + EEPROM_EXT_TXPOWER_BG3 = 39, + EEPROM_EXT_TXPOWER_A3 = 40, + EEPROM_WORD_COUNT = 41, +}; + +enum { + TX_PWR_CFG_0_IDX = 0, + TX_PWR_CFG_1_IDX = 1, + TX_PWR_CFG_2_IDX = 2, + TX_PWR_CFG_3_IDX = 3, + TX_PWR_CFG_4_IDX = 4, + TX_PWR_CFG_5_IDX = 5, + TX_PWR_CFG_6_IDX = 6, + TX_PWR_CFG_7_IDX = 7, + TX_PWR_CFG_8_IDX = 8, + TX_PWR_CFG_9_IDX = 9, + TX_PWR_CFG_0_EXT_IDX = 10, + TX_PWR_CFG_1_EXT_IDX = 11, + TX_PWR_CFG_2_EXT_IDX = 12, + TX_PWR_CFG_3_EXT_IDX = 13, + TX_PWR_CFG_4_EXT_IDX = 14, + TX_PWR_CFG_IDX_COUNT = 15, +}; + +enum led_mode { + LED_MODE_DEFAULT = 0, + LED_MODE_TXRX_ACTIVITY = 1, + LED_MODE_SIGNAL_STRENGTH = 2, + LED_MODE_ASUS = 3, + LED_MODE_ALPHA = 4, +}; + +struct rt2x00_field16 { + u16 bit_offset; + u16 bit_mask; +}; + +struct txdone_entry_desc { + unsigned long flags; + int retry; +}; + +struct mac_wcid_entry { + u8 mac[6]; + u8 reserved[2]; +}; + +struct rt2800_drv_data { + u8 calibration_bw20; + u8 calibration_bw40; + s8 rx_calibration_bw20; + s8 rx_calibration_bw40; + s8 tx_calibration_bw20; + s8 tx_calibration_bw40; + u8 bbp25; + u8 bbp26; + u8 txmixer_gain_24g; + u8 txmixer_gain_5g; + u8 max_psdu; + unsigned int tbtt_tick; + unsigned int ampdu_factor_cnt[4]; + unsigned long sta_ids[3]; + struct ieee80211_sta *wcid_to_sta[191]; +}; + +struct rt2x00_field8 { + u8 bit_offset; + u8 bit_mask; +}; + +struct hw_key_entry { + u8 key[16]; + u8 tx_mic[8]; + u8 rx_mic[8]; +}; + +struct mac_iveiv_entry { + u8 iv[8]; +}; + +struct rf_reg_pair { + u8 bank; + u8 reg; + u8 value; +}; + +typedef void (*btf_trace_netlink_extack)(void *, const char *); + +struct listeners; + +struct netlink_table { + struct rhashtable hash; + struct hlist_head mc_list; + struct listeners __attribute__((btf_type_tag("rcu"))) *listeners; + unsigned int flags; + unsigned int groups; + struct mutex *cb_mutex; + struct module *module; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); + int registered; +}; + +struct listeners { + struct callback_head rcu; + unsigned long masks[0]; +}; + +enum netlink_skb_flags { + NETLINK_SKB_DST = 8, +}; + +enum { + NETLINK_F_KERNEL_SOCKET = 0, + NETLINK_F_RECV_PKTINFO = 1, + NETLINK_F_BROADCAST_SEND_ERROR = 2, + NETLINK_F_RECV_NO_ENOBUFS = 3, + NETLINK_F_LISTEN_ALL_NSID = 4, + NETLINK_F_CAP_ACK = 5, + NETLINK_F_EXT_ACK = 6, + NETLINK_F_STRICT_CHK = 7, +}; + +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED = 1, +}; + +enum nlmsgerr_attrs { + NLMSGERR_ATTR_UNUSED = 0, + NLMSGERR_ATTR_MSG = 1, + NLMSGERR_ATTR_OFFS = 2, + NLMSGERR_ATTR_COOKIE = 3, + NLMSGERR_ATTR_POLICY = 4, + NLMSGERR_ATTR_MISS_TYPE = 5, + NLMSGERR_ATTR_MISS_NEST = 6, + __NLMSGERR_ATTR_MAX = 7, + NLMSGERR_ATTR_MAX = 6, +}; + +struct trace_event_raw_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct netlink_tap { + struct net_device *dev; + struct module *module; + struct list_head list; +}; + +struct socket_alloc { + struct socket socket; + struct inode vfs_inode; + long: 64; + long: 64; +}; + +struct netlink_sock { + struct sock sk; + unsigned long flags; + u32 portid; + u32 dst_portid; + u32 dst_group; + u32 subscriptions; + u32 ngroups; + unsigned long *groups; + unsigned long state; + size_t max_recvmsg_len; + wait_queue_head_t wait; + bool bound; + bool cb_running; + int dump_done_errno; + struct netlink_callback cb; + struct mutex nl_cb_mutex; + struct mutex *dump_cb_mutex; + void (*netlink_rcv)(struct sk_buff *); + int (*netlink_bind)(struct net *, int); + void (*netlink_unbind)(struct net *, int); + void (*netlink_release)(struct sock *, unsigned long *); + struct module *module; + struct rhash_head node; + struct callback_head rcu; + struct work_struct work; +}; + +struct sockaddr_nl { + __kernel_sa_family_t nl_family; + unsigned short nl_pad; + __u32 nl_pid; + __u32 nl_groups; +}; + +struct trace_event_data_offsets_netlink_extack { + u32 msg; + const void *msg_ptr_; +}; + +struct netlink_tap_net { + struct list_head netlink_tap_all; + struct mutex netlink_tap_lock; +}; + +struct netlink_broadcast_data { + struct sock *exclude_sk; + struct net *net; + u32 portid; + u32 group; + int failure; + int delivery_failure; + int congested; + int delivered; + gfp_t allocation; + struct sk_buff *skb; + struct sk_buff *skb2; + int (*tx_filter)(struct sock *, struct sk_buff *, void *); + void *tx_data; +}; + +struct netlink_set_err_data { + struct sock *exclude_sk; + u32 portid; + u32 group; + int code; +}; + +struct netlink_compare_arg { + possible_net_t pnet; + u32 portid; +}; + +struct scm_fp_list; + +struct scm_cookie { + struct pid *pid; + struct scm_fp_list *fp; + struct scm_creds creds; +}; + +struct scm_fp_list { + short count; + short count_unix; + short max; + struct user_struct *user; + struct file *fp[253]; +}; + +struct nl_pktinfo { + __u32 group; +}; + +struct ucred { + __u32 pid; + __u32 uid; + __u32 gid; +}; + +struct nl_seq_iter { + struct seq_net_private p; + struct rhashtable_iter hti; + int link; +}; + +struct bpf_iter__netlink { + union { + struct bpf_iter_meta *meta; + }; + union { + struct netlink_sock *sk; + }; +}; + +struct nlmsgerr { + int error; + struct nlmsghdr msg; +}; + +enum nft_ct_expectation_attributes { + NFTA_CT_EXPECT_UNSPEC = 0, + NFTA_CT_EXPECT_L3PROTO = 1, + NFTA_CT_EXPECT_L4PROTO = 2, + NFTA_CT_EXPECT_DPORT = 3, + NFTA_CT_EXPECT_TIMEOUT = 4, + NFTA_CT_EXPECT_SIZE = 5, + __NFTA_CT_EXPECT_MAX = 6, +}; + +enum nft_ct_helper_attributes { + NFTA_CT_HELPER_UNSPEC = 0, + NFTA_CT_HELPER_NAME = 1, + NFTA_CT_HELPER_L3PROTO = 2, + NFTA_CT_HELPER_L4PROTO = 3, + __NFTA_CT_HELPER_MAX = 4, +}; + +enum nft_ct_attributes { + NFTA_CT_UNSPEC = 0, + NFTA_CT_DREG = 1, + NFTA_CT_KEY = 2, + NFTA_CT_DIRECTION = 3, + NFTA_CT_SREG = 4, + __NFTA_CT_MAX = 5, +}; + +enum nft_ct_keys { + NFT_CT_STATE = 0, + NFT_CT_DIRECTION = 1, + NFT_CT_STATUS = 2, + NFT_CT_MARK = 3, + NFT_CT_SECMARK = 4, + NFT_CT_EXPIRATION = 5, + NFT_CT_HELPER = 6, + NFT_CT_L3PROTOCOL = 7, + NFT_CT_SRC = 8, + NFT_CT_DST = 9, + NFT_CT_PROTOCOL = 10, + NFT_CT_PROTO_SRC = 11, + NFT_CT_PROTO_DST = 12, + NFT_CT_LABELS = 13, + NFT_CT_PKTS = 14, + NFT_CT_BYTES = 15, + NFT_CT_AVGPKT = 16, + NFT_CT_ZONE = 17, + NFT_CT_EVENTMASK = 18, + NFT_CT_SRC_IP = 19, + NFT_CT_DST_IP = 20, + NFT_CT_SRC_IP6 = 21, + NFT_CT_DST_IP6 = 22, + NFT_CT_ID = 23, + __NFT_CT_MAX = 24, +}; + +struct nf_conn_counter { + atomic64_t packets; + atomic64_t bytes; +}; + +struct nf_conn_acct { + struct nf_conn_counter counter[2]; +}; + +struct nft_ct_expect_obj { + u16 l3num; + __be16 dport; + u8 l4proto; + u8 size; + u32 timeout; +}; + +struct nft_ct_helper_obj { + struct nf_conntrack_helper *helper4; + struct nf_conntrack_helper *helper6; + u8 l4proto; +}; + +struct nft_ct { + enum nft_ct_keys key: 8; + enum ip_conntrack_dir dir: 8; + u8 len; + union { + u8 dreg; + u8 sreg; + }; +}; + +struct xfrm_tunnel { + int (*handler)(struct sk_buff *); + int (*cb_handler)(struct sk_buff *, int); + int (*err_handler)(struct sk_buff *, u32); + struct xfrm_tunnel __attribute__((btf_type_tag("rcu"))) *next; + int priority; +}; + +struct pci_raw_ops { + int (*read)(unsigned int, unsigned int, unsigned int, int, int, u32 *); + int (*write)(unsigned int, unsigned int, unsigned int, int, int, u32); +}; + +struct pci_mmcfg_region { + struct list_head list; + struct resource res; + u64 address; + char *virt; + u16 segment; + u8 start_bus; + u8 end_bus; + char name[30]; +}; + +enum { + PCI_STD_RESOURCES = 0, + PCI_STD_RESOURCE_END = 5, + PCI_ROM_RESOURCE = 6, + PCI_BRIDGE_RESOURCES = 7, + PCI_BRIDGE_RESOURCE_END = 10, + PCI_NUM_RESOURCES = 11, + DEVICE_COUNT_RESOURCE = 11, +}; + +struct cpu_perf_ibs; + +struct perf_ibs { + struct pmu pmu; + unsigned int msr; + u64 config_mask; + u64 cnt_mask; + u64 enable_mask; + u64 valid_mask; + u64 max_period; + unsigned long offset_mask[1]; + int offset_max; + unsigned int fetch_count_reset_broken: 1; + unsigned int fetch_ignore_if_zero_rip: 1; + struct cpu_perf_ibs __attribute__((btf_type_tag("percpu"))) *pcpu; + u64 (*get_count)(u64); +}; + +struct cpu_perf_ibs { + struct perf_event *event; + unsigned long state[1]; +}; + +enum perf_hw_id { + PERF_COUNT_HW_CPU_CYCLES = 0, + PERF_COUNT_HW_INSTRUCTIONS = 1, + PERF_COUNT_HW_CACHE_REFERENCES = 2, + PERF_COUNT_HW_CACHE_MISSES = 3, + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4, + PERF_COUNT_HW_BRANCH_MISSES = 5, + PERF_COUNT_HW_BUS_CYCLES = 6, + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7, + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8, + PERF_COUNT_HW_REF_CPU_CYCLES = 9, + PERF_COUNT_HW_MAX = 10, +}; + +enum ibs_states { + IBS_ENABLED = 0, + IBS_STARTED = 1, + IBS_STOPPING = 2, + IBS_STOPPED = 3, + IBS_MAX_STATES = 4, +}; + +union ibs_fetch_ctl { + __u64 val; + struct { + __u64 fetch_maxcnt: 16; + __u64 fetch_cnt: 16; + __u64 fetch_lat: 16; + __u64 fetch_en: 1; + __u64 fetch_val: 1; + __u64 fetch_comp: 1; + __u64 ic_miss: 1; + __u64 phy_addr_valid: 1; + __u64 l1tlb_pgsz: 2; + __u64 l1tlb_miss: 1; + __u64 l2tlb_miss: 1; + __u64 rand_en: 1; + __u64 fetch_l2_miss: 1; + __u64 l3_miss_only: 1; + __u64 fetch_oc_miss: 1; + __u64 fetch_l3_miss: 1; + __u64 reserved: 2; + }; +}; + +union ibs_op_ctl { + __u64 val; + struct { + __u64 opmaxcnt: 16; + __u64 l3_miss_only: 1; + __u64 op_en: 1; + __u64 op_val: 1; + __u64 cnt_ctl: 1; + __u64 opmaxcnt_ext: 7; + __u64 reserved0: 5; + __u64 opcurcnt: 27; + __u64 reserved1: 5; + }; +}; + +struct perf_ibs_data { + u32 size; + union { + u32 data[0]; + u32 caps; + }; + u64 regs[8]; +}; + +union ibs_op_data3 { + __u64 val; + struct { + __u64 ld_op: 1; + __u64 st_op: 1; + __u64 dc_l1tlb_miss: 1; + __u64 dc_l2tlb_miss: 1; + __u64 dc_l1tlb_hit_2m: 1; + __u64 dc_l1tlb_hit_1g: 1; + __u64 dc_l2tlb_hit_2m: 1; + __u64 dc_miss: 1; + __u64 dc_mis_acc: 1; + __u64 reserved: 4; + __u64 dc_wc_mem_acc: 1; + __u64 dc_uc_mem_acc: 1; + __u64 dc_locked_op: 1; + __u64 dc_miss_no_mab_alloc: 1; + __u64 dc_lin_addr_valid: 1; + __u64 dc_phy_addr_valid: 1; + __u64 dc_l2_tlb_hit_1g: 1; + __u64 l2_miss: 1; + __u64 sw_pf: 1; + __u64 op_mem_width: 4; + __u64 op_dc_miss_open_mem_reqs: 6; + __u64 dc_miss_lat: 16; + __u64 tlb_refill_lat: 16; + }; +}; + +union ibs_op_data2 { + __u64 val; + struct { + __u64 data_src_lo: 3; + __u64 reserved0: 1; + __u64 rmt_node: 1; + __u64 cache_hit_st: 1; + __u64 data_src_hi: 2; + __u64 reserved1: 56; + }; +}; + +union ibs_op_data { + __u64 val; + struct { + __u64 comp_to_ret_ctr: 16; + __u64 tag_to_ret_ctr: 16; + __u64 reserved1: 2; + __u64 op_return: 1; + __u64 op_brn_taken: 1; + __u64 op_brn_misp: 1; + __u64 op_brn_ret: 1; + __u64 op_rip_invalid: 1; + __u64 op_brn_fuse: 1; + __u64 op_microcode: 1; + __u64 reserved2: 23; + }; +}; + +enum { + PER_LINUX = 0, + PER_LINUX_32BIT = 8388608, + PER_LINUX_FDPIC = 524288, + PER_SVR4 = 68157441, + PER_SVR3 = 83886082, + PER_SCOSVR3 = 117440515, + PER_OSR5 = 100663299, + PER_WYSEV386 = 83886084, + PER_ISCR4 = 67108869, + PER_BSD = 6, + PER_SUNOS = 67108870, + PER_XENIX = 83886087, + PER_LINUX32 = 8, + PER_LINUX32_3GB = 134217736, + PER_IRIX32 = 67108873, + PER_IRIXN32 = 67108874, + PER_IRIX64 = 67108875, + PER_RISCOS = 12, + PER_SOLARIS = 67108877, + PER_UW7 = 68157454, + PER_OSF4 = 15, + PER_HPUX = 16, + PER_MASK = 255, +}; + +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; +}; + +struct old_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; +}; + +struct oldold_utsname { + char sysname[9]; + char nodename[9]; + char release[9]; + char version[9]; + char machine[9]; +}; + +struct rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; +}; + +struct getcpu_cache { + unsigned long blob[16]; +}; + +struct sysinfo { + __kernel_long_t uptime; + __kernel_ulong_t loads[3]; + __kernel_ulong_t totalram; + __kernel_ulong_t freeram; + __kernel_ulong_t sharedram; + __kernel_ulong_t bufferram; + __kernel_ulong_t totalswap; + __kernel_ulong_t freeswap; + __u16 procs; + __u16 pad; + __kernel_ulong_t totalhigh; + __kernel_ulong_t freehigh; + __u32 mem_unit; + char _f[0]; +}; + +struct prctl_mm_map { + __u64 start_code; + __u64 end_code; + __u64 start_data; + __u64 end_data; + __u64 start_brk; + __u64 brk; + __u64 start_stack; + __u64 arg_start; + __u64 arg_end; + __u64 env_start; + __u64 env_end; + __u64 *auxv; + __u32 auxv_size; + __u32 exe_fd; +}; + +typedef int (*proc_visitor)(struct task_struct *, void *); + +struct cpu_stopper { + struct task_struct *thread; + raw_spinlock_t lock; + bool enabled; + struct list_head works; + struct cpu_stop_work stop_work; + unsigned long caller; + cpu_stop_fn_t fn; +}; + +struct cpu_stop_done { + atomic_t nr_todo; + int ret; + struct completion completion; +}; + +enum multi_stop_state { + MULTI_STOP_NONE = 0, + MULTI_STOP_PREPARE = 1, + MULTI_STOP_DISABLE_IRQ = 2, + MULTI_STOP_RUN = 3, + MULTI_STOP_EXIT = 4, +}; + +struct multi_stop_data { + cpu_stop_fn_t fn; + void *data; + unsigned int num_threads; + const struct cpumask *active_cpus; + enum multi_stop_state state; + atomic_t thread_ack; +}; + +enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, + BPF_RINGBUF_DISCARD_BIT = 1073741824, + BPF_RINGBUF_HDR_SZ = 8, +}; + +enum { + BPF_RB_NO_WAKEUP = 1, + BPF_RB_FORCE_WAKEUP = 2, +}; + +enum { + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, +}; + +typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); + +typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); + +struct bpf_ringbuf { + wait_queue_head_t waitq; + struct irq_work work; + u64 mask; + struct page **pages; + int nr_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t spinlock; + atomic_t busy; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long consumer_pos; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long producer_pos; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + char data[0]; +}; + +struct bpf_ringbuf_map { + struct bpf_map map; + struct bpf_ringbuf *rb; +}; + +struct bpf_ringbuf_hdr { + u32 len; + u32 pg_off; +}; + +struct char_device_struct { + struct char_device_struct *next; + unsigned int major; + unsigned int baseminor; + int minorct; + char name[64]; + struct cdev *cdev; +}; + +enum { + DIO_LOCKING = 1, + DIO_SKIP_HOLES = 2, +}; + +typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); + +struct dio { + int flags; + blk_opf_t opf; + struct gendisk *bio_disk; + struct inode *inode; + loff_t i_size; + dio_iodone_t *end_io; + bool is_pinned; + void *private; + spinlock_t bio_lock; + int page_errors; + int is_async; + bool defer_completion; + bool should_dirty; + int io_error; + unsigned long refcount; + struct bio *bio_list; + struct task_struct *waiter; + struct kiocb *iocb; + ssize_t result; + union { + struct page *pages[64]; + struct work_struct complete_work; + }; + long: 64; + long: 64; +}; + +struct dio_submit { + struct bio *bio; + unsigned int blkbits; + unsigned int blkfactor; + unsigned int start_zero_done; + int pages_in_io; + sector_t block_in_file; + unsigned int blocks_available; + int reap_counter; + sector_t final_block_in_request; + int boundary; + get_block_t *get_block; + loff_t logical_offset_in_bio; + sector_t final_block_in_bio; + sector_t next_block_for_io; + struct page *cur_page; + unsigned int cur_page_offset; + unsigned int cur_page_len; + sector_t cur_page_block; + loff_t cur_page_fs_offset; + struct iov_iter *iter; + unsigned int head; + unsigned int tail; + size_t from; + size_t to; +}; + +struct workspace_manager; + +struct btrfs_compress_op { + struct workspace_manager *workspace_manager; + unsigned int max_level; + unsigned int default_level; +}; + +struct workspace_manager { + struct list_head idle_ws; + spinlock_t ws_lock; + int free_ws; + atomic_t total_ws; + wait_queue_head_t ws_wait; +}; + +struct workspace { + z_stream strm; + char *buf; + unsigned int buf_size; + struct list_head list; + int level; +}; + +struct internal_state { + int dummy; +}; + +struct compressed_bio { + unsigned int nr_pages; + struct page **compressed_pages; + u64 start; + unsigned int len; + unsigned int compressed_len; + u8 compress_type; + bool writeback; + union { + struct btrfs_bio *orig_bbio; + struct work_struct write_end_work; + }; + struct btrfs_bio bbio; +}; + +struct mq_attr { + __kernel_long_t mq_flags; + __kernel_long_t mq_maxmsg; + __kernel_long_t mq_msgsize; + __kernel_long_t mq_curmsgs; + __kernel_long_t __reserved[4]; +}; + +struct sigevent { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + union { + int _pad[12]; + int _tid; + struct { + void (*_function)(sigval_t); + void *_attribute; + } _sigev_thread; + } _sigev_un; +}; + +struct ext_wait_queue { + struct task_struct *task; + struct list_head list; + struct msg_msg *msg; + int state; +}; + +struct posix_msg_tree_node; + +struct mqueue_inode_info { + spinlock_t lock; + struct inode vfs_inode; + wait_queue_head_t wait_q; + struct rb_root msg_tree; + struct rb_node *msg_tree_rightmost; + struct posix_msg_tree_node *node_cache; + struct mq_attr attr; + struct sigevent notify; + struct pid *notify_owner; + u32 notify_self_exec_id; + struct user_namespace *notify_user_ns; + struct ucounts *ucounts; + struct sock *notify_sock; + struct sk_buff *notify_cookie; + struct ext_wait_queue e_wait_q[2]; + unsigned long qsize; +}; + +struct posix_msg_tree_node { + struct rb_node rb_node; + struct list_head msg_list; + int priority; +}; + +typedef int __kernel_mqd_t; + +typedef __kernel_mqd_t mqd_t; + +struct mqueue_fs_context { + struct ipc_namespace *ipc_ns; + bool newns; +}; + +struct asymmetric_key_ids { + void *id[3]; +}; + +enum asn1_class { + ASN1_UNIV = 0, + ASN1_APPL = 1, + ASN1_CONT = 2, + ASN1_PRIV = 3, +}; + +struct pkcs7_parse_context { + struct pkcs7_message *msg; + struct pkcs7_signed_info *sinfo; + struct pkcs7_signed_info **ppsinfo; + struct x509_certificate *certs; + struct x509_certificate **ppcerts; + unsigned long data; + enum OID last_oid; + unsigned int x509_index; + unsigned int sinfo_index; + const void *raw_serial; + unsigned int raw_serial_size; + unsigned int raw_issuer_size; + const void *raw_issuer; + const void *raw_skid; + unsigned int raw_skid_size; + bool expect_skid; +}; + +struct io_sync { + struct file *file; + loff_t len; + loff_t off; + int flags; + int mode; +}; + +typedef struct { + rawSeqStore_t seqStore; + U32 startPosInBlock; + U32 endPosInBlock; + U32 offset; +} ZSTD_optLdm_t; + +typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); + +struct repcodes_s { + U32 rep[3]; +}; + +typedef struct repcodes_s repcodes_t; + +enum pm_qos_flags_status { + PM_QOS_FLAGS_UNDEFINED = -1, + PM_QOS_FLAGS_NONE = 0, + PM_QOS_FLAGS_SOME = 1, + PM_QOS_FLAGS_ALL = 2, +}; + +struct vc_selection { + struct mutex lock; + struct vc_data *cons; + char *buffer; + unsigned int buf_len; + volatile int start; + int end; +}; + +enum nvme_pr_type { + NVME_PR_WRITE_EXCLUSIVE = 1, + NVME_PR_EXCLUSIVE_ACCESS = 2, + NVME_PR_WRITE_EXCLUSIVE_REG_ONLY = 3, + NVME_PR_EXCLUSIVE_ACCESS_REG_ONLY = 4, + NVME_PR_WRITE_EXCLUSIVE_ALL_REGS = 5, + NVME_PR_EXCLUSIVE_ACCESS_ALL_REGS = 6, +}; + +enum nvme_eds { + NVME_EXTENDED_DATA_STRUCT = 1, +}; + +struct nvme_registered_ctrl { + __le16 cntlid; + __u8 rcsts; + __u8 rsvd3[5]; + __le64 hostid; + __le64 rkey; +}; + +struct nvme_reservation_status { + __le32 gen; + __u8 rtype; + __u8 regctl[2]; + __u8 resv5[2]; + __u8 ptpls; + __u8 resv10[14]; + struct nvme_registered_ctrl regctl_ds[0]; +}; + +struct nvme_registered_ctrl_ext { + __le16 cntlid; + __u8 rcsts; + __u8 rsvd3[5]; + __le64 rkey; + __u8 hostid[16]; + __u8 rsvd32[32]; +}; + +struct nvme_reservation_status_ext { + __le32 gen; + __u8 rtype; + __u8 regctl[2]; + __u8 resv5[2]; + __u8 ptpls; + __u8 resv10[14]; + __u8 rsvd24[40]; + struct nvme_registered_ctrl_ext regctl_eds[0]; +}; + +struct rtl_cond { + bool (*check)(struct rtl8169_private *); + const char *msg; +}; + +enum rtl_dash_type { + RTL_DASH_NONE = 0, + RTL_DASH_DP = 1, + RTL_DASH_EP = 2, +}; + +struct ring_info { + struct sk_buff *skb; + u32 len; +}; + +struct rtl8169_tc_offsets { + bool inited; + __le64 tx_errors; + __le32 tx_multi_collision; + __le16 tx_aborted; + __le16 rx_missed; +}; + +struct TxDesc; + +struct RxDesc; + +struct rtl8169_counters; + +struct rtl_fw___2; + +struct rtl8169_private { + void *mmio_addr; + struct pci_dev *pci_dev; + struct net_device *dev; + struct phy_device *phydev; + struct napi_struct napi; + enum mac_version mac_version; + enum rtl_dash_type dash_type; + u32 cur_rx; + u32 cur_tx; + u32 dirty_tx; + struct TxDesc *TxDescArray; + struct RxDesc *RxDescArray; + dma_addr_t TxPhyAddr; + dma_addr_t RxPhyAddr; + struct page *Rx_databuff[256]; + struct ring_info tx_skb[256]; + u16 cp_cmd; + u16 tx_lpi_timer; + u32 irq_mask; + int irq; + struct clk *clk; + struct { + unsigned long flags[1]; + struct work_struct work; + } wk; + raw_spinlock_t config25_lock; + raw_spinlock_t mac_ocp_lock; + struct mutex led_lock; + raw_spinlock_t cfg9346_usage_lock; + int cfg9346_usage_count; + unsigned int supports_gmii: 1; + unsigned int aspm_manageable: 1; + unsigned int dash_enabled: 1; + dma_addr_t counters_phys_addr; + struct rtl8169_counters *counters; + struct rtl8169_tc_offsets tc_offset; + u32 saved_wolopts; + const char *fw_name; + struct rtl_fw___2 *rtl_fw; + u32 ocp_base; +}; + +struct netdev_queue_stats_rx { + u64 bytes; + u64 packets; + u64 alloc_fail; +}; + +struct netdev_queue_stats_tx { + u64 bytes; + u64 packets; +}; + +struct TxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; +}; + +struct RxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; +}; + +struct rtl8169_counters { + __le64 tx_packets; + __le64 rx_packets; + __le64 tx_errors; + __le32 rx_errors; + __le16 rx_missed; + __le16 align_errors; + __le32 tx_one_collision; + __le32 tx_multi_collision; + __le64 rx_unicast; + __le64 rx_broadcast; + __le32 rx_multicast; + __le16 tx_aborted; + __le16 tx_underun; +}; + +typedef void (*rtl_fw_write_t)(struct rtl8169_private *, int, int); + +typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int); + +struct rtl_fw_phy_action { + __le32 *code; + size_t size; +}; + +struct rtl_fw___2 { + rtl_fw_write_t phy_write; + rtl_fw_read_t phy_read; + rtl_fw_write_t mac_mcu_write; + rtl_fw_read_t mac_mcu_read; + const struct firmware *fw; + const char *fw_name; + struct device *dev; + char version[32]; + struct rtl_fw_phy_action phy_action; +}; + +typedef void (*rtl_generic_fct)(struct rtl8169_private *); + +struct ephy_info { + unsigned int offset; + u16 mask; + u16 bits; +}; + +struct rtl_mac_info { + u16 mask; + u16 val; + enum mac_version ver; +}; + +struct rtl_coalesce_info { + u32 speed; + u32 scale_nsecs[4]; +}; + +enum rtl8168_registers { + LED_CTRL = 24, + LED_FREQ = 26, + EEE_LED = 27, + ERIDR = 112, + ERIAR = 116, + EPHY_RXER_NUM = 124, + OCPDR = 176, + OCPAR = 180, + GPHY_OCP = 184, + RDSAR1 = 208, + MISC = 240, +}; + +enum rtl8168_8101_registers { + CSIDR = 100, + CSIAR = 104, + PMCH = 111, + EPHYAR = 128, + DLLPR = 208, + DBG_REG = 209, + TWSI = 210, + MCU = 211, + EFUSEAR = 220, + MISC_1 = 242, +}; + +enum rtl_registers { + MAC0 = 0, + MAC4 = 4, + MAR0 = 8, + CounterAddrLow = 16, + CounterAddrHigh = 20, + TxDescStartAddrLow = 32, + TxDescStartAddrHigh = 36, + TxHDescStartAddrLow = 40, + TxHDescStartAddrHigh = 44, + FLASH = 48, + ERSR = 54, + ChipCmd = 55, + TxPoll = 56, + IntrMask = 60, + IntrStatus = 62, + TxConfig = 64, + RxConfig = 68, + Cfg9346 = 80, + Config0 = 81, + Config1 = 82, + Config2 = 83, + Config3 = 84, + Config4 = 85, + Config5 = 86, + PHYAR = 96, + PHYstatus = 108, + RxMaxSize = 218, + CPlusCmd = 224, + IntrMitigate = 226, + RxDescAddrLow = 228, + RxDescAddrHigh = 232, + EarlyTxThres = 236, + MaxTxPacketSize = 236, + FuncEvent = 240, + FuncEventMask = 244, + FuncPresetState = 248, + IBCR0 = 248, + IBCR2 = 249, + IBIMR0 = 250, + IBISR0 = 251, + FuncForceEvent = 252, +}; + +enum rtl_register_content___2 { + SYSErr = 32768, + PCSTimeout = 16384, + SWInt = 256, + TxDescUnavail = 128, + RxFIFOOver = 64, + LinkChg = 32, + RxOverflow = 16, + TxErr = 8, + TxOK = 4, + RxErr = 2, + RxOK = 1, + RxRWT = 4194304, + RxRES = 2097152, + RxRUNT = 1048576, + RxCRC = 524288, + StopReq = 128, + CmdReset = 16, + CmdRxEnb = 8, + CmdTxEnb = 4, + RxBufEmpty = 1, + HPQ = 128, + NPQ = 64, + FSWInt = 1, + Cfg9346_Lock = 0, + Cfg9346_Unlock = 192, + AcceptErr = 32, + AcceptRunt = 16, + AcceptBroadcast = 8, + AcceptMulticast = 4, + AcceptMyPhys = 2, + AcceptAllPhys = 1, + TxInterFrameGapShift = 24, + TxDMAShift = 8, + LEDS1 = 128, + LEDS0 = 64, + Speed_down = 16, + MEMMAP = 8, + IOMAP = 4, + VPD = 2, + PMEnable = 1, + ClkReqEn = 128, + MSIEnable = 32, + PCI_Clock_66MHz = 1, + PCI_Clock_33MHz = 0, + MagicPacket = 32, + LinkUp = 16, + Jumbo_En0 = 4, + Rdy_to_L23 = 2, + Beacon_en = 1, + Jumbo_En1 = 2, + BWF = 64, + MWF = 32, + UWF = 16, + Spi_en = 8, + LanWake = 2, + PMEStatus = 1, + ASPM_en = 1, + EnableBist = 32768, + Mac_dbgo_oe = 16384, + EnAnaPLL = 16384, + Normal_mode = 8192, + Force_half_dup = 4096, + Force_rxflow_en = 2048, + Force_txflow_en = 1024, + Cxpl_dbg_sel = 512, + ASF = 256, + PktCntrDisable = 128, + Mac_dbgo_sel = 28, + RxVlan = 64, + RxChkSum = 32, + PCIDAC = 16, + PCIMulRW = 8, + TBI_Enable = 128, + TxFlowCtrl = 64, + RxFlowCtrl = 32, + _1000bpsF = 16, + _100bps___2 = 8, + _10bps___2 = 4, + LinkStatus = 2, + FullDup = 1, + CounterReset = 1, + CounterDump = 8, + MagicPacket_v2 = 65536, +}; + +enum rtl_desc_bit { + DescOwn = -2147483648, + RingEnd = 1073741824, + FirstFrag = 536870912, + LastFrag = 268435456, +}; + +enum rtl_flag { + RTL_FLAG_TASK_ENABLED = 0, + RTL_FLAG_TASK_RESET_PENDING = 1, + RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE = 2, + RTL_FLAG_TASK_TX_TIMEOUT = 3, + RTL_FLAG_MAX = 4, +}; + +enum rtl8125_registers { + LEDSEL0 = 24, + INT_CFG0_8125 = 52, + IntrMask_8125 = 56, + IntrStatus_8125 = 60, + INT_CFG1_8125 = 122, + LEDSEL2 = 132, + LEDSEL1 = 134, + TxPoll_8125 = 144, + LEDSEL3 = 150, + MAC0_BKP = 6624, + EEE_TXIDLE_TIMER_8125 = 24648, +}; + +enum rtl_tx_desc_bit { + TD_LSO = 134217728, + TxVlanTag = 131072, +}; + +enum rtl_tx_desc_bit_0 { + TD0_TCP_CS = 65536, + TD0_UDP_CS = 131072, + TD0_IP_CS = 262144, +}; + +enum rtl_tx_desc_bit_1 { + TD1_GTSENV4 = 67108864, + TD1_GTSENV6 = 33554432, + TD1_IPv6_CS = 268435456, + TD1_IPv4_CS = 536870912, + TD1_TCP_CS = 1073741824, + TD1_UDP_CS = -2147483648, +}; + +enum rtl_rx_desc_bit { + PID1 = 262144, + PID0 = 131072, + IPFail = 65536, + UDPFail = 32768, + TCPFail = 16384, + RxVlanTag = 65536, +}; + +struct vlan_ethhdr { + union { + struct { + unsigned char h_dest[6]; + unsigned char h_source[6]; + }; + struct { + unsigned char h_dest[6]; + unsigned char h_source[6]; + } addrs; + }; + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; +}; + +enum rtw_sc_offset { + RTW_SC_DONT_CARE = 0, + RTW_SC_20_UPPER = 1, + RTW_SC_20_LOWER = 2, + RTW_SC_20_UPMOST = 3, + RTW_SC_20_LOWEST = 4, + RTW_SC_40_UPPER = 9, + RTW_SC_40_LOWER = 10, +}; + +enum rtw_pwr_seq_cmd_delay_unit { + RTW_PWR_DELAY_US = 0, + RTW_PWR_DELAY_MS = 1, +}; + +struct sdio_func; + +struct rtw_sdio_work_data; + +struct rtw_sdio { + struct sdio_func *sdio_func; + u32 irq_mask; + u8 rx_addr; + bool sdio3_bus_mode; + void *irq_thread; + struct workqueue_struct *txwq; + struct rtw_sdio_work_data *tx_handler_data; + struct sk_buff_head tx_queue[8]; +}; + +struct rtw_sdio_work_data { + struct work_struct work; + struct rtw_dev *rtwdev; +}; + +struct rtw_fw_hdr { + __le16 signature; + u8 category; + u8 function; + __le16 version; + u8 subversion; + u8 subindex; + __le32 rsvd; + __le32 feature; + u8 month; + u8 day; + u8 hour; + u8 min; + __le16 year; + __le16 rsvd3; + u8 mem_usage; + u8 rsvd4[3]; + __le16 h2c_fmt_ver; + __le16 rsvd5; + __le32 dmem_addr; + __le32 dmem_size; + __le32 rsvd6; + __le32 rsvd7; + __le32 imem_size; + __le32 emem_size; + __le32 emem_addr; + __le32 imem_addr; +}; + +struct bulk_cb_wrap { + __le32 Signature; + __u32 Tag; + __le32 DataTransferLength; + __u8 Flags; + __u8 Lun; + __u8 Length; + __u8 CDB[16]; +}; + +struct bulk_cs_wrap { + __le32 Signature; + __u32 Tag; + __le32 Residue; + __u8 Status; +}; + +struct scsi_eh_save { + int result; + unsigned int resid_len; + int eh_eflags; + enum dma_data_direction data_direction; + unsigned int underflow; + unsigned char cmd_len; + unsigned char prot_op; + unsigned char cmnd[32]; + struct scsi_data_buffer sdb; + struct scatterlist sense_sgl; +}; + +struct fw_cfg_vmcoreinfo { + __le16 host_format; + __le16 guest_format; + __le32 size; + __le64 paddr; +}; + +struct fw_cfg_sysfs_entry; + +struct fw_cfg_sysfs_attribute { + struct attribute attr; + ssize_t (*show)(struct fw_cfg_sysfs_entry *, char *); +}; + +struct fw_cfg_sysfs_entry { + struct kobject kobj; + u32 size; + u16 select; + char name[56]; + struct list_head list; +}; + +struct fw_cfg_file { + __be32 size; + __be16 select; + __u16 reserved; + char name[56]; +}; + +struct fw_cfg_dma_access { + __be32 control; + __be32 length; + __be64 address; +}; + +enum hwtstamp_tx_types { + HWTSTAMP_TX_OFF = 0, + HWTSTAMP_TX_ON = 1, + HWTSTAMP_TX_ONESTEP_SYNC = 2, + HWTSTAMP_TX_ONESTEP_P2P = 3, + __HWTSTAMP_TX_CNT = 4, +}; + +enum hwtstamp_rx_filters { + HWTSTAMP_FILTER_NONE = 0, + HWTSTAMP_FILTER_ALL = 1, + HWTSTAMP_FILTER_SOME = 2, + HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3, + HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4, + HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5, + HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6, + HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7, + HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8, + HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9, + HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10, + HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11, + HWTSTAMP_FILTER_PTP_V2_EVENT = 12, + HWTSTAMP_FILTER_PTP_V2_SYNC = 13, + HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14, + HWTSTAMP_FILTER_NTP_ALL = 15, + __HWTSTAMP_FILTER_CNT = 16, +}; + +enum hwtstamp_flags { + HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, + HWTSTAMP_FLAG_LAST = 1, + HWTSTAMP_FLAG_MASK = 1, +}; + +struct compat_ifmap { + compat_ulong_t mem_start; + compat_ulong_t mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; +}; + +struct ifconf { + int ifc_len; + union { + char __attribute__((btf_type_tag("user"))) *ifcu_buf; + struct ifreq __attribute__((btf_type_tag("user"))) *ifcu_req; + } ifc_ifcu; +}; + +enum { + ETHTOOL_A_CABLE_TEST_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_HEADER = 1, + __ETHTOOL_A_CABLE_TEST_CNT = 2, + ETHTOOL_A_CABLE_TEST_MAX = 1, +}; + +enum { + ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_NTF_HEADER = 1, + ETHTOOL_A_CABLE_TEST_NTF_STATUS = 2, + ETHTOOL_A_CABLE_TEST_NTF_NEST = 3, + __ETHTOOL_A_CABLE_TEST_NTF_CNT = 4, + ETHTOOL_A_CABLE_TEST_NTF_MAX = 3, +}; + +enum { + ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 1, + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 2, +}; + +enum { + ETHTOOL_A_CABLE_NEST_UNSPEC = 0, + ETHTOOL_A_CABLE_NEST_RESULT = 1, + ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 2, + __ETHTOOL_A_CABLE_NEST_CNT = 3, + ETHTOOL_A_CABLE_NEST_MAX = 2, +}; + +enum { + ETHTOOL_A_CABLE_RESULT_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_PAIR = 1, + ETHTOOL_A_CABLE_RESULT_CODE = 2, + __ETHTOOL_A_CABLE_RESULT_CNT = 3, + ETHTOOL_A_CABLE_RESULT_MAX = 2, +}; + +enum { + ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0, + ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 1, + ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 2, + __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 3, + ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 2, +}; + +enum { + ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_TDR_HEADER = 1, + ETHTOOL_A_CABLE_TEST_TDR_CFG = 2, + __ETHTOOL_A_CABLE_TEST_TDR_CNT = 3, + ETHTOOL_A_CABLE_TEST_TDR_MAX = 2, +}; + +enum { + ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0, + ETHTOOL_A_CABLE_TDR_NEST_STEP = 1, + ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 2, + ETHTOOL_A_CABLE_TDR_NEST_PULSE = 3, + __ETHTOOL_A_CABLE_TDR_NEST_CNT = 4, + ETHTOOL_A_CABLE_TDR_NEST_MAX = 3, +}; + +enum { + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0, + ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1, + ETHTOOL_A_CABLE_AMPLITUDE_mV = 2, + __ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3, + ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2, +}; + +enum { + ETHTOOL_A_CABLE_PULSE_UNSPEC = 0, + ETHTOOL_A_CABLE_PULSE_mV = 1, + __ETHTOOL_A_CABLE_PULSE_CNT = 2, + ETHTOOL_A_CABLE_PULSE_MAX = 1, +}; + +enum { + ETHTOOL_A_CABLE_STEP_UNSPEC = 0, + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1, + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2, + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3, + __ETHTOOL_A_CABLE_STEP_CNT = 4, + ETHTOOL_A_CABLE_STEP_MAX = 3, +}; + +enum { + ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 1, + ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 2, + ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 3, + ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 4, + __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT = 5, + ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 4, +}; + +enum { + ETHTOOL_A_CABLE_PAIR_A = 0, + ETHTOOL_A_CABLE_PAIR_B = 1, + ETHTOOL_A_CABLE_PAIR_C = 2, + ETHTOOL_A_CABLE_PAIR_D = 3, +}; + +struct nf_nat_ipv4_range { + unsigned int flags; + __be32 min_ip; + __be32 max_ip; + union nf_conntrack_man_proto min; + union nf_conntrack_man_proto max; +}; + +struct nf_nat_ipv4_multi_range_compat { + unsigned int rangesize; + struct nf_nat_ipv4_range range[1]; +}; + +struct igmp6_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; +}; + +struct igmp6_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; + struct ifmcaddr6 *im; +}; + +enum vdso_clock_mode { + VDSO_CLOCKMODE_NONE = 0, + VDSO_CLOCKMODE_TSC = 1, + VDSO_CLOCKMODE_PVCLOCK = 2, + VDSO_CLOCKMODE_HVCLOCK = 3, + VDSO_CLOCKMODE_MAX = 4, + VDSO_CLOCKMODE_TIMENS = 2147483647, +}; + +struct vdso_timestamp { + u64 sec; + u64 nsec; +}; + +struct timens_offset { + s64 sec; + u64 nsec; +}; + +struct arch_vdso_data {}; + +struct vdso_data { + u32 seq; + s32 clock_mode; + u64 cycle_last; + u64 mask; + u32 mult; + u32 shift; + union { + struct vdso_timestamp basetime[12]; + struct timens_offset offset[12]; + }; + s32 tz_minuteswest; + s32 tz_dsttime; + u32 hrtimer_res; + u32 __unused; + struct arch_vdso_data arch_data; +}; + +struct fpu_guest { + u64 xfeatures; + u64 perm; + u64 xfd_err; + unsigned int uabi_size; + struct fpstate *fpstate; +}; + +struct pkru_state { + u32 pkru; + u32 pad; +}; + +struct vector_cleanup { + struct hlist_head head; + struct timer_list timer; +}; + +struct apic_chip_data { + struct irq_cfg hw_irq_cfg; + unsigned int vector; + unsigned int prev_vector; + unsigned int cpu; + unsigned int prev_cpu; + unsigned int irq; + struct hlist_node clist; + unsigned int move_in_progress: 1; + unsigned int is_managed: 1; + unsigned int can_reserve: 1; + unsigned int has_reserved: 1; +}; + +typedef struct irq_desc *vector_irq_t[256]; + +struct k_itimer; + +struct k_clock { + int (*clock_getres)(const clockid_t, struct timespec64 *); + int (*clock_set)(const clockid_t, const struct timespec64 *); + int (*clock_get_timespec)(const clockid_t, struct timespec64 *); + ktime_t (*clock_get_ktime)(const clockid_t); + int (*clock_adj)(const clockid_t, struct __kernel_timex *); + int (*timer_create)(struct k_itimer *); + int (*nsleep)(const clockid_t, int, const struct timespec64 *); + int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *); + int (*timer_del)(struct k_itimer *); + void (*timer_get)(struct k_itimer *, struct itimerspec64 *); + void (*timer_rearm)(struct k_itimer *); + s64 (*timer_forward)(struct k_itimer *, ktime_t); + ktime_t (*timer_remaining)(struct k_itimer *, ktime_t); + int (*timer_try_to_cancel)(struct k_itimer *); + void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool); + void (*timer_wait_running)(struct k_itimer *); +}; + +struct cpu_timer { + struct timerqueue_node node; + struct timerqueue_head *head; + struct pid *pid; + struct list_head elist; + int firing; + struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; +}; + +typedef __kernel_timer_t timer_t; + +struct k_itimer { + struct list_head list; + struct hlist_node t_hash; + spinlock_t it_lock; + const struct k_clock *kclock; + clockid_t it_clock; + timer_t it_id; + int it_active; + s64 it_overrun; + s64 it_overrun_last; + int it_requeue_pending; + int it_sigev_notify; + ktime_t it_interval; + struct signal_struct *it_signal; + union { + struct pid *it_pid; + struct task_struct *it_process; + }; + struct sigqueue *sigq; + union { + struct { + struct hrtimer timer; + } real; + struct cpu_timer cpu; + struct { + struct alarm alarmtimer; + } alarm; + } it; + struct callback_head rcu; +}; + +struct posix_clock_desc { + struct file *fp; + struct posix_clock *clk; +}; + +enum bpf_tramp_prog_type { + BPF_TRAMP_FENTRY = 0, + BPF_TRAMP_FEXIT = 1, + BPF_TRAMP_MODIFY_RETURN = 2, + BPF_TRAMP_MAX = 3, + BPF_TRAMP_REPLACE = 4, +}; + +enum bpf_text_poke_type { + BPF_MOD_CALL = 0, + BPF_MOD_JUMP = 1, +}; + +enum { + BPF_MAX_TRAMP_LINKS = 38, +}; + +struct bpf_tramp_links { + struct bpf_tramp_link *links[38]; + int nr_links; +}; + +typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *); + +typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *); + +enum { + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, +}; + +struct ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; +}; + +struct ext4_new_group_data { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; +}; + +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t resize_bg; + ext4_group_t count; +}; + +enum { + LOG_INODE_ALL = 0, + LOG_INODE_EXISTS = 1, +}; + +enum { + LOG_WALK_PIN_ONLY = 0, + LOG_WALK_REPLAY_INODES = 1, + LOG_WALK_REPLAY_DIR_INDEX = 2, + LOG_WALK_REPLAY_ALL = 3, +}; + +enum { + BTRFS_ORDERED_REGULAR = 0, + BTRFS_ORDERED_NOCOW = 1, + BTRFS_ORDERED_PREALLOC = 2, + BTRFS_ORDERED_COMPRESSED = 3, + BTRFS_ORDERED_DIRECT = 4, + BTRFS_ORDERED_IO_DONE = 5, + BTRFS_ORDERED_COMPLETE = 6, + BTRFS_ORDERED_IOERR = 7, + BTRFS_ORDERED_TRUNCATED = 8, + BTRFS_ORDERED_LOGGED = 9, + BTRFS_ORDERED_LOGGED_CSUM = 10, + BTRFS_ORDERED_PENDING = 11, + BTRFS_ORDERED_ENCODED = 12, +}; + +enum btrfs_delayed_item_type { + BTRFS_DELAYED_INSERTION_ITEM = 0, + BTRFS_DELAYED_DELETION_ITEM = 1, +}; + +struct btrfs_log_ctx { + int log_ret; + int log_transid; + bool log_new_dentries; + bool logging_new_name; + bool logging_new_delayed_dentries; + bool logged_before; + struct inode *inode; + struct list_head list; + struct list_head ordered_extents; + struct list_head conflict_inodes; + int num_conflict_inodes; + bool logging_conflict_inodes; + struct extent_buffer *scratch_eb; +}; + +struct btrfs_inode_ref { + __le64 index; + __le16 name_len; +} __attribute__((packed)); + +struct btrfs_inode_extref { + __le64 parent_objectid; + __le64 index; + __le16 name_len; + __u8 name[0]; +} __attribute__((packed)); + +struct btrfs_delayed_item { + struct rb_node rb_node; + u64 index; + struct list_head tree_list; + struct list_head readdir_list; + struct list_head log_list; + u64 bytes_reserved; + struct btrfs_delayed_node *delayed_node; + refcount_t refs; + enum btrfs_delayed_item_type type: 8; + bool logged; + u16 data_len; + char data[0]; +}; + +struct btrfs_ino_list { + u64 ino; + u64 parent; + struct list_head list; +}; + +struct btrfs_dir_list { + u64 ino; + struct list_head list; +}; + +struct btrfs_dir_log_item { + __le64 end; +}; + +struct btrfs_drop_extents_args { + struct btrfs_path *path; + u64 start; + u64 end; + bool drop_cache; + bool replace_extent; + u32 extent_item_size; + u64 drop_end; + u64 bytes_found; + bool extent_inserted; +}; + +struct walk_control { + int free; + int pin; + int stage; + bool ignore_cur_inode; + struct btrfs_root *replay_dest; + struct btrfs_trans_handle *trans; + int (*process_func)(struct btrfs_root *, struct extent_buffer *, struct walk_control *, u64, int); +}; + +struct crypto_cipher { + struct crypto_tfm base; +}; + +struct crypto_istat_rng { + atomic64_t generate_cnt; + atomic64_t generate_tlen; + atomic64_t seed_cnt; + atomic64_t err_cnt; +}; + +struct dmt_videomode { + u32 dmt_id; + u32 std_2byte_code; + u32 cvt_3byte_code; + const struct fb_videomode *mode; +}; + +struct acpi_osi_config { + u8 default_disabling; + unsigned int linux_enable: 1; + unsigned int linux_dmi: 1; + unsigned int linux_cmdline: 1; + unsigned int darwin_enable: 1; + unsigned int darwin_dmi: 1; + unsigned int darwin_cmdline: 1; +}; + +struct acpi_osi_entry { + char string[64]; + bool enable; +}; + +struct platform_s2idle_ops { + int (*begin)(); + int (*prepare)(); + int (*prepare_late)(); + void (*check)(); + bool (*wake)(); + void (*restore_early)(); + void (*restore)(); + void (*end)(); +}; + +struct platform_suspend_ops { + int (*valid)(suspend_state_t); + int (*begin)(suspend_state_t); + int (*prepare)(); + int (*prepare_late)(); + int (*enter)(suspend_state_t); + void (*wake)(); + void (*finish)(); + bool (*suspend_again)(); + void (*end)(); + void (*recover)(); +}; + +struct platform_hibernation_ops { + int (*begin)(pm_message_t); + void (*end)(); + int (*pre_snapshot)(); + void (*finish)(); + int (*prepare)(); + int (*enter)(); + void (*leave)(); + int (*pre_restore)(); + void (*restore_cleanup)(); + void (*recover)(); +}; + +struct acpi_table_facs { + char signature[4]; + u32 length; + u32 hardware_signature; + u32 firmware_waking_vector; + u32 global_lock; + u32 flags; + u64 xfirmware_waking_vector; + u8 version; + u8 reserved[3]; + u32 ospm_flags; + u8 reserved1[24]; +}; + +struct old_serial_port { + unsigned int uart; + unsigned int baud_base; + unsigned int port; + unsigned int irq; + upf_t flags; + unsigned char io_type; + unsigned char *iomem_base; + unsigned short iomem_reg_shift; +}; + +struct uart_driver { + struct module *owner; + const char *driver_name; + const char *dev_name; + int major; + int minor; + int nr; + struct console *cons; + struct uart_state *state; + struct tty_driver *tty_driver; +}; + +enum { + PLAT8250_DEV_LEGACY = -1, + PLAT8250_DEV_PLATFORM = 0, + PLAT8250_DEV_PLATFORM1 = 1, + PLAT8250_DEV_PLATFORM2 = 2, + PLAT8250_DEV_FOURPORT = 3, + PLAT8250_DEV_ACCENT = 4, + PLAT8250_DEV_BOCA = 5, + PLAT8250_DEV_EXAR_ST16C554 = 6, + PLAT8250_DEV_HUB6 = 7, + PLAT8250_DEV_AU1X00 = 8, + PLAT8250_DEV_SM501 = 9, +}; + +struct irq_info { + struct hlist_node node; + int irq; + spinlock_t lock; + struct list_head *head; +}; + +struct plat_serial8250_port { + unsigned long iobase; + void *membase; + resource_size_t mapbase; + resource_size_t mapsize; + unsigned int uartclk; + unsigned int irq; + unsigned long irqflags; + void *private_data; + unsigned char regshift; + unsigned char iotype; + unsigned char hub6; + unsigned char has_sysrq; + unsigned int type; + upf_t flags; + u16 bugs; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); +}; + +enum rtw_rate_section { + RTW_RATE_SECTION_CCK = 0, + RTW_RATE_SECTION_OFDM = 1, + RTW_RATE_SECTION_HT_1S = 2, + RTW_RATE_SECTION_HT_2S = 3, + RTW_RATE_SECTION_VHT_1S = 4, + RTW_RATE_SECTION_VHT_2S = 5, + RTW_RATE_SECTION_MAX = 6, +}; + +struct rtw_sar_arg { + u8 sar_band; + u8 path; + u8 rs; +}; + +struct dm_stat_percpu { + unsigned long long sectors[2]; + unsigned long long ios[2]; + unsigned long long merges[2]; + unsigned long long ticks[2]; + unsigned long long io_ticks[2]; + unsigned long long io_ticks_total; + unsigned long long time_in_queue; + unsigned long long *histogram; +}; + +struct dm_stat_shared { + atomic_t in_flight[2]; + unsigned long long stamp; + struct dm_stat_percpu tmp; +}; + +struct dm_stat { + struct list_head list_entry; + int id; + unsigned int stat_flags; + size_t n_entries; + sector_t start; + sector_t end; + sector_t step; + unsigned int n_histogram_entries; + unsigned long long *histogram_boundaries; + const char *program_id; + const char *aux_data; + struct callback_head callback_head; + size_t shared_alloc_size; + size_t percpu_alloc_size; + size_t histogram_alloc_size; + struct dm_stat_percpu *stat_percpu[8192]; + struct dm_stat_shared stat_shared[0]; +}; + +struct gro_cell { + struct sk_buff_head napi_skbs; + struct napi_struct napi; +}; + +struct percpu_free_defer { + struct callback_head rcu; + void __attribute__((btf_type_tag("percpu"))) *ptr; +}; + +struct gro_cells { + struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; +}; + +enum { + ETHTOOL_A_FEC_UNSPEC = 0, + ETHTOOL_A_FEC_HEADER = 1, + ETHTOOL_A_FEC_MODES = 2, + ETHTOOL_A_FEC_AUTO = 3, + ETHTOOL_A_FEC_ACTIVE = 4, + ETHTOOL_A_FEC_STATS = 5, + __ETHTOOL_A_FEC_CNT = 6, + ETHTOOL_A_FEC_MAX = 5, +}; + +enum { + ETHTOOL_A_FEC_STAT_UNSPEC = 0, + ETHTOOL_A_FEC_STAT_PAD = 1, + ETHTOOL_A_FEC_STAT_CORRECTED = 2, + ETHTOOL_A_FEC_STAT_UNCORR = 3, + ETHTOOL_A_FEC_STAT_CORR_BITS = 4, + __ETHTOOL_A_FEC_STAT_CNT = 5, + ETHTOOL_A_FEC_STAT_MAX = 4, +}; + +struct fec_stat_grp { + u64 stats[9]; + u8 cnt; +}; + +struct fec_reply_data { + struct ethnl_reply_data base; + unsigned long fec_link_modes[2]; + u32 active_fec; + u8 fec_auto; + struct fec_stat_grp corr; + struct fec_stat_grp uncorr; + struct fec_stat_grp corr_bits; +}; + +typedef const char (* const ethnl_string_array_t)[32]; + +struct nft_inner_tun_ctx { + u16 type; + u16 inner_tunoff; + u16 inner_lloff; + u16 inner_nhoff; + u16 inner_thoff; + __be16 llproto; + u8 l4proto; + u8 flags; +}; + +enum nft_payload_bases { + NFT_PAYLOAD_LL_HEADER = 0, + NFT_PAYLOAD_NETWORK_HEADER = 1, + NFT_PAYLOAD_TRANSPORT_HEADER = 2, + NFT_PAYLOAD_INNER_HEADER = 3, + NFT_PAYLOAD_TUN_HEADER = 4, +}; + +enum nft_meta_keys { + NFT_META_LEN = 0, + NFT_META_PROTOCOL = 1, + NFT_META_PRIORITY = 2, + NFT_META_MARK = 3, + NFT_META_IIF = 4, + NFT_META_OIF = 5, + NFT_META_IIFNAME = 6, + NFT_META_OIFNAME = 7, + NFT_META_IFTYPE = 8, + NFT_META_OIFTYPE = 9, + NFT_META_SKUID = 10, + NFT_META_SKGID = 11, + NFT_META_NFTRACE = 12, + NFT_META_RTCLASSID = 13, + NFT_META_SECMARK = 14, + NFT_META_NFPROTO = 15, + NFT_META_L4PROTO = 16, + NFT_META_BRI_IIFNAME = 17, + NFT_META_BRI_OIFNAME = 18, + NFT_META_PKTTYPE = 19, + NFT_META_CPU = 20, + NFT_META_IIFGROUP = 21, + NFT_META_OIFGROUP = 22, + NFT_META_CGROUP = 23, + NFT_META_PRANDOM = 24, + NFT_META_SECPATH = 25, + NFT_META_IIFKIND = 26, + NFT_META_OIFKIND = 27, + NFT_META_BRI_IIFPVID = 28, + NFT_META_BRI_IIFVPROTO = 29, + NFT_META_TIME_NS = 30, + NFT_META_TIME_DAY = 31, + NFT_META_TIME_HOUR = 32, + NFT_META_SDIF = 33, + NFT_META_SDIFNAME = 34, + NFT_META_BRI_BROUTE = 35, + __NFT_META_IIFTYPE = 36, +}; + +enum { + NFT_INNER_EXPR_PAYLOAD = 0, + NFT_INNER_EXPR_META = 1, +}; + +enum nft_inner_flags { + NFT_INNER_HDRSIZE = 1, + NFT_INNER_LL = 2, + NFT_INNER_NH = 4, + NFT_INNER_TH = 8, +}; + +enum { + NFT_PAYLOAD_CTX_INNER_TUN = 1, + NFT_PAYLOAD_CTX_INNER_LL = 2, + NFT_PAYLOAD_CTX_INNER_NH = 4, + NFT_PAYLOAD_CTX_INNER_TH = 8, +}; + +enum nft_inner_type { + NFT_INNER_UNSPEC = 0, + NFT_INNER_VXLAN = 1, + NFT_INNER_GENEVE = 2, }; enum { @@ -93799,6 +92694,3073 @@ enum { IP6_FH_F_SKIP_RH = 4, }; +enum nft_inner_attributes { + NFTA_INNER_UNSPEC = 0, + NFTA_INNER_NUM = 1, + NFTA_INNER_TYPE = 2, + NFTA_INNER_FLAGS = 3, + NFTA_INNER_HDRSIZE = 4, + NFTA_INNER_EXPR = 5, + __NFTA_INNER_MAX = 6, +}; + +struct nft_payload { + enum nft_payload_bases base: 8; + u8 offset; + u8 len; + u8 dreg; +}; + +struct nft_meta { + enum nft_meta_keys key: 8; + u8 len; + union { + u8 dreg; + u8 sreg; + }; +}; + +struct __nft_expr { + const struct nft_expr_ops *ops; + union { + struct nft_payload payload; + struct nft_meta meta; + }; +}; + +struct nft_inner { + u8 flags; + u8 hdrsize; + u8 type; + u8 expr_type; + struct __nft_expr expr; +}; + +struct genevehdr { + u8 opt_len: 6; + u8 ver: 2; + u8 rsvd1: 6; + u8 critical: 1; + u8 oam: 1; + __be16 proto_type; + u8 vni[3]; + u8 rsvd2; + u8 options[0]; +}; + +struct ipt_replace { + char name[32]; + unsigned int valid_hooks; + unsigned int num_entries; + unsigned int size; + unsigned int hook_entry[5]; + unsigned int underflow[5]; + unsigned int num_counters; + struct xt_counters __attribute__((btf_type_tag("user"))) *counters; + struct ipt_entry entries[0]; +}; + +struct lock_chain { + unsigned int irq_context: 2; + unsigned int depth: 6; + unsigned int base: 24; + struct hlist_node entry; + u64 chain_key; +}; + +struct lock_list; + +struct circular_queue { + struct lock_list *element[4096]; + unsigned int front; + unsigned int rear; +}; + +struct lock_list { + struct list_head entry; + struct lock_class *class; + struct lock_class *links_to; + const struct lock_trace *trace; + u16 distance; + u8 dep; + u8 only_xr; + struct lock_list *parent; +}; + +struct pending_free { + struct list_head zapped; + unsigned long lock_chains_being_freed[1024]; +}; + +struct delayed_free { + struct callback_head callback_head; + int index; + int scheduled; + struct pending_free pf[2]; +}; + +enum lock_usage_bit { + LOCK_USED_IN_HARDIRQ = 0, + LOCK_USED_IN_HARDIRQ_READ = 1, + LOCK_ENABLED_HARDIRQ = 2, + LOCK_ENABLED_HARDIRQ_READ = 3, + LOCK_USED_IN_SOFTIRQ = 4, + LOCK_USED_IN_SOFTIRQ_READ = 5, + LOCK_ENABLED_SOFTIRQ = 6, + LOCK_ENABLED_SOFTIRQ_READ = 7, + LOCK_USED = 8, + LOCK_USED_READ = 9, + LOCK_USAGE_STATES = 10, +}; + +enum bfs_result { + BFS_EINVALIDNODE = -2, + BFS_EQUEUEFULL = -1, + BFS_RMATCH = 0, + BFS_RNOMATCH = 1, +}; + +enum { + LOCKF_USED_IN_HARDIRQ = 1, + LOCKF_USED_IN_HARDIRQ_READ = 2, + LOCKF_ENABLED_HARDIRQ = 4, + LOCKF_ENABLED_HARDIRQ_READ = 8, + LOCKF_USED_IN_SOFTIRQ = 16, + LOCKF_USED_IN_SOFTIRQ_READ = 32, + LOCKF_ENABLED_SOFTIRQ = 64, + LOCKF_ENABLED_SOFTIRQ_READ = 128, + LOCKF_USED = 256, + LOCKF_USED_READ = 512, +}; + +struct ftrace_func_command { + struct list_head list; + char *name; + int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); +}; + +struct ftrace_probe_ops { + void (*func)(unsigned long, unsigned long, struct trace_array *, struct ftrace_probe_ops *, void *); + int (*init)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *, void **); + void (*free)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *); + int (*print)(struct seq_file *, unsigned long, struct ftrace_probe_ops *, void *); +}; + +enum { + TRACE_FUNC_NO_OPTS = 0, + TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, +}; + +typedef int (*ftrace_mapper_func)(void *); + +typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); + +struct pseudo_fs_context { + const struct super_operations *ops; + const struct xattr_handler * const *xattr; + const struct dentry_operations *dops; + unsigned long magic; +}; + +enum { + WORK_DONE_BIT = 0, + WORK_ORDER_DONE_BIT = 1, +}; + +struct btrfs_workqueue { + struct workqueue_struct *normal_wq; + struct btrfs_fs_info *fs_info; + struct list_head ordered_list; + spinlock_t list_lock; + atomic_t pending; + int limit_active; + int current_active; + int thresh; + unsigned int count; + spinlock_t thres_lock; +}; + +struct btrfs_ioctl_feature_flags { + __u64 compat_flags; + __u64 compat_ro_flags; + __u64 incompat_flags; +}; + +enum btrfs_err_code { + BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1, + BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2, + BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3, + BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4, + BTRFS_ERROR_DEV_TGT_REPLACE = 5, + BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6, + BTRFS_ERROR_DEV_ONLY_WRITABLE = 7, + BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8, + BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9, + BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10, +}; + +enum btrfs_feature_set { + FEAT_COMPAT = 0, + FEAT_COMPAT_RO = 1, + FEAT_INCOMPAT = 2, + FEAT_MAX = 3, +}; + +struct btrfs_ioctl_space_info { + __u64 flags; + __u64 total_bytes; + __u64 used_bytes; +}; + +struct btrfs_ioctl_space_args { + __u64 space_slots; + __u64 total_spaces; + struct btrfs_ioctl_space_info spaces[0]; +}; + +struct btrfs_ioctl_vol_args { + __s64 fd; + char name[4088]; +}; + +struct btrfs_ioctl_vol_args_v2 { + __s64 fd; + __u64 transid; + __u64 flags; + union { + struct { + __u64 size; + struct btrfs_qgroup_inherit __attribute__((btf_type_tag("user"))) *qgroup_inherit; + }; + __u64 unused[4]; + }; + union { + char name[4040]; + __u64 devid; + __u64 subvolid; + }; +}; + +struct btrfs_data_container; + +struct inode_fs_paths { + struct btrfs_path *btrfs_path; + struct btrfs_root *fs_root; + struct btrfs_data_container *fspath; +}; + +struct btrfs_data_container { + __u32 bytes_left; + __u32 bytes_missing; + __u32 elem_cnt; + __u32 elem_missed; + __u64 val[0]; +}; + +struct btrfs_ioctl_balance_args { + __u64 flags; + __u64 state; + struct btrfs_balance_args data; + struct btrfs_balance_args meta; + struct btrfs_balance_args sys; + struct btrfs_balance_progress stat; + __u64 unused[72]; +}; + +struct btrfs_ioctl_send_args { + __s64 send_fd; + __u64 clone_sources_count; + __u64 __attribute__((btf_type_tag("user"))) *clone_sources; + __u64 parent_root; + __u64 flags; + __u32 version; + __u8 reserved[28]; +}; + +struct btrfs_ioctl_get_dev_stats { + __u64 devid; + __u64 nr_items; + __u64 flags; + __u64 values[5]; + __u64 unused[121]; +}; + +struct btrfs_ioctl_quota_ctl_args { + __u64 cmd; + __u64 status; +}; + +struct btrfs_ioctl_ino_lookup_user_args { + __u64 dirid; + __u64 treeid; + char name[256]; + char path[3824]; +}; + +struct btrfs_ioctl_encoded_io_args { + const struct iovec __attribute__((btf_type_tag("user"))) *iov; + unsigned long iovcnt; + __s64 offset; + __u64 flags; + __u64 len; + __u64 unencoded_len; + __u64 unencoded_offset; + __u32 compression; + __u32 encryption; + __u8 reserved[64]; +}; + +struct btrfs_new_inode_args { + struct inode *dir; + struct dentry *dentry; + struct inode *inode; + bool orphan; + bool subvol; + struct posix_acl *default_acl; + struct posix_acl *acl; + struct fscrypt_name fname; +}; + +struct btrfs_ioctl_fs_info_args { + __u64 max_id; + __u64 num_devices; + __u8 fsid[16]; + __u32 nodesize; + __u32 sectorsize; + __u32 clone_alignment; + __u16 csum_type; + __u16 csum_size; + __u64 flags; + __u64 generation; + __u8 metadata_uuid[16]; + __u8 reserved[944]; +}; + +struct btrfs_ioctl_dev_info_args { + __u64 devid; + __u8 uuid[16]; + __u64 bytes_used; + __u64 total_bytes; + __u8 fsid[16]; + __u64 unused[377]; + __u8 path[1024]; +}; + +struct btrfs_ioctl_search_key { + __u64 tree_id; + __u64 min_objectid; + __u64 max_objectid; + __u64 min_offset; + __u64 max_offset; + __u64 min_transid; + __u64 max_transid; + __u32 min_type; + __u32 max_type; + __u32 nr_items; + __u32 unused; + __u64 unused1; + __u64 unused2; + __u64 unused3; + __u64 unused4; +}; + +struct btrfs_ioctl_search_args { + struct btrfs_ioctl_search_key key; + char buf[3992]; +}; + +struct btrfs_ioctl_search_args_v2 { + struct btrfs_ioctl_search_key key; + __u64 buf_size; + __u64 buf[0]; +}; + +struct btrfs_ioctl_ino_lookup_args { + __u64 treeid; + __u64 objectid; + char name[4080]; +}; + +struct btrfs_ioctl_ino_path_args { + __u64 inum; + __u64 size; + __u64 reserved[4]; + __u64 fspath; +}; + +struct btrfs_ioctl_logical_ino_args { + __u64 logical; + __u64 size; + __u64 reserved[3]; + __u64 flags; + __u64 inodes; +}; + +struct btrfs_ioctl_scrub_args { + __u64 devid; + __u64 start; + __u64 end; + __u64 flags; + struct btrfs_scrub_progress progress; + __u64 unused[109]; +}; + +struct btrfs_ioctl_timespec { + __u64 sec; + __u32 nsec; +}; + +struct btrfs_ioctl_received_subvol_args { + char uuid[16]; + __u64 stransid; + __u64 rtransid; + struct btrfs_ioctl_timespec stime; + struct btrfs_ioctl_timespec rtime; + __u64 flags; + __u64 reserved[16]; +}; + +struct btrfs_ioctl_timespec_32 { + __u64 sec; + __u32 nsec; +} __attribute__((packed)); + +struct btrfs_ioctl_received_subvol_args_32 { + char uuid[16]; + __u64 stransid; + __u64 rtransid; + struct btrfs_ioctl_timespec_32 stime; + struct btrfs_ioctl_timespec_32 rtime; + __u64 flags; + __u64 reserved[16]; +}; + +struct btrfs_ioctl_qgroup_assign_args { + __u64 assign; + __u64 src; + __u64 dst; +}; + +struct btrfs_ioctl_qgroup_create_args { + __u64 create; + __u64 qgroupid; +}; + +struct btrfs_ioctl_qgroup_limit_args { + __u64 qgroupid; + struct btrfs_qgroup_limit lim; +}; + +struct btrfs_ioctl_quota_rescan_args { + __u64 flags; + __u64 progress; + __u64 reserved[6]; +}; + +struct btrfs_ioctl_get_subvol_info_args { + __u64 treeid; + char name[256]; + __u64 parent_id; + __u64 dirid; + __u64 generation; + __u64 flags; + __u8 uuid[16]; + __u8 parent_uuid[16]; + __u8 received_uuid[16]; + __u64 ctransid; + __u64 otransid; + __u64 stransid; + __u64 rtransid; + struct btrfs_ioctl_timespec ctime; + struct btrfs_ioctl_timespec otime; + struct btrfs_ioctl_timespec stime; + struct btrfs_ioctl_timespec rtime; + __u64 reserved[8]; +}; + +struct btrfs_ioctl_get_subvol_rootref_args { + __u64 min_treeid; + struct { + __u64 treeid; + __u64 dirid; + } rootref[255]; + __u8 num_items; + __u8 align[7]; +}; + +struct btrfs_ioctl_search_header { + __u64 transid; + __u64 objectid; + __u64 offset; + __u32 type; + __u32 len; +}; + +typedef unsigned char u8___2; + +struct rand_data { + void *hash_state; + __u64 prev_time; + __u64 last_delta; + __s64 last_delta2; + unsigned int flags; + unsigned int osr; + unsigned char *mem; + unsigned int memlocation; + unsigned int memblocks; + unsigned int memblocksize; + unsigned int memaccessloops; + unsigned int rct_count; + unsigned int apt_cutoff; + unsigned int apt_cutoff_permanent; + unsigned int apt_observations; + unsigned int apt_count; + unsigned int apt_base; + unsigned int health_failure; + unsigned int apt_base_set: 1; +}; + +struct jitterentropy { + spinlock_t jent_lock; + struct rand_data *entropy_collector; + struct crypto_shash *tfm; + struct shash_desc *sdesc; +}; + +enum { + DIO_SHOULD_DIRTY = 1, + DIO_IS_SYNC = 2, +}; + +struct blkdev_dio { + union { + struct kiocb *iocb; + struct task_struct *waiter; + }; + size_t size; + atomic_t ref; + unsigned int flags; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bio bio; + long: 64; +}; + +typedef int (*pm_callback_t)(struct device *); + +struct iwl_power_vec_entry { + struct iwl_powertable_cmd cmd; + u8 no_dtim; +} __attribute__((packed)); + +enum iwl_power_level { + IWL_POWER_INDEX_1 = 0, + IWL_POWER_INDEX_2 = 1, + IWL_POWER_INDEX_3 = 2, + IWL_POWER_INDEX_4 = 3, + IWL_POWER_INDEX_5 = 4, + IWL_POWER_NUM = 5, +}; + +enum { + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, +}; + +enum { + ETHTOOL_A_PHC_VCLOCKS_UNSPEC = 0, + ETHTOOL_A_PHC_VCLOCKS_HEADER = 1, + ETHTOOL_A_PHC_VCLOCKS_NUM = 2, + ETHTOOL_A_PHC_VCLOCKS_INDEX = 3, + __ETHTOOL_A_PHC_VCLOCKS_CNT = 4, + ETHTOOL_A_PHC_VCLOCKS_MAX = 3, +}; + +struct phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; +}; + +enum nft_exthdr_attributes { + NFTA_EXTHDR_UNSPEC = 0, + NFTA_EXTHDR_DREG = 1, + NFTA_EXTHDR_TYPE = 2, + NFTA_EXTHDR_OFFSET = 3, + NFTA_EXTHDR_LEN = 4, + NFTA_EXTHDR_FLAGS = 5, + NFTA_EXTHDR_OP = 6, + NFTA_EXTHDR_SREG = 7, + __NFTA_EXTHDR_MAX = 8, +}; + +enum nft_exthdr_op { + NFT_EXTHDR_OP_IPV6 = 0, + NFT_EXTHDR_OP_TCPOPT = 1, + NFT_EXTHDR_OP_IPV4 = 2, + NFT_EXTHDR_OP_SCTP = 3, + NFT_EXTHDR_OP_DCCP = 4, + __NFT_EXTHDR_OP_MAX = 5, +}; + +enum nft_exthdr_flags { + NFT_EXTHDR_F_PRESENT = 1, +}; + +enum { + DCCPO_PADDING = 0, + DCCPO_MANDATORY = 1, + DCCPO_MIN_RESERVED = 3, + DCCPO_MAX_RESERVED = 31, + DCCPO_CHANGE_L = 32, + DCCPO_CONFIRM_L = 33, + DCCPO_CHANGE_R = 34, + DCCPO_CONFIRM_R = 35, + DCCPO_NDP_COUNT = 37, + DCCPO_ACK_VECTOR_0 = 38, + DCCPO_ACK_VECTOR_1 = 39, + DCCPO_TIMESTAMP = 41, + DCCPO_TIMESTAMP_ECHO = 42, + DCCPO_ELAPSED_TIME = 43, + DCCPO_MAX = 45, + DCCPO_MIN_RX_CCID_SPECIFIC = 128, + DCCPO_MAX_RX_CCID_SPECIFIC = 191, + DCCPO_MIN_TX_CCID_SPECIFIC = 192, + DCCPO_MAX_TX_CCID_SPECIFIC = 255, +}; + +enum dccp_pkt_type { + DCCP_PKT_REQUEST = 0, + DCCP_PKT_RESPONSE = 1, + DCCP_PKT_DATA = 2, + DCCP_PKT_ACK = 3, + DCCP_PKT_DATAACK = 4, + DCCP_PKT_CLOSEREQ = 5, + DCCP_PKT_CLOSE = 6, + DCCP_PKT_RESET = 7, + DCCP_PKT_SYNC = 8, + DCCP_PKT_SYNCACK = 9, + DCCP_PKT_INVALID = 10, +}; + +struct dccp_hdr { + __be16 dccph_sport; + __be16 dccph_dport; + __u8 dccph_doff; + __u8 dccph_cscov: 4; + __u8 dccph_ccval: 4; + __sum16 dccph_checksum; + __u8 dccph_x: 1; + __u8 dccph_type: 4; + __u8 dccph_reserved: 3; + __u8 dccph_seq2; + __be16 dccph_seq; +}; + +struct nft_exthdr { + u8 type; + u8 offset; + u8 len; + u8 op; + u8 dreg; + u8 sreg; + u8 flags; +}; + +struct sctp_chunkhdr { + __u8 type; + __u8 flags; + __be16 length; +}; + +struct iptable_nat_pernet { + struct nf_hook_ops *nf_nat_ops; +}; + +struct pcibios_fwaddrmap { + struct list_head list; + struct pci_dev *dev; + resource_size_t fw_addr[11]; +}; + +struct pci_check_idx_range { + int start; + int end; +}; + +struct x86_pmu_quirk { + struct x86_pmu_quirk *next; + void (*func)(); +}; + +union perf_capabilities { + struct { + u64 lbr_format: 6; + u64 pebs_trap: 1; + u64 pebs_arch_reg: 1; + u64 pebs_format: 4; + u64 smm_freeze: 1; + u64 full_width_write: 1; + u64 pebs_baseline: 1; + u64 perf_metrics: 1; + u64 pebs_output_pt_available: 1; + u64 pebs_timing_info: 1; + u64 anythread_deprecated: 1; + }; + u64 capabilities; +}; + +enum hybrid_cpu_type { + HYBRID_INTEL_NONE = 0, + HYBRID_INTEL_ATOM = 32, + HYBRID_INTEL_CORE = 64, +}; + +struct x86_hybrid_pmu; + +struct x86_pmu { + const char *name; + int version; + int (*handle_irq)(struct pt_regs *); + void (*disable_all)(); + void (*enable_all)(int); + void (*enable)(struct perf_event *); + void (*disable)(struct perf_event *); + void (*assign)(struct perf_event *, int); + void (*add)(struct perf_event *); + void (*del)(struct perf_event *); + void (*read)(struct perf_event *); + int (*set_period)(struct perf_event *); + u64 (*update)(struct perf_event *); + int (*hw_config)(struct perf_event *); + int (*schedule_events)(struct cpu_hw_events *, int, int *); + unsigned int eventsel; + unsigned int perfctr; + int (*addr_offset)(int, bool); + int (*rdpmc_index)(int); + u64 (*event_map)(int); + int max_events; + int num_counters; + int num_counters_fixed; + int cntval_bits; + u64 cntval_mask; + union { + unsigned long events_maskl; + unsigned long events_mask[1]; + }; + int events_mask_len; + int apic; + u64 max_period; + struct event_constraint * (*get_event_constraints)(struct cpu_hw_events *, int, struct perf_event *); + void (*put_event_constraints)(struct cpu_hw_events *, struct perf_event *); + void (*start_scheduling)(struct cpu_hw_events *); + void (*commit_scheduling)(struct cpu_hw_events *, int, int); + void (*stop_scheduling)(struct cpu_hw_events *); + struct event_constraint *event_constraints; + struct x86_pmu_quirk *quirks; + void (*limit_period)(struct perf_event *, s64 *); + unsigned int late_ack: 1; + unsigned int mid_ack: 1; + unsigned int enabled_ack: 1; + int attr_rdpmc_broken; + int attr_rdpmc; + struct attribute **format_attrs; + ssize_t (*events_sysfs_show)(char *, u64); + const struct attribute_group **attr_update; + unsigned long attr_freeze_on_smi; + int (*cpu_prepare)(int); + void (*cpu_starting)(int); + void (*cpu_dying)(int); + void (*cpu_dead)(int); + void (*check_microcode)(); + void (*sched_task)(struct perf_event_pmu_context *, bool); + u64 intel_ctrl; + union perf_capabilities intel_cap; + unsigned int bts: 1; + unsigned int bts_active: 1; + unsigned int pebs: 1; + unsigned int pebs_active: 1; + unsigned int pebs_broken: 1; + unsigned int pebs_prec_dist: 1; + unsigned int pebs_no_tlb: 1; + unsigned int pebs_no_isolation: 1; + unsigned int pebs_block: 1; + unsigned int pebs_ept: 1; + int pebs_record_size; + int pebs_buffer_size; + int max_pebs_events; + void (*drain_pebs)(struct pt_regs *, struct perf_sample_data *); + struct event_constraint *pebs_constraints; + void (*pebs_aliases)(struct perf_event *); + u64 (*pebs_latency_data)(struct perf_event *, u64); + unsigned long large_pebs_flags; + u64 rtm_abort_event; + u64 pebs_capable; + unsigned int lbr_tos; + unsigned int lbr_from; + unsigned int lbr_to; + unsigned int lbr_info; + unsigned int lbr_nr; + union { + u64 lbr_sel_mask; + u64 lbr_ctl_mask; + }; + union { + const int *lbr_sel_map; + int *lbr_ctl_map; + }; + bool lbr_double_abort; + bool lbr_pt_coexist; + unsigned int lbr_has_info: 1; + unsigned int lbr_has_tsx: 1; + unsigned int lbr_from_flags: 1; + unsigned int lbr_to_cycles: 1; + unsigned int lbr_depth_mask: 8; + unsigned int lbr_deep_c_reset: 1; + unsigned int lbr_lip: 1; + unsigned int lbr_cpl: 1; + unsigned int lbr_filter: 1; + unsigned int lbr_call_stack: 1; + unsigned int lbr_mispred: 1; + unsigned int lbr_timed_lbr: 1; + unsigned int lbr_br_type: 1; + unsigned int lbr_counters: 4; + void (*lbr_reset)(); + void (*lbr_read)(struct cpu_hw_events *); + void (*lbr_save)(void *); + void (*lbr_restore)(void *); + atomic_t lbr_exclusive[3]; + int num_topdown_events; + void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); + unsigned int amd_nb_constraints: 1; + u64 perf_ctr_pair_en; + struct extra_reg *extra_regs; + unsigned int flags; + struct perf_guest_switch_msr * (*guest_get_msrs)(int *, void *); + int (*check_period)(struct perf_event *, u64); + int (*aux_output_match)(struct perf_event *); + void (*filter)(struct pmu *, int, bool *); + int num_hybrid_pmus; + struct x86_hybrid_pmu *hybrid_pmu; + enum hybrid_cpu_type (*get_hybrid_cpu_type)(); +}; + +enum hybrid_pmu_type { + not_hybrid = 0, + hybrid_small = 1, + hybrid_big = 2, + hybrid_big_small = 3, +}; + +struct x86_hybrid_pmu { + struct pmu pmu; + const char *name; + enum hybrid_pmu_type pmu_type; + cpumask_t supported_cpus; + union perf_capabilities intel_cap; + u64 intel_ctrl; + int max_pebs_events; + int num_counters; + int num_counters_fixed; + struct event_constraint unconstrained; + u64 hw_cache_event_ids[42]; + u64 hw_cache_extra_regs[42]; + struct event_constraint *event_constraints; + struct event_constraint *pebs_constraints; + struct extra_reg *extra_regs; + unsigned int late_ack: 1; + unsigned int mid_ack: 1; + unsigned int enabled_ack: 1; + u64 pebs_data_source[16]; +}; + +struct perf_pmu_events_ht_attr { + struct device_attribute attr; + u64 id; + const char *event_str_ht; + const char *event_str_noht; +}; + +struct perf_pmu_events_hybrid_attr { + struct device_attribute attr; + u64 id; + const char *event_str; + u64 pmu_type; +}; + +struct perf_pmu_format_hybrid_attr { + struct device_attribute attr; + u64 pmu_type; +}; + +enum perf_hw_cache_id { + PERF_COUNT_HW_CACHE_L1D = 0, + PERF_COUNT_HW_CACHE_L1I = 1, + PERF_COUNT_HW_CACHE_LL = 2, + PERF_COUNT_HW_CACHE_DTLB = 3, + PERF_COUNT_HW_CACHE_ITLB = 4, + PERF_COUNT_HW_CACHE_BPU = 5, + PERF_COUNT_HW_CACHE_NODE = 6, + PERF_COUNT_HW_CACHE_MAX = 7, +}; + +enum perf_hw_cache_op_id { + PERF_COUNT_HW_CACHE_OP_READ = 0, + PERF_COUNT_HW_CACHE_OP_WRITE = 1, + PERF_COUNT_HW_CACHE_OP_PREFETCH = 2, + PERF_COUNT_HW_CACHE_OP_MAX = 3, +}; + +enum perf_hw_cache_op_result_id { + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0, + PERF_COUNT_HW_CACHE_RESULT_MISS = 1, + PERF_COUNT_HW_CACHE_RESULT_MAX = 2, +}; + +enum { + x86_lbr_exclusive_lbr = 0, + x86_lbr_exclusive_bts = 1, + x86_lbr_exclusive_pt = 2, + x86_lbr_exclusive_max = 3, +}; + +enum pmc_type { + KVM_PMC_GP = 0, + KVM_PMC_FIXED = 1, +}; + +enum kvm_apic_logical_mode { + KVM_APIC_MODE_SW_DISABLED = 0, + KVM_APIC_MODE_XAPIC_CLUSTER = 1, + KVM_APIC_MODE_XAPIC_FLAT = 2, + KVM_APIC_MODE_X2APIC = 3, + KVM_APIC_MODE_MAP_DISABLED = 4, +}; + +enum kvm_irqchip_mode { + KVM_IRQCHIP_NONE = 0, + KVM_IRQCHIP_KERNEL = 1, + KVM_IRQCHIP_SPLIT = 2, +}; + +enum kvm_stat_kind { + KVM_STAT_VM = 0, + KVM_STAT_VCPU = 1, +}; + +struct kvm_vcpu; + +struct kvm_pmc { + enum pmc_type type; + u8 idx; + bool is_paused; + bool intr; + u64 counter; + u64 emulated_counter; + u64 eventsel; + struct perf_event *perf_event; + struct kvm_vcpu *vcpu; + u64 current_config; +}; + +struct kvm_pmu { + u8 version; + unsigned int nr_arch_gp_counters; + unsigned int nr_arch_fixed_counters; + unsigned int available_event_types; + u64 fixed_ctr_ctrl; + u64 fixed_ctr_ctrl_mask; + u64 global_ctrl; + u64 global_status; + u64 counter_bitmask[2]; + u64 global_ctrl_mask; + u64 global_status_mask; + u64 reserved_bits; + u64 raw_event_mask; + struct kvm_pmc gp_counters[8]; + struct kvm_pmc fixed_counters[3]; + union { + unsigned long reprogram_pmi[1]; + atomic64_t __reprogram_pmi; + }; + unsigned long all_valid_pmc_idx[1]; + unsigned long pmc_in_use[1]; + u64 ds_area; + u64 pebs_enable; + u64 pebs_enable_mask; + u64 pebs_data_cfg; + u64 pebs_data_cfg_mask; + u64 host_cross_mapped_mask; + bool need_cleanup; + u8 event_count; +}; + +typedef u64 gpa_t; + +struct kvm_mmio_fragment { + gpa_t gpa; + void *data; + unsigned int len; +}; + +struct kvm_lapic; + +struct kvm_page_fault; + +struct x86_exception; + +struct kvm_mmu_page; + +typedef u64 hpa_t; + +struct kvm_mmu_root_info { + gpa_t pgd; + hpa_t hpa; +}; + +union kvm_mmu_page_role { + u32 word; + struct { + unsigned int level: 4; + unsigned int has_4_byte_gpte: 1; + unsigned int quadrant: 2; + unsigned int direct: 1; + unsigned int access: 3; + unsigned int invalid: 1; + unsigned int efer_nx: 1; + unsigned int cr0_wp: 1; + unsigned int smep_andnot_wp: 1; + unsigned int smap_andnot_wp: 1; + unsigned int ad_disabled: 1; + unsigned int guest_mode: 1; + unsigned int passthrough: 1; + char: 5; + unsigned int smm: 8; + }; +}; + +union kvm_mmu_extended_role { + u32 word; + struct { + unsigned int valid: 1; + unsigned int execonly: 1; + unsigned int cr4_pse: 1; + unsigned int cr4_pke: 1; + unsigned int cr4_smap: 1; + unsigned int cr4_smep: 1; + unsigned int cr4_la57: 1; + unsigned int efer_lma: 1; + }; +}; + +union kvm_cpu_role { + u64 as_u64; + struct { + union kvm_mmu_page_role base; + union kvm_mmu_extended_role ext; + }; +}; + +struct rsvd_bits_validate { + u64 rsvd_bits_mask[10]; + u64 bad_mt_xwr; +}; + +struct kvm_mmu { + unsigned long (*get_guest_pgd)(struct kvm_vcpu *); + u64 (*get_pdptr)(struct kvm_vcpu *, int); + int (*page_fault)(struct kvm_vcpu *, struct kvm_page_fault *); + void (*inject_page_fault)(struct kvm_vcpu *, struct x86_exception *); + gpa_t (*gva_to_gpa)(struct kvm_vcpu *, struct kvm_mmu *, gpa_t, u64, struct x86_exception *); + int (*sync_spte)(struct kvm_vcpu *, struct kvm_mmu_page *, int); + struct kvm_mmu_root_info root; + union kvm_cpu_role cpu_role; + union kvm_mmu_page_role root_role; + u32 pkru_mask; + struct kvm_mmu_root_info prev_roots[3]; + u8 permissions[16]; + u64 *pae_root; + u64 *pml4_root; + u64 *pml5_root; + struct rsvd_bits_validate shadow_zero_check; + struct rsvd_bits_validate guest_rsvd_check; + u64 pdptrs[4]; +}; + +struct kvm_mmu_memory_cache { + gfp_t gfp_zero; + gfp_t gfp_custom; + struct kmem_cache *kmem_cache; + int capacity; + int nobjs; + void **objects; +}; + +struct kvm_pio_request { + unsigned long linear_rip; + unsigned long count; + int in; + int port; + int size; +}; + +struct kvm_queued_exception { + bool pending; + bool injected; + bool has_error_code; + u8 vector; + u32 error_code; + unsigned long payload; + bool has_payload; +}; + +struct kvm_queued_interrupt { + bool injected; + bool soft; + u8 nr; +}; + +struct kvm_hypervisor_cpuid { + u32 base; + u32 limit; +}; + +struct x86_emulate_ctxt; + +struct pvclock_vcpu_time_info { + u32 version; + u32 pad0; + u64 tsc_timestamp; + u64 system_time; + u32 tsc_to_system_mul; + s8 tsc_shift; + u8 flags; + u8 pad[2]; +}; + +typedef u64 hfn_t; + +typedef hfn_t kvm_pfn_t; + +struct kvm_memory_slot; + +struct kvm; + +struct gfn_to_pfn_cache { + u64 generation; + gpa_t gpa; + unsigned long uhva; + struct kvm_memory_slot *memslot; + struct kvm *kvm; + struct list_head list; + rwlock_t lock; + struct mutex refresh_lock; + void *khva; + kvm_pfn_t pfn; + bool active; + bool valid; +}; + +struct gfn_to_hva_cache { + u64 generation; + gpa_t gpa; + unsigned long hva; + unsigned long len; + struct kvm_memory_slot *memslot; +}; + +struct kvm_mtrr_range { + u64 base; + u64 mask; + struct list_head node; +}; + +struct kvm_mtrr { + struct kvm_mtrr_range var_ranges[8]; + mtrr_type fixed_ranges[88]; + u64 deftype; + struct list_head head; +}; + +typedef u64 gfn_t; + +struct kvm_cpuid_entry2; + +struct kvm_vcpu_arch { + unsigned long regs[17]; + u32 regs_avail; + u32 regs_dirty; + unsigned long cr0; + unsigned long cr0_guest_owned_bits; + unsigned long cr2; + unsigned long cr3; + unsigned long cr4; + unsigned long cr4_guest_owned_bits; + unsigned long cr4_guest_rsvd_bits; + unsigned long cr8; + u32 host_pkru; + u32 pkru; + u32 hflags; + u64 efer; + u64 apic_base; + struct kvm_lapic *apic; + bool load_eoi_exitmap_pending; + unsigned long ioapic_handled_vectors[4]; + unsigned long apic_attention; + int32_t apic_arb_prio; + int mp_state; + u64 ia32_misc_enable_msr; + u64 smbase; + u64 smi_count; + bool at_instruction_boundary; + bool tpr_access_reporting; + bool xfd_no_write_intercept; + u64 ia32_xss; + u64 microcode_version; + u64 arch_capabilities; + u64 perf_capabilities; + struct kvm_mmu *mmu; + struct kvm_mmu root_mmu; + struct kvm_mmu guest_mmu; + struct kvm_mmu nested_mmu; + struct kvm_mmu *walk_mmu; + struct kvm_mmu_memory_cache mmu_pte_list_desc_cache; + struct kvm_mmu_memory_cache mmu_shadow_page_cache; + struct kvm_mmu_memory_cache mmu_shadowed_info_cache; + struct kvm_mmu_memory_cache mmu_page_header_cache; + struct fpu_guest guest_fpu; + u64 xcr0; + u64 guest_supported_xcr0; + struct kvm_pio_request pio; + void *pio_data; + void *sev_pio_data; + unsigned int sev_pio_count; + u8 event_exit_inst_len; + bool exception_from_userspace; + struct kvm_queued_exception exception; + struct kvm_queued_exception exception_vmexit; + struct kvm_queued_interrupt interrupt; + int halt_request; + int cpuid_nent; + struct kvm_cpuid_entry2 *cpuid_entries; + struct kvm_hypervisor_cpuid kvm_cpuid; + struct { + unsigned long enabled[1]; + } governed_features; + u64 reserved_gpa_bits; + int maxphyaddr; + struct x86_emulate_ctxt *emulate_ctxt; + bool emulate_regs_need_sync_to_vcpu; + bool emulate_regs_need_sync_from_vcpu; + int (*complete_userspace_io)(struct kvm_vcpu *); + gpa_t time; + struct pvclock_vcpu_time_info hv_clock; + unsigned int hw_tsc_khz; + struct gfn_to_pfn_cache pv_time; + bool pvclock_set_guest_stopped_request; + struct { + u8 preempted; + u64 msr_val; + u64 last_steal; + struct gfn_to_hva_cache cache; + } st; + u64 l1_tsc_offset; + u64 tsc_offset; + u64 last_guest_tsc; + u64 last_host_tsc; + u64 tsc_offset_adjustment; + u64 this_tsc_nsec; + u64 this_tsc_write; + u64 this_tsc_generation; + bool tsc_catchup; + bool tsc_always_catchup; + s8 virtual_tsc_shift; + u32 virtual_tsc_mult; + u32 virtual_tsc_khz; + s64 ia32_tsc_adjust_msr; + u64 msr_ia32_power_ctl; + u64 l1_tsc_scaling_ratio; + u64 tsc_scaling_ratio; + atomic_t nmi_queued; + unsigned int nmi_pending; + bool nmi_injected; + bool smi_pending; + u8 handling_intr_from_guest; + struct kvm_mtrr mtrr_state; + u64 pat; + unsigned int switch_db_regs; + unsigned long db[4]; + unsigned long dr6; + unsigned long dr7; + unsigned long eff_db[4]; + unsigned long guest_debug_dr7; + u64 msr_platform_info; + u64 msr_misc_features_enables; + u64 mcg_cap; + u64 mcg_status; + u64 mcg_ctl; + u64 mcg_ext_ctl; + u64 *mce_banks; + u64 *mci_ctl2_banks; + u64 mmio_gva; + unsigned int mmio_access; + gfn_t mmio_gfn; + u64 mmio_gen; + struct kvm_pmu pmu; + unsigned long singlestep_rip; + cpumask_var_t wbinvd_dirty_mask; + unsigned long last_retry_eip; + unsigned long last_retry_addr; + struct { + bool halted; + gfn_t gfns[64]; + struct gfn_to_hva_cache data; + u64 msr_en_val; + u64 msr_int_val; + u16 vec; + u32 id; + bool send_user_only; + u32 host_apf_flags; + bool delivery_as_pf_vmexit; + bool pageready_pending; + } apf; + struct { + u64 length; + u64 status; + } osvw; + struct { + u64 msr_val; + struct gfn_to_hva_cache data; + } pv_eoi; + u64 msr_kvm_poll_control; + unsigned long exit_qualification; + struct { + bool pv_unhalted; + } pv; + int pending_ioapic_eoi; + int pending_external_vector; + bool preempted_in_kernel; + bool l1tf_flush_l1d; + int last_vmentry_cpu; + u64 msr_hwcr; + struct { + u32 features; + bool enforce; + } pv_cpuid; + bool guest_state_protected; + bool pdptrs_from_userspace; +}; + +struct kvm_vcpu_stat_generic { + u64 halt_successful_poll; + u64 halt_attempted_poll; + u64 halt_poll_invalid; + u64 halt_wakeup; + u64 halt_poll_success_ns; + u64 halt_poll_fail_ns; + u64 halt_wait_ns; + u64 halt_poll_success_hist[32]; + u64 halt_poll_fail_hist[32]; + u64 halt_wait_hist[32]; + u64 blocking; +}; + +struct kvm_vcpu_stat { + struct kvm_vcpu_stat_generic generic; + u64 pf_taken; + u64 pf_fixed; + u64 pf_emulate; + u64 pf_spurious; + u64 pf_fast; + u64 pf_mmio_spte_created; + u64 pf_guest; + u64 tlb_flush; + u64 invlpg; + u64 exits; + u64 io_exits; + u64 mmio_exits; + u64 signal_exits; + u64 irq_window_exits; + u64 nmi_window_exits; + u64 l1d_flush; + u64 halt_exits; + u64 request_irq_exits; + u64 irq_exits; + u64 host_state_reload; + u64 fpu_reload; + u64 insn_emulation; + u64 insn_emulation_fail; + u64 hypercalls; + u64 irq_injections; + u64 nmi_injections; + u64 req_event; + u64 nested_run; + u64 directed_yield_attempted; + u64 directed_yield_successful; + u64 preemption_reported; + u64 preemption_other; + u64 guest_mode; + u64 notify_window_exits; +}; + +struct kvm_dirty_gfn; + +struct kvm_dirty_ring { + u32 dirty_index; + u32 reset_index; + u32 size; + u32 soft_limit; + struct kvm_dirty_gfn *dirty_gfns; + int index; +}; + +struct kvm_run; + +struct kvm_vcpu { + struct kvm *kvm; + int cpu; + int vcpu_id; + int vcpu_idx; + int ____srcu_idx; + int srcu_depth; + int mode; + u64 requests; + unsigned long guest_debug; + struct mutex mutex; + struct kvm_run *run; + struct rcuwait wait; + struct pid __attribute__((btf_type_tag("rcu"))) *pid; + int sigset_active; + sigset_t sigset; + unsigned int halt_poll_ns; + bool valid_wakeup; + int mmio_needed; + int mmio_read_completed; + int mmio_is_write; + int mmio_cur_fragment; + int mmio_nr_fragments; + struct kvm_mmio_fragment mmio_fragments[2]; + bool preempted; + bool ready; + struct kvm_vcpu_arch arch; + struct kvm_vcpu_stat stat; + char stats_id[48]; + struct kvm_dirty_ring dirty_ring; + struct kvm_memory_slot *last_used_slot; + u64 last_used_slot_gen; +}; + +struct kvm_memslots { + u64 generation; + atomic_long_t last_used_slot; + struct rb_root_cached hva_tree; + struct rb_root gfn_tree; + struct hlist_head id_hash[128]; + int node_idx; +}; + +struct kvm_vm_stat_generic { + u64 remote_tlb_flush; + u64 remote_tlb_flush_requests; +}; + +struct kvm_vm_stat { + struct kvm_vm_stat_generic generic; + u64 mmu_shadow_zapped; + u64 mmu_pte_write; + u64 mmu_pde_zapped; + u64 mmu_flooded; + u64 mmu_recycled; + u64 mmu_cache_miss; + u64 mmu_unsync; + union { + struct { + atomic64_t pages_4k; + atomic64_t pages_2m; + atomic64_t pages_1g; + }; + atomic64_t pages[3]; + }; + u64 nx_lpage_splits; + u64 max_mmu_page_hash_collisions; + u64 max_mmu_rmap_size; +}; + +struct iommu_domain; + +struct kvm_pic; + +struct kvm_ioapic; + +struct kvm_pit; + +struct kvm_xen_hvm_config { + __u32 flags; + __u32 msr; + __u64 blob_addr_32; + __u64 blob_addr_64; + __u8 blob_size_32; + __u8 blob_size_64; + __u8 pad2[30]; +}; + +struct kvm_apic_map; + +struct kvm_x86_msr_filter; + +struct kvm_x86_pmu_event_filter; + +struct kvm_arch { + unsigned long vm_type; + unsigned long n_used_mmu_pages; + unsigned long n_requested_mmu_pages; + unsigned long n_max_mmu_pages; + unsigned int indirect_shadow_pages; + u8 mmu_valid_gen; + struct hlist_head mmu_page_hash[4096]; + struct list_head active_mmu_pages; + struct list_head zapped_obsolete_pages; + struct list_head possible_nx_huge_pages; + spinlock_t mmu_unsync_pages_lock; + struct iommu_domain *iommu_domain; + bool iommu_noncoherent; + atomic_t noncoherent_dma_count; + atomic_t assigned_device_count; + struct kvm_pic *vpic; + struct kvm_ioapic *vioapic; + struct kvm_pit *vpit; + atomic_t vapics_in_nmi_mode; + struct mutex apic_map_lock; + struct kvm_apic_map __attribute__((btf_type_tag("rcu"))) *apic_map; + atomic_t apic_map_dirty; + bool apic_access_memslot_enabled; + bool apic_access_memslot_inhibited; + struct rw_semaphore apicv_update_lock; + unsigned long apicv_inhibit_reasons; + gpa_t wall_clock; + bool mwait_in_guest; + bool hlt_in_guest; + bool pause_in_guest; + bool cstate_in_guest; + unsigned long irq_sources_bitmap; + s64 kvmclock_offset; + raw_spinlock_t tsc_write_lock; + u64 last_tsc_nsec; + u64 last_tsc_write; + u32 last_tsc_khz; + u64 last_tsc_offset; + u64 cur_tsc_nsec; + u64 cur_tsc_write; + u64 cur_tsc_offset; + u64 cur_tsc_generation; + int nr_vcpus_matched_tsc; + u32 default_tsc_khz; + bool user_set_tsc; + seqcount_raw_spinlock_t pvclock_sc; + bool use_master_clock; + u64 master_kernel_ns; + u64 master_cycle_now; + struct delayed_work kvmclock_update_work; + struct delayed_work kvmclock_sync_work; + struct kvm_xen_hvm_config xen_hvm_config; + struct hlist_head mask_notifier_list; + bool backwards_tsc_observed; + bool boot_vcpu_runs_old_kvmclock; + u32 bsp_vcpu_id; + u64 disabled_quirks; + enum kvm_irqchip_mode irqchip_mode; + u8 nr_reserved_ioapic_pins; + bool disabled_lapic_found; + bool x2apic_format; + bool x2apic_broadcast_quirk_disabled; + bool guest_can_read_msr_platform_info; + bool exception_payload_enabled; + bool triple_fault_event; + bool bus_lock_detection_enabled; + bool enable_pmu; + u32 notify_window; + u32 notify_vmexit_flags; + bool exit_on_emulation_error; + u32 user_space_msr_mask; + struct kvm_x86_msr_filter __attribute__((btf_type_tag("rcu"))) *msr_filter; + u32 hypercall_exit_enabled; + bool sgx_provisioning_allowed; + struct kvm_x86_pmu_event_filter __attribute__((btf_type_tag("rcu"))) *pmu_event_filter; + struct task_struct *nx_huge_page_recovery_thread; + atomic64_t tdp_mmu_pages; + struct list_head tdp_mmu_roots; + spinlock_t tdp_mmu_pages_lock; + bool shadow_root_allocated; + u32 max_vcpu_ids; + bool disable_nx_huge_pages; + struct kvm_mmu_memory_cache split_shadow_page_cache; + struct kvm_mmu_memory_cache split_page_header_cache; + struct kvm_mmu_memory_cache split_desc_cache; +}; + +struct kvm_io_bus; + +struct kvm_stat_data; + +struct kvm { + rwlock_t mmu_lock; + struct mutex slots_lock; + struct mutex slots_arch_lock; + struct mm_struct *mm; + unsigned long nr_memslot_pages; + struct kvm_memslots __memslots[2]; + struct kvm_memslots __attribute__((btf_type_tag("rcu"))) *memslots[1]; + struct xarray vcpu_array; + atomic_t nr_memslots_dirty_logging; + spinlock_t mn_invalidate_lock; + unsigned long mn_active_invalidate_count; + struct rcuwait mn_memslots_update_rcuwait; + spinlock_t gpc_lock; + struct list_head gpc_list; + atomic_t online_vcpus; + int max_vcpus; + int created_vcpus; + int last_boosted_vcpu; + struct list_head vm_list; + struct mutex lock; + struct kvm_io_bus __attribute__((btf_type_tag("rcu"))) *buses[4]; + struct list_head ioeventfds; + struct kvm_vm_stat stat; + struct kvm_arch arch; + refcount_t users_count; + struct mutex irq_lock; + struct list_head devices; + u64 manual_dirty_log_protect; + struct dentry *debugfs_dentry; + struct kvm_stat_data **debugfs_stat_data; + struct srcu_struct srcu; + struct srcu_struct irq_srcu; + pid_t userspace_pid; + bool override_halt_poll_ns; + unsigned int max_halt_poll_ns; + u32 dirty_ring_size; + bool dirty_ring_with_bitmap; + bool vm_bugged; + bool vm_dead; + char stats_id[48]; +}; + +struct kvm_io_device; + +struct kvm_io_range { + gpa_t addr; + int len; + struct kvm_io_device *dev; +}; + +struct kvm_io_bus { + int dev_count; + int ioeventfd_count; + struct kvm_io_range range[0]; +}; + +struct kvm_apic_map { + struct callback_head rcu; + enum kvm_apic_logical_mode logical_mode; + u32 max_apic_id; + union { + struct kvm_lapic *xapic_flat_map[8]; + struct kvm_lapic *xapic_cluster_map[64]; + }; + struct kvm_lapic *phys_map[0]; +}; + +struct msr_bitmap_range { + u32 flags; + u32 nmsrs; + u32 base; + unsigned long *bitmap; +}; + +struct kvm_x86_msr_filter { + u8 count; + bool default_allow: 1; + struct msr_bitmap_range ranges[16]; +}; + +struct kvm_x86_pmu_event_filter { + __u32 action; + __u32 nevents; + __u32 fixed_counter_bitmap; + __u32 flags; + __u32 nr_includes; + __u32 nr_excludes; + __u64 *includes; + __u64 *excludes; + __u64 events[0]; +}; + +struct _kvm_stats_desc; + +struct kvm_stat_data { + struct kvm *kvm; + const struct _kvm_stats_desc *desc; + enum kvm_stat_kind kind; +}; + +struct kvm_stats_desc { + __u32 flags; + __s16 exponent; + __u16 size; + __u32 offset; + __u32 bucket_size; + char name[0]; +}; + +struct _kvm_stats_desc { + struct kvm_stats_desc desc; + char name[48]; +}; + +struct kvm_debug_exit_arch { + __u32 exception; + __u32 pad; + __u64 pc; + __u64 dr6; + __u64 dr7; +}; + +struct kvm_hyperv_exit { + __u32 type; + __u32 pad1; + union { + struct { + __u32 msr; + __u32 pad2; + __u64 control; + __u64 evt_page; + __u64 msg_page; + } synic; + struct { + __u64 input; + __u64 result; + __u64 params[2]; + } hcall; + struct { + __u32 msr; + __u32 pad2; + __u64 control; + __u64 status; + __u64 send_page; + __u64 recv_page; + __u64 pending_page; + } syndbg; + } u; +}; + +struct kvm_xen_exit { + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; +}; + +struct kvm_regs { + __u64 rax; + __u64 rbx; + __u64 rcx; + __u64 rdx; + __u64 rsi; + __u64 rdi; + __u64 rsp; + __u64 rbp; + __u64 r8; + __u64 r9; + __u64 r10; + __u64 r11; + __u64 r12; + __u64 r13; + __u64 r14; + __u64 r15; + __u64 rip; + __u64 rflags; +}; + +struct kvm_segment { + __u64 base; + __u32 limit; + __u16 selector; + __u8 type; + __u8 present; + __u8 dpl; + __u8 db; + __u8 s; + __u8 l; + __u8 g; + __u8 avl; + __u8 unusable; + __u8 padding; +}; + +struct kvm_dtable { + __u64 base; + __u16 limit; + __u16 padding[3]; +}; + +struct kvm_sregs { + struct kvm_segment cs; + struct kvm_segment ds; + struct kvm_segment es; + struct kvm_segment fs; + struct kvm_segment gs; + struct kvm_segment ss; + struct kvm_segment tr; + struct kvm_segment ldt; + struct kvm_dtable gdt; + struct kvm_dtable idt; + __u64 cr0; + __u64 cr2; + __u64 cr3; + __u64 cr4; + __u64 cr8; + __u64 efer; + __u64 apic_base; + __u64 interrupt_bitmap[4]; +}; + +struct kvm_vcpu_events { + struct { + __u8 injected; + __u8 nr; + __u8 has_error_code; + __u8 pending; + __u32 error_code; + } exception; + struct { + __u8 injected; + __u8 nr; + __u8 soft; + __u8 shadow; + } interrupt; + struct { + __u8 injected; + __u8 pending; + __u8 masked; + __u8 pad; + } nmi; + __u32 sipi_vector; + __u32 flags; + struct { + __u8 smm; + __u8 pending; + __u8 smm_inside_nmi; + __u8 latched_init; + } smi; + struct { + __u8 pending; + } triple_fault; + __u8 reserved[26]; + __u8 exception_has_payload; + __u64 exception_payload; +}; + +struct kvm_sync_regs { + struct kvm_regs regs; + struct kvm_sregs sregs; + struct kvm_vcpu_events events; +}; + +struct kvm_run { + __u8 request_interrupt_window; + __u8 immediate_exit; + __u8 padding1[6]; + __u32 exit_reason; + __u8 ready_for_interrupt_injection; + __u8 if_flag; + __u16 flags; + __u64 cr8; + __u64 apic_base; + union { + struct { + __u64 hardware_exit_reason; + } hw; + struct { + __u64 hardware_entry_failure_reason; + __u32 cpu; + } fail_entry; + struct { + __u32 exception; + __u32 error_code; + } ex; + struct { + __u8 direction; + __u8 size; + __u16 port; + __u32 count; + __u64 data_offset; + } io; + struct { + struct kvm_debug_exit_arch arch; + } debug; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } mmio; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } iocsr_io; + struct { + __u64 nr; + __u64 args[6]; + __u64 ret; + union { + __u64 flags; + }; + } hypercall; + struct { + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; + struct { + __u8 icptcode; + __u16 ipa; + __u32 ipb; + } s390_sieic; + __u64 s390_reset_flags; + struct { + __u64 trans_exc_code; + __u32 pgm_code; + } s390_ucontrol; + struct { + __u32 dcrn; + __u32 data; + __u8 is_write; + } dcr; + struct { + __u32 suberror; + __u32 ndata; + __u64 data[16]; + } internal; + struct { + __u32 suberror; + __u32 ndata; + __u64 flags; + union { + struct { + __u8 insn_size; + __u8 insn_bytes[15]; + }; + }; + } emulation_failure; + struct { + __u64 gprs[32]; + } osi; + struct { + __u64 nr; + __u64 ret; + __u64 args[9]; + } papr_hcall; + struct { + __u16 subchannel_id; + __u16 subchannel_nr; + __u32 io_int_parm; + __u32 io_int_word; + __u32 ipb; + __u8 dequeued; + } s390_tsch; + struct { + __u32 epr; + } epr; + struct { + __u32 type; + __u32 ndata; + union { + __u64 data[16]; + }; + } system_event; + struct { + __u64 addr; + __u8 ar; + __u8 reserved; + __u8 fc; + __u8 sel1; + __u16 sel2; + } s390_stsi; + struct { + __u8 vector; + } eoi; + struct kvm_hyperv_exit hyperv; + struct { + __u64 esr_iss; + __u64 fault_ipa; + } arm_nisv; + struct { + __u8 error; + __u8 pad[7]; + __u32 reason; + __u32 index; + __u64 data; + } msr; + struct kvm_xen_exit xen; + struct { + unsigned long extension_id; + unsigned long function_id; + unsigned long args[6]; + unsigned long ret[2]; + } riscv_sbi; + struct { + unsigned long csr_num; + unsigned long new_value; + unsigned long write_mask; + unsigned long ret_value; + } riscv_csr; + struct { + __u32 flags; + } notify; + struct { + __u64 flags; + __u64 gpa; + __u64 size; + } memory_fault; + char padding[256]; + }; + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; + union { + struct kvm_sync_regs regs; + char padding[2048]; + } s; +}; + +struct kvm_cpuid_entry2 { + __u32 function; + __u32 index; + __u32 flags; + __u32 eax; + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 padding[3]; +}; + +struct interval_tree_node { + struct rb_node rb; + unsigned long start; + unsigned long last; + unsigned long __subtree_last; +}; + +struct kvm_rmap_head; + +struct kvm_lpage_info; + +struct kvm_arch_memory_slot { + struct kvm_rmap_head *rmap[3]; + struct kvm_lpage_info *lpage_info[2]; + unsigned short *gfn_write_track; +}; + +struct kvm_memory_slot { + struct hlist_node id_node[2]; + struct interval_tree_node hva_node[2]; + struct rb_node gfn_node[2]; + gfn_t base_gfn; + unsigned long npages; + unsigned long *dirty_bitmap; + struct kvm_arch_memory_slot arch; + unsigned long userspace_addr; + u32 flags; + short id; + u16 as_id; +}; + +struct kvm_rmap_head { + unsigned long val; +}; + +struct kvm_lpage_info { + int disallow_lpage; +}; + +struct kvm_dirty_gfn { + __u32 flags; + __u32 slot; + __u64 offset; +}; + +union cpuid10_eax { + struct { + unsigned int version_id: 8; + unsigned int num_counters: 8; + unsigned int bit_width: 8; + unsigned int mask_length: 8; + } split; + unsigned int full; +}; + +union cpuid10_ebx { + struct { + unsigned int no_unhalted_core_cycles: 1; + unsigned int no_instructions_retired: 1; + unsigned int no_unhalted_reference_cycles: 1; + unsigned int no_llc_reference: 1; + unsigned int no_llc_misses: 1; + unsigned int no_branch_instruction_retired: 1; + unsigned int no_branch_misses_retired: 1; + } split; + unsigned int full; +}; + +union cpuid10_edx { + struct { + unsigned int num_counters_fixed: 5; + unsigned int bit_width_fixed: 8; + unsigned int reserved1: 2; + unsigned int anythread_deprecated: 1; + unsigned int reserved2: 16; + } split; + unsigned int full; +}; + +typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int); + +struct mcs_spinlock { + struct mcs_spinlock *next; + int locked; + int count; +}; + +struct qnode { + struct mcs_spinlock mcs; +}; + +struct nbcon_state { + union { + unsigned int atom; + struct { + unsigned int prio: 2; + unsigned int req_prio: 2; + unsigned int unsafe: 1; + unsigned int unsafe_takeover: 1; + unsigned int cpu: 24; + }; + }; +}; + +struct fmeter { + int cnt; + int val; + time64_t time; + spinlock_t lock; +}; + +enum prs_errcode { + PERR_NONE = 0, + PERR_INVCPUS = 1, + PERR_INVPARENT = 2, + PERR_NOTPART = 3, + PERR_NOTEXCL = 4, + PERR_NOCPUS = 5, + PERR_HOTPLUG = 6, + PERR_CPUSEMPTY = 7, + PERR_HKEEPING = 8, +}; + +struct cpuset { + struct cgroup_subsys_state css; + unsigned long flags; + cpumask_var_t cpus_allowed; + nodemask_t mems_allowed; + cpumask_var_t effective_cpus; + nodemask_t effective_mems; + cpumask_var_t effective_xcpus; + cpumask_var_t exclusive_cpus; + nodemask_t old_mems_allowed; + struct fmeter fmeter; + int attach_in_progress; + int pn; + int relax_domain_level; + int nr_subparts; + int partition_root_state; + int use_parent_ecpus; + int child_ecpus_count; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; + u64 sum_migrate_dl_bw; + enum prs_errcode prs_err; + struct cgroup_file partition_file; + struct list_head remote_sibling; +}; + +enum partition_cmd { + partcmd_enable = 0, + partcmd_enablei = 1, + partcmd_disable = 2, + partcmd_update = 3, + partcmd_invalidate = 4, +}; + +enum { + CGRP_ROOT_NOPREFIX = 2, + CGRP_ROOT_XATTR = 4, + CGRP_ROOT_NS_DELEGATE = 8, + CGRP_ROOT_FAVOR_DYNMODS = 16, + CGRP_ROOT_CPUSET_V2_MODE = 65536, + CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, + CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, + CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, +}; + +struct cpuset_migrate_mm_work { + struct work_struct work; + struct mm_struct *mm; + nodemask_t from; + nodemask_t to; +}; + +struct tmpmasks { + cpumask_var_t addmask; + cpumask_var_t delmask; + cpumask_var_t new_cpus; +}; + +typedef enum { + CS_ONLINE = 0, + CS_CPU_EXCLUSIVE = 1, + CS_MEM_EXCLUSIVE = 2, + CS_MEM_HARDWALL = 3, + CS_MEMORY_MIGRATE = 4, + CS_SCHED_LOAD_BALANCE = 5, + CS_SPREAD_PAGE = 6, + CS_SPREAD_SLAB = 7, +} cpuset_flagbits_t; + +typedef enum { + FILE_MEMORY_MIGRATE = 0, + FILE_CPULIST = 1, + FILE_MEMLIST = 2, + FILE_EFFECTIVE_CPULIST = 3, + FILE_EFFECTIVE_MEMLIST = 4, + FILE_SUBPARTS_CPULIST = 5, + FILE_EXCLUSIVE_CPULIST = 6, + FILE_EFFECTIVE_XCPULIST = 7, + FILE_ISOLATED_CPULIST = 8, + FILE_CPU_EXCLUSIVE = 9, + FILE_MEM_EXCLUSIVE = 10, + FILE_MEM_HARDWALL = 11, + FILE_SCHED_LOAD_BALANCE = 12, + FILE_PARTITION_ROOT = 13, + FILE_SCHED_RELAX_DOMAIN_LEVEL = 14, + FILE_MEMORY_PRESSURE_ENABLED = 15, + FILE_MEMORY_PRESSURE = 16, + FILE_SPREAD_PAGE = 17, + FILE_SPREAD_SLAB = 18, +} cpuset_filetype_t; + +struct bpf_cpumask { + cpumask_t cpumask; + refcount_t usage; +}; + +enum { + DIR_OFFSET_MIN = 2, +}; + +enum dentry_d_lock_class { + DENTRY_D_LOCK_NORMAL = 0, + DENTRY_D_LOCK_NESTED = 1, +}; + +struct simple_transaction_argresp { + ssize_t size; + char data[0]; +}; + +typedef struct { + void *lock; +} class_rcu_t; + +struct stashed_operations { + void (*put_data)(void *); + int (*init_inode)(struct inode *, void *); +}; + +struct simple_attr { + int (*get)(void *, u64 *); + int (*set)(void *, u64); + char get_buf[24]; + char set_buf[24]; + void *data; + const char *fmt; + struct mutex mutex; +}; + +struct iomap_dio_ops; + +struct iomap_dio { + struct kiocb *iocb; + const struct iomap_dio_ops *dops; + loff_t i_size; + loff_t size; + atomic_t ref; + unsigned int flags; + int error; + size_t done_before; + bool wait_for_completion; + union { + struct { + struct iov_iter *iter; + struct task_struct *waiter; + } submit; + struct { + struct work_struct work; + } aio; + }; +}; + +struct iomap_dio_ops { + int (*end_io)(struct kiocb *, ssize_t, int, unsigned int); + void (*submit_io)(const struct iomap_iter *, struct bio *, loff_t); + struct bio_set *bio_set; +}; + +enum ramfs_param { + Opt_mode___3 = 0, +}; + +struct ramfs_mount_opts { + umode_t mode; +}; + +struct ramfs_fs_info { + struct ramfs_mount_opts mount_opts; +}; + +struct shmid_kernel { + struct kern_ipc_perm shm_perm; + struct file *shm_file; + unsigned long shm_nattch; + unsigned long shm_segsz; + time64_t shm_atim; + time64_t shm_dtim; + time64_t shm_ctim; + struct pid *shm_cprid; + struct pid *shm_lprid; + struct ucounts *mlock_ucounts; + struct task_struct *shm_creator; + struct list_head shm_clist; + struct ipc_namespace *ns; + long: 64; + long: 64; + long: 64; +}; + +struct shm_file_data { + int id; + struct ipc_namespace *ns; + struct file *file; + const struct vm_operations_struct *vm_ops; +}; + +struct shmid_ds { + struct ipc_perm shm_perm; + int shm_segsz; + __kernel_old_time_t shm_atime; + __kernel_old_time_t shm_dtime; + __kernel_old_time_t shm_ctime; + __kernel_ipc_pid_t shm_cpid; + __kernel_ipc_pid_t shm_lpid; + unsigned short shm_nattch; + unsigned short shm_unused; + void *shm_unused2; + void *shm_unused3; +}; + +struct shmem_inode_info { + spinlock_t lock; + unsigned int seals; + unsigned long flags; + unsigned long alloced; + unsigned long swapped; + union { + struct offset_ctx dir_offsets; + struct { + struct list_head shrinklist; + struct list_head swaplist; + }; + }; + struct timespec64 i_crtime; + struct shared_policy policy; + struct simple_xattrs xattrs; + unsigned long fallocend; + unsigned int fsflags; + atomic_t stop_eviction; + struct inode vfs_inode; +}; + +struct shmid64_ds { + struct ipc64_perm shm_perm; + __kernel_size_t shm_segsz; + long shm_atime; + long shm_dtime; + long shm_ctime; + __kernel_pid_t shm_cpid; + __kernel_pid_t shm_lpid; + unsigned long shm_nattch; + unsigned long __unused4; + unsigned long __unused5; +}; + +struct shminfo64 { + unsigned long shmmax; + unsigned long shmmin; + unsigned long shmmni; + unsigned long shmseg; + unsigned long shmall; + unsigned long __unused1; + unsigned long __unused2; + unsigned long __unused3; + unsigned long __unused4; +}; + +struct shm_info { + int used_ids; + __kernel_ulong_t shm_tot; + __kernel_ulong_t shm_rss; + __kernel_ulong_t shm_swp; + __kernel_ulong_t swap_attempts; + __kernel_ulong_t swap_successes; +}; + +struct shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; +}; + +typedef long mpi_limb_signed_t; + +enum enable_type { + undefined = -1, + user_disabled = 0, + auto_disabled = 1, + user_enabled = 2, + auto_enabled = 3, +}; + +enum release_type { + leaf_only = 0, + whole_subtree = 1, +}; + +struct pci_dev_resource { + struct list_head list; + struct resource *res; + struct pci_dev *dev; + resource_size_t start; + resource_size_t end; + resource_size_t add_size; + resource_size_t min_align; + unsigned long flags; +}; + +typedef u64 pci_bus_addr_t; + +struct pci_bus_region { + pci_bus_addr_t start; + pci_bus_addr_t end; +}; + +struct dma_fence_chain { + struct dma_fence base; + struct dma_fence __attribute__((btf_type_tag("rcu"))) *prev; + u64 prev_seqno; + struct dma_fence *fence; + union { + struct dma_fence_cb cb; + struct irq_work work; + }; + spinlock_t lock; +}; + +struct dma_fence_unwrap { + struct dma_fence *chain; + struct dma_fence *array; + unsigned int index; +}; + +struct dma_fence_array { + struct dma_fence base; + spinlock_t lock; + unsigned int num_fences; + atomic_t num_pending; + struct dma_fence **fences; + struct irq_work work; +}; + +struct veth_q_stat_desc { + char desc[32]; + size_t offset; +}; + +enum { + VETH_INFO_UNSPEC = 0, + VETH_INFO_PEER = 1, + __VETH_INFO_MAX = 2, +}; + +struct veth_stats { + u64 rx_drops; + u64 xdp_packets; + u64 xdp_bytes; + u64 xdp_redirect; + u64 xdp_drops; + u64 xdp_tx; + u64 xdp_tx_err; + u64 peer_tq_xdp_xmit; + u64 peer_tq_xdp_xmit_err; +}; + +struct veth_rq_stats { + struct veth_stats vs; + struct u64_stats_sync syncp; +}; + +struct veth_rq { + struct napi_struct xdp_napi; + struct napi_struct __attribute__((btf_type_tag("rcu"))) *napi; + struct net_device *dev; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; + struct xdp_mem_info xdp_mem; + struct veth_rq_stats stats; + bool rx_notify_masked; + struct ptr_ring xdp_ring; + struct xdp_rxq_info xdp_rxq; + struct page_pool *page_pool; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct veth_priv { + struct net_device __attribute__((btf_type_tag("rcu"))) *peer; + atomic64_t dropped; + struct bpf_prog *_xdp_prog; + struct veth_rq *rq; + unsigned int requested_headroom; +}; + +struct veth_xdp_tx_bq { + struct xdp_frame *q[16]; + unsigned int count; +}; + +struct veth_xdp_buff { + struct xdp_buff xdp; + struct sk_buff *skb; +}; + +struct page_pool_params { + union { + struct { + unsigned int flags; + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; + }; + struct page_pool_params_fast fast; + }; + union { + struct { + struct net_device *netdev; + void (*init_callback)(struct page *, void *); + void *init_arg; + }; + struct page_pool_params_slow slow; + }; +}; + +struct page_pool_stats { + struct page_pool_alloc_stats alloc_stats; + struct page_pool_recycle_stats recycle_stats; +}; + +enum iwl_tx_pm_timeouts { + PM_FRAME_NONE = 0, + PM_FRAME_MGMT = 2, + PM_FRAME_ASSOC = 3, +}; + +enum iwl_dump_control { + DUMP_TX_FIFO_FLUSH = 2, +}; + +enum ieee80211_spectrum_mgmt_actioncode { + WLAN_ACTION_SPCT_MSR_REQ = 0, + WLAN_ACTION_SPCT_MSR_RPRT = 1, + WLAN_ACTION_SPCT_TPC_REQ = 2, + WLAN_ACTION_SPCT_TPC_RPRT = 3, + WLAN_ACTION_SPCT_CHL_SWITCH = 4, +}; + +enum iwl_tx_offload_assist_flags_pos { + TX_CMD_OFFLD_IP_HDR = 0, + TX_CMD_OFFLD_L4_EN = 6, + TX_CMD_OFFLD_L3_EN = 7, + TX_CMD_OFFLD_MH_SIZE = 8, + TX_CMD_OFFLD_PAD = 13, + TX_CMD_OFFLD_AMSDU = 14, +}; + +enum iwl_tx_cmd_flags { + IWL_TX_FLAGS_CMD_RATE = 1, + IWL_TX_FLAGS_ENCRYPT_DIS = 2, + IWL_TX_FLAGS_HIGH_PRI = 4, + IWL_TX_FLAGS_RTS = 8, + IWL_TX_FLAGS_CTS = 16, +}; + +enum iwl_tx_status { + TX_STATUS_MSK = 255, + TX_STATUS_SUCCESS = 1, + TX_STATUS_DIRECT_DONE = 2, + TX_STATUS_POSTPONE_DELAY = 64, + TX_STATUS_POSTPONE_FEW_BYTES = 65, + TX_STATUS_POSTPONE_BT_PRIO = 66, + TX_STATUS_POSTPONE_QUIET_PERIOD = 67, + TX_STATUS_POSTPONE_CALC_TTAK = 68, + TX_STATUS_FAIL_INTERNAL_CROSSED_RETRY = 129, + TX_STATUS_FAIL_SHORT_LIMIT = 130, + TX_STATUS_FAIL_LONG_LIMIT = 131, + TX_STATUS_FAIL_UNDERRUN = 132, + TX_STATUS_FAIL_DRAIN_FLOW = 133, + TX_STATUS_FAIL_RFKILL_FLUSH = 134, + TX_STATUS_FAIL_LIFE_EXPIRE = 135, + TX_STATUS_FAIL_DEST_PS = 136, + TX_STATUS_FAIL_HOST_ABORTED = 137, + TX_STATUS_FAIL_BT_RETRY = 138, + TX_STATUS_FAIL_STA_INVALID = 139, + TX_STATUS_FAIL_FRAG_DROPPED = 140, + TX_STATUS_FAIL_TID_DISABLE = 141, + TX_STATUS_FAIL_FIFO_FLUSHED = 142, + TX_STATUS_FAIL_SMALL_CF_POLL = 143, + TX_STATUS_FAIL_FW_DROP = 144, + TX_STATUS_FAIL_STA_COLOR_MISMATCH = 145, + TX_STATUS_INTERNAL_ABORT = 146, + TX_MODE_MSK = 3840, + TX_MODE_NO_BURST = 0, + TX_MODE_IN_BURST_SEQ = 256, + TX_MODE_FIRST_IN_BURST = 512, + TX_QUEUE_NUM_MSK = 126976, + TX_NARROW_BW_MSK = 393216, + TX_NARROW_BW_1DIV2 = 131072, + TX_NARROW_BW_1DIV4 = 262144, + TX_NARROW_BW_1DIV8 = 393216, +}; + +struct agg_tx_status { + __le16 status; + __le16 sequence; +}; + +struct iwl_mvm_tx_resp { + u8 frame_count; + u8 bt_kill_count; + u8 failure_rts; + u8 failure_frame; + __le32 initial_rate; + __le16 wireless_media_time; + u8 pa_status; + u8 pa_integ_res_a[3]; + u8 pa_integ_res_b[3]; + u8 pa_integ_res_c[3]; + __le16 measurement_req_id; + u8 reduced_tpc; + u8 reserved; + __le32 tfd_info; + __le16 seq_ctl; + __le16 byte_cnt; + u8 tlc_info; + u8 ra_tid; + __le16 frame_ctrl; + __le16 tx_queue; + __le16 reserved2; + struct agg_tx_status status; +}; + +struct iwl_mvm_tx_resp_v3 { + u8 frame_count; + u8 bt_kill_count; + u8 failure_rts; + u8 failure_frame; + __le32 initial_rate; + __le16 wireless_media_time; + u8 pa_status; + u8 pa_integ_res_a[3]; + u8 pa_integ_res_b[3]; + u8 pa_integ_res_c[3]; + __le16 measurement_req_id; + u8 reduced_tpc; + u8 reserved; + __le32 tfd_info; + __le16 seq_ctl; + __le16 byte_cnt; + u8 tlc_info; + u8 ra_tid; + __le16 frame_ctrl; + struct agg_tx_status status[0]; +}; + +struct iwl_fw_dbg_trigger_ba { + __le16 rx_ba_start; + __le16 rx_ba_stop; + __le16 tx_ba_start; + __le16 tx_ba_stop; + __le16 rx_bar; + __le16 tx_bar; + __le16 frame_timeout; +}; + +struct tx_status { + u8 status; + u8 reserved[3]; +}; + +struct iwl_fw_dbg_trigger_tx_status { + struct tx_status statuses[16]; + __le32 reserved[2]; +}; + +struct iwl_tx_path_flush_cmd_v1 { + __le32 queues_ctl; + __le16 flush_ctl; + __le16 reserved; +}; + +struct iwl_dram_sec_info { + __le32 pn_low; + __le16 pn_high; + __le16 aux_info; +}; + +struct iwl_tx_cmd_gen3 { + __le16 len; + __le16 flags; + __le32 offload_assist; + struct iwl_dram_sec_info dram_info; + __le32 rate_n_flags; + u8 reserved[8]; + struct ieee80211_hdr hdr[0]; +}; + +struct iwl_tx_cmd_gen2 { + __le16 len; + __le16 offload_assist; + __le32 flags; + struct iwl_dram_sec_info dram_info; + __le32 rate_n_flags; + struct ieee80211_hdr hdr[0]; +}; + +struct iwl_mvm_ba_notif { + u8 sta_addr[6]; + __le16 reserved; + u8 sta_id; + u8 tid; + __le16 seq_ctl; + __le64 bitmap; + __le16 scd_flow; + __le16 scd_ssn; + u8 txed; + u8 txed_2_done; + u8 reduced_txp; + u8 reserved1; +} __attribute__((packed)); + +struct iwl_mvm_compressed_ba_ratid { + u8 q_num; + u8 tid; + __le16 ssn; +}; + +struct iwl_mvm_compressed_ba_tfd { + __le16 q_num; + __le16 tfd_index; + u8 scd_queue; + u8 tid; + u8 reserved[2]; +}; + +struct iwl_mvm_compressed_ba_notif { + __le32 flags; + u8 sta_id; + u8 reduced_txp; + u8 tlc_rate_info; + u8 retry_cnt; + __le32 query_byte_cnt; + __le16 query_frame_cnt; + __le16 txed; + __le16 done; + __le16 reserved; + __le32 wireless_time; + __le32 tx_rate; + __le16 tfd_cnt; + __le16 ra_tid_cnt; + union { + struct { + struct {} __empty_ra_tid; + struct iwl_mvm_compressed_ba_ratid ra_tid[0]; + }; + struct { + struct {} __empty_tfd; + struct iwl_mvm_compressed_ba_tfd tfd[0]; + }; + }; +}; + +struct iwl_tx_path_flush_cmd { + __le32 sta_id; + __le16 tid_mask; + __le16 reserved; +}; + +struct iwl_flush_queue_info { + __le16 tid; + __le16 queue_num; + __le16 read_before_flush; + __le16 read_after_flush; +}; + +struct iwl_tx_path_flush_cmd_rsp { + __le16 sta_id; + __le16 num_flushed_queues; + struct iwl_flush_queue_info queues[16]; +}; + +enum xmp_state { + STATE_INACTIVE___3 = 0, + STATE_LEADER_PULSE = 1, + STATE_NIBBLE_SPACE = 2, +}; + +struct sock_diag_handler { + struct module *owner; + __u8 family; + int (*dump)(struct sk_buff *, struct nlmsghdr *); + int (*get_info)(struct sk_buff *, struct sock *); + int (*destroy)(struct sk_buff *, struct nlmsghdr *); +}; + +struct sock_diag_inet_compat { + struct module *owner; + int (*fn)(struct sk_buff *, struct nlmsghdr *); +}; + +enum sknetlink_groups { + SKNLGRP_NONE = 0, + SKNLGRP_INET_TCP_DESTROY = 1, + SKNLGRP_INET_UDP_DESTROY = 2, + SKNLGRP_INET6_TCP_DESTROY = 3, + SKNLGRP_INET6_UDP_DESTROY = 4, + __SKNLGRP_MAX = 5, +}; + +struct broadcast_sk { + struct sock *sk; + struct work_struct work; +}; + +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; +}; + +enum nfnl_batch_attributes { + NFNL_BATCH_UNSPEC = 0, + NFNL_BATCH_GENID = 1, + __NFNL_BATCH_MAX = 2, +}; + +enum { + NFNL_BATCH_FAILURE = 1, + NFNL_BATCH_DONE = 2, + NFNL_BATCH_REPLAY = 4, +}; + +struct nfnl_err { + struct list_head head; + struct nlmsghdr *nlh; + int err; + struct netlink_ext_ack extack; +}; + +struct nfnl_net { + struct sock *nfnl; +}; + +struct ip_mreq_source { + __be32 imr_multiaddr; + __be32 imr_interface; + __be32 imr_sourceaddr; +}; + +struct ip_msfilter { + __be32 imsf_multiaddr; + __be32 imsf_interface; + __u32 imsf_fmode; + __u32 imsf_numsrc; + union { + __be32 imsf_slist[1]; + struct { + struct {} __empty_imsf_slist_flex; + __be32 imsf_slist_flex[0]; + }; + }; +}; + +struct ipv6_params { + __s32 disable_ipv6; + __s32 autoconf; +}; + +struct ioam6_pernet_data { + struct mutex lock; + struct rhashtable namespaces; + struct rhashtable schemas; +}; + +struct ipv6_stub { + int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *); + int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *); + struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *); + int (*ipv6_route_input)(struct sk_buff *); + struct fib6_table * (*fib6_get_table)(struct net *, u32); + int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int); + int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int); + void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int); + u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *); + int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *); + void (*fib6_nh_release)(struct fib6_nh *); + void (*fib6_nh_release_dsts)(struct fib6_nh *); + void (*fib6_update_sernum)(struct net *, struct fib6_info *); + int (*ip6_del_rt)(struct net *, struct fib6_info *, bool); + void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *); + void (*udpv6_encap_enable)(); + void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool); + struct neigh_table *nd_tbl; + int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); + struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); +}; + +struct ipv6_bpf_stub { + int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); + struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); +}; + +enum flowlabel_reflect { + FLOWLABEL_REFLECT_ESTABLISHED = 1, + FLOWLABEL_REFLECT_TCP_RESET = 2, + FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, +}; + +struct nf_queue_entry; + +struct nf_ipv6_ops { + void (*route_input)(struct sk_buff *); + int (*fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); + int (*reroute)(struct sk_buff *, const struct nf_queue_entry *); +}; + +struct nf_queue_entry { + struct list_head list; + struct sk_buff *skb; + unsigned int id; + unsigned int hook_index; + struct net_device *physin; + struct net_device *physout; + struct nf_hook_state state; + u16 size; +}; + +struct irq_info___2 { + u8 bus; + u8 devfn; + struct { + u8 link; + u16 bitmap; + } __attribute__((packed)) irq[4]; + u8 slot; + u8 rfu; +}; + +struct irq_routing_table { + u32 signature; + u16 version; + u16 size; + u8 rtr_bus; + u8 rtr_devfn; + u16 exclusive_irqs; + u16 rtr_vendor; + u16 rtr_device; + u32 miniport_data; + u8 rfu[11]; + u8 checksum; + struct irq_info___2 slots[0]; +}; + +struct irq_router { + char *name; + u16 vendor; + u16 device; + int (*get)(struct pci_dev *, struct pci_dev *, int); + int (*set)(struct pci_dev *, struct pci_dev *, int, int); + int (*lvl)(struct pci_dev *, struct pci_dev *, int, int); +}; + +struct irq_router_handler { + u16 vendor; + int (*probe)(struct irq_router *, struct pci_dev *, u16); +}; + +struct irt_routing_table { + u32 signature; + u8 size; + u8 used; + u16 exclusive_irqs; + struct irq_info___2 slots[0]; +}; + struct bts_ctx { struct perf_output_handle handle; long: 64; @@ -94847,1416 +96809,258 @@ struct bts_buffer { struct bts_phys buf[0]; }; -struct _fpx_sw_bytes { - __u32 magic1; - __u32 extended_size; - __u64 xfeatures; - __u32 xstate_size; - __u32 padding[7]; -}; +typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); -struct user_i387_ia32_struct { - u32 cwd; - u32 swd; - u32 twd; - u32 fip; - u32 fcs; - u32 foo; - u32 fos; - u32 st_space[20]; -}; +typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); -struct efi_runtime_map_entry { - efi_memory_desc_t md; - struct kobject kobj; -}; - -struct map_attribute { - struct attribute attr; - ssize_t (*show)(struct efi_runtime_map_entry *, char *); -}; - -struct tp_transition_snapshot { - unsigned long rcu; - unsigned long srcu; - bool ongoing; -}; - -enum tp_func_state { - TP_FUNC_0 = 0, - TP_FUNC_1 = 1, - TP_FUNC_2 = 2, - TP_FUNC_N = 3, -}; - -enum tp_transition_sync { - TP_TRANSITION_SYNC_1_0_1 = 0, - TP_TRANSITION_SYNC_N_2_1 = 1, - _NR_TP_TRANSITION_SYNC = 2, -}; - -struct tp_module { - struct list_head list; - struct module *mod; -}; - -struct tp_probes { - struct callback_head rcu; - struct tracepoint_func probes[0]; -}; - -struct bpf_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - u64 delegate_cmds; - u64 delegate_maps; - u64 delegate_progs; - u64 delegate_attachs; -}; - -struct elf_prpsinfo { - char pr_state; - char pr_sname; - char pr_zomb; - char pr_nice; - unsigned long pr_flag; - __kernel_uid_t pr_uid; - __kernel_gid_t pr_gid; - pid_t pr_pid; - pid_t pr_ppid; - pid_t pr_pgrp; - pid_t pr_sid; - char pr_fname[16]; - char pr_psargs[80]; -}; - -struct elf64_phdr { - Elf64_Word p_type; - Elf64_Word p_flags; - Elf64_Off p_offset; - Elf64_Addr p_vaddr; - Elf64_Addr p_paddr; - Elf64_Xword p_filesz; - Elf64_Xword p_memsz; - Elf64_Xword p_align; -}; - -struct elf_siginfo { - int si_signo; - int si_code; - int si_errno; -}; - -struct elf_prstatus_common { - struct elf_siginfo pr_info; - short pr_cursig; - unsigned long pr_sigpend; - unsigned long pr_sighold; - pid_t pr_pid; - pid_t pr_ppid; - pid_t pr_pgrp; - pid_t pr_sid; - struct __kernel_old_timeval pr_utime; - struct __kernel_old_timeval pr_stime; - struct __kernel_old_timeval pr_cutime; - struct __kernel_old_timeval pr_cstime; -}; - -typedef unsigned long elf_greg_t; - -typedef elf_greg_t elf_gregset_t[27]; - -struct elf_prstatus { - struct elf_prstatus_common common; - elf_gregset_t pr_reg; - int pr_fpvalid; -}; - -struct btrfs_fid { - u64 objectid; - u64 root_objectid; - u32 gen; - u64 parent_objectid; - u32 parent_gen; - u64 parent_root_objectid; -} __attribute__((packed)); - -struct authenc_instance_ctx { - struct crypto_ahash_spawn auth; - struct crypto_skcipher_spawn enc; - unsigned int reqoff; -}; - -struct crypto_authenc_keys { - const u8 *authkey; - const u8 *enckey; - unsigned int authkeylen; - unsigned int enckeylen; -}; - -struct crypto_authenc_ctx { - struct crypto_ahash *auth; - struct crypto_skcipher *enc; - struct crypto_sync_skcipher *null; -}; - -struct authenc_request_ctx { - struct scatterlist src[2]; - struct scatterlist dst[2]; - char tail[0]; -}; - -struct virtio_pci_legacy_device { - struct pci_dev *pci_dev; - u8 *isr; - void *ioaddr; - struct virtio_device_id id; -}; - -struct virtio_pci_common_cfg; - -struct virtio_pci_modern_device { - struct pci_dev *pci_dev; - struct virtio_pci_common_cfg *common; - void *device; - void *notify_base; - resource_size_t notify_pa; - u8 *isr; - size_t notify_len; - size_t device_len; - size_t common_len; - int notify_map_cap; - u32 notify_offset_multiplier; - int modern_bars; - struct virtio_device_id id; - int (*device_id_check)(struct pci_dev *); - u64 dma_mask; -}; - -struct virtio_pci_vq_info { - struct virtqueue *vq; - struct list_head node; - unsigned int msix_vector; -}; - -struct virtio_pci_admin_vq { - struct virtio_pci_vq_info info; - struct mutex cmd_lock; - u64 supported_cmds; - char name[10]; - u16 vq_index; -}; - -struct virtio_pci_device { - struct virtio_device vdev; - struct pci_dev *pci_dev; - union { - struct virtio_pci_legacy_device ldev; - struct virtio_pci_modern_device mdev; - }; - bool is_legacy; - u8 *isr; - spinlock_t lock; - struct list_head virtqueues; - struct virtio_pci_vq_info **vqs; - struct virtio_pci_admin_vq admin_vq; - int msix_enabled; - int intx_enabled; - cpumask_var_t *msix_affinity_masks; - char (*msix_names)[256]; - unsigned int msix_vectors; - unsigned int msix_used_vectors; - bool per_vq_vectors; - struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16); - void (*del_vq)(struct virtio_pci_vq_info *); - u16 (*config_vector)(struct virtio_pci_device *, u16); - bool (*is_avq)(struct virtio_device *, unsigned int); -}; - -struct virtio_pci_common_cfg { - __le32 device_feature_select; - __le32 device_feature; - __le32 guest_feature_select; - __le32 guest_feature; - __le16 msix_config; - __le16 num_queues; - __u8 device_status; - __u8 config_generation; - __le16 queue_select; - __le16 queue_size; - __le16 queue_msix_vector; - __le16 queue_enable; - __le16 queue_notify_off; - __le32 queue_desc_lo; - __le32 queue_desc_hi; - __le32 queue_avail_lo; - __le32 queue_avail_hi; - __le32 queue_used_lo; - __le32 queue_used_hi; -}; - -typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); - -struct veth_q_stat_desc { - char desc[32]; - size_t offset; +enum sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, }; enum { - VETH_INFO_UNSPEC = 0, - VETH_INFO_PEER = 1, - __VETH_INFO_MAX = 2, + TRACE_SIGNAL_DELIVERED = 0, + TRACE_SIGNAL_IGNORED = 1, + TRACE_SIGNAL_ALREADY_PENDING = 2, + TRACE_SIGNAL_OVERFLOW_FAIL = 3, + TRACE_SIGNAL_LOSE_INFO = 4, }; -struct veth_stats { - u64 rx_drops; - u64 xdp_packets; - u64 xdp_bytes; - u64 xdp_redirect; - u64 xdp_drops; - u64 xdp_tx; - u64 xdp_tx_err; - u64 peer_tq_xdp_xmit; - u64 peer_tq_xdp_xmit_err; -}; - -struct veth_rq_stats { - struct veth_stats vs; - struct u64_stats_sync syncp; -}; - -struct veth_rq { - struct napi_struct xdp_napi; - struct napi_struct __attribute__((btf_type_tag("rcu"))) *napi; - struct net_device *dev; - struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; - struct xdp_mem_info xdp_mem; - struct veth_rq_stats stats; - bool rx_notify_masked; - struct ptr_ring xdp_ring; - struct xdp_rxq_info xdp_rxq; - struct page_pool *page_pool; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct veth_priv { - struct net_device __attribute__((btf_type_tag("rcu"))) *peer; - atomic64_t dropped; - struct bpf_prog *_xdp_prog; - struct veth_rq *rq; - unsigned int requested_headroom; -}; - -struct veth_xdp_tx_bq { - struct xdp_frame *q[16]; - unsigned int count; -}; - -struct veth_xdp_buff { - struct xdp_buff xdp; - struct sk_buff *skb; -}; - -struct page_pool_params { - union { - struct { - unsigned int flags; - unsigned int order; - unsigned int pool_size; - int nid; - struct device *dev; - struct napi_struct *napi; - enum dma_data_direction dma_dir; - unsigned int max_len; - unsigned int offset; - }; - struct page_pool_params_fast fast; - }; - union { - struct { - struct net_device *netdev; - void (*init_callback)(struct page *, void *); - void *init_arg; - }; - struct page_pool_params_slow slow; - }; -}; - -struct page_pool_stats { - struct page_pool_alloc_stats alloc_stats; - struct page_pool_recycle_stats recycle_stats; -}; - -enum iwl_nvm_section_type { - NVM_SECTION_TYPE_SW = 1, - NVM_SECTION_TYPE_REGULATORY = 3, - NVM_SECTION_TYPE_CALIBRATION = 4, - NVM_SECTION_TYPE_PRODUCTION = 5, - NVM_SECTION_TYPE_REGULATORY_SDP = 8, - NVM_SECTION_TYPE_MAC_OVERRIDE = 11, - NVM_SECTION_TYPE_PHY_SKU = 12, - NVM_MAX_NUM_SECTIONS = 13, -}; - -enum { - READ_NVM_CHUNK_SUCCEED = 0, - READ_NVM_CHUNK_NOT_VALID_ADDRESS = 1, -}; - -struct iwl_nvm_access_cmd { - u8 op_code; - u8 target; - __le16 type; - __le16 offset; - __le16 length; - u8 data[0]; -}; - -struct iwl_nvm_access_resp { - __le16 offset; - __le16 length; - __le16 type; - __le16 status; - u8 data[0]; -}; - -struct iwl_mcc_update_cmd { - __le16 mcc; - u8 source_id; - u8 reserved; - __le32 key; - u8 reserved2[20]; -}; - -struct iwl_mcc_update_resp_v3 { - __le32 status; - __le16 mcc; - u8 cap; - u8 source_id; - __le16 time; - __le16 geo_info; - __le32 n_channels; - __le32 channels[0]; -}; - -struct iwl_mcc_update_resp_v4 { - __le32 status; - __le16 mcc; - __le16 cap; - __le16 time; - __le16 geo_info; - u8 source_id; - u8 reserved[3]; - __le32 n_channels; - __le32 channels[0]; -}; - -struct iwl_mcc_chub_notif { - __le16 mcc; - u8 source_id; - u8 reserved1; -}; - -enum rtw_tx_queue_type { - RTW_TX_QUEUE_BK = 0, - RTW_TX_QUEUE_BE = 1, - RTW_TX_QUEUE_VI = 2, - RTW_TX_QUEUE_VO = 3, - RTW_TX_QUEUE_BCN = 4, - RTW_TX_QUEUE_MGMT = 5, - RTW_TX_QUEUE_HI0 = 6, - RTW_TX_QUEUE_H2C = 7, - RTK_MAX_TX_QUEUE_NUM = 8, -}; - -enum rtw_tx_desc_queue_select { - TX_DESC_QSEL_TID0 = 0, - TX_DESC_QSEL_TID1 = 1, - TX_DESC_QSEL_TID2 = 2, - TX_DESC_QSEL_TID3 = 3, - TX_DESC_QSEL_TID4 = 4, - TX_DESC_QSEL_TID5 = 5, - TX_DESC_QSEL_TID6 = 6, - TX_DESC_QSEL_TID7 = 7, - TX_DESC_QSEL_TID8 = 8, - TX_DESC_QSEL_TID9 = 9, - TX_DESC_QSEL_TID10 = 10, - TX_DESC_QSEL_TID11 = 11, - TX_DESC_QSEL_TID12 = 12, - TX_DESC_QSEL_TID13 = 13, - TX_DESC_QSEL_TID14 = 14, - TX_DESC_QSEL_TID15 = 15, - TX_DESC_QSEL_BEACON = 16, - TX_DESC_QSEL_HIGH = 17, - TX_DESC_QSEL_MGMT = 18, - TX_DESC_QSEL_H2C = 19, -}; - -enum rtw_rx_queue_type { - RTW_RX_QUEUE_MPDU = 0, - RTW_RX_QUEUE_C2H = 1, - RTK_MAX_RX_QUEUE_NUM = 2, -}; - -enum rtw_pci_flags { - RTW_PCI_FLAG_NAPI_RUNNING = 0, - NUM_OF_RTW_PCI_FLAGS = 1, -}; - -enum rtw_ip_sel { - RTW_IP_SEL_PHY = 0, - RTW_IP_SEL_MAC = 1, - RTW_IP_SEL_DBI = 2, - RTW_IP_SEL_UNDEF = 65535, -}; - -struct rtw_pci_ring { - u8 *head; - dma_addr_t dma; - u8 desc_size; - u32 len; - u32 wp; - u32 rp; -}; - -struct rtw_pci_tx_ring { - struct rtw_pci_ring r; - struct sk_buff_head queue; - bool queue_stopped; -}; - -struct rtw_pci_rx_ring { - struct rtw_pci_ring r; - struct sk_buff *buf[512]; -}; - -struct rtw_pci { - struct pci_dev *pdev; - spinlock_t hwirq_lock; - spinlock_t irq_lock; - u32 irq_mask[4]; - bool irq_enabled; - bool running; - struct net_device netdev; - struct napi_struct napi; - u16 rx_tag; - unsigned long tx_queued[1]; - struct rtw_pci_tx_ring tx_rings[8]; - struct rtw_pci_rx_ring rx_rings[2]; - u16 link_ctrl; - atomic_t link_usage; - bool rx_no_aspm; - unsigned long flags[1]; - void *mmap; -}; - -struct rtw_pci_tx_buffer_desc { - __le16 buf_size; - __le16 psb_len; - __le32 dma; -}; - -struct rtw_pci_tx_data { - dma_addr_t dma; - u8 sn; -}; - -struct rtw_pci_rx_buffer_desc { - __le16 buf_size; - __le16 total_pkt_size; - __le32 dma; -}; - -enum nec_state { - STATE_INACTIVE = 0, - STATE_HEADER_SPACE = 1, - STATE_BIT_PULSE = 2, - STATE_BIT_SPACE = 3, - STATE_TRAILER_PULSE = 4, - STATE_TRAILER_SPACE = 5, -}; - -struct hid_control_fifo { - unsigned char dir; - struct hid_report *report; - char *raw_report; -}; - -struct hid_output_fifo { - struct hid_report *report; - char *raw_report; -}; - -struct usbhid_device { - struct hid_device *hid; - struct usb_interface *intf; - int ifnum; - unsigned int bufsize; - struct urb *urbin; - char *inbuf; - dma_addr_t inbuf_dma; - struct urb *urbctrl; - struct usb_ctrlrequest *cr; - struct hid_control_fifo ctrl[256]; - unsigned char ctrlhead; - unsigned char ctrltail; - char *ctrlbuf; - dma_addr_t ctrlbuf_dma; - unsigned long last_ctrl; - struct urb *urbout; - struct hid_output_fifo out[256]; - unsigned char outhead; - unsigned char outtail; - char *outbuf; - dma_addr_t outbuf_dma; - unsigned long last_out; - struct mutex mutex; - spinlock_t lock; - unsigned long iofl; - struct timer_list io_retry; - unsigned long stop_retry; - unsigned int retry_delay; - struct work_struct reset_work; - wait_queue_head_t wait; -}; - -struct hid_class_descriptor { - __u8 bDescriptorType; - __le16 wDescriptorLength; -} __attribute__((packed)); - -struct hid_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdHID; - __u8 bCountryCode; - __u8 bNumDescriptors; - struct hid_class_descriptor desc[1]; -} __attribute__((packed)); - -enum { - ETHTOOL_A_PHC_VCLOCKS_UNSPEC = 0, - ETHTOOL_A_PHC_VCLOCKS_HEADER = 1, - ETHTOOL_A_PHC_VCLOCKS_NUM = 2, - ETHTOOL_A_PHC_VCLOCKS_INDEX = 3, - __ETHTOOL_A_PHC_VCLOCKS_CNT = 4, - ETHTOOL_A_PHC_VCLOCKS_MAX = 3, -}; - -struct phc_vclocks_reply_data { - struct ethnl_reply_data base; - int num; - int *index; -}; - -struct udp_tunnel_info { - unsigned short type; - sa_family_t sa_family; - __be16 port; - u8 hw_priv; -}; - -struct udp_tunnel_nic_shared { - struct udp_tunnel_nic *udp_tunnel_nic_info; - struct list_head devices; -}; - -struct nft_inner_tun_ctx { - u16 type; - u16 inner_tunoff; - u16 inner_lloff; - u16 inner_nhoff; - u16 inner_thoff; - __be16 llproto; - u8 l4proto; - u8 flags; -}; - -enum nft_meta_keys { - NFT_META_LEN = 0, - NFT_META_PROTOCOL = 1, - NFT_META_PRIORITY = 2, - NFT_META_MARK = 3, - NFT_META_IIF = 4, - NFT_META_OIF = 5, - NFT_META_IIFNAME = 6, - NFT_META_OIFNAME = 7, - NFT_META_IFTYPE = 8, - NFT_META_OIFTYPE = 9, - NFT_META_SKUID = 10, - NFT_META_SKGID = 11, - NFT_META_NFTRACE = 12, - NFT_META_RTCLASSID = 13, - NFT_META_SECMARK = 14, - NFT_META_NFPROTO = 15, - NFT_META_L4PROTO = 16, - NFT_META_BRI_IIFNAME = 17, - NFT_META_BRI_OIFNAME = 18, - NFT_META_PKTTYPE = 19, - NFT_META_CPU = 20, - NFT_META_IIFGROUP = 21, - NFT_META_OIFGROUP = 22, - NFT_META_CGROUP = 23, - NFT_META_PRANDOM = 24, - NFT_META_SECPATH = 25, - NFT_META_IIFKIND = 26, - NFT_META_OIFKIND = 27, - NFT_META_BRI_IIFPVID = 28, - NFT_META_BRI_IIFVPROTO = 29, - NFT_META_TIME_NS = 30, - NFT_META_TIME_DAY = 31, - NFT_META_TIME_HOUR = 32, - NFT_META_SDIF = 33, - NFT_META_SDIFNAME = 34, - NFT_META_BRI_BROUTE = 35, - __NFT_META_IIFTYPE = 36, -}; - -enum { - NFT_INNER_EXPR_PAYLOAD = 0, - NFT_INNER_EXPR_META = 1, -}; - -enum nft_inner_flags { - NFT_INNER_HDRSIZE = 1, - NFT_INNER_LL = 2, - NFT_INNER_NH = 4, - NFT_INNER_TH = 8, -}; - -enum { - NFT_PAYLOAD_CTX_INNER_TUN = 1, - NFT_PAYLOAD_CTX_INNER_LL = 2, - NFT_PAYLOAD_CTX_INNER_NH = 4, - NFT_PAYLOAD_CTX_INNER_TH = 8, -}; - -enum nft_inner_type { - NFT_INNER_UNSPEC = 0, - NFT_INNER_VXLAN = 1, - NFT_INNER_GENEVE = 2, -}; - -enum nft_inner_attributes { - NFTA_INNER_UNSPEC = 0, - NFTA_INNER_NUM = 1, - NFTA_INNER_TYPE = 2, - NFTA_INNER_FLAGS = 3, - NFTA_INNER_HDRSIZE = 4, - NFTA_INNER_EXPR = 5, - __NFTA_INNER_MAX = 6, -}; - -struct nft_meta { - enum nft_meta_keys key: 8; - u8 len; - union { - u8 dreg; - u8 sreg; - }; -}; - -struct __nft_expr { - const struct nft_expr_ops *ops; - union { - struct nft_payload payload; - struct nft_meta meta; - }; -}; - -struct nft_inner { - u8 flags; - u8 hdrsize; - u8 type; - u8 expr_type; - struct __nft_expr expr; -}; - -struct genevehdr { - u8 opt_len: 6; - u8 ver: 2; - u8 rsvd1: 6; - u8 critical: 1; - u8 oam: 1; - __be16 proto_type; - u8 vni[3]; - u8 rsvd2; - u8 options[0]; -}; - -struct nft_expr_info { - const struct nft_expr_ops *ops; - const struct nlattr *attr; - struct nlattr *tb[17]; -}; - -struct nf_sockopt_ops { - struct list_head list; - u_int8_t pf; - int set_optmin; - int set_optmax; - int (*set)(struct sock *, int, sockptr_t, unsigned int); - int get_optmin; - int get_optmax; - int (*get)(struct sock *, int, void __attribute__((btf_type_tag("user"))) *, int *); - struct module *owner; -}; - -struct xt_error_target { - struct xt_entry_target target; - char errorname[30]; -}; - -struct ipt_error { - struct ipt_entry entry; - struct xt_error_target target; -}; - -struct xt_entry_match { - union { - struct { - __u16 match_size; - char name[29]; - __u8 revision; - } user; - struct { - __u16 match_size; - struct xt_match *match; - } kernel; - __u16 match_size; - } u; - unsigned char data[0]; -}; - -struct xt_percpu_counter_alloc_state { - unsigned int off; - const char __attribute__((btf_type_tag("percpu"))) *mem; -}; - -struct xt_counters_info { - char name[32]; - unsigned int num_counters; - struct xt_counters counters[0]; -}; - -struct ipt_getinfo { - char name[32]; - unsigned int valid_hooks; - unsigned int hook_entry[5]; - unsigned int underflow[5]; - unsigned int num_entries; - unsigned int size; -}; - -struct ipt_get_entries { - char name[32]; - unsigned int size; - struct ipt_entry entrytable[0]; -}; - -struct xt_get_revision { - char name[29]; - __u8 revision; -}; - -enum { - LOGIC_PIO_INDIRECT = 0, - LOGIC_PIO_CPU_MMIO = 1, -}; - -struct logic_pio_host_ops; - -struct logic_pio_hwaddr { - struct list_head list; - struct fwnode_handle *fwnode; - resource_size_t hw_start; - resource_size_t io_start; - resource_size_t size; - unsigned long flags; - void *hostdata; - const struct logic_pio_host_ops *ops; -}; - -struct logic_pio_host_ops { - u32 (*in)(void *, unsigned long, size_t); - void (*out)(void *, unsigned long, u32, size_t); - u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int); - void (*outs)(void *, unsigned long, const void *, size_t, unsigned int); -}; - -typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); - -typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *); - -typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, unsigned long, void *); - -enum maple_type { - maple_dense = 0, - maple_leaf_64 = 1, - maple_range_64 = 2, - maple_arange_64 = 3, -}; - -struct maple_pnode; - -struct maple_metadata { - unsigned char end; - unsigned char gap; -}; - -struct maple_range_64 { - struct maple_pnode *parent; - unsigned long pivot[15]; - union { - void __attribute__((btf_type_tag("rcu"))) *slot[16]; - struct { - void __attribute__((btf_type_tag("rcu"))) *pad[15]; - struct maple_metadata meta; - }; - }; -}; - -struct maple_arange_64 { - struct maple_pnode *parent; - unsigned long pivot[9]; - void __attribute__((btf_type_tag("rcu"))) *slot[10]; - unsigned long gap[10]; - struct maple_metadata meta; -}; - -struct maple_node { - union { - struct { - struct maple_pnode *parent; - void __attribute__((btf_type_tag("rcu"))) *slot[31]; - }; - struct { - void *pad; - struct callback_head rcu; - struct maple_enode *piv_parent; - unsigned char parent_slot; - enum maple_type type; - unsigned char slot_len; - unsigned int ma_flags; - }; - struct maple_range_64 mr64; - struct maple_arange_64 ma64; - struct maple_alloc alloc; - }; -}; - -struct trace_event_raw_ma_op { +struct trace_event_raw_signal_generate { struct trace_entry ent; - const char *fn; - unsigned long min; - unsigned long max; - unsigned long index; - unsigned long last; - void *node; + int sig; + int errno; + int code; + char comm[16]; + pid_t pid; + int group; + int result; char __data[0]; }; -struct trace_event_raw_ma_read { +struct trace_event_raw_signal_deliver { struct trace_entry ent; - const char *fn; - unsigned long min; - unsigned long max; - unsigned long index; - unsigned long last; - void *node; + int sig; + int errno; + int code; + unsigned long sa_handler; + unsigned long sa_flags; char __data[0]; }; -struct trace_event_raw_ma_write { +struct multiprocess_signals { + sigset_t signal; + struct hlist_node node; +}; + +struct sigaltstack { + void __attribute__((btf_type_tag("user"))) *ss_sp; + int ss_flags; + __kernel_size_t ss_size; +}; + +typedef struct sigaltstack stack_t; + +typedef unsigned long old_sigset_t; + +struct trace_event_data_offsets_signal_generate {}; + +struct trace_event_data_offsets_signal_deliver {}; + +struct bpf_bloom_filter { + struct bpf_map map; + u32 bitset_mask; + u32 hash_seed; + u32 nr_hash_funcs; + unsigned long bitset[0]; +}; + +typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); + +typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool); + +typedef void (*btf_trace_mark_victim)(void *, struct task_struct *, uid_t); + +typedef void (*btf_trace_wake_reaper)(void *, int); + +typedef void (*btf_trace_start_task_reaping)(void *, int); + +typedef void (*btf_trace_finish_task_reaping)(void *, int); + +typedef void (*btf_trace_skip_task_reaping)(void *, int); + +typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); + +enum memcg_memory_event { + MEMCG_LOW = 0, + MEMCG_HIGH = 1, + MEMCG_MAX = 2, + MEMCG_OOM = 3, + MEMCG_OOM_KILL = 4, + MEMCG_OOM_GROUP_KILL = 5, + MEMCG_SWAP_HIGH = 6, + MEMCG_SWAP_MAX = 7, + MEMCG_SWAP_FAIL = 8, + MEMCG_NR_MEMORY_EVENTS = 9, +}; + +struct trace_event_raw_oom_score_adj_update { struct trace_entry ent; - const char *fn; - unsigned long min; - unsigned long max; - unsigned long index; - unsigned long last; - unsigned long piv; - void *val; - void *node; + pid_t pid; + char comm[16]; + short oom_score_adj; char __data[0]; }; -struct maple_topiary { - struct maple_pnode *parent; - struct maple_enode *next; +struct trace_event_raw_reclaim_retry_zone { + struct trace_entry ent; + int node; + int zone_idx; + int order; + unsigned long reclaimable; + unsigned long available; + unsigned long min_wmark; + int no_progress_loops; + bool wmark_check; + char __data[0]; }; -struct ma_wr_state { - struct ma_state *mas; - struct maple_node *node; - unsigned long r_min; - unsigned long r_max; - enum maple_type type; - unsigned char offset_end; - unsigned long *pivots; - unsigned long end_piv; - void __attribute__((btf_type_tag("rcu"))) **slots; - void *entry; - void *content; -}; - -struct maple_big_node { - struct maple_pnode *parent; - unsigned long pivot[33]; - union { - struct maple_enode *slot[34]; - struct { - unsigned long padding[21]; - unsigned long gap[21]; - }; - }; - unsigned char b_end; - enum maple_type type; -}; - -struct ma_topiary; - -struct maple_subtree_state { - struct ma_state *orig_l; - struct ma_state *orig_r; - struct ma_state *l; - struct ma_state *m; - struct ma_state *r; - struct ma_topiary *free; - struct ma_topiary *destroy; - struct maple_big_node *bn; -}; - -struct ma_topiary { - struct maple_enode *head; - struct maple_enode *tail; - struct maple_tree *mtree; -}; - -struct trace_event_data_offsets_ma_op {}; - -struct trace_event_data_offsets_ma_read {}; - -struct trace_event_data_offsets_ma_write {}; - -enum { - PERF_TXN_ELISION = 1ULL, - PERF_TXN_TRANSACTION = 2ULL, - PERF_TXN_SYNC = 4ULL, - PERF_TXN_ASYNC = 8ULL, - PERF_TXN_RETRY = 16ULL, - PERF_TXN_CONFLICT = 32ULL, - PERF_TXN_CAPACITY_WRITE = 64ULL, - PERF_TXN_CAPACITY_READ = 128ULL, - PERF_TXN_MAX = 256ULL, - PERF_TXN_ABORT_MASK = 18446744069414584320ULL, - PERF_TXN_ABORT_SHIFT = 32ULL, -}; - -struct bts_record { - u64 from; - u64 to; - u64 flags; -}; - -struct pebs_record_core { - u64 flags; - u64 ip; - u64 ax; - u64 bx; - u64 cx; - u64 dx; - u64 si; - u64 di; - u64 bp; - u64 sp; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; -}; - -struct pebs_record_nhm { - u64 flags; - u64 ip; - u64 ax; - u64 bx; - u64 cx; - u64 dx; - u64 si; - u64 di; - u64 bp; - u64 sp; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; - u64 status; - u64 dla; - u64 dse; - u64 lat; -}; - -struct pebs_basic { - u64 format_size; - u64 ip; - u64 applicable_counters; - u64 tsc; -}; - -struct x86_perf_regs { - struct pt_regs regs; - u64 *xmm_regs; -}; - -union intel_x86_pebs_dse { - u64 val; - struct { - unsigned int ld_dse: 4; - unsigned int ld_stlb_miss: 1; - unsigned int ld_locked: 1; - unsigned int ld_data_blk: 1; - unsigned int ld_addr_blk: 1; - unsigned int ld_reserved: 24; - }; - struct { - unsigned int st_l1d_hit: 1; - unsigned int st_reserved1: 3; - unsigned int st_stlb_miss: 1; - unsigned int st_locked: 1; - unsigned int st_reserved2: 26; - }; - struct { - unsigned int st_lat_dse: 4; - unsigned int st_lat_stlb_miss: 1; - unsigned int st_lat_locked: 1; - unsigned int ld_reserved3: 26; - }; - struct { - unsigned int mtl_dse: 5; - unsigned int mtl_locked: 1; - unsigned int mtl_stlb_miss: 1; - unsigned int mtl_fwd_blk: 1; - unsigned int ld_reserved4: 24; - }; -}; - -struct pebs_gprs { - u64 flags; - u64 ip; - u64 ax; - u64 cx; - u64 dx; - u64 bx; - u64 sp; - u64 bp; - u64 si; - u64 di; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; -}; - -struct lbr_entry { - u64 from; - u64 to; - u64 info; -}; - -struct pebs_record_skl { - u64 flags; - u64 ip; - u64 ax; - u64 bx; - u64 cx; - u64 dx; - u64 si; - u64 di; - u64 bp; - u64 sp; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; - u64 status; - u64 dla; - u64 dse; - u64 lat; - u64 real_ip; - u64 tsx_tuning; - u64 tsc; -}; - -struct pebs_meminfo { - u64 address; - u64 aux; - u64 latency; - u64 tsx_tuning; -}; - -struct pebs_xmm { - u64 xmm[32]; -}; - -struct hpet_channel; - -struct hpet_base { - unsigned int nr_channels; - unsigned int nr_clockevents; - unsigned int boot_cfg; - struct hpet_channel *channels; -}; - -enum hpet_mode { - HPET_MODE_UNUSED = 0, - HPET_MODE_LEGACY = 1, - HPET_MODE_CLOCKEVT = 2, - HPET_MODE_DEVICE = 3, -}; - -struct hpet_channel { - struct clock_event_device evt; - unsigned int num; - unsigned int cpu; - unsigned int irq; - unsigned int in_use; - enum hpet_mode mode; - unsigned int boot_cfg; - char name[10]; - long: 64; - long: 64; - long: 64; -}; - -union hpet_lock { - struct { - arch_spinlock_t lock; - u32 value; - }; - u64 lockval; -}; - -enum { - IRQCHIP_FWNODE_REAL = 0, - IRQCHIP_FWNODE_NAMED = 1, - IRQCHIP_FWNODE_NAMED_ID = 2, -}; - -struct __user_cap_header_struct; - -typedef struct __user_cap_header_struct *cap_user_header_t; - -struct __user_cap_header_struct { - __u32 version; +struct trace_event_raw_mark_victim { + struct trace_entry ent; int pid; + u32 __data_loc_comm; + unsigned long total_vm; + unsigned long anon_rss; + unsigned long file_rss; + unsigned long shmem_rss; + uid_t uid; + unsigned long pgtables; + short oom_score_adj; + char __data[0]; }; -struct __user_cap_data_struct; - -typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; - -struct __user_cap_data_struct { - __u32 effective; - __u32 permitted; - __u32 inheritable; +struct trace_event_raw_wake_reaper { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct futex_waitv { - __u64 val; - __u64 uaddr; - __u32 flags; - __u32 __reserved; +struct trace_event_raw_start_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct futex_vector { - struct futex_waitv w; - struct futex_q q; +struct trace_event_raw_finish_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct tracing_map; - -struct tracing_map_field; - -struct tracing_map_elt { - struct tracing_map *map; - struct tracing_map_field *fields; - atomic64_t *vars; - bool *var_set; - void *key; - void *private_data; +struct trace_event_raw_skip_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -typedef int (*tracing_map_cmp_fn_t)(void *, void *); - -struct tracing_map_field { - tracing_map_cmp_fn_t cmp_fn; - union { - atomic64_t sum; - unsigned int offset; - }; +struct trace_event_raw_compact_retry { + struct trace_entry ent; + int order; + int priority; + int result; + int retries; + int max_retries; + bool ret; + char __data[0]; }; -struct tracing_map_sort_key { - unsigned int field_idx; - bool descending; +struct trace_event_data_offsets_mark_victim { + u32 comm; + const void *comm_ptr_; }; -struct tracing_map_array; +struct trace_event_data_offsets_oom_score_adj_update {}; -struct tracing_map_ops; +struct trace_event_data_offsets_reclaim_retry_zone {}; -struct tracing_map { - unsigned int key_size; - unsigned int map_bits; - unsigned int map_size; - unsigned int max_elts; - atomic_t next_elt; - struct tracing_map_array *elts; - struct tracing_map_array *map; - const struct tracing_map_ops *ops; - void *private_data; - struct tracing_map_field fields[6]; - unsigned int n_fields; - int key_idx[3]; - unsigned int n_keys; - struct tracing_map_sort_key sort_key; - unsigned int n_vars; - atomic64_t hits; - atomic64_t drops; +struct trace_event_data_offsets_wake_reaper {}; + +struct trace_event_data_offsets_start_task_reaping {}; + +struct trace_event_data_offsets_finish_task_reaping {}; + +struct trace_event_data_offsets_skip_task_reaping {}; + +struct trace_event_data_offsets_compact_retry {}; + +enum umount_tree_flags { + UMOUNT_SYNC = 1, + UMOUNT_PROPAGATE = 2, + UMOUNT_CONNECTED = 4, }; -struct tracing_map_array { - unsigned int entries_per_page; - unsigned int entry_size_shift; - unsigned int entry_shift; - unsigned int entry_mask; - unsigned int n_pages; - void **pages; +enum mnt_tree_flags_t { + MNT_TREE_MOVE = 1, + MNT_TREE_BENEATH = 2, }; -struct tracing_map_ops { - int (*elt_alloc)(struct tracing_map_elt *); - void (*elt_free)(struct tracing_map_elt *); - void (*elt_clear)(struct tracing_map_elt *); - void (*elt_init)(struct tracing_map_elt *); +struct mount_attr { + __u64 attr_set; + __u64 attr_clr; + __u64 propagation; + __u64 userns_fd; }; -struct tracing_map_entry { - u32 key; - struct tracing_map_elt *val; +struct mnt_id_req { + __u32 size; + __u32 spare; + __u64 mnt_id; + __u64 param; }; -struct tracing_map_sort_entry { - void *key; - struct tracing_map_elt *elt; - bool elt_copied; - bool dup; +struct statmount { + __u32 size; + __u32 __spare1; + __u64 mask; + __u32 sb_dev_major; + __u32 sb_dev_minor; + __u64 sb_magic; + __u32 sb_flags; + __u32 fs_type; + __u64 mnt_id; + __u64 mnt_parent_id; + __u32 mnt_id_old; + __u32 mnt_parent_id_old; + __u64 mnt_attr; + __u64 mnt_propagation; + __u64 mnt_peer_group; + __u64 mnt_master; + __u64 propagate_from; + __u32 mnt_root; + __u32 mnt_point; + __u64 __spare2[50]; + char str[0]; }; -struct saved_cmdlines_buffer { - unsigned int map_pid_to_cmdline[32769]; - unsigned int *map_cmdline_to_pid; - unsigned int cmdline_num; - int cmdline_idx; - char saved_cmdlines[0]; +struct mount_kattr { + unsigned int attr_set; + unsigned int attr_clr; + unsigned int propagation; + unsigned int lookup_flags; + bool recurse; + struct user_namespace *mnt_userns; + struct mnt_idmap *mnt_idmap; }; -struct prog_poke_elem { - struct list_head list; - struct bpf_prog_aux *aux; -}; - -struct bpf_event_entry { - struct perf_event *event; - struct file *perf_file; - struct file *map_file; - struct callback_head rcu; -}; - -struct bpf_iter__bpf_map_elem { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - void *value; - }; -}; - -struct bpf_iter_seq_array_map_info { - struct bpf_map *map; - void *percpu_value_buf; - u32 index; -}; - -enum { - DIR_OFFSET_MIN = 2, -}; - -struct simple_transaction_argresp { - ssize_t size; - char data[0]; -}; - -struct simple_attr { - int (*get)(void *, u64 *); - int (*set)(void *, u64); - char get_buf[24]; - char set_buf[24]; - void *data; - const char *fmt; - struct mutex mutex; -}; - -struct msdos_dir_slot { - __u8 id; - __u8 name0_4[10]; - __u8 attr; - __u8 reserved; - __u8 alias_checksum; - __u8 name5_10[12]; - __le16 start; - __u8 name11_12[4]; -}; - -struct shortname_info { - unsigned char lower: 1; - unsigned char upper: 1; - unsigned char valid: 1; -}; - -enum { - CRYPTO_MSG_ALG_REQUEST = 0, - CRYPTO_MSG_ALG_REGISTER = 1, - CRYPTO_MSG_ALG_LOADED = 2, +struct kstatmount { + struct statmount __attribute__((btf_type_tag("user"))) *buf; + size_t bufsize; + struct vfsmount *mnt; + u64 mask; + struct path root; + struct statmount sm; + struct seq_file seq; }; enum { @@ -96266,6 +97070,12 @@ enum { __CRYPTOA_MAX = 3, }; +enum { + CRYPTO_MSG_ALG_REQUEST = 0, + CRYPTO_MSG_ALG_REGISTER = 1, + CRYPTO_MSG_ALG_LOADED = 2, +}; + struct crypto_larval { struct crypto_alg alg; struct crypto_alg *adult; @@ -96283,3203 +97093,188 @@ struct crypto_attr_alg { char name[128]; }; -struct cryptomgr_param { - struct rtattr *tb[34]; - struct { - struct rtattr attr; - struct crypto_attr_type data; - } type; - struct { - struct rtattr attr; - struct crypto_attr_alg data; - } attrs[32]; - char template[128]; - struct crypto_larval *larval; - u32 otype; - u32 omask; -}; - -struct io_shutdown { - struct file *file; - int how; -}; - -struct io_sr_msg { - struct file *file; - union { - struct compat_msghdr __attribute__((btf_type_tag("user"))) *umsg_compat; - struct user_msghdr __attribute__((btf_type_tag("user"))) *umsg; - void __attribute__((btf_type_tag("user"))) *buf; - }; - unsigned int len; - unsigned int done_io; - unsigned int msg_flags; - unsigned int nr_multishot_loops; - u16 flags; - u16 addr_len; - u16 buf_group; - void __attribute__((btf_type_tag("user"))) *addr; - void __attribute__((btf_type_tag("user"))) *msg_control; - struct io_kiocb *notif; -}; - -struct io_accept { - struct file *file; - struct sockaddr __attribute__((btf_type_tag("user"))) *addr; - int __attribute__((btf_type_tag("user"))) *addr_len; - int flags; - u32 file_slot; - unsigned long nofile; -}; - -struct io_socket { - struct file *file; - int domain; - int type; - int protocol; - int flags; - u32 file_slot; - unsigned long nofile; -}; - -struct io_connect { - struct file *file; - struct sockaddr __attribute__((btf_type_tag("user"))) *addr; - int addr_len; - bool in_progress; - bool seen_econnaborted; -}; - -struct io_async_msghdr { - union { - struct iovec fast_iov[8]; - struct { - struct iovec fast_iov_one; - __kernel_size_t controllen; - int namelen; - __kernel_size_t payloadlen; - }; - struct io_cache_entry cache; - }; - struct iovec *free_iov; - struct sockaddr __attribute__((btf_type_tag("user"))) *uaddr; - struct msghdr msg; - struct __kernel_sockaddr_storage addr; -}; - -struct io_notif_data { - struct file *file; - struct ubuf_info uarg; - unsigned long account_pages; - bool zc_report; - bool zc_used; - bool zc_copied; -}; - -struct io_uring_recvmsg_out { - __u32 namelen; - __u32 controllen; - __u32 payloadlen; - __u32 flags; -}; - -struct io_recvmsg_multishot_hdr { - struct io_uring_recvmsg_out msg; - struct __kernel_sockaddr_storage addr; -}; - -struct io_async_connect { - struct __kernel_sockaddr_storage address; -}; - -struct clk_div_table; - -struct clk_divider { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - const struct clk_div_table *table; - spinlock_t *lock; -}; - -struct clk_div_table { - unsigned int val; - unsigned int div; -}; - -struct virtio_admin_cmd { - __le16 opcode; - __le16 group_type; - __le64 group_member_id; - struct scatterlist *data_sg; - struct scatterlist *result_sg; -}; - -struct virtio_admin_cmd_status { - __le16 status; - __le16 status_qualifier; - __u8 reserved2[4]; -}; - -struct virtio_admin_cmd_hdr { - __le16 opcode; - __le16 group_type; - __u8 reserved1[12]; - __le64 group_member_id; -}; - -typedef int (*pm_callback_t)(struct device *); - -struct error_table_start___2 { - u32 valid; - u32 error_id; -}; - -enum iwlagn_wowlan_wakeup_filters { - IWLAGN_WOWLAN_WAKEUP_MAGIC_PACKET = 1, - IWLAGN_WOWLAN_WAKEUP_PATTERN_MATCH = 2, - IWLAGN_WOWLAN_WAKEUP_BEACON_MISS = 4, - IWLAGN_WOWLAN_WAKEUP_LINK_CHANGE = 8, - IWLAGN_WOWLAN_WAKEUP_GTK_REKEY_FAIL = 16, - IWLAGN_WOWLAN_WAKEUP_EAP_IDENT_REQ = 32, - IWLAGN_WOWLAN_WAKEUP_4WAY_HANDSHAKE = 64, - IWLAGN_WOWLAN_WAKEUP_ALWAYS = 128, - IWLAGN_WOWLAN_WAKEUP_ENABLE_NET_DETECT = 256, -}; - -enum { - NONE___2 = 0, - ADD = 1, - REMOVE = 2, - HT_RATE_INIT = 3, - ADD_RATE_INIT = 4, -}; - -enum iwl_ibss_manager { - IWL_NOT_IBSS_MANAGER = 0, - IWL_IBSS_MANAGER = 1, -}; - -struct iwlagn_tkip_rsc_tsc { - struct tkip_sc unicast_rsc[16]; - struct tkip_sc multicast_rsc[16]; - struct tkip_sc tsc; -}; - -struct iwlagn_aes_rsc_tsc { - struct aes_sc unicast_rsc[16]; - struct aes_sc multicast_rsc[16]; - struct aes_sc tsc; -}; - -union iwlagn_all_tsc_rsc { - struct iwlagn_tkip_rsc_tsc tkip; - struct iwlagn_aes_rsc_tsc aes; -}; - -struct iwlagn_wowlan_status { - __le64 replay_ctr; - __le32 rekey_status; - __le32 wakeup_reason; - u8 pattern_number; - u8 reserved1; - __le16 qos_seq_ctr[8]; - __le16 non_qos_seq_ctr; - __le16 reserved2; - union iwlagn_all_tsc_rsc tsc_rsc; - __le16 reserved3; -} __attribute__((packed)); - -struct iwl_resume_data { - struct iwl_priv *priv; - struct iwlagn_wowlan_status *cmd; - bool valid; -}; - -struct usb_phy_roothub { - struct phy *phy; +struct crypto_queue { struct list_head list; + struct list_head *backlog; + unsigned int qlen; + unsigned int max_qlen; }; -enum r10bio_state { - R10BIO_Uptodate = 0, - R10BIO_IsSync = 1, - R10BIO_IsRecover = 2, - R10BIO_IsReshape = 3, - R10BIO_Degraded = 4, - R10BIO_ReadError = 5, - R10BIO_MadeGood = 6, - R10BIO_WriteError = 7, - R10BIO_Previous = 8, - R10BIO_FailFast = 9, - R10BIO_Discard = 10, -}; - -enum bitmap_state { - BITMAP_STALE = 1, - BITMAP_WRITE_ERROR = 2, - BITMAP_HOSTENDIAN = 15, -}; - -enum geo_type { - geo_new = 0, - geo_old = 1, - geo_start = 2, -}; - -struct r10dev { - struct bio *bio; - union { - struct bio *repl_bio; - struct md_rdev *rdev; - }; - sector_t addr; - int devnum; -}; - -struct r10bio { - atomic_t remaining; - sector_t sector; - int sectors; - unsigned long state; - struct mddev *mddev; - struct bio *master_bio; - int read_slot; - struct list_head retry_list; - struct r10dev devs[0]; -}; - -struct raid1_plug_cb { - struct blk_plug_cb cb; - struct bio_list pending; - unsigned int count; -}; - -struct geom { - int raid_disks; - int near_copies; - int far_copies; - int far_offset; - sector_t stride; - int far_set_size; - int chunk_shift; - sector_t chunk_mask; -}; - -struct raid10_info; - -struct r10conf { - struct mddev *mddev; - struct raid10_info *mirrors; - struct raid10_info *mirrors_new; - struct raid10_info *mirrors_old; - spinlock_t device_lock; - struct geom prev; - struct geom geo; - int copies; - sector_t dev_sectors; - sector_t reshape_progress; - sector_t reshape_safe; - unsigned long reshape_checkpoint; - sector_t offset_diff; - struct list_head retry_list; - struct list_head bio_end_io_list; - struct bio_list pending_bio_list; - seqlock_t resync_lock; - atomic_t nr_pending; - int nr_waiting; - int nr_queued; - int barrier; - int array_freeze_pending; - sector_t next_resync; - int fullsync; - int have_replacement; - wait_queue_head_t wait_barrier; - mempool_t r10bio_pool; - mempool_t r10buf_pool; - struct page *tmppage; - struct bio_set bio_split; - struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; - sector_t cluster_sync_low; - sector_t cluster_sync_high; -}; - -struct raid10_info { - struct md_rdev *rdev; - struct md_rdev *replacement; - sector_t head_position; - int recovery_disabled; -}; - -struct resync_pages { - void *raid_bio; - struct page *pages[16]; -}; - -struct rsync_pages; - -struct llc_addr { - unsigned char lsap; - unsigned char mac[6]; -}; - -struct llc_sap { - unsigned char state; - unsigned char p_bit; - unsigned char f_bit; - refcount_t refcnt; - int (*rcv_func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *); - struct llc_addr laddr; - struct list_head node; - spinlock_t sk_lock; - int sk_count; - struct hlist_nulls_head sk_laddr_hash[64]; - struct hlist_head sk_dev_hash[64]; - struct callback_head rcu; +struct io_uring_cmd { + struct file *file; + const struct io_uring_sqe *sqe; + void (*task_work_cb)(struct io_uring_cmd *, unsigned int); + u32 cmd_op; + u32 flags; + u8 pdu[32]; }; enum { - ETHTOOL_A_FEC_UNSPEC = 0, - ETHTOOL_A_FEC_HEADER = 1, - ETHTOOL_A_FEC_MODES = 2, - ETHTOOL_A_FEC_AUTO = 3, - ETHTOOL_A_FEC_ACTIVE = 4, - ETHTOOL_A_FEC_STATS = 5, - __ETHTOOL_A_FEC_CNT = 6, - ETHTOOL_A_FEC_MAX = 5, + SOCKET_URING_OP_SIOCINQ = 0, + SOCKET_URING_OP_SIOCOUTQ = 1, + SOCKET_URING_OP_GETSOCKOPT = 2, + SOCKET_URING_OP_SETSOCKOPT = 3, }; -enum { - ETHTOOL_A_FEC_STAT_UNSPEC = 0, - ETHTOOL_A_FEC_STAT_PAD = 1, - ETHTOOL_A_FEC_STAT_CORRECTED = 2, - ETHTOOL_A_FEC_STAT_UNCORR = 3, - ETHTOOL_A_FEC_STAT_CORR_BITS = 4, - __ETHTOOL_A_FEC_STAT_CNT = 5, - ETHTOOL_A_FEC_STAT_MAX = 4, +struct msi_map { + int index; + int virq; }; -struct fec_stat_grp { - u64 stats[9]; - u8 cnt; +enum v4l2_fwnode_bus_type { + V4L2_FWNODE_BUS_TYPE_GUESS = 0, + V4L2_FWNODE_BUS_TYPE_CSI2_CPHY = 1, + V4L2_FWNODE_BUS_TYPE_CSI1 = 2, + V4L2_FWNODE_BUS_TYPE_CCP2 = 3, + V4L2_FWNODE_BUS_TYPE_CSI2_DPHY = 4, + V4L2_FWNODE_BUS_TYPE_PARALLEL = 5, + V4L2_FWNODE_BUS_TYPE_BT656 = 6, + V4L2_FWNODE_BUS_TYPE_DPI = 7, + NR_OF_V4L2_FWNODE_BUS_TYPE = 8, }; -struct fec_reply_data { - struct ethnl_reply_data base; - unsigned long fec_link_modes[2]; - u32 active_fec; - u8 fec_auto; - struct fec_stat_grp corr; - struct fec_stat_grp uncorr; - struct fec_stat_grp corr_bits; +enum acpi_device_swnode_ep_props { + ACPI_DEVICE_SWNODE_EP_REMOTE_EP = 0, + ACPI_DEVICE_SWNODE_EP_BUS_TYPE = 1, + ACPI_DEVICE_SWNODE_EP_REG = 2, + ACPI_DEVICE_SWNODE_EP_CLOCK_LANES = 3, + ACPI_DEVICE_SWNODE_EP_DATA_LANES = 4, + ACPI_DEVICE_SWNODE_EP_LANE_POLARITIES = 5, + ACPI_DEVICE_SWNODE_EP_LINK_FREQUENCIES = 6, + ACPI_DEVICE_SWNODE_EP_NUM_OF = 7, + ACPI_DEVICE_SWNODE_EP_NUM_ENTRIES = 8, }; -enum fib6_walk_state { - FWS_L = 0, - FWS_R = 1, - FWS_C = 2, - FWS_U = 3, +enum acpi_device_swnode_port_props { + ACPI_DEVICE_SWNODE_PORT_REG = 0, + ACPI_DEVICE_SWNODE_PORT_NUM_OF = 1, + ACPI_DEVICE_SWNODE_PORT_NUM_ENTRIES = 2, }; -enum { - FIB6_NO_SERNUM_CHANGE = 0, +enum acpi_device_swnode_dev_props { + ACPI_DEVICE_SWNODE_DEV_ROTATION = 0, + ACPI_DEVICE_SWNODE_DEV_CLOCK_FREQUENCY = 1, + ACPI_DEVICE_SWNODE_DEV_LED_MAX_MICROAMP = 2, + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_MICROAMP = 3, + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_TIMEOUT_US = 4, + ACPI_DEVICE_SWNODE_DEV_NUM_OF = 5, + ACPI_DEVICE_SWNODE_DEV_NUM_ENTRIES = 6, }; -struct fib6_walker { - struct list_head lh; - struct fib6_node *root; - struct fib6_node *node; - struct fib6_info *leaf; - enum fib6_walk_state state; - unsigned int skip; - unsigned int count; - unsigned int skip_in_node; - int (*func)(struct fib6_walker *); - void *args; -}; - -struct fib6_cleaner { - struct fib6_walker w; - struct net *net; - int (*func)(struct fib6_info *, void *); - int sernum; - void *arg; - bool skip_notify; -}; - -struct fib6_dump_arg { - struct net *net; - struct notifier_block *nb; - struct netlink_ext_ack *extack; -}; - -struct fib6_entry_notifier_info { - struct fib_notifier_info info; - struct fib6_info *rt; - unsigned int nsiblings; -}; - -struct lookup_args { - int offset; - const struct in6_addr *addr; -}; - -struct ipv6_route_iter { - struct seq_net_private p; - struct fib6_walker w; - loff_t skip; - struct fib6_table *tbl; - int sernum; -}; - -struct bpf_iter__ipv6_route { - union { - struct bpf_iter_meta *meta; - }; - union { - struct fib6_info *rt; - }; -}; - -struct fib6_nh_pcpu_arg { - struct fib6_info *from; - const struct fib6_table *table; -}; - -struct microcode_header_intel { - unsigned int hdrver; - unsigned int rev; - unsigned int date; - unsigned int sig; - unsigned int cksum; - unsigned int ldrver; - unsigned int pf; - unsigned int datasize; - unsigned int totalsize; - unsigned int metasize; - unsigned int min_req_ver; - unsigned int reserved; -}; - -struct microcode_intel { - struct microcode_header_intel hdr; - unsigned int bits[0]; -}; - -struct extended_signature { - unsigned int sig; - unsigned int pf; - unsigned int cksum; -}; - -struct extended_sigtable { - unsigned int count; - unsigned int cksum; - unsigned int reserved[3]; - struct extended_signature sigs[0]; -}; - -struct taint_flag { - char c_true; - char c_false; - bool module; -}; - -enum ftrace_dump_mode { - DUMP_NONE = 0, - DUMP_ALL = 1, - DUMP_ORIG = 2, - DUMP_PARAM = 3, -}; - -struct warn_args { - const char *fmt; - va_list args; -}; - -struct bpf_tuple { - struct bpf_prog *prog; - struct bpf_link *link; -}; - -typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); - -typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); - -typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); - -typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); - -typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); - -enum rmap_level { - RMAP_LEVEL_PTE = 0, - RMAP_LEVEL_PMD = 1, -}; - -enum hugetlb_page_flags { - HPG_restore_reserve = 0, - HPG_migratable = 1, - HPG_temporary = 2, - HPG_freed = 3, - HPG_vmemmap_optimized = 4, - HPG_raw_hwp_unreliable = 5, - __NR_HPAGEFLAGS = 6, -}; - -struct anon_vma_chain { - struct vm_area_struct *vma; - struct anon_vma *anon_vma; - struct list_head same_vma; - struct rb_node rb; - unsigned long rb_subtree_last; -}; - -struct trace_event_raw_tlb_flush { - struct trace_entry ent; - int reason; - unsigned long pages; - char __data[0]; -}; - -struct trace_event_raw_mm_migrate_pages { - struct trace_entry ent; - unsigned long succeeded; - unsigned long failed; - unsigned long thp_succeeded; - unsigned long thp_failed; - unsigned long thp_split; - unsigned long large_folio_split; - enum migrate_mode mode; - int reason; - char __data[0]; -}; - -struct trace_event_raw_mm_migrate_pages_start { - struct trace_entry ent; - enum migrate_mode mode; - int reason; - char __data[0]; -}; - -struct trace_event_raw_migration_pte { - struct trace_entry ent; - unsigned long addr; - unsigned long pte; - int order; - char __data[0]; -}; - -struct rmap_walk_control { - void *arg; - bool try_lock; - bool contended; - bool (*rmap_one)(struct folio *, struct vm_area_struct *, unsigned long, void *); - int (*done)(struct folio *); - struct anon_vma * (*anon_lock)(struct folio *, struct rmap_walk_control *); - bool (*invalid_vma)(struct vm_area_struct *, void *); -}; - -struct page_vma_mapped_walk { - unsigned long pfn; - unsigned long nr_pages; - unsigned long pgoff; - struct vm_area_struct *vma; - unsigned long address; - pmd_t *pmd; - pte_t *pte; - spinlock_t *ptl; - unsigned int flags; -}; - -struct trace_event_data_offsets_tlb_flush {}; - -struct trace_event_data_offsets_mm_migrate_pages {}; - -struct trace_event_data_offsets_mm_migrate_pages_start {}; - -struct trace_event_data_offsets_migration_pte {}; - -struct folio_referenced_arg { - int mapcount; - int referenced; - unsigned long vm_flags; - struct mem_cgroup *memcg; -}; - -struct dnotify_struct; - -struct dnotify_mark { - struct fsnotify_mark fsn_mark; - struct dnotify_struct *dn; -}; - -struct dnotify_struct { - struct dnotify_struct *dn_next; - __u32 dn_mask; - int dn_fd; - struct file *dn_filp; - fl_owner_t dn_owner; -}; - -struct inode_defrag { - struct rb_node rb_node; - u64 ino; - u64 transid; - u64 root; - u32 extent_thresh; -}; - -struct defrag_target_range { - struct list_head list; - u64 start; - u64 len; -}; - -struct btrfs_ioctl_defrag_range_args { - __u64 start; - __u64 len; - __u64 flags; - __u32 extent_thresh; - __u32 compress_type; - __u32 unused[4]; -}; - -struct sha512_state; - -typedef void sha512_block_fn(struct sha512_state *, const u8 *, int); - -struct sha512_state { - u64 state[8]; - u64 count[2]; - u8 buf[128]; -}; - -struct latency_bucket { - unsigned long total_latency; - int samples; -}; - -struct avg_latency_bucket { - unsigned long latency; - bool valid; -}; - -struct throtl_data { - struct throtl_service_queue service_queue; - struct request_queue *queue; - unsigned int nr_queued[2]; - unsigned int throtl_slice; - struct work_struct dispatch_work; - unsigned int limit_index; - bool limit_valid[2]; - unsigned long low_upgrade_time; - unsigned long low_downgrade_time; - unsigned int scale; - struct latency_bucket tmp_buckets[18]; - struct avg_latency_bucket avg_buckets[18]; - struct latency_bucket __attribute__((btf_type_tag("percpu"))) *latency_buckets[2]; - unsigned long last_calculate_time; - unsigned long filtered_latency; - bool track_bio_latency; -}; - -enum tg_state_flags { - THROTL_TG_PENDING = 1, - THROTL_TG_WAS_EMPTY = 2, - THROTL_TG_CANCELING = 4, -}; - -enum { - LIMIT_LOW = 0, - LIMIT_MAX = 1, - LIMIT_CNT = 2, -}; - -enum blktrace_cat { - BLK_TC_READ = 1, - BLK_TC_WRITE = 2, - BLK_TC_FLUSH = 4, - BLK_TC_SYNC = 8, - BLK_TC_SYNCIO = 8, - BLK_TC_QUEUE = 16, - BLK_TC_REQUEUE = 32, - BLK_TC_ISSUE = 64, - BLK_TC_COMPLETE = 128, - BLK_TC_FS = 256, - BLK_TC_PC = 512, - BLK_TC_NOTIFY = 1024, - BLK_TC_AHEAD = 2048, - BLK_TC_META = 4096, - BLK_TC_DISCARD = 8192, - BLK_TC_DRV_DATA = 16384, - BLK_TC_FUA = 32768, - BLK_TC_END = 32768, -}; - -struct nla_bitfield32 { - __u32 value; - __u32 selector; -}; - -struct acpi_pci_ioapic { - acpi_handle root_handle; +struct crs_csi2 { + struct list_head entry; acpi_handle handle; - u32 gsi_base; - struct resource res; - struct pci_dev *pdev; - struct list_head list; + struct acpi_device_software_nodes *swnodes; + struct list_head connections; + u32 port_count; }; -struct acpi_device_info { - u32 info_size; - u32 name; - acpi_object_type type; - u8 param_count; - u16 valid; - u8 flags; - u8 highest_dstates[4]; - u8 lowest_dstates[5]; - u64 address; - struct acpi_pnp_device_id hardware_id; - struct acpi_pnp_device_id unique_id; - struct acpi_pnp_device_id class_code; - struct acpi_pnp_device_id_list compatible_id_list; +struct crs_csi2_connection { + struct list_head entry; + struct acpi_resource_csi2_serialbus csi2_data; + acpi_handle remote_handle; + char remote_name[0]; }; -enum pce_status { - PCE_STATUS_NONE = 0, - PCE_STATUS_ACQUIRED = 1, - PCE_STATUS_PREPARED = 2, - PCE_STATUS_ENABLED = 3, - PCE_STATUS_ERROR = 4, +struct csi2_resources_walk_data { + acpi_handle handle; + struct list_head connections; }; -struct pm_clock_entry { +struct clk_lookup { struct list_head node; - char *con_id; + const char *dev_id; + const char *con_id; struct clk *clk; - enum pce_status status; - bool enabled_when_prepared; + struct clk_hw *clk_hw; }; -struct pm_clk_notifier_block { - struct notifier_block nb; - struct dev_pm_domain *pm_domain; - char *con_ids[0]; +struct clk_lookup_alloc { + struct clk_lookup cl; + char dev_id[24]; + char con_id[16]; +}; + +struct dw8250_port_data { + int line; + struct uart_8250_dma dma; + u8 dlf_size; + bool hw_rs485_support; +}; + +struct dw8250_platform_data; + +struct dw8250_data { + struct dw8250_port_data data; + const struct dw8250_platform_data *pdata; + int msr_mask_on; + int msr_mask_off; + struct clk *clk; + struct clk *pclk; + struct notifier_block clk_notifier; + struct work_struct clk_work; + struct reset_control *rst; + unsigned int skip_autocfg: 1; + unsigned int uart_16550_compatible: 1; +}; + +struct dw8250_platform_data { + u8 usr_reg; + u32 cpr_val; + unsigned int quirks; }; enum { - NVME_HOST_MEM_ENABLE = 1, - NVME_HOST_MEM_RETURN = 2, + e1000_10_half = 0, + e1000_10_full = 1, + e1000_100_half = 2, + e1000_100_full = 3, }; enum { - NVME_CMBMSC_CRE = 1, - NVME_CMBMSC_CMSE = 2, -}; - -enum { - NVME_CMBSZ_SQS = 1, - NVME_CMBSZ_CQS = 2, - NVME_CMBSZ_LISTS = 4, - NVME_CMBSZ_RDS = 8, - NVME_CMBSZ_WDS = 16, - NVME_CMBSZ_SZ_SHIFT = 12, - NVME_CMBSZ_SZ_MASK = 1048575, - NVME_CMBSZ_SZU_SHIFT = 8, - NVME_CMBSZ_SZU_MASK = 15, -}; - -enum { - NVME_SGL_FMT_DATA_DESC = 0, - NVME_SGL_FMT_SEG_DESC = 2, - NVME_SGL_FMT_LAST_SEG_DESC = 3, - NVME_KEY_SGL_FMT_DATA_DESC = 4, - NVME_TRANSPORT_SGL_DATA_DESC = 5, -}; - -struct nvme_queue; - -struct nvme_host_mem_buf_desc; - -struct nvme_dev { - struct nvme_queue *queues; - struct blk_mq_tag_set tagset; - struct blk_mq_tag_set admin_tagset; - u32 *dbs; - struct device *dev; - struct dma_pool *prp_page_pool; - struct dma_pool *prp_small_pool; - unsigned int online_queues; - unsigned int max_qid; - unsigned int io_queues[3]; - unsigned int num_vecs; - u32 q_depth; - int io_sqes; - u32 db_stride; - void *bar; - unsigned long bar_mapped_size; - struct mutex shutdown_lock; - bool subsystem; - u64 cmb_size; - bool cmb_use_sqes; - u32 cmbsz; - u32 cmbloc; - struct nvme_ctrl ctrl; - u32 last_ps; - bool hmb; - mempool_t *iod_mempool; - __le32 *dbbuf_dbs; - dma_addr_t dbbuf_dbs_dma_addr; - __le32 *dbbuf_eis; - dma_addr_t dbbuf_eis_dma_addr; - u64 host_mem_size; - u32 nr_host_mem_descs; - dma_addr_t host_mem_descs_dma; - struct nvme_host_mem_buf_desc *host_mem_descs; - void **host_mem_desc_bufs; - unsigned int nr_allocated_queues; - unsigned int nr_write_queues; - unsigned int nr_poll_queues; -}; - -struct nvme_completion; - -struct nvme_queue { - struct nvme_dev *dev; - spinlock_t sq_lock; - void *sq_cmds; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - spinlock_t cq_poll_lock; - struct nvme_completion *cqes; - dma_addr_t sq_dma_addr; - dma_addr_t cq_dma_addr; - u32 *q_db; - u32 q_depth; - u16 cq_vector; - u16 sq_tail; - u16 last_sq_tail; - u16 cq_head; - u16 qid; - u8 cq_phase; - u8 sqes; - unsigned long flags; - __le32 *dbbuf_sq_db; - __le32 *dbbuf_cq_db; - __le32 *dbbuf_sq_ei; - __le32 *dbbuf_cq_ei; - struct completion delete_done; - long: 64; - long: 64; -}; - -struct nvme_completion { - union nvme_result result; - __le16 sq_head; - __le16 sq_id; - __u16 command_id; - __le16 status; -}; - -struct nvme_host_mem_buf_desc { - __le64 addr; - __le32 size; - __u32 rsvd; -}; - -union nvme_descriptor { - struct nvme_sgl_desc *sg_list; - __le64 *prp_list; -}; - -struct nvme_iod { - struct nvme_request req; - struct nvme_command cmd; - bool aborted; - s8 nr_allocations; - unsigned int dma_len; - dma_addr_t first_dma; - dma_addr_t meta_dma; - struct sg_table sgt; - union nvme_descriptor list[5]; -}; - -enum iwlagn_false_alarm_state { - IWL_FA_TOO_MANY = 0, - IWL_FA_TOO_FEW = 1, - IWL_FA_GOOD_RANGE = 2, -}; - -struct iwl_calib_cmd { - struct iwl_calib_hdr hdr; - u8 data[0]; -}; - -struct iwl_calib_result { - struct list_head list; - size_t cmd_len; - struct iwl_calib_cmd cmd; -}; - -struct statistics_general_data { - u32 beacon_silence_rssi_a; - u32 beacon_silence_rssi_b; - u32 beacon_silence_rssi_c; - u32 beacon_energy_a; - u32 beacon_energy_b; - u32 beacon_energy_c; -}; - -struct iwl_enhance_sensitivity_cmd { - __le16 control; - __le16 enhance_table[23]; -}; - -struct iwl_sensitivity_cmd { - __le16 control; - __le16 table[11]; -}; - -struct iwl_calib_chain_noise_gain_cmd { - struct iwl_calib_hdr hdr; - u8 delta_gain_1; - u8 delta_gain_2; - u8 pad[2]; -}; - -enum skb_frame_desc_flags { - SKBDESC_DMA_MAPPED_RX = 1, - SKBDESC_DMA_MAPPED_TX = 2, - SKBDESC_IV_STRIPPED = 4, - SKBDESC_NOT_MAC80211 = 8, - SKBDESC_DESC_IN_SKB = 16, -}; - -enum txentry_desc_flags { - ENTRY_TXD_RTS_FRAME = 0, - ENTRY_TXD_CTS_FRAME = 1, - ENTRY_TXD_GENERATE_SEQ = 2, - ENTRY_TXD_FIRST_FRAGMENT = 3, - ENTRY_TXD_MORE_FRAG = 4, - ENTRY_TXD_REQ_TIMESTAMP = 5, - ENTRY_TXD_BURST = 6, - ENTRY_TXD_ACK = 7, - ENTRY_TXD_RETRY_MODE = 8, - ENTRY_TXD_ENCRYPT = 9, - ENTRY_TXD_ENCRYPT_PAIRWISE = 10, - ENTRY_TXD_ENCRYPT_IV = 11, - ENTRY_TXD_ENCRYPT_MMIC = 12, - ENTRY_TXD_HT_AMPDU = 13, - ENTRY_TXD_HT_BW_40 = 14, - ENTRY_TXD_HT_SHORT_GI = 15, - ENTRY_TXD_HT_MIMO_PS = 16, -}; - -enum data_queue_flags { - QUEUE_STARTED = 0, - QUEUE_PAUSED = 1, -}; - -enum rt2x00_dump_type { - DUMP_FRAME_RXDONE = 1, - DUMP_FRAME_TX = 2, - DUMP_FRAME_TXDONE = 3, - DUMP_FRAME_BEACON = 4, -}; - -struct ieee80211_bar { - __le16 frame_control; - __le16 duration; - __u8 ra[6]; - __u8 ta[6]; - __le16 control; - __le16 start_seq_num; -}; - -struct rt2x00_bar_list_entry { - struct list_head list; - struct callback_head head; - struct queue_entry *entry; - int block_acked; - __u8 ra[6]; - __u8 ta[6]; - __le16 control; - __le16 start_seq_num; -}; - -struct rt2x00_rate { - unsigned short flags; - unsigned short bitrate; - unsigned short ratemask; - unsigned short plcp; - unsigned short mcs; -}; - -struct serport { - struct tty_struct *tty; - wait_queue_head_t wait; - struct serio *serio; - struct serio_device_id id; - spinlock_t lock; - unsigned long flags; -}; - -struct dax_operations { - long (*direct_access)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *); - bool (*dax_supported)(struct dax_device *, struct block_device *, int, sector_t, sector_t); - int (*zero_page_range)(struct dax_device *, unsigned long, size_t); - size_t (*recovery_write)(struct dax_device *, unsigned long, void *, size_t, struct iov_iter *); -}; - -enum { - DM_TIO_INSIDE_DM_IO = 0, - DM_TIO_IS_DUPLICATE_BIO = 1, -}; - -enum { - DM_IO_ACCOUNTED = 0, - DM_IO_WAS_SPLIT = 1, - DM_IO_BLK_STAT = 2, -}; - -struct table_device { - struct list_head list; - refcount_t count; - struct dm_dev dm_dev; -}; - -struct clone_info { - struct dm_table *map; - struct bio *bio; - struct dm_io *io; - sector_t sector; - unsigned int sector_count; - bool is_abnormal_io: 1; - bool submit_as_polled: 1; -}; - -struct dm_pr { - u64 old_key; - u64 new_key; - u32 flags; - bool abort; - bool fail_early; - int ret; - enum pr_type type; - struct pr_keys *read_keys; - struct pr_held_reservation *rsv; -}; - -enum { - ETHTOOL_A_MODULE_UNSPEC = 0, - ETHTOOL_A_MODULE_HEADER = 1, - ETHTOOL_A_MODULE_POWER_MODE_POLICY = 2, - ETHTOOL_A_MODULE_POWER_MODE = 3, - __ETHTOOL_A_MODULE_CNT = 4, - ETHTOOL_A_MODULE_MAX = 3, -}; - -struct module_reply_data { - struct ethnl_reply_data base; - struct ethtool_module_power_mode_params power; -}; - -struct xt_af { - struct mutex mutex; - struct list_head match; - struct list_head target; -}; - -enum audit_nfcfgop { - AUDIT_XT_OP_REGISTER = 0, - AUDIT_XT_OP_REPLACE = 1, - AUDIT_XT_OP_UNREGISTER = 2, - AUDIT_NFT_OP_TABLE_REGISTER = 3, - AUDIT_NFT_OP_TABLE_UNREGISTER = 4, - AUDIT_NFT_OP_CHAIN_REGISTER = 5, - AUDIT_NFT_OP_CHAIN_UNREGISTER = 6, - AUDIT_NFT_OP_RULE_REGISTER = 7, - AUDIT_NFT_OP_RULE_UNREGISTER = 8, - AUDIT_NFT_OP_SET_REGISTER = 9, - AUDIT_NFT_OP_SET_UNREGISTER = 10, - AUDIT_NFT_OP_SETELEM_REGISTER = 11, - AUDIT_NFT_OP_SETELEM_UNREGISTER = 12, - AUDIT_NFT_OP_GEN_REGISTER = 13, - AUDIT_NFT_OP_OBJ_REGISTER = 14, - AUDIT_NFT_OP_OBJ_UNREGISTER = 15, - AUDIT_NFT_OP_OBJ_RESET = 16, - AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17, - AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18, - AUDIT_NFT_OP_SETELEM_RESET = 19, - AUDIT_NFT_OP_RULE_RESET = 20, - AUDIT_NFT_OP_INVALID = 21, -}; - -enum { - MTTG_TRAV_INIT = 0, - MTTG_TRAV_NFP_UNSPEC = 1, - MTTG_TRAV_NFP_SPEC = 2, - MTTG_TRAV_DONE = 3, -}; - -struct xt_template { - struct list_head list; - int (*table_init)(struct net *); - struct module *me; - char name[32]; -}; - -struct nf_mttg_trav { - struct list_head *head; - struct list_head *curr; - uint8_t class; -}; - -struct xt_pernet { - struct list_head tables[11]; -}; - -enum { - UDP_BPF_IPV4 = 0, - UDP_BPF_IPV6 = 1, - UDP_BPF_NUM_PROTS = 2, -}; - -enum { - IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC = 0, - IFLA_BRIDGE_VLAN_TUNNEL_ID = 1, - IFLA_BRIDGE_VLAN_TUNNEL_VID = 2, - IFLA_BRIDGE_VLAN_TUNNEL_FLAGS = 3, - __IFLA_BRIDGE_VLAN_TUNNEL_MAX = 4, -}; - -struct link_container { - struct ieee80211_link_data data; - struct ieee80211_bss_conf conf; -}; - -enum { - LBR_FORMAT_32 = 0, - LBR_FORMAT_LIP = 1, - LBR_FORMAT_EIP = 2, - LBR_FORMAT_EIP_FLAGS = 3, - LBR_FORMAT_EIP_FLAGS2 = 4, - LBR_FORMAT_INFO = 5, - LBR_FORMAT_TIME = 6, - LBR_FORMAT_INFO2 = 7, - LBR_FORMAT_MAX_KNOWN = 7, -}; - -enum { - LBR_NONE = 0, - LBR_VALID = 1, -}; - -enum { - ARCH_LBR_BR_TYPE_JCC = 0, - ARCH_LBR_BR_TYPE_NEAR_IND_JMP = 1, - ARCH_LBR_BR_TYPE_NEAR_REL_JMP = 2, - ARCH_LBR_BR_TYPE_NEAR_IND_CALL = 3, - ARCH_LBR_BR_TYPE_NEAR_REL_CALL = 4, - ARCH_LBR_BR_TYPE_NEAR_RET = 5, - ARCH_LBR_BR_TYPE_KNOWN_MAX = 5, - ARCH_LBR_BR_TYPE_MAP_MAX = 16, -}; - -struct x86_perf_task_context_opt { - int lbr_callstack_users; - int lbr_stack_state; - int log_id; -}; - -struct x86_perf_task_context_arch_lbr { - struct x86_perf_task_context_opt opt; - struct lbr_entry entries[0]; -}; - -struct x86_perf_task_context { - u64 lbr_sel; - int tos; - int valid_lbrs; - struct x86_perf_task_context_opt opt; - struct lbr_entry lbr[32]; -}; - -union cpuid28_eax { - struct { - unsigned int lbr_depth_mask: 8; - unsigned int reserved: 22; - unsigned int lbr_deep_c_reset: 1; - unsigned int lbr_lip: 1; - } split; - unsigned int full; -}; - -union cpuid28_ecx { - struct { - unsigned int lbr_mispred: 1; - unsigned int lbr_timed_lbr: 1; - unsigned int lbr_br_type: 1; - unsigned int reserved: 13; - unsigned int lbr_counters: 4; - } split; - unsigned int full; -}; - -union cpuid28_ebx { - struct { - unsigned int lbr_cpl: 1; - unsigned int lbr_filter: 1; - unsigned int lbr_call_stack: 1; - } split; - unsigned int full; -}; - -struct arch_lbr_state { - u64 lbr_ctl; - u64 lbr_depth; - u64 ler_from; - u64 ler_to; - u64 ler_info; - struct lbr_entry entries[0]; -}; - -struct x86_perf_task_context_arch_lbr_xsave { - struct x86_perf_task_context_opt opt; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct xregs_state xsave; - struct { - struct fxregs_state i387; - struct xstate_header header; - struct arch_lbr_state lbr; - long: 64; - long: 64; - long: 64; - }; - }; -}; - -struct x86_pmu_lbr { - unsigned int nr; - unsigned int from; - unsigned int to; - unsigned int info; -}; - -typedef void (*btf_trace_page_fault_user)(void *, unsigned long, struct pt_regs *, unsigned long); - -typedef void (*btf_trace_page_fault_kernel)(void *, unsigned long, struct pt_regs *, unsigned long); - -struct trace_event_raw_x86_exceptions { - struct trace_entry ent; - unsigned long address; - unsigned long ip; - unsigned long error_code; - char __data[0]; -}; - -struct trace_event_data_offsets_x86_exceptions {}; - -struct ce_unbind { - struct clock_event_device *ce; - int res; -}; - -struct rusage { - struct __kernel_old_timeval ru_utime; - struct __kernel_old_timeval ru_stime; - __kernel_long_t ru_maxrss; - __kernel_long_t ru_ixrss; - __kernel_long_t ru_idrss; - __kernel_long_t ru_isrss; - __kernel_long_t ru_minflt; - __kernel_long_t ru_majflt; - __kernel_long_t ru_nswap; - __kernel_long_t ru_inblock; - __kernel_long_t ru_oublock; - __kernel_long_t ru_msgsnd; - __kernel_long_t ru_msgrcv; - __kernel_long_t ru_nsignals; - __kernel_long_t ru_nvcsw; - __kernel_long_t ru_nivcsw; -}; - -typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); - -typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); - -struct old_linux_dirent { - unsigned long d_ino; - unsigned long d_offset; - unsigned short d_namlen; - char d_name[0]; -}; - -struct readdir_callback { - struct dir_context ctx; - struct old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; - int result; -}; - -struct linux_dirent { - unsigned long d_ino; - unsigned long d_off; - unsigned short d_reclen; - char d_name[0]; -}; - -struct getdents_callback { - struct dir_context ctx; - struct linux_dirent __attribute__((btf_type_tag("user"))) *current_dir; - int prev_reclen; - int count; - int error; -}; - -struct linux_dirent64 { - u64 d_ino; - s64 d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[0]; -}; - -struct getdents_callback64 { - struct dir_context ctx; - struct linux_dirent64 __attribute__((btf_type_tag("user"))) *current_dir; - int prev_reclen; - int count; - int error; -}; - -typedef __kernel_mode_t mode_t; - -struct orlov_stats { - __u64 free_clusters; - __u32 free_inodes; - __u32 used_dirs; -}; - -enum { - HUGETLB_SHMFS_INODE = 1, - HUGETLB_ANONHUGE_INODE = 2, -}; - -enum hugetlbfs_size_type { - NO_SIZE = 0, - SIZE_STD = 1, - SIZE_PERCENT = 2, -}; - -enum hugetlb_param { - Opt_gid___5 = 0, - Opt_min_size = 1, - Opt_mode___4 = 2, - Opt_nr_inodes = 3, - Opt_pagesize = 4, - Opt_size = 5, - Opt_uid___4 = 6, -}; - -struct hugetlbfs_inode_info { - struct inode vfs_inode; - unsigned int seals; -}; - -struct vm_unmapped_area_info { - unsigned long flags; - unsigned long length; - unsigned long low_limit; - unsigned long high_limit; - unsigned long align_mask; - unsigned long align_offset; -}; - -struct hugetlb_vma_lock { - struct kref refs; - struct rw_semaphore rw_sema; - struct vm_area_struct *vma; -}; - -struct hugetlbfs_fs_context { - struct hstate *hstate; - unsigned long long max_size_opt; - unsigned long long min_size_opt; - long max_hpages; - long nr_inodes; - long min_hpages; - enum hugetlbfs_size_type max_val_type; - enum hugetlbfs_size_type min_val_type; - kuid_t uid; - kgid_t gid; - umode_t mode; -}; - -struct btrfs_csum_item { - __u8 csum; -}; - -struct scomp_scratch { - spinlock_t lock; - void *src; - void *dst; -}; - -struct acomp_req; - -struct crypto_acomp { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - unsigned int reqsize; - struct crypto_tfm base; -}; - -struct acomp_req { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int slen; - unsigned int dlen; - u32 flags; - void *__ctx[0]; -}; - -struct blk_mq_hw_ctx_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_mq_hw_ctx *, char *); -}; - -typedef __kernel_rwf_t rwf_t; - -struct io_rw { - struct kiocb kiocb; - u64 addr; - u32 len; - rwf_t flags; -}; - -struct iov_iter_state { - size_t iov_offset; - size_t count; - unsigned long nr_segs; -}; - -struct io_rw_state { - struct iov_iter iter; - struct iov_iter_state iter_state; - struct iovec fast_iov[8]; -}; - -struct io_async_rw { - struct io_rw_state s; - const struct iovec *free_iovec; - size_t bytes_done; - struct wait_page_queue wpq; -}; - -struct wait_page_key { - struct folio *folio; - int bit_nr; - int page_match; + e1000_igp_cable_length_10 = 10, + e1000_igp_cable_length_20 = 20, + e1000_igp_cable_length_30 = 30, + e1000_igp_cable_length_40 = 40, + e1000_igp_cable_length_50 = 50, + e1000_igp_cable_length_60 = 60, + e1000_igp_cable_length_70 = 70, + e1000_igp_cable_length_80 = 80, + e1000_igp_cable_length_90 = 90, + e1000_igp_cable_length_100 = 100, + e1000_igp_cable_length_110 = 110, + e1000_igp_cable_length_115 = 115, + e1000_igp_cable_length_120 = 120, + e1000_igp_cable_length_130 = 130, + e1000_igp_cable_length_140 = 140, + e1000_igp_cable_length_150 = 150, + e1000_igp_cable_length_160 = 160, + e1000_igp_cable_length_170 = 170, + e1000_igp_cable_length_180 = 180, }; typedef enum { - CODES = 0, - LENS = 1, - DISTS = 2, -} codetype; - -typedef struct { - unsigned char op; - unsigned char bits; - unsigned short val; -} code; - -typedef struct { - size_t bitContainer; - unsigned int bitPos; - char *startPtr; - char *ptr; - char *endPtr; -} BIT_CStream_t; - -struct node_groups { - unsigned int id; - union { - unsigned int ngroups; - unsigned int ncpus; - }; -}; - -struct aperture_range { - struct device *dev; - resource_size_t base; - resource_size_t size; - struct list_head lh; - void (*detach)(struct device *); -}; - -enum pr_status { - PR_STS_SUCCESS = 0, - PR_STS_IOERR = 2, - PR_STS_RESERVATION_CONFLICT = 24, - PR_STS_RETRY_PATH_FAILURE = 917504, - PR_STS_PATH_FAST_FAILED = 983040, - PR_STS_PATH_FAILED = 65536, -}; - -enum nvme_pr_type { - NVME_PR_WRITE_EXCLUSIVE = 1, - NVME_PR_EXCLUSIVE_ACCESS = 2, - NVME_PR_WRITE_EXCLUSIVE_REG_ONLY = 3, - NVME_PR_EXCLUSIVE_ACCESS_REG_ONLY = 4, - NVME_PR_WRITE_EXCLUSIVE_ALL_REGS = 5, - NVME_PR_EXCLUSIVE_ACCESS_ALL_REGS = 6, -}; - -enum nvme_eds { - NVME_EXTENDED_DATA_STRUCT = 1, -}; - -struct nvme_registered_ctrl { - __le16 cntlid; - __u8 rcsts; - __u8 rsvd3[5]; - __le64 hostid; - __le64 rkey; -}; - -struct nvme_reservation_status { - __le32 gen; - __u8 rtype; - __u8 regctl[2]; - __u8 resv5[2]; - __u8 ptpls; - __u8 resv10[14]; - struct nvme_registered_ctrl regctl_ds[0]; -}; - -struct nvme_registered_ctrl_ext { - __le16 cntlid; - __u8 rcsts; - __u8 rsvd3[5]; - __le64 rkey; - __u8 hostid[16]; - __u8 rsvd32[32]; -}; - -struct nvme_reservation_status_ext { - __le32 gen; - __u8 rtype; - __u8 regctl[2]; - __u8 resv5[2]; - __u8 ptpls; - __u8 resv10[14]; - __u8 rsvd24[40]; - struct nvme_registered_ctrl_ext regctl_eds[0]; -}; - -struct rtl_cond { - bool (*check)(struct rtl8169_private *); - const char *msg; -}; - -enum rtl_dash_type { - RTL_DASH_NONE = 0, - RTL_DASH_DP = 1, - RTL_DASH_EP = 2, -}; - -struct ring_info { - struct sk_buff *skb; - u32 len; -}; - -struct rtl8169_tc_offsets { - bool inited; - __le64 tx_errors; - __le32 tx_multi_collision; - __le16 tx_aborted; - __le16 rx_missed; -}; - -struct TxDesc; - -struct RxDesc; - -struct rtl8169_counters; - -struct rtl8169_private { - void *mmio_addr; - struct pci_dev *pci_dev; - struct net_device *dev; - struct phy_device *phydev; - struct napi_struct napi; - enum mac_version mac_version; - enum rtl_dash_type dash_type; - u32 cur_rx; - u32 cur_tx; - u32 dirty_tx; - struct TxDesc *TxDescArray; - struct RxDesc *RxDescArray; - dma_addr_t TxPhyAddr; - dma_addr_t RxPhyAddr; - struct page *Rx_databuff[256]; - struct ring_info tx_skb[256]; - u16 cp_cmd; - u16 tx_lpi_timer; - u32 irq_mask; - int irq; - struct clk *clk; - struct { - unsigned long flags[1]; - struct work_struct work; - } wk; - raw_spinlock_t config25_lock; - raw_spinlock_t mac_ocp_lock; - struct mutex led_lock; - raw_spinlock_t cfg9346_usage_lock; - int cfg9346_usage_count; - unsigned int supports_gmii: 1; - unsigned int aspm_manageable: 1; - unsigned int dash_enabled: 1; - dma_addr_t counters_phys_addr; - struct rtl8169_counters *counters; - struct rtl8169_tc_offsets tc_offset; - u32 saved_wolopts; - const char *fw_name; - struct rtl_fw *rtl_fw; - u32 ocp_base; -}; - -struct netdev_queue_stats_rx { - u64 bytes; - u64 packets; - u64 alloc_fail; -}; - -struct netdev_queue_stats_tx { - u64 bytes; - u64 packets; -}; - -struct TxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; -}; - -struct RxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; -}; - -struct rtl8169_counters { - __le64 tx_packets; - __le64 rx_packets; - __le64 tx_errors; - __le32 rx_errors; - __le16 rx_missed; - __le16 align_errors; - __le32 tx_one_collision; - __le32 tx_multi_collision; - __le64 rx_unicast; - __le64 rx_broadcast; - __le32 rx_multicast; - __le16 tx_aborted; - __le16 tx_underun; -}; - -typedef void (*rtl_generic_fct)(struct rtl8169_private *); - -struct ephy_info { - unsigned int offset; - u16 mask; - u16 bits; -}; - -struct rtl_mac_info { - u16 mask; - u16 val; - enum mac_version ver; -}; - -struct rtl_coalesce_info { - u32 speed; - u32 scale_nsecs[4]; -}; - -enum rtl8168_registers { - LED_CTRL = 24, - LED_FREQ = 26, - EEE_LED = 27, - ERIDR = 112, - ERIAR = 116, - EPHY_RXER_NUM = 124, - OCPDR = 176, - OCPAR = 180, - GPHY_OCP = 184, - RDSAR1 = 208, - MISC = 240, -}; - -enum rtl8168_8101_registers { - CSIDR = 100, - CSIAR = 104, - PMCH = 111, - EPHYAR = 128, - DLLPR = 208, - DBG_REG = 209, - TWSI = 210, - MCU = 211, - EFUSEAR = 220, - MISC_1 = 242, -}; - -enum rtl_registers { - MAC0 = 0, - MAC4 = 4, - MAR0 = 8, - CounterAddrLow = 16, - CounterAddrHigh = 20, - TxDescStartAddrLow = 32, - TxDescStartAddrHigh = 36, - TxHDescStartAddrLow = 40, - TxHDescStartAddrHigh = 44, - FLASH = 48, - ERSR = 54, - ChipCmd = 55, - TxPoll = 56, - IntrMask = 60, - IntrStatus = 62, - TxConfig = 64, - RxConfig = 68, - Cfg9346 = 80, - Config0 = 81, - Config1 = 82, - Config2 = 83, - Config3 = 84, - Config4 = 85, - Config5 = 86, - PHYAR = 96, - PHYstatus = 108, - RxMaxSize = 218, - CPlusCmd = 224, - IntrMitigate = 226, - RxDescAddrLow = 228, - RxDescAddrHigh = 232, - EarlyTxThres = 236, - MaxTxPacketSize = 236, - FuncEvent = 240, - FuncEventMask = 244, - FuncPresetState = 248, - IBCR0 = 248, - IBCR2 = 249, - IBIMR0 = 250, - IBISR0 = 251, - FuncForceEvent = 252, -}; - -enum rtl_register_content { - SYSErr = 32768, - PCSTimeout = 16384, - SWInt = 256, - TxDescUnavail = 128, - RxFIFOOver = 64, - LinkChg = 32, - RxOverflow = 16, - TxErr = 8, - TxOK = 4, - RxErr = 2, - RxOK = 1, - RxRWT = 4194304, - RxRES = 2097152, - RxRUNT = 1048576, - RxCRC = 524288, - StopReq = 128, - CmdReset = 16, - CmdRxEnb = 8, - CmdTxEnb = 4, - RxBufEmpty = 1, - HPQ = 128, - NPQ = 64, - FSWInt = 1, - Cfg9346_Lock = 0, - Cfg9346_Unlock = 192, - AcceptErr = 32, - AcceptRunt = 16, - AcceptBroadcast = 8, - AcceptMulticast = 4, - AcceptMyPhys = 2, - AcceptAllPhys = 1, - TxInterFrameGapShift = 24, - TxDMAShift = 8, - LEDS1 = 128, - LEDS0 = 64, - Speed_down = 16, - MEMMAP = 8, - IOMAP = 4, - VPD = 2, - PMEnable = 1, - ClkReqEn = 128, - MSIEnable = 32, - PCI_Clock_66MHz = 1, - PCI_Clock_33MHz = 0, - MagicPacket = 32, - LinkUp = 16, - Jumbo_En0 = 4, - Rdy_to_L23 = 2, - Beacon_en = 1, - Jumbo_En1 = 2, - BWF = 64, - MWF = 32, - UWF = 16, - Spi_en = 8, - LanWake = 2, - PMEStatus = 1, - ASPM_en = 1, - EnableBist = 32768, - Mac_dbgo_oe = 16384, - EnAnaPLL = 16384, - Normal_mode = 8192, - Force_half_dup = 4096, - Force_rxflow_en = 2048, - Force_txflow_en = 1024, - Cxpl_dbg_sel = 512, - ASF = 256, - PktCntrDisable = 128, - Mac_dbgo_sel = 28, - RxVlan = 64, - RxChkSum = 32, - PCIDAC = 16, - PCIMulRW = 8, - TBI_Enable = 128, - TxFlowCtrl = 64, - RxFlowCtrl = 32, - _1000bpsF = 16, - _100bps = 8, - _10bps = 4, - LinkStatus = 2, - FullDup = 1, - CounterReset = 1, - CounterDump = 8, - MagicPacket_v2 = 65536, -}; - -enum rtl_desc_bit { - DescOwn = -2147483648, - RingEnd = 1073741824, - FirstFrag = 536870912, - LastFrag = 268435456, -}; - -enum rtl_flag { - RTL_FLAG_TASK_ENABLED = 0, - RTL_FLAG_TASK_RESET_PENDING = 1, - RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE = 2, - RTL_FLAG_TASK_TX_TIMEOUT = 3, - RTL_FLAG_MAX = 4, -}; - -enum rtl8125_registers { - LEDSEL0 = 24, - INT_CFG0_8125 = 52, - IntrMask_8125 = 56, - IntrStatus_8125 = 60, - INT_CFG1_8125 = 122, - LEDSEL2 = 132, - LEDSEL1 = 134, - TxPoll_8125 = 144, - LEDSEL3 = 150, - MAC0_BKP = 6624, - EEE_TXIDLE_TIMER_8125 = 24648, -}; - -enum rtl_tx_desc_bit { - TD_LSO = 134217728, - TxVlanTag = 131072, -}; - -enum rtl_tx_desc_bit_0 { - TD0_TCP_CS = 65536, - TD0_UDP_CS = 131072, - TD0_IP_CS = 262144, -}; - -enum rtl_tx_desc_bit_1 { - TD1_GTSENV4 = 67108864, - TD1_GTSENV6 = 33554432, - TD1_IPv6_CS = 268435456, - TD1_IPv4_CS = 536870912, - TD1_TCP_CS = 1073741824, - TD1_UDP_CS = -2147483648, -}; - -enum rtl_rx_desc_bit { - PID1 = 262144, - PID0 = 131072, - IPFail = 65536, - UDPFail = 32768, - TCPFail = 16384, - RxVlanTag = 65536, -}; - -enum rtw_pwr_seq_cmd_delay_unit { - RTW_PWR_DELAY_US = 0, - RTW_PWR_DELAY_MS = 1, -}; - -struct sdio_func; - -struct rtw_sdio_work_data; - -struct rtw_sdio { - struct sdio_func *sdio_func; - u32 irq_mask; - u8 rx_addr; - bool sdio3_bus_mode; - void *irq_thread; - struct workqueue_struct *txwq; - struct rtw_sdio_work_data *tx_handler_data; - struct sk_buff_head tx_queue[8]; -}; - -struct rtw_sdio_work_data { - struct work_struct work; - struct rtw_dev *rtwdev; -}; - -struct subsys_interface { - const char *name; - const struct bus_type *subsys; - struct list_head node; - int (*add_dev)(struct device *, struct subsys_interface *); - void (*remove_dev)(struct device *, struct subsys_interface *); -}; - -struct cpufreq_freqs { - struct cpufreq_policy *policy; - unsigned int old; - unsigned int new; - u8 flags; -}; - -enum { - ETHTOOL_A_MM_STAT_UNSPEC = 0, - ETHTOOL_A_MM_STAT_PAD = 1, - ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS = 2, - ETHTOOL_A_MM_STAT_SMD_ERRORS = 3, - ETHTOOL_A_MM_STAT_REASSEMBLY_OK = 4, - ETHTOOL_A_MM_STAT_RX_FRAG_COUNT = 5, - ETHTOOL_A_MM_STAT_TX_FRAG_COUNT = 6, - ETHTOOL_A_MM_STAT_HOLD_COUNT = 7, - __ETHTOOL_A_MM_STAT_CNT = 8, - ETHTOOL_A_MM_STAT_MAX = 7, -}; - -enum { - ETHTOOL_A_MM_UNSPEC = 0, - ETHTOOL_A_MM_HEADER = 1, - ETHTOOL_A_MM_PMAC_ENABLED = 2, - ETHTOOL_A_MM_TX_ENABLED = 3, - ETHTOOL_A_MM_TX_ACTIVE = 4, - ETHTOOL_A_MM_TX_MIN_FRAG_SIZE = 5, - ETHTOOL_A_MM_RX_MIN_FRAG_SIZE = 6, - ETHTOOL_A_MM_VERIFY_ENABLED = 7, - ETHTOOL_A_MM_VERIFY_STATUS = 8, - ETHTOOL_A_MM_VERIFY_TIME = 9, - ETHTOOL_A_MM_MAX_VERIFY_TIME = 10, - ETHTOOL_A_MM_STATS = 11, - __ETHTOOL_A_MM_CNT = 12, - ETHTOOL_A_MM_MAX = 11, -}; - -struct mm_reply_data { - struct ethnl_reply_data base; - struct ethtool_mm_state state; - struct ethtool_mm_stats stats; -}; - -struct tcp_plb_state { - u8 consec_cong_rounds: 5; - u8 unused: 3; - u32 pause_until; -}; - -struct tcp_seq_afinfo { - sa_family_t family; -}; - -enum tcp_seq_states { - TCP_SEQ_STATE_LISTENING = 0, - TCP_SEQ_STATE_ESTABLISHED = 1, -}; - -struct tcp_ao_hdr { - u8 kind; - u8 length; - u8 keyid; - u8 rnext_keyid; -}; - -typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); - -struct tcp_iter_state { - struct seq_net_private p; - enum tcp_seq_states state; - struct sock *syn_wait_sk; - int bucket; - int offset; - int sbucket; - int num; - loff_t last_pos; -}; - -struct p4_event_bind { - unsigned int opcode; - unsigned int escr_msr[2]; - unsigned int escr_emask; - unsigned int shared; - signed char cntr[6]; -}; - -struct p4_pebs_bind { - unsigned int metric_pebs; - unsigned int metric_vert; -}; - -struct p4_event_alias { - u64 original; - u64 alternative; -}; - -enum P4_PEBS_METRIC { - P4_PEBS_METRIC__none = 0, - P4_PEBS_METRIC__1stl_cache_load_miss_retired = 1, - P4_PEBS_METRIC__2ndl_cache_load_miss_retired = 2, - P4_PEBS_METRIC__dtlb_load_miss_retired = 3, - P4_PEBS_METRIC__dtlb_store_miss_retired = 4, - P4_PEBS_METRIC__dtlb_all_miss_retired = 5, - P4_PEBS_METRIC__tagged_mispred_branch = 6, - P4_PEBS_METRIC__mob_load_replay_retired = 7, - P4_PEBS_METRIC__split_load_retired = 8, - P4_PEBS_METRIC__split_store_retired = 9, - P4_PEBS_METRIC__max = 10, -}; - -enum P4_EVENTS { - P4_EVENT_TC_DELIVER_MODE = 0, - P4_EVENT_BPU_FETCH_REQUEST = 1, - P4_EVENT_ITLB_REFERENCE = 2, - P4_EVENT_MEMORY_CANCEL = 3, - P4_EVENT_MEMORY_COMPLETE = 4, - P4_EVENT_LOAD_PORT_REPLAY = 5, - P4_EVENT_STORE_PORT_REPLAY = 6, - P4_EVENT_MOB_LOAD_REPLAY = 7, - P4_EVENT_PAGE_WALK_TYPE = 8, - P4_EVENT_BSQ_CACHE_REFERENCE = 9, - P4_EVENT_IOQ_ALLOCATION = 10, - P4_EVENT_IOQ_ACTIVE_ENTRIES = 11, - P4_EVENT_FSB_DATA_ACTIVITY = 12, - P4_EVENT_BSQ_ALLOCATION = 13, - P4_EVENT_BSQ_ACTIVE_ENTRIES = 14, - P4_EVENT_SSE_INPUT_ASSIST = 15, - P4_EVENT_PACKED_SP_UOP = 16, - P4_EVENT_PACKED_DP_UOP = 17, - P4_EVENT_SCALAR_SP_UOP = 18, - P4_EVENT_SCALAR_DP_UOP = 19, - P4_EVENT_64BIT_MMX_UOP = 20, - P4_EVENT_128BIT_MMX_UOP = 21, - P4_EVENT_X87_FP_UOP = 22, - P4_EVENT_TC_MISC = 23, - P4_EVENT_GLOBAL_POWER_EVENTS = 24, - P4_EVENT_TC_MS_XFER = 25, - P4_EVENT_UOP_QUEUE_WRITES = 26, - P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27, - P4_EVENT_RETIRED_BRANCH_TYPE = 28, - P4_EVENT_RESOURCE_STALL = 29, - P4_EVENT_WC_BUFFER = 30, - P4_EVENT_B2B_CYCLES = 31, - P4_EVENT_BNR = 32, - P4_EVENT_SNOOP = 33, - P4_EVENT_RESPONSE = 34, - P4_EVENT_FRONT_END_EVENT = 35, - P4_EVENT_EXECUTION_EVENT = 36, - P4_EVENT_REPLAY_EVENT = 37, - P4_EVENT_INSTR_RETIRED = 38, - P4_EVENT_UOPS_RETIRED = 39, - P4_EVENT_UOP_TYPE = 40, - P4_EVENT_BRANCH_RETIRED = 41, - P4_EVENT_MISPRED_BRANCH_RETIRED = 42, - P4_EVENT_X87_ASSIST = 43, - P4_EVENT_MACHINE_CLEAR = 44, - P4_EVENT_INSTR_COMPLETED = 45, -}; - -struct wakeup_header { - u16 video_mode; - u32 pmode_entry; - u16 pmode_cs; - u32 pmode_cr0; - u32 pmode_cr3; - u32 pmode_cr4; - u32 pmode_efer_low; - u32 pmode_efer_high; - u64 pmode_gdt; - u32 pmode_misc_en_low; - u32 pmode_misc_en_high; - u32 pmode_behavior; - u32 realmode_flags; - u32 real_magic; - u32 signature; -} __attribute__((packed)); - -struct mpc_ioapic { - unsigned char type; - unsigned char apicid; - unsigned char apicver; - unsigned char flags; - unsigned int apicaddr; -}; - -struct mp_ioapic_gsi { - u32 gsi_base; - u32 gsi_end; -}; - -enum ioapic_domain_type { - IOAPIC_DOMAIN_INVALID = 0, - IOAPIC_DOMAIN_LEGACY = 1, - IOAPIC_DOMAIN_STRICT = 2, - IOAPIC_DOMAIN_DYNAMIC = 3, -}; - -struct ioapic_domain_cfg { - enum ioapic_domain_type type; - const struct irq_domain_ops *ops; - struct device_node *dev; -}; - -struct IO_APIC_route_entry; - -struct ioapic { - int nr_registers; - struct IO_APIC_route_entry *saved_registers; - struct mpc_ioapic mp_config; - struct mp_ioapic_gsi gsi_config; - struct ioapic_domain_cfg irqdomain_cfg; - struct irq_domain *irqdomain; - struct resource *iomem_res; -}; - -struct IO_APIC_route_entry { - union { - struct { - u64 vector: 8; - u64 delivery_mode: 3; - u64 dest_mode_logical: 1; - u64 delivery_status: 1; - u64 active_low: 1; - u64 irr: 1; - u64 is_level: 1; - u64 masked: 1; - u64 reserved_0: 15; - u64 reserved_1: 17; - u64 virt_destid_8_14: 7; - u64 destid_0_7: 8; - }; - struct { - u64 ir_shared_0: 8; - u64 ir_zero: 3; - u64 ir_index_15: 1; - u64 ir_shared_1: 5; - u64 ir_reserved_0: 31; - u64 ir_format: 1; - u64 ir_index_0_14: 15; - }; - struct { - u64 w1: 32; - u64 w2: 32; - }; - }; -}; - -struct mpc_intsrc { - unsigned char type; - unsigned char irqtype; - unsigned short irqflag; - unsigned char srcbus; - unsigned char srcbusirq; - unsigned char dstapic; - unsigned char dstirq; -}; - -enum mp_irq_source_types { - mp_INT = 0, - mp_NMI = 1, - mp_SMI = 2, - mp_ExtINT = 3, -}; - -enum { - X86_IRQ_ALLOC_LEGACY = 1, -}; - -struct irq_pin_list { - struct list_head list; - int apic; - int pin; -}; - -struct io_apic { - unsigned int index; - unsigned int unused[3]; - unsigned int data; - unsigned int unused2[11]; - unsigned int eoi; -}; - -union IO_APIC_reg_00 { - u32 raw; - struct { - u32 __reserved_2: 14; - u32 LTS: 1; - u32 delivery_type: 1; - u32 __reserved_1: 8; - u32 ID: 8; - } bits; -}; - -union IO_APIC_reg_01 { - u32 raw; - struct { - u32 version: 8; - u32 __reserved_2: 7; - u32 PRQ: 1; - u32 entries: 8; - u32 __reserved_1: 8; - } bits; -}; - -union IO_APIC_reg_02 { - u32 raw; - struct { - u32 __reserved_2: 24; - u32 arbitration: 4; - u32 __reserved_1: 4; - } bits; -}; - -struct mp_chip_data { - struct list_head irq_2_pin; - struct IO_APIC_route_entry entry; - bool is_level; - bool active_low; - bool isa_irq; - u32 count; -}; - -union IO_APIC_reg_03 { - u32 raw; - struct { - u32 boot_DT: 1; - u32 __reserved_1: 31; - } bits; -}; - -struct module_use { - struct list_head source_list; - struct list_head target_list; - struct module *source; - struct module *target; -}; - -struct module_sect_attr { - struct bin_attribute battr; - unsigned long address; -}; - -struct module_sect_attrs { - struct attribute_group grp; - unsigned int nsections; - struct module_sect_attr attrs[0]; -}; - -struct module_notes_attrs { - struct kobject *dir; - unsigned int notes; - struct bin_attribute attrs[0]; -}; - -struct load_info { - const char *name; - struct module *mod; - Elf64_Ehdr *hdr; - unsigned long len; - Elf64_Shdr *sechdrs; - char *secstrings; - char *strtab; - unsigned long symoffs; - unsigned long stroffs; - unsigned long init_typeoffs; - unsigned long core_typeoffs; - bool sig_ok; - unsigned long mod_kallsyms_init_off; - struct { - unsigned int sym; - unsigned int str; - unsigned int mod; - unsigned int vers; - unsigned int info; - unsigned int pcpu; - } index; -}; - -struct btf_anon_stack { - u32 tid; - u32 offset; -}; - -struct uprobe_cpu_buffer { - struct mutex mutex; - void *buf; -}; - -enum uprobe_filter_ctx { - UPROBE_FILTER_REGISTER = 0, - UPROBE_FILTER_UNREGISTER = 1, - UPROBE_FILTER_MMAP = 2, -}; - -enum fetch_op { - FETCH_OP_NOP = 0, - FETCH_OP_REG = 1, - FETCH_OP_STACK = 2, - FETCH_OP_STACKP = 3, - FETCH_OP_RETVAL = 4, - FETCH_OP_IMM = 5, - FETCH_OP_COMM = 6, - FETCH_OP_ARG = 7, - FETCH_OP_FOFFS = 8, - FETCH_OP_DATA = 9, - FETCH_OP_EDATA = 10, - FETCH_OP_DEREF = 11, - FETCH_OP_UDEREF = 12, - FETCH_OP_ST_RAW = 13, - FETCH_OP_ST_MEM = 14, - FETCH_OP_ST_UMEM = 15, - FETCH_OP_ST_STRING = 16, - FETCH_OP_ST_USTRING = 17, - FETCH_OP_ST_SYMSTR = 18, - FETCH_OP_ST_EDATA = 19, - FETCH_OP_MOD_BF = 20, - FETCH_OP_LP_ARRAY = 21, - FETCH_OP_TP_ARG = 22, - FETCH_OP_END = 23, - FETCH_NOP_SYMBOL = 24, -}; - -enum probe_print_type { - PROBE_PRINT_NORMAL = 0, - PROBE_PRINT_RETURN = 1, - PROBE_PRINT_EVENT = 2, -}; - -enum { - TP_ERR_FILE_NOT_FOUND = 0, - TP_ERR_NO_REGULAR_FILE = 1, - TP_ERR_BAD_REFCNT = 2, - TP_ERR_REFCNT_OPEN_BRACE = 3, - TP_ERR_BAD_REFCNT_SUFFIX = 4, - TP_ERR_BAD_UPROBE_OFFS = 5, - TP_ERR_BAD_MAXACT_TYPE = 6, - TP_ERR_BAD_MAXACT = 7, - TP_ERR_MAXACT_TOO_BIG = 8, - TP_ERR_BAD_PROBE_ADDR = 9, - TP_ERR_NON_UNIQ_SYMBOL = 10, - TP_ERR_BAD_RETPROBE = 11, - TP_ERR_NO_TRACEPOINT = 12, - TP_ERR_BAD_ADDR_SUFFIX = 13, - TP_ERR_NO_GROUP_NAME = 14, - TP_ERR_GROUP_TOO_LONG = 15, - TP_ERR_BAD_GROUP_NAME = 16, - TP_ERR_NO_EVENT_NAME = 17, - TP_ERR_EVENT_TOO_LONG = 18, - TP_ERR_BAD_EVENT_NAME = 19, - TP_ERR_EVENT_EXIST = 20, - TP_ERR_RETVAL_ON_PROBE = 21, - TP_ERR_NO_RETVAL = 22, - TP_ERR_BAD_STACK_NUM = 23, - TP_ERR_BAD_ARG_NUM = 24, - TP_ERR_BAD_VAR = 25, - TP_ERR_BAD_REG_NAME = 26, - TP_ERR_BAD_MEM_ADDR = 27, - TP_ERR_BAD_IMM = 28, - TP_ERR_IMMSTR_NO_CLOSE = 29, - TP_ERR_FILE_ON_KPROBE = 30, - TP_ERR_BAD_FILE_OFFS = 31, - TP_ERR_SYM_ON_UPROBE = 32, - TP_ERR_TOO_MANY_OPS = 33, - TP_ERR_DEREF_NEED_BRACE = 34, - TP_ERR_BAD_DEREF_OFFS = 35, - TP_ERR_DEREF_OPEN_BRACE = 36, - TP_ERR_COMM_CANT_DEREF = 37, - TP_ERR_BAD_FETCH_ARG = 38, - TP_ERR_ARRAY_NO_CLOSE = 39, - TP_ERR_BAD_ARRAY_SUFFIX = 40, - TP_ERR_BAD_ARRAY_NUM = 41, - TP_ERR_ARRAY_TOO_BIG = 42, - TP_ERR_BAD_TYPE = 43, - TP_ERR_BAD_STRING = 44, - TP_ERR_BAD_SYMSTRING = 45, - TP_ERR_BAD_BITFIELD = 46, - TP_ERR_ARG_NAME_TOO_LONG = 47, - TP_ERR_NO_ARG_NAME = 48, - TP_ERR_BAD_ARG_NAME = 49, - TP_ERR_USED_ARG_NAME = 50, - TP_ERR_ARG_TOO_LONG = 51, - TP_ERR_NO_ARG_BODY = 52, - TP_ERR_BAD_INSN_BNDRY = 53, - TP_ERR_FAIL_REG_PROBE = 54, - TP_ERR_DIFF_PROBE_TYPE = 55, - TP_ERR_DIFF_ARG_TYPE = 56, - TP_ERR_SAME_PROBE = 57, - TP_ERR_NO_EVENT_INFO = 58, - TP_ERR_BAD_ATTACH_EVENT = 59, - TP_ERR_BAD_ATTACH_ARG = 60, - TP_ERR_NO_EP_FILTER = 61, - TP_ERR_NOSUP_BTFARG = 62, - TP_ERR_NO_BTFARG = 63, - TP_ERR_NO_BTF_ENTRY = 64, - TP_ERR_BAD_VAR_ARGS = 65, - TP_ERR_NOFENTRY_ARGS = 66, - TP_ERR_DOUBLE_ARGS = 67, - TP_ERR_ARGS_2LONG = 68, - TP_ERR_ARGIDX_2BIG = 69, - TP_ERR_NO_PTR_STRCT = 70, - TP_ERR_NOSUP_DAT_ARG = 71, - TP_ERR_BAD_HYPHEN = 72, - TP_ERR_NO_BTF_FIELD = 73, - TP_ERR_BAD_BTF_TID = 74, - TP_ERR_BAD_TYPE4STR = 75, - TP_ERR_NEED_STRING_TYPE = 76, -}; - -struct uprobe_consumer { - int (*handler)(struct uprobe_consumer *, struct pt_regs *); - int (*ret_handler)(struct uprobe_consumer *, unsigned long, struct pt_regs *); - bool (*filter)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); - struct uprobe_consumer *next; -}; - -struct fetch_insn; - -struct fetch_type; - -struct probe_arg { - struct fetch_insn *code; - bool dynamic; - unsigned int offset; - unsigned int count; - const char *name; - const char *comm; - char *fmt; - const struct fetch_type *type; -}; - -struct trace_probe_event; - -struct probe_entry_arg; - -struct trace_probe { - struct list_head list; - struct trace_probe_event *event; - ssize_t size; - unsigned int nr_args; - struct probe_entry_arg *entry_arg; - struct probe_arg args[0]; -}; - -struct trace_uprobe { - struct dyn_event devent; - struct uprobe_consumer consumer; - struct path path; - struct inode *inode; - char *filename; - unsigned long offset; - unsigned long ref_ctr_offset; - unsigned long nhit; - struct trace_probe tp; -}; - -struct trace_uprobe_filter { - rwlock_t rwlock; - int nr_systemwide; - struct list_head perf_events; -}; - -struct trace_probe_event { - unsigned int flags; - struct trace_event_class class; - struct trace_event_call call; - struct list_head files; - struct list_head probes; - struct trace_uprobe_filter filter[0]; -}; - -struct probe_entry_arg { - struct fetch_insn *code; - unsigned int size; -}; - -struct fetch_insn { - enum fetch_op op; - union { - unsigned int param; - struct { - unsigned int size; - int offset; - }; - struct { - unsigned char basesize; - unsigned char lshift; - unsigned char rshift; - }; - unsigned long immediate; - void *data; - }; -}; - -typedef int (*print_type_func_t)(struct trace_seq *, void *, void *); - -struct fetch_type { - const char *name; - size_t size; - bool is_signed; - bool is_string; - print_type_func_t print; - const char *fmt; - const char *fmttype; -}; - -struct event_file_link { - struct trace_event_file *file; - struct list_head list; -}; - -struct uprobe_trace_entry_head { - struct trace_entry ent; - unsigned long vaddr[0]; -}; - -struct uprobe_dispatch_data { - struct trace_uprobe *tu; - unsigned long bp_addr; -}; - -struct traceprobe_parse_context { - struct trace_event_call *event; - const char *funcname; - const struct btf_type *proto; - const struct btf_param *params; - s32 nr_params; - struct btf *btf; - const struct btf_type *last_type; - u32 last_bitoffs; - u32 last_bitsize; - struct trace_probe *tp; - unsigned int flags; - int offset; -}; - -typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); - -struct bpf_trace_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; - bool is_uprobe; -}; - -typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); - -enum clear_refs_types { - CLEAR_REFS_ALL = 1, - CLEAR_REFS_ANON = 2, - CLEAR_REFS_MAPPED = 3, - CLEAR_REFS_SOFT_DIRTY = 4, - CLEAR_REFS_MM_HIWATER_RSS = 5, - CLEAR_REFS_LAST = 6, -}; - -struct page_region { - __u64 start; - __u64 end; - __u64 categories; -}; - -struct proc_maps_private { - struct inode *inode; - struct task_struct *task; - struct mm_struct *mm; - struct vma_iterator iter; - struct mempolicy *task_mempolicy; -}; - -struct pm_scan_arg { - __u64 size; - __u64 flags; - __u64 start; - __u64 end; - __u64 walk_end; - __u64 vec; - __u64 vec_len; - __u64 max_pages; - __u64 category_inverted; - __u64 category_mask; - __u64 category_anyof_mask; - __u64 return_mask; -}; - -struct pagemap_scan_private { - struct pm_scan_arg arg; - unsigned long masks_of_interest; - unsigned long cur_vma_category; - struct page_region *vec_buf; - unsigned long vec_buf_len; - unsigned long vec_buf_index; - unsigned long found_pages; - struct page_region __attribute__((btf_type_tag("user"))) *vec_out; -}; - -struct mem_size_stats { - unsigned long resident; - unsigned long shared_clean; - unsigned long shared_dirty; - unsigned long private_clean; - unsigned long private_dirty; - unsigned long referenced; - unsigned long anonymous; - unsigned long lazyfree; - unsigned long anonymous_thp; - unsigned long shmem_thp; - unsigned long file_thp; - unsigned long swap; - unsigned long shared_hugetlb; - unsigned long private_hugetlb; - unsigned long ksm; - u64 pss; - u64 pss_anon; - u64 pss_file; - u64 pss_shmem; - u64 pss_dirty; - u64 pss_locked; - u64 swap_pss; -}; - -typedef struct { - u64 pme; -} pagemap_entry_t; - -struct pagemapread { - int pos; - int len; - pagemap_entry_t *buffer; - bool show_pfn; -}; - -struct clear_refs_private { - enum clear_refs_types type; -}; - -struct numa_maps { - unsigned long pages; - unsigned long anon; - unsigned long active; - unsigned long writeback; - unsigned long mapcount_max; - unsigned long dirty; - unsigned long swapcache; - unsigned long node[1024]; -}; - -struct numa_maps_private { - struct proc_maps_private proc_maps; - struct numa_maps md; -}; - -struct jbd2_revoke_table_s { - int hash_size; - int hash_shift; - struct list_head *hash_table; -}; - -struct jbd2_revoke_record_s { - struct list_head hash; - tid_t sequence; - unsigned long long blocknr; -}; - -struct sem_undo_list { - refcount_t refcnt; - spinlock_t lock; - struct list_head list_proc; -}; - -struct sem_undo { - struct list_head list_proc; - struct callback_head rcu; - struct sem_undo_list *ulp; - struct list_head list_id; - int semid; - short semadj[0]; -}; - -struct sem { - int semval; - struct pid *sempid; - spinlock_t lock; - struct list_head pending_alter; - struct list_head pending_const; - time64_t sem_otime; - long: 64; -}; - -struct sem_array { - struct kern_ipc_perm sem_perm; - time64_t sem_ctime; - struct list_head pending_alter; - struct list_head pending_const; - struct list_head list_id; - int sem_nsems; - int complex_count; - unsigned int use_global_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct sem sems[0]; -}; - -struct sembuf; - -struct sem_queue { - struct list_head list; - struct task_struct *sleeper; - struct sem_undo *undo; - struct pid *pid; - int status; - struct sembuf *sops; - struct sembuf *blocking; - int nsops; - bool alter; - bool dupsop; -}; - -struct sembuf { - unsigned short sem_num; - short sem_op; - short sem_flg; -}; - -struct semid64_ds { - struct ipc64_perm sem_perm; - __kernel_long_t sem_otime; - __kernel_ulong_t __unused1; - __kernel_long_t sem_ctime; - __kernel_ulong_t __unused2; - __kernel_ulong_t sem_nsems; - __kernel_ulong_t __unused3; - __kernel_ulong_t __unused4; -}; - -struct seminfo { - int semmap; - int semmni; - int semmns; - int semmnu; - int semmsl; - int semopm; - int semume; - int semusz; - int semvmx; - int semaem; -}; - -struct semid_ds { - struct ipc_perm sem_perm; - __kernel_old_time_t sem_otime; - __kernel_old_time_t sem_ctime; - struct sem *sem_base; - struct sem_queue *sem_pending; - struct sem_queue **sem_pending_last; - struct sem_undo *undo; - unsigned short sem_nsems; -}; - -enum bfqq_expiration { - BFQQE_TOO_IDLE = 0, - BFQQE_BUDGET_TIMEOUT = 1, - BFQQE_BUDGET_EXHAUSTED = 2, - BFQQE_NO_MORE_REQUESTS = 3, - BFQQE_PREEMPTED = 4, -}; - -struct bfq_sched_data; - -struct bfq_queue; - -struct bfq_entity { - struct rb_node rb_node; - bool on_st_or_in_serv; - u64 start; - u64 finish; - struct rb_root *tree; - u64 min_start; - int service; - int budget; - int allocated; - int dev_weight; - int weight; - int new_weight; - int orig_weight; - struct bfq_entity *parent; - struct bfq_sched_data *my_sched_data; - struct bfq_sched_data *sched_data; - int prio_changed; - bool in_groups_with_pending_reqs; - struct bfq_queue *last_bfqq_created; -}; - -struct bfq_service_tree { - struct rb_root active; - struct rb_root idle; - struct bfq_entity *first_idle; - struct bfq_entity *last_idle; - u64 vtime; - unsigned long wsum; -}; - -struct bfq_sched_data { - struct bfq_entity *in_service_entity; - struct bfq_entity *next_in_service; - struct bfq_service_tree service_tree[3]; - unsigned long bfq_class_idle_last_service; -}; - -struct bfqg_stats { - struct blkg_rwstat bytes; - struct blkg_rwstat ios; -}; - -struct bfq_data; - -struct bfq_group { - struct blkg_policy_data pd; - char blkg_path[128]; - refcount_t ref; - struct bfq_entity entity; - struct bfq_sched_data sched_data; - struct bfq_data *bfqd; - struct bfq_queue *async_bfqq[128]; - struct bfq_queue *async_idle_bfqq[8]; - struct bfq_entity *my_entity; - int active_entities; - int num_queues_with_pending_reqs; - struct rb_root rq_pos_tree; - struct bfqg_stats stats; -}; - -struct bfq_ttime { - u64 last_end_request; - u64 ttime_total; - unsigned long ttime_samples; - u64 ttime_mean; -}; - -struct bfq_weight_counter; - -struct bfq_io_cq; - -struct bfq_queue { - int ref; - int stable_ref; - struct bfq_data *bfqd; - unsigned short ioprio; - unsigned short ioprio_class; - unsigned short new_ioprio; - unsigned short new_ioprio_class; - u64 last_serv_time_ns; - unsigned int inject_limit; - unsigned long decrease_time_jif; - struct bfq_queue *new_bfqq; - struct rb_node pos_node; - struct rb_root *pos_root; - struct rb_root sort_list; - struct request *next_rq; - int queued[2]; - int meta_pending; - struct list_head fifo; - struct bfq_entity entity; - struct bfq_weight_counter *weight_counter; - int max_budget; - unsigned long budget_timeout; - int dispatched; - unsigned long flags; - struct list_head bfqq_list; - struct bfq_ttime ttime; - u64 io_start_time; - u64 tot_idle_time; - u32 seek_history; - struct hlist_node burst_list_node; - sector_t last_request_pos; - unsigned int requests_within_timer; - pid_t pid; - struct bfq_io_cq *bic; - unsigned long wr_cur_max_time; - unsigned long soft_rt_next_start; - unsigned long last_wr_start_finish; - unsigned int wr_coeff; - unsigned long last_idle_bklogged; - unsigned long service_from_backlogged; - unsigned long service_from_wr; - unsigned long wr_start_at_switch_to_srt; - unsigned long split_time; - unsigned long first_IO_time; - unsigned long creation_time; - struct bfq_queue *waker_bfqq; - struct bfq_queue *tentative_waker_bfqq; - unsigned int num_waker_detections; - u64 waker_detection_started; - struct hlist_node woken_list_node; - struct hlist_head woken_list; - unsigned int actuator_idx; -}; - -struct bfq_data { - struct request_queue *queue; - struct list_head dispatch; - struct bfq_group *root_group; - struct rb_root_cached queue_weights_tree; - unsigned int num_groups_with_pending_reqs; - unsigned int busy_queues[3]; - int wr_busy_queues; - int queued; - int tot_rq_in_driver; - int rq_in_driver[8]; - bool nonrot_with_queueing; - int max_rq_in_driver; - int hw_tag_samples; - int hw_tag; - int budgets_assigned; - struct hrtimer idle_slice_timer; - struct bfq_queue *in_service_queue; - sector_t last_position; - sector_t in_serv_last_pos; - u64 last_completion; - struct bfq_queue *last_completed_rq_bfqq; - struct bfq_queue *last_bfqq_created; - u64 last_empty_occupied_ns; - bool wait_dispatch; - struct request *waited_rq; - bool rqs_injected; - u64 first_dispatch; - u64 last_dispatch; - ktime_t last_budget_start; - ktime_t last_idling_start; - unsigned long last_idling_start_jiffies; - int peak_rate_samples; - u32 sequential_samples; - u64 tot_sectors_dispatched; - u32 last_rq_max_size; - u64 delta_from_first; - u32 peak_rate; - int bfq_max_budget; - struct list_head active_list[8]; - struct list_head idle_list; - u64 bfq_fifo_expire[2]; - unsigned int bfq_back_penalty; - unsigned int bfq_back_max; - u32 bfq_slice_idle; - int bfq_user_max_budget; - unsigned int bfq_timeout; - bool strict_guarantees; - unsigned long last_ins_in_burst; - unsigned long bfq_burst_interval; - int burst_size; - struct bfq_entity *burst_parent_entity; - unsigned long bfq_large_burst_thresh; - bool large_burst; - struct hlist_head burst_list; - bool low_latency; - unsigned int bfq_wr_coeff; - unsigned int bfq_wr_rt_max_time; - unsigned int bfq_wr_min_idle_time; - unsigned long bfq_wr_min_inter_arr_async; - unsigned int bfq_wr_max_softrt_rate; - u64 rate_dur_prod; - struct bfq_queue oom_bfqq; - spinlock_t lock; - struct bfq_io_cq *bio_bic; - struct bfq_queue *bio_bfqq; - unsigned int word_depths[4]; - unsigned int full_depth_shift; - unsigned int num_actuators; - sector_t sector[8]; - sector_t nr_sectors[8]; - struct blk_independent_access_range ia_ranges[8]; - unsigned int actuator_load_threshold; -}; - -struct bfq_iocq_bfqq_data { - bool saved_has_short_ttime; - bool saved_IO_bound; - u64 saved_io_start_time; - u64 saved_tot_idle_time; - bool saved_in_large_burst; - bool was_in_burst_list; - unsigned int saved_weight; - unsigned long saved_wr_coeff; - unsigned long saved_last_wr_start_finish; - unsigned long saved_service_from_wr; - unsigned long saved_wr_start_at_switch_to_srt; - unsigned int saved_wr_cur_max_time; - struct bfq_ttime saved_ttime; - u64 saved_last_serv_time_ns; - unsigned int saved_inject_limit; - unsigned long saved_decrease_time_jif; - struct bfq_queue *stable_merge_bfqq; - bool stably_merged; -}; - -struct bfq_io_cq { - struct io_cq icq; - struct bfq_queue *bfqq[16]; - int ioprio; - uint64_t blkcg_serial_nr; - struct bfq_iocq_bfqq_data bfqq_data[8]; - unsigned int requests; -}; - -struct bfq_weight_counter { - unsigned int weight; - unsigned int num_active; - struct rb_node weights_node; -}; - -struct bfq_group_data { - struct blkcg_policy_data pd; - unsigned int weight; -}; - -typedef void sg_free_fn(struct scatterlist *, unsigned int); - -struct sg_append_table { - struct sg_table sgt; - struct scatterlist *prv; - unsigned int total_nents; -}; - -typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); - -struct sg_dma_page_iter { - struct sg_page_iter base; -}; - -struct pcie_link_state { - struct pci_dev *pdev; - struct pci_dev *downstream; - struct pcie_link_state *root; - struct pcie_link_state *parent; - struct list_head sibling; - u32 aspm_support: 7; - u32 aspm_enabled: 7; - u32 aspm_capable: 7; - u32 aspm_default: 7; - int: 4; - u32 aspm_disable: 7; - u32 clkpm_capable: 1; - u32 clkpm_enabled: 1; - u32 clkpm_default: 1; - u32 clkpm_disable: 1; -}; - -struct lpit_residency_info { - struct acpi_generic_address gaddr; - u64 frequency; - void *iomem_addr; -}; - -struct acpi_lpit_header { - u32 type; - u32 length; - u16 unique_id; - u16 reserved; - u32 flags; -}; - -struct acpi_lpit_native { - struct acpi_lpit_header header; - struct acpi_generic_address entry_trigger; - u32 residency; - u32 latency; - struct acpi_generic_address residency_counter; - u64 counter_frequency; -}; - -struct acpi_table_lpit { - struct acpi_table_header header; -}; - -struct earlycon_device; - -struct earlycon_id { - char name[15]; - char name_term; - char compatible[128]; - int (*setup)(struct earlycon_device *, const char *); -}; - -struct earlycon_device { - struct console *con; - struct uart_port port; - char options[32]; - unsigned int baud; -}; - -enum e1000_state_t___2 { - __E1000_TESTING___2 = 0, - __E1000_RESETTING___2 = 1, - __E1000_DOWN___2 = 2, - __E1000_DISABLED = 3, -}; - -struct e1000_rx_desc { - __le64 buffer_addr; - __le16 length; - __le16 csum; - u8 status; - u8 errors; - __le16 special; -}; + e1000_downshift_normal = 0, + e1000_downshift_activated = 1, + e1000_downshift_undefined = 255, +} e1000_downshift; + +typedef enum { + e1000_auto_x_mode_manual_mdi = 0, + e1000_auto_x_mode_manual_mdix = 1, + e1000_auto_x_mode_auto1 = 2, + e1000_auto_x_mode_auto2 = 3, + e1000_auto_x_mode_undefined = 255, +} e1000_auto_x_mode; + +typedef enum { + e1000_cable_length_50 = 0, + e1000_cable_length_50_80 = 1, + e1000_cable_length_80_110 = 2, + e1000_cable_length_110_140 = 3, + e1000_cable_length_140 = 4, + e1000_cable_length_undefined = 255, +} e1000_cable_length; typedef enum { e1000_undefined___2 = 0, @@ -99684,87 +97479,6 @@ struct e1000_shadow_ram___2 { bool modified; }; -struct e1000_hw_stats___2 { - u64 crcerrs; - u64 algnerrc; - u64 symerrs; - u64 rxerrc; - u64 txerrc; - u64 mpc; - u64 scc; - u64 ecol; - u64 mcc; - u64 latecol; - u64 colc; - u64 dc; - u64 tncrs; - u64 sec; - u64 cexterr; - u64 rlec; - u64 xonrxc; - u64 xontxc; - u64 xoffrxc; - u64 xofftxc; - u64 fcruc; - u64 prc64; - u64 prc127; - u64 prc255; - u64 prc511; - u64 prc1023; - u64 prc1522; - u64 gprc; - u64 bprc; - u64 mprc; - u64 gptc; - u64 gorcl; - u64 gorch; - u64 gotcl; - u64 gotch; - u64 rnbc; - u64 ruc; - u64 rfc; - u64 roc; - u64 rlerrc; - u64 rjc; - u64 mgprc; - u64 mgpdc; - u64 mgptc; - u64 torl; - u64 torh; - u64 totl; - u64 toth; - u64 tpr; - u64 tpt; - u64 ptc64; - u64 ptc127; - u64 ptc255; - u64 ptc511; - u64 ptc1023; - u64 ptc1522; - u64 mptc; - u64 bptc; - u64 tsctc; - u64 tsctfc; - u64 iac; - u64 icrxptc; - u64 icrxatc; - u64 ictxptc; - u64 ictxatc; - u64 ictxqec; - u64 ictxqmtc; - u64 icrxdmtc; - u64 icrxoc; -}; - -typedef enum { - e1000_cable_length_50 = 0, - e1000_cable_length_50_80 = 1, - e1000_cable_length_80_110 = 2, - e1000_cable_length_110_140 = 3, - e1000_cable_length_140 = 4, - e1000_cable_length_undefined = 255, -} e1000_cable_length; - typedef enum { e1000_10bt_ext_dist_enable_normal = 0, e1000_10bt_ext_dist_enable_lower = 1, @@ -99777,26 +97491,12 @@ typedef enum { e1000_rev_polarity_undefined___2 = 255, } e1000_rev_polarity; -typedef enum { - e1000_downshift_normal = 0, - e1000_downshift_activated = 1, - e1000_downshift_undefined = 255, -} e1000_downshift; - typedef enum { e1000_polarity_reversal_enabled = 0, e1000_polarity_reversal_disabled = 1, e1000_polarity_reversal_undefined = 255, } e1000_polarity_reversal; -typedef enum { - e1000_auto_x_mode_manual_mdi = 0, - e1000_auto_x_mode_manual_mdix = 1, - e1000_auto_x_mode_auto1 = 2, - e1000_auto_x_mode_auto2 = 3, - e1000_auto_x_mode_undefined = 255, -} e1000_auto_x_mode; - typedef enum { e1000_1000t_rx_status_not_ok___2 = 0, e1000_1000t_rx_status_ok___2 = 1, @@ -99814,297 +97514,221 @@ struct e1000_phy_info___3 { e1000_1000t_rx_status remote_rx; }; -struct e1000_tx_buffer; - -struct e1000_tx_ring { - void *desc; - dma_addr_t dma; - unsigned int size; - unsigned int count; - unsigned int next_to_use; - unsigned int next_to_clean; - struct e1000_tx_buffer *buffer_info; - u16 tdh; - u16 tdt; - bool last_tx_tso; +struct iwl_mvm_sta_state_ops { + int (*add_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*update_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*rm_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*mac_ctxt_changed)(struct iwl_mvm *, struct ieee80211_vif *, bool); }; -struct e1000_rx_buffer; - -struct e1000_rx_ring { - void *desc; - dma_addr_t dma; - unsigned int size; - unsigned int count; - unsigned int next_to_use; - unsigned int next_to_clean; - struct e1000_rx_buffer *buffer_info; - struct sk_buff *rx_skb_top; - int cpu; - u16 rdh; - u16 rdt; +struct iwl_mvm_roc_ops { + int (*add_aux_sta_for_hs20)(struct iwl_mvm *, u32); + int (*link)(struct iwl_mvm *, struct ieee80211_vif *); }; -struct e1000_adapter___2 { - unsigned long active_vlans[64]; - u16 mng_vlan_id; - u32 bd_number; - u32 rx_buffer_len; - u32 wol; - u32 smartspeed; - u32 en_mng_pt; - u16 link_speed; - u16 link_duplex; - spinlock_t stats_lock; - unsigned int total_tx_bytes; - unsigned int total_tx_packets; - unsigned int total_rx_bytes; - unsigned int total_rx_packets; - u32 itr; - u32 itr_setting; - u16 tx_itr; - u16 rx_itr; - u8 fc_autoneg; - struct e1000_tx_ring *tx_ring; - unsigned int restart_queue; - u32 txd_cmd; - u32 tx_int_delay; - u32 tx_abs_int_delay; - u32 gotcl; - u64 gotcl_old; - u64 tpt_old; - u64 colc_old; - u32 tx_timeout_count; - u32 tx_fifo_head; - u32 tx_head_addr; - u32 tx_fifo_size; - u8 tx_timeout_factor; - atomic_t tx_fifo_stall; - bool pcix_82544; - bool detect_tx_hung; - bool dump_buffers; - bool (*clean_rx)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int *, int); - void (*alloc_rx_buf)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int); - struct e1000_rx_ring *rx_ring; - struct napi_struct napi; - int num_tx_queues; - int num_rx_queues; - u64 hw_csum_err; - u64 hw_csum_good; - u32 alloc_rx_buff_failed; - u32 rx_int_delay; - u32 rx_abs_int_delay; - bool rx_csum; - u32 gorcl; - u64 gorcl_old; - struct net_device *netdev; - struct pci_dev *pdev; - struct e1000_hw___3 hw; - struct e1000_hw_stats___2 stats; - struct e1000_phy_info___3 phy_info; - struct e1000_phy_stats phy_stats; - u32 test_icr; - struct e1000_tx_ring test_tx_ring; - struct e1000_rx_ring test_rx_ring; - int msg_enable; - bool tso_force; - bool smart_power_down; - bool quad_port_a; +struct iwl_mvm_switch_vif_chanctx_ops { + int (*__assign_vif_chanctx)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *, bool); + void (*__unassign_vif_chanctx)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *, bool); +}; + +enum ieee80211_vif_flags { + IEEE80211_VIF_BEACON_FILTER = 1, + IEEE80211_VIF_SUPPORTS_CQM_RSSI = 2, + IEEE80211_VIF_SUPPORTS_UAPSD = 4, + IEEE80211_VIF_GET_NOA_UPDATE = 8, + IEEE80211_VIF_EML_ACTIVE = 16, + IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = 32, +}; + +enum iwl_link_ctx_modify_flags { + LINK_CONTEXT_MODIFY_ACTIVE = 1, + LINK_CONTEXT_MODIFY_RATES_INFO = 2, + LINK_CONTEXT_MODIFY_PROTECT_FLAGS = 4, + LINK_CONTEXT_MODIFY_QOS_PARAMS = 8, + LINK_CONTEXT_MODIFY_BEACON_TIMING = 16, + LINK_CONTEXT_MODIFY_HE_PARAMS = 32, + LINK_CONTEXT_MODIFY_BSS_COLOR_DISABLE = 64, + LINK_CONTEXT_MODIFY_EHT_PARAMS = 128, + LINK_CONTEXT_MODIFY_ALL = 255, +}; + +struct iwl_mvm_link_sel_data { + u8 link_id; + enum nl80211_band band; + enum nl80211_chan_width width; + bool active; +}; + +enum ps2_disposition { + PS2_PROCESS = 0, + PS2_IGNORE = 1, + PS2_ERROR = 2, +}; + +struct serio_device_id { + __u8 type; + __u8 extra; + __u8 id; + __u8 proto; +}; + +struct serio_driver; + +struct serio { + void *port_data; + char name[32]; + char phys[32]; + char firmware_id[128]; + bool manual_bind; + struct serio_device_id id; + spinlock_t lock; + int (*write)(struct serio *, unsigned char); + int (*open)(struct serio *); + void (*close)(struct serio *); + int (*start)(struct serio *); + void (*stop)(struct serio *); + struct serio *parent; + struct list_head child_node; + struct list_head children; + unsigned int depth; + struct serio_driver *drv; + struct mutex drv_mutex; + struct device dev; + struct list_head node; + struct mutex *ps2_cmd_mutex; +}; + +struct serio_driver { + const char *description; + const struct serio_device_id *id_table; + bool manual_bind; + void (*write_wakeup)(struct serio *); + irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int); + int (*connect)(struct serio *, struct serio_driver *); + int (*reconnect)(struct serio *); + int (*fast_reconnect)(struct serio *); + void (*disconnect)(struct serio *); + void (*cleanup)(struct serio *); + struct device_driver driver; +}; + +struct ps2dev; + +typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); + +typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); + +struct ps2dev { + struct serio *serio; + struct mutex cmd_mutex; + wait_queue_head_t wait; unsigned long flags; - u32 eeprom_wol; - int bars; - int need_ioport; - bool discarding; - struct work_struct reset_task; - struct delayed_work watchdog_task; - struct delayed_work fifo_stall_task; - struct delayed_work phy_info_task; + u8 cmdbuf[8]; + u8 cmdcnt; + u8 nak; + ps2_pre_receive_handler_t pre_receive_handler; + ps2_receive_handler_t receive_handler; }; -struct e1000_tx_buffer { - struct sk_buff *skb; - dma_addr_t dma; - unsigned long time_stamp; - u16 length; - u16 next_to_watch; - bool mapped_as_page; - unsigned short segs; - unsigned int bytecount; +struct ir_raw_timings_manchester { + unsigned int leader_pulse; + unsigned int leader_space; + unsigned int clock; + unsigned int invert: 1; + unsigned int trailer_space; }; -struct e1000_rx_buffer { - union { - struct page *page; - u8 *data; - } rxbuf; - dma_addr_t dma; +enum mce_kbd_state { + STATE_INACTIVE___4 = 0, + STATE_HEADER_BIT_START = 1, + STATE_HEADER_BIT_END = 2, + STATE_BODY_BIT_START = 3, + STATE_BODY_BIT_END = 4, + STATE_FINISHED___2 = 5, }; -struct iwl_mvm_mod_params { - bool init_dbg; - int power_scheme; +enum mce_kbd_mode { + MCIR2_MODE_KEYBOARD = 0, + MCIR2_MODE_MOUSE = 1, + MCIR2_MODE_UNKNOWN = 2, }; -struct iwl_mei_ops { - void (*me_conn_status)(void *, const struct iwl_mei_conn_info *); - void (*rfkill)(void *, bool, bool); - void (*roaming_forbidden)(void *, bool); - void (*sap_connected)(void *); - void (*nic_stolen)(void *); +struct lirc_scancode { + __u64 timestamp; + __u16 flags; + __u16 rc_proto; + __u32 keycode; + __u64 scancode; }; -enum iwl_rx_handler_context { - RX_HANDLER_SYNC = 0, - RX_HANDLER_ASYNC_LOCKED = 1, - RX_HANDLER_ASYNC_UNLOCKED = 2, - RX_HANDLER_ASYNC_LOCKED_WIPHY = 3, +struct csum_state { + __wsum csum; + size_t off; }; -struct iwl_rx_handlers { - u16 cmd_id; - u16 min_size; - enum iwl_rx_handler_context context; - void (*fn)(struct iwl_mvm *, struct iwl_rx_cmd_buffer *); -}; +typedef size_t (*iov_ustep_f)(void __attribute__((btf_type_tag("user"))) *, size_t, size_t, void *, void *); -enum iwl_mvm_tx_fifo { - IWL_MVM_TX_FIFO_BK = 0, - IWL_MVM_TX_FIFO_BE = 1, - IWL_MVM_TX_FIFO_VI = 2, - IWL_MVM_TX_FIFO_VO = 3, - IWL_MVM_TX_FIFO_MCAST = 5, - IWL_MVM_TX_FIFO_CMD = 7, -}; +typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); -enum iwl_fw_error_dump_type { - IWL_FW_ERROR_DUMP_CSR = 1, - IWL_FW_ERROR_DUMP_RXF = 2, - IWL_FW_ERROR_DUMP_TXCMD = 3, - IWL_FW_ERROR_DUMP_DEV_FW_INFO = 4, - IWL_FW_ERROR_DUMP_FW_MONITOR = 5, - IWL_FW_ERROR_DUMP_PRPH = 6, - IWL_FW_ERROR_DUMP_TXF = 7, - IWL_FW_ERROR_DUMP_FH_REGS = 8, - IWL_FW_ERROR_DUMP_MEM = 9, - IWL_FW_ERROR_DUMP_ERROR_INFO = 10, - IWL_FW_ERROR_DUMP_RB = 11, - IWL_FW_ERROR_DUMP_PAGING = 12, - IWL_FW_ERROR_DUMP_RADIO_REG = 13, - IWL_FW_ERROR_DUMP_INTERNAL_TXF = 14, - IWL_FW_ERROR_DUMP_EXTERNAL = 15, - IWL_FW_ERROR_DUMP_MEM_CFG = 16, - IWL_FW_ERROR_DUMP_D3_DEBUG_DATA = 17, -}; - -enum iwl_datapath_monitor_notif_type { - IWL_DP_MON_NOTIF_TYPE_EXT_CCA = 0, -}; - -enum iwl_thermal_dual_chain_req_events { - THERMAL_DUAL_CHAIN_REQ_ENABLE = 0, - THERMAL_DUAL_CHAIN_REQ_DISABLE = 1, -}; - -struct iwl_async_handler_entry { - struct list_head list; - struct iwl_rx_cmd_buffer rxb; - enum iwl_rx_handler_context context; - void (*fn)(struct iwl_mvm *, struct iwl_rx_cmd_buffer *); -}; - -struct iwl_mvm_reprobe { - struct device *dev; - struct work_struct work; -}; - -struct cmd { - u8 cmd_id; - u8 group_id; -}; - -struct iwl_fw_dbg_trigger_cmd { - struct cmd cmds[16]; -}; - -struct iwl_mvm_frob_txf_data { - u8 *buf; - size_t buflen; -}; - -struct iwl_datapath_monitor_notif { - __le32 type; - u8 mac_id; - u8 reserved[3]; -}; - -struct iwl_thermal_dual_chain_request { - __le32 event; -}; - -enum rc5_state { - STATE_INACTIVE___2 = 0, - STATE_BIT_START = 1, - STATE_BIT_END = 2, - STATE_CHECK_RC5X = 3, - STATE_FINISHED = 4, -}; - -struct fw_cfg_vmcoreinfo { - __le16 host_format; - __le16 guest_format; - __le32 size; - __le64 paddr; -}; - -struct fw_cfg_sysfs_entry; - -struct fw_cfg_sysfs_attribute { - struct attribute attr; - ssize_t (*show)(struct fw_cfg_sysfs_entry *, char *); -}; - -struct fw_cfg_sysfs_entry { - struct kobject kobj; - u32 size; - u16 select; - char name[56]; - struct list_head list; -}; - -struct fw_cfg_file { - __be32 size; - __be16 select; - __u16 reserved; - char name[56]; -}; - -struct fw_cfg_dma_access { - __be32 control; - __be32 length; - __be64 address; +struct ahash_request { + struct crypto_async_request base; + unsigned int nbytes; + struct scatterlist *src; + u8 *result; + void *priv; + void *__ctx[0]; }; enum { - IF_LINK_MODE_DEFAULT = 0, - IF_LINK_MODE_DORMANT = 1, - IF_LINK_MODE_TESTING = 2, + ETHTOOL_A_MODULE_UNSPEC = 0, + ETHTOOL_A_MODULE_HEADER = 1, + ETHTOOL_A_MODULE_POWER_MODE_POLICY = 2, + ETHTOOL_A_MODULE_POWER_MODE = 3, + __ETHTOOL_A_MODULE_CNT = 4, + ETHTOOL_A_MODULE_MAX = 3, }; -enum lw_bits { - LW_URGENT = 0, +struct module_reply_data { + struct ethnl_reply_data base; + struct ethtool_module_power_mode_params power; }; -enum { - LWTUNNEL_XMIT_DONE = 0, - LWTUNNEL_XMIT_CONTINUE = 256, +enum nft_rt_keys { + NFT_RT_CLASSID = 0, + NFT_RT_NEXTHOP4 = 1, + NFT_RT_NEXTHOP6 = 2, + NFT_RT_TCPMSS = 3, + NFT_RT_XFRM = 4, + __NFT_RT_MAX = 5, }; -struct hop_jumbo_hdr { - u8 nexthdr; - u8 hdrlen; - u8 tlv_type; - u8 tlv_len; - __be32 jumbo_payload_len; +enum nft_rt_attributes { + NFTA_RT_UNSPEC = 0, + NFTA_RT_DREG = 1, + NFTA_RT_KEY = 2, + __NFTA_RT_MAX = 3, +}; + +struct nft_rt { + enum nft_rt_keys key: 8; + u8 dreg; +}; + +enum ieee80211_elems_parse_error { + IEEE80211_PARSE_ERR_INVALID_END = 1, + IEEE80211_PARSE_ERR_DUP_ELEM = 2, + IEEE80211_PARSE_ERR_BAD_ELEM_SIZE = 4, + IEEE80211_PARSE_ERR_UNEXPECTED_ELEM = 8, + IEEE80211_PARSE_ERR_DUP_NEST_ML_BASIC = 16, +}; + +struct ieee80211_elems_parse { + struct ieee802_11_elems elems; + const struct element *ml_basic_elem; + const struct element *ml_reconf_elem; + size_t scratch_len; + u8 *scratch_pos; + u8 scratch[0]; }; struct mcs_group { @@ -100186,402 +97810,1319 @@ struct minstrel_priv { u8 ofdm_rates[48]; }; -typedef void (*btf_trace_rcu_utilization)(void *, const char *); - -typedef void (*btf_trace_rcu_grace_period)(void *, const char *, unsigned long, const char *); - -typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, unsigned long, unsigned long, u8, int, int, const char *); - -typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, unsigned long, u8, int, int, unsigned long); - -typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, unsigned long, const char *); - -typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *); - -typedef void (*btf_trace_rcu_nocb_wake)(void *, const char *, int, const char *); - -typedef void (*btf_trace_rcu_preempt_task)(void *, const char *, int, unsigned long); - -typedef void (*btf_trace_rcu_unlock_preempted_task)(void *, const char *, unsigned long, int); - -typedef void (*btf_trace_rcu_quiescent_state_report)(void *, const char *, unsigned long, unsigned long, unsigned long, u8, int, int, int); - -typedef void (*btf_trace_rcu_fqs)(void *, const char *, unsigned long, int, const char *); - -typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); - -typedef void (*btf_trace_rcu_dyntick)(void *, const char *, long, long, int); - -typedef void (*btf_trace_rcu_callback)(void *, const char *, struct callback_head *, long); - -typedef void (*btf_trace_rcu_segcb_stats)(void *, struct rcu_segcblist *, const char *); - -typedef void (*btf_trace_rcu_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long, long); - -typedef void (*btf_trace_rcu_batch_start)(void *, const char *, long, long); - -typedef void (*btf_trace_rcu_invoke_callback)(void *, const char *, struct callback_head *); - -typedef void (*btf_trace_rcu_invoke_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long); - -typedef void (*btf_trace_rcu_invoke_kfree_bulk_callback)(void *, const char *, unsigned long, void **); - -typedef void (*btf_trace_rcu_batch_end)(void *, const char *, int, char, char, char, char); - -typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, unsigned long); - -struct rcu_tasks; - -typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); - -typedef void (*pregp_func_t)(struct list_head *); - -typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); - -typedef void (*postscan_func_t)(struct list_head *); - -typedef void (*holdouts_func_t)(struct list_head *, bool, bool *); - -typedef void (*postgp_func_t)(struct rcu_tasks *); - -typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); - -struct rcu_tasks_percpu; - -struct rcu_tasks { - struct rcuwait cbs_wait; - raw_spinlock_t cbs_gbl_lock; - struct mutex tasks_gp_mutex; - int gp_state; - int gp_sleep; - int init_fract; - unsigned long gp_jiffies; - unsigned long gp_start; - unsigned long tasks_gp_seq; - unsigned long n_ipis; - unsigned long n_ipis_fails; - struct task_struct *kthread_ptr; - unsigned long lazy_jiffies; - rcu_tasks_gp_func_t gp_func; - pregp_func_t pregp_func; - pertask_func_t pertask_func; - postscan_func_t postscan_func; - holdouts_func_t holdouts_func; - postgp_func_t postgp_func; - call_rcu_func_t call_func; - struct rcu_tasks_percpu __attribute__((btf_type_tag("percpu"))) *rtpcpu; - int percpu_enqueue_shift; - int percpu_enqueue_lim; - int percpu_dequeue_lim; - unsigned long percpu_dequeue_gpseq; - struct mutex barrier_q_mutex; - atomic_t barrier_q_count; - struct completion barrier_q_completion; - unsigned long barrier_q_seq; - char *name; - char *kname; +enum { + PERF_TXN_ELISION = 1ULL, + PERF_TXN_TRANSACTION = 2ULL, + PERF_TXN_SYNC = 4ULL, + PERF_TXN_ASYNC = 8ULL, + PERF_TXN_RETRY = 16ULL, + PERF_TXN_CONFLICT = 32ULL, + PERF_TXN_CAPACITY_WRITE = 64ULL, + PERF_TXN_CAPACITY_READ = 128ULL, + PERF_TXN_MAX = 256ULL, + PERF_TXN_ABORT_MASK = 18446744069414584320ULL, + PERF_TXN_ABORT_SHIFT = 32ULL, }; -struct rcu_tasks_percpu { - struct rcu_segcblist cblist; - raw_spinlock_t lock; - unsigned long rtp_jiffies; - unsigned long rtp_n_lock_retries; - struct timer_list lazy_timer; - unsigned int urgent_gp; - struct work_struct rtp_work; - struct irq_work rtp_irq_work; - struct callback_head barrier_q_head; - struct list_head rtp_blkd_tasks; - struct list_head rtp_exit_list; +struct bts_record { + u64 from; + u64 to; + u64 flags; +}; + +struct pebs_record_core { + u64 flags; + u64 ip; + u64 ax; + u64 bx; + u64 cx; + u64 dx; + u64 si; + u64 di; + u64 bp; + u64 sp; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; +}; + +struct pebs_record_nhm { + u64 flags; + u64 ip; + u64 ax; + u64 bx; + u64 cx; + u64 dx; + u64 si; + u64 di; + u64 bp; + u64 sp; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; + u64 status; + u64 dla; + u64 dse; + u64 lat; +}; + +struct pebs_basic { + u64 format_size; + u64 ip; + u64 applicable_counters; + u64 tsc; +}; + +struct x86_perf_regs { + struct pt_regs regs; + u64 *xmm_regs; +}; + +union intel_x86_pebs_dse { + u64 val; + struct { + unsigned int ld_dse: 4; + unsigned int ld_stlb_miss: 1; + unsigned int ld_locked: 1; + unsigned int ld_data_blk: 1; + unsigned int ld_addr_blk: 1; + unsigned int ld_reserved: 24; + }; + struct { + unsigned int st_l1d_hit: 1; + unsigned int st_reserved1: 3; + unsigned int st_stlb_miss: 1; + unsigned int st_locked: 1; + unsigned int st_reserved2: 26; + }; + struct { + unsigned int st_lat_dse: 4; + unsigned int st_lat_stlb_miss: 1; + unsigned int st_lat_locked: 1; + unsigned int ld_reserved3: 26; + }; + struct { + unsigned int mtl_dse: 5; + unsigned int mtl_locked: 1; + unsigned int mtl_stlb_miss: 1; + unsigned int mtl_fwd_blk: 1; + unsigned int ld_reserved4: 24; + }; +}; + +struct pebs_gprs { + u64 flags; + u64 ip; + u64 ax; + u64 cx; + u64 dx; + u64 bx; + u64 sp; + u64 bp; + u64 si; + u64 di; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; +}; + +struct pebs_record_skl { + u64 flags; + u64 ip; + u64 ax; + u64 bx; + u64 cx; + u64 dx; + u64 si; + u64 di; + u64 bp; + u64 sp; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; + u64 status; + u64 dla; + u64 dse; + u64 lat; + u64 real_ip; + u64 tsx_tuning; + u64 tsc; +}; + +struct pebs_meminfo { + u64 address; + u64 aux; + u64 latency; + u64 tsx_tuning; +}; + +struct pebs_xmm { + u64 xmm[32]; +}; + +struct optimistic_spin_node { + struct optimistic_spin_node *next; + struct optimistic_spin_node *prev; + int locked; int cpu; - struct rcu_tasks *rtpp; }; -struct rcu_tasks_test_desc { - struct callback_head rh; +enum suspend_stat_step { + SUSPEND_WORKING = 0, + SUSPEND_FREEZE = 1, + SUSPEND_PREPARE = 2, + SUSPEND_SUSPEND = 3, + SUSPEND_SUSPEND_LATE = 4, + SUSPEND_SUSPEND_NOIRQ = 5, + SUSPEND_RESUME_NOIRQ = 6, + SUSPEND_RESUME_EARLY = 7, + SUSPEND_RESUME = 8, +}; + +struct suspend_stats { + unsigned int step_failures[8]; + unsigned int success; + unsigned int fail; + int last_failed_dev; + char failed_devs[80]; + int last_failed_errno; + int errno[2]; + int last_failed_step; + u64 last_hw_sleep; + u64 total_hw_sleep; + u64 max_hw_sleep; + enum suspend_stat_step failed_steps[2]; +}; + +struct rchan_percpu_buf_dispatcher { + struct rchan_buf *buf; + struct dentry *dentry; +}; + +typedef void (*rethook_handler_t)(struct rethook_node *, void *, unsigned long, struct pt_regs *); + +typedef int (*objpool_init_obj_cb)(void *, void *); + +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, +}; + +struct bpf_iter_target_info { + struct list_head list; + const struct bpf_iter_reg *reg_info; + u32 btf_id; +}; + +struct bpf_iter_link { + struct bpf_link link; + struct bpf_iter_aux_info aux; + struct bpf_iter_target_info *tinfo; +}; + +struct bpf_iter_priv_data { + struct bpf_iter_target_info *tinfo; + const struct bpf_iter_seq_info *seq_info; + struct bpf_prog *prog; + u64 session_id; + u64 seq_num; + bool done_stop; + long: 0; + u8 target_private[0]; +}; + +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); + +struct bpf_iter_num { + __u64 __opaque[1]; +}; + +struct bpf_iter_num_kern { + int cur; + int end; +}; + +struct mnt_idmap { + struct uid_gid_map uid_map; + struct uid_gid_map gid_map; + refcount_t count; +}; + +enum criteria { + CR_POWER2_ALIGNED = 0, + CR_GOAL_LEN_FAST = 1, + CR_BEST_AVAIL_LEN = 2, + CR_GOAL_LEN_SLOW = 3, + CR_ANY_FREE = 4, + EXT4_MB_NUM_CRS = 5, +}; + +enum { + MB_INODE_PA = 0, + MB_GROUP_PA = 1, +}; + +struct ext4_free_data { + struct list_head efd_list; + struct rb_node efd_node; + ext4_group_t efd_group; + ext4_grpblk_t efd_start_cluster; + ext4_grpblk_t efd_count; + tid_t efd_tid; +}; + +struct ext4_prealloc_space { + union { + struct rb_node inode_node; + struct list_head lg_list; + } pa_node; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + unsigned short pa_type; + union { + rwlock_t *inode_lock; + spinlock_t *lg_lock; + } pa_node_lock; + struct inode *pa_inode; +}; + +struct ext4_buddy { + struct page *bd_buddy_page; + void *bd_buddy; + struct page *bd_bitmap_page; + void *bd_bitmap; + struct ext4_group_info *bd_info; + struct super_block *bd_sb; + __u16 bd_blkbits; + ext4_group_t bd_group; +}; + +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; +}; + +struct ext4_free_extent { + ext4_lblk_t fe_logical; + ext4_grpblk_t fe_start; + ext4_group_t fe_group; + ext4_grpblk_t fe_len; +}; + +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_grpblk_t ac_orig_goal_len; + __u32 ac_flags; + __u16 ac_groups_scanned; + __u16 ac_groups_linear_remaining; + __u16 ac_found; + __u16 ac_cX_found[5]; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct page *ac_bitmap_page; + struct page *ac_buddy_page; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; +}; + +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); + +struct btrfs_seq_list { + struct list_head list; + u64 seq; +}; + +struct tree_mod_root { + u64 logical; + u8 level; +}; + +struct tree_mod_elem { + struct rb_node node; + u64 logical; + u64 seq; + enum btrfs_mod_log_op op; + int slot; + u64 generation; + struct btrfs_disk_key key; + u64 blockptr; + struct { + int dst_slot; + int nr_items; + } move; + struct tree_mod_root old_root; +}; + +struct acomp_alg { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + int (*init)(struct crypto_acomp *); + void (*exit)(struct crypto_acomp *); + unsigned int reqsize; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +struct crypto_istat_compress { + atomic64_t compress_cnt; + atomic64_t compress_tlen; + atomic64_t decompress_cnt; + atomic64_t decompress_tlen; + atomic64_t err_cnt; +}; + +enum bfqq_expiration { + BFQQE_TOO_IDLE = 0, + BFQQE_BUDGET_TIMEOUT = 1, + BFQQE_BUDGET_EXHAUSTED = 2, + BFQQE_NO_MORE_REQUESTS = 3, + BFQQE_PREEMPTED = 4, +}; + +struct bfq_group_data { + struct blkcg_policy_data pd; + unsigned int weight; +}; + +struct blkg_conf_ctx { + char *input; + char *body; + struct block_device *bdev; + struct blkcg_gq *blkg; +}; + +struct blkg_rwstat_sample { + u64 cnt[5]; +}; + +enum { + REQ_F_FIXED_FILE_BIT = 0, + REQ_F_IO_DRAIN_BIT = 1, + REQ_F_LINK_BIT = 2, + REQ_F_HARDLINK_BIT = 3, + REQ_F_FORCE_ASYNC_BIT = 4, + REQ_F_BUFFER_SELECT_BIT = 5, + REQ_F_CQE_SKIP_BIT = 6, + REQ_F_FAIL_BIT = 8, + REQ_F_INFLIGHT_BIT = 9, + REQ_F_CUR_POS_BIT = 10, + REQ_F_NOWAIT_BIT = 11, + REQ_F_LINK_TIMEOUT_BIT = 12, + REQ_F_NEED_CLEANUP_BIT = 13, + REQ_F_POLLED_BIT = 14, + REQ_F_BUFFER_SELECTED_BIT = 15, + REQ_F_BUFFER_RING_BIT = 16, + REQ_F_REISSUE_BIT = 17, + REQ_F_CREDS_BIT = 18, + REQ_F_REFCOUNT_BIT = 19, + REQ_F_ARM_LTIMEOUT_BIT = 20, + REQ_F_ASYNC_DATA_BIT = 21, + REQ_F_SKIP_LINK_CQES_BIT = 22, + REQ_F_SINGLE_POLL_BIT = 23, + REQ_F_DOUBLE_POLL_BIT = 24, + REQ_F_APOLL_MULTISHOT_BIT = 25, + REQ_F_CLEAR_POLLIN_BIT = 26, + REQ_F_HASH_LOCKED_BIT = 27, + REQ_F_SUPPORT_NOWAIT_BIT = 28, + REQ_F_ISREG_BIT = 29, + REQ_F_POLL_NO_LAZY_BIT = 30, + REQ_F_CANCEL_SEQ_BIT = 31, + REQ_F_CAN_POLL_BIT = 32, + REQ_F_BL_EMPTY_BIT = 33, + REQ_F_BL_NO_RECYCLE_BIT = 34, + __REQ_F_LAST_BIT = 35, +}; + +struct mpi_ec_ctx; + +struct field_table { + const char *p; + void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *); + void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *); + void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *); + void (*mul2)(MPI, MPI, struct mpi_ec_ctx *); + void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *); +}; + +struct barrett_ctx_s; + +typedef struct barrett_ctx_s *mpi_barrett_t; + +enum gcry_mpi_ec_models { + MPI_EC_WEIERSTRASS = 0, + MPI_EC_MONTGOMERY = 1, + MPI_EC_EDWARDS = 2, +}; + +enum ecc_dialects { + ECC_DIALECT_STANDARD = 0, + ECC_DIALECT_ED25519 = 1, + ECC_DIALECT_SAFECURVE = 2, +}; + +struct gcry_mpi_point; + +typedef struct gcry_mpi_point *MPI_POINT; + +struct mpi_ec_ctx { + enum gcry_mpi_ec_models model; + enum ecc_dialects dialect; + int flags; + unsigned int nbits; + MPI p; + MPI a; + MPI b; + MPI_POINT G; + MPI n; + unsigned int h; + MPI_POINT Q; + MPI d; const char *name; - bool notrun; - unsigned long runstart; + struct { + struct { + unsigned int a_is_pminus3: 1; + unsigned int two_inv_p: 1; + } valid; + int a_is_pminus3; + MPI two_inv_p; + mpi_barrett_t p_barrett; + MPI scratch[11]; + } t; + void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *); + void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *); + void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *); + void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *); + void (*mul2)(MPI, MPI, struct mpi_ec_ctx *); }; -struct rcu_synchronize { - struct callback_head head; - struct completion completion; +struct gcry_mpi_point { + MPI x; + MPI y; + MPI z; }; -struct trace_event_raw_rcu_utilization { +enum gcry_mpi_constants { + MPI_C_ZERO = 0, + MPI_C_ONE = 1, + MPI_C_TWO = 2, + MPI_C_THREE = 3, + MPI_C_FOUR = 4, + MPI_C_EIGHT = 5, +}; + +struct sg_pool { + size_t size; + char *name; + struct kmem_cache *slab; + mempool_t *pool; +}; + +typedef void sg_free_fn(struct scatterlist *, unsigned int); + +typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); + +struct override_status_id { + struct acpi_device_id hid[2]; + struct x86_cpu_id cpu_ids[2]; + struct dmi_system_id dmi_ids[2]; + const char *uid; + const char *path; + unsigned long long status; +}; + +enum { + AML_FIELD_UPDATE_PRESERVE = 0, + AML_FIELD_UPDATE_WRITE_AS_ONES = 32, + AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, +}; + +struct acpi_bit_register_info { + u8 parent_register; + u8 bit_position; + u16 access_bit_mask; +}; + +enum acpi_srat_type { + ACPI_SRAT_TYPE_CPU_AFFINITY = 0, + ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, + ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, + ACPI_SRAT_TYPE_GICC_AFFINITY = 3, + ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, + ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, + ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, + ACPI_SRAT_TYPE_RESERVED = 7, +}; + +enum acpi_cedt_type { + ACPI_CEDT_TYPE_CHBS = 0, + ACPI_CEDT_TYPE_CFMWS = 1, + ACPI_CEDT_TYPE_CXIMS = 2, + ACPI_CEDT_TYPE_RDPAS = 3, + ACPI_CEDT_TYPE_RESERVED = 4, +}; + +struct acpi_table_srat { + struct acpi_table_header header; + u32 table_revision; + u64 reserved; +}; + +struct acpi_srat_mem_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u16 reserved; + u64 base_address; + u64 length; + u32 reserved1; + u32 flags; + u64 reserved2; +} __attribute__((packed)); + +struct acpi_srat_gicc_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +} __attribute__((packed)); + +struct acpi_srat_generic_affinity { + struct acpi_subtable_header header; + u8 reserved; + u8 device_handle_type; + u32 proximity_domain; + u8 device_handle[16]; + u32 flags; + u32 reserved1; +}; + +struct acpi_table_slit { + struct acpi_table_header header; + u64 locality_count; + u8 entry[0]; +} __attribute__((packed)); + +struct acpi_cedt_cfmws { + struct acpi_cedt_header header; + u32 reserved1; + u64 base_hpa; + u64 window_size; + u8 interleave_ways; + u8 interleave_arithmetic; + u16 reserved2; + u32 granularity; + u16 restrictions; + u16 qtg_id; + u32 interleave_targets[0]; +} __attribute__((packed)); + +typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long); + +struct acpi_subtable_proc { + int id; + acpi_tbl_entry_handler handler; + acpi_tbl_entry_handler_arg handler_arg; + void *arg; + int count; +}; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + cc_t c_line; + cc_t c_cc[19]; +}; + +struct termios2 { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + cc_t c_line; + cc_t c_cc[19]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +struct termio { + unsigned short c_iflag; + unsigned short c_oflag; + unsigned short c_cflag; + unsigned short c_lflag; + unsigned char c_line; + unsigned char c_cc[8]; +}; + +typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); + +struct trace_event_raw_devres { struct trace_entry ent; - const char *s; + u32 __data_loc_devname; + struct device *dev; + const char *op; + void *node; + const char *name; + size_t size; char __data[0]; }; -struct trace_event_raw_rcu_grace_period { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - const char *gpevent; - char __data[0]; +struct trace_event_data_offsets_devres { + u32 devname; + const void *devname_ptr_; }; -struct trace_event_raw_rcu_future_grace_period { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - long gp_seq_req; - u8 level; - int grplo; - int grphi; - const char *gpevent; - char __data[0]; +struct igb_reg_test { + u16 reg; + u16 reg_offset; + u16 array_len; + u16 test_type; + u32 mask; + u32 write; }; -struct trace_event_raw_rcu_grace_period_init { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - u8 level; - int grplo; - int grphi; - unsigned long qsmask; - char __data[0]; +struct igb_stats { + char stat_string[32]; + int sizeof_stat; + int stat_offset; }; -struct trace_event_raw_rcu_exp_grace_period { - struct trace_entry ent; - const char *rcuname; - long gpseq; - const char *gpevent; - char __data[0]; +enum igb_filter_match_flags { + IGB_FILTER_FLAG_ETHER_TYPE = 1, + IGB_FILTER_FLAG_VLAN_TCI = 2, + IGB_FILTER_FLAG_SRC_MAC_ADDR = 4, + IGB_FILTER_FLAG_DST_MAC_ADDR = 8, }; -struct trace_event_raw_rcu_exp_funnel_lock { - struct trace_entry ent; - const char *rcuname; - u8 level; - int grplo; - int grphi; - const char *gpevent; - char __data[0]; +enum e1000_state_t { + __IGB_TESTING = 0, + __IGB_RESETTING = 1, + __IGB_DOWN = 2, + __IGB_PTP_TX_IN_PROGRESS = 3, }; -struct trace_event_raw_rcu_nocb_wake { - struct trace_entry ent; - const char *rcuname; - int cpu; - const char *reason; - char __data[0]; +enum igb_diagnostics_results { + TEST_REG = 0, + TEST_EEP = 1, + TEST_IRQ = 2, + TEST_LOOP = 3, + TEST_LINK = 4, }; -struct trace_event_raw_rcu_preempt_task { - struct trace_entry ent; - const char *rcuname; - long gp_seq; +enum { + ETH_RSS_HASH_TOP_BIT = 0, + ETH_RSS_HASH_XOR_BIT = 1, + ETH_RSS_HASH_CRC32_BIT = 2, + ETH_RSS_HASH_FUNCS_COUNT = 3, +}; + +union e1000_adv_rx_desc { + struct { + __le64 pkt_addr; + __le64 hdr_addr; + } read; + struct { + struct { + struct { + __le16 pkt_info; + __le16 hdr_info; + } lo_dword; + union { + __le32 rss; + struct { + __le16 ip_id; + __le16 csum; + } csum_ip; + } hi_dword; + } lower; + struct { + __le32 status_error; + __le16 length; + __le16 vlan; + } upper; + } wb; +}; + +struct igb_nfc_input { + u8 match_flags; + __be16 etype; + __be16 vlan_tci; + u8 src_addr[6]; + u8 dst_addr[6]; +}; + +struct igb_nfc_filter { + struct hlist_node nfc_node; + struct igb_nfc_input filter; + unsigned long cookie; + u16 etype_reg_index; + u16 sw_idx; + u16 action; +}; + +enum rs_column_mode { + RS_INVALID = 0, + RS_LEGACY = 1, + RS_SISO = 2, + RS_MIMO2 = 3, +}; + +struct rs_tx_column; + +typedef bool (*allow_column_func_t)(struct iwl_mvm *, struct ieee80211_sta *, struct rs_rate *, const struct rs_tx_column *); + +struct rs_tx_column { + enum rs_column_mode mode; + u8 ant; + bool sgi; + enum rs_column next_columns[7]; + allow_column_func_t checks[3]; +}; + +struct iwl_rs_rate_info { + u8 plcp; + u8 plcp_ht_siso; + u8 plcp_ht_mimo2; + u8 plcp_vht_siso; + u8 plcp_vht_mimo2; + u8 prev_rs; + u8 next_rs; +}; + +enum { + RS_STATE_SEARCH_CYCLE_STARTED = 0, + RS_STATE_SEARCH_CYCLE_ENDED = 1, + RS_STATE_STAY_IN_COLUMN = 2, +}; + +enum rs_action { + RS_ACTION_STAY = 0, + RS_ACTION_DOWNSCALE = -1, + RS_ACTION_UPSCALE = 1, +}; + +enum tpc_action { + TPC_ACTION_STAY = 0, + TPC_ACTION_DECREASE = 1, + TPC_ACTION_INCREASE = 2, + TPC_ACTION_NO_RESTIRCTION = 3, +}; + +enum iwl_power_scheme { + IWL_POWER_SCHEME_CAM = 1, + IWL_POWER_SCHEME_BPS = 2, + IWL_POWER_SCHEME_LP = 3, +}; + +struct rs_bfer_active_iter_data { + struct ieee80211_sta *exclude_sta; + struct iwl_mvm_sta *bfer_mvmsta; +}; + +enum snoop_when { + SUBMIT = 0, + COMPLETE___2 = 1, +}; + +struct usb_dev_state { + struct list_head list; + struct usb_device *dev; + struct file *file; + spinlock_t lock; + struct list_head async_pending; + struct list_head async_completed; + struct list_head memory_list; + wait_queue_head_t wait; + wait_queue_head_t wait_for_resume; + unsigned int discsignr; + struct pid *disc_pid; + const struct cred *cred; + sigval_t disccontext; + unsigned long ifclaimed; + u32 disabled_bulk_eps; + unsigned long interface_allowed_mask; + int not_yet_resumed; + bool suspend_allowed; + bool privileges_dropped; +}; + +struct usb_memory; + +struct async { + struct list_head asynclist; + struct usb_dev_state *ps; + struct pid *pid; + const struct cred *cred; + unsigned int signr; + unsigned int ifnum; + void __attribute__((btf_type_tag("user"))) *userbuffer; + void __attribute__((btf_type_tag("user"))) *userurb; + sigval_t userurb_sigval; + struct urb *urb; + struct usb_memory *usbm; + unsigned int mem_usage; + int status; + u8 bulk_addr; + u8 bulk_status; +}; + +struct usb_memory { + struct list_head memlist; + int vma_use_count; + int urb_use_count; + u32 size; + void *mem; + dma_addr_t dma_handle; + unsigned long vm_start; + struct usb_dev_state *ps; +}; + +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; +}; + +struct usbdevfs_urb { + unsigned char type; + unsigned char endpoint; + int status; + unsigned int flags; + void __attribute__((btf_type_tag("user"))) *buffer; + int buffer_length; + int actual_length; + int start_frame; + union { + int number_of_packets; + unsigned int stream_id; + }; + int error_count; + unsigned int signr; + void __attribute__((btf_type_tag("user"))) *usercontext; + struct usbdevfs_iso_packet_desc iso_frame_desc[0]; +}; + +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void __attribute__((btf_type_tag("user"))) *data; +}; + +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; +}; + +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void __attribute__((btf_type_tag("user"))) *data; +}; + +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; +}; + +struct usbdevfs_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void __attribute__((btf_type_tag("user"))) *data; +}; + +struct usbdevfs_connectinfo { + unsigned int devnum; + unsigned char slow; +}; + +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; +}; + +struct usbdevfs_disconnectsignal { + unsigned int signr; + void __attribute__((btf_type_tag("user"))) *context; +}; + +struct usbdevfs_conninfo_ex { + __u32 size; + __u32 busnum; + __u32 devnum; + __u32 speed; + __u8 num_ports; + __u8 ports[7]; +}; + +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; +}; + +struct ppl_log; + +struct ppl_io_unit { + struct ppl_log *log; + struct page *header_page; + unsigned int entries_count; + unsigned int pp_size; + u64 seq; + struct list_head log_sibling; + struct list_head stripe_list; + atomic_t pending_stripes; + atomic_t pending_flushes; + bool submitted; + struct bio bio; + struct bio_vec biovec[32]; +}; + +struct ppl_conf; + +struct ppl_log { + struct ppl_conf *ppl_conf; + struct md_rdev *rdev; + struct mutex io_mutex; + struct ppl_io_unit *current_io; + spinlock_t io_list_lock; + struct list_head io_list; + sector_t next_io_sector; + unsigned int entry_space; + bool use_multippl; + bool wb_cache_on; + unsigned long disk_flush_bitmap; +}; + +struct ppl_conf { + struct mddev *mddev; + struct ppl_log *child_logs; + int count; + int block_size; + u32 signature; + atomic64_t seq; + struct kmem_cache *io_kc; + mempool_t io_pool; + struct bio_set bs; + struct bio_set flush_bs; + int recovered_entries; + int mismatch_count; + struct list_head no_mem_stripes; + spinlock_t no_mem_stripes_lock; + unsigned short write_hint; +}; + +struct ppl_header_entry { + __le64 data_sector; + __le32 pp_size; + __le32 data_size; + __le32 parity_disk; + __le32 checksum; +}; + +struct ppl_header { + __u8 reserved[512]; + __le32 signature; + __le32 padding; + __le64 generation; + __le32 entries_count; + __le32 checksum; + struct ppl_header_entry entries[148]; +}; + +struct net_hotdata { + struct packet_offload ip_packet_offload; + struct net_offload tcpv4_offload; + struct net_protocol tcp_protocol; + struct net_offload udpv4_offload; + struct net_protocol udp_protocol; + struct packet_offload ipv6_packet_offload; + struct net_offload tcpv6_offload; + struct inet6_protocol tcpv6_protocol; + struct inet6_protocol udpv6_protocol; + struct net_offload udpv6_offload; + struct list_head offload_base; + struct list_head ptype_all; + struct kmem_cache *skbuff_cache; + struct kmem_cache *skbuff_fclone_cache; + struct kmem_cache *skb_small_head_cache; + struct rps_sock_flow_table __attribute__((btf_type_tag("rcu"))) *rps_sock_flow_table; + u32 rps_cpu_mask; + int gro_normal_batch; + int netdev_budget; + int netdev_budget_usecs; + int tstamp_prequeue; + int max_backlog; + int dev_tx_weight; + int dev_rx_weight; +}; + +enum { + ETHTOOL_A_LINKSTATE_UNSPEC = 0, + ETHTOOL_A_LINKSTATE_HEADER = 1, + ETHTOOL_A_LINKSTATE_LINK = 2, + ETHTOOL_A_LINKSTATE_SQI = 3, + ETHTOOL_A_LINKSTATE_SQI_MAX = 4, + ETHTOOL_A_LINKSTATE_EXT_STATE = 5, + ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 6, + ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 7, + __ETHTOOL_A_LINKSTATE_CNT = 8, + ETHTOOL_A_LINKSTATE_MAX = 7, +}; + +struct linkstate_reply_data { + struct ethnl_reply_data base; + int link; + int sqi; + int sqi_max; + struct ethtool_link_ext_stats link_stats; + bool link_ext_state_provided; + struct ethtool_link_ext_state_info ethtool_link_ext_state_info; +}; + +enum nft_last_attributes { + NFTA_LAST_UNSPEC = 0, + NFTA_LAST_SET = 1, + NFTA_LAST_MSECS = 2, + NFTA_LAST_PAD = 3, + __NFTA_LAST_MAX = 4, +}; + +struct nft_last; + +struct nft_last_priv { + struct nft_last *last; +}; + +struct nft_last { + unsigned long jiffies; + unsigned int set; +}; + +enum { + TCP_MIB_NUM = 0, + TCP_MIB_RTOALGORITHM = 1, + TCP_MIB_RTOMIN = 2, + TCP_MIB_RTOMAX = 3, + TCP_MIB_MAXCONN = 4, + TCP_MIB_ACTIVEOPENS = 5, + TCP_MIB_PASSIVEOPENS = 6, + TCP_MIB_ATTEMPTFAILS = 7, + TCP_MIB_ESTABRESETS = 8, + TCP_MIB_CURRESTAB = 9, + TCP_MIB_INSEGS = 10, + TCP_MIB_OUTSEGS = 11, + TCP_MIB_RETRANSSEGS = 12, + TCP_MIB_INERRS = 13, + TCP_MIB_OUTRSTS = 14, + TCP_MIB_CSUMERRORS = 15, + __TCP_MIB_MAX = 16, +}; + +struct rtentry { + unsigned long rt_pad1; + struct sockaddr rt_dst; + struct sockaddr rt_gateway; + struct sockaddr rt_genmask; + unsigned short rt_flags; + short rt_pad2; + unsigned long rt_pad3; + void *rt_pad4; + short rt_metric; + char __attribute__((btf_type_tag("user"))) *rt_dev; + unsigned long rt_mtu; + unsigned long rt_window; + unsigned short rt_irtt; +}; + +union net_bridge_eht_addr { + __be32 ip4; + struct in6_addr ip6; +}; + +struct net_bridge_group_eht_set { + struct rb_node rb_node; + union net_bridge_eht_addr src_addr; + struct rb_root entry_tree; + struct timer_list timer; + struct net_bridge_port_group *pg; + struct net_bridge *br; + struct net_bridge_mcast_gc mcast_gc; +}; + +struct net_bridge_group_eht_host; + +struct net_bridge_group_eht_set_entry { + struct rb_node rb_node; + struct hlist_node host_list; + union net_bridge_eht_addr h_addr; + struct timer_list timer; + struct net_bridge *br; + struct net_bridge_group_eht_set *eht_set; + struct net_bridge_group_eht_host *h_parent; + struct net_bridge_mcast_gc mcast_gc; +}; + +struct net_bridge_group_eht_host { + struct rb_node rb_node; + union net_bridge_eht_addr h_addr; + struct hlist_head set_entries; + unsigned int num_entries; + unsigned char filter_mode; + struct net_bridge_port_group *pg; +}; + +struct acpi_pci_root_info; + +struct acpi_pci_root_ops { + struct pci_ops *pci_ops; + int (*init_info)(struct acpi_pci_root_info *); + void (*release_info)(struct acpi_pci_root_info *); + int (*prepare_resources)(struct acpi_pci_root_info *); +}; + +struct acpi_pci_root; + +struct acpi_pci_root_info { + struct acpi_pci_root *root; + struct acpi_device *bridge; + struct acpi_pci_root_ops *ops; + struct list_head resources; + char name[16]; +}; + +struct acpi_pci_root { + struct acpi_device *device; + struct pci_bus *bus; + u16 segment; + int bridge_type; + struct resource secondary; + u32 osc_support_set; + u32 osc_control_set; + u32 osc_ext_support_set; + u32 osc_ext_control_set; + phys_addr_t mcfg_addr; +}; + +struct pci_root_info___2 { + struct acpi_pci_root_info common; + struct pci_sysdata sd; + bool mcfg_added; + u8 start_bus; + u8 end_bus; +}; + +enum reg_type { + REG_TYPE_RM = 0, + REG_TYPE_REG = 1, + REG_TYPE_INDEX = 2, + REG_TYPE_BASE = 3, +}; + +enum insn_mmio_type { + INSN_MMIO_DECODE_FAILED = 0, + INSN_MMIO_WRITE = 1, + INSN_MMIO_WRITE_IMM = 2, + INSN_MMIO_READ = 3, + INSN_MMIO_READ_ZERO_EXTEND = 4, + INSN_MMIO_READ_SIGN_EXTEND = 5, + INSN_MMIO_MOVS = 6, +}; + +struct __user_cap_header_struct; + +typedef struct __user_cap_header_struct *cap_user_header_t; + +struct __user_cap_header_struct { + __u32 version; int pid; - char __data[0]; }; -struct trace_event_raw_rcu_unlock_preempted_task { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - int pid; - char __data[0]; +struct __user_cap_data_struct; + +typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; + +struct __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; }; -struct trace_event_raw_rcu_quiescent_state_report { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - unsigned long mask; - unsigned long qsmask; - u8 level; - int grplo; - int grphi; - u8 gp_tasks; - char __data[0]; +struct load_info { + const char *name; + struct module *mod; + Elf64_Ehdr *hdr; + unsigned long len; + Elf64_Shdr *sechdrs; + char *secstrings; + char *strtab; + unsigned long symoffs; + unsigned long stroffs; + unsigned long init_typeoffs; + unsigned long core_typeoffs; + bool sig_ok; + unsigned long mod_kallsyms_init_off; + struct { + unsigned int sym; + unsigned int str; + unsigned int mod; + unsigned int vers; + unsigned int info; + unsigned int pcpu; + } index; }; -struct trace_event_raw_rcu_fqs { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - int cpu; - const char *qsevent; - char __data[0]; -}; - -struct trace_event_raw_rcu_stall_warning { - struct trace_entry ent; - const char *rcuname; - const char *msg; - char __data[0]; -}; - -struct trace_event_raw_rcu_dyntick { - struct trace_entry ent; - const char *polarity; - long oldnesting; - long newnesting; - int dynticks; - char __data[0]; -}; - -struct trace_event_raw_rcu_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - void *func; - long qlen; - char __data[0]; -}; - -struct trace_event_raw_rcu_segcb_stats { - struct trace_entry ent; - const char *ctx; - unsigned long gp_seq[4]; - long seglen[4]; - char __data[0]; -}; - -struct trace_event_raw_rcu_kvfree_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - unsigned long offset; - long qlen; - char __data[0]; -}; - -struct trace_event_raw_rcu_batch_start { - struct trace_entry ent; - const char *rcuname; - long qlen; - long blimit; - char __data[0]; -}; - -struct trace_event_raw_rcu_invoke_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - void *func; - char __data[0]; -}; - -struct trace_event_raw_rcu_invoke_kvfree_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - unsigned long offset; - char __data[0]; -}; - -struct trace_event_raw_rcu_invoke_kfree_bulk_callback { - struct trace_entry ent; - const char *rcuname; - unsigned long nr_records; - void **p; - char __data[0]; -}; - -struct trace_event_raw_rcu_batch_end { - struct trace_entry ent; - const char *rcuname; - int callbacks_invoked; - char cb; - char nr; - char iit; - char risk; - char __data[0]; -}; - -struct trace_event_raw_rcu_torture_read { - struct trace_entry ent; - char rcutorturename[8]; - struct callback_head *rhp; - unsigned long secs; - unsigned long c_old; - unsigned long c; - char __data[0]; -}; - -struct trace_event_raw_rcu_barrier { - struct trace_entry ent; - const char *rcuname; - const char *s; - int cpu; - int cnt; - unsigned long done; - char __data[0]; -}; - -struct early_boot_kfree_rcu { - struct callback_head rh; -}; - -struct rcu_cblist { - struct callback_head *head; - struct callback_head **tail; - long len; -}; - -struct trc_stall_chk_rdr { - int nesting; - int ipi_to_cpu; - u8 needqs; -}; - -typedef int (*task_call_f)(struct task_struct *, void *); - -struct trace_event_data_offsets_rcu_utilization {}; - -struct trace_event_data_offsets_rcu_grace_period {}; - -struct trace_event_data_offsets_rcu_future_grace_period {}; - -struct trace_event_data_offsets_rcu_grace_period_init {}; - -struct trace_event_data_offsets_rcu_exp_grace_period {}; - -struct trace_event_data_offsets_rcu_exp_funnel_lock {}; - -struct trace_event_data_offsets_rcu_nocb_wake {}; - -struct trace_event_data_offsets_rcu_preempt_task {}; - -struct trace_event_data_offsets_rcu_unlock_preempted_task {}; - -struct trace_event_data_offsets_rcu_quiescent_state_report {}; - -struct trace_event_data_offsets_rcu_fqs {}; - -struct trace_event_data_offsets_rcu_stall_warning {}; - -struct trace_event_data_offsets_rcu_dyntick {}; - -struct trace_event_data_offsets_rcu_callback {}; - -struct trace_event_data_offsets_rcu_segcb_stats {}; - -struct trace_event_data_offsets_rcu_kvfree_callback {}; - -struct trace_event_data_offsets_rcu_batch_start {}; - -struct trace_event_data_offsets_rcu_invoke_callback {}; - -struct trace_event_data_offsets_rcu_invoke_kvfree_callback {}; - -struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {}; - -struct trace_event_data_offsets_rcu_batch_end {}; - -struct trace_event_data_offsets_rcu_torture_read {}; - -struct trace_event_data_offsets_rcu_barrier {}; - struct bpf_iter__bpf_map { union { struct bpf_iter_meta *meta; @@ -100595,544 +99136,456 @@ struct bpf_iter_seq_map_info { u32 map_id; }; -typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_migratepages)(void *, unsigned int, unsigned int); - -typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool); - -typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int); - -typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); - -typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); - -typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); - -typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int); - -typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int); - -typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int); - -typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); - -typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); - -typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); - -enum compact_result { - COMPACT_NOT_SUITABLE_ZONE = 0, - COMPACT_SKIPPED = 1, - COMPACT_DEFERRED = 2, - COMPACT_NO_SUITABLE_PAGE = 3, - COMPACT_CONTINUE = 4, - COMPACT_COMPLETE = 5, - COMPACT_PARTIAL_SKIPPED = 6, - COMPACT_CONTENDED = 7, - COMPACT_SUCCESS = 8, +struct constant_table { + const char *name; + int value; }; -enum compact_priority { - COMPACT_PRIO_SYNC_FULL = 0, - MIN_COMPACT_PRIORITY = 0, - COMPACT_PRIO_SYNC_LIGHT = 1, - MIN_COMPACT_COSTLY_PRIORITY = 1, - DEF_COMPACT_PRIORITY = 1, - COMPACT_PRIO_ASYNC = 2, - INIT_COMPACT_PRIORITY = 2, +enum shmem_param { + Opt_gid___4 = 0, + Opt_huge = 1, + Opt_mode___4 = 2, + Opt_mpol = 3, + Opt_nr_blocks = 4, + Opt_nr_inodes = 5, + Opt_size = 6, + Opt_uid___4 = 7, + Opt_inode32 = 8, + Opt_inode64 = 9, + Opt_noswap = 10, + Opt_quota = 11, + Opt_usrquota = 12, + Opt_grpquota = 13, + Opt_usrquota_block_hardlimit = 14, + Opt_usrquota_inode_hardlimit = 15, + Opt_grpquota_block_hardlimit = 16, + Opt_grpquota_inode_hardlimit = 17, }; -enum pageblock_bits { - PB_migrate = 0, - PB_migrate_end = 2, - PB_migrate_skip = 3, - NR_PAGEBLOCK_BITS = 4, +struct shmem_quota_limits { + qsize_t usrquota_bhardlimit; + qsize_t usrquota_ihardlimit; + qsize_t grpquota_bhardlimit; + qsize_t grpquota_ihardlimit; }; -typedef unsigned int isolate_mode_t; +struct shmem_sb_info { + unsigned long max_blocks; + struct percpu_counter used_blocks; + unsigned long max_inodes; + unsigned long free_ispace; + raw_spinlock_t stat_lock; + umode_t mode; + unsigned char huge; + kuid_t uid; + kgid_t gid; + bool full_inums; + bool noswap; + ino_t next_ino; + ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; + struct mempolicy *mpol; + spinlock_t shrinklist_lock; + struct list_head shrinklist; + unsigned long shrinklist_len; + struct shmem_quota_limits qlimits; +}; -struct trace_event_raw_mm_compaction_isolate_template { +struct simple_xattr { + struct rb_node rb_node; + char *name; + size_t size; + char value[0]; +}; + +struct shmem_options { + unsigned long long blocks; + unsigned long long inodes; + struct mempolicy *mpol; + kuid_t uid; + kgid_t gid; + umode_t mode; + bool full_inums; + int huge; + int seen; + bool noswap; + unsigned short quota_types; + struct shmem_quota_limits qlimits; +}; + +struct shmem_falloc { + wait_queue_head_t *waitq; + unsigned long start; + unsigned long next; + unsigned long nr_falloced; + unsigned long nr_unswapped; +}; + +typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); + +typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); + +typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); + +typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); + +typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); + +struct wb_writeback_work; + +typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +struct wb_writeback_work { + long nr_pages; + struct super_block *sb; + enum writeback_sync_modes sync_mode; + unsigned int tagged_writepages: 1; + unsigned int for_kupdate: 1; + unsigned int range_cyclic: 1; + unsigned int for_background: 1; + unsigned int for_sync: 1; + unsigned int auto_free: 1; + enum wb_reason reason; + struct list_head list; + struct wb_completion *done; +}; + +typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_pages_written)(void *, long); + +typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); + +typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); + +typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); + +typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); + +typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); + +typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long); + +typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); + +typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); + +typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); + +typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); + +typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); + +typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); + +typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); + +typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); + +enum wb_state { + WB_registered = 0, + WB_writeback_running = 1, + WB_has_dirty_io = 2, + WB_start_all = 3, +}; + +struct trace_event_raw_writeback_folio_template { struct trace_entry ent; - unsigned long start_pfn; - unsigned long end_pfn; - unsigned long nr_scanned; - unsigned long nr_taken; + char name[32]; + ino_t ino; + unsigned long index; char __data[0]; }; -struct trace_event_raw_mm_compaction_migratepages { +struct trace_event_raw_writeback_dirty_inode_template { struct trace_entry ent; - unsigned long nr_migrated; - unsigned long nr_failed; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long flags; char __data[0]; }; -struct trace_event_raw_mm_compaction_begin { +struct trace_event_raw_inode_foreign_history { struct trace_entry ent; - unsigned long zone_start; - unsigned long migrate_pfn; - unsigned long free_pfn; - unsigned long zone_end; - bool sync; + char name[32]; + ino_t ino; + ino_t cgroup_ino; + unsigned int history; char __data[0]; }; -struct trace_event_raw_mm_compaction_end { +struct trace_event_raw_inode_switch_wbs { struct trace_entry ent; - unsigned long zone_start; - unsigned long migrate_pfn; - unsigned long free_pfn; - unsigned long zone_end; - bool sync; - int status; + char name[32]; + ino_t ino; + ino_t old_cgroup_ino; + ino_t new_cgroup_ino; char __data[0]; }; -struct trace_event_raw_mm_compaction_try_to_compact_pages { +struct trace_event_raw_track_foreign_dirty { struct trace_entry ent; - int order; - unsigned long gfp_mask; - int prio; + char name[32]; + u64 bdi_id; + ino_t ino; + unsigned int memcg_id; + ino_t cgroup_ino; + ino_t page_cgroup_ino; char __data[0]; }; -struct trace_event_raw_mm_compaction_suitable_template { +struct trace_event_raw_flush_foreign { struct trace_entry ent; - int nid; - enum zone_type idx; - int order; - int ret; + char name[32]; + ino_t cgroup_ino; + unsigned int frn_bdi_id; + unsigned int frn_memcg_id; char __data[0]; }; -struct trace_event_raw_mm_compaction_defer_template { +struct trace_event_raw_writeback_write_inode_template { struct trace_entry ent; - int nid; - enum zone_type idx; - int order; - unsigned int considered; - unsigned int defer_shift; - int order_failed; + char name[32]; + ino_t ino; + int sync_mode; + ino_t cgroup_ino; char __data[0]; }; -struct trace_event_raw_mm_compaction_kcompactd_sleep { +struct trace_event_raw_writeback_work_class { struct trace_entry ent; - int nid; + char name[32]; + long nr_pages; + dev_t sb_dev; + int sync_mode; + int for_kupdate; + int range_cyclic; + int for_background; + int reason; + ino_t cgroup_ino; char __data[0]; }; -struct trace_event_raw_kcompactd_wake_template { +struct trace_event_raw_writeback_pages_written { struct trace_entry ent; - int nid; - int order; - enum zone_type highest_zoneidx; + long pages; char __data[0]; }; -struct movable_operations { - bool (*isolate_page)(struct page *, isolate_mode_t); - int (*migrate_page)(struct page *, struct page *, enum migrate_mode); - void (*putback_page)(struct page *); +struct trace_event_raw_writeback_class { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + char __data[0]; }; -typedef enum { - ISOLATE_ABORT = 0, - ISOLATE_NONE = 1, - ISOLATE_SUCCESS = 2, -} isolate_migrate_t; - -struct trace_event_data_offsets_mm_compaction_isolate_template {}; - -struct trace_event_data_offsets_mm_compaction_migratepages {}; - -struct trace_event_data_offsets_mm_compaction_begin {}; - -struct trace_event_data_offsets_mm_compaction_end {}; - -struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; - -struct trace_event_data_offsets_mm_compaction_suitable_template {}; - -struct trace_event_data_offsets_mm_compaction_defer_template {}; - -struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; - -struct trace_event_data_offsets_kcompactd_wake_template {}; - -struct alloc_context { - struct zonelist *zonelist; - nodemask_t *nodemask; - struct zoneref *preferred_zoneref; - int migratetype; - enum zone_type highest_zoneidx; - bool spread_dirty_pages; +struct trace_event_raw_writeback_bdi_register { + struct trace_entry ent; + char name[32]; + char __data[0]; }; -struct node { - struct device dev; - struct list_head access_list; +struct trace_event_raw_wbc_class { + struct trace_entry ent; + char name[32]; + long nr_to_write; + long pages_skipped; + int sync_mode; + int for_kupdate; + int for_background; + int for_reclaim; + int range_cyclic; + long range_start; + long range_end; + ino_t cgroup_ino; + char __data[0]; }; -typedef struct { - __le32 *p; - __le32 key; - struct buffer_head *bh; -} Indirect; - -struct SU_SP_s { - __u8 magic[2]; - __u8 skip; +struct trace_event_raw_writeback_queue_io { + struct trace_entry ent; + char name[32]; + unsigned long older; + long age; + int moved; + int reason; + ino_t cgroup_ino; + char __data[0]; }; -struct SU_CE_s { - __u8 extent[8]; - __u8 offset[8]; - __u8 size[8]; +struct trace_event_raw_global_dirty_state { + struct trace_entry ent; + unsigned long nr_dirty; + unsigned long nr_writeback; + unsigned long background_thresh; + unsigned long dirty_thresh; + unsigned long dirty_limit; + unsigned long nr_dirtied; + unsigned long nr_written; + char __data[0]; }; -struct SU_ER_s { - __u8 len_id; - __u8 len_des; - __u8 len_src; - __u8 ext_ver; - __u8 data[0]; +struct trace_event_raw_bdi_dirty_ratelimit { + struct trace_entry ent; + char bdi[32]; + unsigned long write_bw; + unsigned long avg_write_bw; + unsigned long dirty_rate; + unsigned long dirty_ratelimit; + unsigned long task_ratelimit; + unsigned long balanced_dirty_ratelimit; + ino_t cgroup_ino; + char __data[0]; }; -struct RR_RR_s { - __u8 flags[1]; +struct trace_event_raw_balance_dirty_pages { + struct trace_entry ent; + char bdi[32]; + unsigned long limit; + unsigned long setpoint; + unsigned long dirty; + unsigned long bdi_setpoint; + unsigned long bdi_dirty; + unsigned long dirty_ratelimit; + unsigned long task_ratelimit; + unsigned int dirtied; + unsigned int dirtied_pause; + unsigned long paused; + long pause; + unsigned long period; + long think; + ino_t cgroup_ino; + char __data[0]; }; -struct RR_PX_s { - __u8 mode[8]; - __u8 n_links[8]; - __u8 uid[8]; - __u8 gid[8]; +struct trace_event_raw_writeback_sb_inodes_requeue { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long dirtied_when; + ino_t cgroup_ino; + char __data[0]; }; -struct RR_PN_s { - __u8 dev_high[8]; - __u8 dev_low[8]; +struct trace_event_raw_writeback_single_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long dirtied_when; + unsigned long writeback_index; + long nr_to_write; + unsigned long wrote; + ino_t cgroup_ino; + char __data[0]; }; -struct SL_component { - __u8 flags; - __u8 len; - __u8 text[0]; +struct trace_event_raw_writeback_inode_template { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long state; + __u16 mode; + unsigned long dirtied_when; + char __data[0]; }; -struct RR_SL_s { - __u8 flags; - struct SL_component link; +struct inode_switch_wbs_context { + struct rcu_work work; + struct bdi_writeback *new_wb; + struct inode *inodes[0]; }; -struct RR_NM_s { - __u8 flags; - char name[0]; +struct trace_event_data_offsets_writeback_folio_template {}; + +struct trace_event_data_offsets_writeback_dirty_inode_template {}; + +struct trace_event_data_offsets_inode_foreign_history {}; + +struct trace_event_data_offsets_inode_switch_wbs {}; + +struct trace_event_data_offsets_track_foreign_dirty {}; + +struct trace_event_data_offsets_flush_foreign {}; + +struct trace_event_data_offsets_writeback_write_inode_template {}; + +struct trace_event_data_offsets_writeback_work_class {}; + +struct trace_event_data_offsets_writeback_pages_written {}; + +struct trace_event_data_offsets_writeback_class {}; + +struct trace_event_data_offsets_writeback_bdi_register {}; + +struct trace_event_data_offsets_wbc_class {}; + +struct trace_event_data_offsets_writeback_queue_io {}; + +struct trace_event_data_offsets_global_dirty_state {}; + +struct trace_event_data_offsets_bdi_dirty_ratelimit {}; + +struct trace_event_data_offsets_balance_dirty_pages {}; + +struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; + +struct trace_event_data_offsets_writeback_single_inode_template {}; + +struct trace_event_data_offsets_writeback_inode_template {}; + +typedef unsigned short __kernel_uid16_t; + +typedef __kernel_uid16_t uid16_t; + +typedef unsigned short __kernel_gid16_t; + +typedef __kernel_gid16_t gid16_t; + +struct ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; }; -struct RR_CL_s { - __u8 location[8]; +struct ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + sector_t io_next_block; }; -struct RR_PL_s { - __u8 location[8]; -}; - -struct stamp { - __u8 time[7]; -}; - -struct RR_TF_s { - __u8 flags; - struct stamp times[0]; -}; - -struct RR_ZF_s { - __u8 algorithm[2]; - __u8 parms[2]; - __u8 real_size[8]; -}; - -struct rock_ridge { - __u8 signature[2]; - __u8 len; - __u8 version; - union { - struct SU_SP_s SP; - struct SU_CE_s CE; - struct SU_ER_s ER; - struct RR_RR_s RR; - struct RR_PX_s PX; - struct RR_PN_s PN; - struct RR_SL_s SL; - struct RR_NM_s NM; - struct RR_CL_s CL; - struct RR_PL_s PL; - struct RR_TF_s TF; - struct RR_ZF_s ZF; - } u; -}; - -struct rock_state { - void *buffer; - unsigned char *chr; - int len; - int cont_size; - int cont_extent; - int cont_offset; - int cont_loops; +struct mpage_da_data { struct inode *inode; -}; - -enum fuse_parse_result { - FOUND_ERR = -1, - FOUND_NONE = 0, - FOUND_SOME = 1, - FOUND_ALL = 2, -}; - -struct fuse_attr { - uint64_t ino; - uint64_t size; - uint64_t blocks; - uint64_t atime; - uint64_t mtime; - uint64_t ctime; - uint32_t atimensec; - uint32_t mtimensec; - uint32_t ctimensec; - uint32_t mode; - uint32_t nlink; - uint32_t uid; - uint32_t gid; - uint32_t rdev; - uint32_t blksize; - uint32_t flags; -}; - -struct fuse_entry_out { - uint64_t nodeid; - uint64_t generation; - uint64_t entry_valid; - uint64_t attr_valid; - uint32_t entry_valid_nsec; - uint32_t attr_valid_nsec; - struct fuse_attr attr; -}; - -struct fuse_dirent { - uint64_t ino; - uint64_t off; - uint32_t namelen; - uint32_t type; - char name[0]; -}; - -struct fuse_direntplus { - struct fuse_entry_out entry_out; - struct fuse_dirent dirent; -}; - -struct fuse_forget_in { - uint64_t nlookup; -}; - -struct fuse_sx_time { - int64_t tv_sec; - uint32_t tv_nsec; - int32_t __reserved; -}; - -struct fuse_statx { - uint32_t mask; - uint32_t blksize; - uint64_t attributes; - uint32_t nlink; - uint32_t uid; - uint32_t gid; - uint16_t mode; - uint16_t __spare0[1]; - uint64_t ino; - uint64_t size; - uint64_t blocks; - uint64_t attributes_mask; - struct fuse_sx_time atime; - struct fuse_sx_time btime; - struct fuse_sx_time ctime; - struct fuse_sx_time mtime; - uint32_t rdev_major; - uint32_t rdev_minor; - uint32_t dev_major; - uint32_t dev_minor; - uint64_t __spare2[14]; -}; - -struct btrfs_raid_attr { - u8 sub_stripes; - u8 dev_stripes; - u8 devs_max; - u8 devs_min; - u8 tolerated_failures; - u8 devs_increment; - u8 ncopies; - u8 nparity; - u8 mindev_error; - const char raid_name[8]; - u64 bg_flag; -}; - -enum btrfs_err_code { - BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1, - BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2, - BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3, - BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4, - BTRFS_ERROR_DEV_TGT_REPLACE = 5, - BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6, - BTRFS_ERROR_DEV_ONLY_WRITABLE = 7, - BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8, - BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9, - BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10, -}; - -struct btrfs_disk_balance_args { - __le64 profiles; - union { - __le64 usage; - struct { - __le32 usage_min; - __le32 usage_max; - }; - }; - __le64 devid; - __le64 pstart; - __le64 pend; - __le64 vstart; - __le64 vend; - __le64 target; - __le64 flags; - union { - __le64 limit; - struct { - __le32 limit_min; - __le32 limit_max; - }; - }; - __le32 stripes_min; - __le32 stripes_max; - __le64 unused[6]; -}; - -struct btrfs_balance_item { - __le64 flags; - struct btrfs_disk_balance_args data; - struct btrfs_disk_balance_args meta; - struct btrfs_disk_balance_args sys; - __le64 unused[4]; -}; - -struct btrfs_stripe { - __le64 devid; - __le64 offset; - __u8 dev_uuid[16]; -}; - -struct btrfs_chunk { - __le64 length; - __le64 owner; - __le64 stripe_len; - __le64 type; - __le32 io_align; - __le32 io_width; - __le32 sector_size; - __le16 num_stripes; - __le16 sub_stripes; - struct btrfs_stripe stripe; -}; - -struct btrfs_dev_stats_item { - __le64 values[5]; -}; - -struct btrfs_dev_lookup_args { - u64 devid; - u8 *uuid; - u8 *fsid; - bool missing; -}; - -struct alloc_chunk_ctl { - u64 start; - u64 type; - int num_stripes; - int sub_stripes; - int dev_stripes; - int devs_max; - int devs_min; - int devs_increment; - int ncopies; - int nparity; - u64 max_stripe_size; - u64 max_chunk_size; - u64 dev_extent_min; - u64 stripe_size; - u64 chunk_size; - int ndevs; -}; - -struct btrfs_device_info { - struct btrfs_device *dev; - u64 dev_offset; - u64 max_avail; - u64 total_avail; -}; - -struct btrfs_ioctl_balance_args { - __u64 flags; - __u64 state; - struct btrfs_balance_args data; - struct btrfs_balance_args meta; - struct btrfs_balance_args sys; - struct btrfs_balance_progress stat; - __u64 unused[72]; -}; - -struct btrfs_io_geometry { - u32 stripe_index; - u32 stripe_nr; - int mirror_num; - int num_stripes; - u64 stripe_offset; - u64 raid56_full_stripe_start; - int max_errors; - enum btrfs_map_op op; -}; - -struct btrfs_discard_stripe { - struct btrfs_device *dev; - u64 physical; - u64 length; -}; - -struct btrfs_ioctl_get_dev_stats { - __u64 devid; - __u64 nr_items; - __u64 flags; - __u64 values[5]; - __u64 unused[121]; -}; - -struct xxhash64_tfm_ctx { - u64 seed; -}; - -struct xxhash64_desc_ctx { - struct xxh64_state xxhstate; + struct writeback_control *wbc; + unsigned int can_map: 1; + unsigned long first_page; + unsigned long next_page; + unsigned long last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; + unsigned int journalled_more_data: 1; }; struct xattr_name; @@ -101158,1143 +99611,771 @@ struct xattr_name { char name[256]; }; -struct region { - unsigned int start; - unsigned int off; - unsigned int group_len; - unsigned int end; - unsigned int nbits; -}; +typedef ZSTD_DCtx ZSTD_DStream; -enum gcry_mpi_format { - GCRYMPI_FMT_NONE = 0, - GCRYMPI_FMT_STD = 1, - GCRYMPI_FMT_PGP = 2, - GCRYMPI_FMT_SSH = 3, - GCRYMPI_FMT_HEX = 4, - GCRYMPI_FMT_USG = 5, - GCRYMPI_FMT_OPAQUE = 8, -}; +typedef ZSTD_ErrorCode zstd_error_code; -struct iommu_group {}; +typedef ZSTD_DCtx zstd_dctx; -struct pci_dynid { - struct list_head node; - struct pci_device_id id; -}; +typedef ZSTD_DStream zstd_dstream; -struct drv_dev_and_id { - struct pci_driver *drv; - struct pci_dev *dev; - const struct pci_device_id *id; -}; +typedef ZSTD_frameHeader zstd_frame_header; -typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); +typedef u64 unative_t; -struct clk_parent_map; - -struct clk_core { - const char *name; - const struct clk_ops *ops; - struct clk_hw *hw; - struct module *owner; - struct device *dev; - struct device_node *of_node; - struct clk_core *parent; - struct clk_parent_map *parents; - u8 num_parents; - u8 new_parent_index; - unsigned long rate; - unsigned long req_rate; - unsigned long new_rate; - struct clk_core *new_parent; - struct clk_core *new_child; - unsigned long flags; - bool orphan; - bool rpm_enabled; - unsigned int enable_count; - unsigned int prepare_count; - unsigned int protect_count; - unsigned long min_rate; - unsigned long max_rate; - unsigned long accuracy; - int phase; - struct clk_duty duty; - struct hlist_head children; - struct hlist_node child_node; - struct hlist_head clks; - unsigned int notifier_count; - struct dentry *dentry; - struct hlist_node debug_node; - struct kref ref; -}; - -struct clk_parent_map { - const struct clk_hw *hw; - struct clk_core *core; - const char *fw_name; - const char *name; - int index; -}; - -typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); - -typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); - -typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); - -typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); - -typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); - -typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); - -typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); - -typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); - -typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); - -struct clk_notifier { - struct clk *clk; - struct srcu_notifier_head notifier_head; - struct list_head node; -}; - -struct trace_event_raw_clk { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_clk_rate { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long rate; - char __data[0]; -}; - -struct trace_event_raw_clk_rate_range { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long min; - unsigned long max; - char __data[0]; -}; - -struct trace_event_raw_clk_parent { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - char __data[0]; -}; - -struct trace_event_raw_clk_phase { - struct trace_entry ent; - u32 __data_loc_name; - int phase; - char __data[0]; -}; - -struct trace_event_raw_clk_duty_cycle { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int num; - unsigned int den; - char __data[0]; -}; - -struct trace_event_raw_clk_rate_request { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - unsigned long min; - unsigned long max; - unsigned long prate; - char __data[0]; -}; - -struct trace_event_data_offsets_clk { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_clk_rate { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_clk_rate_range { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_clk_parent { - u32 name; - const void *name_ptr_; - u32 pname; - const void *pname_ptr_; -}; - -struct trace_event_data_offsets_clk_phase { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_clk_duty_cycle { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_clk_rate_request { - u32 name; - const void *name_ptr_; - u32 pname; - const void *pname_ptr_; -}; - -struct clk_notifier_data { - struct clk *clk; - unsigned long old_rate; - unsigned long new_rate; -}; - -struct clk_notifier_devres { - struct clk *clk; - struct notifier_block *nb; +enum nla_policy_validation { + NLA_VALIDATE_NONE = 0, + NLA_VALIDATE_RANGE = 1, + NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, + NLA_VALIDATE_MIN = 3, + NLA_VALIDATE_MAX = 4, + NLA_VALIDATE_MASK = 5, + NLA_VALIDATE_RANGE_PTR = 6, + NLA_VALIDATE_FUNCTION = 7, }; enum { - AHCI_PCI_BAR_STA2X11 = 0, - AHCI_PCI_BAR_CAVIUM = 0, - AHCI_PCI_BAR_LOONGSON = 0, - AHCI_PCI_BAR_ENMOTUS = 2, - AHCI_PCI_BAR_CAVIUM_GEN5 = 4, - AHCI_PCI_BAR_STANDARD = 5, + NLA_UNSPEC = 0, + NLA_U8 = 1, + NLA_U16 = 2, + NLA_U32 = 3, + NLA_U64 = 4, + NLA_STRING = 5, + NLA_FLAG = 6, + NLA_MSECS = 7, + NLA_NESTED = 8, + NLA_NESTED_ARRAY = 9, + NLA_NUL_STRING = 10, + NLA_BINARY = 11, + NLA_S8 = 12, + NLA_S16 = 13, + NLA_S32 = 14, + NLA_S64 = 15, + NLA_BITFIELD32 = 16, + NLA_REJECT = 17, + NLA_BE16 = 18, + NLA_BE32 = 19, + NLA_SINT = 20, + NLA_UINT = 21, + __NLA_TYPE_MAX = 22, }; -enum board_ids { - board_ahci = 0, - board_ahci_43bit_dma = 1, - board_ahci_ign_iferr = 2, - board_ahci_no_debounce_delay = 3, - board_ahci_no_msi = 4, - board_ahci_pcs_quirk = 5, - board_ahci_pcs_quirk_no_devslp = 6, - board_ahci_pcs_quirk_no_sntf = 7, - board_ahci_yes_fbs = 8, - board_ahci_al = 9, - board_ahci_avn = 10, - board_ahci_mcp65 = 11, - board_ahci_mcp77 = 12, - board_ahci_mcp89 = 13, - board_ahci_mv = 14, - board_ahci_sb600 = 15, - board_ahci_sb700 = 16, - board_ahci_vt8251 = 17, - board_ahci_mcp_linux = 11, - board_ahci_mcp67 = 11, - board_ahci_mcp73 = 11, - board_ahci_mcp79 = 12, +struct nla_bitfield32 { + __u32 value; + __u32 selector; }; -enum iwl_cfg_trans_ltr_delay { - IWL_CFG_TRANS_LTR_DELAY_NONE = 0, - IWL_CFG_TRANS_LTR_DELAY_200US = 1, - IWL_CFG_TRANS_LTR_DELAY_2500US = 2, - IWL_CFG_TRANS_LTR_DELAY_1820US = 3, +struct irq_override_cmp { + const struct dmi_system_id *system; + unsigned char irq; + unsigned char triggering; + unsigned char polarity; + unsigned char shareable; + bool override; }; -struct iwl_soc_configuration_cmd { - __le32 flags; - __le32 latency; +struct res_proc_context { + struct list_head *list; + int (*preproc)(struct acpi_resource *, void *); + void *preproc_data; + int count; + int error; }; -struct iwl_rfh_queue_data { - u8 q_num; - u8 enable; +struct resource_win { + struct resource res; + resource_size_t offset; +}; + +typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); + +struct uart_match { + struct uart_port *port; + struct uart_driver *driver; +}; + +enum ru_state { + RU_SUSPENDED = 0, + RU_RUNNING = 1, + RU_UNINITIALIZED = -1, +}; + +enum scb_cmd_lo { + cuc_nop = 0, + ruc_start = 1, + ruc_load_base = 6, + cuc_start = 16, + cuc_resume = 32, + cuc_dump_addr = 64, + cuc_dump_stats = 80, + cuc_load_base = 96, + cuc_dump_reset = 112, +}; + +struct rfd { + __le16 status; + __le16 command; + __le32 link; + __le32 rbd; + __le16 actual_size; + __le16 size; +}; + +enum mac { + mac_82557_D100_A = 0, + mac_82557_D100_B = 1, + mac_82557_D100_C = 2, + mac_82558_D101_A4 = 4, + mac_82558_D101_B0 = 5, + mac_82559_D101M = 8, + mac_82559_D101S = 9, + mac_82550_D102 = 12, + mac_82550_D102_C = 13, + mac_82551_E = 14, + mac_82551_F = 15, + mac_82551_10 = 16, + mac_unknown = 255, +}; + +enum phy___2 { + phy_100a = 992, + phy_100c = 55575208, + phy_82555_tx = 22020776, + phy_nsc_tx = 1543512064, + phy_82562_et = 53478056, + phy_82562_em = 52429480, + phy_82562_ek = 51380904, + phy_82562_eh = 24117928, + phy_82552_v = 3496017997, + phy_unknown = 4294967295, +}; + +struct param_range { + u32 min; + u32 max; + u32 count; +}; + +struct params { + struct param_range rfds; + struct param_range cbs; +}; + +enum loopback { + lb_none = 0, + lb_mac = 1, + lb_phy = 3, +}; + +struct rx; + +struct csr___2; + +struct cb; + +struct mem; + +struct nic { + u32 msg_enable; + struct net_device *netdev; + struct pci_dev *pdev; + u16 (*mdio_ctrl)(struct nic *, u32, u32, u32, u16); + long: 64; + long: 64; + long: 64; + long: 64; + struct rx *rxs; + struct rx *rx_to_use; + struct rx *rx_to_clean; + struct rfd blank_rfd; + enum ru_state ru_running; + long: 64; + long: 64; + spinlock_t cb_lock; + spinlock_t cmd_lock; + struct csr___2 *csr; + enum scb_cmd_lo cuc_cmd; + unsigned int cbs_avail; + struct napi_struct napi; + struct cb *cbs; + struct cb *cb_to_use; + struct cb *cb_to_send; + struct cb *cb_to_clean; + __le16 tx_command; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + enum { + ich = 1, + promiscuous = 2, + multicast_all = 4, + wol_magic = 8, + ich_10h_workaround = 16, + } flags; + enum mac mac; + enum phy___2 phy; + struct params params; + struct timer_list watchdog; + struct mii_if_info mii; + struct work_struct tx_timeout_task; + enum loopback loopback; + struct mem *mem; + dma_addr_t dma_addr; + struct dma_pool *cbs_pool; + dma_addr_t cbs_dma_addr; + u8 adaptive_ifs; + u8 tx_threshold; + u32 tx_frames; + u32 tx_collisions; + u32 tx_deferred; + u32 tx_single_collisions; + u32 tx_multiple_collisions; + u32 tx_fc_pause; + u32 tx_tco_frames; + u32 rx_fc_pause; + u32 rx_fc_unsupported; + u32 rx_tco_frames; + u32 rx_short_frame_errors; + u32 rx_over_length_errors; + u16 eeprom_wc; + __le16 eeprom[256]; + spinlock_t mdio_lock; + const struct firmware *fw; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rx { + struct rx *next; + struct rx *prev; + struct sk_buff *skb; + dma_addr_t dma_addr; +}; + +struct csr___2 { + struct { + u8 status; + u8 stat_ack; + u8 cmd_lo; + u8 cmd_hi; + u32 gen_ptr; + } scb; + u32 port; + u16 flash_ctrl; + u8 eeprom_ctrl_lo; + u8 eeprom_ctrl_hi; + u32 mdi_ctrl; + u32 rx_dma_count; +}; + +struct config { + u8 byte_count: 6; + u8 pad0: 2; + u8 rx_fifo_limit: 4; + u8 tx_fifo_limit: 3; + u8 pad1: 1; + u8 adaptive_ifs; + u8 mwi_enable: 1; + u8 type_enable: 1; + u8 read_align_enable: 1; + u8 term_write_cache_line: 1; + u8 pad3: 4; + u8 rx_dma_max_count: 7; + u8 pad4: 1; + u8 tx_dma_max_count: 7; + u8 dma_max_count_enable: 1; + u8 late_scb_update: 1; + u8 direct_rx_dma: 1; + u8 tno_intr: 1; + u8 cna_intr: 1; + u8 standard_tcb: 1; + u8 standard_stat_counter: 1; + u8 rx_save_overruns: 1; + u8 rx_save_bad_frames: 1; + u8 rx_discard_short_frames: 1; + u8 tx_underrun_retry: 2; + u8 pad7: 2; + u8 rx_extended_rfd: 1; + u8 tx_two_frames_in_fifo: 1; + u8 tx_dynamic_tbd: 1; + u8 mii_mode: 1; + u8 pad8: 6; + u8 csma_disabled: 1; + u8 rx_tcpudp_checksum: 1; + u8 pad9: 3; + u8 vlan_arp_tco: 1; + u8 link_status_wake: 1; + u8 arp_wake: 1; + u8 mcmatch_wake: 1; + u8 pad10: 3; + u8 no_source_addr_insertion: 1; + u8 preamble_length: 2; + u8 loopback: 2; + u8 linear_priority: 3; + u8 pad11: 5; + u8 linear_priority_mode: 1; + u8 pad12: 3; + u8 ifs: 4; + u8 ip_addr_lo; + u8 ip_addr_hi; + u8 promiscuous_mode: 1; + u8 broadcast_disabled: 1; + u8 wait_after_win: 1; + u8 pad15_1: 1; + u8 ignore_ul_bit: 1; + u8 crc_16_bit: 1; + u8 pad15_2: 1; + u8 crs_or_cdt: 1; + u8 fc_delay_lo; + u8 fc_delay_hi; + u8 rx_stripping: 1; + u8 tx_padding: 1; + u8 rx_crc_transfer: 1; + u8 rx_long_ok: 1; + u8 fc_priority_threshold: 3; + u8 pad18: 1; + u8 addr_wake: 1; + u8 magic_packet_disable: 1; + u8 fc_disable: 1; + u8 fc_restop: 1; + u8 fc_restart: 1; + u8 fc_reject: 1; + u8 full_duplex_force: 1; + u8 full_duplex_pin: 1; + u8 pad20_1: 5; + u8 fc_priority_location: 1; + u8 multi_ia: 1; + u8 pad20_2: 1; + u8 pad21_1: 3; + u8 multicast_all: 1; + u8 pad21_2: 4; + u8 rx_d102_mode: 1; + u8 rx_vlan_drop: 1; + u8 pad22: 6; + u8 pad_d102[9]; +}; + +struct multi { + __le16 count; + u8 addr[386]; +}; + +struct cb { + __le16 status; + __le16 command; + __le32 link; + union { + u8 iaaddr[6]; + __le32 ucode[134]; + struct config config; + struct multi multi; + struct { + u32 tbd_array; + u16 tcb_byte_count; + u8 threshold; + u8 tbd_count; + struct { + __le32 buf_addr; + __le16 size; + u16 eol; + } tbd; + } tcb; + __le32 dump_buffer_addr; + } u; + struct cb *next; + struct cb *prev; + dma_addr_t dma_addr; + struct sk_buff *skb; +}; + +struct stats { + __le32 tx_good_frames; + __le32 tx_max_collisions; + __le32 tx_late_collisions; + __le32 tx_underruns; + __le32 tx_lost_crs; + __le32 tx_deferred; + __le32 tx_single_collisions; + __le32 tx_multiple_collisions; + __le32 tx_total_collisions; + __le32 rx_good_frames; + __le32 rx_crc_errors; + __le32 rx_alignment_errors; + __le32 rx_resource_errors; + __le32 rx_overrun_errors; + __le32 rx_cdt_errors; + __le32 rx_short_frame_errors; + __le32 fc_xmt_pause; + __le32 fc_rcv_pause; + __le32 fc_rcv_unsupported; + __le16 xmt_tco_frames; + __le16 rcv_tco_frames; + __le32 complete; +}; + +struct mem { + struct { + u32 signature; + u32 result; + } selftest; + struct stats stats; + u8 dump_buf[596]; +}; + +enum eeprom_offsets { + eeprom_cnfg_mdix = 3, + eeprom_phy_iface = 6, + eeprom_id = 10, + eeprom_config_asf = 13, + eeprom_smbus_addr = 144, +}; + +enum eeprom_id { + eeprom_id_wol = 32, +}; + +enum cb_command { + cb_nop = 0, + cb_iaaddr = 1, + cb_config = 2, + cb_multi = 3, + cb_tx = 4, + cb_ucode = 5, + cb_dump = 6, + cb_tx_sf = 8, + cb_tx_nc = 16, + cb_cid = 7936, + cb_i = 8192, + cb_s = 16384, + cb_el = 32768, +}; + +enum port { + software_reset = 0, + selftest = 1, + selective_reset = 2, +}; + +enum cb_status { + cb_complete = 32768, + cb_ok = 8192, +}; + +enum mdi_ctrl { + mdi_write = 67108864, + mdi_read = 134217728, + mdi_ready = 268435456, +}; + +enum scb_cmd_hi { + irq_mask_none = 0, + irq_mask_all = 1, + irq_sw_gen = 2, +}; + +enum scb_stat_ack { + stat_ack_not_ours = 0, + stat_ack_sw_gen = 4, + stat_ack_rnr = 16, + stat_ack_cu_idle = 32, + stat_ack_frame_rx = 64, + stat_ack_cu_cmd_done = 128, + stat_ack_not_present = 255, + stat_ack_rx = 84, + stat_ack_tx = 160, +}; + +enum eeprom_op { + op_write = 5, + op_read = 6, + op_ewds = 16, + op_ewen = 19, +}; + +enum eeprom_ctrl_lo { + eesk = 1, + eecs = 2, + eedi = 4, + eedo = 8, +}; + +enum led_state { + led_on = 1, + led_off = 4, + led_on_559 = 5, + led_on_557 = 7, +}; + +enum scb_status { + rus_no_res = 8, + rus_ready = 16, + rus_mask = 60, +}; + +enum cuc_dump { + cuc_dump_complete = 40965, + cuc_dump_reset_complete = 40967, +}; + +enum eeprom_cnfg_mdix { + eeprom_mdix_enabled = 128, +}; + +enum eeprom_phy_iface { + NoSuchPhy = 0, + I82553AB = 1, + I82553C = 2, + I82503 = 3, + DP83840 = 4, + S80C240 = 5, + S80C24 = 6, + I82555 = 7, + DP83840A = 10, +}; + +enum eeprom_config_asf { + eeprom_asf = 32768, + eeprom_gcl = 16384, +}; + +enum pci_ers_result { + PCI_ERS_RESULT_NONE = 1, + PCI_ERS_RESULT_CAN_RECOVER = 2, + PCI_ERS_RESULT_NEED_RESET = 3, + PCI_ERS_RESULT_DISCONNECT = 4, + PCI_ERS_RESULT_RECOVERED = 5, + PCI_ERS_RESULT_NO_AER_DRIVER = 6, +}; + +enum { + CHANNEL_MODE_LEGACY = 0, + CHANNEL_MODE_PURE_40 = 1, + CHANNEL_MODE_MIXED = 2, + CHANNEL_MODE_RESERVED = 3, +}; + +enum { + IWL_RATE_6M_PLCP = 13, + IWL_RATE_9M_PLCP = 15, + IWL_RATE_12M_PLCP = 5, + IWL_RATE_18M_PLCP = 7, + IWL_RATE_24M_PLCP = 9, + IWL_RATE_36M_PLCP = 11, + IWL_RATE_48M_PLCP = 1, + IWL_RATE_54M_PLCP = 3, + IWL_RATE_60M_PLCP = 3, + IWL_RATE_1M_PLCP = 10, + IWL_RATE_2M_PLCP = 20, + IWL_RATE_5M_PLCP = 55, + IWL_RATE_11M_PLCP = 110, +}; + +enum { + RXON_DEV_TYPE_AP = 1, + RXON_DEV_TYPE_ESS = 3, + RXON_DEV_TYPE_IBSS = 4, + RXON_DEV_TYPE_SNIFFER = 6, + RXON_DEV_TYPE_CP = 7, + RXON_DEV_TYPE_2STA = 8, + RXON_DEV_TYPE_P2P = 9, +}; + +struct iwl_dram_scratch { + u8 try_cnt; + u8 bt_kill_cnt; __le16 reserved; - __le64 urbd_stts_wrptr; - __le64 fr_bd_cb; - __le64 ur_bd_cb; - __le32 fr_bd_wid; -} __attribute__((packed)); - -struct iwl_rfh_queue_config { - u8 num_queues; - u8 reserved[3]; - struct iwl_rfh_queue_data data[0]; -}; - -struct iwl_rfi_freq_table_resp_cmd { - struct iwl_rfi_lut_entry table[4]; - __le32 status; -}; - -struct iwl_rfi_config_cmd { - struct iwl_rfi_lut_entry table[24]; - u8 oem; - u8 reserved[3]; -}; - -struct iwl_rfi_deactivate_notif { - __le32 reason; -}; - -struct ehci_tt { - u16 bandwidth[8]; - struct list_head tt_list; - struct list_head ps_list; - struct usb_tt *usb_tt; - int tt_port; -}; - -struct ehci_iso_packet { - u64 bufp; - __le32 transaction; - u8 cross; - u32 buf1; -}; - -struct ehci_iso_sched { - struct list_head td_list; - unsigned int span; - unsigned int first_packet; - struct ehci_iso_packet packet[0]; -}; - -struct debug_buffer { - ssize_t (*fill_func)(struct debug_buffer *); - struct usb_bus *bus; - struct mutex mutex; - size_t count; - char *output_buf; - size_t alloc_size; -}; - -typedef void (*btf_trace_amd_pstate_perf)(void *, unsigned long, unsigned long, unsigned long, u64, u64, u64, u64, unsigned int, bool, bool); - -struct trace_event_raw_amd_pstate_perf { - struct trace_entry ent; - unsigned long min_perf; - unsigned long target_perf; - unsigned long capacity; - unsigned long long freq; - unsigned long long mperf; - unsigned long long aperf; - unsigned long long tsc; - unsigned int cpu_id; - bool changed; - bool fast_switch; - char __data[0]; -}; - -struct trace_event_data_offsets_amd_pstate_perf {}; - -struct bpf_dummy_ops_state; - -struct bpf_dummy_ops { - int (*test_1)(struct bpf_dummy_ops_state *); - int (*test_2)(struct bpf_dummy_ops_state *, int, unsigned short, char, unsigned long); - int (*test_sleepable)(struct bpf_dummy_ops_state *); -}; - -struct bpf_dummy_ops_state { - int val; -}; - -enum bpf_struct_ops_state { - BPF_STRUCT_OPS_STATE_INIT = 0, - BPF_STRUCT_OPS_STATE_INUSE = 1, - BPF_STRUCT_OPS_STATE_TOBEFREE = 2, - BPF_STRUCT_OPS_STATE_READY = 3, -}; - -struct bpf_struct_ops_common_value { - refcount_t refcnt; - enum bpf_struct_ops_state state; -}; - -struct bpf_struct_ops_bpf_dummy_ops { - struct bpf_struct_ops_common_value common; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct bpf_dummy_ops data; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct bpf_dummy_ops_test_args { - u64 args[12]; - struct bpf_dummy_ops_state state; -}; - -typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...); - -struct nf_log_buf { - unsigned int count; - char buf[1020]; -}; - -enum nft_rt_keys { - NFT_RT_CLASSID = 0, - NFT_RT_NEXTHOP4 = 1, - NFT_RT_NEXTHOP6 = 2, - NFT_RT_TCPMSS = 3, - NFT_RT_XFRM = 4, - __NFT_RT_MAX = 5, -}; - -enum nft_rt_attributes { - NFTA_RT_UNSPEC = 0, - NFTA_RT_DREG = 1, - NFTA_RT_KEY = 2, - __NFTA_RT_MAX = 3, -}; - -struct nft_rt { - enum nft_rt_keys key: 8; - u8 dreg; -}; - -enum ipt_reject_with { - IPT_ICMP_NET_UNREACHABLE = 0, - IPT_ICMP_HOST_UNREACHABLE = 1, - IPT_ICMP_PROT_UNREACHABLE = 2, - IPT_ICMP_PORT_UNREACHABLE = 3, - IPT_ICMP_ECHOREPLY = 4, - IPT_ICMP_NET_PROHIBITED = 5, - IPT_ICMP_HOST_PROHIBITED = 6, - IPT_TCP_RESET = 7, - IPT_ICMP_ADMIN_PROHIBITED = 8, -}; - -struct ipt_reject_info { - enum ipt_reject_with with; -}; - -struct freq_band_range { - u64 start; - u64 end; -}; - -struct wbrf_ranges_in_out { - u64 num_of_ranges; - struct freq_band_range band_list[11]; -}; - -enum pconfig_target { - INVALID_TARGET = 0, - MKTME_TARGET = 1, - PCONFIG_TARGET_NR = 2, -}; - -enum { - PCONFIG_CPUID_SUBLEAF_INVALID = 0, - PCONFIG_CPUID_SUBLEAF_TARGETID = 1, -}; - -enum tsx_ctrl_states { - TSX_CTRL_ENABLE = 0, - TSX_CTRL_DISABLE = 1, - TSX_CTRL_RTM_ALWAYS_ABORT = 2, - TSX_CTRL_NOT_SUPPORTED = 3, -}; - -enum energy_perf_value_index { - EPB_INDEX_PERFORMANCE = 0, - EPB_INDEX_BALANCE_PERFORMANCE = 1, - EPB_INDEX_NORMAL = 2, - EPB_INDEX_BALANCE_POWERSAVE = 3, - EPB_INDEX_POWERSAVE = 4, -}; - -struct acpi_madt_multiproc_wakeup_mailbox { - u16 command; - u16 reserved; - u32 apic_id; - u64 wakeup_vector; - u8 reserved_os[2032]; - u8 reserved_firmware[2048]; -}; - -enum acpi_madt_type { - ACPI_MADT_TYPE_LOCAL_APIC = 0, - ACPI_MADT_TYPE_IO_APIC = 1, - ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, - ACPI_MADT_TYPE_NMI_SOURCE = 3, - ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, - ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, - ACPI_MADT_TYPE_IO_SAPIC = 6, - ACPI_MADT_TYPE_LOCAL_SAPIC = 7, - ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, - ACPI_MADT_TYPE_LOCAL_X2APIC = 9, - ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, - ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, - ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, - ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, - ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, - ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, - ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, - ACPI_MADT_TYPE_CORE_PIC = 17, - ACPI_MADT_TYPE_LIO_PIC = 18, - ACPI_MADT_TYPE_HT_PIC = 19, - ACPI_MADT_TYPE_EIO_PIC = 20, - ACPI_MADT_TYPE_MSI_PIC = 21, - ACPI_MADT_TYPE_BIO_PIC = 22, - ACPI_MADT_TYPE_LPC_PIC = 23, - ACPI_MADT_TYPE_RINTC = 24, - ACPI_MADT_TYPE_IMSIC = 25, - ACPI_MADT_TYPE_APLIC = 26, - ACPI_MADT_TYPE_PLIC = 27, - ACPI_MADT_TYPE_RESERVED = 28, - ACPI_MADT_TYPE_OEM_RESERVED = 128, -}; - -enum x86_legacy_i8042_state { - X86_LEGACY_I8042_PLATFORM_ABSENT = 0, - X86_LEGACY_I8042_FIRMWARE_ABSENT = 1, - X86_LEGACY_I8042_EXPECTED_PRESENT = 2, -}; - -struct acpi_table_boot { - struct acpi_table_header header; - u8 cmos_index; - u8 reserved[3]; -}; - -struct acpi_table_madt { - struct acpi_table_header header; - u32 address; - u32 flags; -}; - -struct acpi_madt_local_apic_override { - struct acpi_subtable_header header; - u16 reserved; - u64 address; -} __attribute__((packed)); - -struct acpi_madt_local_sapic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u8 eid; - u8 reserved[3]; - u32 lapic_flags; - u32 uid; - char uid_string[0]; -}; - -struct acpi_madt_local_apic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u32 lapic_flags; -}; - -struct acpi_madt_local_x2apic { - struct acpi_subtable_header header; - u16 reserved; - u32 local_apic_id; - u32 lapic_flags; - u32 uid; -}; - -struct acpi_madt_local_x2apic_nmi { - struct acpi_subtable_header header; - u16 inti_flags; - u32 uid; - u8 lint; - u8 reserved[3]; -}; - -struct acpi_madt_local_apic_nmi { - struct acpi_subtable_header header; - u8 processor_id; - u16 inti_flags; - u8 lint; -} __attribute__((packed)); - -struct acpi_madt_io_apic { - struct acpi_subtable_header header; - u8 id; - u8 reserved; - u32 address; - u32 global_irq_base; -}; - -struct acpi_madt_interrupt_override { - struct acpi_subtable_header header; - u8 bus; - u8 source_irq; - u32 global_irq; - u16 inti_flags; -} __attribute__((packed)); - -struct acpi_madt_nmi_source { - struct acpi_subtable_header header; - u16 inti_flags; - u32 global_irq; -}; - -struct acpi_madt_multiproc_wakeup { - struct acpi_subtable_header header; - u16 mailbox_version; - u32 reserved; - u64 base_address; -}; - -struct acpi_table_hpet { - struct acpi_table_header header; - u32 id; - struct acpi_generic_address address; - u8 sequence; - u16 minimum_tick; - u8 flags; -} __attribute__((packed)); - -union acpi_subtable_headers; - -typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); - -struct acpi_hmat_structure { - u16 type; - u16 reserved; - u32 length; -}; - -struct acpi_prmt_module_header { - u16 revision; - u16 length; -}; - -struct acpi_cedt_header { - u8 type; - u8 reserved; - u16 length; -}; - -struct acpi_cdat_header { - u8 type; - u8 reserved; - u16 length; -}; - -union acpi_subtable_headers { - struct acpi_subtable_header common; - struct acpi_hmat_structure hmat; - struct acpi_prmt_module_header prmt; - struct acpi_cedt_header cedt; - struct acpi_cdat_header cdat; -}; - -struct lock_chain { - unsigned int irq_context: 2; - unsigned int depth: 6; - unsigned int base: 24; - struct hlist_node entry; - u64 chain_key; -}; - -struct lock_list; - -struct circular_queue { - struct lock_list *element[4096]; - unsigned int front; - unsigned int rear; -}; - -struct lock_list { - struct list_head entry; - struct lock_class *class; - struct lock_class *links_to; - const struct lock_trace *trace; - u16 distance; - u8 dep; - u8 only_xr; - struct lock_list *parent; -}; - -struct pending_free { - struct list_head zapped; - unsigned long lock_chains_being_freed[1024]; -}; - -struct delayed_free { - struct callback_head callback_head; - int index; - int scheduled; - struct pending_free pf[2]; -}; - -enum lock_usage_bit { - LOCK_USED_IN_HARDIRQ = 0, - LOCK_USED_IN_HARDIRQ_READ = 1, - LOCK_ENABLED_HARDIRQ = 2, - LOCK_ENABLED_HARDIRQ_READ = 3, - LOCK_USED_IN_SOFTIRQ = 4, - LOCK_USED_IN_SOFTIRQ_READ = 5, - LOCK_ENABLED_SOFTIRQ = 6, - LOCK_ENABLED_SOFTIRQ_READ = 7, - LOCK_USED = 8, - LOCK_USED_READ = 9, - LOCK_USAGE_STATES = 10, -}; - -enum bfs_result { - BFS_EINVALIDNODE = -2, - BFS_EQUEUEFULL = -1, - BFS_RMATCH = 0, - BFS_RNOMATCH = 1, -}; - -enum { - LOCKF_USED_IN_HARDIRQ = 1, - LOCKF_USED_IN_HARDIRQ_READ = 2, - LOCKF_ENABLED_HARDIRQ = 4, - LOCKF_ENABLED_HARDIRQ_READ = 8, - LOCKF_USED_IN_SOFTIRQ = 16, - LOCKF_USED_IN_SOFTIRQ_READ = 32, - LOCKF_ENABLED_SOFTIRQ = 64, - LOCKF_ENABLED_SOFTIRQ_READ = 128, - LOCKF_USED = 256, - LOCKF_USED_READ = 512, -}; - -struct bpf_hrtimer { - struct hrtimer timer; - struct bpf_map *map; - struct bpf_prog *prog; - void __attribute__((btf_type_tag("rcu"))) *callback_fn; - void *value; - struct callback_head rcu; -}; - -struct bpf_bprintf_buffers { - char bin_args[512]; - char buf[1024]; -}; - -enum { - BPF_F_TIMER_ABS = 1, - BPF_F_TIMER_CPU_PIN = 2, -}; - -typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); - -typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); - -typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); - -typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); - -typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); - -typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); - -typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); - -typedef u64 (*btf_bpf_get_smp_processor_id)(); - -typedef u64 (*btf_bpf_get_numa_node_id)(); - -typedef u64 (*btf_bpf_ktime_get_ns)(); - -typedef u64 (*btf_bpf_ktime_get_boot_ns)(); - -typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); - -typedef u64 (*btf_bpf_ktime_get_tai_ns)(); - -typedef u64 (*btf_bpf_get_current_pid_tgid)(); - -typedef u64 (*btf_bpf_get_current_uid_gid)(); - -typedef u64 (*btf_bpf_get_current_comm)(char *, u32); - -typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); - -typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); - -typedef u64 (*btf_bpf_jiffies64)(); - -typedef u64 (*btf_bpf_get_current_cgroup_id)(); - -typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); - -typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *); - -typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *); - -typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); - -struct bpf_pidns_info; - -typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); - -struct bpf_pidns_info { - __u32 pid; - __u32 tgid; -}; - -typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); - -typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); - -typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); - -typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); - -typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); - -typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); - -struct bpf_timer_kern; - -typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); - -struct bpf_timer_kern { - struct bpf_hrtimer *timer; - struct bpf_spin_lock lock; -}; - -typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); - -typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); - -typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); - -typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); - -typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); - -typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); - -typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); - -typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); - -struct bpf_refcount { - __u32 __opaque[1]; -}; - -struct bpf_rb_node_kern { - struct rb_node rb_node; - void *owner; -}; - -struct bpf_rb_node { - __u64 __opaque[4]; -}; - -struct bpf_timer { - __u64 __opaque[2]; -}; - -struct bpf_dynptr { - __u64 __opaque[2]; -}; - -struct bpf_list_node_kern { - struct list_head list_head; - void *owner; -}; - -struct bpf_list_node { - __u64 __opaque[3]; -}; - -struct bpf_list_head { - __u64 __opaque[2]; -}; - -struct bpf_rb_root { - __u64 __opaque[2]; -}; - -struct bpf_throw_ctx { - struct bpf_prog_aux *aux; - u64 sp; - u64 bp; - int cnt; -}; - -enum { - PAGE_WAS_MAPPED = 1, - PAGE_WAS_MLOCKED = 2, - PAGE_OLD_STATES = 3, -}; - -struct migrate_pages_stats { - int nr_succeeded; - int nr_failed_pages; - int nr_thp_succeeded; - int nr_thp_failed; - int nr_thp_split; - int nr_split; -}; - -struct vfs_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; -}; - -struct vfs_ns_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; - __le32 rootid; -}; - -struct cpu_vfs_cap_data { - __u32 magic_etc; - kuid_t rootid; - kernel_cap_t permitted; - kernel_cap_t inheritable; -}; - -typedef void (*swap_r_func_t)(void *, void *, int, const void *); - -struct wrapper { - cmp_func_t cmp; - swap_func_t swap; -}; - -typedef int (*cmp_r_func_t)(const void *, const void *, const void *); - -enum { - MAX_OPT_ARGS = 3, -}; - -struct acpi_lpat { - int temp; - int raw; -}; - -struct acpi_lpat_conversion_table { - struct acpi_lpat *lpat; - int lpat_count; -}; - -struct acpi_signal_fatal_info { - u32 type; - u32 code; - u32 argument; -}; - -struct acpi_data_table_mapping { - void *pointer; -}; - -struct acpi_mem_mapping; - -struct acpi_mem_space_context { - u32 length; - acpi_physical_address address; - struct acpi_mem_mapping *cur_mm; - struct acpi_mem_mapping *first_mm; -}; - -struct acpi_mem_mapping { - acpi_physical_address physical_address; - u8 *logical_address; - acpi_size length; - struct acpi_mem_mapping *next_mm; -}; - -struct drm_dmi_panel_orientation_data { - int width; - int height; - const char * const *bios_dates; - int orientation; -}; - -enum drm_panel_orientation { - DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1, - DRM_MODE_PANEL_ORIENTATION_NORMAL = 0, - DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1, - DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2, - DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3, -}; - -struct aggregate_device; - -struct component { - struct list_head node; - struct aggregate_device *adev; - bool bound; - const struct component_ops *ops; - int subcomponent; - struct device *dev; -}; - -struct component_master_ops; - -struct component_match; - -struct aggregate_device { - struct list_head node; - bool bound; - const struct component_master_ops *ops; - struct device *parent; - struct component_match *match; -}; - -struct component_master_ops { - int (*bind)(struct device *); - void (*unbind)(struct device *); -}; - -struct component_match_array; - -struct component_match { - size_t alloc; - size_t num; - struct component_match_array *compare; -}; - -struct component_match_array { - void *data; - int (*compare)(struct device *, void *); - int (*compare_typed)(struct device *, int, void *); - void (*release)(struct device *, void *); - struct component *component; - bool duplicate; -}; - -struct mdio_driver { - struct mdio_driver_common mdiodrv; - int (*probe)(struct mdio_device *); - void (*remove)(struct mdio_device *); - void (*shutdown)(struct mdio_device *); -}; - -enum iwl_tdls_channel_switch_type { - TDLS_SEND_CHAN_SW_REQ = 0, - TDLS_SEND_CHAN_SW_RESP_AND_MOVE_CH = 1, - TDLS_MOVE_CH = 2, -}; - -enum ieee80211_tdls_actioncode { - WLAN_TDLS_SETUP_REQUEST = 0, - WLAN_TDLS_SETUP_RESPONSE = 1, - WLAN_TDLS_SETUP_CONFIRM = 2, - WLAN_TDLS_TEARDOWN = 3, - WLAN_TDLS_PEER_TRAFFIC_INDICATION = 4, - WLAN_TDLS_CHANNEL_SWITCH_REQUEST = 5, - WLAN_TDLS_CHANNEL_SWITCH_RESPONSE = 6, - WLAN_TDLS_PEER_PSM_REQUEST = 7, - WLAN_TDLS_PEER_PSM_RESPONSE = 8, - WLAN_TDLS_PEER_TRAFFIC_RESPONSE = 9, - WLAN_TDLS_DISCOVERY_REQUEST = 10, }; -struct iwl_tdls_sta_info { +struct iwl_tx_cmd___2 { + __le16 len; + __le16 next_frame_len; + __le32 tx_flags; + struct iwl_dram_scratch scratch; + __le32 rate_n_flags; u8 sta_id; - u8 tx_to_peer_tid; - __le16 tx_to_peer_ssn; - __le32 is_initiator; + u8 sec_ctl; + u8 initial_rate_index; + u8 reserved; + u8 key[16]; + __le16 next_frame_flags; + __le16 reserved2; + union { + __le32 life_time; + __le32 attempt; + } stop_time; + __le32 dram_lsb_ptr; + u8 dram_msb_ptr; + u8 rts_retry_limit; + u8 data_retry_limit; + u8 tid_tspec; + union { + __le16 pm_frame_timeout; + __le16 attempt_duration; + } timeout; + __le16 driver_txop; + union { + struct { + struct {} __empty_payload; + u8 payload[0]; + }; + struct { + struct {} __empty_hdr; + struct ieee80211_hdr hdr[0]; + }; + }; }; -struct iwl_tdls_config_cmd { - __le32 id_and_color; - u8 tdls_peer_count; - u8 tx_to_ap_tid; - __le16 tx_to_ap_ssn; - struct iwl_tdls_sta_info sta_info[4]; - __le32 pti_req_data_offset; - struct iwl_tx_cmd___2 pti_req_tx_cmd; - u8 pti_req_template[0]; +struct iwl_ssid_ie { + u8 id; + u8 len; + u8 ssid[32]; }; -struct iwl_tdls_config_sta_info_res { - __le16 sta_id; - __le16 tx_to_peer_last_seq; -}; - -struct iwl_tdls_config_res { - __le32 tx_to_ap_last_seq; - struct iwl_tdls_config_sta_info_res sta_info[4]; -}; - -struct iwl_tdls_channel_switch_notif { - __le32 status; - __le32 offchannel_duration; - __le32 sta_id; -}; - -struct iwl_tdls_channel_switch_timing { - __le32 frame_timestamp; - __le32 max_offchan_duration; - __le32 switch_time; - __le32 switch_timeout; -}; - -struct iwl_tdls_channel_switch_frame { - __le32 switch_time_offset; +struct iwl_scan_cmd { + __le16 len; + u8 scan_flags; + u8 channel_count; + __le16 quiet_time; + __le16 quiet_plcp_th; + __le16 good_CRC_th; + __le16 rx_chain; + __le32 max_out_time; + __le32 suspend_time; + __le32 flags; + __le32 filter_flags; struct iwl_tx_cmd___2 tx_cmd; - u8 data[200]; + struct iwl_ssid_ie direct_scan[20]; + u8 data[0]; }; -struct iwl_tdls_channel_switch_cmd_tail { - struct iwl_tdls_channel_switch_timing timing; - struct iwl_tdls_channel_switch_frame frame; +struct iwl_scan_channel { + __le32 type; + __le16 channel; + u8 tx_gain; + u8 dsp_atten; + __le16 active_dwell; + __le16 passive_dwell; }; -struct iwl_tdls_channel_switch_cmd { - u8 switch_type; - __le32 peer_sta_id; - struct iwl_fw_channel_info ci; - struct iwl_tdls_channel_switch_cmd_tail tail; -} __attribute__((packed)); +struct iwl_scanstart_notification { + __le32 tsf_low; + __le32 tsf_high; + __le32 beacon_timer; + u8 channel; + u8 band; + u8 reserved[2]; + __le32 status; +}; -enum { - TCA_STATS_UNSPEC = 0, - TCA_STATS_BASIC = 1, - TCA_STATS_RATE_EST = 2, - TCA_STATS_QUEUE = 3, - TCA_STATS_APP = 4, - TCA_STATS_RATE_EST64 = 5, - TCA_STATS_PAD = 6, - TCA_STATS_BASIC_HW = 7, - TCA_STATS_PKT64 = 8, - __TCA_STATS_MAX = 9, +struct iwl_scancomplete_notification { + u8 scanned_channels; + u8 status; + u8 bt_status; + u8 last_channel; + __le32 tsf_low; + __le32 tsf_high; +}; + +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, +}; + +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, +}; + +enum dm_io_mem_type { + DM_IO_PAGE_LIST = 0, + DM_IO_BIO = 1, + DM_IO_VMA = 2, + DM_IO_KMEM = 3, +}; + +struct page_list; + +struct dm_io_memory { + enum dm_io_mem_type type; + unsigned int offset; + union { + struct page_list *pl; + struct bio *bio; + void *vma; + void *addr; + } ptr; +}; + +typedef void (*io_notify_fn)(unsigned long, void *); + +struct dm_io_notify { + io_notify_fn fn; + void *context; +}; + +struct dm_io_client; + +struct dm_io_request { + blk_opf_t bi_opf; + struct dm_io_memory mem; + struct dm_io_notify notify; + struct dm_io_client *client; +}; + +struct page_list { + struct page_list *next; + struct page *page; +}; + +struct dm_io_client { + mempool_t pool; + struct bio_set bios; +}; + +struct dpages { + void (*get_page)(struct dpages *, struct page **, unsigned long *, unsigned int *); + void (*next_page)(struct dpages *); + union { + unsigned int context_u; + struct bvec_iter context_bi; + }; + void *context_ptr; + void *vma_invalidate_address; + unsigned long vma_invalidate_size; +}; + +struct dm_io_region { + struct block_device *bdev; + sector_t sector; + sector_t count; +}; + +struct io { + unsigned long error_bits; + atomic_t count; + struct dm_io_client *client; + io_notify_fn callback; + void *context; + void *vma_invalidate_address; + unsigned long vma_invalidate_size; + long: 64; +}; + +struct sync_io { + unsigned long error_bits; + struct completion wait; +}; + +struct gnet_estimator { + signed char interval; + unsigned char ewma_log; }; struct gnet_stats_rate_est64 { @@ -102302,876 +100383,1570 @@ struct gnet_stats_rate_est64 { __u64 pps; }; -struct gnet_stats_basic { - __u64 bytes; - __u32 packets; +struct bpf_scratchpad { + union { + __be32 diff[128]; + u8 buff[512]; + }; }; -struct gnet_stats_rate_est { - __u32 bps; - __u32 pps; +enum { + BPF_F_NEIGH = 2, + BPF_F_PEER = 4, + BPF_F_NEXTHOP = 8, }; -struct rps_map; +enum { + BPF_F_RECOMPUTE_CSUM = 1, + BPF_F_INVALIDATE_HASH = 2, +}; -struct rps_dev_flow_table; +enum bpf_hdr_start_off { + BPF_HDR_START_MAC = 0, + BPF_HDR_START_NET = 1, +}; -struct netdev_rx_queue { - struct xdp_rxq_info xdp_rxq; - struct rps_map __attribute__((btf_type_tag("rcu"))) *rps_map; - struct rps_dev_flow_table __attribute__((btf_type_tag("rcu"))) *rps_flow_table; - struct kobject kobj; +enum { + BPF_F_HDR_FIELD_MASK = 15, +}; + +enum { + BPF_F_PSEUDO_HDR = 16, + BPF_F_MARK_MANGLED_0 = 32, + BPF_F_MARK_ENFORCE = 64, +}; + +enum { + BPF_CSUM_LEVEL_QUERY = 0, + BPF_CSUM_LEVEL_INC = 1, + BPF_CSUM_LEVEL_DEC = 2, + BPF_CSUM_LEVEL_RESET = 3, +}; + +enum { + BPF_F_ADJ_ROOM_FIXED_GSO = 1, + BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 2, + BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 4, + BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 8, + BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 16, + BPF_F_ADJ_ROOM_NO_CSUM_RESET = 32, + BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 64, + BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 128, + BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 256, +}; + +enum { + BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, +}; + +enum bpf_adj_room_mode { + BPF_ADJ_ROOM_NET = 0, + BPF_ADJ_ROOM_MAC = 1, +}; + +struct xdp_sock { + struct sock sk; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xsk_queue *rx; struct net_device *dev; - netdevice_tracker dev_tracker; - struct napi_struct *napi; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct rps_map { - unsigned int len; - struct callback_head rcu; - u16 cpus[0]; -}; - -struct rps_dev_flow { - u16 cpu; - u16 filter; - unsigned int last_qtail; -}; - -struct rps_dev_flow_table { - unsigned int mask; - struct callback_head rcu; - struct rps_dev_flow flows[0]; -}; - -typedef void (*btf_trace_bpf_trigger_tp)(void *, int); - -typedef void (*btf_trace_bpf_test_finish)(void *, int *); - -struct bpf_test_timer { + struct xdp_umem *umem; + struct list_head flush_node; + struct xsk_buff_pool *pool; + u16 queue_id; + bool zc; + bool sg; enum { - NO_PREEMPT = 0, - NO_MIGRATE = 1, - } mode; - u32 i; - u64 time_start; - u64 time_spent; -}; - -struct bpf_fentry_test_t { - struct bpf_fentry_test_t *a; -}; - -struct trace_event_raw_bpf_trigger_tp { - struct trace_entry ent; - int nonce; - char __data[0]; -}; - -struct trace_event_raw_bpf_test_finish { - struct trace_entry ent; - int err; - char __data[0]; -}; - -struct xdp_test_data { - struct xdp_buff *orig_ctx; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info rxq; - struct net_device *dev; - struct page_pool *pp; - struct xdp_frame **frames; - struct sk_buff **skbs; - struct xdp_mem_info mem; - u32 batch_size; - u32 frame_cnt; - long: 64; - long: 64; -}; - -struct xdp_page_head { - struct xdp_buff orig_ctx; - struct xdp_buff ctx; - union { - struct { - struct {} __empty_frame; - struct xdp_frame frame[0]; - }; - struct { - struct {} __empty_data; - u8 data[0]; - }; - }; -}; - -struct trace_event_data_offsets_bpf_trigger_tp {}; - -struct trace_event_data_offsets_bpf_test_finish {}; - -struct prog_test_member1 { - int a; -}; - -struct prog_test_member { - struct prog_test_member1 m; - int c; -}; - -struct prog_test_ref_kfunc { - int a; - int b; - struct prog_test_member memb; - struct prog_test_ref_kfunc *next; - refcount_t cnt; -}; - -struct bpf_raw_tp_test_run_info { - struct bpf_prog *prog; - void *ctx; - u32 retval; -}; - -struct bpf_sock; - -struct __sk_buff { - __u32 len; - __u32 pkt_type; - __u32 mark; - __u32 queue_mapping; - __u32 protocol; - __u32 vlan_present; - __u32 vlan_tci; - __u32 vlan_proto; - __u32 priority; - __u32 ingress_ifindex; - __u32 ifindex; - __u32 tc_index; - __u32 cb[5]; - __u32 hash; - __u32 tc_classid; - __u32 data; - __u32 data_end; - __u32 napi_id; - __u32 family; - __u32 remote_ip4; - __u32 local_ip4; - __u32 remote_ip6[4]; - __u32 local_ip6[4]; - __u32 remote_port; - __u32 local_port; - __u32 data_meta; - union { - struct bpf_flow_keys *flow_keys; - }; - __u64 tstamp; - __u32 wire_len; - __u32 gso_segs; - union { - struct bpf_sock *sk; - }; - __u32 gso_size; - __u8 tstamp_type; - __u64 hwtstamp; -}; - -struct bpf_sock { - __u32 bound_dev_if; - __u32 family; - __u32 type; - __u32 protocol; - __u32 mark; - __u32 priority; - __u32 src_ip4; - __u32 src_ip6[4]; - __u32 src_port; - __be16 dst_port; - __u32 dst_ip4; - __u32 dst_ip6[4]; - __u32 state; - __s32 rx_queue_mapping; -}; - -struct bpf_cg_run_ctx { - struct bpf_run_ctx run_ctx; - const struct bpf_prog_array_item *prog_item; - int retval; -}; - -struct bpf_sk_lookup { - union { - union { - struct bpf_sock *sk; - }; - __u64 cookie; - }; - __u32 family; - __u32 protocol; - __u32 remote_ip4; - __u32 remote_ip6[4]; - __be16 remote_port; - __u32 local_ip4; - __u32 local_ip6[4]; - __u32 local_port; - __u32 ingress_ifindex; -}; - -struct bpf_nf_ctx { - const struct nf_hook_state *state; - struct sk_buff *skb; -}; - -struct nft_set_type { - const struct nft_set_ops ops; - u32 features; -}; - -enum nft_set_elem_flags { - NFT_SET_ELEM_INTERVAL_END = 1, - NFT_SET_ELEM_CATCHALL = 2, -}; - -struct nft_rbtree_elem { - struct nft_elem_priv priv; - struct rb_node node; - struct nft_set_ext ext; -}; - -struct seqcount_rwlock { - seqcount_t seqcount; - rwlock_t *lock; -}; - -typedef struct seqcount_rwlock seqcount_rwlock_t; - -struct nft_rbtree { - struct rb_root root; - rwlock_t lock; - seqcount_rwlock_t count; - unsigned long last_gc; -}; - -struct nft_trans_gc { - struct list_head list; - struct net *net; - struct nft_set *set; - u32 seq; - u16 count; - struct nft_elem_priv *priv[256]; - struct callback_head rcu; -}; - -enum unix_socket_lock_class { - U_LOCK_NORMAL = 0, - U_LOCK_SECOND = 1, - U_LOCK_DIAG = 2, -}; - -struct unix_skb_parms { - struct pid *pid; - kuid_t uid; - kgid_t gid; - struct scm_fp_list *fp; - u32 consumed; -}; - -struct bpf_iter__unix { - union { - struct bpf_iter_meta *meta; - }; - union { - struct unix_sock *unix_sk; - }; - uid_t uid; -}; - -struct bpf_unix_iter_state { - struct seq_net_private p; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - struct sock **batch; - bool st_bucket_done; -}; - -struct unix_stream_read_state { - int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); - struct socket *socket; - struct msghdr *msg; - struct pipe_inode_info *pipe; - size_t size; - int flags; - unsigned int splice_flags; -}; - -struct cfg80211_conn { - struct cfg80211_connect_params params; - enum { - CFG80211_CONN_SCANNING = 0, - CFG80211_CONN_SCAN_AGAIN = 1, - CFG80211_CONN_AUTHENTICATE_NEXT = 2, - CFG80211_CONN_AUTHENTICATING = 3, - CFG80211_CONN_AUTH_FAILED_TIMEOUT = 4, - CFG80211_CONN_ASSOCIATE_NEXT = 5, - CFG80211_CONN_ASSOCIATING = 6, - CFG80211_CONN_ASSOC_FAILED = 7, - CFG80211_CONN_ASSOC_FAILED_TIMEOUT = 8, - CFG80211_CONN_DEAUTH = 9, - CFG80211_CONN_ABANDON = 10, - CFG80211_CONN_CONNECTED = 11, + XSK_READY = 0, + XSK_BOUND = 1, + XSK_UNBOUND = 2, } state; - u8 bssid[6]; - u8 prev_bssid[6]; - const u8 *ie; - size_t ie_len; - bool auto_auth; - bool prev_bssid_valid; + long: 64; + struct xsk_queue *tx; + struct list_head tx_list; + u32 tx_budget_spent; + spinlock_t rx_lock; + u64 rx_dropped; + u64 rx_queue_full; + struct sk_buff *skb; + struct list_head map_list; + spinlock_t map_list_lock; + struct mutex mutex; + struct xsk_queue *fq_tmp; + struct xsk_queue *cq_tmp; + long: 64; + long: 64; + long: 64; }; -enum cfg80211_event_type { - EVENT_CONNECT_RESULT = 0, - EVENT_ROAMED = 1, - EVENT_DISCONNECTED = 2, - EVENT_IBSS_JOINED = 3, - EVENT_STOPPED = 4, - EVENT_PORT_AUTHORIZED = 5, +enum { + BPF_F_TUNINFO_IPV6 = 1, }; -struct cfg80211_roam_info { - const u8 *req_ie; - size_t req_ie_len; - const u8 *resp_ie; - size_t resp_ie_len; - struct cfg80211_fils_resp_params fils; - const u8 *ap_mld_addr; - u16 valid_links; - struct { - const u8 *addr; - const u8 *bssid; - struct ieee80211_channel *channel; - struct cfg80211_bss *bss; - } links[15]; +enum { + BPF_F_TUNINFO_FLAGS = 16, }; -struct cfg80211_event { - struct list_head list; - enum cfg80211_event_type type; +enum { + BPF_F_ZERO_CSUM_TX = 2, + BPF_F_DONT_FRAGMENT = 4, + BPF_F_SEQ_NUMBER = 8, + BPF_F_NO_TUNNEL_KEY = 16, +}; + +enum { + TCP_BPF_IW = 1001, + TCP_BPF_SNDCWND_CLAMP = 1002, + TCP_BPF_DELACK_MAX = 1003, + TCP_BPF_RTO_MIN = 1004, + TCP_BPF_SYN = 1005, + TCP_BPF_SYN_IP = 1006, + TCP_BPF_SYN_MAC = 1007, +}; + +enum { + BPF_SOCK_OPS_RTO_CB_FLAG = 1, + BPF_SOCK_OPS_RETRANS_CB_FLAG = 2, + BPF_SOCK_OPS_STATE_CB_FLAG = 4, + BPF_SOCK_OPS_RTT_CB_FLAG = 8, + BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16, + BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32, + BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64, + BPF_SOCK_OPS_ALL_CB_FLAGS = 127, +}; + +enum { + BPF_FIB_LOOKUP_DIRECT = 1, + BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, + BPF_FIB_LOOKUP_MARK = 32, +}; + +enum { + BPF_FIB_LKUP_RET_SUCCESS = 0, + BPF_FIB_LKUP_RET_BLACKHOLE = 1, + BPF_FIB_LKUP_RET_UNREACHABLE = 2, + BPF_FIB_LKUP_RET_PROHIBIT = 3, + BPF_FIB_LKUP_RET_NOT_FWDED = 4, + BPF_FIB_LKUP_RET_FWD_DISABLED = 5, + BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, + BPF_FIB_LKUP_RET_NO_NEIGH = 7, + BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, +}; + +enum bpf_check_mtu_ret { + BPF_MTU_CHK_RET_SUCCESS = 0, + BPF_MTU_CHK_RET_FRAG_NEEDED = 1, + BPF_MTU_CHK_RET_SEGS_TOOBIG = 2, +}; + +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, +}; + +enum { + BPF_LOAD_HDR_OPT_TCP_SYN = 1, +}; + +enum { + BPF_SKB_TSTAMP_UNSPEC = 0, + BPF_SKB_TSTAMP_DELIVERY_MONO = 1, +}; + +enum { + BPF_SK_LOOKUP_F_REPLACE = 1, + BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, +}; + +typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); + +typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); + +typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); + +typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); + +typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); + +typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); + +typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); + +typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); + +typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); + +typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); + +typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); + +typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); + +typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); + +typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); + +typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_redirect)(u32, u64); + +typedef u64 (*btf_bpf_redirect_peer)(u32, u64); + +struct bpf_redir_neigh; + +typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); + +struct bpf_redir_neigh { + __u32 nh_family; + union { + __be32 ipv4_nh; + __u32 ipv6_nh[4]; + }; +}; + +typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); + +typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); + +typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); + +typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); + +typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); + +typedef u64 (*btf_bpf_get_cgroup_classid_curr)(); + +typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); + +typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); + +typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); + +typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); + +typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); + +typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); + +typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); + +typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); + +typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); + +typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); + +typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); + +typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); + +typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); + +typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); + +typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); + +typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); + +typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); + +struct bpf_tunnel_key; + +typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); + +struct bpf_tunnel_key { + __u32 tunnel_id; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; + __u8 tunnel_tos; + __u8 tunnel_ttl; + union { + __u16 tunnel_ext; + __be16 tunnel_flags; + }; + __u32 tunnel_label; + union { + __u32 local_ipv4; + __u32 local_ipv6[4]; + }; +}; + +typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); + +typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); + +typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); + +typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); + +typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); + +typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); + +typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); + +typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); + +typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); + +typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); + +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); + +typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); + +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); + +typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); + +struct bpf_fib_lookup; + +typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); + +struct bpf_fib_lookup { + __u8 family; + __u8 l4_protocol; + __be16 sport; + __be16 dport; + union { + __u16 tot_len; + __u16 mtu_result; + }; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; union { - struct cfg80211_connect_resp_params cr; - struct cfg80211_roam_info rm; struct { - const u8 *ie; - size_t ie_len; - u16 reason; - bool locally_generated; - } dc; + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; + union { struct { - u8 bssid[6]; - struct ieee80211_channel *channel; - } ij; + __u32 mark; + }; struct { - u8 peer_addr[6]; - const u8 *td_bitmap; - u8 td_bitmap_len; - } pa; + __u8 smac[6]; + __u8 dmac[6]; + }; }; }; -struct pcibios_fwaddrmap { - struct list_head list; - struct pci_dev *dev; - resource_size_t fw_addr[11]; -}; +typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); -struct pci_check_idx_range { - int start; - int end; -}; +typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); -struct intel_uncore_pmu; +typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); -struct intel_uncore_ops; +typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); -struct uncore_event_desc; +typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); -struct freerunning_counters; +struct bpf_sock_tuple; -struct intel_uncore_topology; +typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct intel_uncore_type { - const char *name; - int num_counters; - int num_boxes; - int perf_ctr_bits; - int fixed_ctr_bits; - int num_freerunning_types; - int type_id; - unsigned int perf_ctr; - unsigned int event_ctl; - unsigned int event_mask; - unsigned int event_mask_ext; - unsigned int fixed_ctr; - unsigned int fixed_ctl; - unsigned int box_ctl; - u64 *box_ctls; +struct bpf_sock_tuple { union { - unsigned int msr_offset; - unsigned int mmio_offset; - }; - unsigned int mmio_map_size; - unsigned int num_shared_regs: 8; - unsigned int single_fixed: 1; - unsigned int pair_ctr_ctl: 1; - union { - u64 *msr_offsets; - u64 *pci_offsets; - u64 *mmio_offsets; - }; - unsigned int *box_ids; - struct event_constraint unconstrainted; - struct event_constraint *constraints; - struct intel_uncore_pmu *pmus; - struct intel_uncore_ops *ops; - struct uncore_event_desc *event_descs; - struct freerunning_counters *freerunning; - const struct attribute_group *attr_groups[4]; - const struct attribute_group **attr_update; - struct pmu *pmu; - struct intel_uncore_topology **topology; - int (*get_topology)(struct intel_uncore_type *); - void (*set_mapping)(struct intel_uncore_type *); - void (*cleanup_mapping)(struct intel_uncore_type *); -}; - -struct intel_uncore_box; - -struct intel_uncore_pmu { - struct pmu pmu; - char name[32]; - int pmu_idx; - int func_id; - bool registered; - atomic_t activeboxes; - struct intel_uncore_type *type; - struct intel_uncore_box **boxes; -}; - -struct intel_uncore_extra_reg { - raw_spinlock_t lock; - u64 config; - u64 config1; - u64 config2; - atomic_t ref; -}; - -struct intel_uncore_box { - int dieid; - int n_active; - int n_events; - int cpu; - unsigned long flags; - atomic_t refcnt; - struct perf_event *events[10]; - struct perf_event *event_list[10]; - struct event_constraint *event_constraint[10]; - unsigned long active_mask[1]; - u64 tags[10]; - struct pci_dev *pci_dev; - struct intel_uncore_pmu *pmu; - u64 hrtimer_duration; - struct hrtimer hrtimer; - struct list_head list; - struct list_head active_list; - void *io_addr; - struct intel_uncore_extra_reg shared_regs[0]; -}; - -struct intel_uncore_ops { - void (*init_box)(struct intel_uncore_box *); - void (*exit_box)(struct intel_uncore_box *); - void (*disable_box)(struct intel_uncore_box *); - void (*enable_box)(struct intel_uncore_box *); - void (*disable_event)(struct intel_uncore_box *, struct perf_event *); - void (*enable_event)(struct intel_uncore_box *, struct perf_event *); - u64 (*read_counter)(struct intel_uncore_box *, struct perf_event *); - int (*hw_config)(struct intel_uncore_box *, struct perf_event *); - struct event_constraint * (*get_constraint)(struct intel_uncore_box *, struct perf_event *); - void (*put_constraint)(struct intel_uncore_box *, struct perf_event *); -}; - -struct uncore_event_desc { - struct device_attribute attr; - const char *config; -}; - -struct freerunning_counters { - unsigned int counter_base; - unsigned int counter_offset; - unsigned int box_offset; - unsigned int num_counters; - unsigned int bits; - unsigned int *box_offsets; -}; - -struct uncore_iio_topology; - -struct uncore_upi_topology; - -struct intel_uncore_topology { - int pmu_idx; - union { - void *untyped; - struct uncore_iio_topology *iio; - struct uncore_upi_topology *upi; + struct { + __be32 saddr; + __be32 daddr; + __be16 sport; + __be16 dport; + } ipv4; + struct { + __be32 saddr[4]; + __be32 daddr[4]; + __be16 sport; + __be16 dport; + } ipv6; }; }; -struct uncore_iio_topology { - int pci_bus_no; - int segment; +typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_sk_release)(struct sock *); + +typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); + +typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); + +typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); + +typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); + +struct bpf_tcp_sock { + __u32 snd_cwnd; + __u32 srtt_us; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u64 bytes_received; + __u64 bytes_acked; + __u32 dsack_dups; + __u32 delivered; + __u32 delivered_ce; + __u32 icsk_retransmits; }; -struct uncore_upi_topology { - int die_to; - int pmu_idx_to; - int enabled; +typedef u64 (*btf_bpf_tcp_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); + +typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); + +typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); + +typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); + +typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); + +typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); + +typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); + +typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); + +typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv4)(struct iphdr *, struct tcphdr *, u32); + +typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *, u32); + +typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *); + +typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *); + +typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); + +typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); + +typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); + +typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); + +typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); + +typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); + +typedef u64 (*btf_bpf_sock_from_file)(struct file *); + +struct sockaddr_un { + __kernel_sa_family_t sun_family; + char sun_path[108]; }; -struct pci_extra_dev { - struct pci_dev *dev[4]; +struct bpf_skb_data_end { + struct qdisc_skb_cb qdisc_cb; + void *data_meta; + void *data_end; }; -struct intel_uncore_init_fun { - void (*cpu_init)(); - int (*pci_init)(); - void (*mmio_init)(); - bool use_discovery; - int *uncore_units_ignore; -}; - -struct pci2phy_map { - struct list_head list; - int segment; - int pbus_to_dieid[256]; -}; - -enum reboot_type { - BOOT_TRIPLE = 116, - BOOT_KBD = 107, - BOOT_BIOS = 98, - BOOT_ACPI = 97, - BOOT_EFI = 101, - BOOT_CF9_FORCE = 112, - BOOT_CF9_SAFE = 113, -}; - -struct sys_off_handler { - struct notifier_block nb; - int (*sys_off_cb)(struct sys_off_data *); - void *cb_data; - enum sys_off_mode mode; - bool blocking; - void *list; - struct device *dev; -}; - -typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, call_single_data_t *); - -typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); - -typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); - -struct call_function_data { - call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; - cpumask_var_t cpumask; - cpumask_var_t cpumask_ipi; -}; - -struct trace_event_raw_csd_queue_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *func; - void *csd; - char __data[0]; -}; - -struct trace_event_raw_csd_function { - struct trace_entry ent; - void *func; - void *csd; - char __data[0]; -}; - -struct smp_call_on_cpu_struct { +struct tls_strparser { + struct sock *sk; + u32 mark: 8; + u32 stopped: 1; + u32 copy_mode: 1; + u32 mixed_decrypted: 1; + u32 msg_ready: 1; + struct strp_msg stm; + struct sk_buff *anchor; struct work_struct work; - struct completion done; - int (*func)(void *); +}; + +struct tls_sw_context_rx { + struct crypto_aead *aead_recv; + struct crypto_wait async_wait; + struct sk_buff_head rx_list; + void (*saved_data_ready)(struct sock *); + u8 reader_present; + u8 async_capable: 1; + u8 zc_capable: 1; + u8 reader_contended: 1; + struct tls_strparser strp; + atomic_t decrypt_pending; + struct sk_buff_head async_hold; + struct wait_queue_head wq; +}; + +struct tcp6_sock { + struct tcp_sock tcp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tcp_timewait_sock { + struct inet_timewait_sock tw_sk; + u32 tw_rcv_wnd; + u32 tw_ts_offset; + u32 tw_ts_recent; + u32 tw_last_oow_ack_time; + int tw_ts_recent_stamp; + u32 tw_tx_delay; +}; + +struct udp6_sock { + struct udp_sock udp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct mptcp_sock {}; + +struct cgroup_cls_state { + struct cgroup_subsys_state css; + u32 classid; +}; + +struct bpf_tcp_req_attrs { + u32 rcv_tsval; + u32 rcv_tsecr; + u16 mss; + u8 rcv_wscale; + u8 snd_wscale; + u8 ecn_ok; + u8 wscale_ok; + u8 sack_ok; + u8 tstamp_ok; + u8 usec_ts_ok; + u8 reserved[3]; +}; + +enum { + INET6_IFADDR_STATE_PREDAD = 0, + INET6_IFADDR_STATE_DAD = 1, + INET6_IFADDR_STATE_POSTDAD = 2, + INET6_IFADDR_STATE_ERRDAD = 3, + INET6_IFADDR_STATE_DEAD = 4, +}; + +enum { + NETCONFA_UNSPEC = 0, + NETCONFA_IFINDEX = 1, + NETCONFA_FORWARDING = 2, + NETCONFA_RP_FILTER = 3, + NETCONFA_MC_FORWARDING = 4, + NETCONFA_PROXY_NEIGH = 5, + NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN = 6, + NETCONFA_INPUT = 7, + NETCONFA_BC_FORWARDING = 8, + __NETCONFA_MAX = 9, +}; + +enum { + IPV6_SADDR_RULE_INIT = 0, + IPV6_SADDR_RULE_LOCAL = 1, + IPV6_SADDR_RULE_SCOPE = 2, + IPV6_SADDR_RULE_PREFERRED = 3, + IPV6_SADDR_RULE_OIF = 4, + IPV6_SADDR_RULE_LABEL = 5, + IPV6_SADDR_RULE_PRIVACY = 6, + IPV6_SADDR_RULE_ORCHID = 7, + IPV6_SADDR_RULE_PREFIX = 8, + IPV6_SADDR_RULE_MAX = 9, +}; + +enum { + NEIGH_VAR_MCAST_PROBES = 0, + NEIGH_VAR_UCAST_PROBES = 1, + NEIGH_VAR_APP_PROBES = 2, + NEIGH_VAR_MCAST_REPROBES = 3, + NEIGH_VAR_RETRANS_TIME = 4, + NEIGH_VAR_BASE_REACHABLE_TIME = 5, + NEIGH_VAR_DELAY_PROBE_TIME = 6, + NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7, + NEIGH_VAR_GC_STALETIME = 8, + NEIGH_VAR_QUEUE_LEN_BYTES = 9, + NEIGH_VAR_PROXY_QLEN = 10, + NEIGH_VAR_ANYCAST_DELAY = 11, + NEIGH_VAR_PROXY_DELAY = 12, + NEIGH_VAR_LOCKTIME = 13, + NEIGH_VAR_QUEUE_LEN = 14, + NEIGH_VAR_RETRANS_TIME_MS = 15, + NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16, + NEIGH_VAR_GC_INTERVAL = 17, + NEIGH_VAR_GC_THRESH1 = 18, + NEIGH_VAR_GC_THRESH2 = 19, + NEIGH_VAR_GC_THRESH3 = 20, + NEIGH_VAR_MAX = 21, +}; + +enum { + DAD_PROCESS = 0, + DAD_BEGIN = 1, + DAD_ABORT = 2, +}; + +enum cleanup_prefix_rt_t { + CLEANUP_PREFIX_RT_NOP = 0, + CLEANUP_PREFIX_RT_DEL = 1, + CLEANUP_PREFIX_RT_EXPIRE = 2, +}; + +enum in6_addr_gen_mode { + IN6_ADDR_GEN_MODE_EUI64 = 0, + IN6_ADDR_GEN_MODE_NONE = 1, + IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2, + IN6_ADDR_GEN_MODE_RANDOM = 3, +}; + +enum { + DEVCONF_FORWARDING = 0, + DEVCONF_HOPLIMIT = 1, + DEVCONF_MTU6 = 2, + DEVCONF_ACCEPT_RA = 3, + DEVCONF_ACCEPT_REDIRECTS = 4, + DEVCONF_AUTOCONF = 5, + DEVCONF_DAD_TRANSMITS = 6, + DEVCONF_RTR_SOLICITS = 7, + DEVCONF_RTR_SOLICIT_INTERVAL = 8, + DEVCONF_RTR_SOLICIT_DELAY = 9, + DEVCONF_USE_TEMPADDR = 10, + DEVCONF_TEMP_VALID_LFT = 11, + DEVCONF_TEMP_PREFERED_LFT = 12, + DEVCONF_REGEN_MAX_RETRY = 13, + DEVCONF_MAX_DESYNC_FACTOR = 14, + DEVCONF_MAX_ADDRESSES = 15, + DEVCONF_FORCE_MLD_VERSION = 16, + DEVCONF_ACCEPT_RA_DEFRTR = 17, + DEVCONF_ACCEPT_RA_PINFO = 18, + DEVCONF_ACCEPT_RA_RTR_PREF = 19, + DEVCONF_RTR_PROBE_INTERVAL = 20, + DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21, + DEVCONF_PROXY_NDP = 22, + DEVCONF_OPTIMISTIC_DAD = 23, + DEVCONF_ACCEPT_SOURCE_ROUTE = 24, + DEVCONF_MC_FORWARDING = 25, + DEVCONF_DISABLE_IPV6 = 26, + DEVCONF_ACCEPT_DAD = 27, + DEVCONF_FORCE_TLLAO = 28, + DEVCONF_NDISC_NOTIFY = 29, + DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30, + DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31, + DEVCONF_SUPPRESS_FRAG_NDISC = 32, + DEVCONF_ACCEPT_RA_FROM_LOCAL = 33, + DEVCONF_USE_OPTIMISTIC = 34, + DEVCONF_ACCEPT_RA_MTU = 35, + DEVCONF_STABLE_SECRET = 36, + DEVCONF_USE_OIF_ADDRS_ONLY = 37, + DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38, + DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39, + DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40, + DEVCONF_DROP_UNSOLICITED_NA = 41, + DEVCONF_KEEP_ADDR_ON_DOWN = 42, + DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43, + DEVCONF_SEG6_ENABLED = 44, + DEVCONF_SEG6_REQUIRE_HMAC = 45, + DEVCONF_ENHANCED_DAD = 46, + DEVCONF_ADDR_GEN_MODE = 47, + DEVCONF_DISABLE_POLICY = 48, + DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, + DEVCONF_NDISC_TCLASS = 50, + DEVCONF_RPL_SEG_ENABLED = 51, + DEVCONF_RA_DEFRTR_METRIC = 52, + DEVCONF_IOAM6_ENABLED = 53, + DEVCONF_IOAM6_ID = 54, + DEVCONF_IOAM6_ID_WIDE = 55, + DEVCONF_NDISC_EVICT_NOCARRIER = 56, + DEVCONF_ACCEPT_UNTRACKED_NA = 57, + DEVCONF_ACCEPT_RA_MIN_LFT = 58, + DEVCONF_MAX = 59, +}; + +enum { + IFLA_INET6_UNSPEC = 0, + IFLA_INET6_FLAGS = 1, + IFLA_INET6_CONF = 2, + IFLA_INET6_STATS = 3, + IFLA_INET6_MCAST = 4, + IFLA_INET6_CACHEINFO = 5, + IFLA_INET6_ICMP6STATS = 6, + IFLA_INET6_TOKEN = 7, + IFLA_INET6_ADDR_GEN_MODE = 8, + IFLA_INET6_RA_MTU = 9, + __IFLA_INET6_MAX = 10, +}; + +enum { + PREFIX_UNSPEC = 0, + PREFIX_ADDRESS = 1, + PREFIX_CACHEINFO = 2, + __PREFIX_MAX = 3, +}; + +enum addr_type_t { + UNICAST_ADDR = 0, + MULTICAST_ADDR = 1, + ANYCAST_ADDR = 2, +}; + +enum { + IFA_UNSPEC = 0, + IFA_ADDRESS = 1, + IFA_LOCAL = 2, + IFA_LABEL = 3, + IFA_BROADCAST = 4, + IFA_ANYCAST = 5, + IFA_CACHEINFO = 6, + IFA_MULTICAST = 7, + IFA_FLAGS = 8, + IFA_RT_PRIORITY = 9, + IFA_TARGET_NETNSID = 10, + IFA_PROTO = 11, + __IFA_MAX = 12, +}; + +union fwnet_hwaddr { + u8 u[16]; + struct { + __be64 uniq_id; + u8 max_rec; + u8 sspd; + u8 fifo[6]; + } uc; +}; + +struct prefix_cacheinfo { + __u32 preferred_time; + __u32 valid_time; +}; + +struct prefixmsg { + unsigned char prefix_family; + unsigned char prefix_pad1; + unsigned short prefix_pad2; + int prefix_ifindex; + unsigned char prefix_type; + unsigned char prefix_len; + unsigned char prefix_flags; + unsigned char prefix_pad3; +}; + +struct in6_ifreq { + struct in6_addr ifr6_addr; + __u32 ifr6_prefixlen; + int ifr6_ifindex; +}; + +struct ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; + __u8 ifa_flags; + __u8 ifa_scope; + __u32 ifa_index; +}; + +struct if6_iter_state { + struct seq_net_private p; + int bucket; + int offset; +}; + +struct inet6_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; + enum addr_type_t type; +}; + +struct ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; + __u32 tstamp; +}; + +struct netconfmsg { + __u8 ncm_family; +}; + +struct ipv6_saddr_score { + int rule; + int addr_type; + struct inet6_ifaddr *ifa; + unsigned long scorebits[1]; + int scopedist; + int matchlen; +}; + +struct ipv6_saddr_dst { + const struct in6_addr *addr; + int ifindex; + int scope; + int label; + unsigned int prefs; +}; + +struct ifa6_config { + const struct in6_addr *pfx; + unsigned int plen; + u8 ifa_proto; + const struct in6_addr *peer_pfx; + u32 rt_priority; + u32 ifa_flags; + u32 preferred_lft; + u32 valid_lft; + u16 scope; +}; + +struct in6_validator_info { + struct in6_addr i6vi_addr; + struct inet6_dev *i6vi_dev; + struct netlink_ext_ack *extack; +}; + +struct ifla_cacheinfo { + __u32 max_reasm_len; + __u32 tstamp; + __u32 reachable_time; + __u32 retrans_time; +}; + +struct netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; +}; + +struct netdev_notifier_change_info { + struct netdev_notifier_info info; + unsigned int flags_changed; +}; + +typedef unsigned int ieee80211_rx_result; + +enum ieee80211_offload_flags { + IEEE80211_OFFLOAD_ENCAP_ENABLED = 1, + IEEE80211_OFFLOAD_ENCAP_4ADDR = 2, + IEEE80211_OFFLOAD_DECAP_ENABLED = 4, +}; + +enum ieee80211_packet_rx_flags { + IEEE80211_RX_AMSDU = 8, + IEEE80211_RX_MALFORMED_ACTION_FRM = 16, + IEEE80211_RX_DEFERRED_RELEASE = 32, +}; + +enum mac80211_drop_reason { + RX_CONTINUE = 1, + RX_QUEUED = 0, + RX_DROP_MONITOR = 131072, + RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073, + RX_DROP_M_BAD_BCN_KEYIDX = 131074, + RX_DROP_M_BAD_MGMT_KEYIDX = 131075, + RX_DROP_U_MIC_FAIL = 65537, + RX_DROP_U_REPLAY = 65538, + RX_DROP_U_BAD_MMIE = 65539, + RX_DROP_U_DUP = 65540, + RX_DROP_U_SPURIOUS = 65541, + RX_DROP_U_DECRYPT_FAIL = 65542, + RX_DROP_U_NO_KEY_ID = 65543, + RX_DROP_U_BAD_CIPHER = 65544, + RX_DROP_U_OOM = 65545, + RX_DROP_U_NONSEQ_PN = 65546, + RX_DROP_U_BAD_KEY_COLOR = 65547, + RX_DROP_U_BAD_4ADDR = 65548, + RX_DROP_U_BAD_AMSDU = 65549, + RX_DROP_U_BAD_AMSDU_CIPHER = 65550, + RX_DROP_U_INVALID_8023 = 65551, + RX_DROP_U_RUNT_ACTION = 65552, + RX_DROP_U_UNPROT_ACTION = 65553, + RX_DROP_U_UNPROT_DUAL = 65554, + RX_DROP_U_UNPROT_UCAST_MGMT = 65555, + RX_DROP_U_UNPROT_MCAST_MGMT = 65556, + RX_DROP_U_UNPROT_BEACON = 65557, + RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558, + RX_DROP_U_UNPROT_ROBUST_ACTION = 65559, + RX_DROP_U_ACTION_UNKNOWN_SRC = 65560, + RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561, + RX_DROP_U_EXPECT_DEFRAG_PROT = 65562, + RX_DROP_U_WEP_DEC_FAIL = 65563, + RX_DROP_U_NO_IV = 65564, + RX_DROP_U_NO_ICV = 65565, + RX_DROP_U_AP_RX_GROUPCAST = 65566, + RX_DROP_U_SHORT_MMIC = 65567, + RX_DROP_U_MMIC_FAIL = 65568, + RX_DROP_U_SHORT_TKIP = 65569, + RX_DROP_U_TKIP_FAIL = 65570, + RX_DROP_U_SHORT_CCMP = 65571, + RX_DROP_U_SHORT_CCMP_MIC = 65572, + RX_DROP_U_SHORT_GCMP = 65573, + RX_DROP_U_SHORT_GCMP_MIC = 65574, + RX_DROP_U_SHORT_CMAC = 65575, + RX_DROP_U_SHORT_CMAC256 = 65576, + RX_DROP_U_SHORT_GMAC = 65577, + RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578, + RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579, + RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580, + RX_DROP_U_NOT_PORT_CONTROL = 65581, +}; + +enum sta_stats_type { + STA_STATS_RATE_TYPE_INVALID = 0, + STA_STATS_RATE_TYPE_LEGACY = 1, + STA_STATS_RATE_TYPE_HT = 2, + STA_STATS_RATE_TYPE_VHT = 3, + STA_STATS_RATE_TYPE_HE = 4, + STA_STATS_RATE_TYPE_S1G = 5, + STA_STATS_RATE_TYPE_EHT = 6, +}; + +enum ___mac80211_drop_reason { + ___RX_CONTINUE = 1, + ___RX_QUEUED = 0, + ___RX_DROP_MONITOR = 131072, + ___RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073, + ___RX_DROP_M_BAD_BCN_KEYIDX = 131074, + ___RX_DROP_M_BAD_MGMT_KEYIDX = 131075, + ___RX_DROP_UNUSABLE = 65536, + ___RX_DROP_U_MIC_FAIL = 65537, + ___RX_DROP_U_REPLAY = 65538, + ___RX_DROP_U_BAD_MMIE = 65539, + ___RX_DROP_U_DUP = 65540, + ___RX_DROP_U_SPURIOUS = 65541, + ___RX_DROP_U_DECRYPT_FAIL = 65542, + ___RX_DROP_U_NO_KEY_ID = 65543, + ___RX_DROP_U_BAD_CIPHER = 65544, + ___RX_DROP_U_OOM = 65545, + ___RX_DROP_U_NONSEQ_PN = 65546, + ___RX_DROP_U_BAD_KEY_COLOR = 65547, + ___RX_DROP_U_BAD_4ADDR = 65548, + ___RX_DROP_U_BAD_AMSDU = 65549, + ___RX_DROP_U_BAD_AMSDU_CIPHER = 65550, + ___RX_DROP_U_INVALID_8023 = 65551, + ___RX_DROP_U_RUNT_ACTION = 65552, + ___RX_DROP_U_UNPROT_ACTION = 65553, + ___RX_DROP_U_UNPROT_DUAL = 65554, + ___RX_DROP_U_UNPROT_UCAST_MGMT = 65555, + ___RX_DROP_U_UNPROT_MCAST_MGMT = 65556, + ___RX_DROP_U_UNPROT_BEACON = 65557, + ___RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558, + ___RX_DROP_U_UNPROT_ROBUST_ACTION = 65559, + ___RX_DROP_U_ACTION_UNKNOWN_SRC = 65560, + ___RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561, + ___RX_DROP_U_EXPECT_DEFRAG_PROT = 65562, + ___RX_DROP_U_WEP_DEC_FAIL = 65563, + ___RX_DROP_U_NO_IV = 65564, + ___RX_DROP_U_NO_ICV = 65565, + ___RX_DROP_U_AP_RX_GROUPCAST = 65566, + ___RX_DROP_U_SHORT_MMIC = 65567, + ___RX_DROP_U_MMIC_FAIL = 65568, + ___RX_DROP_U_SHORT_TKIP = 65569, + ___RX_DROP_U_TKIP_FAIL = 65570, + ___RX_DROP_U_SHORT_CCMP = 65571, + ___RX_DROP_U_SHORT_CCMP_MIC = 65572, + ___RX_DROP_U_SHORT_GCMP = 65573, + ___RX_DROP_U_SHORT_GCMP_MIC = 65574, + ___RX_DROP_U_SHORT_CMAC = 65575, + ___RX_DROP_U_SHORT_CMAC256 = 65576, + ___RX_DROP_U_SHORT_GMAC = 65577, + ___RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578, + ___RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579, + ___RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580, + ___RX_DROP_U_NOT_PORT_CONTROL = 65581, +}; + +enum ieee80211_rx_flags { + IEEE80211_RX_CMNTR = 1, + IEEE80211_RX_BEACON_REPORTED = 2, +}; + +enum ieee80211_ht_chanwidth_values { + IEEE80211_HT_CHANWIDTH_20MHZ = 0, + IEEE80211_HT_CHANWIDTH_ANY = 1, +}; + +enum ieee80211_vht_actioncode { + WLAN_VHT_ACTION_COMPRESSED_BF = 0, + WLAN_VHT_ACTION_GROUPID_MGMT = 1, + WLAN_VHT_ACTION_OPMODE_NOTIF = 2, +}; + +enum ieee80211_self_protected_actioncode { + WLAN_SP_RESERVED = 0, + WLAN_SP_MESH_PEERING_OPEN = 1, + WLAN_SP_MESH_PEERING_CONFIRM = 2, + WLAN_SP_MESH_PEERING_CLOSE = 3, + WLAN_SP_MGK_INFORM = 4, + WLAN_SP_MGK_ACK = 5, +}; + +enum ieee80211_s1g_actioncode { + WLAN_S1G_AID_SWITCH_REQUEST = 0, + WLAN_S1G_AID_SWITCH_RESPONSE = 1, + WLAN_S1G_SYNC_CONTROL = 2, + WLAN_S1G_STA_INFO_ANNOUNCE = 3, + WLAN_S1G_EDCA_PARAM_SET = 4, + WLAN_S1G_EL_OPERATION = 5, + WLAN_S1G_TWT_SETUP = 6, + WLAN_S1G_TWT_TEARDOWN = 7, + WLAN_S1G_SECT_GROUP_ID_LIST = 8, + WLAN_S1G_SECT_ID_FEEDBACK = 9, + WLAN_S1G_TWT_INFORMATION = 11, +}; + +enum ieee80211_protected_eht_actioncode { + WLAN_PROTECTED_EHT_ACTION_TTLM_REQ = 0, + WLAN_PROTECTED_EHT_ACTION_TTLM_RES = 1, + WLAN_PROTECTED_EHT_ACTION_TTLM_TEARDOWN = 2, +}; + +enum ieee80211_sa_query_action { + WLAN_ACTION_SA_QUERY_REQUEST = 0, + WLAN_ACTION_SA_QUERY_RESPONSE = 1, +}; + +enum ieee80211_radiotap_flags { + IEEE80211_RADIOTAP_F_CFP = 1, + IEEE80211_RADIOTAP_F_SHORTPRE = 2, + IEEE80211_RADIOTAP_F_WEP = 4, + IEEE80211_RADIOTAP_F_FRAG = 8, + IEEE80211_RADIOTAP_F_FCS = 16, + IEEE80211_RADIOTAP_F_DATAPAD = 32, + IEEE80211_RADIOTAP_F_BADFCS = 64, +}; + +enum ieee80211_radiotap_channel_flags { + IEEE80211_CHAN_CCK = 32, + IEEE80211_CHAN_OFDM = 64, + IEEE80211_CHAN_2GHZ = 128, + IEEE80211_CHAN_5GHZ = 256, + IEEE80211_CHAN_DYN = 1024, + IEEE80211_CHAN_HALF = 16384, + IEEE80211_CHAN_QUARTER = 32768, +}; + +enum ieee80211_radiotap_rx_flags { + IEEE80211_RADIOTAP_F_RX_BADPLCP = 2, +}; + +enum ieee80211_radiotap_ampdu_flags { + IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN = 1, + IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN = 2, + IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN = 4, + IEEE80211_RADIOTAP_AMPDU_IS_LAST = 8, + IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR = 16, + IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN = 32, + IEEE80211_RADIOTAP_AMPDU_EOF = 64, + IEEE80211_RADIOTAP_AMPDU_EOF_KNOWN = 128, +}; + +enum ieee80211_radiotap_vht_coding { + IEEE80211_RADIOTAP_CODING_LDPC_USER0 = 1, + IEEE80211_RADIOTAP_CODING_LDPC_USER1 = 2, + IEEE80211_RADIOTAP_CODING_LDPC_USER2 = 4, + IEEE80211_RADIOTAP_CODING_LDPC_USER3 = 8, +}; + +enum ieee80211_radiotap_timestamp_flags { + IEEE80211_RADIOTAP_TIMESTAMP_FLAG_64BIT = 0, + IEEE80211_RADIOTAP_TIMESTAMP_FLAG_32BIT = 1, + IEEE80211_RADIOTAP_TIMESTAMP_FLAG_ACCURACY = 2, +}; + +enum nl80211_plink_state { + NL80211_PLINK_LISTEN = 0, + NL80211_PLINK_OPN_SNT = 1, + NL80211_PLINK_OPN_RCVD = 2, + NL80211_PLINK_CNF_RCVD = 3, + NL80211_PLINK_ESTAB = 4, + NL80211_PLINK_HOLDING = 5, + NL80211_PLINK_BLOCKED = 6, + NUM_NL80211_PLINK_STATES = 7, + MAX_NL80211_PLINK_STATES = 6, +}; + +struct ieee80211_mmie { + u8 element_id; + u8 length; + __le16 key_id; + u8 sequence_number[6]; + u8 mic[8]; +}; + +struct ieee80211_mmie_16 { + u8 element_id; + u8 length; + __le16 key_id; + u8 sequence_number[6]; + u8 mic[16]; +}; + +struct ieee80211_rx_data { + struct list_head *list; + struct sk_buff *skb; + struct ieee80211_local *local; + struct ieee80211_sub_if_data *sdata; + struct ieee80211_link_data *link; + struct sta_info *sta; + struct link_sta_info *link_sta; + struct ieee80211_key *key; + unsigned int flags; + int seqno_idx; + int security_idx; + int link_id; + union { + struct { + u32 iv32; + u16 iv16; + } tkip; + struct { + u8 pn[6]; + } ccm_gcm; + }; +}; + +struct ieee80211_hdr_3addr { + __le16 frame_control; + __le16 duration_id; + u8 addr1[6]; + u8 addr2[6]; + u8 addr3[6]; + __le16 seq_ctrl; +}; + +typedef void (*btf_trace_emulate_vsyscall)(void *, int); + +enum { + EMULATE = 0, + XONLY = 1, + NONE = 2, +}; + +struct trace_event_raw_emulate_vsyscall { + struct trace_entry ent; + int nr; + char __data[0]; +}; + +struct trace_event_data_offsets_emulate_vsyscall {}; + +struct mtrr_sentry { + __u64 base; + __u32 size; + __u32 type; +}; + +struct mtrr_gentry { + __u64 base; + __u32 size; + __u32 regnum; + __u32 type; + __u32 _pad; +}; + +struct sched_param { + int sched_priority; +}; + +enum KTHREAD_BITS { + KTHREAD_IS_PER_CPU = 0, + KTHREAD_SHOULD_STOP = 1, + KTHREAD_SHOULD_PARK = 2, +}; + +enum { + KTW_FREEZABLE = 1, +}; + +struct kthread_create_info { + char *full_name; + int (*threadfn)(void *); void *data; - int ret; - int cpu; + int node; + struct task_struct *result; + struct completion *done; + struct list_head list; }; -struct trace_event_data_offsets_csd_queue_cpu {}; - -struct trace_event_data_offsets_csd_function {}; - -struct swap_cgroup_ctrl { - struct page **map; - unsigned long length; - spinlock_t lock; +struct kthread_flush_work { + struct kthread_work work; + struct completion done; }; -struct swap_cgroup { - unsigned short id; +struct kthread { + unsigned long flags; + unsigned int cpu; + int result; + int (*threadfn)(void *); + void *data; + struct completion parked; + struct completion exited; + struct cgroup_subsys_state *blkcg_css; + char *full_name; }; -struct fuse_ioctl_out { - int32_t result; +enum tick_broadcast_state { + TICK_BROADCAST_EXIT = 0, + TICK_BROADCAST_ENTER = 1, +}; + +struct event_trigger_data; + +struct event_trigger_ops; + +struct event_command { + struct list_head list; + char *name; + enum event_trigger_type trigger_type; + int flags; + int (*parse)(struct event_command *, struct trace_event_file *, char *, char *, char *); + int (*reg)(char *, struct event_trigger_data *, struct trace_event_file *); + void (*unreg)(char *, struct event_trigger_data *, struct trace_event_file *); + void (*unreg_all)(struct trace_event_file *); + int (*set_filter)(char *, struct event_trigger_data *, struct trace_event_file *); + struct event_trigger_ops * (*get_trigger_ops)(char *, char *); +}; + +struct event_trigger_data { + unsigned long count; + int ref; + int flags; + struct event_trigger_ops *ops; + struct event_command *cmd_ops; + struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; + char *filter_str; + void *private_data; + bool paused; + bool paused_tmp; + struct list_head list; + char *name; + struct list_head named_list; + struct event_trigger_data *named_data; +}; + +struct event_trigger_ops { + void (*trigger)(struct event_trigger_data *, struct trace_buffer *, void *, struct ring_buffer_event *); + int (*init)(struct event_trigger_data *); + void (*free)(struct event_trigger_data *); + int (*print)(struct seq_file *, struct event_trigger_data *); +}; + +enum event_command_flags { + EVENT_CMD_FL_POST_TRIGGER = 1, + EVENT_CMD_FL_NEEDS_REC = 2, +}; + +enum { + EVENT_TRIGGER_FL_PROBE = 1, +}; + +struct enable_trigger_data { + struct trace_event_file *file; + bool enable; + bool hist; +}; + +enum jump_label_type { + JUMP_LABEL_NOP = 0, + JUMP_LABEL_JMP = 1, +}; + +struct static_key_deferred { + struct static_key key; + unsigned long timeout; + struct delayed_work work; +}; + +struct static_key_mod { + struct static_key_mod *next; + struct jump_entry *entries; + struct module *mod; +}; + +struct ns_get_path_task_args { + const struct proc_ns_operations *ns_ops; + struct task_struct *task; +}; + +typedef struct ns_common *ns_get_path_helper_t(void *); + +struct getdents_callback { + struct dir_context ctx; + char *name; + u64 ino; + int found; + int sequence; +}; + +struct fuse_backing_map { + int32_t fd; uint32_t flags; - uint32_t in_iovs; - uint32_t out_iovs; + uint64_t padding; }; -struct fuse_ioctl_iovec { - uint64_t base; - uint64_t len; +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + u32 repeats; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; }; -struct fuse_ioctl_in { - uint64_t fh; - uint32_t flags; - uint32_t cmd; - uint64_t arg; - uint32_t in_size; - uint32_t out_size; +struct io_timeout_rem { + struct file *file; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; }; -struct chksum_ctx { - u32 key; -}; - -struct chksum_desc_ctx { - u32 crc; -}; - -struct pkcs7_signed_info; - -struct pkcs7_message { - struct x509_certificate *certs; - struct x509_certificate *crl; - struct pkcs7_signed_info *signed_infos; - u8 version; - bool have_authattrs; - enum OID data_type; - size_t data_len; - size_t data_hdrlen; - const void *data; -}; - -struct pkcs7_signed_info { - struct pkcs7_signed_info *next; - struct x509_certificate *signer; - unsigned int index; - bool unsupported_crypto; - bool blacklisted; - const void *msgdigest; - unsigned int msgdigest_len; - unsigned int authattrs_len; - const void *authattrs; - unsigned long aa_set; - time64_t signing_time; - struct public_key_signature *sig; -}; - -enum bio_merge_status { - BIO_MERGE_OK = 0, - BIO_MERGE_NONE = 1, - BIO_MERGE_FAILED = 2, -}; - -struct req_iterator { - struct bvec_iter iter; - struct bio *bio; -}; - -struct reciprocal_value_adv { - u32 m; - u8 sh; - u8 exp; - bool is_wide_m; -}; - -struct gf128mul_4k; - -struct gf128mul_64k { - struct gf128mul_4k *t[16]; -}; - -struct gf128mul_4k { - be128 t[256]; -}; - -typedef struct { - __le64 b; - __le64 a; -} le128; - -enum acpi_cedt_type { - ACPI_CEDT_TYPE_CHBS = 0, - ACPI_CEDT_TYPE_CFMWS = 1, - ACPI_CEDT_TYPE_CXIMS = 2, - ACPI_CEDT_TYPE_RDPAS = 3, - ACPI_CEDT_TYPE_RESERVED = 4, -}; - -struct acpi_madt_io_sapic { - struct acpi_subtable_header header; - u8 id; - u8 reserved; - u32 global_irq_base; - u64 address; -}; - -struct acpi_madt_interrupt_source { - struct acpi_subtable_header header; - u16 inti_flags; - u8 type; - u8 id; - u8 eid; - u8 io_sapic_vector; - u32 global_irq; +struct io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; u32 flags; }; -struct acpi_madt_generic_interrupt { - struct acpi_subtable_header header; - u16 reserved; - u32 cpu_interface_number; - u32 uid; - u32 flags; - u32 parking_version; - u32 performance_interrupt; - u64 parked_address; - u64 base_address; - u64 gicv_base_address; - u64 gich_base_address; - u32 vgic_interrupt; - u64 gicr_base_address; - u64 arm_mpidr; - u8 efficiency_class; - u8 reserved2[1]; - u16 spe_interrupt; - u16 trbe_interrupt; +struct pci_slot_attribute { + struct attribute attr; + ssize_t (*show)(struct pci_slot *, char *); + ssize_t (*store)(struct pci_slot *, const char *, size_t); +}; + +enum pci_bus_speed { + PCI_SPEED_33MHz = 0, + PCI_SPEED_66MHz = 1, + PCI_SPEED_66MHz_PCIX = 2, + PCI_SPEED_100MHz_PCIX = 3, + PCI_SPEED_133MHz_PCIX = 4, + PCI_SPEED_66MHz_PCIX_ECC = 5, + PCI_SPEED_100MHz_PCIX_ECC = 6, + PCI_SPEED_133MHz_PCIX_ECC = 7, + PCI_SPEED_66MHz_PCIX_266 = 9, + PCI_SPEED_100MHz_PCIX_266 = 10, + PCI_SPEED_133MHz_PCIX_266 = 11, + AGP_UNKNOWN = 12, + AGP_1X = 13, + AGP_2X = 14, + AGP_4X = 15, + AGP_8X = 16, + PCI_SPEED_66MHz_PCIX_533 = 17, + PCI_SPEED_100MHz_PCIX_533 = 18, + PCI_SPEED_133MHz_PCIX_533 = 19, + PCIE_SPEED_2_5GT = 20, + PCIE_SPEED_5_0GT = 21, + PCIE_SPEED_8_0GT = 22, + PCIE_SPEED_16_0GT = 23, + PCIE_SPEED_32_0GT = 24, + PCIE_SPEED_64_0GT = 25, + PCI_SPEED_UNKNOWN = 255, +}; + +typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); + +struct acpi_simple_repair_info { + char name[4]; + u32 unexpected_btypes; + u32 package_index; + acpi_object_converter object_converter; +}; + +enum acpi_return_package_types { + ACPI_PTYPE1_FIXED = 1, + ACPI_PTYPE1_VAR = 2, + ACPI_PTYPE1_OPTION = 3, + ACPI_PTYPE2 = 4, + ACPI_PTYPE2_COUNT = 5, + ACPI_PTYPE2_PKG_COUNT = 6, + ACPI_PTYPE2_FIXED = 7, + ACPI_PTYPE2_MIN = 8, + ACPI_PTYPE2_REV_FIXED = 9, + ACPI_PTYPE2_FIX_VAR = 10, + ACPI_PTYPE2_VAR_VAR = 11, + ACPI_PTYPE2_UUID_PAIR = 12, + ACPI_PTYPE_CUSTOM = 13, +}; + +struct vcs_poll_data { + struct notifier_block notifier; + unsigned int cons_num; + int event; + wait_queue_head_t waitq; + struct fasync_struct *fasync; +}; + +struct devcd_entry { + struct device devcd_dev; + void *data; + size_t datalen; + struct mutex mutex; + bool delete_work; + struct module *owner; + ssize_t (*read)(char *, loff_t, size_t, void *, size_t); + void (*free)(void *); + struct delayed_work del_wk; + struct device *failing_dev; +}; + +enum rtl_fw_opcode { + PHY_READ = 0, + PHY_DATA_OR = 1, + PHY_DATA_AND = 2, + PHY_BJMPN = 3, + PHY_MDIO_CHG = 4, + PHY_CLEAR_READCOUNT = 7, + PHY_WRITE = 8, + PHY_READCOUNT_EQ_SKIP = 9, + PHY_COMP_EQ_SKIPN = 10, + PHY_COMP_NEQ_SKIPN = 11, + PHY_WRITE_PREVIOUS = 12, + PHY_SKIPN = 13, + PHY_DELAY_MS = 14, +}; + +struct fw_info { + u32 magic; + char version[32]; + __le32 fw_start; + __le32 fw_len; + u8 chksum; } __attribute__((packed)); -struct acpi_madt_generic_distributor { - struct acpi_subtable_header header; - u16 reserved; - u32 gic_id; - u64 base_address; - u32 global_irq_base; - u8 version; - u8 reserved2[3]; -}; - -struct acpi_madt_core_pic { - struct acpi_subtable_header header; - u8 version; - u32 processor_id; - u32 core_id; - u32 flags; -} __attribute__((packed)); - -struct acpi_madt_rintc { - struct acpi_subtable_header header; - u8 version; - u8 reserved; - u32 flags; - u64 hart_id; - u32 uid; - u32 ext_intc_id; - u64 imsic_addr; - u32 imsic_size; -} __attribute__((packed)); - -struct acpi_table_cdat { - u32 length; - u8 revision; - u8 checksum; - u8 reserved[6]; - u32 sequence; -}; - -union fw_table_header { - struct acpi_table_header acpi; - struct acpi_table_cdat cdat; -}; - -typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long); - -struct acpi_subtable_proc { - int id; - acpi_tbl_entry_handler handler; - acpi_tbl_entry_handler_arg handler_arg; - void *arg; - int count; -}; - -struct acpi_wakeup_handler { - struct list_head list_node; - bool (*wakeup)(void *); - void *context; -}; - -struct mid8250; - -struct mid8250_board { - unsigned long freq; - unsigned int base_baud; - unsigned int bar; - int (*setup)(struct mid8250 *, struct uart_port *); - void (*exit)(struct mid8250 *); -}; - -struct hsu_dma; - -struct hsu_dma_chip { - struct device *dev; - int irq; - void *regs; - unsigned int length; - unsigned int offset; - struct hsu_dma *hsu; -}; - -struct mid8250 { - int line; - int dma_index; - struct pci_dev *dma_dev; - struct uart_8250_dma dma; - struct mid8250_board *board; - struct hsu_dma_chip dma_chip; -}; - -struct hsu_dma_slave { - struct device *dma_dev; - int chan_id; -}; - -enum phy_state_work { - PHY_STATE_WORK_NONE = 0, - PHY_STATE_WORK_ANEG = 1, - PHY_STATE_WORK_SUSPEND = 2, +enum iwlagn_wowlan_wakeup_filters { + IWLAGN_WOWLAN_WAKEUP_MAGIC_PACKET = 1, + IWLAGN_WOWLAN_WAKEUP_PATTERN_MATCH = 2, + IWLAGN_WOWLAN_WAKEUP_BEACON_MISS = 4, + IWLAGN_WOWLAN_WAKEUP_LINK_CHANGE = 8, + IWLAGN_WOWLAN_WAKEUP_GTK_REKEY_FAIL = 16, + IWLAGN_WOWLAN_WAKEUP_EAP_IDENT_REQ = 32, + IWLAGN_WOWLAN_WAKEUP_4WAY_HANDSHAKE = 64, + IWLAGN_WOWLAN_WAKEUP_ALWAYS = 128, + IWLAGN_WOWLAN_WAKEUP_ENABLE_NET_DETECT = 256, }; enum iwlagn_d3_wakeup_filters { @@ -103315,6 +102090,23 @@ struct wowlan_key_data { bool use_tkip; }; +struct iwlagn_tkip_rsc_tsc { + struct tkip_sc unicast_rsc[16]; + struct tkip_sc multicast_rsc[16]; + struct tkip_sc tsc; +}; + +struct iwlagn_aes_rsc_tsc { + struct aes_sc unicast_rsc[16]; + struct aes_sc multicast_rsc[16]; + struct aes_sc tsc; +}; + +union iwlagn_all_tsc_rsc { + struct iwlagn_tkip_rsc_tsc tkip; + struct iwlagn_aes_rsc_tsc aes; +}; + struct iwlagn_wowlan_rsc_tsc_params_cmd { union iwlagn_all_tsc_rsc all_tsc_rsc; }; @@ -103336,6 +102128,24 @@ struct rtw_phy_cck_pd_reg { u32 mask_cs; }; +enum rtw_fwcd_item { + RTW_FWCD_TLV = 0, + RTW_FWCD_REG = 1, + RTW_FWCD_ROM = 2, + RTW_FWCD_IMEM = 3, + RTW_FWCD_DMEM = 4, + RTW_FWCD_EMEM = 5, +}; + +enum rtw_rx_desc_enc { + RX_DESC_ENC_NONE = 0, + RX_DESC_ENC_WEP40 = 1, + RX_DESC_ENC_TKIP_WO_MIC = 2, + RX_DESC_ENC_TKIP_MIC = 3, + RX_DESC_ENC_AES = 4, + RX_DESC_ENC_WEP104 = 5, +}; + enum rtw_dm_cap { RTW_DM_CAP_NA = 0, RTW_DM_CAP_TXGAPK = 1, @@ -103464,11442 +102274,69 @@ struct rtw8822c_efuse { }; }; +struct rtw_iqk_para { + u8 clear; + u8 segment_iqk; +}; + +struct rtw_swing_table { + const u8 *p[4]; + const u8 *n[4]; +}; + struct dpk_cfg_pair { u32 addr; u32 bitmask; u32 data; }; -enum { - NETDEV_A_DEV_IFINDEX = 1, - NETDEV_A_DEV_PAD = 2, - NETDEV_A_DEV_XDP_FEATURES = 3, - NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, - NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, - NETDEV_A_DEV_XSK_FEATURES = 6, - __NETDEV_A_DEV_MAX = 7, - NETDEV_A_DEV_MAX = 6, -}; - -enum { - NETDEV_A_NAPI_IFINDEX = 1, - NETDEV_A_NAPI_ID = 2, - NETDEV_A_NAPI_IRQ = 3, - NETDEV_A_NAPI_PID = 4, - __NETDEV_A_NAPI_MAX = 5, - NETDEV_A_NAPI_MAX = 4, -}; - -enum { - NETDEV_A_QUEUE_ID = 1, - NETDEV_A_QUEUE_IFINDEX = 2, - NETDEV_A_QUEUE_TYPE = 3, - NETDEV_A_QUEUE_NAPI_ID = 4, - __NETDEV_A_QUEUE_MAX = 5, - NETDEV_A_QUEUE_MAX = 4, -}; - -enum { - NETDEV_A_QSTATS_IFINDEX = 1, - NETDEV_A_QSTATS_QUEUE_TYPE = 2, - NETDEV_A_QSTATS_QUEUE_ID = 3, - NETDEV_A_QSTATS_SCOPE = 4, - NETDEV_A_QSTATS_RX_PACKETS = 8, - NETDEV_A_QSTATS_RX_BYTES = 9, - NETDEV_A_QSTATS_TX_PACKETS = 10, - NETDEV_A_QSTATS_TX_BYTES = 11, - NETDEV_A_QSTATS_RX_ALLOC_FAIL = 12, - __NETDEV_A_QSTATS_MAX = 13, - NETDEV_A_QSTATS_MAX = 12, -}; - -enum netdev_qstats_scope { - NETDEV_QSTATS_SCOPE_QUEUE = 1, -}; - -enum netdev_xdp_rx_metadata { - NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, - NETDEV_XDP_RX_METADATA_HASH = 2, - NETDEV_XDP_RX_METADATA_VLAN_TAG = 4, -}; - -enum netdev_xsk_flags { - NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1, - NETDEV_XSK_FLAGS_TX_CHECKSUM = 2, -}; - -enum netdev_queue_type { - NETDEV_QUEUE_TYPE_RX = 0, - NETDEV_QUEUE_TYPE_TX = 1, -}; - -enum { - NETDEV_CMD_DEV_GET = 1, - NETDEV_CMD_DEV_ADD_NTF = 2, - NETDEV_CMD_DEV_DEL_NTF = 3, - NETDEV_CMD_DEV_CHANGE_NTF = 4, - NETDEV_CMD_PAGE_POOL_GET = 5, - NETDEV_CMD_PAGE_POOL_ADD_NTF = 6, - NETDEV_CMD_PAGE_POOL_DEL_NTF = 7, - NETDEV_CMD_PAGE_POOL_CHANGE_NTF = 8, - NETDEV_CMD_PAGE_POOL_STATS_GET = 9, - NETDEV_CMD_QUEUE_GET = 10, - NETDEV_CMD_NAPI_GET = 11, - NETDEV_CMD_QSTATS_GET = 12, - __NETDEV_CMD_MAX = 13, - NETDEV_CMD_MAX = 12, -}; - -enum { - NETDEV_NLGRP_MGMT = 0, - NETDEV_NLGRP_PAGE_POOL = 1, -}; - -struct netdev_nl_dump_ctx { - unsigned long ifindex; - unsigned int rxq_idx; - unsigned int txq_idx; - unsigned int napi_id; -}; - -enum { - ETHTOOL_A_CABLE_TEST_UNSPEC = 0, - ETHTOOL_A_CABLE_TEST_HEADER = 1, - __ETHTOOL_A_CABLE_TEST_CNT = 2, - ETHTOOL_A_CABLE_TEST_MAX = 1, -}; - -enum { - ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0, - ETHTOOL_A_CABLE_TEST_NTF_HEADER = 1, - ETHTOOL_A_CABLE_TEST_NTF_STATUS = 2, - ETHTOOL_A_CABLE_TEST_NTF_NEST = 3, - __ETHTOOL_A_CABLE_TEST_NTF_CNT = 4, - ETHTOOL_A_CABLE_TEST_NTF_MAX = 3, -}; - -enum { - ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0, - ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 1, - ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 2, -}; - -enum { - ETHTOOL_A_CABLE_NEST_UNSPEC = 0, - ETHTOOL_A_CABLE_NEST_RESULT = 1, - ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 2, - __ETHTOOL_A_CABLE_NEST_CNT = 3, - ETHTOOL_A_CABLE_NEST_MAX = 2, -}; - -enum { - ETHTOOL_A_CABLE_RESULT_UNSPEC = 0, - ETHTOOL_A_CABLE_RESULT_PAIR = 1, - ETHTOOL_A_CABLE_RESULT_CODE = 2, - __ETHTOOL_A_CABLE_RESULT_CNT = 3, - ETHTOOL_A_CABLE_RESULT_MAX = 2, -}; - -enum { - ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0, - ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 1, - ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 2, - __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 3, - ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 2, -}; - -enum { - ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0, - ETHTOOL_A_CABLE_TEST_TDR_HEADER = 1, - ETHTOOL_A_CABLE_TEST_TDR_CFG = 2, - __ETHTOOL_A_CABLE_TEST_TDR_CNT = 3, - ETHTOOL_A_CABLE_TEST_TDR_MAX = 2, -}; - -enum { - ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0, - ETHTOOL_A_CABLE_TDR_NEST_STEP = 1, - ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 2, - ETHTOOL_A_CABLE_TDR_NEST_PULSE = 3, - __ETHTOOL_A_CABLE_TDR_NEST_CNT = 4, - ETHTOOL_A_CABLE_TDR_NEST_MAX = 3, -}; - -enum { - ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0, - ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1, - ETHTOOL_A_CABLE_AMPLITUDE_mV = 2, - __ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3, - ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2, -}; - -enum { - ETHTOOL_A_CABLE_PULSE_UNSPEC = 0, - ETHTOOL_A_CABLE_PULSE_mV = 1, - __ETHTOOL_A_CABLE_PULSE_CNT = 2, - ETHTOOL_A_CABLE_PULSE_MAX = 1, -}; - -enum { - ETHTOOL_A_CABLE_STEP_UNSPEC = 0, - ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1, - ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2, - ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3, - __ETHTOOL_A_CABLE_STEP_CNT = 4, - ETHTOOL_A_CABLE_STEP_MAX = 3, -}; - -enum { - ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0, - ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 1, - ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 2, - ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 3, - ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 4, - __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT = 5, - ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 4, -}; - -enum { - ETHTOOL_A_CABLE_PAIR_A = 0, - ETHTOOL_A_CABLE_PAIR_B = 1, - ETHTOOL_A_CABLE_PAIR_C = 2, - ETHTOOL_A_CABLE_PAIR_D = 3, -}; - -enum nft_set_attributes { - NFTA_SET_UNSPEC = 0, - NFTA_SET_TABLE = 1, - NFTA_SET_NAME = 2, - NFTA_SET_FLAGS = 3, - NFTA_SET_KEY_TYPE = 4, - NFTA_SET_KEY_LEN = 5, - NFTA_SET_DATA_TYPE = 6, - NFTA_SET_DATA_LEN = 7, - NFTA_SET_POLICY = 8, - NFTA_SET_DESC = 9, - NFTA_SET_ID = 10, - NFTA_SET_TIMEOUT = 11, - NFTA_SET_GC_INTERVAL = 12, - NFTA_SET_USERDATA = 13, - NFTA_SET_PAD = 14, - NFTA_SET_OBJ_TYPE = 15, - NFTA_SET_HANDLE = 16, - NFTA_SET_EXPR = 17, - NFTA_SET_EXPRESSIONS = 18, - __NFTA_SET_MAX = 19, -}; - -struct nft_bitmap_elem { - struct nft_elem_priv priv; - struct list_head head; - struct nft_set_ext ext; -}; - -struct nft_bitmap { - struct list_head list; - u16 bitmap_size; - u8 bitmap[0]; -}; - -enum bss_param_flags { - BSS_PARAM_FLAGS_CTS_PROT = 1, - BSS_PARAM_FLAGS_SHORT_PREAMBLE = 2, - BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 4, -}; - -enum nl80211_sta_flags { - __NL80211_STA_FLAG_INVALID = 0, - NL80211_STA_FLAG_AUTHORIZED = 1, - NL80211_STA_FLAG_SHORT_PREAMBLE = 2, - NL80211_STA_FLAG_WME = 3, - NL80211_STA_FLAG_MFP = 4, - NL80211_STA_FLAG_AUTHENTICATED = 5, - NL80211_STA_FLAG_TDLS_PEER = 6, - NL80211_STA_FLAG_ASSOCIATED = 7, - NL80211_STA_FLAG_SPP_AMSDU = 8, - __NL80211_STA_FLAG_AFTER_LAST = 9, - NL80211_STA_FLAG_MAX = 8, -}; - -enum sta_stats_type { - STA_STATS_RATE_TYPE_INVALID = 0, - STA_STATS_RATE_TYPE_LEGACY = 1, - STA_STATS_RATE_TYPE_HT = 2, - STA_STATS_RATE_TYPE_VHT = 3, - STA_STATS_RATE_TYPE_HE = 4, - STA_STATS_RATE_TYPE_S1G = 5, - STA_STATS_RATE_TYPE_EHT = 6, -}; - -enum nl80211_tid_stats { - __NL80211_TID_STATS_INVALID = 0, - NL80211_TID_STATS_RX_MSDU = 1, - NL80211_TID_STATS_TX_MSDU = 2, - NL80211_TID_STATS_TX_MSDU_RETRIES = 3, - NL80211_TID_STATS_TX_MSDU_FAILED = 4, - NL80211_TID_STATS_PAD = 5, - NL80211_TID_STATS_TXQ_STATS = 6, - NUM_NL80211_TID_STATS = 7, - NL80211_TID_STATS_MAX = 6, -}; - -struct sta_link_alloc { - struct link_sta_info info; - struct ieee80211_link_sta sta; - struct callback_head callback_head; -}; - -enum { - EXTRA_REG_NHMEX_M_FILTER = 0, - EXTRA_REG_NHMEX_M_DSP = 1, - EXTRA_REG_NHMEX_M_ISS = 2, - EXTRA_REG_NHMEX_M_MAP = 3, - EXTRA_REG_NHMEX_M_MSC_THR = 4, - EXTRA_REG_NHMEX_M_PGT = 5, - EXTRA_REG_NHMEX_M_PLD = 6, - EXTRA_REG_NHMEX_M_ZDP_CTL_FVC = 7, -}; - -enum efi_rts_ids { - EFI_NONE = 0, - EFI_GET_TIME = 1, - EFI_SET_TIME = 2, - EFI_GET_WAKEUP_TIME = 3, - EFI_SET_WAKEUP_TIME = 4, - EFI_GET_VARIABLE = 5, - EFI_GET_NEXT_VARIABLE = 6, - EFI_SET_VARIABLE = 7, - EFI_QUERY_VARIABLE_INFO = 8, - EFI_GET_NEXT_HIGH_MONO_COUNT = 9, - EFI_RESET_SYSTEM = 10, - EFI_UPDATE_CAPSULE = 11, - EFI_QUERY_CAPSULE_CAPS = 12, - EFI_ACPI_PRM_HANDLER = 13, -}; - -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_64_t; - -struct real_mode_header { - u32 text_start; - u32 ro_end; - u32 trampoline_start; - u32 trampoline_header; - u32 trampoline_start64; - u32 trampoline_pgd; - u32 wakeup_start; - u32 wakeup_header; - u32 machine_real_restart_asm; - u32 machine_real_restart_seg; -}; - -struct efi_memory_map_data { - phys_addr_t phys_map; - unsigned long size; - unsigned long desc_version; - unsigned long desc_size; - unsigned long flags; -}; - -struct efi_memory_map { - phys_addr_t phys_map; - void *map; - void *map_end; - int nr_map; - unsigned long desc_version; - unsigned long desc_size; - unsigned long flags; -}; - -struct efi_mem_range { - struct range range; - u64 attribute; -}; - -struct e820_table { - __u32 nr_entries; - struct e820_entry entries[3200]; -}; - -struct efi_setup_data { - u64 fw_vendor; - u64 __unused; - u64 tables; - u64 smbios; - u64 reserved[8]; -}; - -enum { - HP_THREAD_NONE = 0, - HP_THREAD_ACTIVE = 1, - HP_THREAD_PARKED = 2, -}; - -struct smpboot_thread_data { - unsigned int cpu; - unsigned int status; - struct smp_hotplug_thread *ht; -}; - -struct semaphore_waiter { - struct list_head list; - struct task_struct *task; - bool up; -}; - -struct mod_tree_root { - struct latch_tree_root root; - unsigned long addr_min; - unsigned long addr_max; -}; - -enum { - TRACE_FUNC_NO_OPTS = 0, - TRACE_FUNC_OPT_STACK = 1, - TRACE_FUNC_OPT_NO_REPEATS = 2, - TRACE_FUNC_OPT_HIGHEST_BIT = 4, -}; - -struct pcpu_freelist_node; - -struct pcpu_freelist_head { - struct pcpu_freelist_node *first; - raw_spinlock_t lock; -}; - -struct pcpu_freelist { - struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; - struct pcpu_freelist_head extralist; -}; - -struct bucket; - -struct htab_elem; - -struct bpf_htab { - struct bpf_map map; - struct bpf_mem_alloc ma; - struct bpf_mem_alloc pcpu_ma; - struct bucket *buckets; - void *elems; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct pcpu_freelist freelist; - struct bpf_lru lru; - }; - struct htab_elem * __attribute__((btf_type_tag("percpu"))) *extra_elems; - struct percpu_counter pcount; - atomic_t count; - bool use_percpu_counter; - u32 n_buckets; - u32 elem_size; - u32 hashrnd; - struct lock_class_key lockdep_key; - int __attribute__((btf_type_tag("percpu"))) *map_locked[8]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct bucket { - struct hlist_nulls_head head; - raw_spinlock_t raw_lock; -}; - -struct pcpu_freelist_node { - struct pcpu_freelist_node *next; -}; - -struct htab_elem { - union { - struct hlist_nulls_node hash_node; - struct { - void *padding; - union { - struct pcpu_freelist_node fnode; - struct htab_elem *batch_flink; - }; - }; - }; - union { - void *ptr_to_pptr; - struct bpf_lru_node lru_node; - }; - u32 hash; - long: 0; - char key[0]; -}; - -struct bpf_iter_seq_hash_map_info { - struct bpf_map *map; - struct bpf_htab *htab; - void *percpu_value_buf; - u32 bucket_id; - u32 skip_elems; -}; - -struct vma_swap_readahead { - unsigned short win; - unsigned short offset; - unsigned short nr_pte; -}; - -struct kioctx_cpu; - -struct ctx_rq_wait; - -struct kioctx { - struct percpu_ref users; - atomic_t dead; - struct percpu_ref reqs; - unsigned long user_id; - struct kioctx_cpu *cpu; - unsigned int req_batch; - unsigned int max_reqs; - unsigned int nr_events; - unsigned long mmap_base; - unsigned long mmap_size; - struct page **ring_pages; - long nr_pages; - struct rcu_work free_rwork; - struct ctx_rq_wait *rq_wait; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct { - atomic_t reqs_available; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct { - spinlock_t ctx_lock; - struct list_head active_reqs; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct { - struct mutex ring_lock; - wait_queue_head_t wait; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct { - unsigned int tail; - unsigned int completed_events; - spinlock_t completion_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct page *internal_pages[8]; - struct file *aio_ring_file; - unsigned int id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct kioctx_cpu { - unsigned int reqs_available; -}; - -struct ctx_rq_wait { - struct completion comp; - atomic_t count; -}; - -enum { - IOCB_CMD_PREAD = 0, - IOCB_CMD_PWRITE = 1, - IOCB_CMD_FSYNC = 2, - IOCB_CMD_FDSYNC = 3, - IOCB_CMD_POLL = 5, - IOCB_CMD_NOOP = 6, - IOCB_CMD_PREADV = 7, - IOCB_CMD_PWRITEV = 8, -}; - -struct fsync_iocb { - struct file *file; - struct work_struct work; - bool datasync; - struct cred *creds; -}; - -struct poll_iocb { - struct file *file; - struct wait_queue_head *head; - __poll_t events; - bool cancelled; - bool work_scheduled; - bool work_need_resched; - struct wait_queue_entry wait; - struct work_struct work; -}; - -typedef int kiocb_cancel_fn(struct kiocb *); - -struct io_event { - __u64 data; - __u64 obj; - __s64 res; - __s64 res2; -}; - -struct aio_kiocb { - union { - struct file *ki_filp; - struct kiocb rw; - struct fsync_iocb fsync; - struct poll_iocb poll; - }; - struct kioctx *ki_ctx; - kiocb_cancel_fn *ki_cancel; - struct io_event ki_res; - struct list_head ki_list; - refcount_t ki_refcnt; - struct eventfd_ctx *ki_eventfd; -}; - -typedef __kernel_ulong_t aio_context_t; - -struct iocb { - __u64 aio_data; - __u32 aio_key; - __kernel_rwf_t aio_rw_flags; - __u16 aio_lio_opcode; - __s16 aio_reqprio; - __u32 aio_fildes; - __u64 aio_buf; - __u64 aio_nbytes; - __s64 aio_offset; - __u64 aio_reserved2; - __u32 aio_flags; - __u32 aio_resfd; -}; - -struct aio_poll_table { - struct poll_table_struct pt; - struct aio_kiocb *iocb; - bool queued; - int error; -}; - -struct aio_waiter { - struct wait_queue_entry w; - size_t min_nr; -}; - -struct __aio_sigset { - const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; - size_t sigsetsize; -}; - -struct aio_ring { - unsigned int id; - unsigned int nr; - unsigned int head; - unsigned int tail; - unsigned int magic; - unsigned int compat_features; - unsigned int incompat_features; - unsigned int header_length; - struct io_event io_events[0]; -}; - -struct fat_entry { - int entry; - union { - u8 *ent12_p[2]; - __le16 *ent16_p; - __le32 *ent32_p; - } u; - int nr_bhs; - struct buffer_head *bhs[2]; - struct inode *fat_inode; -}; - -struct rsa_mpi_key { - MPI n; - MPI e; - MPI d; - MPI p; - MPI q; - MPI dp; - MPI dq; - MPI qinv; -}; - -struct rsa_key { - const u8 *n; - const u8 *e; - const u8 *d; - const u8 *p; - const u8 *q; - const u8 *dp; - const u8 *dq; - const u8 *qinv; - size_t n_sz; - size_t e_sz; - size_t d_sz; - size_t p_sz; - size_t q_sz; - size_t dp_sz; - size_t dq_sz; - size_t qinv_sz; -}; - -struct crypto_aes_ctx { - u32 key_enc[60]; - u32 key_dec[60]; - u32 key_length; -}; - -struct badblocks_context { - sector_t start; - sector_t len; - int ack; -}; - -enum { - IOU_PBUF_RING_MMAP = 1, -}; - -struct io_provide_buf { - struct file *file; - __u64 addr; - __u32 len; - __u32 bgid; - __u32 nbufs; - __u16 bid; -}; - -struct io_buf_free { - struct hlist_node list; - void *mem; - size_t size; - int inuse; -}; - -struct io_uring_buf_reg { - __u64 ring_addr; - __u32 ring_entries; - __u16 bgid; - __u16 flags; - __u64 resv[3]; -}; - -struct io_uring_buf_status { - __u32 buf_group; - __u32 head; - __u32 resv[8]; -}; - -enum { - VP_MSIX_CONFIG_VECTOR = 0, - VP_MSIX_VQ_VECTOR = 1, -}; - -struct e1000_option___2 { - enum { - enable_option___2 = 0, - range_option___2 = 1, - list_option___2 = 2, - } type; - const char *name; - const char *err; - int def; - union { - struct { - int min; - int max; - } r; - struct { - int nr; - const struct e1000_opt_list *p; - } l; - } arg; -}; - -enum { - e1000_10_half = 0, - e1000_10_full = 1, - e1000_100_half = 2, - e1000_100_full = 3, -}; - -enum { - MEASUREMENT_READY = 1, - MEASUREMENT_ACTIVE = 2, -}; - -enum mac80211_rx_encoding_flags { - RX_ENC_FLAG_SHORTPRE = 1, - RX_ENC_FLAG_SHORT_GI = 4, - RX_ENC_FLAG_HT_GF = 8, - RX_ENC_FLAG_STBC_MASK = 48, - RX_ENC_FLAG_LDPC = 64, - RX_ENC_FLAG_BF = 128, -}; - -struct iwl_rx_mpdu_res_start { - __le16 byte_count; - __le16 reserved; -}; - -struct iwlagn_non_cfg_phy { - __le32 non_cfg_phy[8]; -}; - -struct iwl_error_resp { - __le32 error_type; - u8 cmd_id; - u8 reserved1; - __le16 bad_cmd_seq_num; - __le32 error_info; - __le64 timestamp; -} __attribute__((packed)); - -struct iwl_csa_notification { - __le16 band; - __le16 channel; - __le32 status; -}; - -struct agg_tx_status { - __le16 status; - __le16 sequence; -}; - -struct iwlagn_tx_resp { - u8 frame_count; - u8 bt_kill_count; - u8 failure_rts; - u8 failure_frame; - __le32 rate_n_flags; - __le16 wireless_media_time; - u8 pa_status; - u8 pa_integ_res_a[3]; - u8 pa_integ_res_b[3]; - u8 pa_integ_res_C[3]; - __le32 tfd_info; - __le16 seq_ctl; - __le16 byte_cnt; - u8 tlc_info; - u8 ra_tid; - __le16 frame_ctrl; - struct agg_tx_status status; -}; - -struct iwlagn_beacon_notif { - struct iwlagn_tx_resp beacon_notify_hdr; - __le32 low_tsf; - __le32 high_tsf; - __le32 ibss_mgr_status; -}; - -struct iwl_wipan_noa_descriptor { - u8 count; - __le32 duration; - __le32 interval; - __le32 starttime; -} __attribute__((packed)); - -struct iwl_wipan_noa_attribute { - u8 id; - __le16 length; - u8 index; - u8 ct_window; - struct iwl_wipan_noa_descriptor descr0; - struct iwl_wipan_noa_descriptor descr1; - u8 reserved; -} __attribute__((packed)); - -struct iwl_wipan_noa_notification { - u32 noa_active; - struct iwl_wipan_noa_attribute noa_attribute; -}; - -struct statistics_rx { - struct statistics_rx_phy ofdm; - struct statistics_rx_phy cck; - struct statistics_rx_non_phy general; - struct statistics_rx_ht_phy ofdm_ht; -}; - -struct statistics_general { - struct statistics_general_common common; - __le32 reserved2; - __le32 reserved3; -}; - -struct iwl_notif_statistics { - __le32 flag; - struct statistics_rx rx; - struct statistics_tx tx; - struct statistics_general general; -}; - -struct statistics_rx_non_phy_bt { - struct statistics_rx_non_phy common; - __le32 num_bt_kills; - __le32 reserved[2]; -}; - -struct statistics_rx_bt { - struct statistics_rx_phy ofdm; - struct statistics_rx_phy cck; - struct statistics_rx_non_phy_bt general; - struct statistics_rx_ht_phy ofdm_ht; -}; - -struct statistics_bt_activity { - __le32 hi_priority_tx_req_cnt; - __le32 hi_priority_tx_denied_cnt; - __le32 lo_priority_tx_req_cnt; - __le32 lo_priority_tx_denied_cnt; - __le32 hi_priority_rx_req_cnt; - __le32 hi_priority_rx_denied_cnt; - __le32 lo_priority_rx_req_cnt; - __le32 lo_priority_rx_denied_cnt; -}; - -struct statistics_general_bt { - struct statistics_general_common common; - struct statistics_bt_activity activity; - __le32 reserved2; - __le32 reserved3; -}; - -struct iwl_bt_notif_statistics { - __le32 flag; - struct statistics_rx_bt rx; - struct statistics_tx tx; - struct statistics_general_bt general; -}; - -struct iwl_card_state_notif { - __le32 flags; -}; - -struct iwl_missed_beacon_notif { - __le32 consecutive_missed_beacons; - __le32 total_missed_becons; - __le32 num_expected_beacons; - __le32 num_recvd_beacons; -}; - -struct usb_cdc_union_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bMasterInterface0; - __u8 bSlaveInterface0; -}; - -struct usb_cdc_country_functional_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iCountryCodeRelDate; - __le16 wCountyCode0; -}; - -struct usb_cdc_header_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdCDC; -} __attribute__((packed)); - -struct usb_cdc_acm_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; -}; - -struct usb_cdc_ether_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iMACAddress; - __le32 bmEthernetStatistics; - __le16 wMaxSegmentSize; - __le16 wNumberMCFilters; - __u8 bNumberPowerFilters; -} __attribute__((packed)); - -struct usb_cdc_call_mgmt_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; - __u8 bDataInterface; -}; - -struct usb_cdc_dmm_desc { - __u8 bFunctionLength; - __u8 bDescriptorType; - __u8 bDescriptorSubtype; - __u16 bcdVersion; - __le16 wMaxCommand; -} __attribute__((packed)); - -struct usb_cdc_mdlm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; - __u8 bGUID[16]; -} __attribute__((packed)); - -struct usb_cdc_mdlm_detail_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bGuidDescriptorType; - __u8 bDetailData[0]; -}; - -struct usb_cdc_ncm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdNcmVersion; - __u8 bmNetworkCapabilities; -} __attribute__((packed)); - -struct usb_cdc_mbim_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdMBIMVersion; - __le16 wMaxControlMessage; - __u8 bNumberFilters; - __u8 bMaxFilterSize; - __le16 wMaxSegmentSize; - __u8 bmNetworkCapabilities; -} __attribute__((packed)); - -struct usb_cdc_mbim_extended_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdMBIMExtendedVersion; - __u8 bMaxOutstandingCommandMessages; - __le16 wMTU; -} __attribute__((packed)); - -struct set_config_request { - struct usb_device *udev; - int config; - struct work_struct work; - struct list_head node; -}; - -struct api_context { - struct completion done; - int status; -}; - -struct usb_cdc_network_terminal_desc; - -struct usb_cdc_obex_desc; - -struct usb_cdc_parsed_header { - struct usb_cdc_union_desc *usb_cdc_union_desc; - struct usb_cdc_header_desc *usb_cdc_header_desc; - struct usb_cdc_call_mgmt_descriptor *usb_cdc_call_mgmt_descriptor; - struct usb_cdc_acm_descriptor *usb_cdc_acm_descriptor; - struct usb_cdc_country_functional_desc *usb_cdc_country_functional_desc; - struct usb_cdc_network_terminal_desc *usb_cdc_network_terminal_desc; - struct usb_cdc_ether_desc *usb_cdc_ether_desc; - struct usb_cdc_dmm_desc *usb_cdc_dmm_desc; - struct usb_cdc_mdlm_desc *usb_cdc_mdlm_desc; - struct usb_cdc_mdlm_detail_desc *usb_cdc_mdlm_detail_desc; - struct usb_cdc_obex_desc *usb_cdc_obex_desc; - struct usb_cdc_ncm_desc *usb_cdc_ncm_desc; - struct usb_cdc_mbim_desc *usb_cdc_mbim_desc; - struct usb_cdc_mbim_extended_desc *usb_cdc_mbim_extended_desc; - bool phonet_magic_present; -}; - -struct usb_cdc_network_terminal_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bEntityId; - __u8 iName; - __u8 bChannelIndex; - __u8 bPhysicalInterface; -}; - -struct usb_cdc_obex_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; -} __attribute__((packed)); - -struct page_list { - struct page_list *next; - struct page *page; -}; - -enum dm_io_mem_type { - DM_IO_PAGE_LIST = 0, - DM_IO_BIO = 1, - DM_IO_VMA = 2, - DM_IO_KMEM = 3, -}; - -struct dm_io_client; - -struct dm_kcopyd_throttle; - -struct dm_kcopyd_client { - struct page_list *pages; - unsigned int nr_reserved_pages; - unsigned int nr_free_pages; - unsigned int sub_job_size; - struct dm_io_client *io_client; - wait_queue_head_t destroyq; - mempool_t job_pool; - struct workqueue_struct *kcopyd_wq; - struct work_struct kcopyd_work; - struct dm_kcopyd_throttle *throttle; - atomic_t nr_jobs; - spinlock_t job_lock; - struct list_head callback_jobs; - struct list_head complete_jobs; - struct list_head io_jobs; - struct list_head pages_jobs; -}; - -struct dm_kcopyd_throttle { - unsigned int throttle; - unsigned int num_io_jobs; - unsigned int io_period; - unsigned int total_period; - unsigned int last_jiffies; -}; - -struct dm_io_region { - struct block_device *bdev; - sector_t sector; - sector_t count; -}; - -typedef void (*dm_kcopyd_notify_fn)(int, unsigned long, void *); - -struct kcopyd_job { - struct dm_kcopyd_client *kc; - struct list_head list; - unsigned int flags; - int read_err; - unsigned long write_err; - enum req_op op; - struct dm_io_region source; - unsigned int num_dests; - struct dm_io_region dests[8]; - struct page_list *pages; - dm_kcopyd_notify_fn fn; - void *context; - struct mutex lock; - atomic_t sub_jobs; - sector_t progress; - sector_t write_offset; - struct kcopyd_job *master_job; -}; - -struct dm_io_memory { - enum dm_io_mem_type type; - unsigned int offset; - union { - struct page_list *pl; - struct bio *bio; - void *vma; - void *addr; - } ptr; -}; - -typedef void (*io_notify_fn)(unsigned long, void *); - -struct dm_io_notify { - io_notify_fn fn; - void *context; -}; - -struct dm_io_request { - blk_opf_t bi_opf; - struct dm_io_memory mem; - struct dm_io_notify notify; - struct dm_io_client *client; -}; - -struct cpu_rmap { - struct kref refcount; - u16 size; - void **obj; - struct { - u16 index; - u16 dist; - } near[0]; -}; - -struct bpf_xdp_link { - struct bpf_link link; - struct net_device *dev; - int flags; -}; - -enum xps_map_type { - XPS_CPUS = 0, - XPS_RXQS = 1, - XPS_MAPS_MAX = 2, -}; - -enum qdisc_state_t { - __QDISC_STATE_SCHED = 0, - __QDISC_STATE_DEACTIVATED = 1, - __QDISC_STATE_MISSED = 2, - __QDISC_STATE_DRAINING = 3, -}; - -enum { - NAPIF_STATE_SCHED = 1, - NAPIF_STATE_MISSED = 2, - NAPIF_STATE_DISABLE = 4, - NAPIF_STATE_NPSVC = 8, - NAPIF_STATE_LISTED = 16, - NAPIF_STATE_NO_BUSY_POLL = 32, - NAPIF_STATE_IN_BUSY_POLL = 64, - NAPIF_STATE_PREFER_BUSY_POLL = 128, - NAPIF_STATE_THREADED = 256, - NAPIF_STATE_SCHED_THREADED = 512, -}; - -enum { - NAPI_F_PREFER_BUSY_POLL = 1, - NAPI_F_END_ON_RESCHED = 2, -}; - -enum netdev_offload_xstats_type { - NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, -}; - -enum bpf_xdp_mode { - XDP_MODE_SKB = 0, - XDP_MODE_DRV = 1, - XDP_MODE_HW = 2, - __MAX_XDP_MODE = 3, -}; - -enum nf_dev_hooks { - NF_NETDEV_INGRESS = 0, - NF_NETDEV_EGRESS = 1, - NF_NETDEV_NUMHOOKS = 2, -}; - -enum tcx_action_base { - TCX_NEXT = -1, - TCX_PASS = 0, - TCX_DROP = 2, - TCX_REDIRECT = 7, -}; - -enum qdisc_state2_t { - __QDISC_STATE2_RUNNING = 0, -}; - -enum { - NESTED_SYNC_IMM_BIT = 0, - NESTED_SYNC_TODO_BIT = 1, -}; - -struct netdev_adjacent { - struct net_device *dev; - netdevice_tracker dev_tracker; - bool master; - bool ignore; - u16 ref_nr; - void *private; - struct list_head list; - struct callback_head rcu; -}; - -struct dev_kfree_skb_cb { - enum skb_drop_reason reason; -}; - -struct mini_Qdisc; - -struct tcx_entry { - struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq; - struct bpf_mprog_bundle bundle; - bool miniq_active; - struct callback_head rcu; -}; - -struct mini_Qdisc { - struct tcf_proto *filter_list; - struct tcf_block *block; - struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats; - struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats; - unsigned long rcu_state; -}; - -struct tc_skb_cb { - struct qdisc_skb_cb qdisc_cb; - u32 drop_reason; - u16 zone; - u16 mru; - u8 post_ct: 1; - u8 post_ct_snat: 1; - u8 post_ct_dnat: 1; -}; - -struct netdev_net_notifier { - struct list_head list; - struct notifier_block *nb; -}; - -struct net_device_path_stack { - int num_paths; - struct net_device_path path[5]; -}; - -struct netdev_notifier_offload_xstats_rd; - -struct netdev_notifier_offload_xstats_ru; - -struct netdev_notifier_offload_xstats_info { - struct netdev_notifier_info info; - enum netdev_offload_xstats_type type; - union { - struct netdev_notifier_offload_xstats_rd *report_delta; - struct netdev_notifier_offload_xstats_ru *report_used; - }; -}; - -struct netdev_notifier_offload_xstats_rd { - struct rtnl_hw_stats64 stats; - bool used; -}; - -struct netdev_notifier_offload_xstats_ru { - bool used; -}; - -struct netdev_notifier_info_ext { - struct netdev_notifier_info info; - union { - u32 mtu; - } ext; -}; - -typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); - -struct netdev_notifier_changeupper_info { - struct netdev_notifier_info info; - struct net_device *upper_dev; - bool master; - bool linking; - void *upper_info; -}; - -struct ifslave { - __s32 slave_id; - char slave_name[16]; - __s8 link; - __s8 state; - __u32 link_failure_count; -}; - -typedef struct ifslave ifslave; - -struct ifbond { - __s32 bond_mode; - __s32 num_slaves; - __s32 miimon; -}; - -typedef struct ifbond ifbond; - -struct netdev_bonding_info { - ifslave slave; - ifbond master; -}; - -struct netdev_notifier_bonding_info { - struct netdev_notifier_info info; - struct netdev_bonding_info bonding_info; -}; - -struct netdev_notifier_changelowerstate_info { - struct netdev_notifier_info info; - void *lower_state_info; -}; - -struct rtentry { - unsigned long rt_pad1; - struct sockaddr rt_dst; - struct sockaddr rt_gateway; - struct sockaddr rt_genmask; - unsigned short rt_flags; - short rt_pad2; - unsigned long rt_pad3; - void *rt_pad4; - short rt_metric; - char __attribute__((btf_type_tag("user"))) *rt_dev; - unsigned long rt_mtu; - unsigned long rt_window; - unsigned short rt_irtt; -}; - -struct fib_result_nl { - __be32 fl_addr; - u32 fl_mark; - unsigned char fl_tos; - unsigned char fl_scope; - unsigned char tb_id_in; - unsigned char tb_id; - unsigned char prefixlen; - unsigned char nh_sel; - unsigned char type; - unsigned char scope; - int err; -}; - -enum ieee80211_pub_actioncode { - WLAN_PUB_ACTION_20_40_BSS_COEX = 0, - WLAN_PUB_ACTION_DSE_ENABLEMENT = 1, - WLAN_PUB_ACTION_DSE_DEENABLEMENT = 2, - WLAN_PUB_ACTION_DSE_REG_LOC_ANN = 3, - WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4, - WLAN_PUB_ACTION_DSE_MSMT_REQ = 5, - WLAN_PUB_ACTION_DSE_MSMT_RESP = 6, - WLAN_PUB_ACTION_MSMT_PILOT = 7, - WLAN_PUB_ACTION_DSE_PC = 8, - WLAN_PUB_ACTION_VENDOR_SPECIFIC = 9, - WLAN_PUB_ACTION_GAS_INITIAL_REQ = 10, - WLAN_PUB_ACTION_GAS_INITIAL_RESP = 11, - WLAN_PUB_ACTION_GAS_COMEBACK_REQ = 12, - WLAN_PUB_ACTION_GAS_COMEBACK_RESP = 13, - WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14, - WLAN_PUB_ACTION_LOC_TRACK_NOTI = 15, - WLAN_PUB_ACTION_QAB_REQUEST_FRAME = 16, - WLAN_PUB_ACTION_QAB_RESPONSE_FRAME = 17, - WLAN_PUB_ACTION_QMF_POLICY = 18, - WLAN_PUB_ACTION_QMF_POLICY_CHANGE = 19, - WLAN_PUB_ACTION_QLOAD_REQUEST = 20, - WLAN_PUB_ACTION_QLOAD_REPORT = 21, - WLAN_PUB_ACTION_HCCA_TXOP_ADVERT = 22, - WLAN_PUB_ACTION_HCCA_TXOP_RESPONSE = 23, - WLAN_PUB_ACTION_PUBLIC_KEY = 24, - WLAN_PUB_ACTION_CHANNEL_AVAIL_QUERY = 25, - WLAN_PUB_ACTION_CHANNEL_SCHEDULE_MGMT = 26, - WLAN_PUB_ACTION_CONTACT_VERI_SIGNAL = 27, - WLAN_PUB_ACTION_GDD_ENABLEMENT_REQ = 28, - WLAN_PUB_ACTION_GDD_ENABLEMENT_RESP = 29, - WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30, - WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31, - WLAN_PUB_ACTION_FTM_REQUEST = 32, - WLAN_PUB_ACTION_FTM_RESPONSE = 33, - WLAN_PUB_ACTION_FILS_DISCOVERY = 34, -}; - -struct ieee80211_tdls_data { - u8 da[6]; - u8 sa[6]; - __be16 ether_type; - u8 payload_type; - u8 category; - u8 action_code; - union { - struct { - u8 dialog_token; - __le16 capability; - u8 variable[0]; - } __attribute__((packed)) setup_req; - struct { - __le16 status_code; - u8 dialog_token; - __le16 capability; - u8 variable[0]; - } __attribute__((packed)) setup_resp; - struct { - __le16 status_code; - u8 dialog_token; - u8 variable[0]; - } __attribute__((packed)) setup_cfm; - struct { - __le16 reason_code; - u8 variable[0]; - } teardown; - struct { - u8 dialog_token; - u8 variable[0]; - } discover_req; - struct { - u8 target_channel; - u8 oper_class; - u8 variable[0]; - } chan_switch_req; - struct { - __le16 status_code; - u8 variable[0]; - } chan_switch_resp; - } u; -}; - -struct ieee80211_wmm_ac_param { - u8 aci_aifsn; - u8 cw; - __le16 txop_limit; -}; - -struct ieee80211_wmm_param_ie { - u8 element_id; - u8 len; - u8 oui[3]; - u8 oui_type; - u8 oui_subtype; - u8 version; - u8 qos_info; - u8 reserved; - struct ieee80211_wmm_ac_param ac[4]; -}; - -struct imc_uncore_pci_dev { - __u32 pci_id; - struct pci_driver *driver; -}; - -struct cstate_entry { - struct { - unsigned int eax; - unsigned int ecx; - } states[8]; -}; - -struct acpi_power_register { - u8 descriptor; - u16 length; - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_size; - u64 address; -} __attribute__((packed)); - -struct mwait_cpu_dead { - unsigned int control; - unsigned int status; -}; - -struct mutex_waiter { - struct list_head list; - struct task_struct *task; - struct ww_acquire_ctx *ww_ctx; - void *magic; -}; - -typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); - -typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); - -struct trace_event_raw_sys_enter { - struct trace_entry ent; - long id; - unsigned long args[6]; - char __data[0]; -}; - -struct trace_event_raw_sys_exit { - struct trace_entry ent; - long id; - long ret; - char __data[0]; -}; - -struct trace_event_data_offsets_sys_enter {}; - -struct trace_event_data_offsets_sys_exit {}; - -struct bp_slots_histogram { - atomic_t count[4]; -}; - -struct bp_cpuinfo { - unsigned int cpu_pinned; - struct bp_slots_histogram tsk_pinned; -}; - -enum bp_type_idx { - TYPE_INST = 0, - TYPE_DATA = 0, - TYPE_MAX = 1, -}; - -typedef void (*btf_trace_hugepage_set_pmd)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_hugepage_set_pud)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_hugepage_update_pmd)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_hugepage_update_pud)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_set_migration_pmd)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_remove_migration_pmd)(void *, unsigned long, unsigned long); - -struct trace_event_raw_hugepage_set { - struct trace_entry ent; - unsigned long addr; - unsigned long pte; - char __data[0]; -}; - -struct trace_event_raw_hugepage_update { - struct trace_entry ent; - unsigned long addr; - unsigned long pte; - unsigned long clr; - unsigned long set; - char __data[0]; -}; - -struct trace_event_raw_migration_pmd { - struct trace_entry ent; - unsigned long addr; - unsigned long pmd; - char __data[0]; -}; - -struct thpsize { - struct kobject kobj; - struct list_head node; - int order; -}; - -struct shared_policy { - struct rb_root root; - rwlock_t lock; -}; - -struct shmem_inode_info { - spinlock_t lock; - unsigned int seals; - unsigned long flags; - unsigned long alloced; - unsigned long swapped; - union { - struct offset_ctx dir_offsets; - struct { - struct list_head shrinklist; - struct list_head swaplist; - }; - }; - struct timespec64 i_crtime; - struct shared_policy policy; - struct simple_xattrs xattrs; - unsigned long fallocend; - unsigned int fsflags; - atomic_t stop_eviction; - struct inode vfs_inode; -}; - -struct trace_event_data_offsets_hugepage_set {}; - -struct trace_event_data_offsets_hugepage_update {}; - -struct trace_event_data_offsets_migration_pmd {}; - -struct tree_mod_root { - u64 logical; - u8 level; -}; - -struct tree_mod_elem { - struct rb_node node; - u64 logical; - u64 seq; - enum btrfs_mod_log_op op; - int slot; - u64 generation; - struct btrfs_disk_key key; - u64 blockptr; - struct { - int dst_slot; - int nr_items; - } move; - struct tree_mod_root old_root; -}; - -struct rsa_asn1_template { - const char *name; - const u8 *data; - size_t size; -}; - -struct akcipher_instance { - void (*free)(struct akcipher_instance *); - union { - struct { - char head[72]; - struct crypto_instance base; - } s; - struct akcipher_alg alg; - }; -}; - -struct crypto_akcipher_spawn { - struct crypto_spawn base; -}; - -struct pkcs1pad_inst_ctx { - struct crypto_akcipher_spawn spawn; - const struct rsa_asn1_template *digest_info; -}; - -struct pkcs1pad_ctx { - struct crypto_akcipher *child; - unsigned int key_size; -}; - -struct pkcs1pad_request { - struct scatterlist in_sg[2]; - struct scatterlist out_sg[1]; - uint8_t *in_buf; - uint8_t *out_buf; - struct akcipher_request child_req; -}; - -struct disk_events { - struct list_head node; - struct gendisk *disk; - spinlock_t lock; - struct mutex block_mutex; - int block; - unsigned int pending; - unsigned int clearing; - long poll_msecs; - struct delayed_work dwork; -}; - -enum { - DISK_EVENT_FLAG_POLL = 1, - DISK_EVENT_FLAG_UEVENT = 2, - DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, -}; - -struct io_rsrc_update { - struct file *file; - u64 arg; - u32 nr_args; - u32 offset; -}; - -struct io_uring_rsrc_update2 { - __u32 offset; - __u32 resv; - __u64 data; - __u64 tags; - __u32 nr; - __u32 resv2; -}; - -struct io_uring_rsrc_register { - __u32 nr; - __u32 flags; - __u64 resv2; - __u64 data; - __u64 tags; -}; - -enum acpi_ec_event_state { - EC_EVENT_READY = 0, - EC_EVENT_IN_PROGRESS = 1, - EC_EVENT_COMPLETE = 2, -}; - -struct transaction; - -struct acpi_ec { - acpi_handle handle; - acpi_handle address_space_handler_holder; - int gpe; - int irq; - unsigned long command_addr; - unsigned long data_addr; - bool global_lock; - unsigned long flags; - unsigned long reference_count; - struct mutex mutex; - wait_queue_head_t wait; - struct list_head list; - struct transaction *curr; - spinlock_t lock; - struct work_struct work; - unsigned long timestamp; - enum acpi_ec_event_state event_state; - unsigned int events_to_process; - unsigned int events_in_progress; - unsigned int queries_in_progress; - bool busy_polling; - unsigned int polling_guard; -}; - -struct transaction { - const u8 *wdata; - u8 *rdata; - unsigned short irq_count; - u8 command; - u8 wi; - u8 ri; - u8 wlen; - u8 rlen; - u8 flags; -}; - -enum ec_command { - ACPI_EC_COMMAND_READ = 128, - ACPI_EC_COMMAND_WRITE = 129, - ACPI_EC_BURST_ENABLE = 130, - ACPI_EC_BURST_DISABLE = 131, - ACPI_EC_COMMAND_QUERY = 132, -}; - -enum { - EC_FLAGS_QUERY_ENABLED = 0, - EC_FLAGS_EVENT_HANDLER_INSTALLED = 1, - EC_FLAGS_EC_HANDLER_INSTALLED = 2, - EC_FLAGS_EC_REG_CALLED = 3, - EC_FLAGS_QUERY_METHODS_INSTALLED = 4, - EC_FLAGS_STARTED = 5, - EC_FLAGS_STOPPED = 6, - EC_FLAGS_EVENTS_MASKED = 7, -}; - -typedef int (*acpi_ec_query_func)(void *); - -struct acpi_ec_query_handler { - struct list_head node; - acpi_ec_query_func func; - acpi_handle handle; - void *data; - u8 query_bit; - struct kref kref; -}; - -struct acpi_ec_query { - struct transaction transaction; - struct work_struct work; - struct acpi_ec_query_handler *handler; - struct acpi_ec *ec; -}; - -struct acpi_table_ecdt { - struct acpi_table_header header; - struct acpi_generic_address control; - struct acpi_generic_address data; - u32 uid; - u8 gpe; - u8 id[0]; -} __attribute__((packed)); - -typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); - -struct acpi_simple_repair_info { - char name[4]; - u32 unexpected_btypes; - u32 package_index; - acpi_object_converter object_converter; -}; - -struct clk_gate { - struct clk_hw hw; - void *reg; - u8 bit_idx; - u8 flags; - spinlock_t *lock; -}; - -struct builtin_fw { - char *name; - void *data; - unsigned long size; -}; - -struct node_attr { - struct device_attribute attr; - enum node_states state; -}; - -enum access_coordinate_class { - ACCESS_COORDINATE_LOCAL = 0, - ACCESS_COORDINATE_CPU = 1, - ACCESS_COORDINATE_MAX = 2, -}; - -struct node_access_nodes { - struct device dev; - struct list_head list_node; - unsigned int access; -}; - -struct my_u { - __le64 a; - __le64 b; -}; - -struct iwl_mvm_iface_iterator_data { - struct ieee80211_vif *ignore_vif; - int idx; - struct iwl_mvm_phy_ctxt *phyctxt; - u16 ids[3]; - u16 colors[3]; -}; - -struct iwl_binding_cmd { - __le32 id_and_color; - __le32 action; - __le32 macs[3]; - __le32 phy; - __le32 lmac_id; -}; - -struct usb_device_driver { - const char *name; - bool (*match)(struct usb_device *); - int (*probe)(struct usb_device *); - void (*disconnect)(struct usb_device *); - int (*suspend)(struct usb_device *, pm_message_t); - int (*resume)(struct usb_device *, pm_message_t); - int (*choose_configuration)(struct usb_device *); - const struct attribute_group **dev_groups; - struct device_driver driver; - const struct usb_device_id *id_table; - unsigned int supports_autosuspend: 1; - unsigned int generic_subclass: 1; -}; - -enum rtl_version { - RTL_VER_UNKNOWN = 0, - RTL_VER_01 = 1, - RTL_VER_02 = 2, - RTL_VER_03 = 3, - RTL_VER_04 = 4, - RTL_VER_05 = 5, - RTL_VER_06 = 6, - RTL_VER_07 = 7, - RTL_VER_08 = 8, - RTL_VER_09 = 9, - RTL_TEST_01 = 10, - RTL_VER_10 = 11, - RTL_VER_11 = 12, - RTL_VER_12 = 13, - RTL_VER_13 = 14, - RTL_VER_14 = 15, - RTL_VER_15 = 16, - RTL_VER_MAX = 17, -}; - -enum rtl8152_flags { - RTL8152_INACCESSIBLE = 0, - RTL8152_SET_RX_MODE = 1, - WORK_ENABLE = 2, - RTL8152_LINK_CHG = 3, - SELECTIVE_SUSPEND = 4, - PHY_RESET = 5, - SCHEDULE_TASKLET = 6, - GREEN_ETHERNET = 7, - RX_EPROTO = 8, - IN_PRE_RESET = 9, - PROBED_WITH_NO_ERRORS = 10, - PROBE_SHOULD_RETRY = 11, -}; - -enum rtl_register_content___2 { - _2500bps = 1024, - _1250bps = 512, - _500bps = 256, - _tx_flow = 64, - _rx_flow = 32, - _1000bps = 16, - _100bps___2 = 8, - _10bps___2 = 4, - LINK_STATUS = 2, - FULL_DUP = 1, -}; - -enum rtl_fw_type { - RTL_FW_END = 0, - RTL_FW_PLA = 1, - RTL_FW_USB = 2, - RTL_FW_PHY_START = 3, - RTL_FW_PHY_STOP = 4, - RTL_FW_PHY_NC = 5, - RTL_FW_PHY_FIXUP = 6, - RTL_FW_PHY_UNION_NC = 7, - RTL_FW_PHY_UNION_NC1 = 8, - RTL_FW_PHY_UNION_NC2 = 9, - RTL_FW_PHY_UNION_UC2 = 10, - RTL_FW_PHY_UNION_UC = 11, - RTL_FW_PHY_UNION_MISC = 12, - RTL_FW_PHY_SPEED_UP = 13, - RTL_FW_PHY_VER = 14, -}; - -enum rtl8152_fw_fixup_cmd { - FW_FIXUP_AND = 0, - FW_FIXUP_OR = 1, - FW_FIXUP_NOT = 2, - FW_FIXUP_XOR = 3, -}; - -enum spd_duplex { - NWAY_10M_HALF = 0, - NWAY_10M_FULL = 1, - NWAY_100M_HALF = 2, - NWAY_100M_FULL = 3, - NWAY_1000M_FULL = 4, - FORCE_10M_HALF = 5, - FORCE_10M_FULL = 6, - FORCE_100M_HALF = 7, - FORCE_100M_FULL = 8, - FORCE_1000M_FULL = 9, - NWAY_2500M_FULL = 10, -}; - -enum rtl8152_fw_flags { - FW_FLAGS_USB = 0, - FW_FLAGS_PLA = 1, - FW_FLAGS_START = 2, - FW_FLAGS_STOP = 3, - FW_FLAGS_NC = 4, - FW_FLAGS_NC1 = 5, - FW_FLAGS_NC2 = 6, - FW_FLAGS_UC2 = 7, - FW_FLAGS_UC = 8, - FW_FLAGS_SPEED_UP = 9, - FW_FLAGS_VER = 10, -}; - -enum tx_csum_stat { - TX_CSUM_SUCCESS = 0, - TX_CSUM_TSO = 1, - TX_CSUM_NONE = 2, -}; - -struct r8152; - -struct rx_agg { - struct list_head list; - struct list_head info_list; - struct urb *urb; - struct r8152 *context; - struct page *page; - void *buffer; -}; - -struct tx_agg { - struct list_head list; - struct urb *urb; - struct r8152 *context; - void *buffer; - void *head; - u32 skb_num; - u32 skb_len; -}; - -struct rtl_ops { - void (*init)(struct r8152 *); - int (*enable)(struct r8152 *); - void (*disable)(struct r8152 *); - void (*up)(struct r8152 *); - void (*down)(struct r8152 *); - void (*unload)(struct r8152 *); - int (*eee_get)(struct r8152 *, struct ethtool_keee *); - int (*eee_set)(struct r8152 *, struct ethtool_keee *); - bool (*in_nway)(struct r8152 *); - void (*hw_phy_cfg)(struct r8152 *); - void (*autosuspend_en)(struct r8152 *, bool); - void (*change_mtu)(struct r8152 *); -}; - -struct ups_info { - u32 r_tune: 1; - u32 _10m_ckdiv: 1; - u32 _250m_ckdiv: 1; - u32 aldps: 1; - u32 lite_mode: 2; - u32 speed_duplex: 4; - u32 eee: 1; - u32 eee_lite: 1; - u32 eee_ckdiv: 1; - u32 eee_plloff_100: 1; - u32 eee_plloff_giga: 1; - u32 eee_cmod_lv: 1; - u32 green: 1; - u32 flow_control: 1; - u32 ctap_short_off: 1; -}; - -struct rtl_fw___2 { - const char *fw_name; - const struct firmware *fw; - char version[32]; - int (*pre_fw)(struct r8152 *); - int (*post_fw)(struct r8152 *); - bool retry; -}; - -struct r8152 { - unsigned long flags; - struct usb_device *udev; - struct napi_struct napi; - struct usb_interface *intf; - struct net_device *netdev; - struct urb *intr_urb; - struct tx_agg tx_info[4]; - struct list_head rx_info; - struct list_head rx_used; - struct list_head rx_done; - struct list_head tx_free; - struct sk_buff_head tx_queue; - struct sk_buff_head rx_queue; - spinlock_t rx_lock; - spinlock_t tx_lock; - struct delayed_work schedule; - struct delayed_work hw_phy_work; - struct mii_if_info mii; - struct mutex control; - struct notifier_block pm_notifier; - struct tasklet_struct tx_tl; - struct rtl_ops rtl_ops; - struct ups_info ups_info; - struct rtl_fw___2 rtl_fw; - atomic_t rx_count; - bool eee_en; - int intr_interval; - u32 saved_wolopts; - u32 msg_enable; - u32 tx_qlen; - u32 coalesce; - u32 advertising; - u32 rx_buf_sz; - u32 rx_copybreak; - u32 rx_pending; - u32 fc_pause_on; - u32 fc_pause_off; - unsigned int pipe_in; - unsigned int pipe_out; - unsigned int pipe_intr; - unsigned int pipe_ctrl_in; - unsigned int pipe_ctrl_out; - u32 support_2500full: 1; - u32 lenovo_macpassthru: 1; - u32 dell_tb_rx_agg_bug: 1; - u16 ocp_base; - u16 speed; - u16 eee_adv; - u8 *intr_buff; - u8 version; - u8 duplex; - u8 autoneg; - unsigned int reg_access_reset_count; -}; - -struct fw_block { - __le32 type; - __le32 length; -}; - -struct fw_header { - u8 checksum[32]; - char version[32]; - struct fw_block blocks[0]; -}; - -struct fw_mac { - struct fw_block blk_hdr; - __le16 fw_offset; - __le16 fw_reg; - __le16 bp_ba_addr; - __le16 bp_ba_value; - __le16 bp_en_addr; - __le16 bp_en_value; - __le16 bp_start; - __le16 bp_num; - __le16 bp[16]; - __le32 reserved; - __le16 fw_ver_reg; - u8 fw_ver_data; - char info[0]; -} __attribute__((packed)); - -struct fw_phy_patch_key { - struct fw_block blk_hdr; - __le16 key_reg; - __le16 key_data; - __le32 reserved; -}; - -struct fw_phy_nc { - struct fw_block blk_hdr; - __le16 fw_offset; - __le16 fw_reg; - __le16 ba_reg; - __le16 ba_data; - __le16 patch_en_addr; - __le16 patch_en_value; - __le16 mode_reg; - __le16 mode_pre; - __le16 mode_post; - __le16 reserved; - __le16 bp_start; - __le16 bp_num; - __le16 bp[4]; - char info[0]; -}; - -struct fw_phy_set { - __le16 addr; - __le16 data; -}; - -struct fw_phy_ver { - struct fw_block blk_hdr; - struct fw_phy_set ver; - __le32 reserved; -}; - -struct fw_phy_union { - struct fw_block blk_hdr; - __le16 fw_offset; - __le16 fw_reg; - struct fw_phy_set pre_set[2]; - struct fw_phy_set bp[8]; - struct fw_phy_set bp_en; - u8 pre_num; - u8 bp_num; - char info[0]; -} __attribute__((packed)); - -struct fw_phy_fixup { - struct fw_block blk_hdr; - struct fw_phy_set setting; - __le16 bit_cmd; - __le16 reserved; -}; - -struct fw_phy_speed_up { - struct fw_block blk_hdr; - __le16 fw_offset; - __le16 version; - __le16 fw_reg; - __le16 reserved; - char info[0]; -}; - -struct tx_desc { - __le32 opts1; - __le32 opts2; -}; - -struct rx_desc { - __le32 opts1; - __le32 opts2; - __le32 opts3; - __le32 opts4; - __le32 opts5; - __le32 opts6; -}; - -struct tally_counter { - __le64 tx_packets; - __le64 rx_packets; - __le64 tx_errors; - __le32 rx_errors; - __le16 rx_missed; - __le16 align_errors; - __le32 tx_one_collision; - __le32 tx_multi_collision; - __le64 rx_unicast; - __le64 rx_broadcast; - __le32 rx_multicast; - __le16 tx_aborted; - __le16 tx_underrun; -}; - -typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); - -enum { - ETHTOOL_A_HEADER_UNSPEC = 0, - ETHTOOL_A_HEADER_DEV_INDEX = 1, - ETHTOOL_A_HEADER_DEV_NAME = 2, - ETHTOOL_A_HEADER_FLAGS = 3, - __ETHTOOL_A_HEADER_CNT = 4, - ETHTOOL_A_HEADER_MAX = 3, -}; - -enum ethtool_multicast_groups { - ETHNL_MCGRP_MONITOR = 0, -}; - -struct ethnl_dump_ctx { - const struct ethnl_request_ops *ops; - struct ethnl_req_info *req_info; - struct ethnl_reply_data *reply_data; - unsigned long pos_ifindex; -}; - -enum nfnetlink_groups { - NFNLGRP_NONE = 0, - NFNLGRP_CONNTRACK_NEW = 1, - NFNLGRP_CONNTRACK_UPDATE = 2, - NFNLGRP_CONNTRACK_DESTROY = 3, - NFNLGRP_CONNTRACK_EXP_NEW = 4, - NFNLGRP_CONNTRACK_EXP_UPDATE = 5, - NFNLGRP_CONNTRACK_EXP_DESTROY = 6, - NFNLGRP_NFTABLES = 7, - NFNLGRP_ACCT_QUOTA = 8, - NFNLGRP_NFTRACE = 9, - __NFNLGRP_MAX = 10, -}; - -enum nf_tables_msg_types { - NFT_MSG_NEWTABLE = 0, - NFT_MSG_GETTABLE = 1, - NFT_MSG_DELTABLE = 2, - NFT_MSG_NEWCHAIN = 3, - NFT_MSG_GETCHAIN = 4, - NFT_MSG_DELCHAIN = 5, - NFT_MSG_NEWRULE = 6, - NFT_MSG_GETRULE = 7, - NFT_MSG_DELRULE = 8, - NFT_MSG_NEWSET = 9, - NFT_MSG_GETSET = 10, - NFT_MSG_DELSET = 11, - NFT_MSG_NEWSETELEM = 12, - NFT_MSG_GETSETELEM = 13, - NFT_MSG_DELSETELEM = 14, - NFT_MSG_NEWGEN = 15, - NFT_MSG_GETGEN = 16, - NFT_MSG_TRACE = 17, - NFT_MSG_NEWOBJ = 18, - NFT_MSG_GETOBJ = 19, - NFT_MSG_DELOBJ = 20, - NFT_MSG_GETOBJ_RESET = 21, - NFT_MSG_NEWFLOWTABLE = 22, - NFT_MSG_GETFLOWTABLE = 23, - NFT_MSG_DELFLOWTABLE = 24, - NFT_MSG_GETRULE_RESET = 25, - NFT_MSG_DESTROYTABLE = 26, - NFT_MSG_DESTROYCHAIN = 27, - NFT_MSG_DESTROYRULE = 28, - NFT_MSG_DESTROYSET = 29, - NFT_MSG_DESTROYSETELEM = 30, - NFT_MSG_DESTROYOBJ = 31, - NFT_MSG_DESTROYFLOWTABLE = 32, - NFT_MSG_GETSETELEM_RESET = 33, - NFT_MSG_MAX = 34, -}; - -enum nft_trace_attributes { - NFTA_TRACE_UNSPEC = 0, - NFTA_TRACE_TABLE = 1, - NFTA_TRACE_CHAIN = 2, - NFTA_TRACE_RULE_HANDLE = 3, - NFTA_TRACE_TYPE = 4, - NFTA_TRACE_VERDICT = 5, - NFTA_TRACE_ID = 6, - NFTA_TRACE_LL_HEADER = 7, - NFTA_TRACE_NETWORK_HEADER = 8, - NFTA_TRACE_TRANSPORT_HEADER = 9, - NFTA_TRACE_IIF = 10, - NFTA_TRACE_IIFTYPE = 11, - NFTA_TRACE_OIF = 12, - NFTA_TRACE_OIFTYPE = 13, - NFTA_TRACE_MARK = 14, - NFTA_TRACE_NFPROTO = 15, - NFTA_TRACE_POLICY = 16, - NFTA_TRACE_PAD = 17, - __NFTA_TRACE_MAX = 18, -}; - -struct nft_rule_dp_last { - struct nft_rule_dp end; - struct callback_head h; - struct nft_rule_blob *blob; - const struct nft_chain *chain; -}; - -struct ip6_tnl_encap_ops { - size_t (*encap_hlen)(struct ip_tunnel_encap *); - int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi6 *); - int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); -}; - -struct lwtunnel_encap_ops { - int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *); - void (*destroy_state)(struct lwtunnel_state *); - int (*output)(struct net *, struct sock *, struct sk_buff *); - int (*input)(struct sk_buff *); - int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *); - int (*get_encap_size)(struct lwtunnel_state *); - int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *); - int (*xmit)(struct sk_buff *); - struct module *owner; -}; - -enum lwtunnel_ip_t { - LWTUNNEL_IP_UNSPEC = 0, - LWTUNNEL_IP_ID = 1, - LWTUNNEL_IP_DST = 2, - LWTUNNEL_IP_SRC = 3, - LWTUNNEL_IP_TTL = 4, - LWTUNNEL_IP_TOS = 5, - LWTUNNEL_IP_FLAGS = 6, - LWTUNNEL_IP_PAD = 7, - LWTUNNEL_IP_OPTS = 8, - __LWTUNNEL_IP_MAX = 9, -}; - -enum { - LWTUNNEL_IP_OPTS_UNSPEC = 0, - LWTUNNEL_IP_OPTS_GENEVE = 1, - LWTUNNEL_IP_OPTS_VXLAN = 2, - LWTUNNEL_IP_OPTS_ERSPAN = 3, - __LWTUNNEL_IP_OPTS_MAX = 4, -}; - -enum { - LWTUNNEL_IP_OPT_GENEVE_UNSPEC = 0, - LWTUNNEL_IP_OPT_GENEVE_CLASS = 1, - LWTUNNEL_IP_OPT_GENEVE_TYPE = 2, - LWTUNNEL_IP_OPT_GENEVE_DATA = 3, - __LWTUNNEL_IP_OPT_GENEVE_MAX = 4, -}; - -enum { - LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, - LWTUNNEL_IP_OPT_VXLAN_GBP = 1, - __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, -}; - -enum { - LWTUNNEL_IP_OPT_ERSPAN_UNSPEC = 0, - LWTUNNEL_IP_OPT_ERSPAN_VER = 1, - LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2, - LWTUNNEL_IP_OPT_ERSPAN_DIR = 3, - LWTUNNEL_IP_OPT_ERSPAN_HWID = 4, - __LWTUNNEL_IP_OPT_ERSPAN_MAX = 5, -}; - -enum lwtunnel_ip6_t { - LWTUNNEL_IP6_UNSPEC = 0, - LWTUNNEL_IP6_ID = 1, - LWTUNNEL_IP6_DST = 2, - LWTUNNEL_IP6_SRC = 3, - LWTUNNEL_IP6_HOPLIMIT = 4, - LWTUNNEL_IP6_TC = 5, - LWTUNNEL_IP6_FLAGS = 6, - LWTUNNEL_IP6_PAD = 7, - LWTUNNEL_IP6_OPTS = 8, - __LWTUNNEL_IP6_MAX = 9, -}; - -enum { - IEEE80211_RX_MSG = 1, - IEEE80211_TX_STATUS_MSG = 2, -}; - -enum monitor_flags { - MONITOR_FLAG_CHANGED = 1, - MONITOR_FLAG_FCSFAIL = 2, - MONITOR_FLAG_PLCPFAIL = 4, - MONITOR_FLAG_CONTROL = 8, - MONITOR_FLAG_OTHER_BSS = 16, - MONITOR_FLAG_COOK_FRAMES = 32, - MONITOR_FLAG_ACTIVE = 64, -}; - -enum mac80211_tx_status_flags { - IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = 1, -}; - -enum ieee80211_radiotap_presence { - IEEE80211_RADIOTAP_TSFT = 0, - IEEE80211_RADIOTAP_FLAGS = 1, - IEEE80211_RADIOTAP_RATE = 2, - IEEE80211_RADIOTAP_CHANNEL = 3, - IEEE80211_RADIOTAP_FHSS = 4, - IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5, - IEEE80211_RADIOTAP_DBM_ANTNOISE = 6, - IEEE80211_RADIOTAP_LOCK_QUALITY = 7, - IEEE80211_RADIOTAP_TX_ATTENUATION = 8, - IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9, - IEEE80211_RADIOTAP_DBM_TX_POWER = 10, - IEEE80211_RADIOTAP_ANTENNA = 11, - IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12, - IEEE80211_RADIOTAP_DB_ANTNOISE = 13, - IEEE80211_RADIOTAP_RX_FLAGS = 14, - IEEE80211_RADIOTAP_TX_FLAGS = 15, - IEEE80211_RADIOTAP_RTS_RETRIES = 16, - IEEE80211_RADIOTAP_DATA_RETRIES = 17, - IEEE80211_RADIOTAP_MCS = 19, - IEEE80211_RADIOTAP_AMPDU_STATUS = 20, - IEEE80211_RADIOTAP_VHT = 21, - IEEE80211_RADIOTAP_TIMESTAMP = 22, - IEEE80211_RADIOTAP_HE = 23, - IEEE80211_RADIOTAP_HE_MU = 24, - IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26, - IEEE80211_RADIOTAP_LSIG = 27, - IEEE80211_RADIOTAP_TLV = 28, - IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29, - IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30, - IEEE80211_RADIOTAP_EXT = 31, - IEEE80211_RADIOTAP_EHT_USIG = 33, - IEEE80211_RADIOTAP_EHT = 34, -}; - -enum ieee80211_radiotap_tx_flags { - IEEE80211_RADIOTAP_F_TX_FAIL = 1, - IEEE80211_RADIOTAP_F_TX_CTS = 2, - IEEE80211_RADIOTAP_F_TX_RTS = 4, - IEEE80211_RADIOTAP_F_TX_NOACK = 8, - IEEE80211_RADIOTAP_F_TX_NOSEQNO = 16, - IEEE80211_RADIOTAP_F_TX_ORDER = 32, -}; - -enum ieee80211_radiotap_mcs_flags { - IEEE80211_RADIOTAP_MCS_BW_MASK = 3, - IEEE80211_RADIOTAP_MCS_BW_20 = 0, - IEEE80211_RADIOTAP_MCS_BW_40 = 1, - IEEE80211_RADIOTAP_MCS_BW_20L = 2, - IEEE80211_RADIOTAP_MCS_BW_20U = 3, - IEEE80211_RADIOTAP_MCS_SGI = 4, - IEEE80211_RADIOTAP_MCS_FMT_GF = 8, - IEEE80211_RADIOTAP_MCS_FEC_LDPC = 16, - IEEE80211_RADIOTAP_MCS_STBC_MASK = 96, - IEEE80211_RADIOTAP_MCS_STBC_1 = 1, - IEEE80211_RADIOTAP_MCS_STBC_2 = 2, - IEEE80211_RADIOTAP_MCS_STBC_3 = 3, - IEEE80211_RADIOTAP_MCS_STBC_SHIFT = 5, -}; - -enum ieee80211_radiotap_vht_flags { - IEEE80211_RADIOTAP_VHT_FLAG_STBC = 1, - IEEE80211_RADIOTAP_VHT_FLAG_TXOP_PS_NA = 2, - IEEE80211_RADIOTAP_VHT_FLAG_SGI = 4, - IEEE80211_RADIOTAP_VHT_FLAG_SGI_NSYM_M10_9 = 8, - IEEE80211_RADIOTAP_VHT_FLAG_LDPC_EXTRA_OFDM_SYM = 16, - IEEE80211_RADIOTAP_VHT_FLAG_BEAMFORMED = 32, -}; - -enum ieee80211_radiotap_he_bits { - IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MASK = 3, - IEEE80211_RADIOTAP_HE_DATA1_FORMAT_SU = 0, - IEEE80211_RADIOTAP_HE_DATA1_FORMAT_EXT_SU = 1, - IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MU = 2, - IEEE80211_RADIOTAP_HE_DATA1_FORMAT_TRIG = 3, - IEEE80211_RADIOTAP_HE_DATA1_BSS_COLOR_KNOWN = 4, - IEEE80211_RADIOTAP_HE_DATA1_BEAM_CHANGE_KNOWN = 8, - IEEE80211_RADIOTAP_HE_DATA1_UL_DL_KNOWN = 16, - IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN = 32, - IEEE80211_RADIOTAP_HE_DATA1_DATA_DCM_KNOWN = 64, - IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN = 128, - IEEE80211_RADIOTAP_HE_DATA1_LDPC_XSYMSEG_KNOWN = 256, - IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN = 512, - IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN = 1024, - IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN = 2048, - IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN = 4096, - IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN = 8192, - IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN = 16384, - IEEE80211_RADIOTAP_HE_DATA1_DOPPLER_KNOWN = 32768, - IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_KNOWN = 1, - IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN = 2, - IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN = 4, - IEEE80211_RADIOTAP_HE_DATA2_PRE_FEC_PAD_KNOWN = 8, - IEEE80211_RADIOTAP_HE_DATA2_TXBF_KNOWN = 16, - IEEE80211_RADIOTAP_HE_DATA2_PE_DISAMBIG_KNOWN = 32, - IEEE80211_RADIOTAP_HE_DATA2_TXOP_KNOWN = 64, - IEEE80211_RADIOTAP_HE_DATA2_MIDAMBLE_KNOWN = 128, - IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET = 16128, - IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET_KNOWN = 16384, - IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_SEC = 32768, - IEEE80211_RADIOTAP_HE_DATA3_BSS_COLOR = 63, - IEEE80211_RADIOTAP_HE_DATA3_BEAM_CHANGE = 64, - IEEE80211_RADIOTAP_HE_DATA3_UL_DL = 128, - IEEE80211_RADIOTAP_HE_DATA3_DATA_MCS = 3840, - IEEE80211_RADIOTAP_HE_DATA3_DATA_DCM = 4096, - IEEE80211_RADIOTAP_HE_DATA3_CODING = 8192, - IEEE80211_RADIOTAP_HE_DATA3_LDPC_XSYMSEG = 16384, - IEEE80211_RADIOTAP_HE_DATA3_STBC = 32768, - IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE = 15, - IEEE80211_RADIOTAP_HE_DATA4_MU_STA_ID = 32752, - IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1 = 15, - IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2 = 240, - IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3 = 3840, - IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4 = 61440, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC = 15, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_20MHZ = 0, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_40MHZ = 1, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_80MHZ = 2, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_160MHZ = 3, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_26T = 4, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_52T = 5, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_106T = 6, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_242T = 7, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_484T = 8, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_996T = 9, - IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_2x996T = 10, - IEEE80211_RADIOTAP_HE_DATA5_GI = 48, - IEEE80211_RADIOTAP_HE_DATA5_GI_0_8 = 0, - IEEE80211_RADIOTAP_HE_DATA5_GI_1_6 = 1, - IEEE80211_RADIOTAP_HE_DATA5_GI_3_2 = 2, - IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE = 192, - IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_UNKNOWN = 0, - IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_1X = 1, - IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_2X = 2, - IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_4X = 3, - IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS = 1792, - IEEE80211_RADIOTAP_HE_DATA5_PRE_FEC_PAD = 12288, - IEEE80211_RADIOTAP_HE_DATA5_TXBF = 16384, - IEEE80211_RADIOTAP_HE_DATA5_PE_DISAMBIG = 32768, - IEEE80211_RADIOTAP_HE_DATA6_NSTS = 15, - IEEE80211_RADIOTAP_HE_DATA6_DOPPLER = 16, - IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_KNOWN = 32, - IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW = 192, - IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_20MHZ = 0, - IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_40MHZ = 1, - IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_80MHZ = 2, - IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_160MHZ = 3, - IEEE80211_RADIOTAP_HE_DATA6_TXOP = 32512, - IEEE80211_RADIOTAP_HE_DATA6_MIDAMBLE_PDCTY = 32768, -}; - -enum ieee80211_sta_flags { - IEEE80211_STA_CONNECTION_POLL = 2, - IEEE80211_STA_CONTROL_PORT = 4, - IEEE80211_STA_MFP_ENABLED = 64, - IEEE80211_STA_UAPSD_ENABLED = 128, - IEEE80211_STA_NULLFUNC_ACKED = 256, - IEEE80211_STA_ENABLE_RRM = 32768, -}; - -struct ieee80211_radiotap_he { - __le16 data1; - __le16 data2; - __le16 data3; - __le16 data4; - __le16 data5; - __le16 data6; -}; - -struct ieee80211_radiotap_header { - uint8_t it_version; - uint8_t it_pad; - __le16 it_len; - __le32 it_present; - __le32 it_optional[0]; -}; - -struct cfg80211_tx_status { - u64 cookie; - u64 tx_tstamp; - u64 ack_tstamp; - const u8 *buf; - size_t len; - bool ack; -}; - -enum uncore_access_type { - UNCORE_ACCESS_MSR = 0, - UNCORE_ACCESS_MMIO = 1, - UNCORE_ACCESS_PCI = 2, - UNCORE_ACCESS_MAX = 3, -}; - -enum { - SNBEP_PCI_QPI_PORT0_FILTER = 0, - SNBEP_PCI_QPI_PORT1_FILTER = 1, - BDX_PCI_QPI_PORT2_FILTER = 2, -}; - -enum { - IIO_TOPOLOGY_TYPE = 0, - UPI_TOPOLOGY_TYPE = 1, - TOPOLOGY_MAX = 2, -}; - -enum allow_write_msrs { - MSR_WRITES_ON = 0, - MSR_WRITES_OFF = 1, - MSR_WRITES_DEFAULT = 2, -}; - -enum { - MAX_IORES_LEVEL = 5, -}; - -struct resource_constraint { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t (*alignf)(void *, const struct resource *, resource_size_t, resource_size_t); - void *alignf_data; -}; - -struct region_devres { - struct resource *parent; - resource_size_t start; - resource_size_t n; -}; - -typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); - -typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); - -typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); - -typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); - -typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); - -typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); - -typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); - -typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); - -typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); - -typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); - -typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); - -typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); - -typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); - -typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); - -typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); - -typedef void (*btf_trace_pm_qos_add_request)(void *, s32); - -typedef void (*btf_trace_pm_qos_update_request)(void *, s32); - -typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); - -typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); - -typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); - -typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); - -typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); - -typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); - -typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); - -struct trace_event_raw_cpu { - struct trace_entry ent; - u32 state; - u32 cpu_id; - char __data[0]; -}; - -struct trace_event_raw_cpu_idle_miss { - struct trace_entry ent; - u32 cpu_id; - u32 state; - bool below; - char __data[0]; -}; - -struct trace_event_raw_powernv_throttle { - struct trace_entry ent; - int chip_id; - u32 __data_loc_reason; - int pmax; - char __data[0]; -}; - -struct trace_event_raw_pstate_sample { - struct trace_entry ent; - u32 core_busy; - u32 scaled_busy; - u32 from; - u32 to; - u64 mperf; - u64 aperf; - u64 tsc; - u32 freq; - u32 io_boost; - char __data[0]; -}; - -struct trace_event_raw_cpu_frequency_limits { - struct trace_entry ent; - u32 min_freq; - u32 max_freq; - u32 cpu_id; - char __data[0]; -}; - -struct trace_event_raw_device_pm_callback_start { - struct trace_entry ent; - u32 __data_loc_device; - u32 __data_loc_driver; - u32 __data_loc_parent; - u32 __data_loc_pm_ops; - int event; - char __data[0]; -}; - -struct trace_event_raw_device_pm_callback_end { - struct trace_entry ent; - u32 __data_loc_device; - u32 __data_loc_driver; - int error; - char __data[0]; -}; - -struct trace_event_raw_suspend_resume { - struct trace_entry ent; - const char *action; - int val; - bool start; - char __data[0]; -}; - -struct trace_event_raw_wakeup_source { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - char __data[0]; -}; - -struct trace_event_raw_clock { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; - char __data[0]; -}; - -struct trace_event_raw_power_domain { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; - char __data[0]; -}; - -struct trace_event_raw_cpu_latency_qos_request { - struct trace_entry ent; - s32 value; - char __data[0]; -}; - -struct trace_event_raw_pm_qos_update { - struct trace_entry ent; - enum pm_qos_req_action action; - int prev_value; - int curr_value; - char __data[0]; -}; - -struct trace_event_raw_dev_pm_qos_request { - struct trace_entry ent; - u32 __data_loc_name; - enum dev_pm_qos_req_type type; - s32 new_value; - char __data[0]; -}; - -struct trace_event_raw_guest_halt_poll_ns { - struct trace_entry ent; - bool grow; - unsigned int new; - unsigned int old; - char __data[0]; -}; - -struct trace_event_data_offsets_powernv_throttle { - u32 reason; - const void *reason_ptr_; -}; - -struct trace_event_data_offsets_device_pm_callback_end { - u32 device; - const void *device_ptr_; - u32 driver; - const void *driver_ptr_; -}; - -struct trace_event_data_offsets_wakeup_source { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_clock { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_power_domain { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_dev_pm_qos_request { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_cpu {}; - -struct trace_event_data_offsets_cpu_idle_miss {}; - -struct trace_event_data_offsets_pstate_sample {}; - -struct trace_event_data_offsets_cpu_frequency_limits {}; - -struct trace_event_data_offsets_device_pm_callback_start { - u32 device; - const void *device_ptr_; - u32 driver; - const void *driver_ptr_; - u32 parent; - const void *parent_ptr_; - u32 pm_ops; - const void *pm_ops_ptr_; -}; - -struct trace_event_data_offsets_suspend_resume {}; - -struct trace_event_data_offsets_cpu_latency_qos_request {}; - -struct trace_event_data_offsets_pm_qos_update {}; - -struct trace_event_data_offsets_guest_halt_poll_ns {}; - -typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); - -typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int); - -typedef void (*btf_trace_kfree)(void *, unsigned long, const void *); - -typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *); - -typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int); - -typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *); - -typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); - -typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); - -typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int); - -typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); - -typedef void (*btf_trace_mm_alloc_contig_migrate_range_info)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); - -typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); - -struct kmalloc_info_struct { - const char *name[4]; - unsigned int size; -}; - -struct trace_event_raw_kmem_cache_alloc { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - size_t bytes_req; - size_t bytes_alloc; - unsigned long gfp_flags; - int node; - bool accounted; - char __data[0]; -}; - -struct trace_event_raw_kmalloc { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - size_t bytes_req; - size_t bytes_alloc; - unsigned long gfp_flags; - int node; - char __data[0]; -}; - -struct trace_event_raw_kfree { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - char __data[0]; -}; - -struct trace_event_raw_kmem_cache_free { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_mm_page_free { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - char __data[0]; -}; - -struct trace_event_raw_mm_page_free_batched { - struct trace_entry ent; - unsigned long pfn; - char __data[0]; -}; - -struct trace_event_raw_mm_page_alloc { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - unsigned long gfp_flags; - int migratetype; - char __data[0]; -}; - -struct trace_event_raw_mm_page { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - int migratetype; - int percpu_refill; - char __data[0]; -}; - -struct trace_event_raw_mm_page_pcpu_drain { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - int migratetype; - char __data[0]; -}; - -struct trace_event_raw_mm_page_alloc_extfrag { - struct trace_entry ent; - unsigned long pfn; - int alloc_order; - int fallback_order; - int alloc_migratetype; - int fallback_migratetype; - int change_ownership; - char __data[0]; -}; - -struct trace_event_raw_mm_alloc_contig_migrate_range_info { - struct trace_entry ent; - unsigned long start; - unsigned long end; - unsigned long nr_migrated; - unsigned long nr_reclaimed; - unsigned long nr_mapped; - int migratetype; - char __data[0]; -}; - -struct trace_event_raw_rss_stat { - struct trace_entry ent; - unsigned int mm_id; - unsigned int curr; - int member; - long size; - char __data[0]; -}; - -struct trace_event_data_offsets_kmem_cache_free { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_kmem_cache_alloc {}; - -struct trace_event_data_offsets_kmalloc {}; - -struct trace_event_data_offsets_kfree {}; - -struct trace_event_data_offsets_mm_page_free {}; - -struct trace_event_data_offsets_mm_page_free_batched {}; - -struct trace_event_data_offsets_mm_page_alloc {}; - -struct trace_event_data_offsets_mm_page {}; - -struct trace_event_data_offsets_mm_page_pcpu_drain {}; - -struct trace_event_data_offsets_mm_page_alloc_extfrag {}; - -struct trace_event_data_offsets_mm_alloc_contig_migrate_range_info {}; - -struct trace_event_data_offsets_rss_stat {}; - -struct inodes_stat_t { - long nr_inodes; - long nr_unused; - long dummy[5]; -}; - -struct backing_aio { - struct kiocb iocb; - refcount_t ref; - struct kiocb *orig_iocb; - void (*end_write)(struct file *); - struct work_struct work; - long res; -}; - -struct backing_file_ctx { - const struct cred *cred; - struct file *user_file; - void (*accessed)(struct file *); - void (*end_write)(struct file *); -}; - -struct xts_instance_ctx { - struct crypto_skcipher_spawn spawn; - struct crypto_cipher_spawn tweak_spawn; -}; - -struct xts_request_ctx { - le128 t; - struct scatterlist *tail; - struct scatterlist sg[2]; - struct skcipher_request subreq; -}; - -struct xts_tfm_ctx { - struct crypto_skcipher *child; - struct crypto_cipher *tweak; -}; - -enum { - BLK_MQ_NO_TAG = 4294967295, - BLK_MQ_TAG_MIN = 1, - BLK_MQ_TAG_MAX = 4294967294, -}; - -typedef u16 ucs2_char_t; - -struct pci_filp_private { - enum pci_mmap_state mmap_state; - int write_combine; -}; - -enum acpi_srat_type { - ACPI_SRAT_TYPE_CPU_AFFINITY = 0, - ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, - ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, - ACPI_SRAT_TYPE_GICC_AFFINITY = 3, - ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, - ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, - ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, - ACPI_SRAT_TYPE_RESERVED = 7, -}; - -struct acpi_table_srat { - struct acpi_table_header header; - u32 table_revision; - u64 reserved; -}; - -struct acpi_srat_mem_affinity { - struct acpi_subtable_header header; - u32 proximity_domain; - u16 reserved; - u64 base_address; - u64 length; - u32 reserved1; - u32 flags; - u64 reserved2; -} __attribute__((packed)); - -struct acpi_srat_gicc_affinity { - struct acpi_subtable_header header; - u32 proximity_domain; - u32 acpi_processor_uid; - u32 flags; - u32 clock_domain; -} __attribute__((packed)); - -struct acpi_srat_generic_affinity { - struct acpi_subtable_header header; - u8 reserved; - u8 device_handle_type; - u32 proximity_domain; - u8 device_handle[16]; - u32 flags; - u32 reserved1; -}; - -struct acpi_table_slit { - struct acpi_table_header header; - u64 locality_count; - u8 entry[0]; -} __attribute__((packed)); - -struct acpi_cedt_cfmws { - struct acpi_cedt_header header; - u32 reserved1; - u64 base_hpa; - u64 window_size; - u8 interleave_ways; - u8 interleave_arithmetic; - u16 reserved2; - u32 granularity; - u16 restrictions; - u16 qtg_id; - u32 interleave_targets[0]; -} __attribute__((packed)); - -typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); - -typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); - -typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); - -typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); - -typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); - -enum scsi_vpd_parameters { - SCSI_VPD_HEADER_SIZE = 4, - SCSI_VPD_LIST_SIZE = 36, -}; - -struct trace_event_raw_scsi_dispatch_cmd_start { - struct trace_entry ent; - unsigned int host_no; - unsigned int channel; - unsigned int id; - unsigned int lun; - unsigned int opcode; - unsigned int cmd_len; - int driver_tag; - int scheduler_tag; - unsigned int data_sglen; - unsigned int prot_sglen; - unsigned char prot_op; - u32 __data_loc_cmnd; - char __data[0]; -}; - -struct trace_event_raw_scsi_dispatch_cmd_error { - struct trace_entry ent; - unsigned int host_no; - unsigned int channel; - unsigned int id; - unsigned int lun; - int rtn; - unsigned int opcode; - unsigned int cmd_len; - int driver_tag; - int scheduler_tag; - unsigned int data_sglen; - unsigned int prot_sglen; - unsigned char prot_op; - u32 __data_loc_cmnd; - char __data[0]; -}; - -struct trace_event_raw_scsi_cmd_done_timeout_template { - struct trace_entry ent; - unsigned int host_no; - unsigned int channel; - unsigned int id; - unsigned int lun; - int result; - unsigned int opcode; - unsigned int cmd_len; - int driver_tag; - int scheduler_tag; - unsigned int data_sglen; - unsigned int prot_sglen; - unsigned char prot_op; - u32 __data_loc_cmnd; - u8 sense_key; - u8 asc; - u8 ascq; - char __data[0]; -}; - -struct trace_event_raw_scsi_eh_wakeup { - struct trace_entry ent; - unsigned int host_no; - char __data[0]; -}; - -struct trace_event_data_offsets_scsi_dispatch_cmd_start { - u32 cmnd; - const void *cmnd_ptr_; -}; - -struct trace_event_data_offsets_scsi_dispatch_cmd_error { - u32 cmnd; - const void *cmnd_ptr_; -}; - -struct trace_event_data_offsets_scsi_cmd_done_timeout_template { - u32 cmnd; - const void *cmnd_ptr_; -}; - -struct scsi_mode_data { - __u32 length; - __u16 block_descriptor_length; - __u8 medium_type; - __u8 device_specific; - __u8 header_length; - __u8 longlba: 1; -}; - -struct trace_event_data_offsets_scsi_eh_wakeup {}; - -enum igb_tx_buf_type { - IGB_TYPE_SKB = 0, - IGB_TYPE_XDP = 1, -}; - -struct hwmon_attr { - struct device_attribute dev_attr; - struct e1000_hw *hw; - struct e1000_thermal_diode_data *sensor; - char name[12]; -}; - -struct e1000_hw_stats___3 { - u64 crcerrs; - u64 algnerrc; - u64 symerrs; - u64 rxerrc; - u64 mpc; - u64 scc; - u64 ecol; - u64 mcc; - u64 latecol; - u64 colc; - u64 dc; - u64 tncrs; - u64 sec; - u64 cexterr; - u64 rlec; - u64 xonrxc; - u64 xontxc; - u64 xoffrxc; - u64 xofftxc; - u64 fcruc; - u64 prc64; - u64 prc127; - u64 prc255; - u64 prc511; - u64 prc1023; - u64 prc1522; - u64 gprc; - u64 bprc; - u64 mprc; - u64 gptc; - u64 gorc; - u64 gotc; - u64 rnbc; - u64 ruc; - u64 rfc; - u64 roc; - u64 rjc; - u64 mgprc; - u64 mgpdc; - u64 mgptc; - u64 tor; - u64 tot; - u64 tpr; - u64 tpt; - u64 ptc64; - u64 ptc127; - u64 ptc255; - u64 ptc511; - u64 ptc1023; - u64 ptc1522; - u64 mptc; - u64 bptc; - u64 tsctc; - u64 tsctfc; - u64 iac; - u64 icrxptc; - u64 icrxatc; - u64 ictxptc; - u64 ictxatc; - u64 ictxqec; - u64 ictxqmtc; - u64 icrxdmtc; - u64 icrxoc; - u64 cbtmpc; - u64 htdpmc; - u64 cbrdpc; - u64 cbrmpc; - u64 rpthc; - u64 hgptc; - u64 htcbdpc; - u64 hgorc; - u64 hgotc; - u64 lenerrs; - u64 scvpc; - u64 hrmpc; - u64 doosync; - u64 o2bgptc; - u64 o2bspc; - u64 b2ospc; - u64 b2ogprc; -}; - -struct igb_tx_queue_stats { - u64 packets; - u64 bytes; - u64 restart_queue; - u64 restart_queue2; -}; - -struct igb_rx_queue_stats { - u64 packets; - u64 bytes; - u64 drops; - u64 csum_err; - u64 alloc_failed; -}; - -struct igb_q_vector; - -struct igb_tx_buffer; - -struct igb_rx_buffer; - -struct igb_ring { - struct igb_q_vector *q_vector; - struct net_device *netdev; - struct bpf_prog *xdp_prog; - struct device *dev; - union { - struct igb_tx_buffer *tx_buffer_info; - struct igb_rx_buffer *rx_buffer_info; - }; - void *desc; - unsigned long flags; - void *tail; - dma_addr_t dma; - unsigned int size; - u16 count; - u8 queue_index; - u8 reg_idx; - bool launchtime_enable; - bool cbs_enable; - s32 idleslope; - s32 sendslope; - s32 hicredit; - s32 locredit; - u16 next_to_clean; - u16 next_to_use; - u16 next_to_alloc; - union { - struct { - struct igb_tx_queue_stats tx_stats; - struct u64_stats_sync tx_syncp; - struct u64_stats_sync tx_syncp2; - }; - struct { - struct sk_buff *skb; - struct igb_rx_queue_stats rx_stats; - struct u64_stats_sync rx_syncp; - }; - }; - long: 64; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; -}; - -struct e1000_info___2 { - s32 (*get_invariants)(struct e1000_hw *); - struct e1000_mac_operations *mac_ops; - const struct e1000_phy_operations *phy_ops; - struct e1000_nvm_operations *nvm_ops; -}; - -struct vf_mac_filter { - struct list_head l; - int vf; - bool free; - u8 vf_mac[6]; -}; - -struct vf_data_storage; - -struct hwmon_buff; - -struct igb_mac_addr; - -struct igb_adapter { - unsigned long active_vlans[64]; - struct net_device *netdev; - struct bpf_prog *xdp_prog; - unsigned long state; - unsigned int flags; - unsigned int num_q_vectors; - struct msix_entry msix_entries[10]; - u32 rx_itr_setting; - u32 tx_itr_setting; - u16 tx_itr; - u16 rx_itr; - u16 tx_work_limit; - u32 tx_timeout_count; - int num_tx_queues; - struct igb_ring *tx_ring[16]; - int num_rx_queues; - struct igb_ring *rx_ring[16]; - u32 max_frame_size; - u32 min_frame_size; - struct timer_list watchdog_timer; - struct timer_list phy_info_timer; - u16 mng_vlan_id; - u32 bd_number; - u32 wol; - u32 en_mng_pt; - u16 link_speed; - u16 link_duplex; - u8 *io_addr; - struct work_struct reset_task; - struct work_struct watchdog_task; - bool fc_autoneg; - u8 tx_timeout_factor; - struct timer_list blink_timer; - unsigned long led_status; - struct pci_dev *pdev; - spinlock_t stats64_lock; - struct rtnl_link_stats64 stats64; - struct e1000_hw hw; - struct e1000_hw_stats___3 stats; - struct e1000_phy_info phy_info; - u32 test_icr; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct igb_ring test_tx_ring; - struct igb_ring test_rx_ring; - int msg_enable; - struct igb_q_vector *q_vector[8]; - u32 eims_enable_mask; - u32 eims_other; - u16 tx_ring_count; - u16 rx_ring_count; - unsigned int vfs_allocated_count; - struct vf_data_storage *vf_data; - int vf_rate_link_speed; - u32 rss_queues; - u32 wvbr; - u32 *shadow_vfta; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_caps; - struct delayed_work ptp_overflow_work; - struct work_struct ptp_tx_work; - struct sk_buff *ptp_tx_skb; - struct hwtstamp_config tstamp_config; - unsigned long ptp_tx_start; - unsigned long last_rx_ptp_check; - unsigned long last_rx_timestamp; - unsigned int ptp_flags; - spinlock_t tmreg_lock; - struct cyclecounter cc; - struct timecounter tc; - u32 tx_hwtstamp_timeouts; - u32 tx_hwtstamp_skipped; - u32 rx_hwtstamp_cleared; - bool pps_sys_wrap_on; - struct ptp_pin_desc sdp_config[4]; - struct { - struct timespec64 start; - struct timespec64 period; - } perout[2]; - char fw_version[48]; - struct hwmon_buff *igb_hwmon_buff; - bool ets; - struct i2c_algo_bit_data i2c_algo; - struct i2c_adapter i2c_adap; - struct i2c_client *i2c_client; - u32 rss_indir_tbl_init; - u8 rss_indir_tbl[128]; - unsigned long link_check_timeout; - int copper_tries; - struct e1000_info___2 ei; - u16 eee_advert; - struct hlist_head nfc_filter_list; - struct hlist_head cls_flower_list; - unsigned int nfc_filter_count; - spinlock_t nfc_lock; - bool etype_bitmap[3]; - struct igb_mac_addr *mac_table; - struct vf_mac_filter vf_macs; - struct vf_mac_filter *vf_mac_list; - spinlock_t vfs_lock; - long: 64; -}; - -struct igb_ring_container { - struct igb_ring *ring; - unsigned int total_bytes; - unsigned int total_packets; - u16 work_limit; - u8 count; - u8 itr; -}; - -struct igb_q_vector { - struct igb_adapter *adapter; - int cpu; - u32 eims_value; - u16 itr_val; - u8 set_itr; - void *itr_register; - struct igb_ring_container rx; - struct igb_ring_container tx; - struct napi_struct napi; - struct callback_head rcu; - char name[25]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct igb_ring ring[0]; -}; - -union e1000_adv_tx_desc; - -struct igb_tx_buffer { - union e1000_adv_tx_desc *next_to_watch; - unsigned long time_stamp; - enum igb_tx_buf_type type; - union { - struct sk_buff *skb; - struct xdp_frame *xdpf; - }; - unsigned int bytecount; - u16 gso_segs; - __be16 protocol; - dma_addr_t dma; - __u32 len; - u32 tx_flags; -}; - -union e1000_adv_tx_desc { - struct { - __le64 buffer_addr; - __le32 cmd_type_len; - __le32 olinfo_status; - } read; - struct { - __le64 rsvd; - __le32 nxtseq_seed; - __le32 status; - } wb; -}; - -struct igb_rx_buffer { - dma_addr_t dma; - struct page *page; - __u32 page_offset; - __u16 pagecnt_bias; -}; - -struct vf_data_storage { - unsigned char vf_mac_addresses[6]; - u16 vf_mc_hashes[30]; - u16 num_vf_mc_hashes; - u32 flags; - unsigned long last_nack; - u16 pf_vlan; - u16 pf_qos; - u16 tx_rate; - bool spoofchk_enabled; - bool trusted; -}; - -struct hwmon_buff { - struct attribute_group group; - const struct attribute_group *groups[2]; - struct attribute *attrs[13]; - struct hwmon_attr hwmon_list[12]; - unsigned int n_hwmon; -}; - -struct igb_mac_addr { - u8 addr[6]; - u8 queue; - u8 state; -}; - -struct iwl_mvm_quota_iterator_data { - int n_interfaces[4]; - int colors[4]; - int low_latency[4]; - int n_low_latency_bindings; - struct ieee80211_vif *disabled_vif; -}; - -struct ep_device { - struct usb_endpoint_descriptor *desc; - struct usb_device *udev; - struct device dev; -}; - -struct ptp_vclock { - struct ptp_clock *pclock; - struct ptp_clock_info info; - struct ptp_clock *clock; - struct hlist_node vclock_hash_node; - struct cyclecounter cc; - struct timecounter tc; - struct mutex lock; -}; - -struct p2sb_res_cache { - u32 bus_dev_id; - struct resource res; -}; - -struct ethtool_forced_speed_map { - u32 speed; - unsigned long caps[2]; - const u32 *cap_arr; - u32 arr_size; -}; - -struct nft_set_ext_type { - u8 len; - u8 align; -}; - -enum nft_expr_attributes { - NFTA_EXPR_UNSPEC = 0, - NFTA_EXPR_NAME = 1, - NFTA_EXPR_DATA = 2, - __NFTA_EXPR_MAX = 3, -}; - -enum nft_verdict_attributes { - NFTA_VERDICT_UNSPEC = 0, - NFTA_VERDICT_CODE = 1, - NFTA_VERDICT_CHAIN = 2, - NFTA_VERDICT_CHAIN_ID = 3, - __NFTA_VERDICT_MAX = 4, -}; - -enum nft_data_attributes { - NFTA_DATA_UNSPEC = 0, - NFTA_DATA_VALUE = 1, - NFTA_DATA_VERDICT = 2, - __NFTA_DATA_MAX = 3, -}; - -enum nft_set_policies { - NFT_SET_POL_PERFORMANCE = 0, - NFT_SET_POL_MEMORY = 1, -}; - -enum nft_set_desc_attributes { - NFTA_SET_DESC_UNSPEC = 0, - NFTA_SET_DESC_SIZE = 1, - NFTA_SET_DESC_CONCAT = 2, - __NFTA_SET_DESC_MAX = 3, -}; - -enum nft_set_field_attributes { - NFTA_SET_FIELD_UNSPEC = 0, - NFTA_SET_FIELD_LEN = 1, - __NFTA_SET_FIELD_MAX = 2, -}; - -enum nft_object_attributes { - NFTA_OBJ_UNSPEC = 0, - NFTA_OBJ_TABLE = 1, - NFTA_OBJ_NAME = 2, - NFTA_OBJ_TYPE = 3, - NFTA_OBJ_DATA = 4, - NFTA_OBJ_USE = 5, - NFTA_OBJ_HANDLE = 6, - NFTA_OBJ_PAD = 7, - NFTA_OBJ_USERDATA = 8, - __NFTA_OBJ_MAX = 9, -}; - -enum nft_data_desc_flags { - NFT_DATA_DESC_SETELEM = 1, -}; - -enum nft_table_flags { - NFT_TABLE_F_DORMANT = 1, - NFT_TABLE_F_OWNER = 2, - NFT_TABLE_F_PERSIST = 4, -}; - -enum nft_table_attributes { - NFTA_TABLE_UNSPEC = 0, - NFTA_TABLE_NAME = 1, - NFTA_TABLE_FLAGS = 2, - NFTA_TABLE_USE = 3, - NFTA_TABLE_HANDLE = 4, - NFTA_TABLE_PAD = 5, - NFTA_TABLE_USERDATA = 6, - NFTA_TABLE_OWNER = 7, - __NFTA_TABLE_MAX = 8, -}; - -enum nft_rule_attributes { - NFTA_RULE_UNSPEC = 0, - NFTA_RULE_TABLE = 1, - NFTA_RULE_CHAIN = 2, - NFTA_RULE_HANDLE = 3, - NFTA_RULE_EXPRESSIONS = 4, - NFTA_RULE_COMPAT = 5, - NFTA_RULE_POSITION = 6, - NFTA_RULE_USERDATA = 7, - NFTA_RULE_PAD = 8, - NFTA_RULE_ID = 9, - NFTA_RULE_POSITION_ID = 10, - NFTA_RULE_CHAIN_ID = 11, - __NFTA_RULE_MAX = 12, -}; - -enum nft_chain_attributes { - NFTA_CHAIN_UNSPEC = 0, - NFTA_CHAIN_TABLE = 1, - NFTA_CHAIN_HANDLE = 2, - NFTA_CHAIN_NAME = 3, - NFTA_CHAIN_HOOK = 4, - NFTA_CHAIN_POLICY = 5, - NFTA_CHAIN_USE = 6, - NFTA_CHAIN_TYPE = 7, - NFTA_CHAIN_COUNTERS = 8, - NFTA_CHAIN_PAD = 9, - NFTA_CHAIN_FLAGS = 10, - NFTA_CHAIN_ID = 11, - NFTA_CHAIN_USERDATA = 12, - __NFTA_CHAIN_MAX = 13, -}; - -enum nft_hook_attributes { - NFTA_HOOK_UNSPEC = 0, - NFTA_HOOK_HOOKNUM = 1, - NFTA_HOOK_PRIORITY = 2, - NFTA_HOOK_DEV = 3, - NFTA_HOOK_DEVS = 4, - __NFTA_HOOK_MAX = 5, -}; - -enum nf_ip_hook_priorities { - NF_IP_PRI_FIRST = -2147483648, - NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, - NF_IP_PRI_CONNTRACK_DEFRAG = -400, - NF_IP_PRI_RAW = -300, - NF_IP_PRI_SELINUX_FIRST = -225, - NF_IP_PRI_CONNTRACK = -200, - NF_IP_PRI_MANGLE = -150, - NF_IP_PRI_NAT_DST = -100, - NF_IP_PRI_FILTER = 0, - NF_IP_PRI_SECURITY = 50, - NF_IP_PRI_NAT_SRC = 100, - NF_IP_PRI_SELINUX_LAST = 225, - NF_IP_PRI_CONNTRACK_HELPER = 300, - NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, - NF_IP_PRI_LAST = 2147483647, -}; - -enum nft_devices_attributes { - NFTA_DEVICE_UNSPEC = 0, - NFTA_DEVICE_NAME = 1, - __NFTA_DEVICE_MAX = 2, -}; - -enum { - NFT_VALIDATE_SKIP = 0, - NFT_VALIDATE_NEED = 1, - NFT_VALIDATE_DO = 2, -}; - -enum nft_set_elem_list_attributes { - NFTA_SET_ELEM_LIST_UNSPEC = 0, - NFTA_SET_ELEM_LIST_TABLE = 1, - NFTA_SET_ELEM_LIST_SET = 2, - NFTA_SET_ELEM_LIST_ELEMENTS = 3, - NFTA_SET_ELEM_LIST_SET_ID = 4, - __NFTA_SET_ELEM_LIST_MAX = 5, -}; - -enum nft_set_elem_attributes { - NFTA_SET_ELEM_UNSPEC = 0, - NFTA_SET_ELEM_KEY = 1, - NFTA_SET_ELEM_DATA = 2, - NFTA_SET_ELEM_FLAGS = 3, - NFTA_SET_ELEM_TIMEOUT = 4, - NFTA_SET_ELEM_EXPIRATION = 5, - NFTA_SET_ELEM_USERDATA = 6, - NFTA_SET_ELEM_EXPR = 7, - NFTA_SET_ELEM_PAD = 8, - NFTA_SET_ELEM_OBJREF = 9, - NFTA_SET_ELEM_KEY_END = 10, - NFTA_SET_ELEM_EXPRESSIONS = 11, - __NFTA_SET_ELEM_MAX = 12, -}; - -enum nft_gen_attributes { - NFTA_GEN_UNSPEC = 0, - NFTA_GEN_ID = 1, - NFTA_GEN_PROC_PID = 2, - NFTA_GEN_PROC_NAME = 3, - __NFTA_GEN_MAX = 4, -}; - -enum nft_flowtable_attributes { - NFTA_FLOWTABLE_UNSPEC = 0, - NFTA_FLOWTABLE_TABLE = 1, - NFTA_FLOWTABLE_NAME = 2, - NFTA_FLOWTABLE_HOOK = 3, - NFTA_FLOWTABLE_USE = 4, - NFTA_FLOWTABLE_HANDLE = 5, - NFTA_FLOWTABLE_PAD = 6, - NFTA_FLOWTABLE_FLAGS = 7, - __NFTA_FLOWTABLE_MAX = 8, -}; - -enum nft_flowtable_flags { - NFT_FLOWTABLE_HW_OFFLOAD = 1, - NFT_FLOWTABLE_COUNTER = 2, - NFT_FLOWTABLE_MASK = 3, -}; - -enum nft_flowtable_hook_attributes { - NFTA_FLOWTABLE_HOOK_UNSPEC = 0, - NFTA_FLOWTABLE_HOOK_NUM = 1, - NFTA_FLOWTABLE_HOOK_PRIORITY = 2, - NFTA_FLOWTABLE_HOOK_DEVS = 3, - __NFTA_FLOWTABLE_HOOK_MAX = 4, -}; - -struct nft_module_request { - struct list_head list; - char module[56]; - bool done; -}; - -struct nft_hook { - struct list_head list; - struct nf_hook_ops ops; - struct callback_head rcu; -}; - -struct nft_set_elem_catchall { - struct list_head list; - struct callback_head rcu; - struct nft_elem_priv *elem; -}; - -struct nft_flowtable { - struct list_head list; - struct nft_table *table; - char *name; - int hooknum; - int ops_len; - u32 genmask: 2; - u32 use; - u64 handle; - long: 64; - struct list_head hook_list; - struct nf_flowtable data; - long: 64; - long: 64; - long: 64; -}; - -struct nft_trans { - struct list_head list; - struct list_head binding_list; - int msg_type; - bool put_net; - struct nft_ctx ctx; - char data[0]; -}; - -struct nft_trans_chain { - struct nft_chain *chain; - bool update; - char *name; - struct nft_stats __attribute__((btf_type_tag("percpu"))) *stats; - u8 policy; - bool bound; - u32 chain_id; - struct nft_base_chain *basechain; - struct list_head hook_list; -}; - -struct nft_trans_rule { - struct nft_rule *rule; - struct nft_flow_rule *flow; - u32 rule_id; - bool bound; -}; - -struct nft_trans_set { - struct nft_set *set; - u32 set_id; - u32 gc_int; - u64 timeout; - bool update; - bool bound; - u32 size; -}; - -struct nft_trans_elem { - struct nft_set *set; - struct nft_elem_priv *elem_priv; - bool bound; -}; - -struct nftnl_skb_parms { - bool report; -}; - -struct nft_trans_obj { - struct nft_object *obj; - struct nft_object *newobj; - bool update; -}; - -struct nft_trans_flowtable { - struct nft_flowtable *flowtable; - bool update; - struct list_head hook_list; - u32 flags; -}; - -struct nft_trans_table { - bool update; -}; - -struct nft_set_dump_args { - const struct netlink_callback *cb; - struct nft_set_iter iter; - struct sk_buff *skb; - bool reset; -}; - -struct nft_audit_data { - struct nft_table *table; - int entries; - int op; - struct list_head list; -}; - -struct nft_chain_hook { - u32 num; - s32 priority; - const struct nft_chain_type *type; - struct list_head list; -}; - -struct nft_userdata { - u8 len; - unsigned char data[0]; -}; - -struct nft_flowtable_hook { - u32 num; - int priority; - struct list_head list; -}; - -struct nft_rule_dump_ctx { - unsigned int s_idx; - char *table; - char *chain; - bool reset; -}; - -struct nft_set_dump_ctx { - const struct nft_set *set; - struct nft_ctx ctx; - bool reset; -}; - -struct nft_obj_dump_ctx { - unsigned int s_idx; - char *table; - u32 type; - bool reset; -}; - -struct nft_flowtable_filter { - char *table; -}; - -struct bictcp { - u32 cnt; - u32 last_max_cwnd; - u32 last_cwnd; - u32 last_time; - u32 bic_origin_point; - u32 bic_K; - u32 delay_min; - u32 epoch_start; - u32 ack_cnt; - u32 tcp_cwnd; - u16 unused; - u8 sample_cnt; - u8 found; - u32 round_start; - u32 end_seq; - u32 last_ack; - u32 curr_rtt; -}; - -enum cfg80211_rnr_iter_ret { - RNR_ITER_CONTINUE = 0, - RNR_ITER_BREAK = 1, - RNR_ITER_ERROR = 2, -}; - -enum nl80211_scan_flags { - NL80211_SCAN_FLAG_LOW_PRIORITY = 1, - NL80211_SCAN_FLAG_FLUSH = 2, - NL80211_SCAN_FLAG_AP = 4, - NL80211_SCAN_FLAG_RANDOM_ADDR = 8, - NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 16, - NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 32, - NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 64, - NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 128, - NL80211_SCAN_FLAG_LOW_SPAN = 256, - NL80211_SCAN_FLAG_LOW_POWER = 512, - NL80211_SCAN_FLAG_HIGH_ACCURACY = 1024, - NL80211_SCAN_FLAG_RANDOM_SN = 2048, - NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 4096, - NL80211_SCAN_FLAG_FREQ_KHZ = 8192, - NL80211_SCAN_FLAG_COLOCATED_6GHZ = 16384, -}; - -enum cfg80211_bss_frame_type { - CFG80211_BSS_FTYPE_UNKNOWN = 0, - CFG80211_BSS_FTYPE_BEACON = 1, - CFG80211_BSS_FTYPE_PRESP = 2, - CFG80211_BSS_FTYPE_S1G_BEACON = 3, -}; - -struct cfg80211_inform_single_bss_data { - struct cfg80211_inform_bss *drv_data; - enum cfg80211_bss_frame_type ftype; - struct ieee80211_channel *channel; - u8 bssid[6]; - u64 tsf; - u16 capability; - u16 beacon_interval; - const u8 *ie; - size_t ielen; - enum { - BSS_SOURCE_DIRECT = 0, - BSS_SOURCE_MBSSID = 1, - BSS_SOURCE_STA_PROFILE = 2, - } bss_source; - struct cfg80211_bss *source_bss; - u8 max_bssid_indicator; - u8 bssid_index; - u8 use_for; - u64 cannot_use_reasons; -}; - -enum bss_compare_mode { - BSS_CMP_REGULAR = 0, - BSS_CMP_HIDE_ZLEN = 1, - BSS_CMP_HIDE_NUL = 2, -}; - -enum nl80211_bss_cannot_use_reasons { - NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 1, - NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 2, -}; - -struct cfg80211_colocated_ap { - struct list_head list; - u8 bssid[6]; - u8 ssid[32]; - size_t ssid_len; - u32 short_ssid; - u32 center_freq; - u8 unsolicited_probe: 1; - u8 oct_recommended: 1; - u8 same_ssid: 1; - u8 multi_bss: 1; - u8 transmitted_bssid: 1; - u8 colocated_ess: 1; - u8 short_ssid_valid: 1; - s8 psd_20; -}; - -struct colocated_ap_data { - const struct element *ssid_elem; - struct list_head ap_list; - u32 s_ssid_tmp; - int n_coloc; -}; - -struct ieee80211_neighbor_ap_info { - u8 tbtt_info_hdr; - u8 tbtt_info_len; - u8 op_class; - u8 channel; -}; - -struct ieee80211_rnr_mld_params { - u8 mld_id; - __le16 params; -} __attribute__((packed)); - -struct ieee80211_tbtt_info_ge_11 { - u8 tbtt_offset; - u8 bssid[6]; - __le32 short_ssid; - u8 bss_params; - s8 psd_20; - struct ieee80211_rnr_mld_params mld_params; -} __attribute__((packed)); - -struct ieee80211_tbtt_info_7_8_9 { - u8 tbtt_offset; - u8 bssid[6]; - u8 bss_params; - s8 psd_20; -}; - -struct cfg80211_mle { - struct ieee80211_multi_link_elem *mle; - struct ieee80211_mle_per_sta_profile *sta_prof[15]; - ssize_t sta_prof_len[15]; - u8 data[0]; -}; - -struct tbtt_info_iter_data { - const struct ieee80211_neighbor_ap_info *ap_info; - u8 param_ch_count; - u32 use_for; - u8 mld_id; - u8 link_id; -}; - -struct ieee80211_ext { - __le16 frame_control; - __le16 duration; - union { - struct { - u8 sa[6]; - __le32 timestamp; - u8 change_seq; - u8 variable[0]; - } __attribute__((packed)) s1g_beacon; - struct { - u8 sa[6]; - __le32 timestamp; - u8 change_seq; - u8 next_tbtt[3]; - u8 variable[0]; - } __attribute__((packed)) s1g_short_beacon; - } u; -}; - -typedef __u16 Elf32_Half; - -typedef __u32 Elf32_Addr; - -typedef __u32 Elf32_Off; - -struct elf32_hdr { - unsigned char e_ident[16]; - Elf32_Half e_type; - Elf32_Half e_machine; - Elf32_Word e_version; - Elf32_Addr e_entry; - Elf32_Off e_phoff; - Elf32_Off e_shoff; - Elf32_Word e_flags; - Elf32_Half e_ehsize; - Elf32_Half e_phentsize; - Elf32_Half e_phnum; - Elf32_Half e_shentsize; - Elf32_Half e_shnum; - Elf32_Half e_shstrndx; -}; - -typedef struct elf32_hdr Elf32_Ehdr; - -struct elf32_phdr { - Elf32_Word p_type; - Elf32_Off p_offset; - Elf32_Addr p_vaddr; - Elf32_Addr p_paddr; - Elf32_Word p_filesz; - Elf32_Word p_memsz; - Elf32_Word p_flags; - Elf32_Word p_align; -}; - -typedef struct elf32_phdr Elf32_Phdr; - -typedef struct elf64_phdr Elf64_Phdr; - -typedef struct elf32_note Elf32_Nhdr; - -struct intel_uncore_discovery_type { - struct rb_node node; - enum uncore_access_type access_type; - u64 box_ctrl; - u64 *box_ctrl_die; - u16 type; - u8 num_counters; - u8 counter_width; - u8 ctl_offset; - u8 ctr_offset; - u16 num_boxes; - unsigned int *ids; - u64 *box_offset; -}; - -struct uncore_global_discovery { - union { - u64 table1; - struct { - u64 type: 8; - u64 stride: 8; - u64 max_units: 10; - u64 __reserved_1: 36; - u64 access_type: 2; - }; - }; - u64 ctl; - union { - u64 table3; - struct { - u64 status_offset: 8; - u64 num_status: 16; - u64 __reserved_2: 40; - }; - }; -}; - -struct uncore_unit_discovery { - union { - u64 table1; - struct { - u64 num_regs: 8; - u64 ctl_offset: 8; - u64 bit_width: 8; - u64 ctr_offset: 8; - u64 status_offset: 8; - u64 __reserved_1: 22; - u64 access_type: 2; - }; - }; - u64 ctl; - union { - u64 table3; - struct { - u64 box_type: 16; - u64 box_id: 16; - u64 __reserved_2: 32; - }; - }; -}; - -typedef void (*btf_trace_lock_acquire)(void *, struct lockdep_map *, unsigned int, int, int, int, struct lockdep_map *, unsigned long); - -typedef void (*btf_trace_lock_release)(void *, struct lockdep_map *, unsigned long); - -typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); - -typedef void (*btf_trace_contention_end)(void *, void *, int); - -struct trace_event_raw_lock_acquire { - struct trace_entry ent; - unsigned int flags; - u32 __data_loc_name; - void *lockdep_addr; - char __data[0]; -}; - -struct trace_event_raw_lock { - struct trace_entry ent; - u32 __data_loc_name; - void *lockdep_addr; - char __data[0]; -}; - -struct trace_event_raw_contention_begin { - struct trace_entry ent; - void *lock_addr; - unsigned int flags; - char __data[0]; -}; - -struct trace_event_raw_contention_end { - struct trace_entry ent; - void *lock_addr; - int ret; - char __data[0]; -}; - -struct trace_event_data_offsets_lock_acquire { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_lock { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_contention_begin {}; - -struct trace_event_data_offsets_contention_end {}; - -struct bpf_iter__bpf_link { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_link *link; - }; -}; - -struct bpf_iter_seq_link_info { - u32 link_id; -}; - -enum shmem_param { - Opt_gid___6 = 0, - Opt_huge = 1, - Opt_mode___5 = 2, - Opt_mpol = 3, - Opt_nr_blocks = 4, - Opt_nr_inodes___2 = 5, - Opt_size___2 = 6, - Opt_uid___5 = 7, - Opt_inode32 = 8, - Opt_inode64 = 9, - Opt_noswap = 10, - Opt_quota___2 = 11, - Opt_usrquota___2 = 12, - Opt_grpquota___2 = 13, - Opt_usrquota_block_hardlimit = 14, - Opt_usrquota_inode_hardlimit = 15, - Opt_grpquota_block_hardlimit = 16, - Opt_grpquota_inode_hardlimit = 17, -}; - -enum { - MPOL_DEFAULT = 0, - MPOL_PREFERRED = 1, - MPOL_BIND = 2, - MPOL_INTERLEAVE = 3, - MPOL_LOCAL = 4, - MPOL_PREFERRED_MANY = 5, - MPOL_WEIGHTED_INTERLEAVE = 6, - MPOL_MAX = 7, -}; - -struct shmem_quota_limits { - qsize_t usrquota_bhardlimit; - qsize_t usrquota_ihardlimit; - qsize_t grpquota_bhardlimit; - qsize_t grpquota_ihardlimit; -}; - -struct shmem_sb_info { - unsigned long max_blocks; - struct percpu_counter used_blocks; - unsigned long max_inodes; - unsigned long free_ispace; - raw_spinlock_t stat_lock; - umode_t mode; - unsigned char huge; - kuid_t uid; - kgid_t gid; - bool full_inums; - bool noswap; - ino_t next_ino; - ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; - struct mempolicy *mpol; - spinlock_t shrinklist_lock; - struct list_head shrinklist; - unsigned long shrinklist_len; - struct shmem_quota_limits qlimits; -}; - -struct shmem_options { - unsigned long long blocks; - unsigned long long inodes; - struct mempolicy *mpol; - kuid_t uid; - kgid_t gid; - umode_t mode; - bool full_inums; - int huge; - int seen; - bool noswap; - unsigned short quota_types; - struct shmem_quota_limits qlimits; -}; - -struct shmem_falloc { - wait_queue_head_t *waitq; - unsigned long start; - unsigned long next; - unsigned long nr_falloced; - unsigned long nr_unswapped; -}; - -struct dentry_stat_t { - long nr_dentry; - long nr_unused; - long age_limit; - long want_pages; - long nr_negative; - long dummy; -}; - -enum d_walk_ret { - D_WALK_CONTINUE = 0, - D_WALK_QUIT = 1, - D_WALK_NORETRY = 2, - D_WALK_SKIP = 3, -}; - -struct external_name { - union { - atomic_t count; - struct callback_head head; - } u; - unsigned char name[0]; -}; - -struct check_mount { - struct vfsmount *mnt; - unsigned int mounted; -}; - -struct select_data { - struct dentry *start; - union { - long found; - struct dentry *victim; - }; - struct list_head dispose; -}; - -typedef unsigned long long llu; - -struct fat_fid { - u32 i_gen; - u32 i_pos_low; - u16 i_pos_hi; - u16 parent_i_pos_hi; - u32 parent_i_pos_low; - u32 parent_i_gen; -}; - -struct btrfs_ioctl_feature_flags { - __u64 compat_flags; - __u64 compat_ro_flags; - __u64 incompat_flags; -}; - -enum btrfs_feature_set { - FEAT_COMPAT = 0, - FEAT_COMPAT_RO = 1, - FEAT_INCOMPAT = 2, - FEAT_MAX = 3, -}; - -struct btrfs_ioctl_space_info { - __u64 flags; - __u64 total_bytes; - __u64 used_bytes; -}; - -struct btrfs_ioctl_space_args { - __u64 space_slots; - __u64 total_spaces; - struct btrfs_ioctl_space_info spaces[0]; -}; - -struct btrfs_ioctl_vol_args { - __s64 fd; - char name[4088]; -}; - -struct btrfs_ioctl_vol_args_v2 { - __s64 fd; - __u64 transid; - __u64 flags; - union { - struct { - __u64 size; - struct btrfs_qgroup_inherit __attribute__((btf_type_tag("user"))) *qgroup_inherit; - }; - __u64 unused[4]; - }; - union { - char name[4040]; - __u64 devid; - __u64 subvolid; - }; -}; - -struct btrfs_ioctl_send_args { - __s64 send_fd; - __u64 clone_sources_count; - __u64 __attribute__((btf_type_tag("user"))) *clone_sources; - __u64 parent_root; - __u64 flags; - __u32 version; - __u8 reserved[28]; -}; - -struct btrfs_ioctl_dev_replace_start_params { - __u64 srcdevid; - __u64 cont_reading_from_srcdev_mode; - __u8 srcdev_name[1025]; - __u8 tgtdev_name[1025]; -}; - -struct btrfs_ioctl_dev_replace_status_params { - __u64 replace_state; - __u64 progress_1000; - __u64 time_started; - __u64 time_stopped; - __u64 num_write_errors; - __u64 num_uncorrectable_read_errors; -}; - -struct btrfs_ioctl_dev_replace_args { - __u64 cmd; - __u64 result; - union { - struct btrfs_ioctl_dev_replace_start_params start; - struct btrfs_ioctl_dev_replace_status_params status; - }; - __u64 spare[64]; -}; - -struct btrfs_ioctl_ino_lookup_user_args { - __u64 dirid; - __u64 treeid; - char name[256]; - char path[3824]; -}; - -struct btrfs_ioctl_fs_info_args { - __u64 max_id; - __u64 num_devices; - __u8 fsid[16]; - __u32 nodesize; - __u32 sectorsize; - __u32 clone_alignment; - __u16 csum_type; - __u16 csum_size; - __u64 flags; - __u64 generation; - __u8 metadata_uuid[16]; - __u8 reserved[944]; -}; - -struct btrfs_ioctl_dev_info_args { - __u64 devid; - __u8 uuid[16]; - __u64 bytes_used; - __u64 total_bytes; - __u8 fsid[16]; - __u64 unused[377]; - __u8 path[1024]; -}; - -struct btrfs_ioctl_search_key { - __u64 tree_id; - __u64 min_objectid; - __u64 max_objectid; - __u64 min_offset; - __u64 max_offset; - __u64 min_transid; - __u64 max_transid; - __u32 min_type; - __u32 max_type; - __u32 nr_items; - __u32 unused; - __u64 unused1; - __u64 unused2; - __u64 unused3; - __u64 unused4; -}; - -struct btrfs_ioctl_search_args { - struct btrfs_ioctl_search_key key; - char buf[3992]; -}; - -struct btrfs_ioctl_search_args_v2 { - struct btrfs_ioctl_search_key key; - __u64 buf_size; - __u64 buf[0]; -}; - -struct btrfs_ioctl_ino_lookup_args { - __u64 treeid; - __u64 objectid; - char name[4080]; -}; - -struct btrfs_ioctl_ino_path_args { - __u64 inum; - __u64 size; - __u64 reserved[4]; - __u64 fspath; -}; - -struct btrfs_ioctl_logical_ino_args { - __u64 logical; - __u64 size; - __u64 reserved[3]; - __u64 flags; - __u64 inodes; -}; - -struct btrfs_ioctl_scrub_args { - __u64 devid; - __u64 start; - __u64 end; - __u64 flags; - struct btrfs_scrub_progress progress; - __u64 unused[109]; -}; - -struct btrfs_ioctl_timespec { - __u64 sec; - __u32 nsec; -}; - -struct btrfs_ioctl_received_subvol_args { - char uuid[16]; - __u64 stransid; - __u64 rtransid; - struct btrfs_ioctl_timespec stime; - struct btrfs_ioctl_timespec rtime; - __u64 flags; - __u64 reserved[16]; -}; - -struct btrfs_ioctl_timespec_32 { - __u64 sec; - __u32 nsec; -} __attribute__((packed)); - -struct btrfs_ioctl_received_subvol_args_32 { - char uuid[16]; - __u64 stransid; - __u64 rtransid; - struct btrfs_ioctl_timespec_32 stime; - struct btrfs_ioctl_timespec_32 rtime; - __u64 flags; - __u64 reserved[16]; -}; - -struct btrfs_ioctl_qgroup_assign_args { - __u64 assign; - __u64 src; - __u64 dst; -}; - -struct btrfs_ioctl_qgroup_create_args { - __u64 create; - __u64 qgroupid; -}; - -struct btrfs_ioctl_qgroup_limit_args { - __u64 qgroupid; - struct btrfs_qgroup_limit lim; -}; - -struct btrfs_ioctl_quota_rescan_args { - __u64 flags; - __u64 progress; - __u64 reserved[6]; -}; - -struct btrfs_ioctl_get_subvol_info_args { - __u64 treeid; - char name[256]; - __u64 parent_id; - __u64 dirid; - __u64 generation; - __u64 flags; - __u8 uuid[16]; - __u8 parent_uuid[16]; - __u8 received_uuid[16]; - __u64 ctransid; - __u64 otransid; - __u64 stransid; - __u64 rtransid; - struct btrfs_ioctl_timespec ctime; - struct btrfs_ioctl_timespec otime; - struct btrfs_ioctl_timespec stime; - struct btrfs_ioctl_timespec rtime; - __u64 reserved[8]; -}; - -struct btrfs_ioctl_get_subvol_rootref_args { - __u64 min_treeid; - struct { - __u64 treeid; - __u64 dirid; - } rootref[255]; - __u8 num_items; - __u8 align[7]; -}; - -struct btrfs_ioctl_search_header { - __u64 transid; - __u64 objectid; - __u64 offset; - __u32 type; - __u32 len; -}; - -struct ahash_alg { - int (*init)(struct ahash_request *); - int (*update)(struct ahash_request *); - int (*final)(struct ahash_request *); - int (*finup)(struct ahash_request *); - int (*digest)(struct ahash_request *); - int (*export)(struct ahash_request *, void *); - int (*import)(struct ahash_request *, const void *); - int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_ahash *); - void (*exit_tfm)(struct crypto_ahash *); - int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); - struct hash_alg_common halg; -}; - -struct ahash_instance { - void (*free)(struct ahash_instance *); - union { - struct { - char head[96]; - struct crypto_instance base; - } s; - struct ahash_alg alg; - }; -}; - -struct crypto_hash_walk { - char *data; - unsigned int offset; - unsigned int flags; - struct page *pg; - unsigned int entrylen; - unsigned int total; - struct scatterlist *sg; -}; - -struct compat_iovec { - compat_uptr_t iov_base; - compat_size_t iov_len; -}; - -typedef s32 compat_ssize_t; - -struct igb_reg_test { - u16 reg; - u16 reg_offset; - u16 array_len; - u16 test_type; - u32 mask; - u32 write; -}; - -struct igb_stats { - char stat_string[32]; - int sizeof_stat; - int stat_offset; -}; - -enum igb_filter_match_flags { - IGB_FILTER_FLAG_ETHER_TYPE = 1, - IGB_FILTER_FLAG_VLAN_TCI = 2, - IGB_FILTER_FLAG_SRC_MAC_ADDR = 4, - IGB_FILTER_FLAG_DST_MAC_ADDR = 8, -}; - -enum e1000_state_t___3 { - __IGB_TESTING = 0, - __IGB_RESETTING = 1, - __IGB_DOWN = 2, - __IGB_PTP_TX_IN_PROGRESS = 3, -}; - -enum igb_diagnostics_results { - TEST_REG = 0, - TEST_EEP = 1, - TEST_IRQ = 2, - TEST_LOOP = 3, - TEST_LINK = 4, -}; - -enum { - ETH_RSS_HASH_TOP_BIT = 0, - ETH_RSS_HASH_XOR_BIT = 1, - ETH_RSS_HASH_CRC32_BIT = 2, - ETH_RSS_HASH_FUNCS_COUNT = 3, -}; - -union e1000_adv_rx_desc { - struct { - __le64 pkt_addr; - __le64 hdr_addr; - } read; - struct { - struct { - struct { - __le16 pkt_info; - __le16 hdr_info; - } lo_dword; - union { - __le32 rss; - struct { - __le16 ip_id; - __le16 csum; - } csum_ip; - } hi_dword; - } lower; - struct { - __le32 status_error; - __le16 length; - __le16 vlan; - } upper; - } wb; -}; - -struct igb_nfc_input { - u8 match_flags; - __be16 etype; - __be16 vlan_tci; - u8 src_addr[6]; - u8 dst_addr[6]; -}; - -struct igb_nfc_filter { - struct hlist_node nfc_node; - struct igb_nfc_input filter; - unsigned long cookie; - u16 etype_reg_index; - u16 sw_idx; - u16 action; -}; - -enum rxdone_entry_desc_flags { - RXDONE_SIGNAL_PLCP = 1, - RXDONE_SIGNAL_BITRATE = 2, - RXDONE_SIGNAL_MCS = 4, - RXDONE_MY_BSS = 8, - RXDONE_CRYPTO_IV = 16, - RXDONE_CRYPTO_ICV = 32, - RXDONE_L2PAD = 64, -}; - -enum tcpa_event_types { - PREBOOT = 0, - POST_CODE = 1, - UNUSED = 2, - NO_ACTION = 3, - SEPARATOR = 4, - ACTION = 5, - EVENT_TAG = 6, - SCRTM_CONTENTS = 7, - SCRTM_VERSION = 8, - CPU_MICROCODE = 9, - PLATFORM_CONFIG_FLAGS = 10, - TABLE_OF_DEVICES = 11, - COMPACT_HASH = 12, - IPL = 13, - IPL_PARTITION_DATA = 14, - NONHOST_CODE = 15, - NONHOST_CONFIG = 16, - NONHOST_INFO = 17, -}; - -struct tpm_digest { - u16 alg_id; - u8 digest[64]; -}; - -struct tcg_pcr_event2_head { - u32 pcr_idx; - u32 event_type; - u32 count; - struct tpm_digest digests[0]; -}; - -struct tcg_efi_specid_event_algs { - u16 alg_id; - u16 digest_size; -}; - -struct tcg_efi_specid_event_head { - u8 signature[16]; - u32 platform_class; - u8 spec_version_minor; - u8 spec_version_major; - u8 spec_errata; - u8 uintnsize; - u32 num_algs; - struct tcg_efi_specid_event_algs digest_sizes[0]; -}; - -struct tcg_event_field { - u32 event_size; - u8 event[0]; -}; - -struct tcg_pcr_event { - u32 pcr_idx; - u32 event_type; - u8 digest[20]; - u32 event_size; - u8 event[0]; -}; - -struct linux_efi_tpm_eventlog { - u32 size; - u32 final_events_preboot_size; - u8 version; - u8 log[0]; -}; - -struct efi_tcg2_final_events_table { - u64 version; - u64 nr_events; - u8 events[0]; -}; - -struct usage_priority { - __u32 usage; - bool global; - unsigned int slot_overwrite; -}; - -typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); - -struct update_classid_context { - u32 classid; - unsigned int batch; -}; - -enum { - ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0, - ETHTOOL_A_TUNNEL_INFO_HEADER = 1, - ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 2, - __ETHTOOL_A_TUNNEL_INFO_CNT = 3, - ETHTOOL_A_TUNNEL_INFO_MAX = 2, -}; - -enum udp_tunnel_nic_info_flags { - UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1, - UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2, - UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4, - UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8, -}; - -enum { - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0, - ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 1, - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 2, - __ETHTOOL_UDP_TUNNEL_TYPE_CNT = 3, -}; - -enum { - ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0, - ETHTOOL_A_TUNNEL_UDP_TABLE = 1, - __ETHTOOL_A_TUNNEL_UDP_CNT = 2, - ETHTOOL_A_TUNNEL_UDP_MAX = 1, -}; - -enum { - ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0, - ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 1, - ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 2, - ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 3, - __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT = 4, - ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 3, -}; - -enum { - ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0, - ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 1, - ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 2, - __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT = 3, - ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 2, -}; - -struct ethnl_tunnel_info_dump_ctx { - struct ethnl_req_info req_info; - unsigned long ifindex; -}; - -enum nft_byteorder_ops { - NFT_BYTEORDER_NTOH = 0, - NFT_BYTEORDER_HTON = 1, -}; - -enum nft_byteorder_attributes { - NFTA_BYTEORDER_UNSPEC = 0, - NFTA_BYTEORDER_SREG = 1, - NFTA_BYTEORDER_DREG = 2, - NFTA_BYTEORDER_OP = 3, - NFTA_BYTEORDER_LEN = 4, - NFTA_BYTEORDER_SIZE = 5, - __NFTA_BYTEORDER_MAX = 6, -}; - -struct nft_byteorder { - u8 sreg; - u8 dreg; - enum nft_byteorder_ops op: 8; - u8 len; - u8 size; -}; - -struct tcpvegas_info { - __u32 tcpv_enabled; - __u32 tcpv_rttcnt; - __u32 tcpv_rtt; - __u32 tcpv_minrtt; -}; - -struct tcp_dctcp_info { - __u16 dctcp_enabled; - __u16 dctcp_ce_state; - __u32 dctcp_alpha; - __u32 dctcp_ab_ecn; - __u32 dctcp_ab_tot; -}; - -struct tcp_bbr_info { - __u32 bbr_bw_lo; - __u32 bbr_bw_hi; - __u32 bbr_min_rtt; - __u32 bbr_pacing_gain; - __u32 bbr_cwnd_gain; -}; - -union tcp_cc_info { - struct tcpvegas_info vegas; - struct tcp_dctcp_info dctcp; - struct tcp_bbr_info bbr; -}; - -enum { - TCP_CMSG_INQ = 1, - TCP_CMSG_TS = 2, -}; - -enum { - BPF_TCP_ESTABLISHED = 1, - BPF_TCP_SYN_SENT = 2, - BPF_TCP_SYN_RECV = 3, - BPF_TCP_FIN_WAIT1 = 4, - BPF_TCP_FIN_WAIT2 = 5, - BPF_TCP_TIME_WAIT = 6, - BPF_TCP_CLOSE = 7, - BPF_TCP_CLOSE_WAIT = 8, - BPF_TCP_LAST_ACK = 9, - BPF_TCP_LISTEN = 10, - BPF_TCP_CLOSING = 11, - BPF_TCP_NEW_SYN_RECV = 12, - BPF_TCP_BOUND_INACTIVE = 13, - BPF_TCP_MAX_STATES = 14, -}; - -enum { - TCP_NLA_PAD = 0, - TCP_NLA_BUSY = 1, - TCP_NLA_RWND_LIMITED = 2, - TCP_NLA_SNDBUF_LIMITED = 3, - TCP_NLA_DATA_SEGS_OUT = 4, - TCP_NLA_TOTAL_RETRANS = 5, - TCP_NLA_PACING_RATE = 6, - TCP_NLA_DELIVERY_RATE = 7, - TCP_NLA_SND_CWND = 8, - TCP_NLA_REORDERING = 9, - TCP_NLA_MIN_RTT = 10, - TCP_NLA_RECUR_RETRANS = 11, - TCP_NLA_DELIVERY_RATE_APP_LMT = 12, - TCP_NLA_SNDQ_SIZE = 13, - TCP_NLA_CA_STATE = 14, - TCP_NLA_SND_SSTHRESH = 15, - TCP_NLA_DELIVERED = 16, - TCP_NLA_DELIVERED_CE = 17, - TCP_NLA_BYTES_SENT = 18, - TCP_NLA_BYTES_RETRANS = 19, - TCP_NLA_DSACK_DUPS = 20, - TCP_NLA_REORD_SEEN = 21, - TCP_NLA_SRTT = 22, - TCP_NLA_TIMEOUT_REHASH = 23, - TCP_NLA_BYTES_NOTSENT = 24, - TCP_NLA_EDT = 25, - TCP_NLA_TTL = 26, - TCP_NLA_REHASH = 27, -}; - -struct tcp_splice_state { - struct pipe_inode_info *pipe; - size_t len; - unsigned int flags; -}; - -struct tcp_info { - __u8 tcpi_state; - __u8 tcpi_ca_state; - __u8 tcpi_retransmits; - __u8 tcpi_probes; - __u8 tcpi_backoff; - __u8 tcpi_options; - __u8 tcpi_snd_wscale: 4; - __u8 tcpi_rcv_wscale: 4; - __u8 tcpi_delivery_rate_app_limited: 1; - __u8 tcpi_fastopen_client_fail: 2; - __u32 tcpi_rto; - __u32 tcpi_ato; - __u32 tcpi_snd_mss; - __u32 tcpi_rcv_mss; - __u32 tcpi_unacked; - __u32 tcpi_sacked; - __u32 tcpi_lost; - __u32 tcpi_retrans; - __u32 tcpi_fackets; - __u32 tcpi_last_data_sent; - __u32 tcpi_last_ack_sent; - __u32 tcpi_last_data_recv; - __u32 tcpi_last_ack_recv; - __u32 tcpi_pmtu; - __u32 tcpi_rcv_ssthresh; - __u32 tcpi_rtt; - __u32 tcpi_rttvar; - __u32 tcpi_snd_ssthresh; - __u32 tcpi_snd_cwnd; - __u32 tcpi_advmss; - __u32 tcpi_reordering; - __u32 tcpi_rcv_rtt; - __u32 tcpi_rcv_space; - __u32 tcpi_total_retrans; - __u64 tcpi_pacing_rate; - __u64 tcpi_max_pacing_rate; - __u64 tcpi_bytes_acked; - __u64 tcpi_bytes_received; - __u32 tcpi_segs_out; - __u32 tcpi_segs_in; - __u32 tcpi_notsent_bytes; - __u32 tcpi_min_rtt; - __u32 tcpi_data_segs_in; - __u32 tcpi_data_segs_out; - __u64 tcpi_delivery_rate; - __u64 tcpi_busy_time; - __u64 tcpi_rwnd_limited; - __u64 tcpi_sndbuf_limited; - __u32 tcpi_delivered; - __u32 tcpi_delivered_ce; - __u64 tcpi_bytes_sent; - __u64 tcpi_bytes_retrans; - __u32 tcpi_dsack_dups; - __u32 tcpi_reord_seen; - __u32 tcpi_rcv_ooopack; - __u32 tcpi_snd_wnd; - __u32 tcpi_rcv_wnd; - __u32 tcpi_rehash; - __u16 tcpi_total_rto; - __u16 tcpi_total_rto_recoveries; - __u32 tcpi_total_rto_time; -}; - -struct tcp_zerocopy_receive { - __u64 address; - __u32 length; - __u32 recv_skip_hint; - __u32 inq; - __s32 err; - __u64 copybuf_address; - __s32 copybuf_len; - __u32 flags; - __u64 msg_control; - __u64 msg_controllen; - __u32 msg_flags; - __u32 reserved; -}; - -struct tcp_repair_opt { - __u32 opt_code; - __u32 opt_val; -}; - -struct tcp_repair_window { - __u32 snd_wl1; - __u32 snd_wnd; - __u32 max_window; - __u32 rcv_wnd; - __u32 rcv_wup; -}; - -enum { - SEG6_ATTR_UNSPEC = 0, - SEG6_ATTR_DST = 1, - SEG6_ATTR_DSTLEN = 2, - SEG6_ATTR_HMACKEYID = 3, - SEG6_ATTR_SECRET = 4, - SEG6_ATTR_SECRETLEN = 5, - SEG6_ATTR_ALGID = 6, - SEG6_ATTR_HMACINFO = 7, - __SEG6_ATTR_MAX = 8, -}; - -enum { - SEG6_CMD_UNSPEC = 0, - SEG6_CMD_SETHMAC = 1, - SEG6_CMD_DUMPHMAC = 2, - SEG6_CMD_SET_TUNSRC = 3, - SEG6_CMD_GET_TUNSRC = 4, - __SEG6_CMD_MAX = 5, -}; - -struct sr6_tlv { - __u8 type; - __u8 len; - __u8 data[0]; -}; - -struct ieee80211_roc_work { - struct list_head list; - struct ieee80211_sub_if_data *sdata; - struct ieee80211_channel *chan; - bool started; - bool abort; - bool hw_begun; - bool notified; - bool on_channel; - unsigned long start_time; - u32 duration; - u32 req_duration; - struct sk_buff *frame; - u64 cookie; - u64 mgmt_tx_cookie; - enum ieee80211_roc_type type; -}; - -struct kretprobe_blackpoint { - const char *name; - void *addr; -}; - -struct __arch_relative_insn { - u8 op; - s32 raddr; -} __attribute__((packed)); - -struct exception_stacks { - char DF_stack_guard[0]; - char DF_stack[8192]; - char NMI_stack_guard[0]; - char NMI_stack[8192]; - char DB_stack_guard[0]; - char DB_stack[8192]; - char MCE_stack_guard[0]; - char MCE_stack[8192]; - char VC_stack_guard[0]; - char VC_stack[0]; - char VC2_stack_guard[0]; - char VC2_stack[0]; - char IST_top_guard[0]; -}; - -enum cpa_warn { - CPA_CONFLICT = 0, - CPA_PROTECT = 1, - CPA_DETECT = 2, -}; - -struct cpa_data { - unsigned long *vaddr; - pgd_t *pgd; - pgprot_t mask_set; - pgprot_t mask_clr; - unsigned long numpages; - unsigned long curpage; - unsigned long pfn; - unsigned int flags; - unsigned int force_split: 1; - unsigned int force_static_prot: 1; - unsigned int force_flush_all: 1; - struct page **pages; -}; - -struct dma_chan___2 { - int lock; - const char *device_id; -}; - -struct rchan_percpu_buf_dispatcher { - struct rchan_buf *buf; - struct dentry *dentry; -}; - -enum bpf_iter_feature { - BPF_ITER_RESCHED = 1, -}; - -struct bpf_iter_target_info { - struct list_head list; - const struct bpf_iter_reg *reg_info; - u32 btf_id; -}; - -struct bpf_iter_link { - struct bpf_link link; - struct bpf_iter_aux_info aux; - struct bpf_iter_target_info *tinfo; -}; - -struct bpf_iter_priv_data { - struct bpf_iter_target_info *tinfo; - const struct bpf_iter_seq_info *seq_info; - struct bpf_prog *prog; - u64 session_id; - u64 seq_num; - bool done_stop; - long: 0; - u8 target_private[0]; -}; - -typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); - -typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); - -struct bpf_iter_num { - __u64 __opaque[1]; -}; - -struct bpf_iter_num_kern { - int cur; - int end; -}; - -enum vmpressure_levels { - VMPRESSURE_LOW = 0, - VMPRESSURE_MEDIUM = 1, - VMPRESSURE_CRITICAL = 2, - VMPRESSURE_NUM_LEVELS = 3, -}; - -enum vmpressure_modes { - VMPRESSURE_NO_PASSTHROUGH = 0, - VMPRESSURE_HIERARCHY = 1, - VMPRESSURE_LOCAL = 2, - VMPRESSURE_NUM_MODES = 3, -}; - -struct vmpressure_event { - struct eventfd_ctx *efd; - enum vmpressure_levels level; - enum vmpressure_modes mode; - struct list_head node; -}; - -struct autofs_packet_missing { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; -}; - -struct autofs_packet_expire_multi { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; -}; - -union autofs_packet_union { - struct autofs_packet_hdr hdr; - struct autofs_packet_missing missing; - struct autofs_packet_expire expire; - struct autofs_packet_expire_multi expire_multi; -}; - -struct autofs_v5_packet { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - __u32 dev; - __u64 ino; - __u32 uid; - __u32 gid; - __u32 pid; - __u32 tgid; - __u32 len; - char name[256]; -}; - -typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; - -typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; - -typedef struct autofs_v5_packet autofs_packet_missing_direct_t; - -typedef struct autofs_v5_packet autofs_packet_expire_direct_t; - -union autofs_v5_packet_union { - struct autofs_packet_hdr hdr; - struct autofs_v5_packet v5_packet; - autofs_packet_missing_indirect_t missing_indirect; - autofs_packet_expire_indirect_t expire_indirect; - autofs_packet_missing_direct_t missing_direct; - autofs_packet_expire_direct_t expire_direct; -}; - -struct workspace___2 { - void *mem; - void *buf; - void *cbuf; - struct list_head list; -}; - -struct crypto_queue { - struct list_head list; - struct list_head *backlog; - unsigned int qlen; - unsigned int max_qlen; -}; - -struct lzo_ctx { - void *lzo_comp_mem; -}; - -struct io_rename { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; -}; - -struct io_unlink { - struct file *file; - int dfd; - int flags; - struct filename *filename; -}; - -struct io_mkdir { - struct file *file; - int dfd; - umode_t mode; - struct filename *filename; -}; - -struct io_link { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; -}; - -typedef enum { - need_more = 0, - block_done = 1, - finish_started = 2, - finish_done = 3, -} block_state; - -typedef block_state (*compress_func)(deflate_state *, int); - -struct config_s { - ush good_length; - ush max_lazy; - ush nice_length; - ush max_chain; - compress_func func; -}; - -typedef struct config_s config; - -struct deflate_workspace { - deflate_state deflate_memory; - Byte *window_memory; - Pos *prev_memory; - Pos *head_memory; - char *overlay_memory; -}; - -typedef struct deflate_workspace deflate_workspace; - -struct acpi_ged_event { - struct list_head node; - struct device *dev; - unsigned int gsi; - unsigned int irq; - acpi_handle handle; -}; - -struct acpi_ged_device { - struct device *dev; - struct list_head event_list; -}; - -struct subsys_dev_iter { - struct klist_iter ki; - const struct device_type *type; -}; - -struct scsi_host_busy_iter_data { - bool (*fn)(struct scsi_cmnd *, void *); - void *priv; -}; - -struct tctl_offset { - u8 model; - const char *id; - int offset; -}; - -struct hwmon_ops; - -struct hwmon_channel_info; - -struct hwmon_chip_info { - const struct hwmon_ops *ops; - const struct hwmon_channel_info * const *info; -}; - -enum hwmon_sensor_types { - hwmon_chip = 0, - hwmon_temp = 1, - hwmon_in = 2, - hwmon_curr = 3, - hwmon_power = 4, - hwmon_energy = 5, - hwmon_humidity = 6, - hwmon_fan = 7, - hwmon_pwm = 8, - hwmon_intrusion = 9, - hwmon_max = 10, -}; - -struct hwmon_ops { - umode_t (*is_visible)(const void *, enum hwmon_sensor_types, u32, int); - int (*read)(struct device *, enum hwmon_sensor_types, u32, int, long *); - int (*read_string)(struct device *, enum hwmon_sensor_types, u32, int, const char **); - int (*write)(struct device *, enum hwmon_sensor_types, u32, int, long); -}; - -struct hwmon_channel_info { - enum hwmon_sensor_types type; - const u32 *config; -}; - -enum hwmon_temp_attributes { - hwmon_temp_enable = 0, - hwmon_temp_input = 1, - hwmon_temp_type = 2, - hwmon_temp_lcrit = 3, - hwmon_temp_lcrit_hyst = 4, - hwmon_temp_min = 5, - hwmon_temp_min_hyst = 6, - hwmon_temp_max = 7, - hwmon_temp_max_hyst = 8, - hwmon_temp_crit = 9, - hwmon_temp_crit_hyst = 10, - hwmon_temp_emergency = 11, - hwmon_temp_emergency_hyst = 12, - hwmon_temp_alarm = 13, - hwmon_temp_lcrit_alarm = 14, - hwmon_temp_min_alarm = 15, - hwmon_temp_max_alarm = 16, - hwmon_temp_crit_alarm = 17, - hwmon_temp_emergency_alarm = 18, - hwmon_temp_fault = 19, - hwmon_temp_offset = 20, - hwmon_temp_label = 21, - hwmon_temp_lowest = 22, - hwmon_temp_highest = 23, - hwmon_temp_reset_history = 24, - hwmon_temp_rated_min = 25, - hwmon_temp_rated_max = 26, - hwmon_temp_beep = 27, -}; - -struct k10temp_data { - struct pci_dev *pdev; - void (*read_htcreg)(struct pci_dev *, u32 *); - void (*read_tempreg)(struct pci_dev *, u32 *); - int temp_offset; - u32 temp_adjust_mask; - u32 show_temp; - bool is_zen; - u32 ccd_offset; - bool disp_negative; -}; - -struct quirks_list_struct { - struct hid_device_id hid_bl_item; - struct list_head node; -}; - -struct llc_pdu_un { - u8 dsap; - u8 ssap; - u8 ctrl_1; -}; - -enum nfnl_batch_attributes { - NFNL_BATCH_UNSPEC = 0, - NFNL_BATCH_GENID = 1, - __NFNL_BATCH_MAX = 2, -}; - -enum { - NFNL_BATCH_FAILURE = 1, - NFNL_BATCH_DONE = 2, - NFNL_BATCH_REPLAY = 4, -}; - -struct nfnl_err { - struct list_head head; - struct nlmsghdr *nlh; - int err; - struct netlink_ext_ack extack; -}; - -struct nfnl_net { - struct sock *nfnl; -}; - -typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32); - -struct bpf_struct_ops_tcp_congestion_ops { - struct bpf_struct_ops_common_value common; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct tcp_congestion_ops data; -}; - -union cpuid10_eax { - struct { - unsigned int version_id: 8; - unsigned int num_counters: 8; - unsigned int bit_width: 8; - unsigned int mask_length: 8; - } split; - unsigned int full; -}; - -union cpuid10_edx { - struct { - unsigned int num_counters_fixed: 5; - unsigned int bit_width_fixed: 8; - unsigned int reserved1: 2; - unsigned int anythread_deprecated: 1; - unsigned int reserved2: 16; - } split; - unsigned int full; -}; - -union cpuid10_ebx { - struct { - unsigned int no_unhalted_core_cycles: 1; - unsigned int no_instructions_retired: 1; - unsigned int no_unhalted_reference_cycles: 1; - unsigned int no_llc_reference: 1; - unsigned int no_llc_misses: 1; - unsigned int no_branch_instruction_retired: 1; - unsigned int no_branch_misses_retired: 1; - } split; - unsigned int full; -}; - -struct sched_param { - int sched_priority; -}; - -enum KTHREAD_BITS { - KTHREAD_IS_PER_CPU = 0, - KTHREAD_SHOULD_STOP = 1, - KTHREAD_SHOULD_PARK = 2, -}; - -enum { - KTW_FREEZABLE = 1, -}; - -struct kthread_create_info { - char *full_name; - int (*threadfn)(void *); - void *data; - int node; - struct task_struct *result; - struct completion *done; - struct list_head list; -}; - -struct kthread_flush_work { - struct kthread_work work; - struct completion done; -}; - -struct kthread { - unsigned long flags; - unsigned int cpu; - int result; - int (*threadfn)(void *); - void *data; - struct completion parked; - struct completion exited; - struct cgroup_subsys_state *blkcg_css; - char *full_name; -}; - -enum suspend_stat_step { - SUSPEND_WORKING = 0, - SUSPEND_FREEZE = 1, - SUSPEND_PREPARE = 2, - SUSPEND_SUSPEND = 3, - SUSPEND_SUSPEND_LATE = 4, - SUSPEND_SUSPEND_NOIRQ = 5, - SUSPEND_RESUME_NOIRQ = 6, - SUSPEND_RESUME_EARLY = 7, - SUSPEND_RESUME = 8, -}; - -struct suspend_stats { - unsigned int step_failures[8]; - unsigned int success; - unsigned int fail; - int last_failed_dev; - char failed_devs[80]; - int last_failed_errno; - int errno[2]; - int last_failed_step; - u64 last_hw_sleep; - u64 total_hw_sleep; - u64 max_hw_sleep; - enum suspend_stat_step failed_steps[2]; -}; - -enum { - FTRACE_UPDATE_CALLS = 1, - FTRACE_DISABLE_CALLS = 2, - FTRACE_UPDATE_TRACE_FUNC = 4, - FTRACE_START_FUNC_RET = 8, - FTRACE_STOP_FUNC_RET = 16, - FTRACE_MAY_SLEEP = 32, -}; - -struct fgraph_ret_regs { - unsigned long ax; - unsigned long dx; - unsigned long bp; -}; - -struct btf_kfunc_hook_filter { - btf_kfunc_filter_t filters[16]; - u32 nr_filters; -}; - -struct btf_kfunc_set_tab { - struct btf_id_set8 *sets[13]; - struct btf_kfunc_hook_filter hook_filters[13]; -}; - -struct btf_id_dtor_kfunc_tab { - u32 cnt; - struct btf_id_dtor_kfunc dtors[0]; -}; - -struct btf_struct_metas { - u32 cnt; - struct btf_struct_meta types[0]; -}; - -struct btf_struct_ops_tab { - u32 cnt; - u32 capacity; - struct bpf_struct_ops_desc ops[0]; -}; - -struct bpf_sock_addr { - __u32 user_family; - __u32 user_ip4; - __u32 user_ip6[4]; - __u32 user_port; - __u32 family; - __u32 type; - __u32 protocol; - __u32 msg_src_ip4; - __u32 msg_src_ip6[4]; - union { - struct bpf_sock *sk; - }; -}; - -struct bpf_sock_ops { - __u32 op; - union { - __u32 args[4]; - __u32 reply; - __u32 replylong[4]; - }; - __u32 family; - __u32 remote_ip4; - __u32 local_ip4; - __u32 remote_ip6[4]; - __u32 local_ip6[4]; - __u32 remote_port; - __u32 local_port; - __u32 is_fullsock; - __u32 snd_cwnd; - __u32 srtt_us; - __u32 bpf_sock_ops_cb_flags; - __u32 state; - __u32 rtt_min; - __u32 snd_ssthresh; - __u32 rcv_nxt; - __u32 snd_nxt; - __u32 snd_una; - __u32 mss_cache; - __u32 ecn_flags; - __u32 rate_delivered; - __u32 rate_interval_us; - __u32 packets_out; - __u32 retrans_out; - __u32 total_retrans; - __u32 segs_in; - __u32 data_segs_in; - __u32 segs_out; - __u32 data_segs_out; - __u32 lost_out; - __u32 sacked_out; - __u32 sk_txhash; - __u64 bytes_received; - __u64 bytes_acked; - union { - struct bpf_sock *sk; - }; - union { - void *skb_data; - }; - union { - void *skb_data_end; - }; - __u32 skb_len; - __u32 skb_tcp_flags; - __u64 skb_hwtstamp; -}; - -struct sk_msg_md { - union { - void *data; - }; - union { - void *data_end; - }; - __u32 family; - __u32 remote_ip4; - __u32 local_ip4; - __u32 remote_ip6[4]; - __u32 local_ip6[4]; - __u32 remote_port; - __u32 local_port; - __u32 size; - union { - struct bpf_sock *sk; - }; -}; - -struct bpf_perf_event_data { - bpf_user_pt_regs_t regs; - __u64 sample_period; - __u64 addr; -}; - -struct bpf_raw_tracepoint_args { - __u64 args[0]; -}; - -struct bpf_cgroup_dev_ctx { - __u32 access_type; - __u32 major; - __u32 minor; -}; - -struct bpf_sysctl { - __u32 write; - __u32 file_pos; -}; - -struct bpf_sysctl_kern { - struct ctl_table_header *head; - struct ctl_table *table; - void *cur_val; - size_t cur_len; - void *new_val; - size_t new_len; - int new_updated; - int write; - loff_t *ppos; - u64 tmp_reg; -}; - -struct bpf_sockopt { - union { - struct bpf_sock *sk; - }; - union { - void *optval; - }; - union { - void *optval_end; - }; - __s32 level; - __s32 optname; - __s32 optlen; - __s32 retval; -}; - -struct bpf_sockopt_kern { - struct sock *sk; - u8 *optval; - u8 *optval_end; - s32 level; - s32 optname; - s32 optlen; - struct task_struct *current_task; - u64 tmp_reg; -}; - -struct sk_reuseport_md { - union { - void *data; - }; - union { - void *data_end; - }; - __u32 len; - __u32 eth_protocol; - __u32 ip_protocol; - __u32 bind_inany; - __u32 hash; - union { - struct bpf_sock *sk; - }; - union { - struct bpf_sock *migrating_sk; - }; -}; - -struct bpf_ctx_convert { - struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; - struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; - struct xdp_md BPF_PROG_TYPE_XDP_prog; - struct xdp_buff BPF_PROG_TYPE_XDP_kern; - struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; - struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; - struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; - struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; - struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; - struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; - struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; - struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; - struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; - struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; - struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; - struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; - struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; - struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; - struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; - struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; - bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; - struct pt_regs BPF_PROG_TYPE_KPROBE_kern; - __u64 BPF_PROG_TYPE_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_TRACEPOINT_kern; - struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; - struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; - void *BPF_PROG_TYPE_TRACING_prog; - void *BPF_PROG_TYPE_TRACING_kern; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; - struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; - struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; - struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; - struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; - struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; - struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; - struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; - struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; - void *BPF_PROG_TYPE_STRUCT_OPS_prog; - void *BPF_PROG_TYPE_STRUCT_OPS_kern; - void *BPF_PROG_TYPE_EXT_prog; - void *BPF_PROG_TYPE_EXT_kern; - void *BPF_PROG_TYPE_SYSCALL_prog; - void *BPF_PROG_TYPE_SYSCALL_kern; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; -}; - -struct btf_verifier_env; - -struct resolve_vertex; - -struct btf_show; - -struct btf_kind_operations { - s32 (*check_meta)(struct btf_verifier_env *, const struct btf_type *, u32); - int (*resolve)(struct btf_verifier_env *, const struct resolve_vertex *); - int (*check_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *); - int (*check_kflag_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *); - void (*log_details)(struct btf_verifier_env *, const struct btf_type *); - void (*show)(const struct btf *, const struct btf_type *, u32, void *, u8, struct btf_show *); -}; - -struct resolve_vertex { - const struct btf_type *t; - u32 type_id; - u16 next_member; -}; - -enum verifier_phase { - CHECK_META = 0, - CHECK_TYPE = 1, -}; - -enum resolve_mode { - RESOLVE_TBD = 0, - RESOLVE_PTR = 1, - RESOLVE_STRUCT_OR_ARRAY = 2, -}; - -struct btf_verifier_env { - struct btf *btf; - u8 *visit_states; - struct resolve_vertex stack[32]; - struct bpf_verifier_log log; - u32 log_type_id; - u32 top_stack; - enum verifier_phase phase; - enum resolve_mode resolve_mode; -}; - -struct btf_show { - u64 flags; - void *target; - void (*showfn)(struct btf_show *, const char *, struct __va_list_tag *); - const struct btf *btf; - struct { - u8 depth; - u8 depth_to_show; - u8 depth_check; - u8 array_member: 1; - u8 array_terminated: 1; - u16 array_encoding; - u32 type_id; - int status; - const struct btf_type *type; - const struct btf_member *member; - char name[80]; - } state; - struct { - u32 size; - void *head; - void *data; - u8 safe[32]; - } obj; -}; - -struct bpf_cand_cache { - const char *name; - u32 name_len; - u16 kind; - u16 cnt; - struct { - const struct btf *btf; - u32 id; - } cands[0]; -}; - -enum bpf_struct_walk_result { - WALK_SCALAR = 0, - WALK_PTR = 1, - WALK_STRUCT = 2, -}; - -enum btf_arg_tag { - ARG_TAG_CTX = 1, - ARG_TAG_NONNULL = 2, - ARG_TAG_TRUSTED = 4, - ARG_TAG_NULLABLE = 8, - ARG_TAG_ARENA = 16, -}; - -enum { - BTF_F_COMPACT = 1, - BTF_F_NONAME = 2, - BTF_F_PTR_RAW = 4, - BTF_F_ZERO = 8, -}; - -enum { - BTF_MODULE_F_LIVE = 1, -}; - -enum btf_kfunc_hook { - BTF_KFUNC_HOOK_COMMON = 0, - BTF_KFUNC_HOOK_XDP = 1, - BTF_KFUNC_HOOK_TC = 2, - BTF_KFUNC_HOOK_STRUCT_OPS = 3, - BTF_KFUNC_HOOK_TRACING = 4, - BTF_KFUNC_HOOK_SYSCALL = 5, - BTF_KFUNC_HOOK_FMODRET = 6, - BTF_KFUNC_HOOK_CGROUP_SKB = 7, - BTF_KFUNC_HOOK_SCHED_ACT = 8, - BTF_KFUNC_HOOK_SK_SKB = 9, - BTF_KFUNC_HOOK_SOCKET_FILTER = 10, - BTF_KFUNC_HOOK_LWT = 11, - BTF_KFUNC_HOOK_NETFILTER = 12, - BTF_KFUNC_HOOK_MAX = 13, -}; - -enum { - BTF_KFUNC_SET_MAX_CNT = 256, - BTF_DTOR_KFUNC_MAX_CNT = 256, - BTF_KFUNC_FILTER_MAX_CNT = 16, -}; - -enum { - BTF_FIELD_IGNORE = 0, - BTF_FIELD_FOUND = 1, -}; - -enum visit_state { - NOT_VISITED = 0, - VISITED = 1, - RESOLVED = 2, -}; - -enum { - BTF_VAR_STATIC = 0, - BTF_VAR_GLOBAL_ALLOCATED = 1, - BTF_VAR_GLOBAL_EXTERN = 2, -}; - -struct btf_module { - struct list_head list; - struct module *module; - struct btf *btf; - struct bin_attribute *sysfs_attr; - int flags; -}; - -typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); - -struct btf_decl_tag { - __s32 component_idx; -}; - -struct btf_sec_info { - u32 off; - u32 len; -}; - -struct btf_var { - __u32 linkage; -}; - -struct btf_show_snprintf { - struct btf_show show; - int len_left; - int len; -}; - -struct btf_field_info { - enum btf_field_type type; - u32 off; - union { - struct { - u32 type_id; - } kptr; - struct { - const char *node_name; - u32 value_btf_id; - } graph_root; - }; -}; - -enum mm_cid_state { - MM_CID_UNSET = 4294967295, - MM_CID_LAZY_PUT = 2147483648, -}; - -struct user_arg_ptr { - union { - const char __attribute__((btf_type_tag("user"))) * const __attribute__((btf_type_tag("user"))) *native; - } ptr; -}; - -struct ext4_system_zone { - struct rb_node node; - ext4_fsblk_t start_blk; - unsigned int count; - u32 ino; -}; - -enum { - EVENTFS_SAVE_MODE = 65536, - EVENTFS_SAVE_UID = 131072, - EVENTFS_SAVE_GID = 262144, - EVENTFS_TOPLEVEL = 524288, -}; - -struct eventfs_root_inode { - struct eventfs_inode ei; - struct dentry *events_dir; -}; - -enum btrfs_subpage_type { - BTRFS_SUBPAGE_METADATA = 0, - BTRFS_SUBPAGE_DATA = 1, -}; - -struct btrfs_bio_ctrl { - struct btrfs_bio *bbio; - enum btrfs_compression_type compress_type; - u32 len_to_oe_boundary; - blk_opf_t opf; - btrfs_bio_end_io_t end_io_func; - struct writeback_control *wbc; -}; - -struct btrfs_eb_write_context { - struct writeback_control *wbc; - struct extent_buffer *eb; - struct btrfs_block_group *zoned_bg; -}; - -struct btrfs_fiemap_entry; - -struct fiemap_cache { - struct btrfs_fiemap_entry *entries; - int entries_size; - int entries_pos; - u64 next_search_offset; - unsigned int extents_mapped; - u64 offset; - u64 phys; - u64 len; - u32 flags; - bool cached; -}; - -struct btrfs_fiemap_entry { - u64 offset; - u64 phys; - u64 len; - u32 flags; -}; - -struct processed_extent { - struct btrfs_inode *inode; - u64 start; - u64 end; - bool uptodate; -}; - -struct ghash_ctx { - struct gf128mul_4k *gf128; -}; - -struct ghash_desc_ctx { - u8 buffer[16]; - u32 bytes; -}; - -enum backlight_type { - BACKLIGHT_RAW = 1, - BACKLIGHT_PLATFORM = 2, - BACKLIGHT_FIRMWARE = 3, - BACKLIGHT_TYPE_MAX = 4, -}; - -enum backlight_scale { - BACKLIGHT_SCALE_UNKNOWN = 0, - BACKLIGHT_SCALE_LINEAR = 1, - BACKLIGHT_SCALE_NON_LINEAR = 2, -}; - -enum backlight_update_reason { - BACKLIGHT_UPDATE_HOTKEY = 0, - BACKLIGHT_UPDATE_SYSFS = 1, -}; - -enum backlight_notification { - BACKLIGHT_REGISTERED = 0, - BACKLIGHT_UNREGISTERED = 1, -}; - -struct backlight_properties { - int brightness; - int max_brightness; - int power; - int fb_blank; - enum backlight_type type; - unsigned int state; - enum backlight_scale scale; -}; - -struct backlight_ops; - -struct backlight_device { - struct backlight_properties props; - struct mutex update_lock; - struct mutex ops_lock; - const struct backlight_ops *ops; - struct notifier_block fb_notif; - struct list_head entry; - struct device dev; - bool fb_bl_on[32]; - int use_count; -}; - -struct backlight_ops { - unsigned int options; - int (*update_status)(struct backlight_device *); - int (*get_brightness)(struct backlight_device *); - int (*check_fb)(struct backlight_device *, struct fb_info *); -}; - -struct fb_event { - struct fb_info *info; - void *data; -}; - -struct acpi_gpio_params { - unsigned int crs_entry_index; - unsigned int line_index; - bool active_low; -}; - -struct class_attribute { - struct attribute attr; - ssize_t (*show)(const struct class *, const struct class_attribute *, char *); - ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); -}; - -struct class_attribute_string { - struct class_attribute attr; - char *str; -}; - -struct class_compat { - struct kobject *kobj; -}; - -enum { - NVME_IOCTL_VEC = 1, - NVME_IOCTL_PARTITION = 2, -}; - -struct nvme_uring_cmd_pdu { - struct request *req; - struct bio *bio; - u64 result; - int status; -}; - -struct nvme_user_io { - __u8 opcode; - __u8 flags; - __u16 control; - __u16 nblocks; - __u16 rsvd; - __u64 metadata; - __u64 addr; - __u64 slba; - __u32 dsmgmt; - __u32 reftag; - __u16 apptag; - __u16 appmask; -}; - -struct nvme_uring_cmd { - __u8 opcode; - __u8 flags; - __u16 rsvd1; - __u32 nsid; - __u32 cdw2; - __u32 cdw3; - __u64 metadata; - __u64 addr; - __u32 metadata_len; - __u32 data_len; - __u32 cdw10; - __u32 cdw11; - __u32 cdw12; - __u32 cdw13; - __u32 cdw14; - __u32 cdw15; - __u32 timeout_ms; - __u32 rsvd2; -}; - -struct nvme_uring_data { - __u64 metadata; - __u64 addr; - __u32 data_len; - __u32 metadata_len; - __u32 timeout_ms; -}; - -struct nvme_passthru_cmd { - __u8 opcode; - __u8 flags; - __u16 rsvd1; - __u32 nsid; - __u32 cdw2; - __u32 cdw3; - __u64 metadata; - __u64 addr; - __u32 metadata_len; - __u32 data_len; - __u32 cdw10; - __u32 cdw11; - __u32 cdw12; - __u32 cdw13; - __u32 cdw14; - __u32 cdw15; - __u32 timeout_ms; - __u32 result; -}; - -struct nvme_passthru_cmd64 { - __u8 opcode; - __u8 flags; - __u16 rsvd1; - __u32 nsid; - __u32 cdw2; - __u32 cdw3; - __u64 metadata; - __u64 addr; - __u32 metadata_len; - union { - __u32 data_len; - __u32 vec_cnt; - }; - __u32 cdw10; - __u32 cdw11; - __u32 cdw12; - __u32 cdw13; - __u32 cdw14; - __u32 cdw15; - __u32 timeout_ms; - __u32 rsvd2; - __u64 result; -}; - -struct iwl_synced_time_cmd { - __le32 operation; -}; - -struct iwl_synced_time_rsp { - __le32 operation; - __le32 platform_timestamp_hi; - __le32 platform_timestamp_lo; - __le32 gp2_timestamp_hi; - __le32 gp2_timestamp_lo; -}; - -typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); - -typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); - -typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); - -typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); - -struct trace_event_raw_i2c_write { - struct trace_entry ent; - int adapter_nr; - __u16 msg_nr; - __u16 addr; - __u16 flags; - __u16 len; - u32 __data_loc_buf; - char __data[0]; -}; - -struct trace_event_raw_i2c_read { - struct trace_entry ent; - int adapter_nr; - __u16 msg_nr; - __u16 addr; - __u16 flags; - __u16 len; - char __data[0]; -}; - -struct trace_event_raw_i2c_reply { - struct trace_entry ent; - int adapter_nr; - __u16 msg_nr; - __u16 addr; - __u16 flags; - __u16 len; - u32 __data_loc_buf; - char __data[0]; -}; - -struct trace_event_raw_i2c_result { - struct trace_entry ent; - int adapter_nr; - __u16 nr_msgs; - __s16 ret; - char __data[0]; -}; - -struct i2c_devinfo { - struct list_head list; - int busnum; - struct i2c_board_info board_info; -}; - -struct trace_event_data_offsets_i2c_write { - u32 buf; - const void *buf_ptr_; -}; - -struct trace_event_data_offsets_i2c_reply { - u32 buf; - const void *buf_ptr_; -}; - -struct trace_event_data_offsets_i2c_read {}; - -struct trace_event_data_offsets_i2c_result {}; - -struct i2c_timings { - u32 bus_freq_hz; - u32 scl_rise_ns; - u32 scl_fall_ns; - u32 scl_int_delay_ns; - u32 sda_fall_ns; - u32 sda_hold_ns; - u32 digital_filter_width_ns; - u32 analog_filter_cutoff_freq_hz; -}; - -struct i2c_cmd_arg { - unsigned int cmd; - void *arg; -}; - -struct i2c_device_identity { - u16 manufacturer_id; - u16 part_id; - u8 die_revision; -}; - -struct firmware_map_entry; - -struct memmap_attribute { - struct attribute attr; - ssize_t (*show)(struct firmware_map_entry *, char *); -}; - -struct firmware_map_entry { - u64 start; - u64 end; - const char *type; - struct list_head list; - struct kobject kobj; -}; - -struct llc_pdu_sn { - u8 dsap; - u8 ssap; - u8 ctrl_1; - u8 ctrl_2; -}; - -enum { - ETHTOOL_STATS_ETH_PHY = 0, - ETHTOOL_STATS_ETH_MAC = 1, - ETHTOOL_STATS_ETH_CTRL = 2, - ETHTOOL_STATS_RMON = 3, - __ETHTOOL_STATS_CNT = 4, -}; - -enum { - ETHTOOL_A_STATS_UNSPEC = 0, - ETHTOOL_A_STATS_PAD = 1, - ETHTOOL_A_STATS_HEADER = 2, - ETHTOOL_A_STATS_GROUPS = 3, - ETHTOOL_A_STATS_GRP = 4, - ETHTOOL_A_STATS_SRC = 5, - __ETHTOOL_A_STATS_CNT = 6, - ETHTOOL_A_STATS_MAX = 5, -}; - -enum { - ETHTOOL_A_STATS_GRP_UNSPEC = 0, - ETHTOOL_A_STATS_GRP_PAD = 1, - ETHTOOL_A_STATS_GRP_ID = 2, - ETHTOOL_A_STATS_GRP_SS_ID = 3, - ETHTOOL_A_STATS_GRP_STAT = 4, - ETHTOOL_A_STATS_GRP_HIST_RX = 5, - ETHTOOL_A_STATS_GRP_HIST_TX = 6, - ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, - ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, - ETHTOOL_A_STATS_GRP_HIST_VAL = 9, - __ETHTOOL_A_STATS_GRP_CNT = 10, - ETHTOOL_A_STATS_GRP_MAX = 9, -}; - -enum { - ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, - __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, - ETHTOOL_A_STATS_ETH_PHY_MAX = 0, -}; - -enum { - ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT = 0, - ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL = 1, - ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL = 2, - ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT = 3, - ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR = 4, - ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR = 5, - ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES = 6, - ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER = 7, - ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL = 8, - ETHTOOL_A_STATS_ETH_MAC_11_XS_COL = 9, - ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR = 10, - ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR = 11, - ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES = 12, - ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR = 13, - ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST = 14, - ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST = 15, - ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER = 16, - ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST = 17, - ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST = 18, - ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR = 19, - ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN = 20, - ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR = 21, - __ETHTOOL_A_STATS_ETH_MAC_CNT = 22, - ETHTOOL_A_STATS_ETH_MAC_MAX = 21, -}; - -enum { - ETHTOOL_A_STATS_ETH_CTRL_3_TX = 0, - ETHTOOL_A_STATS_ETH_CTRL_4_RX = 1, - ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP = 2, - __ETHTOOL_A_STATS_ETH_CTRL_CNT = 3, - ETHTOOL_A_STATS_ETH_CTRL_MAX = 2, -}; - -enum { - ETHTOOL_A_STATS_RMON_UNDERSIZE = 0, - ETHTOOL_A_STATS_RMON_OVERSIZE = 1, - ETHTOOL_A_STATS_RMON_FRAG = 2, - ETHTOOL_A_STATS_RMON_JABBER = 3, - __ETHTOOL_A_STATS_RMON_CNT = 4, - ETHTOOL_A_STATS_RMON_MAX = 3, -}; - -struct stats_req_info { - struct ethnl_req_info base; - unsigned long stat_mask[1]; - enum ethtool_mac_stats_src src; -}; - -struct stats_reply_data { - struct ethnl_reply_data base; - union { - struct { - struct ethtool_eth_phy_stats phy_stats; - struct ethtool_eth_mac_stats mac_stats; - struct ethtool_eth_ctrl_stats ctrl_stats; - struct ethtool_rmon_stats rmon_stats; - }; - struct { - struct ethtool_eth_phy_stats phy_stats; - struct ethtool_eth_mac_stats mac_stats; - struct ethtool_eth_ctrl_stats ctrl_stats; - struct ethtool_rmon_stats rmon_stats; - } stats; - }; - const struct ethtool_rmon_hist_range *rmon_ranges; -}; - -enum flow_cls_command { - FLOW_CLS_REPLACE = 0, - FLOW_CLS_DESTROY = 1, - FLOW_CLS_STATS = 2, - FLOW_CLS_TMPLT_CREATE = 3, - FLOW_CLS_TMPLT_DESTROY = 4, -}; - -enum flow_block_binder_type { - FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0, - FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1, - FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2, - FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3, - FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4, -}; - -struct flow_block_cb; - -struct flow_block_indr { - struct list_head list; - struct net_device *dev; - struct Qdisc *sch; - enum flow_block_binder_type binder_type; - void *data; - void *cb_priv; - void (*cleanup)(struct flow_block_cb *); -}; - -struct flow_block_cb { - struct list_head driver_list; - struct list_head list; - flow_setup_cb_t *cb; - void *cb_ident; - void *cb_priv; - void (*release)(void *); - struct flow_block_indr indr; - unsigned int refcnt; -}; - -struct nft_offload_ethertype { - __be16 value; - __be16 mask; -}; - -struct flow_cls_common_offload { - u32 chain_index; - __be16 protocol; - u32 prio; - struct netlink_ext_ack *extack; -}; - -struct flow_cls_offload { - struct flow_cls_common_offload common; - enum flow_cls_command command; - bool use_act_stats; - unsigned long cookie; - struct flow_rule *rule; - struct flow_stats stats; - u32 classid; -}; - -struct flow_block_offload { - enum flow_block_command command; - enum flow_block_binder_type binder_type; - bool block_shared; - bool unlocked_driver_cb; - struct net *net; - struct flow_block *block; - struct list_head cb_list; - struct list_head *driver_block_list; - struct netlink_ext_ack *extack; - struct Qdisc *sch; - struct list_head *cb_list_head; -}; - -enum nexthop_event_type { - NEXTHOP_EVENT_DEL = 0, - NEXTHOP_EVENT_REPLACE = 1, - NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, - NEXTHOP_EVENT_BUCKET_REPLACE = 3, - NEXTHOP_EVENT_HW_STATS_REPORT_DELTA = 4, -}; - -enum nh_notifier_info_type { - NH_NOTIFIER_INFO_TYPE_SINGLE = 0, - NH_NOTIFIER_INFO_TYPE_GRP = 1, - NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2, - NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3, - NH_NOTIFIER_INFO_TYPE_GRP_HW_STATS = 4, -}; - -enum { - NHA_UNSPEC = 0, - NHA_ID = 1, - NHA_GROUP = 2, - NHA_GROUP_TYPE = 3, - NHA_BLACKHOLE = 4, - NHA_OIF = 5, - NHA_GATEWAY = 6, - NHA_ENCAP_TYPE = 7, - NHA_ENCAP = 8, - NHA_GROUPS = 9, - NHA_MASTER = 10, - NHA_FDB = 11, - NHA_RES_GROUP = 12, - NHA_RES_BUCKET = 13, - NHA_OP_FLAGS = 14, - NHA_GROUP_STATS = 15, - NHA_HW_STATS_ENABLE = 16, - NHA_HW_STATS_USED = 17, - __NHA_MAX = 18, -}; - -enum { - NEXTHOP_GRP_TYPE_MPATH = 0, - NEXTHOP_GRP_TYPE_RES = 1, - __NEXTHOP_GRP_TYPE_MAX = 2, -}; - -enum { - NHA_RES_GROUP_UNSPEC = 0, - NHA_RES_GROUP_PAD = 0, - NHA_RES_GROUP_BUCKETS = 1, - NHA_RES_GROUP_IDLE_TIMER = 2, - NHA_RES_GROUP_UNBALANCED_TIMER = 3, - NHA_RES_GROUP_UNBALANCED_TIME = 4, - __NHA_RES_GROUP_MAX = 5, -}; - -enum { - NHA_GROUP_STATS_UNSPEC = 0, - NHA_GROUP_STATS_ENTRY = 1, - __NHA_GROUP_STATS_MAX = 2, -}; - -enum { - NHA_GROUP_STATS_ENTRY_UNSPEC = 0, - NHA_GROUP_STATS_ENTRY_ID = 1, - NHA_GROUP_STATS_ENTRY_PACKETS = 2, - NHA_GROUP_STATS_ENTRY_PACKETS_HW = 3, - __NHA_GROUP_STATS_ENTRY_MAX = 4, -}; - -enum { - NHA_RES_BUCKET_UNSPEC = 0, - NHA_RES_BUCKET_PAD = 0, - NHA_RES_BUCKET_INDEX = 1, - NHA_RES_BUCKET_IDLE_TIME = 2, - NHA_RES_BUCKET_NH_ID = 3, - __NHA_RES_BUCKET_MAX = 4, -}; - -struct nh_notifier_single_info; - -struct nh_notifier_grp_info; - -struct nh_notifier_res_table_info; - -struct nh_notifier_res_bucket_info; - -struct nh_notifier_grp_hw_stats_info; - -struct nh_notifier_info { - struct net *net; - struct netlink_ext_ack *extack; - u32 id; - enum nh_notifier_info_type type; - union { - struct nh_notifier_single_info *nh; - struct nh_notifier_grp_info *nh_grp; - struct nh_notifier_res_table_info *nh_res_table; - struct nh_notifier_res_bucket_info *nh_res_bucket; - struct nh_notifier_grp_hw_stats_info *nh_grp_hw_stats; - }; -}; - -struct nh_notifier_single_info { - struct net_device *dev; - u8 gw_family; - union { - __be32 ipv4; - struct in6_addr ipv6; - }; - u32 id; - u8 is_reject: 1; - u8 is_fdb: 1; - u8 has_encap: 1; -}; - -struct nh_notifier_grp_entry_info { - u8 weight; - struct nh_notifier_single_info nh; -}; - -struct nh_notifier_grp_info { - u16 num_nh; - bool is_fdb; - bool hw_stats; - struct nh_notifier_grp_entry_info nh_entries[0]; -}; - -struct nh_notifier_res_table_info { - u16 num_nh_buckets; - bool hw_stats; - struct nh_notifier_single_info nhs[0]; -}; - -struct nh_notifier_res_bucket_info { - u16 bucket_index; - unsigned int idle_timer_ms; - bool force; - struct nh_notifier_single_info old_nh; - struct nh_notifier_single_info new_nh; -}; - -struct nh_notifier_grp_hw_stats_entry_info { - u32 id; - u64 packets; -}; - -struct nh_notifier_grp_hw_stats_info { - u16 num_nh; - bool hw_stats_used; - struct nh_notifier_grp_hw_stats_entry_info stats[0]; -}; - -struct nh_config { - u32 nh_id; - u8 nh_family; - u8 nh_protocol; - u8 nh_blackhole; - u8 nh_fdb; - u32 nh_flags; - int nh_ifindex; - struct net_device *dev; - union { - __be32 ipv4; - struct in6_addr ipv6; - } gw; - struct nlattr *nh_grp; - u16 nh_grp_type; - u16 nh_grp_res_num_buckets; - unsigned long nh_grp_res_idle_timer; - unsigned long nh_grp_res_unbalanced_timer; - bool nh_grp_res_has_num_buckets; - bool nh_grp_res_has_idle_timer; - bool nh_grp_res_has_unbalanced_timer; - bool nh_hw_stats; - struct nlattr *nh_encap; - u16 nh_encap_type; - u32 nlflags; - struct nl_info nlinfo; -}; - -struct nhmsg { - unsigned char nh_family; - unsigned char nh_scope; - unsigned char nh_protocol; - unsigned char resvd; - unsigned int nh_flags; -}; - -struct nexthop_grp { - __u32 id; - __u8 weight; - __u8 resvd1; - __u16 resvd2; -}; - -struct nh_dump_filter { - u32 nh_id; - int dev_idx; - int master_idx; - bool group_filter; - bool fdb_filter; - u32 res_bucket_nh_id; - u32 op_flags; -}; - -struct rtm_dump_nh_ctx { - u32 idx; -}; - -struct rtm_dump_res_bucket_ctx { - struct rtm_dump_nh_ctx nh; - u16 bucket_index; -}; - -struct rtm_dump_nexthop_bucket_data { - struct rtm_dump_res_bucket_ctx *ctx; - struct nh_dump_filter filter; -}; - -struct br_config_bpdu { - unsigned int topology_change: 1; - unsigned int topology_change_ack: 1; - bridge_id root; - int root_path_cost; - bridge_id bridge_id; - port_id port_id; - int message_age; - int max_age; - int hello_time; - int forward_delay; -}; - -struct michael_mic_ctx { - u32 l; - u32 r; -}; - -enum nl80211_nan_func_term_reason { - NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0, - NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 1, - NL80211_NAN_FUNC_TERM_REASON_ERROR = 2, -}; - -enum nl80211_txq_stats { - __NL80211_TXQ_STATS_INVALID = 0, - NL80211_TXQ_STATS_BACKLOG_BYTES = 1, - NL80211_TXQ_STATS_BACKLOG_PACKETS = 2, - NL80211_TXQ_STATS_FLOWS = 3, - NL80211_TXQ_STATS_DROPS = 4, - NL80211_TXQ_STATS_ECN_MARKS = 5, - NL80211_TXQ_STATS_OVERLIMIT = 6, - NL80211_TXQ_STATS_OVERMEMORY = 7, - NL80211_TXQ_STATS_COLLISIONS = 8, - NL80211_TXQ_STATS_TX_BYTES = 9, - NL80211_TXQ_STATS_TX_PACKETS = 10, - NL80211_TXQ_STATS_MAX_FLOWS = 11, - NUM_NL80211_TXQ_STATS = 12, - NL80211_TXQ_STATS_MAX = 11, -}; - -enum mac80211_scan_flags { - SCAN_SW_SCANNING = 0, - SCAN_HW_SCANNING = 1, - SCAN_ONCHANNEL_SCANNING = 2, - SCAN_COMPLETED = 3, - SCAN_ABORTED = 4, - SCAN_HW_CANCELLED = 5, - SCAN_BEACON_WAIT = 6, - SCAN_BEACON_DONE = 7, -}; - -enum ieee80211_internal_key_flags { - KEY_FLAG_UPLOADED_TO_HARDWARE = 1, - KEY_FLAG_TAINTED = 2, -}; - -enum station_parameters_apply_mask { - STATION_PARAM_APPLY_UAPSD = 1, - STATION_PARAM_APPLY_CAPABILITY = 2, - STATION_PARAM_APPLY_PLINK_STATE = 4, -}; - -enum cfg80211_station_type { - CFG80211_STA_AP_CLIENT = 0, - CFG80211_STA_AP_CLIENT_UNASSOC = 1, - CFG80211_STA_AP_MLME_CLIENT = 2, - CFG80211_STA_AP_STA = 3, - CFG80211_STA_IBSS = 4, - CFG80211_STA_TDLS_PEER_SETUP = 5, - CFG80211_STA_TDLS_PEER_ACTIVE = 6, - CFG80211_STA_MESH_PEER_KERNEL = 7, - CFG80211_STA_MESH_PEER_USER = 8, -}; - -enum wiphy_params_flags { - WIPHY_PARAM_RETRY_SHORT = 1, - WIPHY_PARAM_RETRY_LONG = 2, - WIPHY_PARAM_FRAG_THRESHOLD = 4, - WIPHY_PARAM_RTS_THRESHOLD = 8, - WIPHY_PARAM_COVERAGE_CLASS = 16, - WIPHY_PARAM_DYN_ACK = 32, - WIPHY_PARAM_TXQ_LIMIT = 64, - WIPHY_PARAM_TXQ_MEMORY_LIMIT = 128, - WIPHY_PARAM_TXQ_QUANTUM = 256, -}; - -enum cfg80211_nan_conf_changes { - CFG80211_NAN_CONF_CHANGED_PREF = 1, - CFG80211_NAN_CONF_CHANGED_BANDS = 2, -}; - -struct cfg80211_nan_match_params { - enum nl80211_nan_function_type type; - u8 inst_id; - u8 peer_inst_id; - const u8 *addr; - u8 info_len; - const u8 *info; - u64 cookie; -}; - -struct ieee80211_color_change_settings { - u16 counter_offset_beacon; - u16 counter_offset_presp; - u8 count; -}; - -struct ieee80211_csa_settings { - const u16 *counter_offsets_beacon; - const u16 *counter_offsets_presp; - int n_counter_offsets_beacon; - int n_counter_offsets_presp; - u8 count; -}; - -struct trampoline_header { - u64 start; - u64 efer; - u32 cr4; - u32 flags; - u32 lock; -}; - -typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); - -typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); - -typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); - -typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); - -typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); - -typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); - -typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); - -typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); - -typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); - -typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64); - -typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); - -typedef void (*btf_trace_sched_process_hang)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); - -typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int); - -typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int); - -typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); - -typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); - -typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); - -typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); - -typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); - -typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); - -typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); - -typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); - -typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); - -typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); - -typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); - -typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); - -typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); - -typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); - -typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); - -typedef void (*btf_trace_ipi_entry)(void *, const char *); - -typedef void (*btf_trace_ipi_exit)(void *, const char *); - -struct tick_work { - int cpu; - atomic_t state; - struct delayed_work work; -}; - -enum uclamp_id { - UCLAMP_MIN = 0, - UCLAMP_MAX = 1, - UCLAMP_CNT = 2, -}; - -enum { - preempt_dynamic_undefined = -1, - preempt_dynamic_none = 0, - preempt_dynamic_voluntary = 1, - preempt_dynamic_full = 2, -}; - -enum { - cpuset = 0, - possible = 1, - fail = 2, -}; - -enum scx_dsq_id_flags { - SCX_DSQ_FLAG_BUILTIN = 9223372036854775808ULL, - SCX_DSQ_FLAG_LOCAL_ON = 4611686018427387904ULL, - SCX_DSQ_INVALID = 9223372036854775808ULL, - SCX_DSQ_GLOBAL = 9223372036854775809ULL, - SCX_DSQ_LOCAL = 9223372036854775810ULL, - SCX_DSQ_LOCAL_ON = 13835058055282163712ULL, - SCX_DSQ_LOCAL_CPU_MASK = 4294967295ULL, -}; - -enum scx_consts { - SCX_OPS_NAME_LEN = 128ULL, - SCX_SLICE_DFL = 20000000ULL, - SCX_SLICE_INF = 18446744073709551615ULL, -}; - -enum scx_exit_kind { - SCX_EXIT_NONE = 0, - SCX_EXIT_DONE = 1, - SCX_EXIT_UNREG = 64, - SCX_EXIT_UNREG_BPF = 65, - SCX_EXIT_SYSRQ = 66, - SCX_EXIT_ERROR = 1024, - SCX_EXIT_ERROR_BPF = 1025, - SCX_EXIT_ERROR_STALL = 1026, -}; - -union cpumask_rcuhead { - cpumask_t cpumask; - struct callback_head rcu; -}; - -struct trace_event_raw_sched_kthread_stop { - struct trace_entry ent; - char comm[16]; - pid_t pid; - char __data[0]; -}; - -struct trace_event_raw_sched_kthread_stop_ret { - struct trace_entry ent; - int ret; - char __data[0]; -}; - -struct trace_event_raw_sched_kthread_work_queue_work { - struct trace_entry ent; - void *work; - void *function; - void *worker; - char __data[0]; -}; - -struct trace_event_raw_sched_kthread_work_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; -}; - -struct trace_event_raw_sched_kthread_work_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; -}; - -struct trace_event_raw_sched_wakeup_template { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - int target_cpu; - char __data[0]; -}; - -struct trace_event_raw_sched_switch { - struct trace_entry ent; - char prev_comm[16]; - pid_t prev_pid; - int prev_prio; - long prev_state; - char next_comm[16]; - pid_t next_pid; - int next_prio; - char __data[0]; -}; - -struct trace_event_raw_sched_migrate_task { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - int orig_cpu; - int dest_cpu; - char __data[0]; -}; - -struct trace_event_raw_sched_process_template { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; -}; - -struct trace_event_raw_sched_process_wait { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; -}; - -struct trace_event_raw_sched_process_fork { - struct trace_entry ent; - char parent_comm[16]; - pid_t parent_pid; - char child_comm[16]; - pid_t child_pid; - char __data[0]; -}; - -struct trace_event_raw_sched_process_exec { - struct trace_entry ent; - u32 __data_loc_filename; - pid_t pid; - pid_t old_pid; - char __data[0]; -}; - -struct trace_event_raw_sched_stat_runtime { - struct trace_entry ent; - char comm[16]; - pid_t pid; - u64 runtime; - char __data[0]; -}; - -struct trace_event_raw_sched_pi_setprio { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int oldprio; - int newprio; - char __data[0]; -}; - -struct trace_event_raw_sched_process_hang { - struct trace_entry ent; - char comm[16]; - pid_t pid; - char __data[0]; -}; - -struct trace_event_raw_sched_move_numa { - struct trace_entry ent; - pid_t pid; - pid_t tgid; - pid_t ngid; - int src_cpu; - int src_nid; - int dst_cpu; - int dst_nid; - char __data[0]; -}; - -struct trace_event_raw_sched_numa_pair_template { - struct trace_entry ent; - pid_t src_pid; - pid_t src_tgid; - pid_t src_ngid; - int src_cpu; - int src_nid; - pid_t dst_pid; - pid_t dst_tgid; - pid_t dst_ngid; - int dst_cpu; - int dst_nid; - char __data[0]; -}; - -struct trace_event_raw_sched_wake_idle_without_ipi { - struct trace_entry ent; - int cpu; - char __data[0]; -}; - -struct trace_event_raw_ipi_raise { - struct trace_entry ent; - u32 __data_loc_target_cpus; - const char *reason; - char __data[0]; -}; - -struct trace_event_raw_ipi_send_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *callback; - char __data[0]; -}; - -struct trace_event_raw_ipi_send_cpumask { - struct trace_entry ent; - u32 __data_loc_cpumask; - void *callsite; - void *callback; - char __data[0]; -}; - -struct trace_event_raw_ipi_handler { - struct trace_entry ent; - const char *reason; - char __data[0]; -}; - -struct trace_event_data_offsets_sched_process_exec { - u32 filename; - const void *filename_ptr_; -}; - -struct trace_event_data_offsets_ipi_raise { - u32 target_cpus; - const void *target_cpus_ptr_; -}; - -struct trace_event_data_offsets_ipi_send_cpumask { - u32 cpumask; - const void *cpumask_ptr_; -}; - -typedef struct { - raw_spinlock_t *lock; -} class_raw_spinlock_irq_t; - -typedef struct { - void *lock; -} class_preempt_t; - -typedef struct { - struct rq *lock; - struct rq_flags rf; -} class_rq_lock_irqsave_t; - -typedef struct { - raw_spinlock_t *lock; - unsigned long flags; -} class_raw_spinlock_irqsave_t; - -typedef struct { - struct task_struct *lock; - struct rq *rq; - struct rq_flags rf; -} class_task_rq_lock_t; - -typedef struct task_struct *class_find_get_task_t; - -typedef struct { - void *lock; - unsigned long flags; -} class_irqsave_t; - -typedef struct { - struct rq *lock; - struct rq *lock2; -} class_double_rq_lock_t; - -struct rt_bandwidth { - raw_spinlock_t rt_runtime_lock; - ktime_t rt_period; - u64 rt_runtime; - struct hrtimer rt_period_timer; - unsigned int rt_period_active; -}; - -struct set_affinity_pending; - -struct migration_arg { - struct task_struct *task; - int dest_cpu; - struct set_affinity_pending *pending; -}; - -struct set_affinity_pending { - refcount_t refs; - unsigned int stop_pending; - struct completion done; - struct cpu_stop_work stop_work; - struct migration_arg arg; -}; - -typedef struct { - struct rq *lock; - struct rq_flags rf; -} class_rq_lock_irq_t; - -struct trace_event_data_offsets_sched_kthread_stop {}; - -struct trace_event_data_offsets_sched_kthread_stop_ret {}; - -struct trace_event_data_offsets_sched_kthread_work_queue_work {}; - -struct trace_event_data_offsets_sched_kthread_work_execute_start {}; - -struct trace_event_data_offsets_sched_kthread_work_execute_end {}; - -struct trace_event_data_offsets_sched_wakeup_template {}; - -struct trace_event_data_offsets_sched_switch {}; - -struct trace_event_data_offsets_sched_migrate_task {}; - -struct trace_event_data_offsets_sched_process_template {}; - -struct trace_event_data_offsets_sched_process_wait {}; - -struct trace_event_data_offsets_sched_process_fork {}; - -struct trace_event_data_offsets_sched_stat_runtime {}; - -struct trace_event_data_offsets_sched_pi_setprio {}; - -struct trace_event_data_offsets_sched_process_hang {}; - -struct trace_event_data_offsets_sched_move_numa {}; - -struct trace_event_data_offsets_sched_numa_pair_template {}; - -struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; - -struct trace_event_data_offsets_ipi_send_cpu {}; - -struct trace_event_data_offsets_ipi_handler {}; - -typedef int (*tg_visitor)(struct task_group *, void *); - -struct kernel_clone_args { - u64 flags; - int __attribute__((btf_type_tag("user"))) *pidfd; - int __attribute__((btf_type_tag("user"))) *child_tid; - int __attribute__((btf_type_tag("user"))) *parent_tid; - const char *name; - int exit_signal; - u32 kthread: 1; - u32 io_thread: 1; - u32 user_worker: 1; - u32 no_files: 1; - unsigned long stack; - unsigned long stack_size; - unsigned long tls; - pid_t *set_tid; - size_t set_tid_size; - int cgroup; - int idle; - int (*fn)(void *); - void *fn_arg; - struct cgroup *cgrp; - struct css_set *cset; -}; - -struct sched_enq_and_set_ctx { - struct task_struct *p; - int queue_flags; - bool queued; - bool running; -}; - -typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); - -typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); - -typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); - -struct memcg_path { - local_lock_t lock; - char __attribute__((btf_type_tag("rcu"))) *buf; - local_t buf_idx; -}; - -struct trace_event_raw_mmap_lock { - struct trace_entry ent; - struct mm_struct *mm; - u32 __data_loc_memcg_path; - bool write; - char __data[0]; -}; - -struct trace_event_raw_mmap_lock_acquire_returned { - struct trace_entry ent; - struct mm_struct *mm; - u32 __data_loc_memcg_path; - bool write; - bool success; - char __data[0]; -}; - -struct trace_event_data_offsets_mmap_lock { - u32 memcg_path; - const void *memcg_path_ptr_; -}; - -struct trace_event_data_offsets_mmap_lock_acquire_returned { - u32 memcg_path; - const void *memcg_path_ptr_; -}; - -struct ns_get_path_task_args { - const struct proc_ns_operations *ns_ops; - struct task_struct *task; -}; - -struct iomap_swapfile_info { - struct iomap iomap; - struct swap_info_struct *sis; - uint64_t lowest_ppage; - uint64_t highest_ppage; - unsigned long nr_pages; - int nr_extents; - struct file *file; -}; - -enum SHIFT_DIRECTION { - SHIFT_LEFT = 0, - SHIFT_RIGHT = 1, -}; - -struct ext4_extent_idx { - __le32 ei_block; - __le32 ei_leaf_lo; - __le16 ei_leaf_hi; - __u16 ei_unused; -}; - -struct ext4_extent_tail { - __le32 et_checksum; -}; - -struct ext4_extent_header { - __le16 eh_magic; - __le16 eh_entries; - __le16 eh_max; - __le16 eh_depth; - __le32 eh_generation; -}; - -struct ext4_ext_path { - ext4_fsblk_t p_block; - __u16 p_depth; - __u16 p_maxdepth; - struct ext4_extent *p_ext; - struct ext4_extent_idx *p_idx; - struct ext4_extent_header *p_hdr; - struct buffer_head *p_bh; -}; - -enum { - ICQ_EXITED = 4, - ICQ_DESTROYED = 8, -}; - -struct once_work { - struct work_struct work; - struct static_key_true *key; - struct module *module; -}; - -typedef enum { - set_basic = 0, - set_rle = 1, - set_compressed = 2, - set_repeat = 3, -} symbolEncodingType_e; - -typedef struct { - S16 norm[53]; - U32 wksp[285]; -} ZSTD_BuildCTableWksp; - -typedef enum { - ZSTD_defaultDisallowed = 0, - ZSTD_defaultAllowed = 1, -} ZSTD_defaultPolicy_e; - -typedef struct { - ZSTD_entropyCTables_t entropy; - U32 rep[3]; -} ZSTD_compressedBlockState_t; - -typedef struct { - symbolEncodingType_e hType; - BYTE hufDesBuffer[128]; - size_t hufDesSize; -} ZSTD_hufCTablesMetadata_t; - -typedef struct { - symbolEncodingType_e llType; - symbolEncodingType_e ofType; - symbolEncodingType_e mlType; - BYTE fseTablesBuffer[133]; - size_t fseTablesSize; - size_t lastCountSize; -} ZSTD_fseCTablesMetadata_t; - -typedef struct { - ZSTD_hufCTablesMetadata_t hufMetadata; - ZSTD_fseCTablesMetadata_t fseMetadata; -} ZSTD_entropyCTablesMetadata_t; - -typedef struct { - int contentSizeFlag; - int checksumFlag; - int noDictIDFlag; -} ZSTD_frameParameters; - -typedef enum { - ZSTD_dictDefaultAttach = 0, - ZSTD_dictForceAttach = 1, - ZSTD_dictForceCopy = 2, - ZSTD_dictForceLoad = 3, -} ZSTD_dictAttachPref_e; - -typedef enum { - ZSTD_sf_noBlockDelimiters = 0, - ZSTD_sf_explicitBlockDelimiters = 1, -} ZSTD_sequenceFormat_e; - -struct ZSTD_CCtx_params_s { - ZSTD_format_e format; - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; - int compressionLevel; - int forceWindow; - size_t targetCBlockSize; - int srcSizeHint; - ZSTD_dictAttachPref_e attachDictPref; - ZSTD_paramSwitch_e literalCompressionMode; - int nbWorkers; - size_t jobSize; - int overlapLog; - int rsyncable; - ldmParams_t ldmParams; - int enableDedicatedDictSearch; - ZSTD_bufferMode_e inBufferMode; - ZSTD_bufferMode_e outBufferMode; - ZSTD_sequenceFormat_e blockDelimiters; - int validateSequences; - ZSTD_paramSwitch_e useBlockSplitter; - ZSTD_paramSwitch_e useRowMatchFinder; - int deterministicRefPrefix; - ZSTD_customMem customMem; -}; - -typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params; - -typedef struct { - U32 litLength; - U32 matchLength; -} ZSTD_sequenceLength; - -typedef enum { - ZSTDcs_created = 0, - ZSTDcs_init = 1, - ZSTDcs_ongoing = 2, - ZSTDcs_ending = 3, -} ZSTD_compressionStage_e; - -typedef enum { - ZSTD_cwksp_alloc_objects = 0, - ZSTD_cwksp_alloc_buffers = 1, - ZSTD_cwksp_alloc_aligned = 2, -} ZSTD_cwksp_alloc_phase_e; - -typedef enum { - ZSTD_cwksp_dynamic_alloc = 0, - ZSTD_cwksp_static_alloc = 1, -} ZSTD_cwksp_static_alloc_e; - -typedef struct { - void *workspace; - void *workspaceEnd; - void *objectEnd; - void *tableEnd; - void *tableValidEnd; - void *allocStart; - BYTE allocFailed; - int workspaceOversizedDuration; - ZSTD_cwksp_alloc_phase_e phase; - ZSTD_cwksp_static_alloc_e isStatic; -} ZSTD_cwksp; - -struct POOL_ctx_s; - -typedef struct POOL_ctx_s ZSTD_threadPool; - -typedef struct { - unsigned int offset; - unsigned int litLength; - unsigned int matchLength; - unsigned int rep; -} ZSTD_Sequence; - -typedef struct { - int collectSequences; - ZSTD_Sequence *seqStart; - size_t seqIndex; - size_t maxSequences; -} SeqCollector; - -typedef struct { - ZSTD_compressedBlockState_t *prevCBlock; - ZSTD_compressedBlockState_t *nextCBlock; - ZSTD_matchState_t matchState; -} ZSTD_blockState_t; - -typedef enum { - ZSTDb_not_buffered = 0, - ZSTDb_buffered = 1, -} ZSTD_buffered_policy_e; - -typedef enum { - zcss_init = 0, - zcss_load = 1, - zcss_flush = 2, -} ZSTD_cStreamStage; - -struct ZSTD_CDict_s; - -typedef struct ZSTD_CDict_s ZSTD_CDict; - -typedef struct { - void *dictBuffer; - const void *dict; - size_t dictSize; - ZSTD_dictContentType_e dictContentType; - ZSTD_CDict *cdict; -} ZSTD_localDict; - -struct ZSTD_prefixDict_s { - const void *dict; - size_t dictSize; - ZSTD_dictContentType_e dictContentType; -}; - -typedef struct ZSTD_prefixDict_s ZSTD_prefixDict; - -typedef struct { - seqStore_t fullSeqStoreChunk; - seqStore_t firstHalfSeqStore; - seqStore_t secondHalfSeqStore; - seqStore_t currSeqStore; - seqStore_t nextSeqStore; - U32 partitions[196]; - ZSTD_entropyCTablesMetadata_t entropyMetadata; -} ZSTD_blockSplitCtx; - -struct ZSTD_CCtx_s { - ZSTD_compressionStage_e stage; - int cParamsChanged; - int bmi2; - ZSTD_CCtx_params requestedParams; - ZSTD_CCtx_params appliedParams; - ZSTD_CCtx_params simpleApiParams; - U32 dictID; - size_t dictContentSize; - ZSTD_cwksp workspace; - size_t blockSize; - unsigned long long pledgedSrcSizePlusOne; - unsigned long long consumedSrcSize; - unsigned long long producedCSize; - struct xxh64_state xxhState; - ZSTD_customMem customMem; - ZSTD_threadPool *pool; - size_t staticSize; - SeqCollector seqCollector; - int isFirstBlock; - int initialized; - seqStore_t seqStore; - ldmState_t ldmState; - rawSeq *ldmSequences; - size_t maxNbLdmSequences; - rawSeqStore_t externSeqStore; - ZSTD_blockState_t blockState; - U32 *entropyWorkspace; - ZSTD_buffered_policy_e bufferedPolicy; - char *inBuff; - size_t inBuffSize; - size_t inToCompress; - size_t inBuffPos; - size_t inBuffTarget; - char *outBuff; - size_t outBuffSize; - size_t outBuffContentSize; - size_t outBuffFlushedSize; - ZSTD_cStreamStage streamStage; - U32 frameEnded; - ZSTD_inBuffer expectedInBuffer; - size_t expectedOutBufferSize; - ZSTD_localDict localDict; - const ZSTD_CDict *cdict; - ZSTD_prefixDict prefixDict; - ZSTD_blockSplitCtx blockSplitCtx; -}; - -typedef struct ZSTD_CCtx_s ZSTD_CCtx; - -struct ZSTD_CDict_s { - const void *dictContent; - size_t dictContentSize; - ZSTD_dictContentType_e dictContentType; - U32 *entropyWorkspace; - ZSTD_cwksp workspace; - ZSTD_matchState_t matchState; - ZSTD_compressedBlockState_t cBlockState; - ZSTD_customMem customMem; - U32 dictID; - int compressionLevel; - ZSTD_paramSwitch_e useRowMatchFinder; -}; - -struct ddebug_table { - struct list_head link; - struct list_head maps; - const char *mod_name; - unsigned int num_ddebugs; - struct _ddebug *ddebugs; -}; - -struct ddebug_class_param { - union { - unsigned long *bits; - unsigned int *lvl; - }; - char flags[8]; - const struct ddebug_class_map *map; -}; - -struct ddebug_query { - const char *filename; - const char *module; - const char *function; - const char *format; - const char *class_string; - unsigned int first_lineno; - unsigned int last_lineno; -}; - -struct flag_settings { - unsigned int flags; - unsigned int mask; -}; - -struct flagsbuf { - char buf[8]; -}; - -struct ddebug_iter { - struct ddebug_table *table; - int idx; -}; - -struct pci1xxxx_8250 { - unsigned int nr; - u8 dev_rev; - u8 pad[3]; - void *membase; - int line[0]; -}; - -typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); - -enum mdio_mutex_lock_class { - MDIO_MUTEX_NORMAL = 0, - MDIO_MUTEX_MUX = 1, - MDIO_MUTEX_NESTED = 2, -}; - -struct trace_event_raw_mdio_access { - struct trace_entry ent; - char busid[61]; - char read; - u8 addr; - u16 val; - unsigned int regnum; - char __data[0]; -}; - -struct trace_event_data_offsets_mdio_access {}; - -struct mdio_bus_stat_attr { - int addr; - unsigned int field_offset; -}; - -struct iwl_rate_info { - u8 plcp; - u8 plcp_siso; - u8 plcp_mimo2; - u8 plcp_mimo3; - u8 ieee; - u8 prev_ieee; - u8 next_ieee; - u8 prev_rs; - u8 next_rs; - u8 prev_rs_tgg; - u8 next_rs_tgg; -}; - -enum { - IWL_RATE_SISO_6M_PLCP = 0, - IWL_RATE_SISO_12M_PLCP = 1, - IWL_RATE_SISO_18M_PLCP = 2, - IWL_RATE_SISO_24M_PLCP = 3, - IWL_RATE_SISO_36M_PLCP = 4, - IWL_RATE_SISO_48M_PLCP = 5, - IWL_RATE_SISO_54M_PLCP = 6, - IWL_RATE_SISO_60M_PLCP = 7, - IWL_RATE_MIMO2_6M_PLCP = 8, - IWL_RATE_MIMO2_12M_PLCP = 9, - IWL_RATE_MIMO2_18M_PLCP = 10, - IWL_RATE_MIMO2_24M_PLCP = 11, - IWL_RATE_MIMO2_36M_PLCP = 12, - IWL_RATE_MIMO2_48M_PLCP = 13, - IWL_RATE_MIMO2_54M_PLCP = 14, - IWL_RATE_MIMO2_60M_PLCP = 15, - IWL_RATE_MIMO3_6M_PLCP = 16, - IWL_RATE_MIMO3_12M_PLCP = 17, - IWL_RATE_MIMO3_18M_PLCP = 18, - IWL_RATE_MIMO3_24M_PLCP = 19, - IWL_RATE_MIMO3_36M_PLCP = 20, - IWL_RATE_MIMO3_48M_PLCP = 21, - IWL_RATE_MIMO3_54M_PLCP = 22, - IWL_RATE_MIMO3_60M_PLCP = 23, - IWL_RATE_SISO_INVM_PLCP = 24, - IWL_RATE_MIMO2_INVM_PLCP = 24, - IWL_RATE_MIMO3_INVM_PLCP = 24, -}; - -struct rtw_vif_recalc_lps_iter_data { - struct rtw_dev *rtwdev; - struct ieee80211_vif *found_vif; - int count; -}; - -typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); - -typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); - -typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); - -enum hwmon_chip_attributes { - hwmon_chip_temp_reset_history = 0, - hwmon_chip_in_reset_history = 1, - hwmon_chip_curr_reset_history = 2, - hwmon_chip_power_reset_history = 3, - hwmon_chip_register_tz = 4, - hwmon_chip_update_interval = 5, - hwmon_chip_alarms = 6, - hwmon_chip_samples = 7, - hwmon_chip_curr_samples = 8, - hwmon_chip_in_samples = 9, - hwmon_chip_power_samples = 10, - hwmon_chip_temp_samples = 11, - hwmon_chip_beep_enable = 12, -}; - -enum hwmon_in_attributes { - hwmon_in_enable = 0, - hwmon_in_input = 1, - hwmon_in_min = 2, - hwmon_in_max = 3, - hwmon_in_lcrit = 4, - hwmon_in_crit = 5, - hwmon_in_average = 6, - hwmon_in_lowest = 7, - hwmon_in_highest = 8, - hwmon_in_reset_history = 9, - hwmon_in_label = 10, - hwmon_in_alarm = 11, - hwmon_in_min_alarm = 12, - hwmon_in_max_alarm = 13, - hwmon_in_lcrit_alarm = 14, - hwmon_in_crit_alarm = 15, - hwmon_in_rated_min = 16, - hwmon_in_rated_max = 17, - hwmon_in_beep = 18, - hwmon_in_fault = 19, -}; - -enum hwmon_curr_attributes { - hwmon_curr_enable = 0, - hwmon_curr_input = 1, - hwmon_curr_min = 2, - hwmon_curr_max = 3, - hwmon_curr_lcrit = 4, - hwmon_curr_crit = 5, - hwmon_curr_average = 6, - hwmon_curr_lowest = 7, - hwmon_curr_highest = 8, - hwmon_curr_reset_history = 9, - hwmon_curr_label = 10, - hwmon_curr_alarm = 11, - hwmon_curr_min_alarm = 12, - hwmon_curr_max_alarm = 13, - hwmon_curr_lcrit_alarm = 14, - hwmon_curr_crit_alarm = 15, - hwmon_curr_rated_min = 16, - hwmon_curr_rated_max = 17, - hwmon_curr_beep = 18, -}; - -enum hwmon_power_attributes { - hwmon_power_enable = 0, - hwmon_power_average = 1, - hwmon_power_average_interval = 2, - hwmon_power_average_interval_max = 3, - hwmon_power_average_interval_min = 4, - hwmon_power_average_highest = 5, - hwmon_power_average_lowest = 6, - hwmon_power_average_max = 7, - hwmon_power_average_min = 8, - hwmon_power_input = 9, - hwmon_power_input_highest = 10, - hwmon_power_input_lowest = 11, - hwmon_power_reset_history = 12, - hwmon_power_accuracy = 13, - hwmon_power_cap = 14, - hwmon_power_cap_hyst = 15, - hwmon_power_cap_max = 16, - hwmon_power_cap_min = 17, - hwmon_power_min = 18, - hwmon_power_max = 19, - hwmon_power_crit = 20, - hwmon_power_lcrit = 21, - hwmon_power_label = 22, - hwmon_power_alarm = 23, - hwmon_power_cap_alarm = 24, - hwmon_power_min_alarm = 25, - hwmon_power_max_alarm = 26, - hwmon_power_lcrit_alarm = 27, - hwmon_power_crit_alarm = 28, - hwmon_power_rated_min = 29, - hwmon_power_rated_max = 30, -}; - -enum hwmon_energy_attributes { - hwmon_energy_enable = 0, - hwmon_energy_input = 1, - hwmon_energy_label = 2, -}; - -enum hwmon_humidity_attributes { - hwmon_humidity_enable = 0, - hwmon_humidity_input = 1, - hwmon_humidity_label = 2, - hwmon_humidity_min = 3, - hwmon_humidity_min_hyst = 4, - hwmon_humidity_max = 5, - hwmon_humidity_max_hyst = 6, - hwmon_humidity_alarm = 7, - hwmon_humidity_fault = 8, - hwmon_humidity_rated_min = 9, - hwmon_humidity_rated_max = 10, - hwmon_humidity_min_alarm = 11, - hwmon_humidity_max_alarm = 12, -}; - -enum hwmon_fan_attributes { - hwmon_fan_enable = 0, - hwmon_fan_input = 1, - hwmon_fan_label = 2, - hwmon_fan_min = 3, - hwmon_fan_max = 4, - hwmon_fan_div = 5, - hwmon_fan_pulses = 6, - hwmon_fan_target = 7, - hwmon_fan_alarm = 8, - hwmon_fan_min_alarm = 9, - hwmon_fan_max_alarm = 10, - hwmon_fan_fault = 11, - hwmon_fan_beep = 12, -}; - -struct trace_event_raw_hwmon_attr_class { - struct trace_entry ent; - int index; - u32 __data_loc_attr_name; - long val; - char __data[0]; -}; - -struct trace_event_raw_hwmon_attr_show_string { - struct trace_entry ent; - int index; - u32 __data_loc_attr_name; - u32 __data_loc_label; - char __data[0]; -}; - -struct hwmon_device_attribute { - struct device_attribute dev_attr; - const struct hwmon_ops *ops; - enum hwmon_sensor_types type; - u32 attr; - int index; - char name[32]; -}; - -struct hwmon_device { - const char *name; - const char *label; - struct device dev; - const struct hwmon_chip_info *chip; - struct list_head tzdata; - struct attribute_group group; - const struct attribute_group **groups; -}; - -struct trace_event_data_offsets_hwmon_attr_class { - u32 attr_name; - const void *attr_name_ptr_; -}; - -struct trace_event_data_offsets_hwmon_attr_show_string { - u32 attr_name; - const void *attr_name_ptr_; - u32 label; - const void *label_ptr_; -}; - -struct net_test { - char name[32]; - int (*fn)(struct net_device *); -}; - -struct netsfhdr { - __be32 version; - __be64 magic; - u8 id; -} __attribute__((packed)); - -struct net_packet_attrs { - const unsigned char *src; - const unsigned char *dst; - u32 ip_src; - u32 ip_dst; - bool tcp; - u16 sport; - u16 dport; - int timeout; - int size; - int max_size; - u8 id; - u16 queue_mapping; -}; - -struct net_test_priv { - struct net_packet_attrs *packet; - struct packet_type pt; - struct completion comp; - int double_vlan; - int vlan_id; - int ok; -}; - -struct nfnl_ct_hook { - size_t (*build_size)(const struct nf_conn *); - int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t); - int (*parse)(const struct nlattr *, struct nf_conn *); - int (*attach_expect)(const struct nlattr *, struct nf_conn *, u32, u32); - void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32); -}; - -struct nf_ct_hook { - int (*update)(struct net *, struct sk_buff *); - void (*destroy)(struct nf_conntrack *); - bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *); - void (*attach)(struct sk_buff *, const struct sk_buff *); - void (*set_closing)(struct nf_conntrack *); - int (*confirm)(struct sk_buff *); -}; - -struct nf_hook_entries_rcu_head { - struct callback_head head; - void *allocation; -}; - -typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); - -struct rt0_hdr { - struct ipv6_rt_hdr rt_hdr; - __u32 reserved; - struct in6_addr addr[0]; -}; - -struct ioam6_hdr { - __u8 opt_type; - __u8 opt_len; - char: 8; - __u8 type; -}; - -typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); - -struct compress_format { - unsigned char magic[2]; - const char *name; - decompress_fn decompressor; -}; - -enum { - RADIX_TREE_ITER_TAG_MASK = 15, - RADIX_TREE_ITER_TAGGED = 16, - RADIX_TREE_ITER_CONTIG = 32, -}; - -struct radix_tree_iter { - unsigned long index; - unsigned long next_index; - unsigned long tags; - struct xa_node *node; -}; - -struct ida_bitmap { - unsigned long bitmap[16]; -}; - -enum { - st_wordstart = 0, - st_wordcmp = 1, - st_wordskip = 2, -}; - -enum { - st_wordstart___2 = 0, - st_wordcmp___2 = 1, - st_wordskip___2 = 2, - st_bufcpy = 3, -}; - -struct machine_ops { - void (*restart)(char *); - void (*halt)(); - void (*power_off)(); - void (*shutdown)(); - void (*crash_shutdown)(struct pt_regs *); - void (*emergency_restart)(); -}; - -typedef void (*nmi_shootdown_cb)(int, struct pt_regs *); - -struct chipset { - u32 vendor; - u32 device; - u32 class; - u32 class_mask; - u32 flags; - void (*f)(int, int, int); -}; - -struct intel_early_ops { - resource_size_t (*stolen_size)(int, int, int); - resource_size_t (*stolen_base)(int, int, int, resource_size_t); -}; - -struct smp_ops { - void (*smp_prepare_boot_cpu)(); - void (*smp_prepare_cpus)(unsigned int); - void (*smp_cpus_done)(unsigned int); - void (*stop_other_cpus)(int); - void (*crash_stop_other_cpus)(); - void (*smp_send_reschedule)(int); - void (*cleanup_dead_cpu)(unsigned int); - void (*poll_sync_state)(); - int (*kick_ap_alive)(unsigned int, struct task_struct *); - int (*cpu_disable)(); - void (*cpu_die)(unsigned int); - void (*play_dead)(); - void (*send_call_func_ipi)(const struct cpumask *); - void (*send_call_func_single_ipi)(int); -}; - -enum { - BPF_F_SYSCTL_BASE_NAME = 1, -}; - -typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_retval)(); - -typedef u64 (*btf_bpf_set_retval)(int); - -typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); - -typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); - -typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); - -typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); - -typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); - -struct bpf_cgroup_link; - -struct bpf_prog_list { - struct hlist_node node; - struct bpf_prog *prog; - struct bpf_cgroup_link *link; - struct bpf_cgroup_storage *storage[2]; -}; - -struct bpf_cgroup_link { - struct bpf_link link; - struct cgroup *cgroup; - enum bpf_attach_type type; -}; - -struct bpf_sockopt_buf { - u8 data[32]; -}; - -struct memelfnote { - const char *name; - int type; - unsigned int datasz; - void *data; -}; - -struct elf_thread_core_info; - -struct elf_note_info { - struct elf_thread_core_info *thread; - struct memelfnote psinfo; - struct memelfnote signote; - struct memelfnote auxv; - struct memelfnote files; - siginfo_t csigdata; - size_t size; - int thread_notes; -}; - -struct elf_thread_core_info { - struct elf_thread_core_info *next; - struct task_struct *task; - struct elf_prstatus prstatus; - struct memelfnote notes[0]; -}; - -struct arch_elf_state {}; - -struct migrate_struct { - ext4_lblk_t first_block; - ext4_lblk_t last_block; - ext4_lblk_t curr_block; - ext4_fsblk_t first_pblock; - ext4_fsblk_t last_pblock; -}; - -enum { - PARSE_INVALID = 1, - PARSE_NOT_LONGNAME = 2, - PARSE_EOF = 3, -}; - -struct __fat_dirent { - long d_ino; - __kernel_off_t d_off; - unsigned short d_reclen; - char d_name[256]; -}; - -struct fat_ioctl_filldir_callback { - struct dir_context ctx; - void __attribute__((btf_type_tag("user"))) *dirent; - int result; - const char *longname; - int long_len; - const char *shortname; - int short_len; -}; - -struct crypto_lskcipher; - -struct lskcipher_alg { - int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); - int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); - int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32); - int (*init)(struct crypto_lskcipher *); - void (*exit)(struct crypto_lskcipher *); - struct skcipher_alg_common co; -}; - -struct crypto_lskcipher { - struct crypto_tfm base; -}; - -struct lskcipher_instance { - void (*free)(struct lskcipher_instance *); - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct lskcipher_alg alg; - }; -}; - -struct crypto_lskcipher_spawn { - struct crypto_spawn base; -}; - -struct _gpt_header { - __le64 signature; - __le32 revision; - __le32 header_size; - __le32 header_crc32; - __le32 reserved1; - __le64 my_lba; - __le64 alternate_lba; - __le64 first_usable_lba; - __le64 last_usable_lba; - efi_guid_t disk_guid; - __le64 partition_entry_lba; - __le32 num_partition_entries; - __le32 sizeof_partition_entry; - __le32 partition_entry_array_crc32; -} __attribute__((packed)); - -typedef struct _gpt_header gpt_header; - -struct _gpt_entry_attributes { - u64 required_to_function: 1; - u64 reserved: 47; - u64 type_guid_specific: 16; -}; - -typedef struct _gpt_entry_attributes gpt_entry_attributes; - -struct _gpt_entry { - efi_guid_t partition_type_guid; - efi_guid_t unique_partition_guid; - __le64 starting_lba; - __le64 ending_lba; - gpt_entry_attributes attributes; - __le16 partition_name[36]; -}; - -typedef struct _gpt_entry gpt_entry; - -struct _gpt_mbr_record { - u8 boot_indicator; - u8 start_head; - u8 start_sector; - u8 start_track; - u8 os_type; - u8 end_head; - u8 end_sector; - u8 end_track; - __le32 starting_lba; - __le32 size_in_lba; -}; - -typedef struct _gpt_mbr_record gpt_mbr_record; - -struct _legacy_mbr { - u8 boot_code[440]; - __le32 unique_mbr_signature; - __le16 unknown; - gpt_mbr_record partition_record[4]; - __le16 signature; -} __attribute__((packed)); - -typedef struct _legacy_mbr legacy_mbr; - -enum acpi_subtable_type { - ACPI_SUBTABLE_COMMON = 0, - ACPI_SUBTABLE_HMAT = 1, - ACPI_SUBTABLE_PRMT = 2, - ACPI_SUBTABLE_CEDT = 3, - CDAT_SUBTABLE = 4, -}; - -enum acpi_cdat_type { - ACPI_CDAT_TYPE_DSMAS = 0, - ACPI_CDAT_TYPE_DSLBIS = 1, - ACPI_CDAT_TYPE_DSMSCIS = 2, - ACPI_CDAT_TYPE_DSIS = 3, - ACPI_CDAT_TYPE_DSEMTS = 4, - ACPI_CDAT_TYPE_SSLBIS = 5, - ACPI_CDAT_TYPE_RESERVED = 6, -}; - -struct acpi_subtable_entry { - union acpi_subtable_headers *hdr; - enum acpi_subtable_type type; -}; - -struct msr_info_completion { - struct msr_info msr; - struct completion done; -}; - -struct msr_regs_info { - u32 *regs; - int err; -}; - -struct acpi_handle_list { - u32 count; - acpi_handle *handles; -}; - -struct acpi_thermal_trip { - unsigned long temp_dk; - struct acpi_handle_list devices; -}; - -struct acpi_thermal_passive { - struct acpi_thermal_trip trip; - unsigned long tc1; - unsigned long tc2; - unsigned long delay; -}; - -struct acpi_thermal_active { - struct acpi_thermal_trip trip; -}; - -struct acpi_thermal_trips { - struct acpi_thermal_passive passive; - struct acpi_thermal_active active[10]; -}; - -struct acpi_thermal { - struct acpi_device *device; - acpi_bus_id name; - unsigned long temp_dk; - unsigned long last_temp_dk; - unsigned long polling_frequency; - volatile u8 zombie; - struct acpi_thermal_trips trips; - struct thermal_zone_device *thermal_zone; - int kelvin_offset; - struct work_struct thermal_check_work; - struct mutex thermal_check_lock; - refcount_t thermal_check_count; -}; - -struct adjust_trip_data { - struct acpi_thermal *tz; - u32 event; -}; - -struct acpi_thermal_bind_data { - struct thermal_zone_device *thermal; - struct thermal_cooling_device *cdev; - bool bind; -}; - -struct reg { - u32 addr; - bool is64; -}; - -enum { - POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0, - POWER_SUPPLY_TECHNOLOGY_NiMH = 1, - POWER_SUPPLY_TECHNOLOGY_LION = 2, - POWER_SUPPLY_TECHNOLOGY_LIPO = 3, - POWER_SUPPLY_TECHNOLOGY_LiFe = 4, - POWER_SUPPLY_TECHNOLOGY_NiCd = 5, - POWER_SUPPLY_TECHNOLOGY_LiMn = 6, -}; - -enum { - POWER_SUPPLY_SCOPE_UNKNOWN = 0, - POWER_SUPPLY_SCOPE_SYSTEM = 1, - POWER_SUPPLY_SCOPE_DEVICE = 2, -}; - -enum power_supply_notifier_events { - PSY_EVENT_PROP_CHANGED = 0, -}; - -struct psy_am_i_supplied_data { - struct power_supply *psy; - unsigned int count; -}; - -struct psy_get_supplier_prop_data { - struct power_supply *psy; - enum power_supply_property psp; - union power_supply_propval *val; -}; - -struct power_supply_config { - struct device_node *of_node; - struct fwnode_handle *fwnode; - void *drv_data; - const struct attribute_group **attr_grp; - char **supplied_to; - size_t num_supplicants; -}; - -typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); - -typedef efi_status_t efi_set_time_t(efi_time_t *); - -typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); - -typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); - -typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); - -typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); - -typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); - -typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); - -typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); - -typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); - -typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); - -typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); - -struct efi { - const efi_runtime_services_t *runtime; - unsigned int runtime_version; - unsigned int runtime_supported_mask; - unsigned long acpi; - unsigned long acpi20; - unsigned long smbios; - unsigned long smbios3; - unsigned long esrt; - unsigned long tpm_log; - unsigned long tpm_final_log; - unsigned long mokvar_table; - unsigned long coco_secret; - unsigned long unaccepted; - efi_get_time_t *get_time; - efi_set_time_t *set_time; - efi_get_wakeup_time_t *get_wakeup_time; - efi_set_wakeup_time_t *set_wakeup_time; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_info_t *query_variable_info; - efi_query_variable_info_t *query_variable_info_nonblocking; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - struct efi_memory_map memmap; - unsigned long flags; -}; - -struct linux_efi_memreserve { - int size; - atomic_t count; - phys_addr_t next; - struct { - phys_addr_t base; - phys_addr_t size; - } entry[0]; -}; - -typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); - -struct efivar_operations { - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_store_t *query_variable_store; - efi_query_variable_info_t *query_variable_info; -}; - -struct efivars { - struct kset *kset; - const struct efivar_operations *ops; -}; - -typedef struct { - efi_guid_t guid; - unsigned long *ptr; - const char name[16]; -} efi_config_table_type_t; - -typedef struct { - efi_guid_t guid; - u32 table; -} efi_config_table_32_t; - -typedef union { - struct { - efi_guid_t guid; - void *table; - }; - efi_config_table_32_t mixed_mode; -} efi_config_table_t; - -struct linux_efi_random_seed { - u32 size; - u8 bits[0]; -}; - -typedef struct { - u16 version; - u16 length; - u32 runtime_services_supported; -} efi_rt_properties_table_t; - -enum { - TCA_UNSPEC = 0, - TCA_KIND = 1, - TCA_OPTIONS = 2, - TCA_STATS = 3, - TCA_XSTATS = 4, - TCA_RATE = 5, - TCA_FCNT = 6, - TCA_STATS2 = 7, - TCA_STAB = 8, - TCA_PAD = 9, - TCA_DUMP_INVISIBLE = 10, - TCA_CHAIN = 11, - TCA_HW_OFFLOAD = 12, - TCA_INGRESS_BLOCK = 13, - TCA_EGRESS_BLOCK = 14, - TCA_DUMP_FLAGS = 15, - TCA_EXT_WARN_MSG = 16, - __TCA_MAX = 17, -}; - -struct skb_array { - struct ptr_ring ring; -}; - -struct pfifo_fast_priv { - struct skb_array q[3]; -}; - -struct tc_prio_qopt { - int bands; - __u8 priomap[16]; -}; - -struct psched_ratecfg { - u64 rate_bytes_ps; - u32 mult; - u16 overhead; - u16 mpu; - u8 linklayer; - u8 shift; -}; - -struct tc_ratespec { - unsigned char cell_log; - __u8 linklayer; - unsigned short overhead; - short cell_align; - unsigned short mpu; - __u32 rate; -}; - -struct psched_pktrate { - u64 rate_pkts_ps; - u32 mult; - u8 shift; -}; - -struct mini_Qdisc_pair { - struct mini_Qdisc miniq1; - struct mini_Qdisc miniq2; - struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; -}; - -enum { - NF_BPF_CT_OPTS_SZ = 12, -}; - -enum { - BPF_F_CURRENT_NETNS = -1, -}; - -struct bpf_ct_opts { - s32 netns_id; - s32 error; - u8 l4proto; - u8 dir; - u8 reserved[2]; -}; - -struct udp_tunnel_nic_ops { - void (*get_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *); - void (*set_port_priv)(struct net_device *, unsigned int, unsigned int, u8); - void (*add_port)(struct net_device *, struct udp_tunnel_info *); - void (*del_port)(struct net_device *, struct udp_tunnel_info *); - void (*reset_ntf)(struct net_device *); - size_t (*dump_size)(struct net_device *, unsigned int); - int (*dump_write)(struct net_device *, unsigned int, struct sk_buff *); -}; - -struct ping_iter_state { - struct seq_net_private p; - int bucket; - sa_family_t family; -}; - -struct pingfakehdr { - struct icmphdr icmph; - struct msghdr *msg; - sa_family_t family; - __wsum wcheck; -}; - -enum rfkill_type { - RFKILL_TYPE_ALL = 0, - RFKILL_TYPE_WLAN = 1, - RFKILL_TYPE_BLUETOOTH = 2, - RFKILL_TYPE_UWB = 3, - RFKILL_TYPE_WIMAX = 4, - RFKILL_TYPE_WWAN = 5, - RFKILL_TYPE_GPS = 6, - RFKILL_TYPE_FM = 7, - RFKILL_TYPE_NFC = 8, - NUM_RFKILL_TYPES = 9, -}; - -struct cfg80211_beacon_registration { - struct list_head list; - u32 nlportid; -}; - -struct apm_bios_info { - __u16 version; - __u16 cseg; - __u32 offset; - __u16 cseg_16; - __u16 dseg; - __u16 flags; - __u16 cseg_len; - __u16 cseg_16_len; - __u16 dseg_len; -}; - -struct ist_info { - __u32 signature; - __u32 command; - __u32 event; - __u32 perf_level; -}; - -struct sys_desc_table { - __u16 length; - __u8 table[14]; -}; - -struct olpc_ofw_header { - __u32 ofw_magic; - __u32 ofw_version; - __u32 cif_handler; - __u32 irq_desc_table; -}; - -struct edid_info { - unsigned char dummy[128]; -}; - -struct efi_info { - __u32 efi_loader_signature; - __u32 efi_systab; - __u32 efi_memdesc_size; - __u32 efi_memdesc_version; - __u32 efi_memmap; - __u32 efi_memmap_size; - __u32 efi_systab_hi; - __u32 efi_memmap_hi; -}; - -struct setup_header { - __u8 setup_sects; - __u16 root_flags; - __u32 syssize; - __u16 ram_size; - __u16 vid_mode; - __u16 root_dev; - __u16 boot_flag; - __u16 jump; - __u32 header; - __u16 version; - __u32 realmode_swtch; - __u16 start_sys_seg; - __u16 kernel_version; - __u8 type_of_loader; - __u8 loadflags; - __u16 setup_move_size; - __u32 code32_start; - __u32 ramdisk_image; - __u32 ramdisk_size; - __u32 bootsect_kludge; - __u16 heap_end_ptr; - __u8 ext_loader_ver; - __u8 ext_loader_type; - __u32 cmd_line_ptr; - __u32 initrd_addr_max; - __u32 kernel_alignment; - __u8 relocatable_kernel; - __u8 min_alignment; - __u16 xloadflags; - __u32 cmdline_size; - __u32 hardware_subarch; - __u64 hardware_subarch_data; - __u32 payload_offset; - __u32 payload_length; - __u64 setup_data; - __u64 pref_address; - __u32 init_size; - __u32 handover_offset; - __u32 kernel_info_offset; -} __attribute__((packed)); - -struct boot_e820_entry { - __u64 addr; - __u64 size; - __u32 type; -} __attribute__((packed)); - -struct edd_device_params { - __u16 length; - __u16 info_flags; - __u32 num_default_cylinders; - __u32 num_default_heads; - __u32 sectors_per_track; - __u64 number_of_sectors; - __u16 bytes_per_sector; - __u32 dpte_ptr; - __u16 key; - __u8 device_path_info_length; - __u8 reserved2; - __u16 reserved3; - __u8 host_bus_type[4]; - __u8 interface_type[8]; - union { - struct { - __u16 base_address; - __u16 reserved1; - __u32 reserved2; - } isa; - struct { - __u8 bus; - __u8 slot; - __u8 function; - __u8 channel; - __u32 reserved; - } pci; - struct { - __u64 reserved; - } ibnd; - struct { - __u64 reserved; - } xprs; - struct { - __u64 reserved; - } htpt; - struct { - __u64 reserved; - } unknown; - } interface_path; - union { - struct { - __u8 device; - __u8 reserved1; - __u16 reserved2; - __u32 reserved3; - __u64 reserved4; - } ata; - struct { - __u8 device; - __u8 lun; - __u8 reserved1; - __u8 reserved2; - __u32 reserved3; - __u64 reserved4; - } atapi; - struct { - __u16 id; - __u64 lun; - __u16 reserved1; - __u32 reserved2; - } __attribute__((packed)) scsi; - struct { - __u64 serial_number; - __u64 reserved; - } usb; - struct { - __u64 eui; - __u64 reserved; - } i1394; - struct { - __u64 wwid; - __u64 lun; - } fibre; - struct { - __u64 identity_tag; - __u64 reserved; - } i2o; - struct { - __u32 array_number; - __u32 reserved1; - __u64 reserved2; - } raid; - struct { - __u8 device; - __u8 reserved1; - __u16 reserved2; - __u32 reserved3; - __u64 reserved4; - } sata; - struct { - __u64 reserved1; - __u64 reserved2; - } unknown; - } device_path; - __u8 reserved4; - __u8 checksum; -} __attribute__((packed)); - -struct edd_info { - __u8 device; - __u8 version; - __u16 interface_support; - __u16 legacy_max_cylinder; - __u8 legacy_max_head; - __u8 legacy_sectors_per_track; - struct edd_device_params params; -}; - -struct boot_params { - struct screen_info screen_info; - struct apm_bios_info apm_bios_info; - __u8 _pad2[4]; - __u64 tboot_addr; - struct ist_info ist_info; - __u64 acpi_rsdp_addr; - __u8 _pad3[8]; - __u8 hd0_info[16]; - __u8 hd1_info[16]; - struct sys_desc_table sys_desc_table; - struct olpc_ofw_header olpc_ofw_header; - __u32 ext_ramdisk_image; - __u32 ext_ramdisk_size; - __u32 ext_cmd_line_ptr; - __u8 _pad4[112]; - __u32 cc_blob_address; - struct edid_info edid_info; - struct efi_info efi_info; - __u32 alt_mem_k; - __u32 scratch; - __u8 e820_entries; - __u8 eddbuf_entries; - __u8 edd_mbr_sig_buf_entries; - __u8 kbd_status; - __u8 secure_boot; - __u8 _pad5[2]; - __u8 sentinel; - __u8 _pad6[1]; - struct setup_header hdr; - __u8 _pad7[36]; - __u32 edd_mbr_sig_buffer[16]; - struct boot_e820_entry e820_table[128]; - __u8 _pad8[48]; - struct edd_info eddbuf[6]; - __u8 _pad9[276]; -}; - -enum x86_hardware_subarch { - X86_SUBARCH_PC = 0, - X86_SUBARCH_LGUEST = 1, - X86_SUBARCH_XEN = 2, - X86_SUBARCH_INTEL_MID = 3, - X86_SUBARCH_CE4100 = 4, - X86_NR_SUBARCHS = 5, -}; - -typedef unsigned long p4dval_t; - -struct boot_params_to_save { - unsigned int start; - unsigned int len; -}; - -struct set_mtrr_data { - unsigned long smp_base; - unsigned long smp_size; - unsigned int smp_reg; - mtrr_type smp_type; -}; - -struct tsc_adjust { - s64 bootval; - s64 adjusted; - unsigned long nextcheck; - bool warned; -}; - -enum { - IORES_MAP_SYSTEM_RAM = 1, - IORES_MAP_ENCRYPTED = 2, -}; - -struct ioremap_desc { - unsigned int flags; -}; - -struct msi_ctrl { - unsigned int domid; - unsigned int first; - unsigned int last; - unsigned int nirqs; -}; - -struct misc_res { - u64 max; - atomic64_t usage; - atomic64_t events; -}; - -struct misc_cg { - struct cgroup_subsys_state css; - struct cgroup_file events_file; - struct misc_res res[0]; -}; - -enum misc_res_type { - MISC_CG_RES_TYPES = 0, -}; - -typedef void (*btf_trace_benchmark_event)(void *, const char *, u64); - -struct trace_event_raw_benchmark_event { - struct trace_entry ent; - char str[128]; - u64 delta; - char __data[0]; -}; - -struct trace_event_data_offsets_benchmark_event {}; - -struct tcx_link { - struct bpf_link link; - struct net_device *dev; - u32 location; -}; - -typedef union { - struct page **pages; - struct folio **folios; - struct encoded_page **encoded_pages; -} release_pages_arg; - -typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); - -struct ext4_orphan_block_tail { - __le32 ob_magic; - __le32 ob_checksum; -}; - -struct fatent_ra { - sector_t cur; - sector_t limit; - unsigned int ra_blocks; - sector_t ra_advance; - sector_t ra_next; - sector_t ra_limit; -}; - -struct btrfs_raid_stride { - __le64 devid; - __le64 physical; -}; - -struct btrfs_stripe_extent { - __u8 encoding; - __u8 reserved[7]; - struct btrfs_raid_stride strides[0]; -}; - -struct x509_parse_context { - struct x509_certificate *cert; - unsigned long data; - const void *key; - size_t key_size; - const void *params; - size_t params_size; - enum OID key_algo; - enum OID last_oid; - enum OID sig_algo; - u8 o_size; - u8 cn_size; - u8 email_size; - u16 o_offset; - u16 cn_offset; - u16 email_offset; - unsigned int raw_akid_size; - const void *raw_akid; - const void *akid_raw_issuer; - unsigned int akid_raw_issuer_size; -}; - -enum asn1_class { - ASN1_UNIV = 0, - ASN1_APPL = 1, - ASN1_CONT = 2, - ASN1_PRIV = 3, -}; - -struct pkcs7_parse_context { - struct pkcs7_message *msg; - struct pkcs7_signed_info *sinfo; - struct pkcs7_signed_info **ppsinfo; - struct x509_certificate *certs; - struct x509_certificate **ppcerts; - unsigned long data; - enum OID last_oid; - unsigned int x509_index; - unsigned int sinfo_index; - const void *raw_serial; - unsigned int raw_serial_size; - unsigned int raw_issuer_size; - const void *raw_issuer; - const void *raw_skid; - unsigned int raw_skid_size; - bool expect_skid; -}; - -enum hash_algo { - HASH_ALGO_MD4 = 0, - HASH_ALGO_MD5 = 1, - HASH_ALGO_SHA1 = 2, - HASH_ALGO_RIPE_MD_160 = 3, - HASH_ALGO_SHA256 = 4, - HASH_ALGO_SHA384 = 5, - HASH_ALGO_SHA512 = 6, - HASH_ALGO_SHA224 = 7, - HASH_ALGO_RIPE_MD_128 = 8, - HASH_ALGO_RIPE_MD_256 = 9, - HASH_ALGO_RIPE_MD_320 = 10, - HASH_ALGO_WP_256 = 11, - HASH_ALGO_WP_384 = 12, - HASH_ALGO_WP_512 = 13, - HASH_ALGO_TGR_128 = 14, - HASH_ALGO_TGR_160 = 15, - HASH_ALGO_TGR_192 = 16, - HASH_ALGO_SM3_256 = 17, - HASH_ALGO_STREEBOG_256 = 18, - HASH_ALGO_STREEBOG_512 = 19, - HASH_ALGO_SHA3_256 = 20, - HASH_ALGO_SHA3_384 = 21, - HASH_ALGO_SHA3_512 = 22, - HASH_ALGO__LAST = 23, -}; - -enum key_being_used_for { - VERIFYING_MODULE_SIGNATURE = 0, - VERIFYING_FIRMWARE_SIGNATURE = 1, - VERIFYING_KEXEC_PE_SIGNATURE = 2, - VERIFYING_KEY_SIGNATURE = 3, - VERIFYING_KEY_SELF_SIGNATURE = 4, - VERIFYING_UNSPECIFIED_SIGNATURE = 5, - NR__KEY_BEING_USED_FOR = 6, -}; - -struct platform_object { - struct platform_device pdev; - char name[0]; -}; - -struct irq_affinity_devres { - unsigned int count; - unsigned int irq[0]; -}; - -enum { - e1000_igp_cable_length_10 = 10, - e1000_igp_cable_length_20 = 20, - e1000_igp_cable_length_30 = 30, - e1000_igp_cable_length_40 = 40, - e1000_igp_cable_length_50 = 50, - e1000_igp_cable_length_60 = 60, - e1000_igp_cable_length_70 = 70, - e1000_igp_cable_length_80 = 80, - e1000_igp_cable_length_90 = 90, - e1000_igp_cable_length_100 = 100, - e1000_igp_cable_length_110 = 110, - e1000_igp_cable_length_115 = 115, - e1000_igp_cable_length_120 = 120, - e1000_igp_cable_length_130 = 130, - e1000_igp_cable_length_140 = 140, - e1000_igp_cable_length_150 = 150, - e1000_igp_cable_length_160 = 160, - e1000_igp_cable_length_170 = 170, - e1000_igp_cable_length_180 = 180, -}; - -enum iwl_sta_flags { - STA_FLG_REDUCED_TX_PWR_CTRL = 8, - STA_FLG_REDUCED_TX_PWR_DATA = 64, - STA_FLG_DISABLE_TX = 16, - STA_FLG_PS = 256, - STA_FLG_DRAIN_FLOW = 4096, - STA_FLG_PAN = 8192, - STA_FLG_CLASS_AUTH = 16384, - STA_FLG_CLASS_ASSOC = 32768, - STA_FLG_RTS_MIMO_PROT = 131072, - STA_FLG_MAX_AGG_SIZE_SHIFT = 19, - STA_FLG_MAX_AGG_SIZE_8K = 0, - STA_FLG_MAX_AGG_SIZE_16K = 524288, - STA_FLG_MAX_AGG_SIZE_32K = 1048576, - STA_FLG_MAX_AGG_SIZE_64K = 1572864, - STA_FLG_MAX_AGG_SIZE_128K = 2097152, - STA_FLG_MAX_AGG_SIZE_256K = 2621440, - STA_FLG_MAX_AGG_SIZE_512K = 3145728, - STA_FLG_MAX_AGG_SIZE_1024K = 3670016, - STA_FLG_MAX_AGG_SIZE_2M = 4194304, - STA_FLG_MAX_AGG_SIZE_4M = 4718592, - STA_FLG_MAX_AGG_SIZE_MSK = 7864320, - STA_FLG_AGG_MPDU_DENS_SHIFT = 23, - STA_FLG_AGG_MPDU_DENS_2US = 33554432, - STA_FLG_AGG_MPDU_DENS_4US = 41943040, - STA_FLG_AGG_MPDU_DENS_8US = 50331648, - STA_FLG_AGG_MPDU_DENS_16US = 58720256, - STA_FLG_AGG_MPDU_DENS_MSK = 58720256, - STA_FLG_FAT_EN_20MHZ = 0, - STA_FLG_FAT_EN_40MHZ = 67108864, - STA_FLG_FAT_EN_80MHZ = 134217728, - STA_FLG_FAT_EN_160MHZ = 201326592, - STA_FLG_FAT_EN_MSK = 201326592, - STA_FLG_MIMO_EN_SISO = 0, - STA_FLG_MIMO_EN_MIMO2 = 268435456, - STA_FLG_MIMO_EN_MIMO3 = 536870912, - STA_FLG_MIMO_EN_MSK = 805306368, -}; - -enum iwl_ac { - AC_BK = 0, - AC_BE = 1, - AC_VI = 2, - AC_VO = 3, - AC_NUM = 4, -}; - -enum iwl_sta_modify_flag { - STA_MODIFY_QUEUE_REMOVAL = 1, - STA_MODIFY_TID_DISABLE_TX = 2, - STA_MODIFY_UAPSD_ACS = 4, - STA_MODIFY_ADD_BA_TID = 8, - STA_MODIFY_REMOVE_BA_TID = 16, - STA_MODIFY_SLEEPING_STA_TX_COUNT = 32, - STA_MODIFY_PROT_TH = 64, - STA_MODIFY_QUEUES = 128, -}; - -enum iwl_mvm_add_sta_rsp_status { - ADD_STA_SUCCESS = 1, - ADD_STA_STATIONS_OVERLOAD = 2, - ADD_STA_IMMEDIATE_BA_FAILURE = 4, - ADD_STA_MODIFY_NON_EXISTING_STA = 8, -}; - -enum iwl_sta_mode { - STA_MODE_ADD = 0, - STA_MODE_MODIFY = 1, -}; - -enum iwl_sta_sleep_flag { - STA_SLEEP_STATE_AWAKE = 0, - STA_SLEEP_STATE_PS_POLL = 1, - STA_SLEEP_STATE_UAPSD = 2, - STA_SLEEP_STATE_MOREDATA = 4, -}; - -enum iwl_scd_cfg_actions { - SCD_CFG_DISABLE_QUEUE = 0, - SCD_CFG_ENABLE_QUEUE = 1, - SCD_CFG_UPDATE_QUEUE_TID = 2, -}; - -struct iwl_mvm_add_sta_cmd { - u8 add_modify; - u8 awake_acs; - __le16 tid_disable_tx; - __le32 mac_id_n_color; - u8 addr[6]; - __le16 reserved2; - u8 sta_id; - u8 modify_mask; - __le16 reserved3; - __le32 station_flags; - __le32 station_flags_msk; - u8 add_immediate_ba_tid; - u8 remove_immediate_ba_tid; - __le16 add_immediate_ba_ssn; - __le16 sleep_tx_count; - u8 sleep_state_flags; - u8 station_type; - __le16 assoc_id; - __le16 beamform_flags; - __le32 tfd_queue_msk; - __le16 rx_ba_window; - u8 sp_length; - u8 uapsd_acs; -}; - -struct iwl_scd_txq_cfg_cmd { - u8 token; - u8 sta_id; - u8 tid; - u8 scd_queue; - u8 action; - u8 aggregate; - u8 tx_fifo; - u8 window; - __le16 ssn; - __le16 reserved; -}; - -struct iwl_mvm_delba_data { - u32 baid; -}; - -struct iwl_mvm_add_sta_key_common { - u8 sta_id; - u8 key_offset; - __le16 key_flags; - u8 key[32]; - u8 rx_secur_seq_cnt[16]; -}; - -struct iwl_mvm_add_sta_key_cmd_v1 { - struct iwl_mvm_add_sta_key_common common; - u8 tkip_rx_tsc_byte2; - u8 reserved; - __le16 tkip_rx_ttak[5]; -}; - -struct iwl_mvm_add_sta_key_cmd { - struct iwl_mvm_add_sta_key_common common; - __le64 rx_mic_key; - __le64 tx_mic_key; - __le64 transmit_seq_cnt; -} __attribute__((packed)); - -struct iwl_mvm_rm_sta_cmd { - u8 sta_id; - u8 reserved[3]; -}; - -struct iwl_mvm_mgmt_mcast_key_cmd { - __le32 ctrl_flags; - u8 igtk[32]; - __le32 key_id; - __le32 sta_id; - __le64 receive_seq_cnt; -} __attribute__((packed)); - -struct iwl_mvm_mgmt_mcast_key_cmd_v1 { - __le32 ctrl_flags; - u8 igtk[16]; - u8 k1[16]; - u8 k2[16]; - __le32 key_id; - __le32 sta_id; - __le64 receive_seq_cnt; -} __attribute__((packed)); - -struct iwl_mvm_eosp_notification { - __le32 remain_frame_count; - __le32 sta_id; -}; - -struct iwl_cancel_channel_switch_cmd { - __le32 id; -}; - -struct sch_frag_data { - unsigned long dst; - struct qdisc_skb_cb cb; - __be16 inner_protocol; - u16 vlan_tci; - __be16 vlan_proto; - unsigned int l2_len; - u8 l2_data[18]; - int (*xmit)(struct sk_buff *); -}; - -struct ip_reply_arg { - struct kvec iov[1]; - int flags; - __wsum csum; - int csumoffset; - int bound_dev_if; - u8 tos; - kuid_t uid; -}; - -struct bpf_iter__tcp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct sock_common *sk_common; - }; - uid_t uid; -}; - -struct bpf_tcp_iter_state { - struct tcp_iter_state state; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - struct sock **batch; - bool st_bucket_done; -}; - -enum ieee80211_s1g_actioncode { - WLAN_S1G_AID_SWITCH_REQUEST = 0, - WLAN_S1G_AID_SWITCH_RESPONSE = 1, - WLAN_S1G_SYNC_CONTROL = 2, - WLAN_S1G_STA_INFO_ANNOUNCE = 3, - WLAN_S1G_EDCA_PARAM_SET = 4, - WLAN_S1G_EL_OPERATION = 5, - WLAN_S1G_TWT_SETUP = 6, - WLAN_S1G_TWT_TEARDOWN = 7, - WLAN_S1G_SECT_GROUP_ID_LIST = 8, - WLAN_S1G_SECT_ID_FEEDBACK = 9, - WLAN_S1G_TWT_INFORMATION = 11, -}; - -enum ieee80211_twt_setup_cmd { - TWT_SETUP_CMD_REQUEST = 0, - TWT_SETUP_CMD_SUGGEST = 1, - TWT_SETUP_CMD_DEMAND = 2, - TWT_SETUP_CMD_GROUPING = 3, - TWT_SETUP_CMD_ACCEPT = 4, - TWT_SETUP_CMD_ALTERNATE = 5, - TWT_SETUP_CMD_DICTATE = 6, - TWT_SETUP_CMD_REJECT = 7, -}; - -struct ieee80211_twt_params { - __le16 req_type; - __le64 twt; - u8 min_twt_dur; - __le16 mantissa; - u8 channel; -} __attribute__((packed)); - -struct cpuid_bit { - u16 feature; - u8 reg; - u8 bit; - u32 level; - u32 sub_leaf; -}; - -struct x86_topology_system { - unsigned int dom_shifts[7]; - unsigned int dom_size[7]; -}; - -struct topo_scan { - struct cpuinfo_x86 *c; - unsigned int dom_shifts[7]; - unsigned int dom_ncpus[7]; - unsigned int ebx1_nproc_shift; - u16 amd_nodes_per_pkg; - u16 amd_node_id; -}; - -struct x86_cpu_desc { - u8 x86_family; - u8 x86_vendor; - u8 x86_model; - u8 x86_stepping; - u32 x86_microcode_rev; -}; - -struct aperfmperf { - seqcount_t seq; - unsigned long last_update; - u64 acnt; - u64 mcnt; - u64 aperf; - u64 mperf; -}; - -struct cpuid_dep { - unsigned int feature; - unsigned int depends; -}; - -enum { - PAT_UC = 0, - PAT_WC = 1, - PAT_WT = 4, - PAT_WP = 5, - PAT_WB = 6, - PAT_UC_MINUS = 7, -}; - -struct memtype { - u64 start; - u64 end; - u64 subtree_max_end; - enum page_cache_mode type; - struct rb_node rb; -}; - -struct pagerange_state { - unsigned long cur_pfn; - int ram; - int not_ram; -}; - -struct ftrace_page; - -struct ftrace_rec_iter { - struct ftrace_page *pg; - int index; -}; - -struct ftrace_page { - struct ftrace_page *next; - struct dyn_ftrace *records; - int index; - int order; -}; - -enum ftrace_bug_type { - FTRACE_BUG_UNKNOWN = 0, - FTRACE_BUG_INIT = 1, - FTRACE_BUG_NOP = 2, - FTRACE_BUG_CALL = 3, - FTRACE_BUG_UPDATE = 4, -}; - -enum { - FTRACE_MODIFY_ENABLE_FL = 1, - FTRACE_MODIFY_MAY_SLEEP_FL = 2, -}; - -enum { - FTRACE_ITER_FILTER = 1, - FTRACE_ITER_NOTRACE = 2, - FTRACE_ITER_PRINTALL = 4, - FTRACE_ITER_DO_PROBES = 8, - FTRACE_ITER_PROBE = 16, - FTRACE_ITER_MOD = 32, - FTRACE_ITER_ENABLED = 64, - FTRACE_ITER_TOUCHED = 128, - FTRACE_ITER_ADDRS = 256, -}; - -enum graph_filter_type { - GRAPH_FILTER_NOTRACE = 0, - GRAPH_FILTER_FUNCTION = 1, -}; - -struct ftrace_func_mapper { - struct ftrace_hash hash; -}; - -struct ftrace_func_map { - struct ftrace_func_entry entry; - void *data; -}; - -struct ftrace_func_probe { - struct ftrace_probe_ops *probe_ops; - struct ftrace_ops ops; - struct trace_array *tr; - struct list_head list; - void *data; - int ref; -}; - -struct ftrace_mod_map { - struct callback_head rcu; - struct list_head list; - struct module *mod; - unsigned long start_addr; - unsigned long end_addr; - struct list_head funcs; - unsigned int num_funcs; -}; - -struct ftrace_mod_func { - struct list_head list; - char *name; - unsigned long ip; - unsigned int size; -}; - -struct ftrace_init_func { - struct list_head list; - unsigned long ip; -}; - -struct ftrace_mod_load { - struct list_head list; - char *func; - char *module; - int enable; -}; - -struct ftrace_iterator { - loff_t pos; - loff_t func_pos; - loff_t mod_pos; - struct ftrace_page *pg; - struct dyn_ftrace *func; - struct ftrace_func_probe *probe; - struct ftrace_func_entry *probe_entry; - struct trace_parser parser; - struct ftrace_hash *hash; - struct ftrace_ops *ops; - struct trace_array *tr; - struct list_head *mod_list; - int pidx; - int idx; - unsigned int flags; -}; - -struct ftrace_glob { - char *search; - unsigned int len; - int type; -}; - -struct ftrace_graph_data { - struct ftrace_hash *hash; - struct ftrace_func_entry *entry; - int idx; - enum graph_filter_type type; - struct ftrace_hash *new_hash; - const struct seq_operations *seq_ops; - struct trace_parser parser; -}; - -struct kallsyms_data { - unsigned long *addrs; - const char **syms; - size_t cnt; - size_t found; -}; - -enum wb_state { - WB_registered = 0, - WB_writeback_running = 1, - WB_has_dirty_io = 2, - WB_start_all = 3, -}; - -struct ext4_attr { - struct attribute attr; - short attr_id; - short attr_ptr; - unsigned short attr_size; - union { - int offset; - void *explicit_ptr; - } u; -}; - -enum { - attr_noop = 0, - attr_delayed_allocation_blocks = 1, - attr_session_write_kbytes = 2, - attr_lifetime_write_kbytes = 3, - attr_reserved_clusters = 4, - attr_sra_exceeded_retry_limit = 5, - attr_inode_readahead = 6, - attr_trigger_test_error = 7, - attr_first_error_time = 8, - attr_last_error_time = 9, - attr_feature = 10, - attr_pointer_ui = 11, - attr_pointer_ul = 12, - attr_pointer_u64 = 13, - attr_pointer_u8 = 14, - attr_pointer_string = 15, - attr_pointer_atomic = 16, - attr_journal_task = 17, -}; - -enum { - ptr_explicit = 0, - ptr_ext4_sb_info_offset = 1, - ptr_ext4_super_block_offset = 2, -}; - -struct btrfs_dev_replace_item { - __le64 src_devid; - __le64 cursor_left; - __le64 cursor_right; - __le64 cont_reading_from_srcdev_mode; - __le64 replace_state; - __le64 time_started; - __le64 time_stopped; - __le64 num_write_errors; - __le64 num_uncorrectable_read_errors; -}; - -typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int); - -typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); - -typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); - -enum { - KYBER_READ = 0, - KYBER_WRITE = 1, - KYBER_DISCARD = 2, - KYBER_OTHER = 3, - KYBER_NUM_DOMAINS = 4, -}; - -enum { - KYBER_TOTAL_LATENCY = 0, - KYBER_IO_LATENCY = 1, -}; - -enum { - KYBER_LATENCY_SHIFT = 2, - KYBER_GOOD_BUCKETS = 4, - KYBER_LATENCY_BUCKETS = 8, -}; - -enum { - KYBER_ASYNC_PERCENT = 75, -}; - -struct trace_event_raw_kyber_latency { - struct trace_entry ent; - dev_t dev; - char domain[16]; - char type[8]; - u8 percentile; - u8 numerator; - u8 denominator; - unsigned int samples; - char __data[0]; -}; - -struct trace_event_raw_kyber_adjust { - struct trace_entry ent; - dev_t dev; - char domain[16]; - unsigned int depth; - char __data[0]; -}; - -struct trace_event_raw_kyber_throttled { - struct trace_entry ent; - dev_t dev; - char domain[16]; - char __data[0]; -}; - -struct kyber_cpu_latency { - atomic_t buckets[48]; -}; - -struct kyber_queue_data { - struct request_queue *q; - dev_t dev; - struct sbitmap_queue domain_tokens[4]; - unsigned int async_depth; - struct kyber_cpu_latency __attribute__((btf_type_tag("percpu"))) *cpu_latency; - struct timer_list timer; - unsigned int latency_buckets[48]; - unsigned long latency_timeout[3]; - int domain_p99[3]; - u64 latency_targets[3]; -}; - -struct sbq_wait { - struct sbitmap_queue *sbq; - struct wait_queue_entry wait; -}; - -struct kyber_ctx_queue { - spinlock_t lock; - struct list_head rq_list[4]; -}; - -struct kyber_hctx_data { - spinlock_t lock; - struct list_head rqs[4]; - unsigned int cur_domain; - unsigned int batching; - struct kyber_ctx_queue *kcqs; - struct sbitmap kcq_map[4]; - struct sbq_wait domain_wait[4]; - struct sbq_wait_state *domain_ws[4]; - atomic_t wait_index[4]; -}; - -struct flush_kcq_data { - struct kyber_hctx_data *khd; - unsigned int sched_domain; - struct list_head *list; -}; - -typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); - -struct trace_event_data_offsets_kyber_latency {}; - -struct trace_event_data_offsets_kyber_adjust {}; - -struct trace_event_data_offsets_kyber_throttled {}; - -struct event_counter { - u32 count; - u32 flags; -}; - -struct acpi_data_attr; - -struct acpi_data_obj { - char *name; - int (*fn)(void *, struct acpi_data_attr *); -}; - -struct acpi_data_attr { - struct bin_attribute attr; - u64 addr; -}; - -struct acpi_table_attr { - struct bin_attribute attr; - char name[4]; - int instance; - char filename[8]; - struct list_head node; -}; - -struct acpi_table_bert { - struct acpi_table_header header; - u32 region_length; - u64 address; -}; - -struct acpi_table_ccel { - struct acpi_table_header header; - u8 CCtype; - u8 Ccsub_type; - u16 reserved; - u64 log_area_minimum_length; - u64 log_area_start_address; -}; - -enum { - AML_FIELD_ATTRIB_QUICK = 2, - AML_FIELD_ATTRIB_SEND_RECEIVE = 4, - AML_FIELD_ATTRIB_BYTE = 6, - AML_FIELD_ATTRIB_WORD = 8, - AML_FIELD_ATTRIB_BLOCK = 10, - AML_FIELD_ATTRIB_BYTES = 11, - AML_FIELD_ATTRIB_PROCESS_CALL = 12, - AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 13, - AML_FIELD_ATTRIB_RAW_BYTES = 14, - AML_FIELD_ATTRIB_RAW_PROCESS_BYTES = 15, -}; - -struct dev_pm_domain_attach_data { - const char * const *pd_names; - const u32 num_pd_names; - const u32 pd_flags; -}; - -struct dev_pm_domain_list { - struct device **pd_devs; - struct device_link **pd_links; - u32 num_pds; -}; - -enum { - ACTION_FAIL = 0, - ACTION_REPREP = 1, - ACTION_DELAYED_REPREP = 2, - ACTION_RETRY = 3, - ACTION_DELAYED_RETRY = 4, -}; - -enum scsi_ml_status { - SCSIML_STAT_OK = 0, - SCSIML_STAT_RESV_CONFLICT = 1, - SCSIML_STAT_NOSPC = 2, - SCSIML_STAT_MED_ERROR = 3, - SCSIML_STAT_TGT_FAILURE = 4, - SCSIML_STAT_DL_TIMEOUT = 5, -}; - -enum scsi_host_prot_capabilities { - SHOST_DIF_TYPE1_PROTECTION = 1, - SHOST_DIF_TYPE2_PROTECTION = 2, - SHOST_DIF_TYPE3_PROTECTION = 4, - SHOST_DIX_TYPE0_PROTECTION = 8, - SHOST_DIX_TYPE1_PROTECTION = 16, - SHOST_DIX_TYPE2_PROTECTION = 32, - SHOST_DIX_TYPE3_PROTECTION = 64, -}; - -enum scsi_prot_operations { - SCSI_PROT_NORMAL = 0, - SCSI_PROT_READ_INSERT = 1, - SCSI_PROT_WRITE_STRIP = 2, - SCSI_PROT_READ_STRIP = 3, - SCSI_PROT_WRITE_INSERT = 4, - SCSI_PROT_READ_PASS = 5, - SCSI_PROT_WRITE_PASS = 6, -}; - -struct iwl_dump_ini_region_data; - -struct iwl_dump_ini_mem_ops { - u32 (*get_num_of_ranges)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *); - u32 (*get_size)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *); - void * (*fill_mem_hdr)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *, void *, u32); - int (*fill_range)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *, void *, u32, int); -}; - -struct iwl_dump_ini_region_data { - struct iwl_ucode_tlv *reg_tlv; - struct iwl_fwrt_dump_data *dump_data; -}; - -struct iwl_prph_range { - u32 start; - u32 end; -}; - -enum iwl_fw_dbg_trigger_flags { - IWL_FW_DBG_FORCE_RESTART = 1, -}; - -enum iwl_fw_ini_dump_type { - IWL_FW_INI_DUMP_BRIEF = 0, - IWL_FW_INI_DUMP_MEDIUM = 1, - IWL_FW_INI_DUMP_VERBOSE = 2, -}; - -enum iwl_fw_ini_dump_policy { - IWL_FW_INI_DEBUG_DUMP_POLICY_NO_LIMIT = 1, - IWL_FW_INI_DEBUG_DUMP_POLICY_MAX_LIMIT_600KB = 2, - IWL_FW_IWL_DEBUG_DUMP_POLICY_MAX_LIMIT_5MB = 4, -}; - -enum iwl_fw_ini_region_device_memory_subtype { - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_HW_SMEM = 1, - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_UMAC_ERROR_TABLE = 5, - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_1_ERROR_TABLE = 7, - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_2_ERROR_TABLE = 10, - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_1_ERROR_TABLE = 14, - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_2_ERROR_TABLE = 16, - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_1_ERROR_TABLE = 18, - IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_2_ERROR_TABLE = 20, -}; - -enum iwl_ucode_sec { - IWL_UCODE_SECTION_DATA = 0, - IWL_UCODE_SECTION_INST = 1, -}; - -enum iwl_fw_error_dump_mem_type { - IWL_FW_ERROR_DUMP_MEM_SRAM = 0, - IWL_FW_ERROR_DUMP_MEM_SMEM = 1, - IWL_FW_ERROR_DUMP_MEM_NAMED_MEM = 10, -}; - -enum iwl_dbg_suspend_resume_cmds { - DBGC_RESUME_CMD = 0, - DBGC_SUSPEND_CMD = 1, -}; - -struct iwl_fw_ini_dump_entry { - struct list_head list; - u32 size; - u8 data[0]; -} __attribute__((packed)); - -struct iwl_fw_error_dump_data { - __le32 type; - __le32 len; - __u8 data[0]; -}; - -struct iwl_fw_ini_dump_file_hdr { - __le32 barker; - __le32 file_len; -}; - -struct iwl_fw_dump_ptrs { - struct iwl_trans_dump_data *trans_ptr; - void *fwrt_ptr; - u32 fwrt_len; -}; - -struct iwl_fw_error_dump_file { - __le32 barker; - __le32 file_len; - u8 data[0]; -}; - -struct iwl_fw_error_dump_info { - __le32 hw_type; - __le32 hw_step; - u8 fw_human_readable[64]; - u8 dev_human_readable[64]; - u8 bus_human_readable[8]; - u8 num_of_lmacs; - __le32 umac_err_id; - __le32 lmac_err_id[2]; -} __attribute__((packed)); - -struct iwl_fw_error_dump_smem_cfg { - __le32 num_lmacs; - __le32 num_txfifo_entries; - struct { - __le32 txfifo_size[15]; - __le32 rxfifo1_size; - } lmac[2]; - __le32 rxfifo2_size; - __le32 internal_txfifo_addr; - __le32 internal_txfifo_size[6]; -}; - -struct iwl_dump_file_name_info { - __le32 type; - __le32 len; - __u8 data[0]; -}; - -struct iwl_fw_ini_dump_cfg_name { - __le32 image_type; - __le32 cfg_name_len; - u8 cfg_name[64]; -}; - -struct iwl_fw_ini_dump_info { - __le32 version; - __le32 time_point; - __le32 trigger_reason; - __le32 external_cfg_state; - __le32 ver_type; - __le32 ver_subtype; - __le32 hw_step; - __le32 hw_type; - __le32 rf_id_flavor; - __le32 rf_id_dash; - __le32 rf_id_step; - __le32 rf_id_type; - __le32 lmac_major; - __le32 lmac_minor; - __le32 umac_major; - __le32 umac_minor; - __le32 fw_mon_mode; - __le64 regions_mask; - __le32 build_tag_len; - u8 build_tag[64]; - __le32 num_of_cfg_names; - struct iwl_fw_ini_dump_cfg_name cfg_names[0]; -} __attribute__((packed)); - -struct iwl_dbg_dump_complete_cmd { - __le32 tp; - __le32 tp_data; -}; - -struct iwl_fw_error_dump_fifo { - __le32 fifo_num; - __le32 available_bytes; - __le32 wr_ptr; - __le32 rd_ptr; - __le32 fence_ptr; - __le32 fence_mode; - u8 data[0]; -}; - -struct iwl_fw_error_dump_mem { - __le32 type; - __le32 offset; - u8 data[0]; -}; - -struct iwl_fw_error_dump_paging { - __le32 index; - __le32 reserved; - u8 data[0]; -}; - -struct iwl_fw_error_dump_prph { - __le32 prph_start; - __le32 data[0]; -}; - -struct iwl_dbg_suspend_resume_cmd { - __le32 operation; -}; - -struct iwl_fw_ini_fifo_hdr { - __le32 fifo_num; - __le32 num_of_registers; -}; - -struct iwl_fw_ini_error_dump_range { - __le32 range_data_size; - union { - __le32 internal_base_addr; - __le64 dram_base_addr; - __le32 page_num; - struct iwl_fw_ini_fifo_hdr fifo_hdr; - struct iwl_cmd_header fw_pkt_hdr; - }; - __le32 data[0]; -} __attribute__((packed)); - -struct iwl_mvm_marker { - u8 dw_len; - u8 marker_id; - __le16 reserved; - __le64 timestamp; - __le32 metadata[0]; -} __attribute__((packed)); - -struct iwl_mvm_marker_rsp { - __le32 gp2; -}; - -struct iwl_fw_dbg_config_cmd { - __le32 type; - __le32 conf; -}; - -struct iwl_fw_ini_error_dump_data { - u8 type; - u8 sub_type; - u8 sub_type_ver; - u8 reserved; - __le32 len; - __u8 data[0]; -}; - -struct iwl_fw_ini_error_dump_header { - __le32 version; - __le32 region_id; - __le32 num_of_ranges; - __le32 name_len; - u8 name[32]; -}; - -struct iwl_fw_ini_monitor_dump { - struct iwl_fw_ini_error_dump_header header; - __le32 write_ptr; - __le32 cycle_cnt; - __le32 cur_frag; - u8 data[0]; -}; - -struct iwl_fw_ini_error_dump { - struct iwl_fw_ini_error_dump_header header; - u8 data[0]; -}; - -struct iwl_fw_ini_error_dump_register { - __le32 addr; - __le32 data; -}; - -struct iwl_ini_rxf_data { - u32 fifo_num; - u32 size; - u32 offset; -}; - -struct iwl_fw_ini_err_table_dump { - struct iwl_fw_ini_error_dump_header header; - __le32 version; - u8 data[0]; -}; - -struct iwl_fw_ini_special_device_memory { - struct iwl_fw_ini_error_dump_header header; - __le16 type; - __le16 version; - u8 data[0]; -}; - -struct iwl_fw_ini_addr_size { - __le32 addr; - __le32 size; -}; - -struct xhci_driver_overrides { - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); - int (*start)(struct usb_hcd *); - int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); - void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); - int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); - int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); -}; - -struct xhci_driver_data { - u64 quirks; - const char *firmware; -}; - -typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); - -struct dm_ioctl; - -typedef int (*ioctl_fn)(struct file *, struct dm_ioctl *, size_t); - -struct dm_ioctl { - __u32 version[3]; - __u32 data_size; - __u32 data_start; - __u32 target_count; - __s32 open_count; - __u32 flags; - __u32 event_nr; - __u32 padding; - __u64 dev; - char name[128]; - char uuid[129]; - char data[7]; -}; - -enum { - DM_VERSION_CMD = 0, - DM_REMOVE_ALL_CMD = 1, - DM_LIST_DEVICES_CMD = 2, - DM_DEV_CREATE_CMD = 3, - DM_DEV_REMOVE_CMD = 4, - DM_DEV_RENAME_CMD = 5, - DM_DEV_SUSPEND_CMD = 6, - DM_DEV_STATUS_CMD = 7, - DM_DEV_WAIT_CMD = 8, - DM_TABLE_LOAD_CMD = 9, - DM_TABLE_CLEAR_CMD = 10, - DM_TABLE_DEPS_CMD = 11, - DM_TABLE_STATUS_CMD = 12, - DM_LIST_VERSIONS_CMD = 13, - DM_TARGET_MSG_CMD = 14, - DM_DEV_SET_GEOMETRY_CMD = 15, - DM_DEV_ARM_POLL_CMD = 16, - DM_GET_TARGET_VERSION_CMD = 17, -}; - -struct hash_cell { - struct rb_node name_node; - struct rb_node uuid_node; - bool name_set; - bool uuid_set; - char *name; - char *uuid; - struct mapped_device *md; - struct dm_table *new_map; -}; - -struct dm_target_spec { - __u64 sector_start; - __u64 length; - __s32 status; - __u32 next; - char target_type[16]; -}; - -struct dm_dev_internal { - struct list_head list; - refcount_t count; - struct dm_dev *dm_dev; -}; - -struct dm_target_msg { - __u64 sector; - char message[0]; -}; - -struct dm_target_deps { - __u32 count; - __u32 padding; - __u64 dev[0]; -}; - -struct dm_target_versions; - -struct vers_iter { - size_t param_size; - struct dm_target_versions *vers; - struct dm_target_versions *old_vers; - char *end; - uint32_t flags; -}; - -struct dm_target_versions { - __u32 next; - __u32 version[3]; - char name[0]; -}; - -struct dm_file { - volatile unsigned int global_event_nr; -}; - -struct dm_name_list { - __u64 dev; - __u32 next; - char name[0]; -}; - -enum { - ETHTOOL_A_MODULE_EEPROM_UNSPEC = 0, - ETHTOOL_A_MODULE_EEPROM_HEADER = 1, - ETHTOOL_A_MODULE_EEPROM_OFFSET = 2, - ETHTOOL_A_MODULE_EEPROM_LENGTH = 3, - ETHTOOL_A_MODULE_EEPROM_PAGE = 4, - ETHTOOL_A_MODULE_EEPROM_BANK = 5, - ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS = 6, - ETHTOOL_A_MODULE_EEPROM_DATA = 7, - __ETHTOOL_A_MODULE_EEPROM_CNT = 8, - ETHTOOL_A_MODULE_EEPROM_MAX = 7, -}; - -struct eeprom_req_info { - struct ethnl_req_info base; - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; -}; - -struct eeprom_reply_data { - struct ethnl_reply_data base; - u32 length; - u8 *data; -}; - -struct ip_frag_state { - bool DF; - unsigned int hlen; - unsigned int ll_rs; - unsigned int mtu; - unsigned int left; - int offset; - int ptr; - __be16 not_last_frag; -}; - -struct ip_fraglist_iter { - struct sk_buff *frag; - struct iphdr *iph; - int offset; - unsigned int hlen; -}; - -struct irq_info { - u8 bus; - u8 devfn; - struct { - u8 link; - u16 bitmap; - } __attribute__((packed)) irq[4]; - u8 slot; - u8 rfu; -}; - -struct irq_routing_table { - u32 signature; - u16 version; - u16 size; - u8 rtr_bus; - u8 rtr_devfn; - u16 exclusive_irqs; - u16 rtr_vendor; - u16 rtr_device; - u32 miniport_data; - u8 rfu[11]; - u8 checksum; - struct irq_info slots[0]; -}; - -struct irq_router { - char *name; - u16 vendor; - u16 device; - int (*get)(struct pci_dev *, struct pci_dev *, int); - int (*set)(struct pci_dev *, struct pci_dev *, int, int); - int (*lvl)(struct pci_dev *, struct pci_dev *, int, int); -}; - -struct irq_router_handler { - u16 vendor; - int (*probe)(struct irq_router *, struct pci_dev *, u16); -}; - -struct irt_routing_table { - u32 signature; - u8 size; - u8 used; - u16 exclusive_irqs; - struct irq_info slots[0]; -}; - -struct text_poke_loc { - s32 rel_addr; - s32 disp; - u8 len; - u8 opcode; - const u8 text[5]; - u8 old; -}; - -struct bp_patching_desc { - struct text_poke_loc *vec; - int nr_entries; - atomic_t refs; -}; - -struct smp_alt_module { - struct module *mod; - char *name; - const s32 *locks; - const s32 *locks_end; - u8 *text; - u8 *text_end; - struct list_head next; -}; - -typedef void text_poke_f(void *, const void *, size_t); - -typedef struct { - struct mm_struct *mm; -} temp_mm_state_t; - -struct equiv_cpu_entry; - -struct equiv_cpu_table { - unsigned int num_entries; - struct equiv_cpu_entry *entry; -}; - -struct equiv_cpu_entry { - u32 installed_cpu; - u32 fixed_errata_mask; - u32 fixed_errata_compare; - u16 equiv_cpu; - u16 res; -}; - -struct microcode_header_amd { - u32 data_code; - u32 patch_id; - u16 mc_patch_data_id; - u8 mc_patch_data_len; - u8 init_flag; - u32 mc_patch_data_checksum; - u32 nb_dev_id; - u32 sb_dev_id; - u16 processor_rev_id; - u8 nb_rev_id; - u8 sb_rev_id; - u8 bios_api_rev; - u8 reserved1[3]; - u32 match_reg[8]; -}; - -struct microcode_amd { - struct microcode_header_amd hdr; - unsigned int mpb[0]; -}; - -struct ucode_patch { - struct list_head plist; - void *data; - unsigned int size; - u32 patch_id; - u16 equiv_cpu; -}; - -struct cont_desc { - struct microcode_amd *mc; - u32 cpuid_1_eax; - u32 psize; - u8 *data; - size_t size; -}; - -enum efi_secureboot_mode { - efi_secureboot_mode_unset = 0, - efi_secureboot_mode_unknown = 1, - efi_secureboot_mode_disabled = 2, - efi_secureboot_mode_enabled = 3, -}; - -typedef struct { - u32 version; - u32 length; - u64 memory_protection_attribute; -} efi_properties_table_t; - -typedef struct { - efi_table_hdr_t hdr; - u64 fw_vendor; - u32 fw_revision; - u32 __pad1; - u64 con_in_handle; - u64 con_in; - u64 con_out_handle; - u64 con_out; - u64 stderr_handle; - u64 stderr; - u64 runtime; - u64 boottime; - u32 nr_tables; - u32 __pad2; - u64 tables; -} efi_system_table_64_t; - -enum audit_ntp_type { - AUDIT_NTP_OFFSET = 0, - AUDIT_NTP_FREQ = 1, - AUDIT_NTP_STATUS = 2, - AUDIT_NTP_TAI = 3, - AUDIT_NTP_TICK = 4, - AUDIT_NTP_ADJUST = 5, - AUDIT_NTP_NVALS = 6, -}; - -enum freezer_state_flags { - CGROUP_FREEZER_ONLINE = 1, - CGROUP_FREEZING_SELF = 2, - CGROUP_FREEZING_PARENT = 4, - CGROUP_FROZEN = 8, - CGROUP_FREEZING = 6, -}; - -struct freezer { - struct cgroup_subsys_state css; - unsigned int state; -}; - -struct eprobe_trace_entry_head { - struct trace_entry ent; -}; - -struct trace_eprobe { - const char *event_system; - const char *event_name; - char *filter_str; - struct trace_event_call *event; - struct dyn_event devent; - struct trace_probe tp; -}; - -struct eprobe_data { - struct trace_event_file *file; - struct trace_eprobe *ep; -}; - -struct xol_area { - wait_queue_head_t wq; - atomic_t slot_count; - unsigned long *bitmap; - struct vm_special_mapping xol_mapping; - struct page *pages[2]; - unsigned long vaddr; -}; - -struct uprobe { - struct rb_node rb_node; - refcount_t ref; - struct rw_semaphore register_rwsem; - struct rw_semaphore consumer_rwsem; - struct list_head pending_list; - struct uprobe_consumer *consumers; - struct inode *inode; - loff_t offset; - loff_t ref_ctr_offset; - unsigned long flags; - struct arch_uprobe arch; -}; - -typedef u8 uprobe_opcode_t; - -struct delayed_uprobe { - struct list_head list; - struct uprobe *uprobe; - struct mm_struct *mm; -}; - -struct __uprobe_key { - struct inode *inode; - loff_t offset; -}; - -struct map_info___2 { - struct map_info___2 *next; - struct mm_struct *mm; - unsigned long vaddr; -}; - -struct __old_kernel_stat { - unsigned short st_dev; - unsigned short st_ino; - unsigned short st_mode; - unsigned short st_nlink; - unsigned short st_uid; - unsigned short st_gid; - unsigned short st_rdev; - unsigned int st_size; - unsigned int st_atime; - unsigned int st_mtime; - unsigned int st_ctime; -}; - -struct stat { - __kernel_ulong_t st_dev; - __kernel_ulong_t st_ino; - __kernel_ulong_t st_nlink; - unsigned int st_mode; - unsigned int st_uid; - unsigned int st_gid; - unsigned int __pad0; - __kernel_ulong_t st_rdev; - __kernel_long_t st_size; - __kernel_long_t st_blksize; - __kernel_long_t st_blocks; - __kernel_ulong_t st_atime; - __kernel_ulong_t st_atime_nsec; - __kernel_ulong_t st_mtime; - __kernel_ulong_t st_mtime_nsec; - __kernel_ulong_t st_ctime; - __kernel_ulong_t st_ctime_nsec; - __kernel_long_t __unused[3]; -}; - -typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); - -typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); - -typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); - -typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); - -typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); - -typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lease *); - -typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lease *); - -typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lease *); - -typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lease *); - -typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lease *); - -typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lease *); - -typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lease *, struct file_lease *); - -struct file_lock_list_struct { - spinlock_t lock; - struct hlist_head hlist; -}; - -struct trace_event_raw_locks_get_lock_context { - struct trace_entry ent; - unsigned long i_ino; - dev_t s_dev; - unsigned char type; - struct file_lock_context *ctx; - char __data[0]; -}; - -struct trace_event_raw_filelock_lock { - struct trace_entry ent; - struct file_lock *fl; - unsigned long i_ino; - dev_t s_dev; - struct file_lock_core *blocker; - fl_owner_t owner; - unsigned int pid; - unsigned int flags; - unsigned char type; - loff_t fl_start; - loff_t fl_end; - int ret; - char __data[0]; -}; - -struct trace_event_raw_filelock_lease { - struct trace_entry ent; - struct file_lease *fl; - unsigned long i_ino; - dev_t s_dev; - struct file_lock_core *blocker; - fl_owner_t owner; - unsigned int flags; - unsigned char type; - unsigned long break_time; - unsigned long downgrade_time; - char __data[0]; -}; - -struct trace_event_raw_generic_add_lease { - struct trace_entry ent; - unsigned long i_ino; - int wcount; - int rcount; - int icount; - dev_t s_dev; - fl_owner_t owner; - unsigned int flags; - unsigned char type; - char __data[0]; -}; - -struct trace_event_raw_leases_conflict { - struct trace_entry ent; - void *lease; - void *breaker; - unsigned int l_fl_flags; - unsigned int b_fl_flags; - unsigned char l_fl_type; - unsigned char b_fl_type; - bool conflict; - char __data[0]; -}; - -struct flock { - short l_type; - short l_whence; - __kernel_off_t l_start; - __kernel_off_t l_len; - __kernel_pid_t l_pid; -}; - -struct flock64 { - short l_type; - short l_whence; - __kernel_loff_t l_start; - __kernel_loff_t l_len; - __kernel_pid_t l_pid; -}; - -struct trace_event_data_offsets_locks_get_lock_context {}; - -struct trace_event_data_offsets_filelock_lock {}; - -struct trace_event_data_offsets_filelock_lease {}; - -struct trace_event_data_offsets_generic_add_lease {}; - -struct trace_event_data_offsets_leases_conflict {}; - -struct locks_iterator { - int li_cpu; - loff_t li_pos; -}; - -enum fuse_dax_mode { - FUSE_DAX_INODE_DEFAULT = 0, - FUSE_DAX_ALWAYS = 1, - FUSE_DAX_NEVER = 2, - FUSE_DAX_INODE_USER = 3, -}; - -enum { - OPT_SOURCE = 0, - OPT_SUBTYPE = 1, - OPT_FD = 2, - OPT_ROOTMODE = 3, - OPT_USER_ID = 4, - OPT_GROUP_ID = 5, - OPT_DEFAULT_PERMISSIONS = 6, - OPT_ALLOW_OTHER = 7, - OPT_MAX_READ = 8, - OPT_BLKSIZE = 9, - OPT_ERR = 10, -}; - -struct fuse_init_in { - uint32_t major; - uint32_t minor; - uint32_t max_readahead; - uint32_t flags; - uint32_t flags2; - uint32_t unused[11]; -}; - -struct fuse_init_out { - uint32_t major; - uint32_t minor; - uint32_t max_readahead; - uint32_t flags; - uint16_t max_background; - uint16_t congestion_threshold; - uint32_t max_write; - uint32_t time_gran; - uint16_t max_pages; - uint16_t map_alignment; - uint32_t flags2; - uint32_t max_stack_depth; - uint32_t unused[6]; -}; - -struct fuse_init_args { - struct fuse_args args; - struct fuse_init_in in; - struct fuse_init_out out; -}; - -struct fuse_pqueue { - unsigned int connected; - spinlock_t lock; - struct list_head *processing; - struct list_head io; -}; - -struct fuse_dev { - struct fuse_conn *fc; - struct fuse_pqueue pq; - struct list_head entry; -}; - -struct fuse_kstatfs { - uint64_t blocks; - uint64_t bfree; - uint64_t bavail; - uint64_t files; - uint64_t ffree; - uint32_t bsize; - uint32_t namelen; - uint32_t frsize; - uint32_t padding; - uint32_t spare[6]; -}; - -struct fuse_fs_context { - int fd; - struct file *file; - unsigned int rootmode; - kuid_t user_id; - kgid_t group_id; - bool is_bdev: 1; - bool fd_present: 1; - bool rootmode_present: 1; - bool user_id_present: 1; - bool group_id_present: 1; - bool default_permissions: 1; - bool allow_other: 1; - bool destroy: 1; - bool no_control: 1; - bool no_force_umount: 1; - bool legacy_opts_show: 1; - enum fuse_dax_mode dax_mode; - unsigned int max_read; - unsigned int blksize; - const char *subtype; - struct dax_device *dax_dev; - void **fudptr; -}; - -struct fuse_syncfs_in { - uint64_t padding; -}; - -struct fuse_statfs_out { - struct fuse_kstatfs st; -}; - -struct fuse_inode_handle { - u64 nodeid; - u32 generation; -}; - -struct asymmetric_key_subtype { - struct module *owner; - const char *name; - unsigned short name_len; - void (*describe)(const struct key *, struct seq_file *); - void (*destroy)(void *, void *); - int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); - int (*eds_op)(struct kernel_pkey_params *, const void *, void *); - int (*verify_signature)(const struct key *, const struct public_key_signature *); -}; - -struct bio_map_data { - bool is_our_pages: 1; - bool is_null_mapped: 1; - struct iov_iter iter; - struct iovec iov[0]; -}; - -struct raid6_sse_constants { - u64 x1d[2]; -}; - -struct syscall_info { - __u64 sp; - struct seccomp_data data; -}; - -struct acpi_device_bus_id { - const char *bus_id; - struct ida instance_ida; - struct list_head node; -}; - -struct acpi_dev_match_info { - struct acpi_device_id hid[2]; - const char *uid; - s64 hrv; -}; - -struct clk_multiplier { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - spinlock_t *lock; -}; - -struct virtio_admin_cmd_legacy_wr_data { - __u8 offset; - __u8 reserved[7]; - __u8 registers[0]; -}; - -struct virtio_admin_cmd_legacy_rd_data { - __u8 offset; -}; - -struct virtio_admin_cmd_notify_info_data { - __u8 flags; - __u8 bar; - __u8 padding[6]; - __le64 offset; -}; - -struct virtio_admin_cmd_notify_info_result { - struct virtio_admin_cmd_notify_info_data entries[4]; -}; - -struct ata_timing { - unsigned short mode; - unsigned short setup; - unsigned short act8b; - unsigned short rec8b; - unsigned short cyc8b; - unsigned short active; - unsigned short recover; - unsigned short dmack_hold; - unsigned short cycle; - unsigned short udma; -}; - -enum e1000_mng_mode { - e1000_mng_mode_none = 0, - e1000_mng_mode_asf = 1, - e1000_mng_mode_pt = 2, - e1000_mng_mode_ipmi = 3, - e1000_mng_mode_host_if_only = 4, -}; - -enum iwl_mac_config_filter_flags { - MAC_CFG_FILTER_PROMISC = 1, - MAC_CFG_FILTER_ACCEPT_CONTROL_AND_MGMT = 2, - MAC_CFG_FILTER_ACCEPT_GRP = 4, - MAC_CFG_FILTER_ACCEPT_BEACON = 8, - MAC_CFG_FILTER_ACCEPT_BCAST_PROBE_RESP = 16, - MAC_CFG_FILTER_ACCEPT_PROBE_REQ = 32, -}; - -enum iwl_mac_data_policy { - TWT_SUPPORTED = 1, - MORE_DATA_ACK_SUPPORTED = 2, - FLEXIBLE_TWT_SUPPORTED = 4, - PROTECTED_TWT_SUPPORTED = 8, - BROADCAST_TWT_SUPPORTED = 16, - COEX_HIGH_PRIORITY_ENABLE = 32, -}; - -struct iwl_mac_client_data { - u8 is_assoc; - u8 esr_transition_timeout; - __le16 medium_sync_delay; - __le16 assoc_id; - __le16 reserved1; - __le16 data_policy; - __le16 reserved2; - __le32 ctwin; -}; - -struct iwl_mac_p2p_dev_data { - __le32 is_disc_extended; -}; - -struct iwl_mac_config_cmd { - __le32 id_and_color; - __le32 action; - __le32 mac_type; - u8 local_mld_addr[6]; - __le16 reserved_for_local_mld_addr; - __le32 filter_flags; - __le16 he_support; - __le16 he_ap_support; - __le32 eht_support; - __le32 nic_not_ack_enabled; - union { - struct iwl_mac_client_data client; - struct iwl_mac_p2p_dev_data p2p_dev; - }; -}; - -enum xhci_overhead_type { - LS_OVERHEAD_TYPE = 0, - FS_OVERHEAD_TYPE = 1, - HS_OVERHEAD_TYPE = 2, -}; - -enum xhci_setup_dev { - SETUP_CONTEXT_ONLY = 0, - SETUP_CONTEXT_ADDRESS = 1, -}; - struct od_ops { unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); }; +struct dbs_data; + +struct policy_dbs_info; + +struct dbs_governor { + struct cpufreq_governor gov; + struct kobj_type kobj_type; + struct dbs_data *gdbs_data; + unsigned int (*gov_dbs_update)(struct cpufreq_policy *); + struct policy_dbs_info * (*alloc)(); + void (*free)(struct policy_dbs_info *); + int (*init)(struct dbs_data *); + void (*exit)(struct dbs_data *); + void (*start)(struct cpufreq_policy *); +}; + +struct dbs_data { + struct gov_attr_set attr_set; + struct dbs_governor *gov; + void *tuners; + unsigned int ignore_nice_load; + unsigned int sampling_rate; + unsigned int sampling_down_factor; + unsigned int up_threshold; + unsigned int io_is_busy; +}; + +struct policy_dbs_info { + struct cpufreq_policy *policy; + struct mutex update_mutex; + u64 last_sample_time; + s64 sample_delay_ns; + atomic_t work_count; + struct irq_work irq_work; + struct work_struct work; + struct dbs_data *dbs_data; + struct list_head list; + unsigned int rate_mult; + unsigned int idle_periods; + bool is_shared; + bool work_in_progress; +}; + enum { OD_NORMAL_SAMPLE = 0, OD_SUB_SAMPLE = 1, @@ -114917,21384 +102354,117 @@ struct od_dbs_tuners { unsigned int powersave_bias; }; -enum netdev_lag_tx_type { - NETDEV_LAG_TX_TYPE_UNKNOWN = 0, - NETDEV_LAG_TX_TYPE_RANDOM = 1, - NETDEV_LAG_TX_TYPE_BROADCAST = 2, - NETDEV_LAG_TX_TYPE_ROUNDROBIN = 3, - NETDEV_LAG_TX_TYPE_ACTIVEBACKUP = 4, - NETDEV_LAG_TX_TYPE_HASH = 5, +enum tc_mq_command { + TC_MQ_CREATE = 0, + TC_MQ_DESTROY = 1, + TC_MQ_STATS = 2, + TC_MQ_GRAFT = 3, }; -enum netdev_lag_hash { - NETDEV_LAG_HASH_NONE = 0, - NETDEV_LAG_HASH_L2 = 1, - NETDEV_LAG_HASH_L34 = 2, - NETDEV_LAG_HASH_L23 = 3, - NETDEV_LAG_HASH_E23 = 4, - NETDEV_LAG_HASH_E34 = 5, - NETDEV_LAG_HASH_VLAN_SRCMAC = 6, - NETDEV_LAG_HASH_UNKNOWN = 7, +struct tc_qopt_offload_stats { + struct gnet_stats_basic_sync *bstats; + struct gnet_stats_queue *qstats; }; -struct failover_ops { - int (*slave_pre_register)(struct net_device *, struct net_device *); - int (*slave_register)(struct net_device *, struct net_device *); - int (*slave_pre_unregister)(struct net_device *, struct net_device *); - int (*slave_unregister)(struct net_device *, struct net_device *); - int (*slave_link_change)(struct net_device *, struct net_device *); - int (*slave_name_change)(struct net_device *, struct net_device *); - rx_handler_result_t (*slave_handle_frame)(struct sk_buff **); +struct tc_mq_opt_offload_graft_params { + unsigned long queue; + u32 child_handle; }; -struct failover { - struct list_head list; - struct net_device __attribute__((btf_type_tag("rcu"))) *failover_dev; - netdevice_tracker dev_tracker; - struct failover_ops __attribute__((btf_type_tag("rcu"))) *ops; -}; - -struct netdev_lag_upper_info { - enum netdev_lag_tx_type tx_type; - enum netdev_lag_hash hash_type; -}; - -enum ctattr_expect { - CTA_EXPECT_UNSPEC = 0, - CTA_EXPECT_MASTER = 1, - CTA_EXPECT_TUPLE = 2, - CTA_EXPECT_MASK = 3, - CTA_EXPECT_TIMEOUT = 4, - CTA_EXPECT_ID = 5, - CTA_EXPECT_HELP_NAME = 6, - CTA_EXPECT_ZONE = 7, - CTA_EXPECT_FLAGS = 8, - CTA_EXPECT_CLASS = 9, - CTA_EXPECT_NAT = 10, - CTA_EXPECT_FN = 11, - __CTA_EXPECT_MAX = 12, -}; - -enum ctattr_tuple { - CTA_TUPLE_UNSPEC = 0, - CTA_TUPLE_IP = 1, - CTA_TUPLE_PROTO = 2, - CTA_TUPLE_ZONE = 3, - __CTA_TUPLE_MAX = 4, -}; - -enum ctattr_type { - CTA_UNSPEC = 0, - CTA_TUPLE_ORIG = 1, - CTA_TUPLE_REPLY = 2, - CTA_STATUS = 3, - CTA_PROTOINFO = 4, - CTA_HELP = 5, - CTA_NAT_SRC = 6, - CTA_TIMEOUT = 7, - CTA_MARK = 8, - CTA_COUNTERS_ORIG = 9, - CTA_COUNTERS_REPLY = 10, - CTA_USE = 11, - CTA_ID = 12, - CTA_NAT_DST = 13, - CTA_TUPLE_MASTER = 14, - CTA_SEQ_ADJ_ORIG = 15, - CTA_NAT_SEQ_ADJ_ORIG = 15, - CTA_SEQ_ADJ_REPLY = 16, - CTA_NAT_SEQ_ADJ_REPLY = 16, - CTA_SECMARK = 17, - CTA_ZONE = 18, - CTA_SECCTX = 19, - CTA_TIMESTAMP = 20, - CTA_MARK_MASK = 21, - CTA_LABELS = 22, - CTA_LABELS_MASK = 23, - CTA_SYNPROXY = 24, - CTA_FILTER = 25, - CTA_STATUS_MASK = 26, - __CTA_MAX = 27, -}; - -enum ctattr_ip { - CTA_IP_UNSPEC = 0, - CTA_IP_V4_SRC = 1, - CTA_IP_V4_DST = 2, - CTA_IP_V6_SRC = 3, - CTA_IP_V6_DST = 4, - __CTA_IP_MAX = 5, -}; - -enum ctattr_l4proto { - CTA_PROTO_UNSPEC = 0, - CTA_PROTO_NUM = 1, - CTA_PROTO_SRC_PORT = 2, - CTA_PROTO_DST_PORT = 3, - CTA_PROTO_ICMP_ID = 4, - CTA_PROTO_ICMP_TYPE = 5, - CTA_PROTO_ICMP_CODE = 6, - CTA_PROTO_ICMPV6_ID = 7, - CTA_PROTO_ICMPV6_TYPE = 8, - CTA_PROTO_ICMPV6_CODE = 9, - __CTA_PROTO_MAX = 10, -}; - -enum ctattr_expect_nat { - CTA_EXPECT_NAT_UNSPEC = 0, - CTA_EXPECT_NAT_DIR = 1, - CTA_EXPECT_NAT_TUPLE = 2, - __CTA_EXPECT_NAT_MAX = 3, -}; - -enum ctnl_exp_msg_types { - IPCTNL_MSG_EXP_NEW = 0, - IPCTNL_MSG_EXP_GET = 1, - IPCTNL_MSG_EXP_DELETE = 2, - IPCTNL_MSG_EXP_GET_STATS_CPU = 3, - IPCTNL_MSG_EXP_MAX = 4, -}; - -enum ctattr_expect_stats { - CTA_STATS_EXP_UNSPEC = 0, - CTA_STATS_EXP_NEW = 1, - CTA_STATS_EXP_CREATE = 2, - CTA_STATS_EXP_DELETE = 3, - __CTA_STATS_EXP_MAX = 4, -}; - -enum ctattr_seqadj { - CTA_SEQADJ_UNSPEC = 0, - CTA_SEQADJ_CORRECTION_POS = 1, - CTA_SEQADJ_OFFSET_BEFORE = 2, - CTA_SEQADJ_OFFSET_AFTER = 3, - __CTA_SEQADJ_MAX = 4, -}; - -enum ctattr_protoinfo { - CTA_PROTOINFO_UNSPEC = 0, - CTA_PROTOINFO_TCP = 1, - CTA_PROTOINFO_DCCP = 2, - CTA_PROTOINFO_SCTP = 3, - __CTA_PROTOINFO_MAX = 4, -}; - -enum ctattr_synproxy { - CTA_SYNPROXY_UNSPEC = 0, - CTA_SYNPROXY_ISN = 1, - CTA_SYNPROXY_ITS = 2, - CTA_SYNPROXY_TSOFF = 3, - __CTA_SYNPROXY_MAX = 4, -}; - -enum ctattr_filter { - CTA_FILTER_UNSPEC = 0, - CTA_FILTER_ORIG_FLAGS = 1, - CTA_FILTER_REPLY_FLAGS = 2, - __CTA_FILTER_MAX = 3, -}; - -enum cntl_msg_types { - IPCTNL_MSG_CT_NEW = 0, - IPCTNL_MSG_CT_GET = 1, - IPCTNL_MSG_CT_DELETE = 2, - IPCTNL_MSG_CT_GET_CTRZERO = 3, - IPCTNL_MSG_CT_GET_STATS_CPU = 4, - IPCTNL_MSG_CT_GET_STATS = 5, - IPCTNL_MSG_CT_GET_DYING = 6, - IPCTNL_MSG_CT_GET_UNCONFIRMED = 7, - IPCTNL_MSG_MAX = 8, -}; - -enum ctattr_counters { - CTA_COUNTERS_UNSPEC = 0, - CTA_COUNTERS_PACKETS = 1, - CTA_COUNTERS_BYTES = 2, - CTA_COUNTERS32_PACKETS = 3, - CTA_COUNTERS32_BYTES = 4, - CTA_COUNTERS_PAD = 5, - __CTA_COUNTERS_MAX = 6, -}; - -enum ctattr_tstamp { - CTA_TIMESTAMP_UNSPEC = 0, - CTA_TIMESTAMP_START = 1, - CTA_TIMESTAMP_STOP = 2, - CTA_TIMESTAMP_PAD = 3, - __CTA_TIMESTAMP_MAX = 4, -}; - -enum ctattr_stats_cpu { - CTA_STATS_UNSPEC = 0, - CTA_STATS_SEARCHED = 1, - CTA_STATS_FOUND = 2, - CTA_STATS_NEW = 3, - CTA_STATS_INVALID = 4, - CTA_STATS_IGNORE = 5, - CTA_STATS_DELETE = 6, - CTA_STATS_DELETE_LIST = 7, - CTA_STATS_INSERT = 8, - CTA_STATS_INSERT_FAILED = 9, - CTA_STATS_DROP = 10, - CTA_STATS_EARLY_DROP = 11, - CTA_STATS_ERROR = 12, - CTA_STATS_SEARCH_RESTART = 13, - CTA_STATS_CLASH_RESOLVE = 14, - CTA_STATS_CHAIN_TOOLONG = 15, - __CTA_STATS_MAX = 16, -}; - -enum ctattr_stats_global { - CTA_STATS_GLOBAL_UNSPEC = 0, - CTA_STATS_GLOBAL_ENTRIES = 1, - CTA_STATS_GLOBAL_MAX_ENTRIES = 2, - __CTA_STATS_GLOBAL_MAX = 3, -}; - -struct nf_ct_iter_data { - struct net *net; - void *data; - u32 portid; - int report; -}; - -struct ctnetlink_filter_u32 { - u32 val; - u32 mask; -}; - -struct ctnetlink_filter { - u8 family; - bool zone_filter; - u_int32_t orig_flags; - u_int32_t reply_flags; - struct nf_conntrack_tuple orig; - struct nf_conntrack_tuple reply; - struct nf_conntrack_zone zone; - struct ctnetlink_filter_u32 mark; - struct ctnetlink_filter_u32 status; -}; - -struct nf_conn_tstamp { - u_int64_t start; - u_int64_t stop; -}; - -struct ctnetlink_list_dump_ctx { - struct nf_conn *last; - unsigned int cpu; - bool done; -}; - -struct icmp_err { - int errno; - unsigned int fatal: 1; -}; - -struct icmp_control { - enum skb_drop_reason (*handler)(struct sk_buff *); - short error; -}; - -struct icmp_extobj_hdr { - __be16 length; - __u8 class_num; - __u8 class_type; -}; - -struct icmp_ext_hdr { - __u8 reserved1: 4; - __u8 version: 4; - __u8 reserved2; - __sum16 checksum; -}; - -struct icmp_bxm { - struct sk_buff *skb; - int offset; - int data_len; - struct { - struct icmphdr icmph; - __be32 times[3]; - } data; - int head_len; - struct ip_options_data replyopts; -}; - -struct icmp_ext_echo_ctype3_hdr { - __be16 afi; - __u8 addrlen; - __u8 reserved; -}; - -struct icmp_ext_echo_iio { - struct icmp_extobj_hdr extobj_hdr; +struct tc_mq_qopt_offload { + enum tc_mq_command command; + u32 handle; union { - char name[16]; - __be32 ifindex; - struct { - struct icmp_ext_echo_ctype3_hdr ctype3_hdr; - union { - __be32 ipv4_addr; - struct in6_addr ipv6_addr; - } ip_addr; - } addr; - } ident; + struct tc_qopt_offload_stats stats; + struct tc_mq_opt_offload_graft_params graft_params; + }; }; -enum show_regs_mode { - SHOW_REGS_SHORT = 0, - SHOW_REGS_USER = 1, - SHOW_REGS_ALL = 2, +struct mq_sched { + struct Qdisc **qdiscs; }; -enum which_selector { - FS = 0, - GS = 1, +struct nf_nat_hook { + int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *); + void (*decode_session)(struct sk_buff *, struct flowi *); + unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); + void (*remove_nat_bysrc)(struct nf_conn *); }; -struct optimistic_spin_node { - struct optimistic_spin_node *next; - struct optimistic_spin_node *prev; - int locked; - int cpu; +enum ctattr_nat { + CTA_NAT_UNSPEC = 0, + CTA_NAT_V4_MINIP = 1, + CTA_NAT_V4_MAXIP = 2, + CTA_NAT_PROTO = 3, + CTA_NAT_V6_MINIP = 4, + CTA_NAT_V6_MAXIP = 5, + __CTA_NAT_MAX = 6, }; -struct trace_kprobe { - struct dyn_event devent; - struct kretprobe rp; - unsigned long __attribute__((btf_type_tag("percpu"))) *nhit; - const char *symbol; - struct trace_probe tp; +enum ctattr_protonat { + CTA_PROTONAT_UNSPEC = 0, + CTA_PROTONAT_PORT_MIN = 1, + CTA_PROTONAT_PORT_MAX = 2, + __CTA_PROTONAT_MAX = 3, }; -struct kretprobe_trace_entry_head { - struct trace_entry ent; - unsigned long func; - unsigned long ret_ip; +struct nf_ct_seqadj { + u32 correction_pos; + s32 offset_before; + s32 offset_after; }; -struct kprobe_trace_entry_head { - struct trace_entry ent; - unsigned long ip; +struct nf_conn_seqadj { + struct nf_ct_seqadj seq[2]; }; -struct sym_count_ctx { - unsigned int count; - const char *name; -}; - -enum zpool_mapmode { - ZPOOL_MM_RW = 0, - ZPOOL_MM_RO = 1, - ZPOOL_MM_WO = 2, - ZPOOL_MM_DEFAULT = 0, -}; - -struct zpool_driver { - char *type; - struct module *owner; - atomic_t refcount; - struct list_head list; - void * (*create)(const char *, gfp_t); - void (*destroy)(void *); - bool malloc_support_movable; - int (*malloc)(void *, size_t, gfp_t, unsigned long *); - void (*free)(void *, unsigned long); - bool sleep_mapped; - void * (*map)(void *, unsigned long, enum zpool_mapmode); - void (*unmap)(void *, unsigned long); - u64 (*total_size)(void *); -}; - -struct zpool { - struct zpool_driver *driver; - void *pool; -}; - -struct core_name { - char *corename; - int used; - int size; -}; - -struct isofs_fid { - u32 block; - u16 offset; - u16 parent_offset; - u32 generation; - u32 parent_block; - u32 parent_generation; -}; - -struct btrfs_free_space_info { - __le32 extent_count; - __le32 flags; -}; - -enum blkg_iostat_type { - BLKG_IOSTAT_READ = 0, - BLKG_IOSTAT_WRITE = 1, - BLKG_IOSTAT_DISCARD = 2, - BLKG_IOSTAT_NR = 3, -}; - -struct sg_pool { - size_t size; - char *name; - struct kmem_cache *slab; - mempool_t *pool; -}; - -struct hpx_type0 { - u32 revision; - u8 cache_line_size; - u8 latency_timer; - u8 enable_serr; - u8 enable_perr; -}; - -enum hpx_type3_cfg_loc { - HPX_CFG_PCICFG = 0, - HPX_CFG_PCIE_CAP = 1, - HPX_CFG_PCIE_CAP_EXT = 2, - HPX_CFG_VEND_CAP = 3, - HPX_CFG_DVSEC = 4, - HPX_CFG_MAX = 5, -}; - -enum hpx_type3_fn_type { - HPX_FN_NORMAL = 1, - HPX_FN_SRIOV_PHYS = 2, - HPX_FN_SRIOV_VIRT = 4, -}; - -struct hpx_type2 { - u32 revision; - u32 unc_err_mask_and; - u32 unc_err_mask_or; - u32 unc_err_sever_and; - u32 unc_err_sever_or; - u32 cor_err_mask_and; - u32 cor_err_mask_or; - u32 adv_err_cap_and; - u32 adv_err_cap_or; - u16 pci_exp_devctl_and; - u16 pci_exp_devctl_or; - u16 pci_exp_lnkctl_and; - u16 pci_exp_lnkctl_or; - u32 sec_unc_err_sever_and; - u32 sec_unc_err_sever_or; - u32 sec_unc_err_mask_and; - u32 sec_unc_err_mask_or; -}; - -struct hpx_type1 { - u32 revision; - u8 max_mem_read; - u8 avg_max_split; - u16 tot_max_split; -}; - -struct hpx_type3 { - u16 device_type; - u16 function_type; - u16 config_space_location; - u16 pci_exp_cap_id; - u16 pci_exp_cap_ver; - u16 pci_exp_vendor_id; - u16 dvsec_id; - u16 dvsec_rev; - u16 match_offset; - u32 match_mask_and; - u32 match_value; - u16 reg_offset; - u32 reg_mask_and; - u32 reg_mask_or; -}; - -enum { - LDISC_SEM_NORMAL = 0, - LDISC_SEM_OTHER = 1, -}; - -struct vt_spawn_console { - spinlock_t lock; - struct pid *pid; - int sig; -}; - -struct kbd_struct { - unsigned char lockstate; - unsigned char slockstate; - unsigned char ledmode: 1; - unsigned char ledflagstate: 4; - char: 3; - unsigned char default_ledflagstate: 4; - unsigned char kbdmode: 3; - int: 1; - unsigned char modeflags: 5; -}; - -typedef void k_handler_fn(struct vc_data *, unsigned char, char); - -typedef void fn_handler_fn(struct vc_data *); - -struct getset_keycode_data { - struct input_keymap_entry ke; - int error; -}; - -struct keyboard_notifier_param { - struct vc_data *vc; - int down; - int shift; - int ledstate; - unsigned int value; -}; - -struct kbd_repeat { - int delay; - int period; -}; - -struct kbdiacr { - unsigned char diacr; - unsigned char base; - unsigned char result; -}; - -struct kbdiacrs { - unsigned int kb_cnt; - struct kbdiacr kbdiacr[256]; -}; - -struct kbdiacruc { - unsigned int diacr; - unsigned int base; - unsigned int result; -}; - -struct kbdiacrsuc { - unsigned int kb_cnt; - struct kbdiacruc kbdiacruc[256]; -}; - -struct kbkeycode { - unsigned int scancode; - unsigned int keycode; -}; - -struct kbentry { - unsigned char kb_table; - unsigned char kb_index; - unsigned short kb_value; -}; - -struct kbsentry { - unsigned char kb_func; - unsigned char kb_string[512]; -}; - -enum iwl_mvm_init_status { - IWL_MVM_INIT_STATUS_THERMAL_INIT_COMPLETE = 1, - IWL_MVM_INIT_STATUS_LEDS_INIT_COMPLETE = 2, -}; - -struct ct_kill_notif { - __le16 temperature; - u8 dts; - u8 scheme; -}; - -struct iwl_dts_measurement_notif_v1 { - __le32 temp; - __le32 voltage; -}; - -struct iwl_dts_measurement_cmd { - __le32 flags; -}; - -struct iwl_ext_dts_measurement_cmd { - __le32 control_mode; - __le32 temperature; - __le32 sensor; - __le32 avg_factor; - __le32 bit_mode; - __le32 step_duration; -}; - -struct iwl_dts_measurement_resp { - __le32 temp; -}; - -struct iwl_mvm_ctdp_cmd { - __le32 operation; - __le32 budget; - __le32 window_size; -}; - -struct iwl_dts_measurement_notif_v2 { - __le32 temp; - __le32 voltage; - __le32 threshold_idx; -}; - -struct temp_report_ths_cmd { - __le32 num_temps; - __le16 thresholds[8]; -}; - -struct iwl_trip_walk_data { - __le16 *thresholds; - int count; -}; - -struct class_info { - int class; - char *class_name; -}; - -enum i8042_controller_reset_mode { - I8042_RESET_NEVER = 0, - I8042_RESET_ALWAYS = 1, - I8042_RESET_ON_S2RAM = 2, -}; - -struct i8042_port { - struct serio *serio; - int irq; - bool exists; - bool driver_bound; - signed char mux; -}; - -enum sharp_state { - STATE_INACTIVE___3 = 0, - STATE_BIT_PULSE___2 = 1, - STATE_BIT_SPACE___2 = 2, - STATE_TRAILER_PULSE___2 = 3, - STATE_ECHO_SPACE = 4, - STATE_TRAILER_SPACE___2 = 5, -}; - -struct efi_system_resource_table { - u32 fw_resource_count; - u32 fw_resource_count_max; - u64 fw_resource_version; - u8 entries[0]; -}; - -struct esre_entry; - -struct esre_attribute { - struct attribute attr; - ssize_t (*show)(struct esre_entry *, char *); - ssize_t (*store)(struct esre_entry *, const char *, size_t); -}; - -struct efi_system_resource_entry_v1; - -struct esre_entry { - union { - struct efi_system_resource_entry_v1 *esre1; - } esre; - struct kobject kobj; - struct list_head list; -}; - -struct efi_system_resource_entry_v1 { - efi_guid_t fw_class; - u32 fw_type; - u32 fw_version; - u32 lowest_supported_fw_version; - u32 capsule_flags; - u32 last_attempt_version; - u32 last_attempt_status; -}; - -enum nft_ct_expectation_attributes { - NFTA_CT_EXPECT_UNSPEC = 0, - NFTA_CT_EXPECT_L3PROTO = 1, - NFTA_CT_EXPECT_L4PROTO = 2, - NFTA_CT_EXPECT_DPORT = 3, - NFTA_CT_EXPECT_TIMEOUT = 4, - NFTA_CT_EXPECT_SIZE = 5, - __NFTA_CT_EXPECT_MAX = 6, -}; - -enum nft_ct_helper_attributes { - NFTA_CT_HELPER_UNSPEC = 0, - NFTA_CT_HELPER_NAME = 1, - NFTA_CT_HELPER_L3PROTO = 2, - NFTA_CT_HELPER_L4PROTO = 3, - __NFTA_CT_HELPER_MAX = 4, -}; - -enum nft_ct_attributes { - NFTA_CT_UNSPEC = 0, - NFTA_CT_DREG = 1, - NFTA_CT_KEY = 2, - NFTA_CT_DIRECTION = 3, - NFTA_CT_SREG = 4, - __NFTA_CT_MAX = 5, -}; - -enum nft_ct_keys { - NFT_CT_STATE = 0, - NFT_CT_DIRECTION = 1, - NFT_CT_STATUS = 2, - NFT_CT_MARK = 3, - NFT_CT_SECMARK = 4, - NFT_CT_EXPIRATION = 5, - NFT_CT_HELPER = 6, - NFT_CT_L3PROTOCOL = 7, - NFT_CT_SRC = 8, - NFT_CT_DST = 9, - NFT_CT_PROTOCOL = 10, - NFT_CT_PROTO_SRC = 11, - NFT_CT_PROTO_DST = 12, - NFT_CT_LABELS = 13, - NFT_CT_PKTS = 14, - NFT_CT_BYTES = 15, - NFT_CT_AVGPKT = 16, - NFT_CT_ZONE = 17, - NFT_CT_EVENTMASK = 18, - NFT_CT_SRC_IP = 19, - NFT_CT_DST_IP = 20, - NFT_CT_SRC_IP6 = 21, - NFT_CT_DST_IP6 = 22, - NFT_CT_ID = 23, - __NFT_CT_MAX = 24, -}; - -struct nft_ct_expect_obj { - u16 l3num; - __be16 dport; - u8 l4proto; - u8 size; - u32 timeout; -}; - -struct nft_ct_helper_obj { - struct nf_conntrack_helper *helper4; - struct nf_conntrack_helper *helper6; +struct nf_nat_proto_clean { + u8 l3proto; u8 l4proto; }; -struct nft_ct { - enum nft_ct_keys key: 8; - enum ip_conntrack_dir dir: 8; - u8 len; - union { - u8 dreg; - u8 sreg; - }; -}; - -enum rate_control_capabilities { - RATE_CTRL_CAPA_VHT_EXT_NSS_BW = 1, - RATE_CTRL_CAPA_AMPDU_TRIGGER = 2, -}; - -enum ieee80211_encrypt { - ENCRYPT_NO = 0, - ENCRYPT_MGMT = 1, - ENCRYPT_DATA = 2, -}; - -enum ieee80211_radiotap_flags { - IEEE80211_RADIOTAP_F_CFP = 1, - IEEE80211_RADIOTAP_F_SHORTPRE = 2, - IEEE80211_RADIOTAP_F_WEP = 4, - IEEE80211_RADIOTAP_F_FRAG = 8, - IEEE80211_RADIOTAP_F_FCS = 16, - IEEE80211_RADIOTAP_F_DATAPAD = 32, - IEEE80211_RADIOTAP_F_BADFCS = 64, -}; - -enum ieee80211_offload_flags { - IEEE80211_OFFLOAD_ENCAP_ENABLED = 1, - IEEE80211_OFFLOAD_ENCAP_4ADDR = 2, - IEEE80211_OFFLOAD_DECAP_ENABLED = 4, -}; - -enum mesh_path_flags { - MESH_PATH_ACTIVE = 1, - MESH_PATH_RESOLVING = 2, - MESH_PATH_SN_VALID = 4, - MESH_PATH_FIXED = 8, - MESH_PATH_RESOLVED = 16, - MESH_PATH_REQ_QUEUED = 32, - MESH_PATH_DELETED = 64, -}; - -typedef bool fq_skb_filter_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *, void *); - -typedef void fq_skb_free_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *); - -struct ieee80211_radiotap_vendor_namespaces; - -struct ieee80211_radiotap_namespace; - -struct ieee80211_radiotap_iterator { - struct ieee80211_radiotap_header *_rtheader; - const struct ieee80211_radiotap_vendor_namespaces *_vns; - const struct ieee80211_radiotap_namespace *current_namespace; - unsigned char *_arg; - unsigned char *_next_ns_data; - __le32 *_next_bitmap; - unsigned char *this_arg; - int this_arg_index; - int this_arg_size; - int is_radiotap_ns; - int _max_length; - int _arg_index; - uint32_t _bitmap_shifter; - int _reset_on_ext; -}; - -struct ieee80211_radiotap_vendor_namespaces { - const struct ieee80211_radiotap_namespace *ns; - int n_ns; -}; - -struct radiotap_align_size; - -struct ieee80211_radiotap_namespace { - const struct radiotap_align_size *align_size; - int n_bits; - uint32_t oui; - uint8_t subns; -}; - -struct radiotap_align_size { - uint8_t align: 4; - uint8_t size: 4; -}; - -typedef struct sk_buff *fq_tin_dequeue_t(struct fq *, struct fq_tin *, struct fq_flow *); - -typedef u32 (*codel_skb_len_t)(const struct sk_buff *); - -typedef codel_time_t (*codel_skb_time_t)(const struct sk_buff *); - -typedef void (*codel_skb_drop_t)(struct sk_buff *, void *); - -typedef struct sk_buff * (*codel_skb_dequeue_t)(struct codel_vars *, void *); - -struct ieee80211_mutable_offsets { - u16 tim_offset; - u16 tim_length; - u16 cntdwn_counter_offs[2]; - u16 mbssid_off; -}; - -struct ieee80211_ema_beacons { - u8 cnt; - struct { - struct sk_buff *skb; - struct ieee80211_mutable_offsets offs; - } bcn[0]; -}; - -struct mesh_path { - u8 dst[6]; - u8 mpp[6]; - struct rhash_head rhash; - struct hlist_node walk_list; - struct hlist_node gate_list; - struct ieee80211_sub_if_data *sdata; - struct sta_info __attribute__((btf_type_tag("rcu"))) *next_hop; - struct timer_list timer; - struct sk_buff_head frame_queue; - struct callback_head rcu; - u32 sn; - u32 metric; - u8 hop_count; - unsigned long exp_time; - u32 discovery_timeout; - u8 discovery_retries; - enum mesh_path_flags flags; - spinlock_t state_lock; - u8 rann_snd_addr[6]; - u32 rann_metric; - unsigned long last_preq_to_root; - unsigned long fast_tx_check; - bool is_root; - bool is_gate; - u32 path_change_count; -}; - -struct ieee80211s_hdr { - u8 flags; - u8 ttl; - __le32 seqnum; - u8 eaddr1[6]; - u8 eaddr2[6]; -} __attribute__((packed)); - -struct ieee80211_pspoll { - __le16 frame_control; - __le16 aid; - u8 bssid[6]; - u8 ta[6]; -}; - -struct ieee80211_hdr_3addr { - __le16 frame_control; - __le16 duration_id; - u8 addr1[6]; - u8 addr2[6]; - u8 addr3[6]; - __le16 seq_ctrl; -}; - -enum perf_msr_id { - PERF_MSR_TSC = 0, - PERF_MSR_APERF = 1, - PERF_MSR_MPERF = 2, - PERF_MSR_PPERF = 3, - PERF_MSR_SMI = 4, - PERF_MSR_PTSC = 5, - PERF_MSR_IRPERF = 6, - PERF_MSR_THERM = 7, - PERF_MSR_EVENT_MAX = 8, -}; - -struct waitid_info; - -struct wait_opts { - enum pid_type wo_type; - int wo_flags; - struct pid *wo_pid; - struct waitid_info *wo_info; - int wo_stat; - struct rusage *wo_rusage; - wait_queue_entry_t child_wait; - int notask_error; -}; - -struct waitid_info { - pid_t pid; - uid_t uid; - int status; - int cause; -}; - -struct tmigr_group; - -typedef void (*btf_trace_tmigr_group_set)(void *, struct tmigr_group *); - -struct tmigr_event { - struct timerqueue_node nextevt; - unsigned int cpu; - bool ignore; -}; - -struct tmigr_group { - raw_spinlock_t lock; - struct tmigr_group *parent; - struct tmigr_event groupevt; - u64 next_expiry; - struct timerqueue_head events; - atomic_t migr_state; - unsigned int level; - int numa_node; - unsigned int num_children; - u8 childmask; - struct list_head list; -}; - -typedef void (*btf_trace_tmigr_connect_child_parent)(void *, struct tmigr_group *); - -struct tmigr_cpu; - -typedef void (*btf_trace_tmigr_connect_cpu_parent)(void *, struct tmigr_cpu *); - -struct tmigr_cpu { - raw_spinlock_t lock; - bool online; - bool idle; - bool remote; - struct tmigr_group *tmgroup; - u8 childmask; - u64 wakeup; - struct tmigr_event cpuevt; -}; - -union tmigr_state; - -typedef void (*btf_trace_tmigr_group_set_cpu_inactive)(void *, struct tmigr_group *, union tmigr_state, u32); - -union tmigr_state { - u32 state; - struct { - u8 active; - u8 migrator; - u16 seq; - }; -}; - -typedef void (*btf_trace_tmigr_group_set_cpu_active)(void *, struct tmigr_group *, union tmigr_state, u32); - -typedef void (*btf_trace_tmigr_cpu_new_timer)(void *, struct tmigr_cpu *); - -typedef void (*btf_trace_tmigr_cpu_active)(void *, struct tmigr_cpu *); - -typedef void (*btf_trace_tmigr_cpu_online)(void *, struct tmigr_cpu *); - -typedef void (*btf_trace_tmigr_cpu_offline)(void *, struct tmigr_cpu *); - -typedef void (*btf_trace_tmigr_handle_remote_cpu)(void *, struct tmigr_cpu *); - -typedef void (*btf_trace_tmigr_cpu_idle)(void *, struct tmigr_cpu *, u64); - -typedef void (*btf_trace_tmigr_cpu_new_timer_idle)(void *, struct tmigr_cpu *, u64); - -typedef void (*btf_trace_tmigr_update_events)(void *, struct tmigr_group *, struct tmigr_group *, union tmigr_state, union tmigr_state, u64); - -typedef void (*btf_trace_tmigr_handle_remote)(void *, struct tmigr_group *); - -struct trace_event_raw_tmigr_group_set { - struct trace_entry ent; - void *group; - unsigned int lvl; - unsigned int numa_node; - char __data[0]; -}; - -struct trace_event_raw_tmigr_connect_child_parent { - struct trace_entry ent; - void *child; - void *parent; - unsigned int lvl; - unsigned int numa_node; - unsigned int num_children; - u32 childmask; - char __data[0]; -}; - -struct trace_event_raw_tmigr_connect_cpu_parent { - struct trace_entry ent; - void *parent; - unsigned int cpu; - unsigned int lvl; - unsigned int numa_node; - unsigned int num_children; - u32 childmask; - char __data[0]; -}; - -struct trace_event_raw_tmigr_group_and_cpu { - struct trace_entry ent; - void *group; - void *parent; - unsigned int lvl; - unsigned int numa_node; - u32 childmask; - u8 active; - u8 migrator; - char __data[0]; -}; - -struct trace_event_raw_tmigr_cpugroup { - struct trace_entry ent; - u64 wakeup; - void *parent; - unsigned int cpu; - char __data[0]; -}; - -struct trace_event_raw_tmigr_idle { - struct trace_entry ent; - u64 nextevt; - u64 wakeup; - void *parent; - unsigned int cpu; - char __data[0]; -}; - -struct trace_event_raw_tmigr_update_events { - struct trace_entry ent; - void *child; - void *group; - u64 nextevt; - u64 group_next_expiry; - u64 child_evt_expiry; - unsigned int group_lvl; - unsigned int child_evtcpu; - u8 child_active; - u8 group_active; - char __data[0]; -}; - -struct trace_event_raw_tmigr_handle_remote { - struct trace_entry ent; - void *group; - unsigned int lvl; - char __data[0]; -}; - -typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, void *); - -struct tmigr_remote_data { - unsigned long basej; - u64 now; - u64 firstexp; - u8 childmask; - bool check; - bool tmc_active; -}; - -struct tmigr_walk { - u64 nextexp; - u64 firstexp; - struct tmigr_event *evt; - u8 childmask; - bool remote; -}; - -struct trace_event_data_offsets_tmigr_group_set {}; - -struct trace_event_data_offsets_tmigr_connect_child_parent {}; - -struct trace_event_data_offsets_tmigr_connect_cpu_parent {}; - -struct trace_event_data_offsets_tmigr_group_and_cpu {}; - -struct trace_event_data_offsets_tmigr_cpugroup {}; - -struct trace_event_data_offsets_tmigr_idle {}; - -struct trace_event_data_offsets_tmigr_update_events {}; - -struct trace_event_data_offsets_tmigr_handle_remote {}; - -typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *); - -typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *); - -typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t); - -typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); - -enum behavior { - EXCLUSIVE = 0, - SHARED = 1, - DROP = 2, -}; - -struct trace_event_raw_mm_filemap_op_page_cache { - struct trace_entry ent; - unsigned long pfn; - unsigned long i_ino; - unsigned long index; - dev_t s_dev; - unsigned char order; - char __data[0]; -}; - -struct trace_event_raw_filemap_set_wb_err { - struct trace_entry ent; - unsigned long i_ino; - dev_t s_dev; - errseq_t errseq; - char __data[0]; -}; - -struct trace_event_raw_file_check_and_advance_wb_err { - struct trace_entry ent; - struct file *file; - unsigned long i_ino; - dev_t s_dev; - errseq_t old; - errseq_t new; - char __data[0]; -}; - -struct cachestat_range { - __u64 off; - __u64 len; -}; - -struct cachestat { - __u64 nr_cache; - __u64 nr_dirty; - __u64 nr_writeback; - __u64 nr_evicted; - __u64 nr_recently_evicted; -}; - -struct trace_event_data_offsets_mm_filemap_op_page_cache {}; - -struct trace_event_data_offsets_filemap_set_wb_err {}; - -struct trace_event_data_offsets_file_check_and_advance_wb_err {}; - -struct mnt_idmap { - struct uid_gid_map uid_map; - struct uid_gid_map gid_map; - refcount_t count; -}; - -enum btrfs_extent_allocation_policy { - BTRFS_EXTENT_ALLOC_CLUSTERED = 0, - BTRFS_EXTENT_ALLOC_ZONED = 1, -}; - -enum btrfs_loop_type { - LOOP_CACHING_NOWAIT = 0, - LOOP_CACHING_WAIT = 1, - LOOP_UNSET_SIZE_CLASS = 2, - LOOP_ALLOC_CHUNK = 3, - LOOP_WRONG_SIZE_CLASS = 4, - LOOP_NO_EMPTY_SIZE = 5, -}; - -struct btrfs_extent_owner_ref { - __le64 root_id; -}; - -struct find_free_extent_ctl { - u64 ram_bytes; - u64 num_bytes; - u64 min_alloc_size; - u64 empty_size; - u64 flags; - int delalloc; - u64 search_start; - u64 empty_cluster; - struct btrfs_free_cluster *last_ptr; - bool use_cluster; - bool have_caching_bg; - bool orig_have_caching_bg; - bool for_treelog; - bool for_data_reloc; - int index; - int loop; - bool retry_uncached; - int cached; - u64 max_extent_size; - u64 total_free_space; - u64 found_offset; - u64 hint_byte; - enum btrfs_extent_allocation_policy policy; - bool hinted; - enum btrfs_block_group_size_class size_class; -}; - -struct walk_control { - u64 refs[8]; - u64 flags[8]; - struct btrfs_key update_progress; - struct btrfs_key drop_progress; - int drop_level; - int stage; - int level; - int shared_level; - int update_ref; - int keep_locks; - int reada_slot; - int reada_count; - int restarted; -}; - -struct crypto_kpp { - unsigned int reqsize; - struct crypto_tfm base; -}; - -struct kpp_request; - -struct kpp_alg { - int (*set_secret)(struct crypto_kpp *, const void *, unsigned int); - int (*generate_public_key)(struct kpp_request *); - int (*compute_shared_secret)(struct kpp_request *); - unsigned int (*max_size)(struct crypto_kpp *); - int (*init)(struct crypto_kpp *); - void (*exit)(struct crypto_kpp *); - struct crypto_alg base; -}; - -struct kpp_request { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int src_len; - unsigned int dst_len; - void *__ctx[0]; -}; - -struct kpp_instance { - void (*free)(struct kpp_instance *); - union { - struct { - char head[48]; - struct crypto_instance base; - } s; - struct kpp_alg alg; - }; -}; - -struct crypto_istat_kpp { - atomic64_t setsecret_cnt; - atomic64_t generate_public_key_cnt; - atomic64_t compute_shared_secret_cnt; - atomic64_t err_cnt; -}; - -struct crypto_kpp_spawn { - struct crypto_spawn base; -}; - -typedef struct { - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; -} ZSTD_parameters; - -typedef enum { - ZSTD_c_compressionLevel = 100, - ZSTD_c_windowLog = 101, - ZSTD_c_hashLog = 102, - ZSTD_c_chainLog = 103, - ZSTD_c_searchLog = 104, - ZSTD_c_minMatch = 105, - ZSTD_c_targetLength = 106, - ZSTD_c_strategy = 107, - ZSTD_c_enableLongDistanceMatching = 160, - ZSTD_c_ldmHashLog = 161, - ZSTD_c_ldmMinMatch = 162, - ZSTD_c_ldmBucketSizeLog = 163, - ZSTD_c_ldmHashRateLog = 164, - ZSTD_c_contentSizeFlag = 200, - ZSTD_c_checksumFlag = 201, - ZSTD_c_dictIDFlag = 202, - ZSTD_c_nbWorkers = 400, - ZSTD_c_jobSize = 401, - ZSTD_c_overlapLog = 402, - ZSTD_c_experimentalParam1 = 500, - ZSTD_c_experimentalParam2 = 10, - ZSTD_c_experimentalParam3 = 1000, - ZSTD_c_experimentalParam4 = 1001, - ZSTD_c_experimentalParam5 = 1002, - ZSTD_c_experimentalParam6 = 1003, - ZSTD_c_experimentalParam7 = 1004, - ZSTD_c_experimentalParam8 = 1005, - ZSTD_c_experimentalParam9 = 1006, - ZSTD_c_experimentalParam10 = 1007, - ZSTD_c_experimentalParam11 = 1008, - ZSTD_c_experimentalParam12 = 1009, - ZSTD_c_experimentalParam13 = 1010, - ZSTD_c_experimentalParam14 = 1011, - ZSTD_c_experimentalParam15 = 1012, -} ZSTD_cParameter; - -typedef ZSTD_CCtx ZSTD_CStream; - -typedef ZSTD_parameters zstd_parameters; - -typedef ZSTD_CCtx zstd_cctx; - -typedef ZSTD_CStream zstd_cstream; - -typedef ZSTD_compressionParameters zstd_compression_parameters; - -struct raid6_avx2_constants { - u64 x1d[4]; -}; - -struct irq_glue { - struct irq_affinity_notify notify; - struct cpu_rmap *rmap; - u16 index; -}; - -struct acpi_data_node_attr { - struct attribute attr; - ssize_t (*show)(struct acpi_data_node *, char *); - ssize_t (*store)(struct acpi_data_node *, const char *, size_t); -}; - -struct find_child_walk_data { - struct acpi_device *adev; - u64 address; - int score; - bool check_sta; - bool check_children; -}; - -struct vc_selection { - struct mutex lock; - struct vc_data *cons; - char *buffer; - unsigned int buf_len; - volatile int start; - int end; -}; - -struct req { - struct req *next; - struct completion done; - int err; - const char *name; - umode_t mode; - kuid_t uid; - kgid_t gid; - struct device *dev; -}; - -enum iwl_time_event_type { - TE_BSS_STA_AGGRESSIVE_ASSOC = 0, - TE_BSS_STA_ASSOC = 1, - TE_BSS_EAP_DHCP_PROT = 2, - TE_BSS_QUIET_PERIOD = 3, - TE_P2P_DEVICE_DISCOVERABLE = 4, - TE_P2P_DEVICE_LISTEN = 5, - TE_P2P_DEVICE_ACTION_SCAN = 6, - TE_P2P_DEVICE_FULL_SCAN = 7, - TE_P2P_CLIENT_AGGRESSIVE_ASSOC = 8, - TE_P2P_CLIENT_ASSOC = 9, - TE_P2P_CLIENT_QUIET_PERIOD = 10, - TE_P2P_GO_ASSOC_PROT = 11, - TE_P2P_GO_REPETITIVET_NOA = 12, - TE_P2P_GO_CT_WINDOW = 13, - TE_WIDI_TX_SYNC = 14, - TE_CHANNEL_SWITCH_PERIOD = 15, - TE_MAX = 16, -}; - -enum { - TE_V2_FRAG_NONE = 0, - TE_V2_FRAG_SINGLE = 1, - TE_V2_FRAG_DUAL = 2, - TE_V2_FRAG_MAX = 254, - TE_V2_FRAG_ENDLESS = 255, -}; - -enum iwl_time_event_policy { - TE_V2_DEFAULT_POLICY = 0, - TE_V2_NOTIF_HOST_EVENT_START = 1, - TE_V2_NOTIF_HOST_EVENT_END = 2, - TE_V2_NOTIF_INTERNAL_EVENT_START = 4, - TE_V2_NOTIF_INTERNAL_EVENT_END = 8, - TE_V2_NOTIF_HOST_FRAG_START = 16, - TE_V2_NOTIF_HOST_FRAG_END = 32, - TE_V2_NOTIF_INTERNAL_FRAG_START = 64, - TE_V2_NOTIF_INTERNAL_FRAG_END = 128, - TE_V2_START_IMMEDIATELY = 2048, - TE_V2_DEP_OTHER = 4096, - TE_V2_DEP_TSF = 8192, - TE_V2_EVENT_SOCIOPATHIC = 16384, - TE_V2_ABSENCE = 32768, -}; - -enum iwl_mvm_session_prot_conf_id { - SESSION_PROTECT_CONF_ASSOC = 0, - SESSION_PROTECT_CONF_GO_CLIENT_ASSOC = 1, - SESSION_PROTECT_CONF_P2P_DEVICE_DISCOV = 2, - SESSION_PROTECT_CONF_P2P_GO_NEGOTIATION = 3, - SESSION_PROTECT_CONF_MAX_ID = 4, -}; - -struct iwl_time_event_notif { - __le32 timestamp; - __le32 session_id; - __le32 unique_id; - __le32 id_and_color; - __le32 action; - __le32 status; -}; - -struct iwl_mvm_session_prot_cmd { - __le32 id_and_color; - __le32 action; - __le32 conf_id; - __le32 duration_tu; - __le32 repetition_count; - __le32 interval; -}; - -struct iwl_roc_req { - __le32 action; - __le32 activity; - __le32 sta_id; - struct iwl_fw_channel_info channel_info; - u8 node_addr[6]; - __le16 reserved; - __le32 max_delay; - __le32 duration; -}; - -struct iwl_roc_notif { - __le32 success; - __le32 started; - __le32 activity; -}; - -struct iwl_time_event_cmd { - __le32 id_and_color; - __le32 action; - __le32 id; - __le32 apply_time; - __le32 max_delay; - __le32 depends_on; - __le32 interval; - __le32 duration; - u8 repeat; - u8 max_frags; - __le16 policy; -}; - -struct iwl_mvm_session_prot_notif { - __le32 mac_link_id; - __le32 status; - __le32 start; - __le32 conf_id; -}; - -struct iwl_fw_dbg_trigger_time_event { - struct { - __le32 id; - __le32 action_bitmap; - __le32 status_bitmap; - } time_events[16]; -}; - -struct iwl_time_event_resp { - __le32 status; - __le32 id; - __le32 unique_id; - __le32 id_and_color; -}; - -enum r1bio_state { - R1BIO_Uptodate = 0, - R1BIO_IsSync = 1, - R1BIO_Degraded = 2, - R1BIO_BehindIO = 3, - R1BIO_ReadError = 4, - R1BIO_Returned = 5, - R1BIO_MadeGood = 6, - R1BIO_WriteError = 7, - R1BIO_FailFast = 8, -}; - -struct serial_info { - struct rb_node node; - sector_t start; - sector_t last; - sector_t _subtree_last; -}; - -struct r1bio { - atomic_t remaining; - atomic_t behind_remaining; - sector_t sector; - int sectors; - unsigned long state; - struct mddev *mddev; - struct bio *master_bio; - int read_disk; - struct list_head retry_list; - struct bio *behind_master_bio; - struct bio *bios[0]; -}; - -struct raid1_info; - -struct pool_info; - -struct r1conf { - struct mddev *mddev; - struct raid1_info *mirrors; - int raid_disks; - int nonrot_disks; - spinlock_t device_lock; - struct list_head retry_list; - struct list_head bio_end_io_list; - struct bio_list pending_bio_list; - wait_queue_head_t wait_barrier; - spinlock_t resync_lock; - atomic_t nr_sync_pending; - atomic_t *nr_pending; - atomic_t *nr_waiting; - atomic_t *nr_queued; - atomic_t *barrier; - int array_frozen; - int fullsync; - int recovery_disabled; - struct pool_info *poolinfo; - mempool_t r1bio_pool; - mempool_t r1buf_pool; - struct bio_set bio_split; - struct page *tmppage; - struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; - sector_t cluster_sync_low; - sector_t cluster_sync_high; -}; - -struct raid1_info { - struct md_rdev *rdev; - sector_t head_position; - sector_t next_seq_sect; - sector_t seq_start; -}; - -struct pool_info { - struct mddev *mddev; - int raid_disks; -}; - -struct read_balance_ctl { - sector_t closest_dist; - int closest_dist_disk; - int min_pending; - int min_pending_disk; - int sequential_disk; - int readable_disks; -}; - -struct conntrack_gc_work { - struct delayed_work dwork; - u32 next_bucket; - u32 avg_timeout; - u32 count; - u32 start_time; - bool exiting; - bool early_drop; -}; - -enum nf_ct_ecache_state { - NFCT_ECACHE_DESTROY_FAIL = 0, - NFCT_ECACHE_DESTROY_SENT = 1, -}; - -struct nf_ct_timeout { - __u16 l3num; - const struct nf_conntrack_l4proto *l4proto; - char data[0]; -}; - -struct nf_conn_timeout { - struct nf_ct_timeout __attribute__((btf_type_tag("rcu"))) *timeout; -}; - -enum nft_objref_attributes { - NFTA_OBJREF_UNSPEC = 0, - NFTA_OBJREF_IMM_TYPE = 1, - NFTA_OBJREF_IMM_NAME = 2, - NFTA_OBJREF_SET_SREG = 3, - NFTA_OBJREF_SET_NAME = 4, - NFTA_OBJREF_SET_ID = 5, - __NFTA_OBJREF_MAX = 6, -}; - -struct nft_objref_map { - struct nft_set *set; - u8 sreg; - struct nft_set_binding binding; -}; - -enum { - NDUSEROPT_UNSPEC = 0, - NDUSEROPT_SRCADDR = 1, - __NDUSEROPT_MAX = 2, -}; - -struct rs_msg { - struct icmp6hdr icmph; - __u8 opt[0]; -}; - -struct ra_msg { - struct icmp6hdr icmph; - __be32 reachable_time; - __be32 retrans_timer; -}; - -struct nduseroptmsg { - unsigned char nduseropt_family; - unsigned char nduseropt_pad1; - unsigned short nduseropt_opts_len; - int nduseropt_ifindex; - __u8 nduseropt_icmp_type; - __u8 nduseropt_icmp_code; - unsigned short nduseropt_pad2; - unsigned int nduseropt_pad3; -}; - -enum ieee80211_tpt_led_trigger_flags { - IEEE80211_TPT_LEDTRIG_FL_RADIO = 1, - IEEE80211_TPT_LEDTRIG_FL_WORK = 2, - IEEE80211_TPT_LEDTRIG_FL_CONNECTED = 4, -}; - -enum ieee80211_vht_actioncode { - WLAN_VHT_ACTION_COMPRESSED_BF = 0, - WLAN_VHT_ACTION_GROUPID_MGMT = 1, - WLAN_VHT_ACTION_OPMODE_NOTIF = 2, -}; - -enum ieee80211_protected_eht_actioncode { - WLAN_PROTECTED_EHT_ACTION_TTLM_REQ = 0, - WLAN_PROTECTED_EHT_ACTION_TTLM_RES = 1, - WLAN_PROTECTED_EHT_ACTION_TTLM_TEARDOWN = 2, -}; - -struct sigcontext_64 { - __u64 r8; - __u64 r9; - __u64 r10; - __u64 r11; - __u64 r12; - __u64 r13; - __u64 r14; - __u64 r15; - __u64 di; - __u64 si; - __u64 bp; - __u64 bx; - __u64 dx; - __u64 ax; - __u64 cx; - __u64 sp; - __u64 ip; - __u64 flags; - __u16 cs; - __u16 gs; - __u16 fs; - __u16 ss; - __u64 err; - __u64 trapno; - __u64 oldmask; - __u64 cr2; - __u64 fpstate; - __u64 reserved1[8]; -}; - -struct ucontext { - unsigned long uc_flags; - struct ucontext *uc_link; - stack_t uc_stack; - struct sigcontext_64 uc_mcontext; - sigset_t uc_sigmask; -}; - -struct rt_sigframe { - char __attribute__((btf_type_tag("user"))) *pretcode; - struct ucontext uc; - struct siginfo info; -}; - -struct trace_mark { - unsigned long long val; - char sym; -}; - -enum trace_iter_flags { - TRACE_FILE_LAT_FMT = 1, - TRACE_FILE_ANNOTATE = 2, - TRACE_FILE_TIME_IN_NS = 4, -}; - -struct bputs_entry { - struct trace_entry ent; - unsigned long ip; - const char *str; -}; - -struct bprint_entry { - struct trace_entry ent; - unsigned long ip; - const char *fmt; - u32 buf[0]; -}; - -struct print_entry { - struct trace_entry ent; - unsigned long ip; - char buf[0]; -}; - -struct ctx_switch_entry { - struct trace_entry ent; - unsigned int prev_pid; - unsigned int next_pid; - unsigned int next_cpu; - unsigned char prev_prio; - unsigned char prev_state; - unsigned char next_prio; - unsigned char next_state; -}; - -struct stack_entry { - struct trace_entry ent; - int size; - unsigned long caller[0]; -}; - -struct userstack_entry { - struct trace_entry ent; - unsigned int tgid; - unsigned long caller[8]; -}; - -struct hwlat_entry { - struct trace_entry ent; - u64 duration; - u64 outer_duration; - u64 nmi_total_ts; - struct timespec64 timestamp; - unsigned int nmi_count; - unsigned int seqnum; - unsigned int count; -}; - -struct osnoise_entry { - struct trace_entry ent; - u64 noise; - u64 runtime; - u64 max_sample; - unsigned int hw_count; - unsigned int nmi_count; - unsigned int irq_count; - unsigned int softirq_count; - unsigned int thread_count; -}; - -struct timerlat_entry { - struct trace_entry ent; - unsigned int seqnum; - int context; - u64 timer_latency; -}; - -struct raw_data_entry { - struct trace_entry ent; - unsigned int id; - char buf[0]; -}; - -struct func_repeats_entry { - struct trace_entry ent; - unsigned long ip; - unsigned long parent_ip; - u16 count; - u16 top_delta_ts; - u32 bottom_delta_ts; -}; - -enum { - XA_CHECK_SCHED = 4096, -}; - -struct dirty_throttle_control { - struct wb_domain *dom; - struct dirty_throttle_control *gdtc; - struct bdi_writeback *wb; - struct fprop_local_percpu *wb_completions; - unsigned long avail; - unsigned long dirty; - unsigned long thresh; - unsigned long bg_thresh; - unsigned long wb_dirty; - unsigned long wb_thresh; - unsigned long wb_bg_thresh; - unsigned long pos_ratio; -}; - -struct wb_lock_cookie { - bool locked; - unsigned long flags; -}; - -enum { - Enabled = 0, - Magic = 1, -}; - -typedef struct { - struct list_head list; - unsigned long flags; - int offset; - int size; - char *magic; - char *mask; - const char *interpreter; - char *name; - struct dentry *dentry; - struct file *interp_file; - refcount_t users; -} Node; - -struct root_name_map { - u64 id; - char name[16]; -}; - -enum btrfs_send_cmd { - BTRFS_SEND_C_UNSPEC = 0, - BTRFS_SEND_C_SUBVOL = 1, - BTRFS_SEND_C_SNAPSHOT = 2, - BTRFS_SEND_C_MKFILE = 3, - BTRFS_SEND_C_MKDIR = 4, - BTRFS_SEND_C_MKNOD = 5, - BTRFS_SEND_C_MKFIFO = 6, - BTRFS_SEND_C_MKSOCK = 7, - BTRFS_SEND_C_SYMLINK = 8, - BTRFS_SEND_C_RENAME = 9, - BTRFS_SEND_C_LINK = 10, - BTRFS_SEND_C_UNLINK = 11, - BTRFS_SEND_C_RMDIR = 12, - BTRFS_SEND_C_SET_XATTR = 13, - BTRFS_SEND_C_REMOVE_XATTR = 14, - BTRFS_SEND_C_WRITE = 15, - BTRFS_SEND_C_CLONE = 16, - BTRFS_SEND_C_TRUNCATE = 17, - BTRFS_SEND_C_CHMOD = 18, - BTRFS_SEND_C_CHOWN = 19, - BTRFS_SEND_C_UTIMES = 20, - BTRFS_SEND_C_END = 21, - BTRFS_SEND_C_UPDATE_EXTENT = 22, - BTRFS_SEND_C_MAX_V1 = 22, - BTRFS_SEND_C_FALLOCATE = 23, - BTRFS_SEND_C_FILEATTR = 24, - BTRFS_SEND_C_ENCODED_WRITE = 25, - BTRFS_SEND_C_MAX_V2 = 25, - BTRFS_SEND_C_ENABLE_VERITY = 26, - BTRFS_SEND_C_MAX_V3 = 26, - BTRFS_SEND_C_MAX = 26, -}; - -enum { - BTRFS_SEND_A_UNSPEC = 0, - BTRFS_SEND_A_UUID = 1, - BTRFS_SEND_A_CTRANSID = 2, - BTRFS_SEND_A_INO = 3, - BTRFS_SEND_A_SIZE = 4, - BTRFS_SEND_A_MODE = 5, - BTRFS_SEND_A_UID = 6, - BTRFS_SEND_A_GID = 7, - BTRFS_SEND_A_RDEV = 8, - BTRFS_SEND_A_CTIME = 9, - BTRFS_SEND_A_MTIME = 10, - BTRFS_SEND_A_ATIME = 11, - BTRFS_SEND_A_OTIME = 12, - BTRFS_SEND_A_XATTR_NAME = 13, - BTRFS_SEND_A_XATTR_DATA = 14, - BTRFS_SEND_A_PATH = 15, - BTRFS_SEND_A_PATH_TO = 16, - BTRFS_SEND_A_PATH_LINK = 17, - BTRFS_SEND_A_FILE_OFFSET = 18, - BTRFS_SEND_A_DATA = 19, - BTRFS_SEND_A_CLONE_UUID = 20, - BTRFS_SEND_A_CLONE_CTRANSID = 21, - BTRFS_SEND_A_CLONE_PATH = 22, - BTRFS_SEND_A_CLONE_OFFSET = 23, - BTRFS_SEND_A_CLONE_LEN = 24, - BTRFS_SEND_A_MAX_V1 = 24, - BTRFS_SEND_A_FALLOCATE_MODE = 25, - BTRFS_SEND_A_FILEATTR = 26, - BTRFS_SEND_A_UNENCODED_FILE_LEN = 27, - BTRFS_SEND_A_UNENCODED_LEN = 28, - BTRFS_SEND_A_UNENCODED_OFFSET = 29, - BTRFS_SEND_A_COMPRESSION = 30, - BTRFS_SEND_A_ENCRYPTION = 31, - BTRFS_SEND_A_MAX_V2 = 31, - BTRFS_SEND_A_VERITY_ALGORITHM = 32, - BTRFS_SEND_A_VERITY_BLOCK_SIZE = 33, - BTRFS_SEND_A_VERITY_SALT_DATA = 34, - BTRFS_SEND_A_VERITY_SIG_DATA = 35, - BTRFS_SEND_A_MAX_V3 = 35, - __BTRFS_SEND_A_MAX = 35, -}; - -enum btrfs_compare_tree_result { - BTRFS_COMPARE_TREE_NEW = 0, - BTRFS_COMPARE_TREE_DELETED = 1, - BTRFS_COMPARE_TREE_CHANGED = 2, - BTRFS_COMPARE_TREE_SAME = 3, -}; - -enum inode_state { - inode_state_no_change = 0, - inode_state_will_create = 1, - inode_state_did_create = 2, - inode_state_will_delete = 3, - inode_state_did_delete = 4, -}; - -struct btrfs_lru_cache_entry { - struct list_head lru_list; - u64 key; - u64 gen; - struct list_head list; -}; - -struct pending_dir_move { - struct rb_node node; - struct list_head list; - u64 parent_ino; - u64 ino; - u64 gen; - struct list_head update_refs; -}; - -struct waiting_dir_move { - struct rb_node node; - u64 ino; - u64 rmdir_ino; - u64 rmdir_gen; - bool orphanized; -}; - -struct orphan_dir_info { - struct rb_node node; - u64 ino; - u64 gen; - u64 last_dir_index_offset; - u64 dir_high_seq_ino; -}; - -struct btrfs_tlv_header { - __le16 tlv_type; - __le16 tlv_len; -}; - -struct name_cache_entry { - struct btrfs_lru_cache_entry entry; - u64 parent_ino; - u64 parent_gen; - int ret; - int need_later_update; - int name_len; - char name[0]; -}; - -struct fs_path; - -struct recorded_ref { - struct list_head list; - char *name; - struct fs_path *full_path; - u64 dir; - u64 dir_gen; - int name_len; - struct rb_node node; - struct rb_root *root; -}; - -struct fs_path { - union { - struct { - char *start; - char *end; - char *buf; - unsigned short buf_len: 15; - unsigned short reversed: 1; - char inline_buf[0]; - }; - char pad[256]; - }; -}; - -struct backref_cache_entry { - struct btrfs_lru_cache_entry entry; - u64 root_ids[17]; - int num_roots; -}; - -struct btrfs_cmd_header { - __le32 len; - __le16 cmd; - __le32 crc; -} __attribute__((packed)); - -struct btrfs_lru_cache { - struct list_head lru_list; - struct maple_tree entries; - unsigned int size; - unsigned int max_size; -}; - -struct clone_root; - -struct send_ctx { - struct file *send_filp; - loff_t send_off; - char *send_buf; - u32 send_size; - u32 send_max_size; - bool put_data; - struct page **send_buf_pages; - u64 flags; - u32 proto; - struct btrfs_root *send_root; - struct btrfs_root *parent_root; - struct clone_root *clone_roots; - int clone_roots_cnt; - struct btrfs_path *left_path; - struct btrfs_path *right_path; - struct btrfs_key *cmp_key; - u64 last_reloc_trans; - u64 cur_ino; - u64 cur_inode_gen; - u64 cur_inode_size; - u64 cur_inode_mode; - u64 cur_inode_rdev; - u64 cur_inode_last_extent; - u64 cur_inode_next_write_offset; - bool cur_inode_new; - bool cur_inode_new_gen; - bool cur_inode_deleted; - bool ignore_cur_inode; - bool cur_inode_needs_verity; - void *verity_descriptor; - u64 send_progress; - struct list_head new_refs; - struct list_head deleted_refs; - struct btrfs_lru_cache name_cache; - struct inode *cur_inode; - struct file_ra_state ra; - u64 page_cache_clear_start; - bool clean_page_cache; - struct rb_root pending_dir_moves; - struct rb_root waiting_dir_moves; - struct rb_root orphan_dirs; - struct rb_root rbtree_new_refs; - struct rb_root rbtree_deleted_refs; - struct btrfs_lru_cache backref_cache; - u64 backref_cache_last_reloc_trans; - struct btrfs_lru_cache dir_created_cache; - struct btrfs_lru_cache dir_utimes_cache; -}; - -struct clone_root { - struct btrfs_root *root; - u64 ino; - u64 offset; - u64 num_bytes; - bool found_ref; -}; - -struct btrfs_stream_header { - char magic[13]; - __le32 version; -} __attribute__((packed)); - -struct btrfs_inode_info { - u64 size; - u64 gen; - u64 mode; - u64 uid; - u64 gid; - u64 rdev; - u64 fileattr; - u64 nlink; -}; - -typedef int (*iterate_dir_item_t)(int, struct btrfs_key *, const char *, int, const char *, int, void *); - -struct backref_ctx { - struct send_ctx *sctx; - u64 found; - u64 cur_objectid; - u64 cur_offset; - u64 extent_len; - u64 bytenr; - u64 backref_owner; - u64 backref_offset; -}; - -typedef int (*iterate_inode_ref_t)(int, u64, int, struct fs_path *, void *); - -struct find_xattr_ctx { - const char *name; - int name_len; - int found_idx; - char *found_data; - int found_data_len; -}; - -struct posix_acl_xattr_header { - __le32 a_version; -}; - -struct authenc_esn_instance_ctx { - struct crypto_ahash_spawn auth; - struct crypto_skcipher_spawn enc; -}; - -struct crypto_authenc_esn_ctx { - unsigned int reqoff; - struct crypto_ahash *auth; - struct crypto_skcipher *enc; - struct crypto_sync_skcipher *null; -}; - -struct authenc_esn_request_ctx { - struct scatterlist src[2]; - struct scatterlist dst[2]; - char tail[0]; -}; - -struct io_madvise { - struct file *file; - u64 addr; - u32 len; - u32 advice; -}; - -struct io_fadvise { - struct file *file; - u64 offset; - u32 len; - u32 advice; -}; - -enum v4l2_fwnode_bus_type { - V4L2_FWNODE_BUS_TYPE_GUESS = 0, - V4L2_FWNODE_BUS_TYPE_CSI2_CPHY = 1, - V4L2_FWNODE_BUS_TYPE_CSI1 = 2, - V4L2_FWNODE_BUS_TYPE_CCP2 = 3, - V4L2_FWNODE_BUS_TYPE_CSI2_DPHY = 4, - V4L2_FWNODE_BUS_TYPE_PARALLEL = 5, - V4L2_FWNODE_BUS_TYPE_BT656 = 6, - V4L2_FWNODE_BUS_TYPE_DPI = 7, - NR_OF_V4L2_FWNODE_BUS_TYPE = 8, -}; - -enum acpi_device_swnode_ep_props { - ACPI_DEVICE_SWNODE_EP_REMOTE_EP = 0, - ACPI_DEVICE_SWNODE_EP_BUS_TYPE = 1, - ACPI_DEVICE_SWNODE_EP_REG = 2, - ACPI_DEVICE_SWNODE_EP_CLOCK_LANES = 3, - ACPI_DEVICE_SWNODE_EP_DATA_LANES = 4, - ACPI_DEVICE_SWNODE_EP_LANE_POLARITIES = 5, - ACPI_DEVICE_SWNODE_EP_LINK_FREQUENCIES = 6, - ACPI_DEVICE_SWNODE_EP_NUM_OF = 7, - ACPI_DEVICE_SWNODE_EP_NUM_ENTRIES = 8, -}; - -enum acpi_device_swnode_port_props { - ACPI_DEVICE_SWNODE_PORT_REG = 0, - ACPI_DEVICE_SWNODE_PORT_NUM_OF = 1, - ACPI_DEVICE_SWNODE_PORT_NUM_ENTRIES = 2, -}; - -enum acpi_device_swnode_dev_props { - ACPI_DEVICE_SWNODE_DEV_ROTATION = 0, - ACPI_DEVICE_SWNODE_DEV_CLOCK_FREQUENCY = 1, - ACPI_DEVICE_SWNODE_DEV_LED_MAX_MICROAMP = 2, - ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_MICROAMP = 3, - ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_TIMEOUT_US = 4, - ACPI_DEVICE_SWNODE_DEV_NUM_OF = 5, - ACPI_DEVICE_SWNODE_DEV_NUM_ENTRIES = 6, -}; - -struct crs_csi2 { - struct list_head entry; - acpi_handle handle; - struct acpi_device_software_nodes *swnodes; - struct list_head connections; - u32 port_count; -}; - -struct crs_csi2_connection { - struct list_head entry; - struct acpi_resource_csi2_serialbus csi2_data; - acpi_handle remote_handle; - char remote_name[0]; -}; - -struct csi2_resources_walk_data { - acpi_handle handle; - struct list_head connections; -}; - -struct tty_file_private { - struct tty_struct *tty; - struct file *file; - struct list_head list; -}; - -struct cpu { - int node_id; - int hotpluggable; - struct device dev; -}; - -struct cpu_attr { - struct device_attribute attr; - const struct cpumask * const map; -}; - -enum scsi_pr_type { - SCSI_PR_WRITE_EXCLUSIVE = 1, - SCSI_PR_EXCLUSIVE_ACCESS = 3, - SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, - SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, - SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, - SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, -}; - -enum { - SD_DEF_XFER_BLOCKS = 65535, - SD_MAX_XFER_BLOCKS = 4294967295, - SD_MAX_WS10_BLOCKS = 65535, - SD_MAX_WS16_BLOCKS = 8388607, -}; - -enum { - SD_LBP_FULL = 0, - SD_LBP_UNMAP = 1, - SD_LBP_WS16 = 2, - SD_LBP_WS10 = 3, - SD_LBP_ZERO = 4, - SD_LBP_DISABLE = 5, -}; - -enum t10_dif_type { - T10_PI_TYPE0_PROTECTION = 0, - T10_PI_TYPE1_PROTECTION = 1, - T10_PI_TYPE2_PROTECTION = 2, - T10_PI_TYPE3_PROTECTION = 3, -}; - -enum { - SD_ZERO_WRITE = 0, - SD_ZERO_WS = 1, - SD_ZERO_WS16_UNMAP = 2, - SD_ZERO_WS10_UNMAP = 3, -}; - -enum bip_flags { - BIP_BLOCK_INTEGRITY = 1, - BIP_MAPPED_INTEGRITY = 2, - BIP_CTRL_NOCHECK = 4, - BIP_DISK_NOCHECK = 8, - BIP_IP_CHECKSUM = 16, - BIP_INTEGRITY_USER = 32, - BIP_COPY_USER = 64, -}; - -enum scsi_prot_flags { - SCSI_PROT_TRANSFER_PI = 1, - SCSI_PROT_GUARD_CHECK = 2, - SCSI_PROT_REF_CHECK = 4, - SCSI_PROT_REF_INCREMENT = 8, - SCSI_PROT_IP_CHECKSUM = 16, -}; - -enum { - SD_EXT_CDB_SIZE = 32, - SD_MEMPOOL_SIZE = 2, -}; - -struct scsi_disk { - struct scsi_device *device; - struct device disk_dev; - struct gendisk *disk; - struct opal_dev *opal_dev; - atomic_t openers; - sector_t capacity; - int max_retries; - u32 min_xfer_blocks; - u32 max_xfer_blocks; - u32 opt_xfer_blocks; - u32 max_ws_blocks; - u32 max_unmap_blocks; - u32 unmap_granularity; - u32 unmap_alignment; - u32 index; - unsigned int physical_block_size; - unsigned int max_medium_access_timeouts; - unsigned int medium_access_timed_out; - u16 permanent_stream_count; - u8 media_present; - u8 write_prot; - u8 protection_type; - u8 provisioning_mode; - u8 zeroing_mode; - u8 nr_actuators; - bool suspended; - unsigned int ATO: 1; - unsigned int cache_override: 1; - unsigned int WCE: 1; - unsigned int RCD: 1; - unsigned int DPOFUA: 1; - unsigned int first_scan: 1; - unsigned int lbpme: 1; - unsigned int lbprz: 1; - unsigned int lbpu: 1; - unsigned int lbpws: 1; - unsigned int lbpws10: 1; - unsigned int lbpvpd: 1; - unsigned int ws10: 1; - unsigned int ws16: 1; - unsigned int rc_basis: 2; - unsigned int zoned: 2; - unsigned int urswrz: 1; - unsigned int security: 1; - unsigned int ignore_medium_access_errors: 1; - unsigned int rscs: 1; -}; - -struct scsi_io_group_descriptor { - u8 ic_enable: 1; - u8 cs_enble: 1; - u8 st_enble: 1; - u8 reserved1: 3; - u8 io_advice_hints_mode: 2; - u8 reserved2[3]; - u8 lbm_descriptor_type: 4; - u8 rlbsr: 2; - u8 reserved3: 1; - u8 acdlu: 1; - u8 params[2]; - u8 reserved4; - u8 reserved5[8]; -}; - -struct scsi_stream_status { - u8 reserved1: 7; - u8 perm: 1; - u8 reserved2; - __be16 stream_identifier; - u8 rel_lifetime: 6; - u8 reserved3: 2; - u8 reserved4[3]; -}; - -struct scsi_stream_status_header { - __be32 len; - u16 reserved; - __be16 number_of_open_streams; - struct { - struct {} __empty_stream_status; - struct scsi_stream_status stream_status[0]; - }; -}; - -enum iwl_ppag_flags { - IWL_PPAG_ETSI_MASK = 1, - IWL_PPAG_CHINA_MASK = 2, - IWL_PPAG_ETSI_LPI_UHB_MASK = 4, - IWL_PPAG_ETSI_VLP_UHB_MASK = 8, - IWL_PPAG_ETSI_SP_UHB_MASK = 16, - IWL_PPAG_USA_LPI_UHB_MASK = 32, - IWL_PPAG_USA_VLP_UHB_MASK = 64, - IWL_PPAG_USA_SP_UHB_MASK = 128, - IWL_PPAG_CANADA_LPI_UHB_MASK = 256, - IWL_PPAG_CANADA_VLP_UHB_MASK = 512, - IWL_PPAG_CANADA_SP_UHB_MASK = 1024, -}; - -enum iwl_dsm_values_indonesia { - DSM_VALUE_INDONESIA_DISABLE = 0, - DSM_VALUE_INDONESIA_ENABLE = 1, - DSM_VALUE_INDONESIA_RESERVED = 2, - DSM_VALUE_INDONESIA_MAX = 3, -}; - -enum iwl_lari_config_masks { - LARI_CONFIG_DISABLE_11AC_UKRAINE_MSK = 1, - LARI_CONFIG_CHANGE_ETSI_TO_PASSIVE_MSK = 2, - LARI_CONFIG_CHANGE_ETSI_TO_DISABLED_MSK = 4, - LARI_CONFIG_ENABLE_5G2_IN_INDONESIA_MSK = 8, - LARI_CONFIG_ENABLE_CHINA_22_REG_SUPPORT_MSK = 128, -}; - -enum iwl_dsm_values_srd { - DSM_VALUE_SRD_ACTIVE = 0, - DSM_VALUE_SRD_PASSIVE = 1, - DSM_VALUE_SRD_DISABLE = 2, - DSM_VALUE_SRD_MAX = 3, -}; - -enum iwl_dsm_masks_reg { - DSM_MASK_CHINA_22_REG = 4, -}; - -enum iwl_bt_coex_mode { - BT_COEX_DISABLE = 0, - BT_COEX_NW = 1, - BT_COEX_BT = 2, - BT_COEX_WIFI = 3, -}; - -enum iwl_bt_coex_enabled_modules { - BT_COEX_MPLUT_ENABLED = 1, - BT_COEX_MPLUT_BOOST_ENABLED = 2, - BT_COEX_SYNC2SCO_ENABLED = 4, - BT_COEX_CORUN_ENABLED = 8, - BT_COEX_HIGH_BAND_RET = 16, -}; - -enum iwl_bt_activity_grading { - BT_OFF = 0, - BT_ON_NO_CONNECTION = 1, - BT_LOW_TRAFFIC = 2, - BT_HIGH_TRAFFIC = 3, - BT_VERY_HIGH_TRAFFIC = 4, - BT_MAX_AG = 5, -}; - -enum iwl_bt_coex_lut_type { - BT_COEX_TIGHT_LUT = 0, - BT_COEX_LOOSE_LUT = 1, - BT_COEX_TX_DIS_LUT = 2, - BT_COEX_MAX_LUT = 3, - BT_COEX_INVALID_LUT = 255, -}; - -struct iwl_bt_iterator_data { - struct iwl_bt_coex_profile_notif *notif; - struct iwl_mvm *mvm; - struct ieee80211_chanctx_conf *primary; - struct ieee80211_chanctx_conf *secondary; - bool primary_ll; - u8 primary_load; - u8 secondary_load; -}; - -struct iwl_bt_coex_cmd { - __le32 mode; - __le32 enabled_modules; -}; - -struct iwl_bt_coex_reduced_txp_update_cmd { - __le32 reduced_txp; -}; - -enum xhci_ep_reset_type { - EP_HARD_RESET = 0, - EP_SOFT_RESET = 1, -}; - -struct dm_io_client { - mempool_t pool; - struct bio_set bios; -}; - -struct dpages { - void (*get_page)(struct dpages *, struct page **, unsigned long *, unsigned int *); - void (*next_page)(struct dpages *); - union { - unsigned int context_u; - struct bvec_iter context_bi; - }; - void *context_ptr; - void *vma_invalidate_address; - unsigned long vma_invalidate_size; -}; - -struct io { - unsigned long error_bits; - atomic_t count; - struct dm_io_client *client; - io_notify_fn callback; - void *context; - void *vma_invalidate_address; - unsigned long vma_invalidate_size; - long: 64; -}; - -struct sync_io { - unsigned long error_bits; - struct completion wait; -}; - -typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); - -typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); - -typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); - -typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); - -typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); - -typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); - -struct bpf_stab { - struct bpf_map map; - struct sock **sks; - struct sk_psock_progs progs; - spinlock_t lock; -}; - -struct bpf_shtab_bucket; - -struct bpf_shtab { - struct bpf_map map; - struct bpf_shtab_bucket *buckets; - u32 buckets_num; - u32 elem_size; - struct sk_psock_progs progs; - atomic_t count; -}; - -struct bpf_shtab_bucket { - struct hlist_head head; - spinlock_t lock; -}; - -struct sk_psock_link { - struct list_head list; - struct bpf_map *map; - void *link_raw; -}; - -struct bpf_shtab_elem { - struct callback_head rcu; - u32 hash; - struct sock *sk; - struct hlist_node node; - u8 key[0]; -}; - -struct sock_map_seq_info { - struct bpf_map *map; - struct sock *sk; - u32 index; -}; - -struct bpf_iter__sockmap { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - struct sock *sk; - }; -}; - -struct sock_hash_seq_info { - struct bpf_map *map; - struct bpf_shtab *htab; - u32 bucket_id; -}; - -struct nf_br_ops { - int (*br_dev_xmit_hook)(struct sk_buff *); -}; - -enum kernel_gp_hint { - GP_NO_HINT = 0, - GP_NON_CANONICAL = 1, - GP_CANONICAL = 2, -}; - -struct bpf_cpu_map_entry; - -struct xdp_bulk_queue { - void *q[8]; - struct list_head flush_node; - struct bpf_cpu_map_entry *obj; - unsigned int count; -}; - -struct bpf_cpumap_val { - __u32 qsize; - union { - int fd; - __u32 id; - } bpf_prog; -}; - -struct bpf_cpu_map_entry { - u32 cpu; - int map_id; - struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq; - struct ptr_ring *queue; - struct task_struct *kthread; - struct bpf_cpumap_val value; - struct bpf_prog *prog; - struct completion kthread_running; - struct rcu_work free_work; -}; - -struct bpf_cpu_map { - struct bpf_map map; - struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map; -}; - -enum btrfs_delayed_item_type { - BTRFS_DELAYED_INSERTION_ITEM = 0, - BTRFS_DELAYED_DELETION_ITEM = 1, -}; - -struct btrfs_delayed_item { - struct rb_node rb_node; - u64 index; - struct list_head tree_list; - struct list_head readdir_list; - struct list_head log_list; - u64 bytes_reserved; - struct btrfs_delayed_node *delayed_node; - refcount_t refs; - enum btrfs_delayed_item_type type: 8; - bool logged; - u16 data_len; - char data[0]; -}; - -struct btrfs_async_delayed_work { - struct btrfs_delayed_root *delayed_root; - int nr; - struct btrfs_work work; -}; - -struct btrfs_workqueue { - struct workqueue_struct *normal_wq; - struct btrfs_fs_info *fs_info; - struct list_head ordered_list; - spinlock_t list_lock; - atomic_t pending; - int limit_active; - int current_active; - int thresh; - unsigned int count; - spinlock_t thres_lock; -}; - -struct xor_block_template { - struct xor_block_template *next; - const char *name; - int speed; - void (*do_2)(unsigned long, unsigned long * restrict, const unsigned long * restrict); - void (*do_3)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict); - void (*do_4)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict); - void (*do_5)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict); -}; - -typedef void (*btf_trace_wbt_stat)(void *, struct backing_dev_info *, struct blk_rq_stat *); - -typedef void (*btf_trace_wbt_lat)(void *, struct backing_dev_info *, unsigned long); - -typedef void (*btf_trace_wbt_step)(void *, struct backing_dev_info *, const char *, int, unsigned long, unsigned int, unsigned int, unsigned int); - -typedef void (*btf_trace_wbt_timer)(void *, struct backing_dev_info *, unsigned int, int, unsigned int); - -enum { - WBT_STATE_ON_DEFAULT = 1, - WBT_STATE_ON_MANUAL = 2, - WBT_STATE_OFF_DEFAULT = 3, - WBT_STATE_OFF_MANUAL = 4, -}; - -enum { - WBT_RWQ_BG = 0, - WBT_RWQ_KSWAPD = 1, - WBT_RWQ_DISCARD = 2, - WBT_NUM_RWQ = 3, -}; - -enum { - RWB_DEF_DEPTH = 16, - RWB_WINDOW_NSEC = 100000000, - RWB_MIN_WRITE_SAMPLES = 3, - RWB_UNKNOWN_BUMP = 5, -}; - -enum { - LAT_OK = 1, - LAT_UNKNOWN = 2, - LAT_UNKNOWN_WRITES = 3, - LAT_EXCEEDED = 4, -}; - -enum wbt_flags { - WBT_TRACKED = 1, - WBT_READ = 2, - WBT_KSWAPD = 4, - WBT_DISCARD = 8, - WBT_NR_BITS = 4, -}; - -struct trace_event_raw_wbt_stat { - struct trace_entry ent; - char name[32]; - s64 rmean; - u64 rmin; - u64 rmax; - s64 rnr_samples; - s64 rtime; - s64 wmean; - u64 wmin; - u64 wmax; - s64 wnr_samples; - s64 wtime; - char __data[0]; -}; - -struct trace_event_raw_wbt_lat { - struct trace_entry ent; - char name[32]; - unsigned long lat; - char __data[0]; -}; - -struct trace_event_raw_wbt_step { - struct trace_entry ent; - char name[32]; - const char *msg; - int step; - unsigned long window; - unsigned int bg; - unsigned int normal; - unsigned int max; - char __data[0]; -}; - -struct trace_event_raw_wbt_timer { - struct trace_entry ent; - char name[32]; - unsigned int status; - int step; - unsigned int inflight; - char __data[0]; -}; - -struct rq_depth { - unsigned int max_depth; - int scale_step; - bool scaled_max; - unsigned int queue_depth; - unsigned int default_depth; -}; - -struct rq_wb { - unsigned int wb_background; - unsigned int wb_normal; - short enable_state; - unsigned int unknown_cnt; - u64 win_nsec; - u64 cur_win_nsec; - struct blk_stat_callback *cb; - u64 sync_issue; - void *sync_cookie; - unsigned long last_issue; - unsigned long last_comp; - unsigned long min_lat_nsec; - struct rq_qos rqos; - struct rq_wait rq_wait[3]; - struct rq_depth rq_depth; -}; - -struct wbt_wait_data { - struct rq_wb *rwb; - enum wbt_flags wb_acct; - blk_opf_t opf; -}; - -struct trace_event_data_offsets_wbt_stat {}; - -struct trace_event_data_offsets_wbt_lat {}; - -struct trace_event_data_offsets_wbt_step {}; - -struct trace_event_data_offsets_wbt_timer {}; - -struct swnode { - struct kobject kobj; - struct fwnode_handle fwnode; - const struct software_node *node; - int id; - struct ida child_ids; - struct list_head entry; - struct list_head children; - struct swnode *parent; - unsigned int allocated: 1; - unsigned int managed: 1; -}; - -enum iwl_prph_scratch_flags { - IWL_PRPH_SCRATCH_IMR_DEBUG_EN = 2, - IWL_PRPH_SCRATCH_EARLY_DEBUG_EN = 16, - IWL_PRPH_SCRATCH_EDBG_DEST_DRAM = 256, - IWL_PRPH_SCRATCH_EDBG_DEST_INTERNAL = 512, - IWL_PRPH_SCRATCH_EDBG_DEST_ST_ARBITER = 1024, - IWL_PRPH_SCRATCH_EDBG_DEST_TB22DTF = 2048, - IWL_PRPH_SCRATCH_RB_SIZE_4K = 65536, - IWL_PRPH_SCRATCH_MTR_MODE = 131072, - IWL_PRPH_SCRATCH_MTR_FORMAT = 786432, - IWL_PRPH_SCRATCH_RB_SIZE_EXT_MASK = 15728640, - IWL_PRPH_SCRATCH_RB_SIZE_EXT_8K = 8388608, - IWL_PRPH_SCRATCH_RB_SIZE_EXT_12K = 9437184, - IWL_PRPH_SCRATCH_RB_SIZE_EXT_16K = 10485760, -}; - -enum iwl_prph_scratch_mtr_format { - IWL_PRPH_MTR_FORMAT_16B = 0, - IWL_PRPH_MTR_FORMAT_32B = 262144, - IWL_PRPH_MTR_FORMAT_64B = 524288, - IWL_PRPH_MTR_FORMAT_256B = 786432, -}; - -struct iwl_prph_scrath_mem_desc_addr_array { - __le64 mem_descs[64]; -}; - -enum iwl_location_cipher { - IWL_LOCATION_CIPHER_CCMP_128 = 0, - IWL_LOCATION_CIPHER_GCMP_128 = 1, - IWL_LOCATION_CIPHER_GCMP_256 = 2, - IWL_LOCATION_CIPHER_INVALID = 3, - IWL_LOCATION_CIPHER_MAX = 4, -}; - -enum ftm_responder_stats_flags { - FTM_RESP_STAT_NON_ASAP_STARTED = 1, - FTM_RESP_STAT_NON_ASAP_IN_WIN = 2, - FTM_RESP_STAT_NON_ASAP_OUT_WIN = 4, - FTM_RESP_STAT_TRIGGER_DUP = 8, - FTM_RESP_STAT_DUP = 16, - FTM_RESP_STAT_DUP_IN_WIN = 32, - FTM_RESP_STAT_DUP_OUT_WIN = 64, - FTM_RESP_STAT_SCHED_SUCCESS = 128, - FTM_RESP_STAT_ASAP_REQ = 256, - FTM_RESP_STAT_NON_ASAP_REQ = 512, - FTM_RESP_STAT_ASAP_RESP = 1024, - FTM_RESP_STAT_NON_ASAP_RESP = 2048, - FTM_RESP_STAT_FAIL_INITIATOR_INACTIVE = 4096, - FTM_RESP_STAT_FAIL_INITIATOR_OUT_WIN = 8192, - FTM_RESP_STAT_FAIL_INITIATOR_RETRY_LIM = 16384, - FTM_RESP_STAT_FAIL_NEXT_SERVED = 32768, - FTM_RESP_STAT_FAIL_TRIGGER_ERR = 65536, - FTM_RESP_STAT_FAIL_GC = 131072, - FTM_RESP_STAT_SUCCESS = 262144, - FTM_RESP_STAT_INTEL_IE = 524288, - FTM_RESP_STAT_INITIATOR_ACTIVE = 1048576, - FTM_RESP_STAT_MEASUREMENTS_AVAILABLE = 2097152, - FTM_RESP_STAT_TRIGGER_UNKNOWN = 4194304, - FTM_RESP_STAT_PROCESS_FAIL = 8388608, - FTM_RESP_STAT_ACK = 16777216, - FTM_RESP_STAT_NACK = 33554432, - FTM_RESP_STAT_INVALID_INITIATOR_ID = 67108864, - FTM_RESP_STAT_TIMER_MIN_DELTA = 134217728, - FTM_RESP_STAT_INITIATOR_REMOVED = 268435456, - FTM_RESP_STAT_INITIATOR_ADDED = 536870912, - FTM_RESP_STAT_ERR_LIST_FULL = 1073741824, - FTM_RESP_STAT_INITIATOR_SCHED_NOW = 2147483648, -}; - -enum iwl_responder_dyn_cfg_valid_flags { - IWL_RESPONDER_DYN_CFG_VALID_LCI = 1, - IWL_RESPONDER_DYN_CFG_VALID_CIVIC = 2, - IWL_RESPONDER_DYN_CFG_VALID_PASN_STA = 4, -}; - -enum iwl_tof_responder_cmd_valid_field { - IWL_TOF_RESPONDER_CMD_VALID_CHAN_INFO = 1, - IWL_TOF_RESPONDER_CMD_VALID_TOA_OFFSET = 2, - IWL_TOF_RESPONDER_CMD_VALID_COMMON_CALIB = 4, - IWL_TOF_RESPONDER_CMD_VALID_SPECIFIC_CALIB = 8, - IWL_TOF_RESPONDER_CMD_VALID_BSSID = 16, - IWL_TOF_RESPONDER_CMD_VALID_TX_ANT = 32, - IWL_TOF_RESPONDER_CMD_VALID_ALGO_TYPE = 64, - IWL_TOF_RESPONDER_CMD_VALID_NON_ASAP_SUPPORT = 128, - IWL_TOF_RESPONDER_CMD_VALID_STATISTICS_REPORT_SUPPORT = 256, - IWL_TOF_RESPONDER_CMD_VALID_MCSI_NOTIF_SUPPORT = 512, - IWL_TOF_RESPONDER_CMD_VALID_FAST_ALGO_SUPPORT = 1024, - IWL_TOF_RESPONDER_CMD_VALID_RETRY_ON_ALGO_FAIL = 2048, - IWL_TOF_RESPONDER_CMD_VALID_STA_ID = 4096, - IWL_TOF_RESPONDER_CMD_VALID_NDP_SUPPORT = 4194304, - IWL_TOF_RESPONDER_CMD_VALID_NDP_PARAMS = 8388608, - IWL_TOF_RESPONDER_CMD_VALID_LMR_FEEDBACK = 16777216, - IWL_TOF_RESPONDER_CMD_VALID_SESSION_ID = 33554432, - IWL_TOF_RESPONDER_CMD_VALID_BSS_COLOR = 67108864, - IWL_TOF_RESPONDER_CMD_VALID_MIN_MAX_TIME_BETWEEN_MSR = 134217728, -}; - -enum iwl_location_frame_format { - IWL_LOCATION_FRAME_FORMAT_LEGACY = 0, - IWL_LOCATION_FRAME_FORMAT_HT = 1, - IWL_LOCATION_FRAME_FORMAT_VHT = 2, - IWL_LOCATION_FRAME_FORMAT_HE = 3, -}; - -enum iwl_location_bw { - IWL_LOCATION_BW_20MHZ = 0, - IWL_LOCATION_BW_40MHZ = 1, - IWL_LOCATION_BW_80MHZ = 2, - IWL_LOCATION_BW_160MHZ = 3, -}; - -enum iwl_tof_bandwidth { - IWL_TOF_BW_20_LEGACY = 0, - IWL_TOF_BW_20_HT = 1, - IWL_TOF_BW_40 = 2, - IWL_TOF_BW_80 = 3, - IWL_TOF_BW_160 = 4, - IWL_TOF_BW_NUM = 5, -}; - -struct iwl_mvm_pasn_sta { - struct list_head list; - struct iwl_mvm_int_sta int_sta; - u8 addr[6]; - struct ieee80211_key_conf keyconf; -}; - -struct iwl_tof_responder_config_cmd_v9 { - __le32 cmd_valid_fields; - __le32 responder_cfg_flags; - u8 format_bw; - u8 bss_color; - u8 channel_num; - u8 ctrl_ch_position; - u8 sta_id; - u8 reserved1; - __le16 toa_offset; - __le16 common_calib; - __le16 specific_calib; - u8 bssid[6]; - u8 r2i_ndp_params; - u8 i2r_ndp_params; - __le16 min_time_between_msr; - __le16 max_time_between_msr; -}; - -struct iwl_tof_responder_dyn_config_cmd_v2 { - __le32 lci_len; - __le32 civic_len; - u8 lci_civic[0]; -}; - -struct iwl_mvm_pasn_hltk_data { - u8 *addr; - u8 cipher; - u8 *hltk; -}; - -struct iwl_tof_responder_dyn_config_cmd { - u8 cipher; - u8 valid_flags; - u8 lci_len; - u8 civic_len; - u8 lci_buf[160]; - u8 civic_buf[160]; - u8 hltk_buf[32]; - u8 addr[6]; - u8 reserved[2]; -}; - -struct iwl_ftm_responder_stats { - u8 addr[6]; - u8 success_ftm; - u8 ftm_per_burst; - __le32 flags; - __le32 duration; - __le32 allocated_duration; - u8 bw; - u8 rate; - __le16 reserved; -}; - -struct dmi_memdev_info { - const char *device; - const char *bank; - u64 size; - u16 handle; - u8 type; -}; - -enum nf_ct_tcp_action { - NFCT_TCP_IGNORE = 0, - NFCT_TCP_INVALID = 1, - NFCT_TCP_ACCEPT = 2, -}; - -enum tcp_bit_set { - TCP_SYN_SET = 0, - TCP_SYNACK_SET = 1, - TCP_FIN_SET = 2, - TCP_ACK_SET = 3, - TCP_RST_SET = 4, - TCP_NONE_SET = 5, -}; - -enum ctattr_protoinfo_tcp { - CTA_PROTOINFO_TCP_UNSPEC = 0, - CTA_PROTOINFO_TCP_STATE = 1, - CTA_PROTOINFO_TCP_WSCALE_ORIGINAL = 2, - CTA_PROTOINFO_TCP_WSCALE_REPLY = 3, - CTA_PROTOINFO_TCP_FLAGS_ORIGINAL = 4, - CTA_PROTOINFO_TCP_FLAGS_REPLY = 5, - __CTA_PROTOINFO_TCP_MAX = 6, -}; - -struct nf_ct_tcp_flags { - __u8 flags; - __u8 mask; -}; - -struct tcp_metrics_block; - -struct tcpm_hash_bucket { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; -}; - -struct tcp_fastopen_metrics { - u16 mss; - u16 syn_loss: 10; - u16 try_exp: 2; - unsigned long last_syn_loss; - struct tcp_fastopen_cookie cookie; -}; - -struct tcp_metrics_block { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; - struct net *tcpm_net; - struct inetpeer_addr tcpm_saddr; - struct inetpeer_addr tcpm_daddr; - unsigned long tcpm_stamp; - u32 tcpm_lock; - u32 tcpm_vals[5]; - struct tcp_fastopen_metrics tcpm_fastopen; +struct nf_nat_lookup_hook_priv { + struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *entries; struct callback_head callback_head; }; -enum tcp_metric_index { - TCP_METRIC_RTT = 0, - TCP_METRIC_RTTVAR = 1, - TCP_METRIC_SSTHRESH = 2, - TCP_METRIC_CWND = 3, - TCP_METRIC_REORDERING = 4, - TCP_METRIC_RTT_US = 5, - TCP_METRIC_RTTVAR_US = 6, - __TCP_METRIC_MAX = 7, +struct nf_nat_hooks_net { + struct nf_hook_ops *nat_hook_ops; + unsigned int users; }; -enum { - TCP_METRICS_ATTR_UNSPEC = 0, - TCP_METRICS_ATTR_ADDR_IPV4 = 1, - TCP_METRICS_ATTR_ADDR_IPV6 = 2, - TCP_METRICS_ATTR_AGE = 3, - TCP_METRICS_ATTR_TW_TSVAL = 4, - TCP_METRICS_ATTR_TW_TS_STAMP = 5, - TCP_METRICS_ATTR_VALS = 6, - TCP_METRICS_ATTR_FOPEN_MSS = 7, - TCP_METRICS_ATTR_FOPEN_SYN_DROPS = 8, - TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS = 9, - TCP_METRICS_ATTR_FOPEN_COOKIE = 10, - TCP_METRICS_ATTR_SADDR_IPV4 = 11, - TCP_METRICS_ATTR_SADDR_IPV6 = 12, - TCP_METRICS_ATTR_PAD = 13, - __TCP_METRICS_ATTR_MAX = 14, +struct nat_net { + struct nf_nat_hooks_net nat_proto_net[11]; }; -enum { - TCP_METRICS_CMD_UNSPEC = 0, - TCP_METRICS_CMD_GET = 1, - TCP_METRICS_CMD_DEL = 2, - __TCP_METRICS_CMD_MAX = 3, +struct ipt_error { + struct ipt_entry entry; + struct xt_error_target target; }; -typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); - -enum nl80211_attrs { - NL80211_ATTR_UNSPEC = 0, - NL80211_ATTR_WIPHY = 1, - NL80211_ATTR_WIPHY_NAME = 2, - NL80211_ATTR_IFINDEX = 3, - NL80211_ATTR_IFNAME = 4, - NL80211_ATTR_IFTYPE = 5, - NL80211_ATTR_MAC = 6, - NL80211_ATTR_KEY_DATA = 7, - NL80211_ATTR_KEY_IDX = 8, - NL80211_ATTR_KEY_CIPHER = 9, - NL80211_ATTR_KEY_SEQ = 10, - NL80211_ATTR_KEY_DEFAULT = 11, - NL80211_ATTR_BEACON_INTERVAL = 12, - NL80211_ATTR_DTIM_PERIOD = 13, - NL80211_ATTR_BEACON_HEAD = 14, - NL80211_ATTR_BEACON_TAIL = 15, - NL80211_ATTR_STA_AID = 16, - NL80211_ATTR_STA_FLAGS = 17, - NL80211_ATTR_STA_LISTEN_INTERVAL = 18, - NL80211_ATTR_STA_SUPPORTED_RATES = 19, - NL80211_ATTR_STA_VLAN = 20, - NL80211_ATTR_STA_INFO = 21, - NL80211_ATTR_WIPHY_BANDS = 22, - NL80211_ATTR_MNTR_FLAGS = 23, - NL80211_ATTR_MESH_ID = 24, - NL80211_ATTR_STA_PLINK_ACTION = 25, - NL80211_ATTR_MPATH_NEXT_HOP = 26, - NL80211_ATTR_MPATH_INFO = 27, - NL80211_ATTR_BSS_CTS_PROT = 28, - NL80211_ATTR_BSS_SHORT_PREAMBLE = 29, - NL80211_ATTR_BSS_SHORT_SLOT_TIME = 30, - NL80211_ATTR_HT_CAPABILITY = 31, - NL80211_ATTR_SUPPORTED_IFTYPES = 32, - NL80211_ATTR_REG_ALPHA2 = 33, - NL80211_ATTR_REG_RULES = 34, - NL80211_ATTR_MESH_CONFIG = 35, - NL80211_ATTR_BSS_BASIC_RATES = 36, - NL80211_ATTR_WIPHY_TXQ_PARAMS = 37, - NL80211_ATTR_WIPHY_FREQ = 38, - NL80211_ATTR_WIPHY_CHANNEL_TYPE = 39, - NL80211_ATTR_KEY_DEFAULT_MGMT = 40, - NL80211_ATTR_MGMT_SUBTYPE = 41, - NL80211_ATTR_IE = 42, - NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 43, - NL80211_ATTR_SCAN_FREQUENCIES = 44, - NL80211_ATTR_SCAN_SSIDS = 45, - NL80211_ATTR_GENERATION = 46, - NL80211_ATTR_BSS = 47, - NL80211_ATTR_REG_INITIATOR = 48, - NL80211_ATTR_REG_TYPE = 49, - NL80211_ATTR_SUPPORTED_COMMANDS = 50, - NL80211_ATTR_FRAME = 51, - NL80211_ATTR_SSID = 52, - NL80211_ATTR_AUTH_TYPE = 53, - NL80211_ATTR_REASON_CODE = 54, - NL80211_ATTR_KEY_TYPE = 55, - NL80211_ATTR_MAX_SCAN_IE_LEN = 56, - NL80211_ATTR_CIPHER_SUITES = 57, - NL80211_ATTR_FREQ_BEFORE = 58, - NL80211_ATTR_FREQ_AFTER = 59, - NL80211_ATTR_FREQ_FIXED = 60, - NL80211_ATTR_WIPHY_RETRY_SHORT = 61, - NL80211_ATTR_WIPHY_RETRY_LONG = 62, - NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 63, - NL80211_ATTR_WIPHY_RTS_THRESHOLD = 64, - NL80211_ATTR_TIMED_OUT = 65, - NL80211_ATTR_USE_MFP = 66, - NL80211_ATTR_STA_FLAGS2 = 67, - NL80211_ATTR_CONTROL_PORT = 68, - NL80211_ATTR_TESTDATA = 69, - NL80211_ATTR_PRIVACY = 70, - NL80211_ATTR_DISCONNECTED_BY_AP = 71, - NL80211_ATTR_STATUS_CODE = 72, - NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 73, - NL80211_ATTR_CIPHER_SUITE_GROUP = 74, - NL80211_ATTR_WPA_VERSIONS = 75, - NL80211_ATTR_AKM_SUITES = 76, - NL80211_ATTR_REQ_IE = 77, - NL80211_ATTR_RESP_IE = 78, - NL80211_ATTR_PREV_BSSID = 79, - NL80211_ATTR_KEY = 80, - NL80211_ATTR_KEYS = 81, - NL80211_ATTR_PID = 82, - NL80211_ATTR_4ADDR = 83, - NL80211_ATTR_SURVEY_INFO = 84, - NL80211_ATTR_PMKID = 85, - NL80211_ATTR_MAX_NUM_PMKIDS = 86, - NL80211_ATTR_DURATION = 87, - NL80211_ATTR_COOKIE = 88, - NL80211_ATTR_WIPHY_COVERAGE_CLASS = 89, - NL80211_ATTR_TX_RATES = 90, - NL80211_ATTR_FRAME_MATCH = 91, - NL80211_ATTR_ACK = 92, - NL80211_ATTR_PS_STATE = 93, - NL80211_ATTR_CQM = 94, - NL80211_ATTR_LOCAL_STATE_CHANGE = 95, - NL80211_ATTR_AP_ISOLATE = 96, - NL80211_ATTR_WIPHY_TX_POWER_SETTING = 97, - NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 98, - NL80211_ATTR_TX_FRAME_TYPES = 99, - NL80211_ATTR_RX_FRAME_TYPES = 100, - NL80211_ATTR_FRAME_TYPE = 101, - NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 102, - NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 103, - NL80211_ATTR_SUPPORT_IBSS_RSN = 104, - NL80211_ATTR_WIPHY_ANTENNA_TX = 105, - NL80211_ATTR_WIPHY_ANTENNA_RX = 106, - NL80211_ATTR_MCAST_RATE = 107, - NL80211_ATTR_OFFCHANNEL_TX_OK = 108, - NL80211_ATTR_BSS_HT_OPMODE = 109, - NL80211_ATTR_KEY_DEFAULT_TYPES = 110, - NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 111, - NL80211_ATTR_MESH_SETUP = 112, - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 113, - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 114, - NL80211_ATTR_SUPPORT_MESH_AUTH = 115, - NL80211_ATTR_STA_PLINK_STATE = 116, - NL80211_ATTR_WOWLAN_TRIGGERS = 117, - NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 118, - NL80211_ATTR_SCHED_SCAN_INTERVAL = 119, - NL80211_ATTR_INTERFACE_COMBINATIONS = 120, - NL80211_ATTR_SOFTWARE_IFTYPES = 121, - NL80211_ATTR_REKEY_DATA = 122, - NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 123, - NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 124, - NL80211_ATTR_SCAN_SUPP_RATES = 125, - NL80211_ATTR_HIDDEN_SSID = 126, - NL80211_ATTR_IE_PROBE_RESP = 127, - NL80211_ATTR_IE_ASSOC_RESP = 128, - NL80211_ATTR_STA_WME = 129, - NL80211_ATTR_SUPPORT_AP_UAPSD = 130, - NL80211_ATTR_ROAM_SUPPORT = 131, - NL80211_ATTR_SCHED_SCAN_MATCH = 132, - NL80211_ATTR_MAX_MATCH_SETS = 133, - NL80211_ATTR_PMKSA_CANDIDATE = 134, - NL80211_ATTR_TX_NO_CCK_RATE = 135, - NL80211_ATTR_TDLS_ACTION = 136, - NL80211_ATTR_TDLS_DIALOG_TOKEN = 137, - NL80211_ATTR_TDLS_OPERATION = 138, - NL80211_ATTR_TDLS_SUPPORT = 139, - NL80211_ATTR_TDLS_EXTERNAL_SETUP = 140, - NL80211_ATTR_DEVICE_AP_SME = 141, - NL80211_ATTR_DONT_WAIT_FOR_ACK = 142, - NL80211_ATTR_FEATURE_FLAGS = 143, - NL80211_ATTR_PROBE_RESP_OFFLOAD = 144, - NL80211_ATTR_PROBE_RESP = 145, - NL80211_ATTR_DFS_REGION = 146, - NL80211_ATTR_DISABLE_HT = 147, - NL80211_ATTR_HT_CAPABILITY_MASK = 148, - NL80211_ATTR_NOACK_MAP = 149, - NL80211_ATTR_INACTIVITY_TIMEOUT = 150, - NL80211_ATTR_RX_SIGNAL_DBM = 151, - NL80211_ATTR_BG_SCAN_PERIOD = 152, - NL80211_ATTR_WDEV = 153, - NL80211_ATTR_USER_REG_HINT_TYPE = 154, - NL80211_ATTR_CONN_FAILED_REASON = 155, - NL80211_ATTR_AUTH_DATA = 156, - NL80211_ATTR_VHT_CAPABILITY = 157, - NL80211_ATTR_SCAN_FLAGS = 158, - NL80211_ATTR_CHANNEL_WIDTH = 159, - NL80211_ATTR_CENTER_FREQ1 = 160, - NL80211_ATTR_CENTER_FREQ2 = 161, - NL80211_ATTR_P2P_CTWINDOW = 162, - NL80211_ATTR_P2P_OPPPS = 163, - NL80211_ATTR_LOCAL_MESH_POWER_MODE = 164, - NL80211_ATTR_ACL_POLICY = 165, - NL80211_ATTR_MAC_ADDRS = 166, - NL80211_ATTR_MAC_ACL_MAX = 167, - NL80211_ATTR_RADAR_EVENT = 168, - NL80211_ATTR_EXT_CAPA = 169, - NL80211_ATTR_EXT_CAPA_MASK = 170, - NL80211_ATTR_STA_CAPABILITY = 171, - NL80211_ATTR_STA_EXT_CAPABILITY = 172, - NL80211_ATTR_PROTOCOL_FEATURES = 173, - NL80211_ATTR_SPLIT_WIPHY_DUMP = 174, - NL80211_ATTR_DISABLE_VHT = 175, - NL80211_ATTR_VHT_CAPABILITY_MASK = 176, - NL80211_ATTR_MDID = 177, - NL80211_ATTR_IE_RIC = 178, - NL80211_ATTR_CRIT_PROT_ID = 179, - NL80211_ATTR_MAX_CRIT_PROT_DURATION = 180, - NL80211_ATTR_PEER_AID = 181, - NL80211_ATTR_COALESCE_RULE = 182, - NL80211_ATTR_CH_SWITCH_COUNT = 183, - NL80211_ATTR_CH_SWITCH_BLOCK_TX = 184, - NL80211_ATTR_CSA_IES = 185, - NL80211_ATTR_CNTDWN_OFFS_BEACON = 186, - NL80211_ATTR_CNTDWN_OFFS_PRESP = 187, - NL80211_ATTR_RXMGMT_FLAGS = 188, - NL80211_ATTR_STA_SUPPORTED_CHANNELS = 189, - NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 190, - NL80211_ATTR_HANDLE_DFS = 191, - NL80211_ATTR_SUPPORT_5_MHZ = 192, - NL80211_ATTR_SUPPORT_10_MHZ = 193, - NL80211_ATTR_OPMODE_NOTIF = 194, - NL80211_ATTR_VENDOR_ID = 195, - NL80211_ATTR_VENDOR_SUBCMD = 196, - NL80211_ATTR_VENDOR_DATA = 197, - NL80211_ATTR_VENDOR_EVENTS = 198, - NL80211_ATTR_QOS_MAP = 199, - NL80211_ATTR_MAC_HINT = 200, - NL80211_ATTR_WIPHY_FREQ_HINT = 201, - NL80211_ATTR_MAX_AP_ASSOC_STA = 202, - NL80211_ATTR_TDLS_PEER_CAPABILITY = 203, - NL80211_ATTR_SOCKET_OWNER = 204, - NL80211_ATTR_CSA_C_OFFSETS_TX = 205, - NL80211_ATTR_MAX_CSA_COUNTERS = 206, - NL80211_ATTR_TDLS_INITIATOR = 207, - NL80211_ATTR_USE_RRM = 208, - NL80211_ATTR_WIPHY_DYN_ACK = 209, - NL80211_ATTR_TSID = 210, - NL80211_ATTR_USER_PRIO = 211, - NL80211_ATTR_ADMITTED_TIME = 212, - NL80211_ATTR_SMPS_MODE = 213, - NL80211_ATTR_OPER_CLASS = 214, - NL80211_ATTR_MAC_MASK = 215, - NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 216, - NL80211_ATTR_EXT_FEATURES = 217, - NL80211_ATTR_SURVEY_RADIO_STATS = 218, - NL80211_ATTR_NETNS_FD = 219, - NL80211_ATTR_SCHED_SCAN_DELAY = 220, - NL80211_ATTR_REG_INDOOR = 221, - NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 222, - NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 223, - NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 224, - NL80211_ATTR_SCHED_SCAN_PLANS = 225, - NL80211_ATTR_PBSS = 226, - NL80211_ATTR_BSS_SELECT = 227, - NL80211_ATTR_STA_SUPPORT_P2P_PS = 228, - NL80211_ATTR_PAD = 229, - NL80211_ATTR_IFTYPE_EXT_CAPA = 230, - NL80211_ATTR_MU_MIMO_GROUP_DATA = 231, - NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 232, - NL80211_ATTR_SCAN_START_TIME_TSF = 233, - NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 234, - NL80211_ATTR_MEASUREMENT_DURATION = 235, - NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 236, - NL80211_ATTR_MESH_PEER_AID = 237, - NL80211_ATTR_NAN_MASTER_PREF = 238, - NL80211_ATTR_BANDS = 239, - NL80211_ATTR_NAN_FUNC = 240, - NL80211_ATTR_NAN_MATCH = 241, - NL80211_ATTR_FILS_KEK = 242, - NL80211_ATTR_FILS_NONCES = 243, - NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 244, - NL80211_ATTR_BSSID = 245, - NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 246, - NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 247, - NL80211_ATTR_TIMEOUT_REASON = 248, - NL80211_ATTR_FILS_ERP_USERNAME = 249, - NL80211_ATTR_FILS_ERP_REALM = 250, - NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 251, - NL80211_ATTR_FILS_ERP_RRK = 252, - NL80211_ATTR_FILS_CACHE_ID = 253, - NL80211_ATTR_PMK = 254, - NL80211_ATTR_SCHED_SCAN_MULTI = 255, - NL80211_ATTR_SCHED_SCAN_MAX_REQS = 256, - NL80211_ATTR_WANT_1X_4WAY_HS = 257, - NL80211_ATTR_PMKR0_NAME = 258, - NL80211_ATTR_PORT_AUTHORIZED = 259, - NL80211_ATTR_EXTERNAL_AUTH_ACTION = 260, - NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 261, - NL80211_ATTR_NSS = 262, - NL80211_ATTR_ACK_SIGNAL = 263, - NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 264, - NL80211_ATTR_TXQ_STATS = 265, - NL80211_ATTR_TXQ_LIMIT = 266, - NL80211_ATTR_TXQ_MEMORY_LIMIT = 267, - NL80211_ATTR_TXQ_QUANTUM = 268, - NL80211_ATTR_HE_CAPABILITY = 269, - NL80211_ATTR_FTM_RESPONDER = 270, - NL80211_ATTR_FTM_RESPONDER_STATS = 271, - NL80211_ATTR_TIMEOUT = 272, - NL80211_ATTR_PEER_MEASUREMENTS = 273, - NL80211_ATTR_AIRTIME_WEIGHT = 274, - NL80211_ATTR_STA_TX_POWER_SETTING = 275, - NL80211_ATTR_STA_TX_POWER = 276, - NL80211_ATTR_SAE_PASSWORD = 277, - NL80211_ATTR_TWT_RESPONDER = 278, - NL80211_ATTR_HE_OBSS_PD = 279, - NL80211_ATTR_WIPHY_EDMG_CHANNELS = 280, - NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 281, - NL80211_ATTR_VLAN_ID = 282, - NL80211_ATTR_HE_BSS_COLOR = 283, - NL80211_ATTR_IFTYPE_AKM_SUITES = 284, - NL80211_ATTR_TID_CONFIG = 285, - NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 286, - NL80211_ATTR_PMK_LIFETIME = 287, - NL80211_ATTR_PMK_REAUTH_THRESHOLD = 288, - NL80211_ATTR_RECEIVE_MULTICAST = 289, - NL80211_ATTR_WIPHY_FREQ_OFFSET = 290, - NL80211_ATTR_CENTER_FREQ1_OFFSET = 291, - NL80211_ATTR_SCAN_FREQ_KHZ = 292, - NL80211_ATTR_HE_6GHZ_CAPABILITY = 293, - NL80211_ATTR_FILS_DISCOVERY = 294, - NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 295, - NL80211_ATTR_S1G_CAPABILITY = 296, - NL80211_ATTR_S1G_CAPABILITY_MASK = 297, - NL80211_ATTR_SAE_PWE = 298, - NL80211_ATTR_RECONNECT_REQUESTED = 299, - NL80211_ATTR_SAR_SPEC = 300, - NL80211_ATTR_DISABLE_HE = 301, - NL80211_ATTR_OBSS_COLOR_BITMAP = 302, - NL80211_ATTR_COLOR_CHANGE_COUNT = 303, - NL80211_ATTR_COLOR_CHANGE_COLOR = 304, - NL80211_ATTR_COLOR_CHANGE_ELEMS = 305, - NL80211_ATTR_MBSSID_CONFIG = 306, - NL80211_ATTR_MBSSID_ELEMS = 307, - NL80211_ATTR_RADAR_BACKGROUND = 308, - NL80211_ATTR_AP_SETTINGS_FLAGS = 309, - NL80211_ATTR_EHT_CAPABILITY = 310, - NL80211_ATTR_DISABLE_EHT = 311, - NL80211_ATTR_MLO_LINKS = 312, - NL80211_ATTR_MLO_LINK_ID = 313, - NL80211_ATTR_MLD_ADDR = 314, - NL80211_ATTR_MLO_SUPPORT = 315, - NL80211_ATTR_MAX_NUM_AKM_SUITES = 316, - NL80211_ATTR_EML_CAPABILITY = 317, - NL80211_ATTR_MLD_CAPA_AND_OPS = 318, - NL80211_ATTR_TX_HW_TIMESTAMP = 319, - NL80211_ATTR_RX_HW_TIMESTAMP = 320, - NL80211_ATTR_TD_BITMAP = 321, - NL80211_ATTR_PUNCT_BITMAP = 322, - NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 323, - NL80211_ATTR_HW_TIMESTAMP_ENABLED = 324, - NL80211_ATTR_EMA_RNR_ELEMS = 325, - NL80211_ATTR_MLO_LINK_DISABLED = 326, - NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 327, - NL80211_ATTR_MLO_TTLM_DLINK = 328, - NL80211_ATTR_MLO_TTLM_ULINK = 329, - NL80211_ATTR_ASSOC_SPP_AMSDU = 330, - __NL80211_ATTR_AFTER_LAST = 331, - NUM_NL80211_ATTR = 331, - NL80211_ATTR_MAX = 330, -}; - -enum nl80211_rate_info { - __NL80211_RATE_INFO_INVALID = 0, - NL80211_RATE_INFO_BITRATE = 1, - NL80211_RATE_INFO_MCS = 2, - NL80211_RATE_INFO_40_MHZ_WIDTH = 3, - NL80211_RATE_INFO_SHORT_GI = 4, - NL80211_RATE_INFO_BITRATE32 = 5, - NL80211_RATE_INFO_VHT_MCS = 6, - NL80211_RATE_INFO_VHT_NSS = 7, - NL80211_RATE_INFO_80_MHZ_WIDTH = 8, - NL80211_RATE_INFO_80P80_MHZ_WIDTH = 9, - NL80211_RATE_INFO_160_MHZ_WIDTH = 10, - NL80211_RATE_INFO_10_MHZ_WIDTH = 11, - NL80211_RATE_INFO_5_MHZ_WIDTH = 12, - NL80211_RATE_INFO_HE_MCS = 13, - NL80211_RATE_INFO_HE_NSS = 14, - NL80211_RATE_INFO_HE_GI = 15, - NL80211_RATE_INFO_HE_DCM = 16, - NL80211_RATE_INFO_HE_RU_ALLOC = 17, - NL80211_RATE_INFO_320_MHZ_WIDTH = 18, - NL80211_RATE_INFO_EHT_MCS = 19, - NL80211_RATE_INFO_EHT_NSS = 20, - NL80211_RATE_INFO_EHT_GI = 21, - NL80211_RATE_INFO_EHT_RU_ALLOC = 22, - NL80211_RATE_INFO_S1G_MCS = 23, - NL80211_RATE_INFO_S1G_NSS = 24, - NL80211_RATE_INFO_1_MHZ_WIDTH = 25, - NL80211_RATE_INFO_2_MHZ_WIDTH = 26, - NL80211_RATE_INFO_4_MHZ_WIDTH = 27, - NL80211_RATE_INFO_8_MHZ_WIDTH = 28, - NL80211_RATE_INFO_16_MHZ_WIDTH = 29, - __NL80211_RATE_INFO_AFTER_LAST = 30, - NL80211_RATE_INFO_MAX = 29, -}; - -enum plink_actions { - NL80211_PLINK_ACTION_NO_ACTION = 0, - NL80211_PLINK_ACTION_OPEN = 1, - NL80211_PLINK_ACTION_BLOCK = 2, - NUM_NL80211_PLINK_ACTIONS = 3, -}; - -enum nl80211_multicast_groups { - NL80211_MCGRP_CONFIG = 0, - NL80211_MCGRP_SCAN = 1, - NL80211_MCGRP_REGULATORY = 2, - NL80211_MCGRP_MLME = 3, - NL80211_MCGRP_VENDOR = 4, - NL80211_MCGRP_NAN = 5, - NL80211_MCGRP_TESTMODE = 6, -}; - -enum nl80211_nan_match_attributes { - __NL80211_NAN_MATCH_INVALID = 0, - NL80211_NAN_MATCH_FUNC_LOCAL = 1, - NL80211_NAN_MATCH_FUNC_PEER = 2, - NUM_NL80211_NAN_MATCH_ATTR = 3, - NL80211_NAN_MATCH_ATTR_MAX = 2, -}; - -enum nl80211_nan_func_attributes { - __NL80211_NAN_FUNC_INVALID = 0, - NL80211_NAN_FUNC_TYPE = 1, - NL80211_NAN_FUNC_SERVICE_ID = 2, - NL80211_NAN_FUNC_PUBLISH_TYPE = 3, - NL80211_NAN_FUNC_PUBLISH_BCAST = 4, - NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 5, - NL80211_NAN_FUNC_FOLLOW_UP_ID = 6, - NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 7, - NL80211_NAN_FUNC_FOLLOW_UP_DEST = 8, - NL80211_NAN_FUNC_CLOSE_RANGE = 9, - NL80211_NAN_FUNC_TTL = 10, - NL80211_NAN_FUNC_SERVICE_INFO = 11, - NL80211_NAN_FUNC_SRF = 12, - NL80211_NAN_FUNC_RX_MATCH_FILTER = 13, - NL80211_NAN_FUNC_TX_MATCH_FILTER = 14, - NL80211_NAN_FUNC_INSTANCE_ID = 15, - NL80211_NAN_FUNC_TERM_REASON = 16, - NUM_NL80211_NAN_FUNC_ATTR = 17, - NL80211_NAN_FUNC_ATTR_MAX = 16, -}; - -enum nl80211_connect_failed_reason { - NL80211_CONN_FAIL_MAX_CLIENTS = 0, - NL80211_CONN_FAIL_BLOCKED_CLIENT = 1, -}; - -enum nl80211_attr_cqm { - __NL80211_ATTR_CQM_INVALID = 0, - NL80211_ATTR_CQM_RSSI_THOLD = 1, - NL80211_ATTR_CQM_RSSI_HYST = 2, - NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 3, - NL80211_ATTR_CQM_PKT_LOSS_EVENT = 4, - NL80211_ATTR_CQM_TXE_RATE = 5, - NL80211_ATTR_CQM_TXE_PKTS = 6, - NL80211_ATTR_CQM_TXE_INTVL = 7, - NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 8, - NL80211_ATTR_CQM_RSSI_LEVEL = 9, - __NL80211_ATTR_CQM_AFTER_LAST = 10, - NL80211_ATTR_CQM_MAX = 9, -}; - -enum nl80211_wowlan_triggers { - __NL80211_WOWLAN_TRIG_INVALID = 0, - NL80211_WOWLAN_TRIG_ANY = 1, - NL80211_WOWLAN_TRIG_DISCONNECT = 2, - NL80211_WOWLAN_TRIG_MAGIC_PKT = 3, - NL80211_WOWLAN_TRIG_PKT_PATTERN = 4, - NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 5, - NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 6, - NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 7, - NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 8, - NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 9, - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 10, - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 11, - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 12, - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 13, - NL80211_WOWLAN_TRIG_TCP_CONNECTION = 14, - NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 15, - NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 16, - NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 17, - NL80211_WOWLAN_TRIG_NET_DETECT = 18, - NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 19, - NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 20, - NUM_NL80211_WOWLAN_TRIG = 21, - MAX_NL80211_WOWLAN_TRIG = 20, -}; - -enum nl80211_txq_attr { - __NL80211_TXQ_ATTR_INVALID = 0, - NL80211_TXQ_ATTR_AC = 1, - NL80211_TXQ_ATTR_TXOP = 2, - NL80211_TXQ_ATTR_CWMIN = 3, - NL80211_TXQ_ATTR_CWMAX = 4, - NL80211_TXQ_ATTR_AIFS = 5, - __NL80211_TXQ_ATTR_AFTER_LAST = 6, - NL80211_TXQ_ATTR_MAX = 5, -}; - -enum nl80211_mntr_flags { - __NL80211_MNTR_FLAG_INVALID = 0, - NL80211_MNTR_FLAG_FCSFAIL = 1, - NL80211_MNTR_FLAG_PLCPFAIL = 2, - NL80211_MNTR_FLAG_CONTROL = 3, - NL80211_MNTR_FLAG_OTHER_BSS = 4, - NL80211_MNTR_FLAG_COOK_FRAMES = 5, - NL80211_MNTR_FLAG_ACTIVE = 6, - __NL80211_MNTR_FLAG_AFTER_LAST = 7, - NL80211_MNTR_FLAG_MAX = 6, -}; - -enum nl80211_key_attributes { - __NL80211_KEY_INVALID = 0, - NL80211_KEY_DATA = 1, - NL80211_KEY_IDX = 2, - NL80211_KEY_CIPHER = 3, - NL80211_KEY_SEQ = 4, - NL80211_KEY_DEFAULT = 5, - NL80211_KEY_DEFAULT_MGMT = 6, - NL80211_KEY_TYPE = 7, - NL80211_KEY_DEFAULT_TYPES = 8, - NL80211_KEY_MODE = 9, - NL80211_KEY_DEFAULT_BEACON = 10, - __NL80211_KEY_AFTER_LAST = 11, - NL80211_KEY_MAX = 10, -}; - -enum nl80211_key_default_types { - __NL80211_KEY_DEFAULT_TYPE_INVALID = 0, - NL80211_KEY_DEFAULT_TYPE_UNICAST = 1, - NL80211_KEY_DEFAULT_TYPE_MULTICAST = 2, - NUM_NL80211_KEY_DEFAULT_TYPES = 3, -}; - -enum nl80211_ftm_responder_attributes { - __NL80211_FTM_RESP_ATTR_INVALID = 0, - NL80211_FTM_RESP_ATTR_ENABLED = 1, - NL80211_FTM_RESP_ATTR_LCI = 2, - NL80211_FTM_RESP_ATTR_CIVICLOC = 3, - __NL80211_FTM_RESP_ATTR_LAST = 4, - NL80211_FTM_RESP_ATTR_MAX = 3, -}; - -enum nl80211_bss_color_attributes { - __NL80211_HE_BSS_COLOR_ATTR_INVALID = 0, - NL80211_HE_BSS_COLOR_ATTR_COLOR = 1, - NL80211_HE_BSS_COLOR_ATTR_DISABLED = 2, - NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 3, - __NL80211_HE_BSS_COLOR_ATTR_LAST = 4, - NL80211_HE_BSS_COLOR_ATTR_MAX = 3, -}; - -enum nl80211_fils_discovery_attributes { - __NL80211_FILS_DISCOVERY_ATTR_INVALID = 0, - NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 1, - NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 2, - NL80211_FILS_DISCOVERY_ATTR_TMPL = 3, - __NL80211_FILS_DISCOVERY_ATTR_LAST = 4, - NL80211_FILS_DISCOVERY_ATTR_MAX = 3, -}; - -enum nl80211_unsol_bcast_probe_resp_attributes { - __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID = 0, - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 1, - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 2, - __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST = 3, - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 2, -}; - -enum nl80211_ap_settings_flags { - NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1, - NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 2, -}; - -enum nl80211_tx_rate_attributes { - __NL80211_TXRATE_INVALID = 0, - NL80211_TXRATE_LEGACY = 1, - NL80211_TXRATE_HT = 2, - NL80211_TXRATE_VHT = 3, - NL80211_TXRATE_GI = 4, - NL80211_TXRATE_HE = 5, - NL80211_TXRATE_HE_GI = 6, - NL80211_TXRATE_HE_LTF = 7, - __NL80211_TXRATE_AFTER_LAST = 8, - NL80211_TXRATE_MAX = 7, -}; - -enum nl80211_obss_pd_attributes { - __NL80211_HE_OBSS_PD_ATTR_INVALID = 0, - NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 1, - NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 2, - NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 3, - NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 4, - NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 5, - NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 6, - __NL80211_HE_OBSS_PD_ATTR_LAST = 7, - NL80211_HE_OBSS_PD_ATTR_MAX = 6, -}; - -enum nl80211_mbssid_config_attributes { - __NL80211_MBSSID_CONFIG_ATTR_INVALID = 0, - NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 1, - NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 2, - NL80211_MBSSID_CONFIG_ATTR_INDEX = 3, - NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 4, - NL80211_MBSSID_CONFIG_ATTR_EMA = 5, - __NL80211_MBSSID_CONFIG_ATTR_LAST = 6, - NL80211_MBSSID_CONFIG_ATTR_MAX = 5, -}; - -enum nl80211_sta_wme_attr { - __NL80211_STA_WME_INVALID = 0, - NL80211_STA_WME_UAPSD_QUEUES = 1, - NL80211_STA_WME_MAX_SP = 2, - __NL80211_STA_WME_AFTER_LAST = 3, - NL80211_STA_WME_MAX = 2, -}; - -enum mpath_info_flags { - MPATH_INFO_FRAME_QLEN = 1, - MPATH_INFO_SN = 2, - MPATH_INFO_METRIC = 4, - MPATH_INFO_EXPTIME = 8, - MPATH_INFO_DISCOVERY_TIMEOUT = 16, - MPATH_INFO_DISCOVERY_RETRIES = 32, - MPATH_INFO_FLAGS = 64, - MPATH_INFO_HOP_COUNT = 128, - MPATH_INFO_PATH_CHANGE = 256, -}; - -enum nl80211_mpath_info { - __NL80211_MPATH_INFO_INVALID = 0, - NL80211_MPATH_INFO_FRAME_QLEN = 1, - NL80211_MPATH_INFO_SN = 2, - NL80211_MPATH_INFO_METRIC = 3, - NL80211_MPATH_INFO_EXPTIME = 4, - NL80211_MPATH_INFO_FLAGS = 5, - NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 6, - NL80211_MPATH_INFO_DISCOVERY_RETRIES = 7, - NL80211_MPATH_INFO_HOP_COUNT = 8, - NL80211_MPATH_INFO_PATH_CHANGE = 9, - __NL80211_MPATH_INFO_AFTER_LAST = 10, - NL80211_MPATH_INFO_MAX = 9, -}; - -enum nl80211_reg_rule_attr { - __NL80211_REG_RULE_ATTR_INVALID = 0, - NL80211_ATTR_REG_RULE_FLAGS = 1, - NL80211_ATTR_FREQ_RANGE_START = 2, - NL80211_ATTR_FREQ_RANGE_END = 3, - NL80211_ATTR_FREQ_RANGE_MAX_BW = 4, - NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 5, - NL80211_ATTR_POWER_RULE_MAX_EIRP = 6, - NL80211_ATTR_DFS_CAC_TIME = 7, - NL80211_ATTR_POWER_RULE_PSD = 8, - __NL80211_REG_RULE_ATTR_AFTER_LAST = 9, - NL80211_REG_RULE_ATTR_MAX = 8, -}; - -enum nl80211_reg_rule_flags { - NL80211_RRF_NO_OFDM = 1, - NL80211_RRF_NO_CCK = 2, - NL80211_RRF_NO_INDOOR = 4, - NL80211_RRF_NO_OUTDOOR = 8, - NL80211_RRF_DFS = 16, - NL80211_RRF_PTP_ONLY = 32, - NL80211_RRF_PTMP_ONLY = 64, - NL80211_RRF_NO_IR = 128, - __NL80211_RRF_NO_IBSS = 256, - NL80211_RRF_AUTO_BW = 2048, - NL80211_RRF_IR_CONCURRENT = 4096, - NL80211_RRF_NO_HT40MINUS = 8192, - NL80211_RRF_NO_HT40PLUS = 16384, - NL80211_RRF_NO_80MHZ = 32768, - NL80211_RRF_NO_160MHZ = 65536, - NL80211_RRF_NO_HE = 131072, - NL80211_RRF_NO_320MHZ = 262144, - NL80211_RRF_NO_EHT = 524288, - NL80211_RRF_PSD = 1048576, - NL80211_RRF_DFS_CONCURRENT = 2097152, - NL80211_RRF_NO_6GHZ_VLP_CLIENT = 4194304, - NL80211_RRF_NO_6GHZ_AFC_CLIENT = 8388608, -}; - -enum ieee80211_regd_source { - REGD_SOURCE_INTERNAL_DB = 0, - REGD_SOURCE_CRDA = 1, - REGD_SOURCE_CACHED = 2, -}; - -enum nl80211_meshconf_params { - __NL80211_MESHCONF_INVALID = 0, - NL80211_MESHCONF_RETRY_TIMEOUT = 1, - NL80211_MESHCONF_CONFIRM_TIMEOUT = 2, - NL80211_MESHCONF_HOLDING_TIMEOUT = 3, - NL80211_MESHCONF_MAX_PEER_LINKS = 4, - NL80211_MESHCONF_MAX_RETRIES = 5, - NL80211_MESHCONF_TTL = 6, - NL80211_MESHCONF_AUTO_OPEN_PLINKS = 7, - NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 8, - NL80211_MESHCONF_PATH_REFRESH_TIME = 9, - NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 10, - NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 11, - NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 12, - NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 13, - NL80211_MESHCONF_HWMP_ROOTMODE = 14, - NL80211_MESHCONF_ELEMENT_TTL = 15, - NL80211_MESHCONF_HWMP_RANN_INTERVAL = 16, - NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 17, - NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 18, - NL80211_MESHCONF_FORWARDING = 19, - NL80211_MESHCONF_RSSI_THRESHOLD = 20, - NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 21, - NL80211_MESHCONF_HT_OPMODE = 22, - NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 23, - NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 24, - NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 25, - NL80211_MESHCONF_POWER_MODE = 26, - NL80211_MESHCONF_AWAKE_WINDOW = 27, - NL80211_MESHCONF_PLINK_TIMEOUT = 28, - NL80211_MESHCONF_CONNECTED_TO_GATE = 29, - NL80211_MESHCONF_NOLEARN = 30, - NL80211_MESHCONF_CONNECTED_TO_AS = 31, - __NL80211_MESHCONF_ATTR_AFTER_LAST = 32, - NL80211_MESHCONF_ATTR_MAX = 31, -}; - -enum nl80211_bss { - __NL80211_BSS_INVALID = 0, - NL80211_BSS_BSSID = 1, - NL80211_BSS_FREQUENCY = 2, - NL80211_BSS_TSF = 3, - NL80211_BSS_BEACON_INTERVAL = 4, - NL80211_BSS_CAPABILITY = 5, - NL80211_BSS_INFORMATION_ELEMENTS = 6, - NL80211_BSS_SIGNAL_MBM = 7, - NL80211_BSS_SIGNAL_UNSPEC = 8, - NL80211_BSS_STATUS = 9, - NL80211_BSS_SEEN_MS_AGO = 10, - NL80211_BSS_BEACON_IES = 11, - NL80211_BSS_CHAN_WIDTH = 12, - NL80211_BSS_BEACON_TSF = 13, - NL80211_BSS_PRESP_DATA = 14, - NL80211_BSS_LAST_SEEN_BOOTTIME = 15, - NL80211_BSS_PAD = 16, - NL80211_BSS_PARENT_TSF = 17, - NL80211_BSS_PARENT_BSSID = 18, - NL80211_BSS_CHAIN_SIGNAL = 19, - NL80211_BSS_FREQUENCY_OFFSET = 20, - NL80211_BSS_MLO_LINK_ID = 21, - NL80211_BSS_MLD_ADDR = 22, - NL80211_BSS_USE_FOR = 23, - NL80211_BSS_CANNOT_USE_REASONS = 24, - __NL80211_BSS_AFTER_LAST = 25, - NL80211_BSS_MAX = 24, -}; - -enum nl80211_bss_status { - NL80211_BSS_STATUS_AUTHENTICATED = 0, - NL80211_BSS_STATUS_ASSOCIATED = 1, - NL80211_BSS_STATUS_IBSS_JOINED = 2, -}; - -enum nl80211_sched_scan_match_attr { - __NL80211_SCHED_SCAN_MATCH_ATTR_INVALID = 0, - NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 1, - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 2, - NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 3, - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 4, - NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 5, - NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 6, - __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST = 7, - NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 6, -}; - -enum nl80211_sched_scan_plan { - __NL80211_SCHED_SCAN_PLAN_INVALID = 0, - NL80211_SCHED_SCAN_PLAN_INTERVAL = 1, - NL80211_SCHED_SCAN_PLAN_ITERATIONS = 2, - __NL80211_SCHED_SCAN_PLAN_AFTER_LAST = 3, - NL80211_SCHED_SCAN_PLAN_MAX = 2, -}; - -enum cfg80211_assoc_req_flags { - ASSOC_REQ_DISABLE_HT = 1, - ASSOC_REQ_DISABLE_VHT = 2, - ASSOC_REQ_USE_RRM = 4, - CONNECT_REQ_EXTERNAL_AUTH_SUPPORT = 8, - ASSOC_REQ_DISABLE_HE = 16, - ASSOC_REQ_DISABLE_EHT = 32, - CONNECT_REQ_MLO_SUPPORT = 64, - ASSOC_REQ_SPP_AMSDU = 128, -}; - -enum cfg80211_connect_params_changed { - UPDATE_ASSOC_IES = 1, - UPDATE_FILS_ERP_INFO = 2, - UPDATE_AUTH_TYPE = 4, -}; - -enum nl80211_survey_info { - __NL80211_SURVEY_INFO_INVALID = 0, - NL80211_SURVEY_INFO_FREQUENCY = 1, - NL80211_SURVEY_INFO_NOISE = 2, - NL80211_SURVEY_INFO_IN_USE = 3, - NL80211_SURVEY_INFO_TIME = 4, - NL80211_SURVEY_INFO_TIME_BUSY = 5, - NL80211_SURVEY_INFO_TIME_EXT_BUSY = 6, - NL80211_SURVEY_INFO_TIME_RX = 7, - NL80211_SURVEY_INFO_TIME_TX = 8, - NL80211_SURVEY_INFO_TIME_SCAN = 9, - NL80211_SURVEY_INFO_PAD = 10, - NL80211_SURVEY_INFO_TIME_BSS_RX = 11, - NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 12, - __NL80211_SURVEY_INFO_AFTER_LAST = 13, - NL80211_SURVEY_INFO_MAX = 12, -}; - -enum nl80211_ps_state { - NL80211_PS_DISABLED = 0, - NL80211_PS_ENABLED = 1, -}; - -enum nl80211_mesh_setup_params { - __NL80211_MESH_SETUP_INVALID = 0, - NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 1, - NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 2, - NL80211_MESH_SETUP_IE = 3, - NL80211_MESH_SETUP_USERSPACE_AUTH = 4, - NL80211_MESH_SETUP_USERSPACE_AMPE = 5, - NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 6, - NL80211_MESH_SETUP_USERSPACE_MPM = 7, - NL80211_MESH_SETUP_AUTH_PROTOCOL = 8, - __NL80211_MESH_SETUP_ATTR_AFTER_LAST = 9, - NL80211_MESH_SETUP_ATTR_MAX = 8, -}; - -enum ieee80211_mesh_sync_method { - IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1, - IEEE80211_SYNC_METHOD_VENDOR = 255, -}; - -enum ieee80211_mesh_path_protocol { - IEEE80211_PATH_PROTOCOL_HWMP = 1, - IEEE80211_PATH_PROTOCOL_VENDOR = 255, -}; - -enum ieee80211_mesh_path_metric { - IEEE80211_PATH_METRIC_AIRTIME = 1, - IEEE80211_PATH_METRIC_VENDOR = 255, -}; - -enum nl80211_packet_pattern_attr { - __NL80211_PKTPAT_INVALID = 0, - NL80211_PKTPAT_MASK = 1, - NL80211_PKTPAT_PATTERN = 2, - NL80211_PKTPAT_OFFSET = 3, - NUM_NL80211_PKTPAT = 4, - MAX_NL80211_PKTPAT = 3, -}; - -enum nl80211_wowlan_tcp_attrs { - __NL80211_WOWLAN_TCP_INVALID = 0, - NL80211_WOWLAN_TCP_SRC_IPV4 = 1, - NL80211_WOWLAN_TCP_DST_IPV4 = 2, - NL80211_WOWLAN_TCP_DST_MAC = 3, - NL80211_WOWLAN_TCP_SRC_PORT = 4, - NL80211_WOWLAN_TCP_DST_PORT = 5, - NL80211_WOWLAN_TCP_DATA_PAYLOAD = 6, - NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 7, - NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 8, - NL80211_WOWLAN_TCP_DATA_INTERVAL = 9, - NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 10, - NL80211_WOWLAN_TCP_WAKE_MASK = 11, - NUM_NL80211_WOWLAN_TCP = 12, - MAX_NL80211_WOWLAN_TCP = 11, -}; - -enum nl80211_rekey_data { - __NL80211_REKEY_DATA_INVALID = 0, - NL80211_REKEY_DATA_KEK = 1, - NL80211_REKEY_DATA_KCK = 2, - NL80211_REKEY_DATA_REPLAY_CTR = 3, - NL80211_REKEY_DATA_AKM = 4, - NUM_NL80211_REKEY_DATA = 5, - MAX_NL80211_REKEY_DATA = 4, -}; - -enum nl80211_nan_publish_type { - NL80211_NAN_SOLICITED_PUBLISH = 1, - NL80211_NAN_UNSOLICITED_PUBLISH = 2, -}; - -enum nl80211_nan_srf_attributes { - __NL80211_NAN_SRF_INVALID = 0, - NL80211_NAN_SRF_INCLUDE = 1, - NL80211_NAN_SRF_BF = 2, - NL80211_NAN_SRF_BF_IDX = 3, - NL80211_NAN_SRF_MAC_ADDRS = 4, - NUM_NL80211_NAN_SRF_ATTR = 5, - NL80211_NAN_SRF_ATTR_MAX = 4, -}; - -enum nl80211_protocol_features { - NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1, -}; - -enum nl80211_attr_coalesce_rule { - __NL80211_COALESCE_RULE_INVALID = 0, - NL80211_ATTR_COALESCE_RULE_DELAY = 1, - NL80211_ATTR_COALESCE_RULE_CONDITION = 2, - NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 3, - NUM_NL80211_ATTR_COALESCE_RULE = 4, - NL80211_ATTR_COALESCE_RULE_MAX = 3, -}; - -enum wiphy_vendor_command_flags { - WIPHY_VENDOR_CMD_NEED_WDEV = 1, - WIPHY_VENDOR_CMD_NEED_NETDEV = 2, - WIPHY_VENDOR_CMD_NEED_RUNNING = 4, -}; - -enum nl80211_tid_config_attr { - __NL80211_TID_CONFIG_ATTR_INVALID = 0, - NL80211_TID_CONFIG_ATTR_PAD = 1, - NL80211_TID_CONFIG_ATTR_VIF_SUPP = 2, - NL80211_TID_CONFIG_ATTR_PEER_SUPP = 3, - NL80211_TID_CONFIG_ATTR_OVERRIDE = 4, - NL80211_TID_CONFIG_ATTR_TIDS = 5, - NL80211_TID_CONFIG_ATTR_NOACK = 6, - NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 7, - NL80211_TID_CONFIG_ATTR_RETRY_LONG = 8, - NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 9, - NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 10, - NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 11, - NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 12, - NL80211_TID_CONFIG_ATTR_TX_RATE = 13, - __NL80211_TID_CONFIG_ATTR_AFTER_LAST = 14, - NL80211_TID_CONFIG_ATTR_MAX = 13, -}; - -enum nl80211_sar_attrs { - __NL80211_SAR_ATTR_INVALID = 0, - NL80211_SAR_ATTR_TYPE = 1, - NL80211_SAR_ATTR_SPECS = 2, - __NL80211_SAR_ATTR_LAST = 3, - NL80211_SAR_ATTR_MAX = 2, -}; - -enum nl80211_sar_specs_attrs { - __NL80211_SAR_ATTR_SPECS_INVALID = 0, - NL80211_SAR_ATTR_SPECS_POWER = 1, - NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 2, - NL80211_SAR_ATTR_SPECS_START_FREQ = 3, - NL80211_SAR_ATTR_SPECS_END_FREQ = 4, - __NL80211_SAR_ATTR_SPECS_LAST = 5, - NL80211_SAR_ATTR_SPECS_MAX = 4, -}; - -enum nl80211_band_attr { - __NL80211_BAND_ATTR_INVALID = 0, - NL80211_BAND_ATTR_FREQS = 1, - NL80211_BAND_ATTR_RATES = 2, - NL80211_BAND_ATTR_HT_MCS_SET = 3, - NL80211_BAND_ATTR_HT_CAPA = 4, - NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 5, - NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 6, - NL80211_BAND_ATTR_VHT_MCS_SET = 7, - NL80211_BAND_ATTR_VHT_CAPA = 8, - NL80211_BAND_ATTR_IFTYPE_DATA = 9, - NL80211_BAND_ATTR_EDMG_CHANNELS = 10, - NL80211_BAND_ATTR_EDMG_BW_CONFIG = 11, - NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 12, - NL80211_BAND_ATTR_S1G_CAPA = 13, - __NL80211_BAND_ATTR_AFTER_LAST = 14, - NL80211_BAND_ATTR_MAX = 13, -}; - -enum nl80211_bitrate_attr { - __NL80211_BITRATE_ATTR_INVALID = 0, - NL80211_BITRATE_ATTR_RATE = 1, - NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 2, - __NL80211_BITRATE_ATTR_AFTER_LAST = 3, - NL80211_BITRATE_ATTR_MAX = 2, -}; - -enum nl80211_band_iftype_attr { - __NL80211_BAND_IFTYPE_ATTR_INVALID = 0, - NL80211_BAND_IFTYPE_ATTR_IFTYPES = 1, - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 2, - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 3, - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 4, - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 5, - NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 6, - NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 7, - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 8, - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 9, - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 10, - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 11, - __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST = 12, - NL80211_BAND_IFTYPE_ATTR_MAX = 11, -}; - -enum nl80211_if_combination_attrs { - NL80211_IFACE_COMB_UNSPEC = 0, - NL80211_IFACE_COMB_LIMITS = 1, - NL80211_IFACE_COMB_MAXNUM = 2, - NL80211_IFACE_COMB_STA_AP_BI_MATCH = 3, - NL80211_IFACE_COMB_NUM_CHANNELS = 4, - NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 5, - NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 6, - NL80211_IFACE_COMB_BI_MIN_GCD = 7, - NUM_NL80211_IFACE_COMB = 8, - MAX_NL80211_IFACE_COMB = 7, -}; - -enum nl80211_iface_limit_attrs { - NL80211_IFACE_LIMIT_UNSPEC = 0, - NL80211_IFACE_LIMIT_MAX = 1, - NL80211_IFACE_LIMIT_TYPES = 2, - NUM_NL80211_IFACE_LIMIT = 3, - MAX_NL80211_IFACE_LIMIT = 2, -}; - -enum nl80211_peer_measurement_attrs { - __NL80211_PMSR_ATTR_INVALID = 0, - NL80211_PMSR_ATTR_MAX_PEERS = 1, - NL80211_PMSR_ATTR_REPORT_AP_TSF = 2, - NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 3, - NL80211_PMSR_ATTR_TYPE_CAPA = 4, - NL80211_PMSR_ATTR_PEERS = 5, - NUM_NL80211_PMSR_ATTR = 6, - NL80211_PMSR_ATTR_MAX = 5, -}; - -enum nl80211_peer_measurement_type { - NL80211_PMSR_TYPE_INVALID = 0, - NL80211_PMSR_TYPE_FTM = 1, - NUM_NL80211_PMSR_TYPES = 2, - NL80211_PMSR_TYPE_MAX = 1, -}; - -enum nl80211_peer_measurement_ftm_capa { - __NL80211_PMSR_FTM_CAPA_ATTR_INVALID = 0, - NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 1, - NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 2, - NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 3, - NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 4, - NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 5, - NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 6, - NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 7, - NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 8, - NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 9, - NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 10, - NUM_NL80211_PMSR_FTM_CAPA_ATTR = 11, - NL80211_PMSR_FTM_CAPA_ATTR_MAX = 10, -}; - -enum nl80211_iftype_akm_attributes { - __NL80211_IFTYPE_AKM_ATTR_INVALID = 0, - NL80211_IFTYPE_AKM_ATTR_IFTYPES = 1, - NL80211_IFTYPE_AKM_ATTR_SUITES = 2, - __NL80211_IFTYPE_AKM_ATTR_LAST = 3, - NL80211_IFTYPE_AKM_ATTR_MAX = 2, -}; - -enum nl80211_reg_type { - NL80211_REGDOM_TYPE_COUNTRY = 0, - NL80211_REGDOM_TYPE_WORLD = 1, - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 2, - NL80211_REGDOM_TYPE_INTERSECTION = 3, -}; - -enum nl80211_frequency_attr { - __NL80211_FREQUENCY_ATTR_INVALID = 0, - NL80211_FREQUENCY_ATTR_FREQ = 1, - NL80211_FREQUENCY_ATTR_DISABLED = 2, - NL80211_FREQUENCY_ATTR_NO_IR = 3, - __NL80211_FREQUENCY_ATTR_NO_IBSS = 4, - NL80211_FREQUENCY_ATTR_RADAR = 5, - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 6, - NL80211_FREQUENCY_ATTR_DFS_STATE = 7, - NL80211_FREQUENCY_ATTR_DFS_TIME = 8, - NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 9, - NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 10, - NL80211_FREQUENCY_ATTR_NO_80MHZ = 11, - NL80211_FREQUENCY_ATTR_NO_160MHZ = 12, - NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 13, - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 14, - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 15, - NL80211_FREQUENCY_ATTR_NO_20MHZ = 16, - NL80211_FREQUENCY_ATTR_NO_10MHZ = 17, - NL80211_FREQUENCY_ATTR_WMM = 18, - NL80211_FREQUENCY_ATTR_NO_HE = 19, - NL80211_FREQUENCY_ATTR_OFFSET = 20, - NL80211_FREQUENCY_ATTR_1MHZ = 21, - NL80211_FREQUENCY_ATTR_2MHZ = 22, - NL80211_FREQUENCY_ATTR_4MHZ = 23, - NL80211_FREQUENCY_ATTR_8MHZ = 24, - NL80211_FREQUENCY_ATTR_16MHZ = 25, - NL80211_FREQUENCY_ATTR_NO_320MHZ = 26, - NL80211_FREQUENCY_ATTR_NO_EHT = 27, - NL80211_FREQUENCY_ATTR_PSD = 28, - NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 29, - NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 30, - NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 31, - NL80211_FREQUENCY_ATTR_CAN_MONITOR = 32, - __NL80211_FREQUENCY_ATTR_AFTER_LAST = 33, - NL80211_FREQUENCY_ATTR_MAX = 32, -}; - -enum nl80211_wmm_rule { - __NL80211_WMMR_INVALID = 0, - NL80211_WMMR_CW_MIN = 1, - NL80211_WMMR_CW_MAX = 2, - NL80211_WMMR_AIFSN = 3, - NL80211_WMMR_TXOP = 4, - __NL80211_WMMR_LAST = 5, - NL80211_WMMR_MAX = 4, -}; - -enum nl80211_sta_bss_param { - __NL80211_STA_BSS_PARAM_INVALID = 0, - NL80211_STA_BSS_PARAM_CTS_PROT = 1, - NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 2, - NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 3, - NL80211_STA_BSS_PARAM_DTIM_PERIOD = 4, - NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 5, - __NL80211_STA_BSS_PARAM_AFTER_LAST = 6, - NL80211_STA_BSS_PARAM_MAX = 5, -}; - -enum nl80211_pmksa_candidate_attr { - __NL80211_PMKSA_CANDIDATE_INVALID = 0, - NL80211_PMKSA_CANDIDATE_INDEX = 1, - NL80211_PMKSA_CANDIDATE_BSSID = 2, - NL80211_PMKSA_CANDIDATE_PREAUTH = 3, - NUM_NL80211_PMKSA_CANDIDATE = 4, - MAX_NL80211_PMKSA_CANDIDATE = 3, -}; - -struct key_parse { - struct key_params p; - int idx; - int type; - bool def; - bool defmgmt; - bool defbeacon; - bool def_uni; - bool def_multi; -}; - -struct nl80211_txrate_vht { - __u16 mcs[8]; -}; - -struct nl80211_txrate_he { - __u16 mcs[8]; -}; - -struct nl80211_dump_wiphy_state { - s64 filter_wiphy; - long start; - long split_start; - long band_start; - long chan_start; - long capa_start; - bool split; -}; - -struct nl80211_mlme_event { - enum nl80211_commands cmd; - const u8 *buf; - size_t buf_len; - int uapsd_queues; - const u8 *req_ies; - size_t req_ies_len; - bool reconnect; -}; - -struct get_key_cookie { - struct sk_buff *msg; - int error; - int idx; -}; - -struct nl80211_bss_select_rssi_adjust { - __u8 band; - __s8 delta; -}; - -struct nl80211_pattern_support { - __u32 max_patterns; - __u32 min_pattern_len; - __u32 max_pattern_len; - __u32 max_pkt_offset; -}; - -struct nl80211_coalesce_rule_support { - __u32 max_rules; - struct nl80211_pattern_support pat; - __u32 max_delay; -}; - -struct perf_pmu_format_hybrid_attr { - struct device_attribute attr; - u64 pmu_type; -}; - -enum pmc_type { - KVM_PMC_GP = 0, - KVM_PMC_FIXED = 1, -}; - -enum kvm_apic_logical_mode { - KVM_APIC_MODE_SW_DISABLED = 0, - KVM_APIC_MODE_XAPIC_CLUSTER = 1, - KVM_APIC_MODE_XAPIC_FLAT = 2, - KVM_APIC_MODE_X2APIC = 3, - KVM_APIC_MODE_MAP_DISABLED = 4, -}; - -enum kvm_irqchip_mode { - KVM_IRQCHIP_NONE = 0, - KVM_IRQCHIP_KERNEL = 1, - KVM_IRQCHIP_SPLIT = 2, -}; - -enum kvm_stat_kind { - KVM_STAT_VM = 0, - KVM_STAT_VCPU = 1, -}; - -struct kvm_vcpu; - -struct kvm_pmc { - enum pmc_type type; - u8 idx; - bool is_paused; - bool intr; - u64 counter; - u64 emulated_counter; - u64 eventsel; - struct perf_event *perf_event; - struct kvm_vcpu *vcpu; - u64 current_config; -}; - -struct kvm_pmu { - u8 version; - unsigned int nr_arch_gp_counters; - unsigned int nr_arch_fixed_counters; - unsigned int available_event_types; - u64 fixed_ctr_ctrl; - u64 fixed_ctr_ctrl_mask; - u64 global_ctrl; - u64 global_status; - u64 counter_bitmask[2]; - u64 global_ctrl_mask; - u64 global_status_mask; - u64 reserved_bits; - u64 raw_event_mask; - struct kvm_pmc gp_counters[8]; - struct kvm_pmc fixed_counters[3]; - union { - unsigned long reprogram_pmi[1]; - atomic64_t __reprogram_pmi; - }; - unsigned long all_valid_pmc_idx[1]; - unsigned long pmc_in_use[1]; - u64 ds_area; - u64 pebs_enable; - u64 pebs_enable_mask; - u64 pebs_data_cfg; - u64 pebs_data_cfg_mask; - u64 host_cross_mapped_mask; - bool need_cleanup; - u8 event_count; -}; - -typedef u64 gpa_t; - -struct kvm_mmio_fragment { - gpa_t gpa; - void *data; - unsigned int len; -}; - -struct kvm_lapic; - -struct kvm_page_fault; - -struct x86_exception; - -struct kvm_mmu_page; - -typedef u64 hpa_t; - -struct kvm_mmu_root_info { - gpa_t pgd; - hpa_t hpa; -}; - -union kvm_mmu_page_role { - u32 word; - struct { - unsigned int level: 4; - unsigned int has_4_byte_gpte: 1; - unsigned int quadrant: 2; - unsigned int direct: 1; - unsigned int access: 3; - unsigned int invalid: 1; - unsigned int efer_nx: 1; - unsigned int cr0_wp: 1; - unsigned int smep_andnot_wp: 1; - unsigned int smap_andnot_wp: 1; - unsigned int ad_disabled: 1; - unsigned int guest_mode: 1; - unsigned int passthrough: 1; - char: 5; - unsigned int smm: 8; - }; -}; - -union kvm_mmu_extended_role { - u32 word; - struct { - unsigned int valid: 1; - unsigned int execonly: 1; - unsigned int cr4_pse: 1; - unsigned int cr4_pke: 1; - unsigned int cr4_smap: 1; - unsigned int cr4_smep: 1; - unsigned int cr4_la57: 1; - unsigned int efer_lma: 1; - }; -}; - -union kvm_cpu_role { - u64 as_u64; - struct { - union kvm_mmu_page_role base; - union kvm_mmu_extended_role ext; - }; -}; - -struct rsvd_bits_validate { - u64 rsvd_bits_mask[10]; - u64 bad_mt_xwr; -}; - -struct kvm_mmu { - unsigned long (*get_guest_pgd)(struct kvm_vcpu *); - u64 (*get_pdptr)(struct kvm_vcpu *, int); - int (*page_fault)(struct kvm_vcpu *, struct kvm_page_fault *); - void (*inject_page_fault)(struct kvm_vcpu *, struct x86_exception *); - gpa_t (*gva_to_gpa)(struct kvm_vcpu *, struct kvm_mmu *, gpa_t, u64, struct x86_exception *); - int (*sync_spte)(struct kvm_vcpu *, struct kvm_mmu_page *, int); - struct kvm_mmu_root_info root; - union kvm_cpu_role cpu_role; - union kvm_mmu_page_role root_role; - u32 pkru_mask; - struct kvm_mmu_root_info prev_roots[3]; - u8 permissions[16]; - u64 *pae_root; - u64 *pml4_root; - u64 *pml5_root; - struct rsvd_bits_validate shadow_zero_check; - struct rsvd_bits_validate guest_rsvd_check; - u64 pdptrs[4]; -}; - -struct kvm_mmu_memory_cache { - gfp_t gfp_zero; - gfp_t gfp_custom; - struct kmem_cache *kmem_cache; - int capacity; - int nobjs; - void **objects; -}; - -struct fpu_guest { - u64 xfeatures; - u64 perm; - u64 xfd_err; - unsigned int uabi_size; - struct fpstate *fpstate; -}; - -struct kvm_pio_request { - unsigned long linear_rip; - unsigned long count; - int in; - int port; - int size; -}; - -struct kvm_queued_exception { - bool pending; - bool injected; - bool has_error_code; - u8 vector; - u32 error_code; - unsigned long payload; - bool has_payload; -}; - -struct kvm_queued_interrupt { - bool injected; - bool soft; - u8 nr; -}; - -struct kvm_hypervisor_cpuid { - u32 base; - u32 limit; -}; - -struct x86_emulate_ctxt; - -struct pvclock_vcpu_time_info { - u32 version; - u32 pad0; - u64 tsc_timestamp; - u64 system_time; - u32 tsc_to_system_mul; - s8 tsc_shift; - u8 flags; - u8 pad[2]; -}; - -typedef u64 hfn_t; - -typedef hfn_t kvm_pfn_t; - -struct kvm_memory_slot; - -struct kvm; - -struct gfn_to_pfn_cache { - u64 generation; - gpa_t gpa; - unsigned long uhva; - struct kvm_memory_slot *memslot; - struct kvm *kvm; - struct list_head list; - rwlock_t lock; - struct mutex refresh_lock; - void *khva; - kvm_pfn_t pfn; - bool active; - bool valid; -}; - -struct gfn_to_hva_cache { - u64 generation; - gpa_t gpa; - unsigned long hva; - unsigned long len; - struct kvm_memory_slot *memslot; -}; - -struct kvm_mtrr_range { - u64 base; - u64 mask; - struct list_head node; -}; - -struct kvm_mtrr { - struct kvm_mtrr_range var_ranges[8]; - mtrr_type fixed_ranges[88]; - u64 deftype; - struct list_head head; -}; - -typedef u64 gfn_t; - -struct kvm_cpuid_entry2; - -struct kvm_vcpu_arch { - unsigned long regs[17]; - u32 regs_avail; - u32 regs_dirty; - unsigned long cr0; - unsigned long cr0_guest_owned_bits; - unsigned long cr2; - unsigned long cr3; - unsigned long cr4; - unsigned long cr4_guest_owned_bits; - unsigned long cr4_guest_rsvd_bits; - unsigned long cr8; - u32 host_pkru; - u32 pkru; - u32 hflags; - u64 efer; - u64 apic_base; - struct kvm_lapic *apic; - bool load_eoi_exitmap_pending; - unsigned long ioapic_handled_vectors[4]; - unsigned long apic_attention; - int32_t apic_arb_prio; - int mp_state; - u64 ia32_misc_enable_msr; - u64 smbase; - u64 smi_count; - bool at_instruction_boundary; - bool tpr_access_reporting; - bool xfd_no_write_intercept; - u64 ia32_xss; - u64 microcode_version; - u64 arch_capabilities; - u64 perf_capabilities; - struct kvm_mmu *mmu; - struct kvm_mmu root_mmu; - struct kvm_mmu guest_mmu; - struct kvm_mmu nested_mmu; - struct kvm_mmu *walk_mmu; - struct kvm_mmu_memory_cache mmu_pte_list_desc_cache; - struct kvm_mmu_memory_cache mmu_shadow_page_cache; - struct kvm_mmu_memory_cache mmu_shadowed_info_cache; - struct kvm_mmu_memory_cache mmu_page_header_cache; - struct fpu_guest guest_fpu; - u64 xcr0; - u64 guest_supported_xcr0; - struct kvm_pio_request pio; - void *pio_data; - void *sev_pio_data; - unsigned int sev_pio_count; - u8 event_exit_inst_len; - bool exception_from_userspace; - struct kvm_queued_exception exception; - struct kvm_queued_exception exception_vmexit; - struct kvm_queued_interrupt interrupt; - int halt_request; - int cpuid_nent; - struct kvm_cpuid_entry2 *cpuid_entries; - struct kvm_hypervisor_cpuid kvm_cpuid; - struct { - unsigned long enabled[1]; - } governed_features; - u64 reserved_gpa_bits; - int maxphyaddr; - struct x86_emulate_ctxt *emulate_ctxt; - bool emulate_regs_need_sync_to_vcpu; - bool emulate_regs_need_sync_from_vcpu; - int (*complete_userspace_io)(struct kvm_vcpu *); - gpa_t time; - struct pvclock_vcpu_time_info hv_clock; - unsigned int hw_tsc_khz; - struct gfn_to_pfn_cache pv_time; - bool pvclock_set_guest_stopped_request; - struct { - u8 preempted; - u64 msr_val; - u64 last_steal; - struct gfn_to_hva_cache cache; - } st; - u64 l1_tsc_offset; - u64 tsc_offset; - u64 last_guest_tsc; - u64 last_host_tsc; - u64 tsc_offset_adjustment; - u64 this_tsc_nsec; - u64 this_tsc_write; - u64 this_tsc_generation; - bool tsc_catchup; - bool tsc_always_catchup; - s8 virtual_tsc_shift; - u32 virtual_tsc_mult; - u32 virtual_tsc_khz; - s64 ia32_tsc_adjust_msr; - u64 msr_ia32_power_ctl; - u64 l1_tsc_scaling_ratio; - u64 tsc_scaling_ratio; - atomic_t nmi_queued; - unsigned int nmi_pending; - bool nmi_injected; - bool smi_pending; - u8 handling_intr_from_guest; - struct kvm_mtrr mtrr_state; - u64 pat; - unsigned int switch_db_regs; - unsigned long db[4]; - unsigned long dr6; - unsigned long dr7; - unsigned long eff_db[4]; - unsigned long guest_debug_dr7; - u64 msr_platform_info; - u64 msr_misc_features_enables; - u64 mcg_cap; - u64 mcg_status; - u64 mcg_ctl; - u64 mcg_ext_ctl; - u64 *mce_banks; - u64 *mci_ctl2_banks; - u64 mmio_gva; - unsigned int mmio_access; - gfn_t mmio_gfn; - u64 mmio_gen; - struct kvm_pmu pmu; - unsigned long singlestep_rip; - cpumask_var_t wbinvd_dirty_mask; - unsigned long last_retry_eip; - unsigned long last_retry_addr; - struct { - bool halted; - gfn_t gfns[64]; - struct gfn_to_hva_cache data; - u64 msr_en_val; - u64 msr_int_val; - u16 vec; - u32 id; - bool send_user_only; - u32 host_apf_flags; - bool delivery_as_pf_vmexit; - bool pageready_pending; - } apf; - struct { - u64 length; - u64 status; - } osvw; - struct { - u64 msr_val; - struct gfn_to_hva_cache data; - } pv_eoi; - u64 msr_kvm_poll_control; - unsigned long exit_qualification; - struct { - bool pv_unhalted; - } pv; - int pending_ioapic_eoi; - int pending_external_vector; - bool preempted_in_kernel; - bool l1tf_flush_l1d; - int last_vmentry_cpu; - u64 msr_hwcr; - struct { - u32 features; - bool enforce; - } pv_cpuid; - bool guest_state_protected; - bool pdptrs_from_userspace; -}; - -struct kvm_vcpu_stat_generic { - u64 halt_successful_poll; - u64 halt_attempted_poll; - u64 halt_poll_invalid; - u64 halt_wakeup; - u64 halt_poll_success_ns; - u64 halt_poll_fail_ns; - u64 halt_wait_ns; - u64 halt_poll_success_hist[32]; - u64 halt_poll_fail_hist[32]; - u64 halt_wait_hist[32]; - u64 blocking; -}; - -struct kvm_vcpu_stat { - struct kvm_vcpu_stat_generic generic; - u64 pf_taken; - u64 pf_fixed; - u64 pf_emulate; - u64 pf_spurious; - u64 pf_fast; - u64 pf_mmio_spte_created; - u64 pf_guest; - u64 tlb_flush; - u64 invlpg; - u64 exits; - u64 io_exits; - u64 mmio_exits; - u64 signal_exits; - u64 irq_window_exits; - u64 nmi_window_exits; - u64 l1d_flush; - u64 halt_exits; - u64 request_irq_exits; - u64 irq_exits; - u64 host_state_reload; - u64 fpu_reload; - u64 insn_emulation; - u64 insn_emulation_fail; - u64 hypercalls; - u64 irq_injections; - u64 nmi_injections; - u64 req_event; - u64 nested_run; - u64 directed_yield_attempted; - u64 directed_yield_successful; - u64 preemption_reported; - u64 preemption_other; - u64 guest_mode; - u64 notify_window_exits; -}; - -struct kvm_dirty_gfn; - -struct kvm_dirty_ring { - u32 dirty_index; - u32 reset_index; - u32 size; - u32 soft_limit; - struct kvm_dirty_gfn *dirty_gfns; - int index; -}; - -struct kvm_run; - -struct kvm_vcpu { - struct kvm *kvm; - int cpu; - int vcpu_id; - int vcpu_idx; - int ____srcu_idx; - int srcu_depth; - int mode; - u64 requests; - unsigned long guest_debug; - struct mutex mutex; - struct kvm_run *run; - struct rcuwait wait; - struct pid __attribute__((btf_type_tag("rcu"))) *pid; - int sigset_active; - sigset_t sigset; - unsigned int halt_poll_ns; - bool valid_wakeup; - int mmio_needed; - int mmio_read_completed; - int mmio_is_write; - int mmio_cur_fragment; - int mmio_nr_fragments; - struct kvm_mmio_fragment mmio_fragments[2]; - bool preempted; - bool ready; - struct kvm_vcpu_arch arch; - struct kvm_vcpu_stat stat; - char stats_id[48]; - struct kvm_dirty_ring dirty_ring; - struct kvm_memory_slot *last_used_slot; - u64 last_used_slot_gen; -}; - -struct kvm_memslots { - u64 generation; - atomic_long_t last_used_slot; - struct rb_root_cached hva_tree; - struct rb_root gfn_tree; - struct hlist_head id_hash[128]; - int node_idx; -}; - -struct kvm_vm_stat_generic { - u64 remote_tlb_flush; - u64 remote_tlb_flush_requests; -}; - -struct kvm_vm_stat { - struct kvm_vm_stat_generic generic; - u64 mmu_shadow_zapped; - u64 mmu_pte_write; - u64 mmu_pde_zapped; - u64 mmu_flooded; - u64 mmu_recycled; - u64 mmu_cache_miss; - u64 mmu_unsync; - union { - struct { - atomic64_t pages_4k; - atomic64_t pages_2m; - atomic64_t pages_1g; - }; - atomic64_t pages[3]; - }; - u64 nx_lpage_splits; - u64 max_mmu_page_hash_collisions; - u64 max_mmu_rmap_size; -}; - -struct iommu_domain; - -struct kvm_pic; - -struct kvm_ioapic; - -struct kvm_pit; - -struct kvm_xen_hvm_config { - __u32 flags; - __u32 msr; - __u64 blob_addr_32; - __u64 blob_addr_64; - __u8 blob_size_32; - __u8 blob_size_64; - __u8 pad2[30]; -}; - -struct kvm_apic_map; - -struct kvm_x86_msr_filter; - -struct kvm_x86_pmu_event_filter; - -struct kvm_arch { - unsigned long vm_type; - unsigned long n_used_mmu_pages; - unsigned long n_requested_mmu_pages; - unsigned long n_max_mmu_pages; - unsigned int indirect_shadow_pages; - u8 mmu_valid_gen; - struct hlist_head mmu_page_hash[4096]; - struct list_head active_mmu_pages; - struct list_head zapped_obsolete_pages; - struct list_head possible_nx_huge_pages; - spinlock_t mmu_unsync_pages_lock; - struct iommu_domain *iommu_domain; - bool iommu_noncoherent; - atomic_t noncoherent_dma_count; - atomic_t assigned_device_count; - struct kvm_pic *vpic; - struct kvm_ioapic *vioapic; - struct kvm_pit *vpit; - atomic_t vapics_in_nmi_mode; - struct mutex apic_map_lock; - struct kvm_apic_map __attribute__((btf_type_tag("rcu"))) *apic_map; - atomic_t apic_map_dirty; - bool apic_access_memslot_enabled; - bool apic_access_memslot_inhibited; - struct rw_semaphore apicv_update_lock; - unsigned long apicv_inhibit_reasons; - gpa_t wall_clock; - bool mwait_in_guest; - bool hlt_in_guest; - bool pause_in_guest; - bool cstate_in_guest; - unsigned long irq_sources_bitmap; - s64 kvmclock_offset; - raw_spinlock_t tsc_write_lock; - u64 last_tsc_nsec; - u64 last_tsc_write; - u32 last_tsc_khz; - u64 last_tsc_offset; - u64 cur_tsc_nsec; - u64 cur_tsc_write; - u64 cur_tsc_offset; - u64 cur_tsc_generation; - int nr_vcpus_matched_tsc; - u32 default_tsc_khz; - bool user_set_tsc; - seqcount_raw_spinlock_t pvclock_sc; - bool use_master_clock; - u64 master_kernel_ns; - u64 master_cycle_now; - struct delayed_work kvmclock_update_work; - struct delayed_work kvmclock_sync_work; - struct kvm_xen_hvm_config xen_hvm_config; - struct hlist_head mask_notifier_list; - bool backwards_tsc_observed; - bool boot_vcpu_runs_old_kvmclock; - u32 bsp_vcpu_id; - u64 disabled_quirks; - enum kvm_irqchip_mode irqchip_mode; - u8 nr_reserved_ioapic_pins; - bool disabled_lapic_found; - bool x2apic_format; - bool x2apic_broadcast_quirk_disabled; - bool guest_can_read_msr_platform_info; - bool exception_payload_enabled; - bool triple_fault_event; - bool bus_lock_detection_enabled; - bool enable_pmu; - u32 notify_window; - u32 notify_vmexit_flags; - bool exit_on_emulation_error; - u32 user_space_msr_mask; - struct kvm_x86_msr_filter __attribute__((btf_type_tag("rcu"))) *msr_filter; - u32 hypercall_exit_enabled; - bool sgx_provisioning_allowed; - struct kvm_x86_pmu_event_filter __attribute__((btf_type_tag("rcu"))) *pmu_event_filter; - struct task_struct *nx_huge_page_recovery_thread; - atomic64_t tdp_mmu_pages; - struct list_head tdp_mmu_roots; - spinlock_t tdp_mmu_pages_lock; - bool shadow_root_allocated; - u32 max_vcpu_ids; - bool disable_nx_huge_pages; - struct kvm_mmu_memory_cache split_shadow_page_cache; - struct kvm_mmu_memory_cache split_page_header_cache; - struct kvm_mmu_memory_cache split_desc_cache; -}; - -struct kvm_io_bus; - -struct kvm_stat_data; - -struct kvm { - rwlock_t mmu_lock; - struct mutex slots_lock; - struct mutex slots_arch_lock; - struct mm_struct *mm; - unsigned long nr_memslot_pages; - struct kvm_memslots __memslots[2]; - struct kvm_memslots __attribute__((btf_type_tag("rcu"))) *memslots[1]; - struct xarray vcpu_array; - atomic_t nr_memslots_dirty_logging; - spinlock_t mn_invalidate_lock; - unsigned long mn_active_invalidate_count; - struct rcuwait mn_memslots_update_rcuwait; - spinlock_t gpc_lock; - struct list_head gpc_list; - atomic_t online_vcpus; - int max_vcpus; - int created_vcpus; - int last_boosted_vcpu; - struct list_head vm_list; - struct mutex lock; - struct kvm_io_bus __attribute__((btf_type_tag("rcu"))) *buses[4]; - struct list_head ioeventfds; - struct kvm_vm_stat stat; - struct kvm_arch arch; - refcount_t users_count; - struct mutex irq_lock; - struct list_head devices; - u64 manual_dirty_log_protect; - struct dentry *debugfs_dentry; - struct kvm_stat_data **debugfs_stat_data; - struct srcu_struct srcu; - struct srcu_struct irq_srcu; - pid_t userspace_pid; - bool override_halt_poll_ns; - unsigned int max_halt_poll_ns; - u32 dirty_ring_size; - bool dirty_ring_with_bitmap; - bool vm_bugged; - bool vm_dead; - char stats_id[48]; -}; - -struct kvm_io_device; - -struct kvm_io_range { - gpa_t addr; - int len; - struct kvm_io_device *dev; -}; - -struct kvm_io_bus { - int dev_count; - int ioeventfd_count; - struct kvm_io_range range[0]; -}; - -struct kvm_apic_map { - struct callback_head rcu; - enum kvm_apic_logical_mode logical_mode; - u32 max_apic_id; - union { - struct kvm_lapic *xapic_flat_map[8]; - struct kvm_lapic *xapic_cluster_map[64]; - }; - struct kvm_lapic *phys_map[0]; -}; - -struct msr_bitmap_range { - u32 flags; - u32 nmsrs; - u32 base; - unsigned long *bitmap; -}; - -struct kvm_x86_msr_filter { - u8 count; - bool default_allow: 1; - struct msr_bitmap_range ranges[16]; +struct ipt_standard { + struct ipt_entry entry; + struct xt_standard_target target; }; -struct kvm_x86_pmu_event_filter { - __u32 action; - __u32 nevents; - __u32 fixed_counter_bitmap; - __u32 flags; - __u32 nr_includes; - __u32 nr_excludes; - __u64 *includes; - __u64 *excludes; - __u64 events[0]; -}; - -struct _kvm_stats_desc; - -struct kvm_stat_data { - struct kvm *kvm; - const struct _kvm_stats_desc *desc; - enum kvm_stat_kind kind; -}; - -struct kvm_stats_desc { - __u32 flags; - __s16 exponent; - __u16 size; - __u32 offset; - __u32 bucket_size; - char name[0]; -}; - -struct _kvm_stats_desc { - struct kvm_stats_desc desc; - char name[48]; -}; - -struct kvm_debug_exit_arch { - __u32 exception; - __u32 pad; - __u64 pc; - __u64 dr6; - __u64 dr7; -}; - -struct kvm_hyperv_exit { - __u32 type; - __u32 pad1; - union { - struct { - __u32 msr; - __u32 pad2; - __u64 control; - __u64 evt_page; - __u64 msg_page; - } synic; - struct { - __u64 input; - __u64 result; - __u64 params[2]; - } hcall; - struct { - __u32 msr; - __u32 pad2; - __u64 control; - __u64 status; - __u64 send_page; - __u64 recv_page; - __u64 pending_page; - } syndbg; - } u; -}; - -struct kvm_xen_exit { - __u32 type; - union { - struct { - __u32 longmode; - __u32 cpl; - __u64 input; - __u64 result; - __u64 params[6]; - } hcall; - } u; -}; - -struct kvm_regs { - __u64 rax; - __u64 rbx; - __u64 rcx; - __u64 rdx; - __u64 rsi; - __u64 rdi; - __u64 rsp; - __u64 rbp; - __u64 r8; - __u64 r9; - __u64 r10; - __u64 r11; - __u64 r12; - __u64 r13; - __u64 r14; - __u64 r15; - __u64 rip; - __u64 rflags; -}; - -struct kvm_segment { - __u64 base; - __u32 limit; - __u16 selector; - __u8 type; - __u8 present; - __u8 dpl; - __u8 db; - __u8 s; - __u8 l; - __u8 g; - __u8 avl; - __u8 unusable; - __u8 padding; -}; - -struct kvm_dtable { - __u64 base; - __u16 limit; - __u16 padding[3]; -}; - -struct kvm_sregs { - struct kvm_segment cs; - struct kvm_segment ds; - struct kvm_segment es; - struct kvm_segment fs; - struct kvm_segment gs; - struct kvm_segment ss; - struct kvm_segment tr; - struct kvm_segment ldt; - struct kvm_dtable gdt; - struct kvm_dtable idt; - __u64 cr0; - __u64 cr2; - __u64 cr3; - __u64 cr4; - __u64 cr8; - __u64 efer; - __u64 apic_base; - __u64 interrupt_bitmap[4]; -}; - -struct kvm_vcpu_events { - struct { - __u8 injected; - __u8 nr; - __u8 has_error_code; - __u8 pending; - __u32 error_code; - } exception; - struct { - __u8 injected; - __u8 nr; - __u8 soft; - __u8 shadow; - } interrupt; - struct { - __u8 injected; - __u8 pending; - __u8 masked; - __u8 pad; - } nmi; - __u32 sipi_vector; - __u32 flags; - struct { - __u8 smm; - __u8 pending; - __u8 smm_inside_nmi; - __u8 latched_init; - } smi; - struct { - __u8 pending; - } triple_fault; - __u8 reserved[26]; - __u8 exception_has_payload; - __u64 exception_payload; -}; - -struct kvm_sync_regs { - struct kvm_regs regs; - struct kvm_sregs sregs; - struct kvm_vcpu_events events; -}; - -struct kvm_run { - __u8 request_interrupt_window; - __u8 immediate_exit; - __u8 padding1[6]; - __u32 exit_reason; - __u8 ready_for_interrupt_injection; - __u8 if_flag; - __u16 flags; - __u64 cr8; - __u64 apic_base; - union { - struct { - __u64 hardware_exit_reason; - } hw; - struct { - __u64 hardware_entry_failure_reason; - __u32 cpu; - } fail_entry; - struct { - __u32 exception; - __u32 error_code; - } ex; - struct { - __u8 direction; - __u8 size; - __u16 port; - __u32 count; - __u64 data_offset; - } io; - struct { - struct kvm_debug_exit_arch arch; - } debug; - struct { - __u64 phys_addr; - __u8 data[8]; - __u32 len; - __u8 is_write; - } mmio; - struct { - __u64 phys_addr; - __u8 data[8]; - __u32 len; - __u8 is_write; - } iocsr_io; - struct { - __u64 nr; - __u64 args[6]; - __u64 ret; - union { - __u64 flags; - }; - } hypercall; - struct { - __u64 rip; - __u32 is_write; - __u32 pad; - } tpr_access; - struct { - __u8 icptcode; - __u16 ipa; - __u32 ipb; - } s390_sieic; - __u64 s390_reset_flags; - struct { - __u64 trans_exc_code; - __u32 pgm_code; - } s390_ucontrol; - struct { - __u32 dcrn; - __u32 data; - __u8 is_write; - } dcr; - struct { - __u32 suberror; - __u32 ndata; - __u64 data[16]; - } internal; - struct { - __u32 suberror; - __u32 ndata; - __u64 flags; - union { - struct { - __u8 insn_size; - __u8 insn_bytes[15]; - }; - }; - } emulation_failure; - struct { - __u64 gprs[32]; - } osi; - struct { - __u64 nr; - __u64 ret; - __u64 args[9]; - } papr_hcall; - struct { - __u16 subchannel_id; - __u16 subchannel_nr; - __u32 io_int_parm; - __u32 io_int_word; - __u32 ipb; - __u8 dequeued; - } s390_tsch; - struct { - __u32 epr; - } epr; - struct { - __u32 type; - __u32 ndata; - union { - __u64 data[16]; - }; - } system_event; - struct { - __u64 addr; - __u8 ar; - __u8 reserved; - __u8 fc; - __u8 sel1; - __u16 sel2; - } s390_stsi; - struct { - __u8 vector; - } eoi; - struct kvm_hyperv_exit hyperv; - struct { - __u64 esr_iss; - __u64 fault_ipa; - } arm_nisv; - struct { - __u8 error; - __u8 pad[7]; - __u32 reason; - __u32 index; - __u64 data; - } msr; - struct kvm_xen_exit xen; - struct { - unsigned long extension_id; - unsigned long function_id; - unsigned long args[6]; - unsigned long ret[2]; - } riscv_sbi; - struct { - unsigned long csr_num; - unsigned long new_value; - unsigned long write_mask; - unsigned long ret_value; - } riscv_csr; - struct { - __u32 flags; - } notify; - struct { - __u64 flags; - __u64 gpa; - __u64 size; - } memory_fault; - char padding[256]; - }; - __u64 kvm_valid_regs; - __u64 kvm_dirty_regs; - union { - struct kvm_sync_regs regs; - char padding[2048]; - } s; -}; - -struct kvm_cpuid_entry2 { - __u32 function; - __u32 index; - __u32 flags; - __u32 eax; - __u32 ebx; - __u32 ecx; - __u32 edx; - __u32 padding[3]; -}; - -struct interval_tree_node { - struct rb_node rb; - unsigned long start; - unsigned long last; - unsigned long __subtree_last; -}; - -struct kvm_rmap_head; - -struct kvm_lpage_info; - -struct kvm_arch_memory_slot { - struct kvm_rmap_head *rmap[3]; - struct kvm_lpage_info *lpage_info[2]; - unsigned short *gfn_write_track; -}; - -struct kvm_memory_slot { - struct hlist_node id_node[2]; - struct interval_tree_node hva_node[2]; - struct rb_node gfn_node[2]; - gfn_t base_gfn; - unsigned long npages; - unsigned long *dirty_bitmap; - struct kvm_arch_memory_slot arch; - unsigned long userspace_addr; - u32 flags; - short id; - u16 as_id; -}; - -struct kvm_rmap_head { - unsigned long val; -}; - -struct kvm_lpage_info { - int disallow_lpage; -}; - -struct kvm_dirty_gfn { - __u32 flags; - __u32 slot; - __u64 offset; -}; - -typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int); - -typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); - -typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); - -typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *); - -typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *); - -struct ext4_filename { - const struct qstr *usr_fname; - struct fscrypt_str disk_name; - struct dx_hash_info hinfo; -}; - -struct fat_cache { - struct list_head cache_list; - int nr_contig; - int fcluster; - int dcluster; -}; - -struct fat_cache_id { - unsigned int id; - int nr_contig; - int fcluster; - int dcluster; -}; - -enum { - SOCKET_URING_OP_SIOCINQ = 0, - SOCKET_URING_OP_SIOCOUTQ = 1, - SOCKET_URING_OP_GETSOCKOPT = 2, - SOCKET_URING_OP_SETSOCKOPT = 3, -}; - -enum { - ACPI_GENL_CMD_UNSPEC = 0, - ACPI_GENL_CMD_EVENT = 1, - __ACPI_GENL_CMD_MAX = 2, -}; - -enum { - ACPI_GENL_ATTR_UNSPEC = 0, - ACPI_GENL_ATTR_EVENT = 1, - __ACPI_GENL_ATTR_MAX = 2, -}; - -struct acpi_bus_event { - struct list_head node; - acpi_device_class device_class; - acpi_bus_id bus_id; - u32 type; - u32 data; -}; - -struct acpi_genl_event { - acpi_device_class device_class; - char bus_id[15]; - u32 type; - u32 data; -}; - -struct dw8250_port_data { - int line; - struct uart_8250_dma dma; - u8 dlf_size; - bool hw_rs485_support; -}; - -struct dw8250_platform_data; - -struct dw8250_data { - struct dw8250_port_data data; - const struct dw8250_platform_data *pdata; - int msr_mask_on; - int msr_mask_off; - struct clk *clk; - struct clk *pclk; - struct notifier_block clk_notifier; - struct work_struct clk_work; - struct reset_control *rst; - unsigned int skip_autocfg: 1; - unsigned int uart_16550_compatible: 1; -}; - -struct dw8250_platform_data { - u8 usr_reg; - u32 cpr_val; - unsigned int quirks; -}; - -struct sg_scatter_hold { - unsigned short k_use_sg; - unsigned int sglist_len; - unsigned int bufflen; - struct page **pages; - int page_order; - char dio_in_use; - unsigned char cmd_opcode; -}; - -typedef struct sg_scatter_hold Sg_scatter_hold; - -typedef struct sg_io_hdr sg_io_hdr_t; - -struct sg_fd; - -struct sg_request { - struct list_head entry; - struct sg_fd *parentfp; - Sg_scatter_hold data; - sg_io_hdr_t header; - unsigned char sense_b[96]; - char res_used; - char orphan; - char sg_io_owned; - char done; - struct request *rq; - struct bio *bio; - struct execute_work ew; -}; - -typedef struct sg_request Sg_request; - -struct sg_device; - -struct sg_fd { - struct list_head sfd_siblings; - struct sg_device *parentdp; - wait_queue_head_t read_wait; - rwlock_t rq_list_lock; - struct mutex f_mutex; - int timeout; - int timeout_user; - Sg_scatter_hold reserve; - struct list_head rq_list; - struct fasync_struct *async_qp; - Sg_request req_arr[16]; - char force_packid; - char cmd_q; - unsigned char next_cmd_len; - char keep_orphan; - char mmap_called; - char res_in_use; - struct kref f_ref; - struct execute_work ew; -}; - -typedef struct sg_fd Sg_fd; - -struct sg_device { - struct scsi_device *device; - wait_queue_head_t open_wait; - struct mutex open_rel_lock; - int sg_tablesize; - u32 index; - struct list_head sfds; - rwlock_t sfd_lock; - atomic_t detaching; - bool exclude; - int open_cnt; - char sgdebug; +struct ipt_getinfo { char name[32]; - struct cdev *cdev; - struct kref d_ref; -}; - -typedef struct sg_device Sg_device; - -struct sg_header { - int pack_len; - int reply_len; - int pack_id; - int result; - unsigned int twelve_byte: 1; - unsigned int target_status: 5; - unsigned int host_status: 8; - unsigned int driver_status: 8; - unsigned int other_flags: 10; - unsigned char sense_buffer[16]; -}; - -struct compat_sg_io_hdr { - compat_int_t interface_id; - compat_int_t dxfer_direction; - unsigned char cmd_len; - unsigned char mx_sb_len; - unsigned short iovec_count; - compat_uint_t dxfer_len; - compat_uint_t dxferp; - compat_uptr_t cmdp; - compat_uptr_t sbp; - compat_uint_t timeout; - compat_uint_t flags; - compat_int_t pack_id; - compat_uptr_t usr_ptr; - unsigned char status; - unsigned char masked_status; - unsigned char msg_status; - unsigned char sb_len_wr; - unsigned short host_status; - unsigned short driver_status; - compat_int_t resid; - compat_uint_t duration; - compat_uint_t info; -}; - -struct sg_scsi_id { - int host_no; - int channel; - int scsi_id; - int lun; - int scsi_type; - short h_cmd_per_lun; - short d_queue_depth; - int unused[2]; -}; - -typedef struct sg_scsi_id sg_scsi_id_t; - -struct sg_req_info { - char req_state; - char orphan; - char sg_io_owned; - char problem; - int pack_id; - void __attribute__((btf_type_tag("user"))) *usr_ptr; - unsigned int duration; - int unused; -}; - -typedef struct sg_req_info sg_req_info_t; - -enum ieee80211_min_mpdu_spacing { - IEEE80211_HT_MPDU_DENSITY_NONE = 0, - IEEE80211_HT_MPDU_DENSITY_0_25 = 1, - IEEE80211_HT_MPDU_DENSITY_0_5 = 2, - IEEE80211_HT_MPDU_DENSITY_1 = 3, - IEEE80211_HT_MPDU_DENSITY_2 = 4, - IEEE80211_HT_MPDU_DENSITY_4 = 5, - IEEE80211_HT_MPDU_DENSITY_8 = 6, - IEEE80211_HT_MPDU_DENSITY_16 = 7, -}; - -enum eeprom_sku_bits { - EEPROM_SKU_CAP_BAND_24GHZ = 16, - EEPROM_SKU_CAP_BAND_52GHZ = 32, - EEPROM_SKU_CAP_11N_ENABLE = 64, - EEPROM_SKU_CAP_AMT_ENABLE = 128, - EEPROM_SKU_CAP_IPAN_ENABLE = 256, -}; - -enum iwl_eeprom_channel_flags { - EEPROM_CHANNEL_VALID = 1, - EEPROM_CHANNEL_IBSS = 2, - EEPROM_CHANNEL_ACTIVE = 8, - EEPROM_CHANNEL_RADAR = 16, - EEPROM_CHANNEL_WIDE = 32, - EEPROM_CHANNEL_DFS = 128, -}; - -enum iwl_eeprom_enhanced_txpwr_flags { - IWL_EEPROM_ENH_TXP_FL_VALID = 1, - IWL_EEPROM_ENH_TXP_FL_BAND_52G = 2, - IWL_EEPROM_ENH_TXP_FL_OFDM = 4, - IWL_EEPROM_ENH_TXP_FL_40MHZ = 8, - IWL_EEPROM_ENH_TXP_FL_HT_AP = 16, - IWL_EEPROM_ENH_TXP_FL_RES1 = 32, - IWL_EEPROM_ENH_TXP_FL_RES2 = 64, - IWL_EEPROM_ENH_TXP_FL_COMMON_TYPE = 128, -}; - -struct iwl_eeprom_calib_hdr { - u8 version; - u8 pa_type; - __le16 voltage; -}; - -struct iwl_eeprom_channel { - u8 flags; - s8 max_power_avg; -}; - -struct iwl_eeprom_enhanced_txpwr { - u8 flags; - u8 channel; - s8 chain_a_max; - s8 chain_b_max; - s8 chain_c_max; - u8 delta_20_in_40; - s8 mimo2_max; - s8 mimo3_max; -}; - -enum mce_kbd_state { - STATE_INACTIVE___4 = 0, - STATE_HEADER_BIT_START = 1, - STATE_HEADER_BIT_END = 2, - STATE_BODY_BIT_START = 3, - STATE_BODY_BIT_END = 4, - STATE_FINISHED___2 = 5, -}; - -enum mce_kbd_mode { - MCIR2_MODE_KEYBOARD = 0, - MCIR2_MODE_MOUSE = 1, - MCIR2_MODE_UNKNOWN = 2, -}; - -struct pcc_chan_reg { - void *vaddr; - struct acpi_generic_address *gas; - u64 preserve_mask; - u64 set_mask; - u64 status_mask; -}; - -struct pcc_chan_info { - struct pcc_mbox_chan chan; - struct pcc_chan_reg db; - struct pcc_chan_reg plat_irq_ack; - struct pcc_chan_reg cmd_complete; - struct pcc_chan_reg cmd_update; - struct pcc_chan_reg error; - int plat_irq; - u8 type; - unsigned int plat_irq_flags; - bool chan_in_use; -}; - -enum acpi_pcct_type { - ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0, - ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1, - ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, - ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3, - ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4, - ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5, - ACPI_PCCT_TYPE_RESERVED = 6, -}; - -struct acpi_pcct_subspace { - struct acpi_subtable_header header; - u8 reserved[6]; - u64 base_address; - u64 length; - struct acpi_generic_address doorbell_register; - u64 preserve_mask; - u64 write_mask; - u32 latency; - u32 max_access_rate; - u16 min_turnaround_time; -} __attribute__((packed)); - -struct acpi_table_pcct { - struct acpi_table_header header; - u32 flags; - u64 reserved; -}; - -struct acpi_pcct_hw_reduced { - struct acpi_subtable_header header; - u32 platform_interrupt; - u8 flags; - u8 reserved; - u64 base_address; - u64 length; - struct acpi_generic_address doorbell_register; - u64 preserve_mask; - u64 write_mask; - u32 latency; - u32 max_access_rate; - u16 min_turnaround_time; -} __attribute__((packed)); - -struct acpi_pcct_ext_pcc_master { - struct acpi_subtable_header header; - u32 platform_interrupt; - u8 flags; - u8 reserved1; - u64 base_address; - u32 length; - struct acpi_generic_address doorbell_register; - u64 preserve_mask; - u64 write_mask; - u32 latency; - u32 max_access_rate; - u32 min_turnaround_time; - struct acpi_generic_address platform_ack_register; - u64 ack_preserve_mask; - u64 ack_set_mask; - u64 reserved2; - struct acpi_generic_address cmd_complete_register; - u64 cmd_complete_mask; - struct acpi_generic_address cmd_update_register; - u64 cmd_update_preserve_mask; - u64 cmd_update_set_mask; - struct acpi_generic_address error_status_register; - u64 error_status_mask; -} __attribute__((packed)); - -struct acpi_pcct_hw_reduced_type2 { - struct acpi_subtable_header header; - u32 platform_interrupt; - u8 flags; - u8 reserved; - u64 base_address; - u64 length; - struct acpi_generic_address doorbell_register; - u64 preserve_mask; - u64 write_mask; - u32 latency; - u32 max_access_rate; - u16 min_turnaround_time; - struct acpi_generic_address platform_ack_register; - u64 ack_preserve_mask; - u64 ack_write_mask; -} __attribute__((packed)); - -struct sock_diag_handler { - struct module *owner; - __u8 family; - int (*dump)(struct sk_buff *, struct nlmsghdr *); - int (*get_info)(struct sk_buff *, struct sock *); - int (*destroy)(struct sk_buff *, struct nlmsghdr *); -}; - -struct sock_diag_inet_compat { - struct module *owner; - int (*fn)(struct sk_buff *, struct nlmsghdr *); -}; - -struct broadcast_sk { - struct sock *sk; - struct work_struct work; -}; - -struct sock_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; -}; - -enum { - ETHTOOL_A_PAUSE_UNSPEC = 0, - ETHTOOL_A_PAUSE_HEADER = 1, - ETHTOOL_A_PAUSE_AUTONEG = 2, - ETHTOOL_A_PAUSE_RX = 3, - ETHTOOL_A_PAUSE_TX = 4, - ETHTOOL_A_PAUSE_STATS = 5, - ETHTOOL_A_PAUSE_STATS_SRC = 6, - __ETHTOOL_A_PAUSE_CNT = 7, - ETHTOOL_A_PAUSE_MAX = 6, -}; - -enum { - ETHTOOL_A_PAUSE_STAT_UNSPEC = 0, - ETHTOOL_A_PAUSE_STAT_PAD = 1, - ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2, - ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3, - __ETHTOOL_A_PAUSE_STAT_CNT = 4, - ETHTOOL_A_PAUSE_STAT_MAX = 3, -}; - -struct pause_req_info { - struct ethnl_req_info base; - enum ethtool_mac_stats_src src; -}; - -struct pause_reply_data { - struct ethnl_reply_data base; - struct ethtool_pauseparam pauseparam; - struct ethtool_pause_stats pausestat; -}; - -struct devinet_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table devinet_vars[34]; -}; - -enum { - IFA_UNSPEC = 0, - IFA_ADDRESS = 1, - IFA_LOCAL = 2, - IFA_LABEL = 3, - IFA_BROADCAST = 4, - IFA_ANYCAST = 5, - IFA_CACHEINFO = 6, - IFA_MULTICAST = 7, - IFA_FLAGS = 8, - IFA_RT_PRIORITY = 9, - IFA_TARGET_NETNSID = 10, - IFA_PROTO = 11, - __IFA_MAX = 12, -}; - -enum { - NETCONFA_UNSPEC = 0, - NETCONFA_IFINDEX = 1, - NETCONFA_FORWARDING = 2, - NETCONFA_RP_FILTER = 3, - NETCONFA_MC_FORWARDING = 4, - NETCONFA_PROXY_NEIGH = 5, - NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN = 6, - NETCONFA_INPUT = 7, - NETCONFA_BC_FORWARDING = 8, - __NETCONFA_MAX = 9, -}; - -enum { - IFLA_INET_UNSPEC = 0, - IFLA_INET_CONF = 1, - __IFLA_INET_MAX = 2, -}; - -struct ifaddrmsg { - __u8 ifa_family; - __u8 ifa_prefixlen; - __u8 ifa_flags; - __u8 ifa_scope; - __u32 ifa_index; -}; - -struct ifa_cacheinfo { - __u32 ifa_prefered; - __u32 ifa_valid; - __u32 cstamp; - __u32 tstamp; -}; - -struct inet_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; -}; - -struct netconfmsg { - __u8 ncm_family; -}; - -struct in_validator_info { - __be32 ivi_addr; - struct in_device *ivi_dev; - struct netlink_ext_ack *extack; -}; - -struct mcs_group___2 { - u8 shift; - u16 duration[12]; -}; - -typedef void (*btf_trace_local_timer_entry)(void *, int); - -typedef void (*btf_trace_local_timer_exit)(void *, int); - -typedef void (*btf_trace_spurious_apic_entry)(void *, int); - -typedef void (*btf_trace_spurious_apic_exit)(void *, int); - -typedef void (*btf_trace_error_apic_entry)(void *, int); - -typedef void (*btf_trace_error_apic_exit)(void *, int); - -typedef void (*btf_trace_x86_platform_ipi_entry)(void *, int); - -typedef void (*btf_trace_x86_platform_ipi_exit)(void *, int); - -typedef void (*btf_trace_irq_work_entry)(void *, int); - -typedef void (*btf_trace_irq_work_exit)(void *, int); - -typedef void (*btf_trace_reschedule_entry)(void *, int); - -typedef void (*btf_trace_reschedule_exit)(void *, int); - -typedef void (*btf_trace_call_function_entry)(void *, int); - -typedef void (*btf_trace_call_function_exit)(void *, int); - -typedef void (*btf_trace_call_function_single_entry)(void *, int); - -typedef void (*btf_trace_call_function_single_exit)(void *, int); - -typedef void (*btf_trace_thermal_apic_entry)(void *, int); - -typedef void (*btf_trace_thermal_apic_exit)(void *, int); - -typedef void (*btf_trace_vector_config)(void *, unsigned int, unsigned int, unsigned int, unsigned int); - -typedef void (*btf_trace_vector_update)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); - -typedef void (*btf_trace_vector_clear)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); - -typedef void (*btf_trace_vector_reserve_managed)(void *, unsigned int, int); - -typedef void (*btf_trace_vector_reserve)(void *, unsigned int, int); - -typedef void (*btf_trace_vector_alloc)(void *, unsigned int, unsigned int, bool, int); - -typedef void (*btf_trace_vector_alloc_managed)(void *, unsigned int, unsigned int, int); - -typedef void (*btf_trace_vector_activate)(void *, unsigned int, bool, bool, bool); - -typedef void (*btf_trace_vector_deactivate)(void *, unsigned int, bool, bool, bool); - -typedef void (*btf_trace_vector_teardown)(void *, unsigned int, bool, bool); - -typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int); - -typedef void (*btf_trace_vector_free_moved)(void *, unsigned int, unsigned int, unsigned int, bool); - -typedef struct { - unsigned int __nmi_count; - unsigned int apic_timer_irqs; - unsigned int irq_spurious_count; - unsigned int icr_read_retry_count; - unsigned int x86_platform_ipis; - unsigned int apic_perf_irqs; - unsigned int apic_irq_work_irqs; - unsigned int irq_resched_count; - unsigned int irq_call_count; - unsigned int irq_tlb_count; - unsigned int irq_thermal_count; - long: 64; - long: 64; -} irq_cpustat_t; - -struct trace_event_raw_x86_irq_vector { - struct trace_entry ent; - int vector; - char __data[0]; -}; - -struct trace_event_raw_vector_config { - struct trace_entry ent; - unsigned int irq; - unsigned int vector; - unsigned int cpu; - unsigned int apicdest; - char __data[0]; -}; - -struct trace_event_raw_vector_mod { - struct trace_entry ent; - unsigned int irq; - unsigned int vector; - unsigned int cpu; - unsigned int prev_vector; - unsigned int prev_cpu; - char __data[0]; -}; - -struct trace_event_raw_vector_reserve { - struct trace_entry ent; - unsigned int irq; - int ret; - char __data[0]; -}; - -struct trace_event_raw_vector_alloc { - struct trace_entry ent; - unsigned int irq; - unsigned int vector; - bool reserved; - int ret; - char __data[0]; -}; - -struct trace_event_raw_vector_alloc_managed { - struct trace_entry ent; - unsigned int irq; - unsigned int vector; - int ret; - char __data[0]; -}; - -struct trace_event_raw_vector_activate { - struct trace_entry ent; - unsigned int irq; - bool is_managed; - bool can_reserve; - bool reserve; - char __data[0]; -}; - -struct trace_event_raw_vector_teardown { - struct trace_entry ent; - unsigned int irq; - bool is_managed; - bool has_reserved; - char __data[0]; -}; - -struct trace_event_raw_vector_setup { - struct trace_entry ent; - unsigned int irq; - bool is_legacy; - int ret; - char __data[0]; -}; - -struct trace_event_raw_vector_free_moved { - struct trace_entry ent; - unsigned int irq; - unsigned int cpu; - unsigned int vector; - bool is_managed; - char __data[0]; -}; - -struct trace_event_data_offsets_x86_irq_vector {}; - -struct trace_event_data_offsets_vector_config {}; - -struct trace_event_data_offsets_vector_mod {}; - -struct trace_event_data_offsets_vector_reserve {}; - -struct trace_event_data_offsets_vector_alloc {}; - -struct trace_event_data_offsets_vector_alloc_managed {}; - -struct trace_event_data_offsets_vector_activate {}; - -struct trace_event_data_offsets_vector_teardown {}; - -struct trace_event_data_offsets_vector_setup {}; - -struct trace_event_data_offsets_vector_free_moved {}; - -struct io_tlb_area { - unsigned long used; - unsigned int index; - spinlock_t lock; -}; - -struct io_tlb_slot { - phys_addr_t orig_addr; - size_t alloc_size; - unsigned int list; -}; - -typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); - -struct trace_event_raw_swiotlb_bounced { - struct trace_entry ent; - u32 __data_loc_dev_name; - u64 dma_mask; - dma_addr_t dev_addr; - size_t size; - bool force; - char __data[0]; -}; - -struct trace_event_data_offsets_swiotlb_bounced { - u32 dev_name; - const void *dev_name_ptr_; -}; - -enum { - Q_REQUEUE_PI_NONE = 0, - Q_REQUEUE_PI_IGNORE = 1, - Q_REQUEUE_PI_IN_PROGRESS = 2, - Q_REQUEUE_PI_WAIT = 3, - Q_REQUEUE_PI_DONE = 4, - Q_REQUEUE_PI_LOCKED = 5, -}; - -struct trace_export { - struct trace_export __attribute__((btf_type_tag("rcu"))) *next; - void (*write)(struct trace_export *, const void *, unsigned int); - int flags; -}; - -struct ftrace_stack { - unsigned long calls[1024]; -}; - -struct ftrace_stacks { - struct ftrace_stack stacks[4]; -}; - -struct trace_buffer_struct { - int nesting; - char buffer[4096]; -}; - -struct err_info { - const char **errs; - u8 type; - u16 pos; - u64 ts; -}; - -struct tracing_log_err { - struct list_head list; - struct err_info info; - char loc[128]; - char *cmd; -}; - -struct buffer_ref { - struct trace_buffer *buffer; - void *page; - int cpu; - refcount_t refcount; -}; - -struct pipe_wait { - struct trace_iterator *iter; - int wait_index; -}; - -typedef bool (*cond_update_fn_t)(struct trace_array *, void *); - -struct trace_min_max_param { - struct mutex *lock; - u64 *val; - u64 *min; - u64 *max; -}; - -struct ftrace_buffer_info { - struct trace_iterator iter; - void *spare; - unsigned int spare_cpu; - unsigned int spare_size; - unsigned int read; -}; - -struct vmemmap_remap_walk { - void (*remap_pte)(pte_t *, unsigned long, struct vmemmap_remap_walk *); - unsigned long nr_walked; - struct page *reuse_page; - unsigned long reuse_addr; - struct list_head *vmemmap_pages; - unsigned long flags; -}; - -struct pid_entry { - const char *name; - unsigned int len; - umode_t mode; - const struct inode_operations *iop; - const struct file_operations *fop; - union proc_op op; -}; - -struct limit_names { - const char *name; - const char *unit; -}; - -struct map_files_info { - unsigned long start; - unsigned long end; - fmode_t mode; -}; - -struct proc_timens_offset { - int clockid; - struct timespec64 val; -}; - -struct tgid_iter { - unsigned int tgid; - struct task_struct *task; -}; - -struct efivarfs_mount_opts { - kuid_t uid; - kgid_t gid; -}; - -struct efivarfs_fs_info { - struct efivarfs_mount_opts mount_opts; - struct list_head efivarfs_list; - struct super_block *sb; - struct notifier_block nb; -}; - -struct keyctl_dh_params { - union { - __s32 private; - __s32 priv; - }; - __s32 prime; - __s32 base; -}; - -struct keyctl_kdf_params { - char __attribute__((btf_type_tag("user"))) *hashname; - char __attribute__((btf_type_tag("user"))) *otherinfo; - __u32 otherinfolen; - __u32 __spare[8]; -}; - -struct io_futex { - struct file *file; - union { - u32 __attribute__((btf_type_tag("user"))) *uaddr; - struct futex_waitv __attribute__((btf_type_tag("user"))) *uwaitv; - }; - unsigned long futex_val; - unsigned long futex_mask; - unsigned long futexv_owned; - u32 futex_flags; - unsigned int futex_nr; - bool futexv_unqueued; -}; - -struct io_futex_data { - union { - struct futex_q q; - struct io_cache_entry cache; - }; - struct io_kiocb *req; -}; - -struct fb_cvt_data { - u32 xres; - u32 yres; - u32 refresh; - u32 f_refresh; - u32 pixclock; - u32 hperiod; - u32 hblank; - u32 hfreq; - u32 htotal; - u32 vtotal; - u32 vsync; - u32 hsync; - u32 h_front_porch; - u32 h_back_porch; - u32 v_front_porch; - u32 v_back_porch; - u32 h_margin; - u32 v_margin; - u32 interlace; - u32 aspect_ratio; - u32 active_pixels; - u32 flags; - u32 status; -}; - -struct acpi_pci_link_irq { - u32 active; - u8 triggering; - u8 polarity; - u8 resource_type; - u8 possible_count; - u32 possible[16]; - u8 initialized: 1; - u8 reserved: 7; -}; - -struct acpi_pci_link { - struct list_head list; - struct acpi_device *device; - struct acpi_pci_link_irq irq; - int refcnt; -}; - -struct acpi_processor_throttling_arg { - struct acpi_processor *pr; - int target_state; - bool force; -}; - -struct throttling_tstate { - unsigned int cpu; - int target_state; -}; - -struct firmware_cache { - spinlock_t lock; - struct list_head head; - int state; - spinlock_t name_lock; - struct list_head fw_names; - struct delayed_work work; - struct notifier_block pm_notify; -}; - -enum fw_status { - FW_STATUS_UNKNOWN = 0, - FW_STATUS_LOADING = 1, - FW_STATUS_DONE = 2, - FW_STATUS_ABORTED = 3, -}; - -enum fw_opt { - FW_OPT_UEVENT = 1, - FW_OPT_NOWAIT = 2, - FW_OPT_USERHELPER = 4, - FW_OPT_NO_WARN = 8, - FW_OPT_NOCACHE = 16, - FW_OPT_NOFALLBACK_SYSFS = 32, - FW_OPT_FALLBACK_PLATFORM = 64, - FW_OPT_PARTIAL = 128, -}; - -struct fw_state { - struct completion completion; - enum fw_status status; -}; - -struct fw_priv { - struct kref ref; - struct list_head list; - struct firmware_cache *fwc; - struct fw_state fw_st; - void *data; - size_t size; - size_t allocated_size; - size_t offset; - u32 opt_flags; - const char *fw_name; -}; - -struct firmware_work { - struct work_struct work; - struct module *module; - const char *name; - struct device *device; - void *context; - void (*cont)(const struct firmware *, void *); - u32 opt_flags; -}; - -struct fw_cache_entry { - struct list_head list; - const char *name; -}; - -struct fw_name_devm { - unsigned long magic; - const char *name; -}; - -enum bt_coex_prio_table_events { - BT_COEX_PRIO_TBL_EVT_INIT_CALIB1 = 0, - BT_COEX_PRIO_TBL_EVT_INIT_CALIB2 = 1, - BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW1 = 2, - BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW2 = 3, - BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH1 = 4, - BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH2 = 5, - BT_COEX_PRIO_TBL_EVT_DTIM = 6, - BT_COEX_PRIO_TBL_EVT_SCAN52 = 7, - BT_COEX_PRIO_TBL_EVT_SCAN24 = 8, - BT_COEX_PRIO_TBL_EVT_RESERVED0 = 9, - BT_COEX_PRIO_TBL_EVT_RESERVED1 = 10, - BT_COEX_PRIO_TBL_EVT_RESERVED2 = 11, - BT_COEX_PRIO_TBL_EVT_RESERVED3 = 12, - BT_COEX_PRIO_TBL_EVT_RESERVED4 = 13, - BT_COEX_PRIO_TBL_EVT_RESERVED5 = 14, - BT_COEX_PRIO_TBL_EVT_RESERVED6 = 15, - BT_COEX_PRIO_TBL_EVT_MAX = 16, -}; - -enum iwl_ucode_calib_cfg { - IWL_CALIB_CFG_RX_BB_IDX = 1, - IWL_CALIB_CFG_DC_IDX = 2, - IWL_CALIB_CFG_LO_IDX = 4, - IWL_CALIB_CFG_TX_IQ_IDX = 8, - IWL_CALIB_CFG_RX_IQ_IDX = 16, - IWL_CALIB_CFG_NOISE_IDX = 32, - IWL_CALIB_CFG_CRYSTAL_IDX = 64, - IWL_CALIB_CFG_TEMPERATURE_IDX = 128, - IWL_CALIB_CFG_PAPD_IDX = 256, - IWL_CALIB_CFG_SENSITIVITY_IDX = 512, - IWL_CALIB_CFG_TX_PWR_IDX = 1024, -}; - -struct iwl_tx_beacon_cmd { - struct iwl_tx_cmd tx; - __le16 tim_idx; - u8 tim_size; - u8 reserved1; - struct ieee80211_hdr frame[0]; -}; - -struct iwl_bt_cmd { - u8 flags; - u8 lead_time; - u8 max_kill; - u8 reserved; - __le32 kill_ack_mask; - __le32 kill_cts_mask; -}; - -struct iwl_calib_cfg_elmnt_s { - __le32 is_enable; - __le32 start; - __le32 send_res; - __le32 apply_res; - __le32 reserved; -}; - -struct iwl_calib_cfg_status_s { - struct iwl_calib_cfg_elmnt_s once; - struct iwl_calib_cfg_elmnt_s perd; - __le32 flags; -}; - -struct iwl_calib_cfg_cmd { - struct iwl_calib_cfg_status_s ucd_calib_cfg; - struct iwl_calib_cfg_status_s drv_calib_cfg; - __le32 reserved1; -}; - -struct iwl_tx_ant_config_cmd { - __le32 valid; -}; - -struct iwl_ct_kill_config { - __le32 reserved; - __le32 critical_temperature_M; - __le32 critical_temperature_R; -}; - -struct iwl_ct_kill_throttling_config { - __le32 critical_temperature_exit; - __le32 reserved; - __le32 critical_temperature_enter; -}; - -struct iwl_error_event_table___2 { - u32 valid; - u32 error_id; - u32 pc; - u32 blink1; - u32 blink2; - u32 ilink1; - u32 ilink2; - u32 data1; - u32 data2; - u32 line; - u32 bcon_time; - u32 tsf_low; - u32 tsf_hi; - u32 gp1; - u32 gp2; - u32 gp3; - u32 ucode_ver; - u32 hw_ver; - u32 brd_ver; - u32 log_pc; - u32 frame_ptr; - u32 stack_ptr; - u32 hcmd; - u32 isr0; - u32 isr1; - u32 isr2; - u32 isr3; - u32 isr4; - u32 isr_pref; - u32 wait_event; - u32 l2p_control; - u32 l2p_duration; - u32 l2p_mhvalid; - u32 l2p_addr_match; - u32 lmpm_pmg_sel; - u32 u_timestamp; - u32 flow_handler; -}; - -struct iwl_statistics_cmd { - __le32 configuration_flags; -}; - -enum xmp_state { - STATE_INACTIVE___5 = 0, - STATE_LEADER_PULSE = 1, - STATE_NIBBLE_SPACE = 2, -}; - -enum { - ETHTOOL_A_DEBUG_UNSPEC = 0, - ETHTOOL_A_DEBUG_HEADER = 1, - ETHTOOL_A_DEBUG_MSGMASK = 2, - __ETHTOOL_A_DEBUG_CNT = 3, - ETHTOOL_A_DEBUG_MAX = 2, -}; - -struct debug_reply_data { - struct ethnl_reply_data base; - u32 msg_mask; -}; - -struct nft_rhash { - struct rhashtable ht; - struct delayed_work gc_work; -}; - -struct nft_hash_elem { - struct nft_elem_priv priv; - struct hlist_node node; - struct nft_set_ext ext; -}; - -struct nft_rhash_elem { - struct nft_elem_priv priv; - struct rhash_head node; - struct nft_set_ext ext; -}; - -struct nft_hash { - u32 seed; - u32 buckets; - struct hlist_head table[0]; -}; - -struct nft_rhash_cmp_arg { - const struct nft_set *set; - const u32 *key; - u8 genmask; - u64 tstamp; -}; - -struct nft_rhash_ctx { - const struct nft_ctx ctx; - const struct nft_set *set; -}; - -enum ieee80211_p2p_attr_id { - IEEE80211_P2P_ATTR_STATUS = 0, - IEEE80211_P2P_ATTR_MINOR_REASON = 1, - IEEE80211_P2P_ATTR_CAPABILITY = 2, - IEEE80211_P2P_ATTR_DEVICE_ID = 3, - IEEE80211_P2P_ATTR_GO_INTENT = 4, - IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT = 5, - IEEE80211_P2P_ATTR_LISTEN_CHANNEL = 6, - IEEE80211_P2P_ATTR_GROUP_BSSID = 7, - IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING = 8, - IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR = 9, - IEEE80211_P2P_ATTR_MANAGABILITY = 10, - IEEE80211_P2P_ATTR_CHANNEL_LIST = 11, - IEEE80211_P2P_ATTR_ABSENCE_NOTICE = 12, - IEEE80211_P2P_ATTR_DEVICE_INFO = 13, - IEEE80211_P2P_ATTR_GROUP_INFO = 14, - IEEE80211_P2P_ATTR_GROUP_ID = 15, - IEEE80211_P2P_ATTR_INTERFACE = 16, - IEEE80211_P2P_ATTR_OPER_CHANNEL = 17, - IEEE80211_P2P_ATTR_INVITE_FLAGS = 18, - IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221, - IEEE80211_P2P_ATTR_MAX = 222, -}; - -enum nl80211_eht_gi { - NL80211_RATE_INFO_EHT_GI_0_8 = 0, - NL80211_RATE_INFO_EHT_GI_1_6 = 1, - NL80211_RATE_INFO_EHT_GI_3_2 = 2, -}; - -enum nl80211_eht_ru_alloc { - NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0, - NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 1, - NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 2, - NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 3, - NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 4, - NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 5, - NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 6, - NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 7, - NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 8, - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 9, - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 10, - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 11, - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 12, - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 13, - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 14, - NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 15, -}; - -struct iface_combination_params { - int num_different_channels; - u8 radar_detect; - int iftype_num[13]; - u32 new_beacon_int; -}; - -struct iapp_layer2_update { - u8 da[6]; - u8 sa[6]; - __be16 len; - u8 dsap; - u8 ssap; - u8 control; - u8 xid_info[3]; -}; - -struct irq_stack { - char stack[16384]; -}; - -enum hist_field_fn { - HIST_FIELD_FN_NOP = 0, - HIST_FIELD_FN_VAR_REF = 1, - HIST_FIELD_FN_COUNTER = 2, - HIST_FIELD_FN_CONST = 3, - HIST_FIELD_FN_LOG2 = 4, - HIST_FIELD_FN_BUCKET = 5, - HIST_FIELD_FN_TIMESTAMP = 6, - HIST_FIELD_FN_CPU = 7, - HIST_FIELD_FN_STRING = 8, - HIST_FIELD_FN_DYNSTRING = 9, - HIST_FIELD_FN_RELDYNSTRING = 10, - HIST_FIELD_FN_PSTRING = 11, - HIST_FIELD_FN_S64 = 12, - HIST_FIELD_FN_U64 = 13, - HIST_FIELD_FN_S32 = 14, - HIST_FIELD_FN_U32 = 15, - HIST_FIELD_FN_S16 = 16, - HIST_FIELD_FN_U16 = 17, - HIST_FIELD_FN_S8 = 18, - HIST_FIELD_FN_U8 = 19, - HIST_FIELD_FN_UMINUS = 20, - HIST_FIELD_FN_MINUS = 21, - HIST_FIELD_FN_PLUS = 22, - HIST_FIELD_FN_DIV = 23, - HIST_FIELD_FN_MULT = 24, - HIST_FIELD_FN_DIV_POWER2 = 25, - HIST_FIELD_FN_DIV_NOT_POWER2 = 26, - HIST_FIELD_FN_DIV_MULT_SHIFT = 27, - HIST_FIELD_FN_EXECNAME = 28, - HIST_FIELD_FN_STACK = 29, -}; - -enum field_op_id { - FIELD_OP_NONE = 0, - FIELD_OP_PLUS = 1, - FIELD_OP_MINUS = 2, - FIELD_OP_UNARY_MINUS = 3, - FIELD_OP_DIV = 4, - FIELD_OP_MULT = 5, -}; - -enum handler_id { - HANDLER_ONMATCH = 1, - HANDLER_ONMAX = 2, - HANDLER_ONCHANGE = 3, -}; - -enum action_id { - ACTION_SAVE = 1, - ACTION_TRACE = 2, - ACTION_SNAPSHOT = 3, -}; - -enum hist_field_flags { - HIST_FIELD_FL_HITCOUNT = 1, - HIST_FIELD_FL_KEY = 2, - HIST_FIELD_FL_STRING = 4, - HIST_FIELD_FL_HEX = 8, - HIST_FIELD_FL_SYM = 16, - HIST_FIELD_FL_SYM_OFFSET = 32, - HIST_FIELD_FL_EXECNAME = 64, - HIST_FIELD_FL_SYSCALL = 128, - HIST_FIELD_FL_STACKTRACE = 256, - HIST_FIELD_FL_LOG2 = 512, - HIST_FIELD_FL_TIMESTAMP = 1024, - HIST_FIELD_FL_TIMESTAMP_USECS = 2048, - HIST_FIELD_FL_VAR = 4096, - HIST_FIELD_FL_EXPR = 8192, - HIST_FIELD_FL_VAR_REF = 16384, - HIST_FIELD_FL_CPU = 32768, - HIST_FIELD_FL_ALIAS = 65536, - HIST_FIELD_FL_BUCKET = 131072, - HIST_FIELD_FL_CONST = 262144, - HIST_FIELD_FL_PERCENT = 524288, - HIST_FIELD_FL_GRAPH = 1048576, -}; - -enum { - HIST_ERR_NONE = 0, - HIST_ERR_DUPLICATE_VAR = 1, - HIST_ERR_VAR_NOT_UNIQUE = 2, - HIST_ERR_TOO_MANY_VARS = 3, - HIST_ERR_MALFORMED_ASSIGNMENT = 4, - HIST_ERR_NAMED_MISMATCH = 5, - HIST_ERR_TRIGGER_EEXIST = 6, - HIST_ERR_TRIGGER_ENOENT_CLEAR = 7, - HIST_ERR_SET_CLOCK_FAIL = 8, - HIST_ERR_BAD_FIELD_MODIFIER = 9, - HIST_ERR_TOO_MANY_SUBEXPR = 10, - HIST_ERR_TIMESTAMP_MISMATCH = 11, - HIST_ERR_TOO_MANY_FIELD_VARS = 12, - HIST_ERR_EVENT_FILE_NOT_FOUND = 13, - HIST_ERR_HIST_NOT_FOUND = 14, - HIST_ERR_HIST_CREATE_FAIL = 15, - HIST_ERR_SYNTH_VAR_NOT_FOUND = 16, - HIST_ERR_SYNTH_EVENT_NOT_FOUND = 17, - HIST_ERR_SYNTH_TYPE_MISMATCH = 18, - HIST_ERR_SYNTH_COUNT_MISMATCH = 19, - HIST_ERR_FIELD_VAR_PARSE_FAIL = 20, - HIST_ERR_VAR_CREATE_FIND_FAIL = 21, - HIST_ERR_ONX_NOT_VAR = 22, - HIST_ERR_ONX_VAR_NOT_FOUND = 23, - HIST_ERR_ONX_VAR_CREATE_FAIL = 24, - HIST_ERR_FIELD_VAR_CREATE_FAIL = 25, - HIST_ERR_TOO_MANY_PARAMS = 26, - HIST_ERR_PARAM_NOT_FOUND = 27, - HIST_ERR_INVALID_PARAM = 28, - HIST_ERR_ACTION_NOT_FOUND = 29, - HIST_ERR_NO_SAVE_PARAMS = 30, - HIST_ERR_TOO_MANY_SAVE_ACTIONS = 31, - HIST_ERR_ACTION_MISMATCH = 32, - HIST_ERR_NO_CLOSING_PAREN = 33, - HIST_ERR_SUBSYS_NOT_FOUND = 34, - HIST_ERR_INVALID_SUBSYS_EVENT = 35, - HIST_ERR_INVALID_REF_KEY = 36, - HIST_ERR_VAR_NOT_FOUND = 37, - HIST_ERR_FIELD_NOT_FOUND = 38, - HIST_ERR_EMPTY_ASSIGNMENT = 39, - HIST_ERR_INVALID_SORT_MODIFIER = 40, - HIST_ERR_EMPTY_SORT_FIELD = 41, - HIST_ERR_TOO_MANY_SORT_FIELDS = 42, - HIST_ERR_INVALID_SORT_FIELD = 43, - HIST_ERR_INVALID_STR_OPERAND = 44, - HIST_ERR_EXPECT_NUMBER = 45, - HIST_ERR_UNARY_MINUS_SUBEXPR = 46, - HIST_ERR_DIVISION_BY_ZERO = 47, - HIST_ERR_NEED_NOHC_VAL = 48, -}; - -struct hist_trigger_data; - -struct hist_var_data { - struct list_head list; - struct hist_trigger_data *hist_data; -}; - -struct hist_field; - -struct hist_trigger_attrs; - -struct action_data; - -struct field_var; - -struct field_var_hist; - -struct hist_trigger_data { - struct hist_field *fields[22]; - unsigned int n_vals; - unsigned int n_keys; - unsigned int n_fields; - unsigned int n_vars; - unsigned int n_var_str; - unsigned int key_size; - struct tracing_map_sort_key sort_keys[2]; - unsigned int n_sort_keys; - struct trace_event_file *event_file; - struct hist_trigger_attrs *attrs; - struct tracing_map *map; - bool enable_timestamps; - bool remove; - struct hist_field *var_refs[16]; - unsigned int n_var_refs; - struct action_data *actions[8]; - unsigned int n_actions; - struct field_var *field_vars[64]; - unsigned int n_field_vars; - unsigned int n_field_var_str; - struct field_var_hist *field_var_hists[64]; - unsigned int n_field_var_hists; - struct field_var *save_vars[64]; - unsigned int n_save_vars; - unsigned int n_save_var_str; -}; - -struct hist_var { - char *name; - struct hist_trigger_data *hist_data; - unsigned int idx; -}; - -struct hist_field { - struct ftrace_event_field *field; - unsigned long flags; - unsigned long buckets; - const char *type; - struct hist_field *operands[2]; - struct hist_trigger_data *hist_data; - enum hist_field_fn fn_num; - unsigned int ref; + unsigned int valid_hooks; + unsigned int hook_entry[5]; + unsigned int underflow[5]; + unsigned int num_entries; unsigned int size; - unsigned int offset; - unsigned int is_signed; - struct hist_var var; - enum field_op_id operator; - char *system; - char *event_name; - char *name; - unsigned int var_ref_idx; - bool read_once; - unsigned int var_str_idx; - u64 constant; - u64 div_multiplier; }; -struct var_defs { - unsigned int n_vars; - char *name[16]; - char *expr[16]; -}; - -struct hist_trigger_attrs { - char *keys_str; - char *vals_str; - char *sort_key_str; - char *name; - char *clock; - bool pause; - bool cont; - bool clear; - bool ts_in_usecs; - bool no_hitcount; - unsigned int map_bits; - char *assignment_str[16]; - unsigned int n_assignments; - char *action_str[8]; - unsigned int n_actions; - struct var_defs var_defs; -}; - -typedef bool (*check_track_val_fn_t)(u64, u64); - -typedef void (*action_fn_t)(struct hist_trigger_data *, struct tracing_map_elt *, struct trace_buffer *, void *, struct ring_buffer_event *, void *, struct action_data *, u64 *); - -struct action_data { - enum handler_id handler; - enum action_id action; - char *action_name; - action_fn_t fn; - unsigned int n_params; - char *params[64]; - unsigned int var_ref_idx[64]; - struct synth_event *synth_event; - bool use_trace_keyword; - char *synth_event_name; - union { - struct { - char *event; - char *event_system; - } match_data; - struct { - char *var_str; - struct hist_field *var_ref; - struct hist_field *track_var; - check_track_val_fn_t check_val; - action_fn_t save_data; - } track_data; - }; -}; - -struct field_var { - struct hist_field *var; - struct hist_field *val; -}; - -struct field_var_hist { - struct hist_trigger_data *hist_data; - char *cmd; -}; - -struct hist_val_stat { - u64 max; - u64 total; -}; - -struct hist_elt_data { - char *comm; - u64 *var_ref_vals; - char **field_var_str; - int n_field_var_str; -}; - -typedef void (*synth_probe_func_t)(void *, u64 *, unsigned int *); - -struct track_data { - u64 track_val; - bool updated; - unsigned int key_len; - void *key; - struct tracing_map_elt elt; - struct action_data *action_data; - struct hist_trigger_data *hist_data; -}; - -typedef void (*btf_trace_percpu_alloc_percpu)(void *, unsigned long, bool, bool, size_t, size_t, void *, int, void __attribute__((btf_type_tag("percpu"))) *, size_t, gfp_t); - -typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); - -typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); - -typedef void (*btf_trace_percpu_create_chunk)(void *, void *); - -typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); - -struct pcpu_block_md { - int scan_hint; - int scan_hint_start; - int contig_hint; - int contig_hint_start; - int left_free; - int right_free; - int first_free; - int nr_bits; -}; - -struct pcpu_chunk { - struct list_head list; - int free_bytes; - struct pcpu_block_md chunk_md; - unsigned long *bound_map; - void *base_addr; - unsigned long *alloc_map; - struct pcpu_block_md *md_blocks; - void *data; - bool immutable; - bool isolated; - int start_offset; - int end_offset; - struct obj_cgroup **obj_cgroups; - int nr_pages; - int nr_populated; - int nr_empty_pop_pages; - unsigned long populated[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct trace_event_raw_percpu_alloc_percpu { - struct trace_entry ent; - unsigned long call_site; - bool reserved; - bool is_atomic; - size_t size; - size_t align; - void *base_addr; - int off; - void __attribute__((btf_type_tag("percpu"))) *ptr; - size_t bytes_alloc; - unsigned long gfp_flags; - char __data[0]; -}; - -struct trace_event_raw_percpu_free_percpu { - struct trace_entry ent; - void *base_addr; - int off; - void __attribute__((btf_type_tag("percpu"))) *ptr; - char __data[0]; -}; - -struct trace_event_raw_percpu_alloc_percpu_fail { - struct trace_entry ent; - bool reserved; - bool is_atomic; - size_t size; - size_t align; - char __data[0]; -}; - -struct trace_event_raw_percpu_create_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; -}; - -struct trace_event_raw_percpu_destroy_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; -}; - -struct pcpu_group_info { - int nr_units; - unsigned long base_offset; - unsigned int *cpu_map; -}; - -struct pcpu_alloc_info { - size_t static_size; - size_t reserved_size; - size_t dyn_size; - size_t unit_size; - size_t atom_size; - size_t alloc_size; - size_t __ai_size; - int nr_groups; - struct pcpu_group_info groups[0]; -}; - -struct trace_event_data_offsets_percpu_alloc_percpu {}; - -struct trace_event_data_offsets_percpu_free_percpu {}; - -struct trace_event_data_offsets_percpu_alloc_percpu_fail {}; - -struct trace_event_data_offsets_percpu_create_chunk {}; - -struct trace_event_data_offsets_percpu_destroy_chunk {}; - -enum fsconfig_command { - FSCONFIG_SET_FLAG = 0, - FSCONFIG_SET_STRING = 1, - FSCONFIG_SET_BINARY = 2, - FSCONFIG_SET_PATH = 3, - FSCONFIG_SET_PATH_EMPTY = 4, - FSCONFIG_SET_FD = 5, - FSCONFIG_CMD_CREATE = 6, - FSCONFIG_CMD_RECONFIGURE = 7, - FSCONFIG_CMD_CREATE_EXCL = 8, -}; - -enum { - WORK_DONE_BIT = 0, - WORK_ORDER_DONE_BIT = 1, -}; - -struct btrfs_lockdep_keyset { - u64 id; - char names[192]; - struct lock_class_key keys[8]; -}; - -typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); - -struct pci_reset_fn_method { - int (*reset_fn)(struct pci_dev *, bool); - char *name; -}; - -enum pcie_reset_state { - pcie_deassert_reset = 1, - pcie_warm_reset = 2, - pcie_hot_reset = 3, -}; - -struct pci_pme_device { - struct list_head list; - struct pci_dev *dev; -}; - -struct pci_saved_state { - u32 config_space[16]; - struct pci_cap_saved_data cap[0]; -}; - -struct pci_devres { - unsigned int enabled: 1; - unsigned int pinned: 1; - unsigned int orig_intx: 1; - unsigned int restore_intx: 1; - unsigned int mwi: 1; - u32 region_mask; -}; - -struct pcie_tlp_log { - u32 dw[4]; -}; - -struct acpi_fadt_info { - const char *name; - u16 address64; - u16 address32; - u16 length; - u8 default_length; - u8 flags; -}; - -struct acpi_fadt_pm_info { - struct acpi_generic_address *target; - u16 source; - u8 register_num; -}; - -enum { - ERASE = 0, - WERASE = 1, - KILL = 2, -}; - -struct n_tty_data { - size_t read_head; - size_t commit_head; - size_t canon_head; - size_t echo_head; - size_t echo_commit; - size_t echo_mark; - unsigned long char_map[4]; - unsigned long overrun_time; - unsigned int num_overrun; - bool no_room; - unsigned char lnext: 1; - unsigned char erasing: 1; - unsigned char raw: 1; - unsigned char real_raw: 1; - unsigned char icanon: 1; - unsigned char push: 1; - u8 read_buf[4096]; - unsigned long read_flags[64]; - u8 echo_buf[4096]; - size_t read_tail; - size_t line_start; - size_t lookahead_count; - unsigned int column; - unsigned int canon_column; - size_t echo_tail; - struct mutex atomic_read_lock; - struct mutex output_lock; -}; - -typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); - -struct trace_event_raw_devres { - struct trace_entry ent; - u32 __data_loc_devname; - struct device *dev; - const char *op; - void *node; - const char *name; - size_t size; - char __data[0]; -}; - -struct trace_event_data_offsets_devres { - u32 devname; - const void *devname_ptr_; -}; - -struct iwl_device_cmd { - union { - struct { - struct iwl_cmd_header hdr; - u8 payload[320]; - }; - struct { - struct iwl_cmd_header_wide hdr_wide; - u8 payload_wide[316]; - }; - }; -}; - -struct rt2800_ops { - u32 (*register_read)(struct rt2x00_dev *, const unsigned int); - u32 (*register_read_lock)(struct rt2x00_dev *, const unsigned int); - void (*register_write)(struct rt2x00_dev *, const unsigned int, u32); - void (*register_write_lock)(struct rt2x00_dev *, const unsigned int, u32); - void (*register_multiread)(struct rt2x00_dev *, const unsigned int, void *, const u32); - void (*register_multiwrite)(struct rt2x00_dev *, const unsigned int, const void *, const u32); - int (*regbusy_read)(struct rt2x00_dev *, const unsigned int, const struct rt2x00_field32, u32 *); - int (*read_eeprom)(struct rt2x00_dev *); - bool (*hwcrypt_disabled)(struct rt2x00_dev *); - int (*drv_write_firmware)(struct rt2x00_dev *, const u8 *, const size_t); - int (*drv_init_registers)(struct rt2x00_dev *); - __le32 * (*drv_get_txwi)(struct queue_entry *); - unsigned int (*drv_get_dma_done)(struct data_queue *); -}; - -enum rx_crypto { - RX_CRYPTO_SUCCESS = 0, - RX_CRYPTO_FAIL_ICV = 1, - RX_CRYPTO_FAIL_MIC = 2, - RX_CRYPTO_FAIL_KEY = 3, -}; - -enum rt2x00usb_mode_offset { - USB_MODE_RESET = 1, - USB_MODE_UNPLUG = 2, - USB_MODE_FUNCTION = 3, - USB_MODE_TEST = 4, - USB_MODE_SLEEP = 7, - USB_MODE_FIRMWARE = 8, - USB_MODE_WAKEUP = 9, - USB_MODE_AUTORUN = 17, -}; - -enum sony_state { - STATE_INACTIVE___6 = 0, - STATE_HEADER_SPACE___2 = 1, - STATE_BIT_PULSE___3 = 2, - STATE_BIT_SPACE___3 = 3, - STATE_FINISHED___3 = 4, -}; - -enum { - ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, - ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, - ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, -}; - -enum { - ETHTOOL_A_RINGS_UNSPEC = 0, - ETHTOOL_A_RINGS_HEADER = 1, - ETHTOOL_A_RINGS_RX_MAX = 2, - ETHTOOL_A_RINGS_RX_MINI_MAX = 3, - ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, - ETHTOOL_A_RINGS_TX_MAX = 5, - ETHTOOL_A_RINGS_RX = 6, - ETHTOOL_A_RINGS_RX_MINI = 7, - ETHTOOL_A_RINGS_RX_JUMBO = 8, - ETHTOOL_A_RINGS_TX = 9, - ETHTOOL_A_RINGS_RX_BUF_LEN = 10, - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, - ETHTOOL_A_RINGS_CQE_SIZE = 12, - ETHTOOL_A_RINGS_TX_PUSH = 13, - ETHTOOL_A_RINGS_RX_PUSH = 14, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, - __ETHTOOL_A_RINGS_CNT = 17, - ETHTOOL_A_RINGS_MAX = 16, -}; - -enum ethtool_supported_ring_param { - ETHTOOL_RING_USE_RX_BUF_LEN = 1, - ETHTOOL_RING_USE_CQE_SIZE = 2, - ETHTOOL_RING_USE_TX_PUSH = 4, - ETHTOOL_RING_USE_RX_PUSH = 8, - ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, - ETHTOOL_RING_USE_TCP_DATA_SPLIT = 32, -}; - -struct rings_reply_data { - struct ethnl_reply_data base; - struct ethtool_ringparam ringparam; - struct kernel_ethtool_ringparam kernel_ringparam; - u32 supported_ring_params; -}; - -struct nf_nat_range { - unsigned int flags; - union nf_inet_addr min_addr; - union nf_inet_addr max_addr; - union nf_conntrack_man_proto min_proto; - union nf_conntrack_man_proto max_proto; -}; - -struct estack_pages { - u32 offs; - u16 size; - u16 type; -}; - -struct wq_flusher; - -struct wq_device; - -struct wq_node_nr_active; - -struct workqueue_struct { - struct list_head pwqs; - struct list_head list; - struct mutex mutex; - int work_color; - int flush_color; - atomic_t nr_pwqs_to_flush; - struct wq_flusher *first_flusher; - struct list_head flusher_queue; - struct list_head flusher_overflow; - struct list_head maydays; - struct worker *rescuer; - int nr_drainers; - int max_active; - int min_active; - int saved_max_active; - int saved_min_active; - struct workqueue_attrs *unbound_attrs; - struct pool_workqueue __attribute__((btf_type_tag("rcu"))) *dfl_pwq; - struct wq_device *wq_dev; - char *lock_name; - struct lock_class_key key; - struct lockdep_map lockdep_map; +struct ipt_get_entries { char name[32]; - struct callback_head rcu; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned int flags; - struct pool_workqueue __attribute__((btf_type_tag("percpu"))) __attribute__((btf_type_tag("rcu"))) **cpu_pwq; - struct wq_node_nr_active *node_nr_active[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct wq_flusher { - struct list_head list; - int flush_color; - struct completion done; -}; - -struct pool_workqueue { - struct worker_pool *pool; - struct workqueue_struct *wq; - int work_color; - int flush_color; - int refcnt; - int nr_in_flight[16]; - bool plugged; - int nr_active; - struct list_head inactive_works; - struct list_head pending_node; - struct list_head pwqs_node; - struct list_head mayday_node; - u64 stats[8]; - struct kthread_work release_work; - struct callback_head rcu; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct worker_pool { - raw_spinlock_t lock; - int cpu; - int node; - int id; - unsigned int flags; - unsigned long watchdog_ts; - bool cpu_stall; - int nr_running; - struct list_head worklist; - int nr_workers; - int nr_idle; - struct list_head idle_list; - struct timer_list idle_timer; - struct work_struct idle_cull_work; - struct timer_list mayday_timer; - struct hlist_head busy_hash[64]; - struct worker *manager; - struct list_head workers; - struct list_head dying_workers; - struct completion *detach_completion; - struct ida worker_ida; - struct workqueue_attrs *attrs; - struct hlist_node hash_node; - int refcnt; - struct callback_head rcu; -}; - -struct wq_device { - struct workqueue_struct *wq; - struct device dev; -}; - -struct wq_node_nr_active { - int max; - atomic_t nr; - raw_spinlock_t lock; - struct list_head pending_pwqs; -}; - -typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); - -typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); - -typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); - -typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); - -struct wq_pod_type { - int nr_pods; - cpumask_var_t *pod_cpus; - int *pod_node; - int *cpu_pod; -}; - -enum worker_flags { - WORKER_DIE = 2, - WORKER_IDLE = 4, - WORKER_PREP = 8, - WORKER_CPU_INTENSIVE = 64, - WORKER_UNBOUND = 128, - WORKER_REBOUND = 256, - WORKER_NOT_RUNNING = 456, -}; - -enum pool_workqueue_stats { - PWQ_STAT_STARTED = 0, - PWQ_STAT_COMPLETED = 1, - PWQ_STAT_CPU_TIME = 2, - PWQ_STAT_CPU_INTENSIVE = 3, - PWQ_STAT_CM_WAKEUP = 4, - PWQ_STAT_REPATRIATED = 5, - PWQ_STAT_MAYDAY = 6, - PWQ_STAT_RESCUED = 7, - PWQ_NR_STATS = 8, -}; - -enum work_cancel_flags { - WORK_CANCEL_DELAYED = 1, -}; - -enum wq_internal_consts { - NR_STD_WORKER_POOLS = 2, - UNBOUND_POOL_HASH_ORDER = 6, - BUSY_WORKER_HASH_ORDER = 6, - MAX_IDLE_WORKERS_RATIO = 4, - IDLE_WORKER_TIMEOUT = 300000, - MAYDAY_INITIAL_TIMEOUT = 10, - MAYDAY_INTERVAL = 100, - CREATE_COOLDOWN = 1000, - RESCUER_NICE_LEVEL = -20, - HIGHPRI_NICE_LEVEL = -20, - WQ_NAME_LEN = 32, -}; - -enum worker_pool_flags { - POOL_BH = 1, - POOL_MANAGER_ACTIVE = 2, - POOL_DISASSOCIATED = 4, - POOL_BH_DRAINING = 8, -}; - -enum work_flags { - WORK_STRUCT_PENDING = 1, - WORK_STRUCT_INACTIVE = 2, - WORK_STRUCT_PWQ = 4, - WORK_STRUCT_LINKED = 8, - WORK_STRUCT_STATIC = 0, -}; - -struct trace_event_raw_workqueue_queue_work { - struct trace_entry ent; - void *work; - void *function; - u32 __data_loc_workqueue; - int req_cpu; - int cpu; - char __data[0]; -}; - -struct trace_event_raw_workqueue_activate_work { - struct trace_entry ent; - void *work; - char __data[0]; -}; - -struct trace_event_raw_workqueue_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; -}; - -struct trace_event_raw_workqueue_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; -}; - -struct wq_drain_dead_softirq_work { - struct work_struct work; - struct worker_pool *pool; - struct completion done; -}; - -struct wq_barrier { - struct work_struct work; - struct completion done; - struct task_struct *task; -}; - -struct cwt_wait { - wait_queue_entry_t wait; - struct work_struct *work; -}; - -struct work_for_cpu { - struct work_struct work; - long (*fn)(void *); - void *arg; - long ret; -}; - -struct apply_wqattrs_ctx { - struct workqueue_struct *wq; - struct workqueue_attrs *attrs; - struct list_head list; - struct pool_workqueue *dfl_pwq; - struct pool_workqueue *pwq_tbl[0]; -}; - -struct trace_event_data_offsets_workqueue_queue_work { - u32 workqueue; - const void *workqueue_ptr_; -}; - -struct pr_cont_work_struct { - bool comma; - work_func_t func; - long ctr; -}; - -struct trace_event_data_offsets_workqueue_activate_work {}; - -struct trace_event_data_offsets_workqueue_execute_start {}; - -struct trace_event_data_offsets_workqueue_execute_end {}; - -typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); - -typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); - -struct lru_rotate { - local_lock_t lock; - struct folio_batch fbatch; -}; - -struct cpu_fbatches { - local_lock_t lock; - struct folio_batch lru_add; - struct folio_batch lru_deactivate_file; - struct folio_batch lru_deactivate; - struct folio_batch lru_lazyfree; - struct folio_batch activate; -}; - -struct trace_event_raw_mm_lru_insertion { - struct trace_entry ent; - struct folio *folio; - unsigned long pfn; - enum lru_list lru; - unsigned long flags; - char __data[0]; -}; - -struct trace_event_raw_mm_lru_activate { - struct trace_entry ent; - struct folio *folio; - unsigned long pfn; - char __data[0]; -}; - -typedef void (*move_fn_t)(struct lruvec *, struct folio *); - -struct trace_event_data_offsets_mm_lru_insertion {}; - -struct trace_event_data_offsets_mm_lru_activate {}; - -enum { - SKCIPHER_WALK_PHYS = 1, - SKCIPHER_WALK_SLOW = 2, - SKCIPHER_WALK_COPY = 4, - SKCIPHER_WALK_DIFF = 8, - SKCIPHER_WALK_SLEEP = 16, -}; - -struct skcipher_walk_buffer { - struct list_head entry; - struct scatter_walk dst; - unsigned int len; - u8 *data; - u8 buffer[0]; -}; - -struct crypto_istat_cipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; -}; - -struct bdev_inode { - struct block_device bdev; - struct inode vfs_inode; -}; - -typedef enum { - ZSTD_lo_isRegularOffset = 0, - ZSTD_lo_isLongOffset = 1, -} ZSTD_longOffset_e; - -typedef struct { - U32 fastMode; - U32 tableLog; -} ZSTD_seqSymbol_header; - -typedef struct { - size_t litLength; - size_t matchLength; - size_t offset; -} seq_t; - -typedef struct { - size_t state; - const ZSTD_seqSymbol *table; -} ZSTD_fseState; - -typedef struct { - BIT_DStream_t DStream; - ZSTD_fseState stateLL; - ZSTD_fseState stateOffb; - ZSTD_fseState stateML; - size_t prevOffset[3]; -} seqState_t; - -struct pnp_fixup { - char id[7]; - void (*quirk_function)(struct pnp_dev *); -}; - -struct serial8250_config { - const char *name; - unsigned short fifo_size; - unsigned short tx_loadsz; - unsigned char fcr; - unsigned char rxtrig_bytes[4]; - unsigned int flags; -}; - -struct iwl_pnvm_section { - __le32 offset; - const u8 data[0]; -}; - -struct iwl_pnvm_init_complete_ntfy { - __le32 status; -}; - -enum iwl_mvm_pasn_flags { - IWL_MVM_PASN_FLAG_HAS_HLTK = 1, -}; - -enum nl80211_peer_measurement_status { - NL80211_PMSR_STATUS_SUCCESS = 0, - NL80211_PMSR_STATUS_REFUSED = 1, - NL80211_PMSR_STATUS_TIMEOUT = 2, - NL80211_PMSR_STATUS_FAILURE = 3, -}; - -enum nl80211_peer_measurement_ftm_failure_reasons { - NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0, - NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 1, - NL80211_PMSR_FTM_FAILURE_REJECTED = 2, - NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 3, - NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 4, - NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 5, - NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 6, - NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 7, -}; - -enum iwl_tof_entry_status { - IWL_TOF_ENTRY_SUCCESS = 0, - IWL_TOF_ENTRY_GENERAL_FAILURE = 1, - IWL_TOF_ENTRY_NO_RESPONSE = 2, - IWL_TOF_ENTRY_REQUEST_REJECTED = 3, - IWL_TOF_ENTRY_NOT_SCHEDULED = 4, - IWL_TOF_ENTRY_TIMING_MEASURE_TIMEOUT = 5, - IWL_TOF_ENTRY_TARGET_DIFF_CH_CANNOT_CHANGE = 6, - IWL_TOF_ENTRY_RANGE_NOT_SUPPORTED = 7, - IWL_TOF_ENTRY_REQUEST_ABORT_UNKNOWN_REASON = 8, - IWL_TOF_ENTRY_LOCATION_INVALID_T1_T4_TIME_STAMP = 9, - IWL_TOF_ENTRY_11MC_PROTOCOL_FAILURE = 10, - IWL_TOF_ENTRY_REQUEST_CANNOT_SCHED = 11, - IWL_TOF_ENTRY_RESPONDER_CANNOT_COLABORATE = 12, - IWL_TOF_ENTRY_BAD_REQUEST_ARGS = 13, - IWL_TOF_ENTRY_WIFI_NOT_ENABLED = 14, - IWL_TOF_ENTRY_RESPONDER_OVERRIDE_PARAMS = 15, -}; - -enum iwl_tof_initiator_flags { - IWL_TOF_INITIATOR_FLAGS_FAST_ALGO_DISABLED = 1, - IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_A = 2, - IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_B = 4, - IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_C = 8, - IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_A = 16, - IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_B = 32, - IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_C = 64, - IWL_TOF_INITIATOR_FLAGS_MACADDR_RANDOM = 128, - IWL_TOF_INITIATOR_FLAGS_SPECIFIC_CALIB = 32768, - IWL_TOF_INITIATOR_FLAGS_COMMON_CALIB = 65536, - IWL_TOF_INITIATOR_FLAGS_NON_ASAP_SUPPORT = 1048576, -}; - -enum iwl_initiator_ap_flags { - IWL_INITIATOR_AP_FLAGS_ASAP = 2, - IWL_INITIATOR_AP_FLAGS_LCI_REQUEST = 4, - IWL_INITIATOR_AP_FLAGS_CIVIC_REQUEST = 8, - IWL_INITIATOR_AP_FLAGS_DYN_ACK = 16, - IWL_INITIATOR_AP_FLAGS_ALGO_LR = 32, - IWL_INITIATOR_AP_FLAGS_ALGO_FFT = 64, - IWL_INITIATOR_AP_FLAGS_MCSI_REPORT = 256, - IWL_INITIATOR_AP_FLAGS_NON_TB = 512, - IWL_INITIATOR_AP_FLAGS_TB = 1024, - IWL_INITIATOR_AP_FLAGS_SECURED = 2048, - IWL_INITIATOR_AP_FLAGS_LMR_FEEDBACK = 4096, - IWL_INITIATOR_AP_FLAGS_USE_CALIB = 8192, - IWL_INITIATOR_AP_FLAGS_PMF = 16384, - IWL_INITIATOR_AP_FLAGS_TERMINATE_ON_LMR_FEEDBACK = 32768, -}; - -enum iwl_tof_range_request_status { - IWL_TOF_RANGE_REQUEST_STATUS_SUCCESS = 0, - IWL_TOF_RANGE_REQUEST_STATUS_BUSY = 1, -}; - -enum iwl_tof_location_query { - IWL_TOF_LOC_LCI = 1, - IWL_TOF_LOC_CIVIC = 2, -}; - -enum iwl_tof_algo_type { - IWL_TOF_ALGO_TYPE_MAX_LIKE = 0, - IWL_TOF_ALGO_TYPE_LINEAR_REG = 1, - IWL_TOF_ALGO_TYPE_FFT = 2, - IWL_TOF_ALGO_TYPE_INVALID = 3, -}; - -struct iwl_mvm_ftm_pasn_entry { - struct list_head list; - u8 addr[6]; - u8 hltk[32]; - u8 tk[32]; - u8 cipher; - u8 tx_pn[6]; - u8 rx_pn[6]; - u32 flags; -}; - -struct iwl_mvm_smooth_entry { - struct list_head list; - u8 addr[6]; - s64 rtt_avg; - u64 host_time; -}; - -struct iwl_mvm_loc_entry { - struct list_head list; - u8 addr[6]; - u8 lci_len; - u8 civic_len; - u8 buf[0]; -}; - -struct cfg80211_pmsr_ftm_result { - const u8 *lci; - const u8 *civicloc; - unsigned int lci_len; - unsigned int civicloc_len; - enum nl80211_peer_measurement_ftm_failure_reasons failure_reason; - u32 num_ftmr_attempts; - u32 num_ftmr_successes; - s16 burst_index; - u8 busy_retry_time; - u8 num_bursts_exp; - u8 burst_duration; - u8 ftms_per_burst; - s32 rssi_avg; - s32 rssi_spread; - struct rate_info tx_rate; - struct rate_info rx_rate; - s64 rtt_avg; - s64 rtt_variance; - s64 rtt_spread; - s64 dist_avg; - s64 dist_variance; - s64 dist_spread; - u16 num_ftmr_attempts_valid: 1; - u16 num_ftmr_successes_valid: 1; - u16 rssi_avg_valid: 1; - u16 rssi_spread_valid: 1; - u16 tx_rate_valid: 1; - u16 rx_rate_valid: 1; - u16 rtt_avg_valid: 1; - u16 rtt_variance_valid: 1; - u16 rtt_spread_valid: 1; - u16 dist_avg_valid: 1; - u16 dist_variance_valid: 1; - u16 dist_spread_valid: 1; -}; - -struct cfg80211_pmsr_result { - u64 host_time; - u64 ap_tsf; - enum nl80211_peer_measurement_status status; - u8 addr[6]; - u8 final: 1; - u8 ap_tsf_valid: 1; - enum nl80211_peer_measurement_type type; - union { - struct cfg80211_pmsr_ftm_result ftm; - }; -}; - -struct iwl_tof_range_req_ap_entry_v2 { - u8 channel_num; - u8 bandwidth; - u8 tsf_delta_direction; - u8 ctrl_ch_position; - u8 bssid[6]; - u8 measure_type; - u8 num_of_bursts; - __le16 burst_period; - u8 samples_per_burst; - u8 retries_per_sample; - __le32 tsf_delta; - u8 location_req; - u8 asap_mode; - u8 enable_dyn_ack; - s8 rssi; - u8 algo_type; - u8 notify_mcsi; - __le16 reserved; -}; - -struct iwl_tof_range_req_cmd_v5 { - __le32 initiator_flags; - u8 request_id; - u8 initiator; - u8 one_sided_los_disable; - u8 req_timeout; - u8 report_policy; - u8 reserved0; - u8 num_of_ap; - u8 macaddr_random; - u8 range_req_bssid[6]; - u8 macaddr_template[6]; - u8 macaddr_mask[6]; - u8 ftm_rx_chains; - u8 ftm_tx_chains; - __le16 common_calib; - __le16 specific_calib; - struct iwl_tof_range_req_ap_entry_v2 ap[5]; -}; - -struct iwl_tof_range_req_ap_entry_v6 { - __le32 initiator_ap_flags; - u8 channel_num; - u8 format_bw; - u8 ctrl_ch_position; - u8 ftmr_max_retries; - u8 bssid[6]; - __le16 burst_period; - u8 samples_per_burst; - u8 num_of_bursts; - u8 sta_id; - u8 cipher; - u8 hltk[32]; - u8 tk[32]; - __le16 calib[5]; - __le16 beacon_interval; -}; - -struct iwl_tof_range_req_cmd_v9 { - __le32 initiator_flags; - u8 request_id; - u8 num_of_ap; - u8 range_req_bssid[6]; - u8 macaddr_mask[6]; - u8 macaddr_template[6]; - __le32 req_timeout_ms; - __le32 tsf_mac_id; - struct iwl_tof_range_req_ap_entry_v6 ap[5]; -}; - -struct iwl_tof_range_req_ap_entry_v3 { - __le32 initiator_ap_flags; - u8 channel_num; - u8 bandwidth; - u8 ctrl_ch_position; - u8 ftmr_max_retries; - u8 bssid[6]; - __le16 burst_period; - u8 samples_per_burst; - u8 num_of_bursts; - __le16 reserved; - __le32 tsf_delta; -}; - -struct iwl_tof_range_req_cmd_v7 { - __le32 initiator_flags; - u8 request_id; - u8 num_of_ap; - u8 range_req_bssid[6]; - u8 macaddr_mask[6]; - u8 macaddr_template[6]; - __le32 req_timeout_ms; - __le32 tsf_mac_id; - __le16 common_calib; - __le16 specific_calib; - struct iwl_tof_range_req_ap_entry_v3 ap[5]; -}; - -struct iwl_tof_range_req_ap_entry_v4 { - __le32 initiator_ap_flags; - u8 channel_num; - u8 format_bw; - u8 ctrl_ch_position; - u8 ftmr_max_retries; - u8 bssid[6]; - __le16 burst_period; - u8 samples_per_burst; - u8 num_of_bursts; - __le16 reserved; - u8 hltk[32]; - u8 tk[32]; -}; - -struct iwl_tof_range_req_cmd_v8 { - __le32 initiator_flags; - u8 request_id; - u8 num_of_ap; - u8 range_req_bssid[6]; - u8 macaddr_mask[6]; - u8 macaddr_template[6]; - __le32 req_timeout_ms; - __le32 tsf_mac_id; - __le16 common_calib; - __le16 specific_calib; - struct iwl_tof_range_req_ap_entry_v4 ap[5]; -}; - -struct iwl_tof_range_req_ap_entry_v7 { - __le32 initiator_ap_flags; - u8 channel_num; - u8 format_bw; - u8 ctrl_ch_position; - u8 ftmr_max_retries; - u8 bssid[6]; - __le16 burst_period; - u8 samples_per_burst; - u8 num_of_bursts; - u8 sta_id; - u8 cipher; - u8 hltk[32]; - u8 tk[32]; - __le16 calib[5]; - __le16 beacon_interval; - u8 rx_pn[6]; - u8 tx_pn[6]; -}; - -struct iwl_tof_range_req_cmd_v11 { - __le32 initiator_flags; - u8 request_id; - u8 num_of_ap; - u8 range_req_bssid[6]; - u8 macaddr_mask[6]; - u8 macaddr_template[6]; - __le32 req_timeout_ms; - __le32 tsf_mac_id; - struct iwl_tof_range_req_ap_entry_v7 ap[5]; -}; - -struct iwl_tof_range_req_ap_entry_v8 { - __le32 initiator_ap_flags; - u8 channel_num; - u8 format_bw; - u8 ctrl_ch_position; - u8 ftmr_max_retries; - u8 bssid[6]; - __le16 burst_period; - u8 samples_per_burst; - u8 num_of_bursts; - u8 sta_id; - u8 cipher; - u8 hltk[32]; - u8 tk[32]; - __le16 calib[5]; - __le16 beacon_interval; - u8 rx_pn[6]; - u8 tx_pn[6]; - u8 r2i_ndp_params; - u8 i2r_ndp_params; - u8 r2i_max_total_ltf; - u8 i2r_max_total_ltf; -}; - -struct iwl_tof_range_req_cmd_v12 { - __le32 initiator_flags; - u8 request_id; - u8 num_of_ap; - u8 range_req_bssid[6]; - u8 macaddr_mask[6]; - u8 macaddr_template[6]; - __le32 req_timeout_ms; - __le32 tsf_mac_id; - struct iwl_tof_range_req_ap_entry_v8 ap[5]; -}; - -struct iwl_tof_range_req_ap_entry_v9 { - __le32 initiator_ap_flags; - u8 channel_num; - u8 format_bw; - u8 ctrl_ch_position; - u8 ftmr_max_retries; - u8 bssid[6]; - __le16 burst_period; - u8 samples_per_burst; - u8 num_of_bursts; - u8 sta_id; - u8 cipher; - u8 hltk[32]; - u8 tk[32]; - __le16 calib[5]; - u16 beacon_interval; - u8 rx_pn[6]; - u8 tx_pn[6]; - u8 r2i_ndp_params; - u8 i2r_ndp_params; - u8 r2i_max_total_ltf; - u8 i2r_max_total_ltf; - u8 bss_color; - u8 band; - __le16 min_time_between_msr; -}; - -struct iwl_tof_range_req_cmd_v13 { - __le32 initiator_flags; - u8 request_id; - u8 num_of_ap; - u8 range_req_bssid[6]; - u8 macaddr_mask[6]; - u8 macaddr_template[6]; - __le32 req_timeout_ms; - __le32 tsf_mac_id; - struct iwl_tof_range_req_ap_entry_v9 ap[5]; -}; - -struct iwl_tof_range_rsp_ap_entry_ntfy_v6 { - u8 bssid[6]; - u8 measure_status; - u8 measure_bw; - __le32 rtt; - __le32 rtt_variance; - __le32 rtt_spread; - s8 rssi; - u8 rssi_spread; - u8 last_burst; - u8 refusal_period; - __le32 timestamp; - __le32 start_tsf; - __le32 rx_rate_n_flags; - __le32 tx_rate_n_flags; - __le32 t2t3_initiator; - __le32 t1t4_responder; - __le16 common_calib; - __le16 specific_calib; - __le32 papd_calib_output; - u8 rttConfidence; - u8 reserved[3]; - u8 rx_pn[6]; - u8 tx_pn[6]; -}; - -struct iwl_tof_range_abort_cmd { - u8 request_id; - u8 reserved[3]; -}; - -struct iwl_tof_range_rsp_ap_entry_ntfy_v3 { - u8 bssid[6]; - u8 measure_status; - u8 measure_bw; - __le32 rtt; - __le32 rtt_variance; - __le32 rtt_spread; - s8 rssi; - u8 rssi_spread; - u8 reserved; - u8 refusal_period; - __le32 range; - __le32 range_variance; - __le32 timestamp; - __le32 t2t3_initiator; - __le32 t1t4_responder; - __le16 common_calib; - __le16 specific_calib; - __le32 papd_calib_output; -}; - -struct iwl_tof_range_rsp_ntfy_v5 { - u8 request_id; - u8 request_status; - u8 last_in_batch; - u8 num_of_aps; - struct iwl_tof_range_rsp_ap_entry_ntfy_v3 ap[5]; -}; - -struct iwl_tof_range_rsp_ap_entry_ntfy_v4 { - u8 bssid[6]; - u8 measure_status; - u8 measure_bw; - __le32 rtt; - __le32 rtt_variance; - __le32 rtt_spread; - s8 rssi; - u8 rssi_spread; - u8 last_burst; - u8 refusal_period; - __le32 timestamp; - __le32 start_tsf; - __le32 rx_rate_n_flags; - __le32 tx_rate_n_flags; - __le32 t2t3_initiator; - __le32 t1t4_responder; - __le16 common_calib; - __le16 specific_calib; - __le32 papd_calib_output; -}; - -struct iwl_tof_range_rsp_ntfy_v6 { - u8 request_id; - u8 num_of_aps; - u8 last_report; - u8 reserved; - struct iwl_tof_range_rsp_ap_entry_ntfy_v4 ap[5]; -}; - -struct iwl_tof_range_rsp_ap_entry_ntfy_v5 { - u8 bssid[6]; - u8 measure_status; - u8 measure_bw; - __le32 rtt; - __le32 rtt_variance; - __le32 rtt_spread; - s8 rssi; - u8 rssi_spread; - u8 last_burst; - u8 refusal_period; - __le32 timestamp; - __le32 start_tsf; - __le32 rx_rate_n_flags; - __le32 tx_rate_n_flags; - __le32 t2t3_initiator; - __le32 t1t4_responder; - __le16 common_calib; - __le16 specific_calib; - __le32 papd_calib_output; - u8 rttConfidence; - u8 reserved[3]; -}; - -struct iwl_tof_range_rsp_ntfy_v7 { - u8 request_id; - u8 num_of_aps; - u8 last_report; - u8 reserved; - struct iwl_tof_range_rsp_ap_entry_ntfy_v5 ap[5]; -}; - -struct iwl_tof_range_rsp_ntfy_v8 { - u8 request_id; - u8 num_of_aps; - u8 last_report; - u8 reserved; - struct iwl_tof_range_rsp_ap_entry_ntfy_v6 ap[5]; -}; - -struct tcp_sack_block_wire { - __be32 start_seq; - __be32 end_seq; -}; - -struct xt_ecn_info { - __u8 operation; - __u8 invert; - __u8 ip_ect; - union { - struct { - __u8 ect; - } tcp; - } proto; -}; - -struct ip6t_ip6 { - struct in6_addr src; - struct in6_addr dst; - struct in6_addr smsk; - struct in6_addr dmsk; - char iniface[16]; - char outiface[16]; - unsigned char iniface_mask[16]; - unsigned char outiface_mask[16]; - __u16 proto; - __u8 tos; - __u8 flags; - __u8 invflags; -}; - -typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); - -enum rwsem_waiter_type { - RWSEM_WAITING_FOR_WRITE = 0, - RWSEM_WAITING_FOR_READ = 1, -}; - -enum rwsem_wake_type { - RWSEM_WAKE_ANY = 0, - RWSEM_WAKE_READERS = 1, - RWSEM_WAKE_READ_OWNED = 2, -}; - -enum owner_state { - OWNER_NULL = 1, - OWNER_WRITER = 2, - OWNER_READER = 4, - OWNER_NONSPINNABLE = 8, -}; - -struct rwsem_waiter { - struct list_head list; - struct task_struct *task; - enum rwsem_waiter_type type; - unsigned long timeout; - bool handoff_set; -}; - -typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); - -typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool); - -typedef void (*btf_trace_mark_victim)(void *, struct task_struct *, uid_t); - -typedef void (*btf_trace_wake_reaper)(void *, int); - -typedef void (*btf_trace_start_task_reaping)(void *, int); - -typedef void (*btf_trace_finish_task_reaping)(void *, int); - -typedef void (*btf_trace_skip_task_reaping)(void *, int); - -typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); - -struct trace_event_raw_oom_score_adj_update { - struct trace_entry ent; - pid_t pid; - char comm[16]; - short oom_score_adj; - char __data[0]; -}; - -struct trace_event_raw_reclaim_retry_zone { - struct trace_entry ent; - int node; - int zone_idx; - int order; - unsigned long reclaimable; - unsigned long available; - unsigned long min_wmark; - int no_progress_loops; - bool wmark_check; - char __data[0]; -}; - -struct trace_event_raw_mark_victim { - struct trace_entry ent; - int pid; - u32 __data_loc_comm; - unsigned long total_vm; - unsigned long anon_rss; - unsigned long file_rss; - unsigned long shmem_rss; - uid_t uid; - unsigned long pgtables; - short oom_score_adj; - char __data[0]; -}; - -struct trace_event_raw_wake_reaper { - struct trace_entry ent; - int pid; - char __data[0]; -}; - -struct trace_event_raw_start_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; -}; - -struct trace_event_raw_finish_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; -}; - -struct trace_event_raw_skip_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; -}; - -struct trace_event_raw_compact_retry { - struct trace_entry ent; - int order; - int priority; - int result; - int retries; - int max_retries; - bool ret; - char __data[0]; -}; - -struct trace_event_data_offsets_mark_victim { - u32 comm; - const void *comm_ptr_; -}; - -struct trace_event_data_offsets_oom_score_adj_update {}; - -struct trace_event_data_offsets_reclaim_retry_zone {}; - -struct trace_event_data_offsets_wake_reaper {}; - -struct trace_event_data_offsets_start_task_reaping {}; - -struct trace_event_data_offsets_finish_task_reaping {}; - -struct trace_event_data_offsets_skip_task_reaping {}; - -struct trace_event_data_offsets_compact_retry {}; - -struct inotify_event { - __s32 wd; - __u32 mask; - __u32 cookie; - __u32 len; - char name[0]; -}; - -struct debugfs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; -}; - -struct debugfs_fs_info { - struct debugfs_mount_opts mount_opts; -}; - -struct msg_queue { - struct kern_ipc_perm q_perm; - time64_t q_stime; - time64_t q_rtime; - time64_t q_ctime; - unsigned long q_cbytes; - unsigned long q_qnum; - unsigned long q_qbytes; - struct pid *q_lspid; - struct pid *q_lrpid; - struct list_head q_messages; - struct list_head q_receivers; - struct list_head q_senders; - long: 64; - long: 64; -}; - -struct msg; - -typedef int __kernel_ipc_pid_t; - -struct msqid_ds { - struct ipc_perm msg_perm; - struct msg *msg_first; - struct msg *msg_last; - __kernel_old_time_t msg_stime; - __kernel_old_time_t msg_rtime; - __kernel_old_time_t msg_ctime; - unsigned long msg_lcbytes; - unsigned long msg_lqbytes; - unsigned short msg_cbytes; - unsigned short msg_qnum; - unsigned short msg_qbytes; - __kernel_ipc_pid_t msg_lspid; - __kernel_ipc_pid_t msg_lrpid; -}; - -struct msg_receiver { - struct list_head r_list; - struct task_struct *r_tsk; - int r_mode; - long r_msgtype; - long r_maxsize; - struct msg_msg *r_msg; -}; - -struct msg_sender { - struct list_head list; - struct task_struct *tsk; - size_t msgsz; -}; - -struct msgbuf { - __kernel_long_t mtype; - char mtext[1]; -}; - -struct msqid64_ds { - struct ipc64_perm msg_perm; - long msg_stime; - long msg_rtime; - long msg_ctime; - unsigned long msg_cbytes; - unsigned long msg_qnum; - unsigned long msg_qbytes; - __kernel_pid_t msg_lspid; - __kernel_pid_t msg_lrpid; - unsigned long __unused4; - unsigned long __unused5; -}; - -struct msginfo { - int msgpool; - int msgmap; - int msgmax; - int msgmnb; - int msgmni; - int msgssz; - int msgtql; - unsigned short msgseg; -}; - -struct acomp_alg { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - int (*init)(struct crypto_acomp *); - void (*exit)(struct crypto_acomp *); - unsigned int reqsize; - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; -}; - -struct crypto_istat_compress { - atomic64_t compress_cnt; - atomic64_t compress_tlen; - atomic64_t decompress_cnt; - atomic64_t decompress_tlen; - atomic64_t err_cnt; -}; - -struct io_cancel { - struct file *file; - u64 addr; - u32 flags; - s32 fd; - u8 opcode; -}; - -struct io_uring_sync_cancel_reg { - __u64 addr; - __s32 fd; - __u32 flags; - struct __kernel_timespec timeout; - __u8 opcode; - __u8 pad[7]; - __u64 pad2[3]; -}; - -struct pci_slot_attribute { - struct attribute attr; - ssize_t (*show)(struct pci_slot *, char *); - ssize_t (*store)(struct pci_slot *, const char *, size_t); -}; - -struct devcd_entry { - struct device devcd_dev; - void *data; - size_t datalen; - struct mutex mutex; - bool delete_work; - struct module *owner; - ssize_t (*read)(char *, loff_t, size_t, void *, size_t); - void (*free)(void *); - struct delayed_work del_wk; - struct device *failing_dev; -}; - -struct iwl_mvm_scan_timing_params { - u32 suspend_time; - u32 max_out_time; -}; - -struct iwl_mvm_scan_params; - -struct iwl_scan_umac_handler { - u8 version; - int (*handler)(struct iwl_mvm *, struct ieee80211_vif *, struct iwl_mvm_scan_params *, int, int); -}; - -struct iwl_scan_probe_segment { - __le16 offset; - __le16 len; -}; - -struct iwl_scan_probe_req { - struct iwl_scan_probe_segment mac_header; - struct iwl_scan_probe_segment band_data[3]; - struct iwl_scan_probe_segment common_data; - u8 buf[512]; -}; - -struct iwl_mvm_scan_params { - enum iwl_mvm_scan_type type; - enum iwl_mvm_scan_type hb_type; - u32 n_channels; - u16 delay; - int n_ssids; - struct cfg80211_ssid *ssids; - struct ieee80211_channel **channels; - u32 flags; - u8 *mac_addr; - u8 *mac_addr_mask; - bool no_cck; - bool pass_all; - int n_match_sets; - struct iwl_scan_probe_req preq; - struct cfg80211_match_set *match_sets; - int n_scan_plans; - struct cfg80211_sched_scan_plan *scan_plans; - bool iter_notif; - struct cfg80211_scan_6ghz_params *scan_6ghz_params; - u32 n_6ghz_params; - bool scan_6ghz; - bool enable_6ghz_passive; - bool respect_p2p_go; - bool respect_p2p_go_hb; - s8 tsf_report_link_id; - short: 0; - u8 bssid[6]; -}; - -struct iwl_mvm_scan_channel_segment { - u8 start_idx; - u8 end_idx; - u8 first_channel_id; - u8 last_channel_id; - u8 channel_spacing_shift; - u8 band; -}; - -enum iwl_scan_offload_complete_status { - IWL_SCAN_OFFLOAD_COMPLETED = 1, - IWL_SCAN_OFFLOAD_ABORTED = 2, -}; - -enum iwl_scan_ebs_status { - IWL_SCAN_EBS_SUCCESS = 0, - IWL_SCAN_EBS_FAILED = 1, - IWL_SCAN_EBS_CHAN_NOT_FOUND = 2, - IWL_SCAN_EBS_INACTIVE = 3, -}; - -enum scan_config_flags { - SCAN_CONFIG_FLAG_ACTIVATE = 1, - SCAN_CONFIG_FLAG_DEACTIVATE = 2, - SCAN_CONFIG_FLAG_FORBID_CHUB_REQS = 4, - SCAN_CONFIG_FLAG_ALLOW_CHUB_REQS = 8, - SCAN_CONFIG_FLAG_SET_TX_CHAINS = 256, - SCAN_CONFIG_FLAG_SET_RX_CHAINS = 512, - SCAN_CONFIG_FLAG_SET_AUX_STA_ID = 1024, - SCAN_CONFIG_FLAG_SET_ALL_TIMES = 2048, - SCAN_CONFIG_FLAG_SET_EFFECTIVE_TIMES = 4096, - SCAN_CONFIG_FLAG_SET_CHANNEL_FLAGS = 8192, - SCAN_CONFIG_FLAG_SET_LEGACY_RATES = 16384, - SCAN_CONFIG_FLAG_SET_MAC_ADDR = 32768, - SCAN_CONFIG_FLAG_SET_FRAGMENTED = 65536, - SCAN_CONFIG_FLAG_CLEAR_FRAGMENTED = 131072, - SCAN_CONFIG_FLAG_SET_CAM_MODE = 262144, - SCAN_CONFIG_FLAG_CLEAR_CAM_MODE = 524288, - SCAN_CONFIG_FLAG_SET_PROMISC_MODE = 1048576, - SCAN_CONFIG_FLAG_CLEAR_PROMISC_MODE = 2097152, - SCAN_CONFIG_FLAG_SET_LMAC2_FRAGMENTED = 4194304, - SCAN_CONFIG_FLAG_CLEAR_LMAC2_FRAGMENTED = 8388608, -}; - -enum iwl_channel_flags { - IWL_CHANNEL_FLAG_EBS = 1, - IWL_CHANNEL_FLAG_ACCURATE_EBS = 2, - IWL_CHANNEL_FLAG_EBS_ADD = 4, - IWL_CHANNEL_FLAG_PRE_SCAN_PASSIVE2ACTIVE = 8, -}; - -enum iwl_mac_filter_flags { - MAC_FILTER_IN_PROMISC = 1, - MAC_FILTER_IN_CONTROL_AND_MGMT = 2, - MAC_FILTER_ACCEPT_GRP = 4, - MAC_FILTER_DIS_DECRYPT = 8, - MAC_FILTER_DIS_GRP_DECRYPT = 16, - MAC_FILTER_IN_BEACON = 64, - MAC_FILTER_OUT_BCAST = 256, - MAC_FILTER_IN_CRC32 = 2048, - MAC_FILTER_IN_PROBE_REQUEST = 4096, - MAC_FILTER_IN_11AX = 16384, -}; - -enum iwl_scan_channel_flags { - IWL_SCAN_CHANNEL_FLAG_EBS = 1, - IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE = 2, - IWL_SCAN_CHANNEL_FLAG_CACHE_ADD = 4, - IWL_SCAN_CHANNEL_FLAG_EBS_FRAG = 8, - IWL_SCAN_CHANNEL_FLAG_FORCE_EBS = 16, - IWL_SCAN_CHANNEL_FLAG_ENABLE_CHAN_ORDER = 32, - IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER = 64, -}; - -enum iwl_scan_priority_ext { - IWL_SCAN_PRIORITY_EXT_0_LOWEST = 0, - IWL_SCAN_PRIORITY_EXT_1 = 1, - IWL_SCAN_PRIORITY_EXT_2 = 2, - IWL_SCAN_PRIORITY_EXT_3 = 3, - IWL_SCAN_PRIORITY_EXT_4 = 4, - IWL_SCAN_PRIORITY_EXT_5 = 5, - IWL_SCAN_PRIORITY_EXT_6 = 6, - IWL_SCAN_PRIORITY_EXT_7_HIGHEST = 7, -}; - -enum iwl_mvm_lmac_scan_flags { - IWL_MVM_LMAC_SCAN_FLAG_PASS_ALL = 1, - IWL_MVM_LMAC_SCAN_FLAG_PASSIVE = 2, - IWL_MVM_LMAC_SCAN_FLAG_PRE_CONNECTION = 4, - IWL_MVM_LMAC_SCAN_FLAG_ITER_COMPLETE = 8, - IWL_MVM_LMAC_SCAN_FLAG_MULTIPLE_SSIDS = 16, - IWL_MVM_LMAC_SCAN_FLAG_FRAGMENTED = 32, - IWL_MVM_LMAC_SCAN_FLAGS_RRM_ENABLED = 64, - IWL_MVM_LMAC_SCAN_FLAG_EXTENDED_DWELL = 128, - IWL_MVM_LMAC_SCAN_FLAG_MATCH = 512, -}; - -enum iwl_tx_flags { - TX_CMD_FLG_PROT_REQUIRE = 1, - TX_CMD_FLG_WRITE_TX_POWER = 2, - TX_CMD_FLG_ACK = 8, - TX_CMD_FLG_STA_RATE = 16, - TX_CMD_FLG_BAR = 64, - TX_CMD_FLG_TXOP_PROT = 128, - TX_CMD_FLG_VHT_NDPA = 256, - TX_CMD_FLG_HT_NDPA = 512, - TX_CMD_FLG_CSI_FDBK2HOST = 1024, - TX_CMD_FLG_BT_PRIO_POS = 11, - TX_CMD_FLG_BT_PRIO_MASK = 6144, - TX_CMD_FLG_BT_DIS = 4096, - TX_CMD_FLG_SEQ_CTL = 8192, - TX_CMD_FLG_MORE_FRAG = 16384, - TX_CMD_FLG_TSF = 65536, - TX_CMD_FLG_CALIB = 131072, - TX_CMD_FLG_KEEP_SEQ_CTL = 262144, - TX_CMD_FLG_MH_PAD = 1048576, - TX_CMD_FLG_RESP_TO_DRV = 2097152, - TX_CMD_FLG_TKIP_MIC_DONE = 8388608, - TX_CMD_FLG_DUR = 33554432, - TX_CMD_FLG_FW_DROP = 67108864, - TX_CMD_FLG_EXEC_PAPD = 134217728, - TX_CMD_FLG_PAPD_TYPE = 268435456, - TX_CMD_FLG_HCCA_CHUNK = 2147483648, -}; - -enum { - IWL_RATE_6M_PLCP___2 = 13, - IWL_RATE_9M_PLCP___2 = 15, - IWL_RATE_12M_PLCP___2 = 5, - IWL_RATE_18M_PLCP___2 = 7, - IWL_RATE_24M_PLCP___2 = 9, - IWL_RATE_36M_PLCP___2 = 11, - IWL_RATE_48M_PLCP___2 = 1, - IWL_RATE_54M_PLCP___2 = 3, - IWL_RATE_1M_PLCP___2 = 10, - IWL_RATE_2M_PLCP___2 = 20, - IWL_RATE_5M_PLCP___2 = 55, - IWL_RATE_11M_PLCP___2 = 110, - IWL_RATE_INVM_PLCP = -1, -}; - -enum iwl_scan_channel_flags_lmac { - IWL_UNIFIED_SCAN_CHANNEL_FULL = 134217728, - IWL_UNIFIED_SCAN_CHANNEL_PARTIAL = 268435456, -}; - -enum iwl_umac_scan_general_flags_v2 { - IWL_UMAC_SCAN_GEN_FLAGS_V2_PERIODIC = 1, - IWL_UMAC_SCAN_GEN_FLAGS_V2_PASS_ALL = 2, - IWL_UMAC_SCAN_GEN_FLAGS_V2_NTFY_ITER_COMPLETE = 4, - IWL_UMAC_SCAN_GEN_FLAGS_V2_FRAGMENTED_LMAC1 = 8, - IWL_UMAC_SCAN_GEN_FLAGS_V2_FRAGMENTED_LMAC2 = 16, - IWL_UMAC_SCAN_GEN_FLAGS_V2_MATCH = 32, - IWL_UMAC_SCAN_GEN_FLAGS_V2_USE_ALL_RX_CHAINS = 64, - IWL_UMAC_SCAN_GEN_FLAGS_V2_ADAPTIVE_DWELL = 128, - IWL_UMAC_SCAN_GEN_FLAGS_V2_PREEMPTIVE = 256, - IWL_UMAC_SCAN_GEN_FLAGS_V2_NTF_START = 512, - IWL_UMAC_SCAN_GEN_FLAGS_V2_MULTI_SSID = 1024, - IWL_UMAC_SCAN_GEN_FLAGS_V2_FORCE_PASSIVE = 2048, - IWL_UMAC_SCAN_GEN_FLAGS_V2_TRIGGER_UHB_SCAN = 4096, - IWL_UMAC_SCAN_GEN_FLAGS_V2_6GHZ_PASSIVE_SCAN = 8192, - IWL_UMAC_SCAN_GEN_FLAGS_V2_6GHZ_PASSIVE_SCAN_FILTER_IN = 16384, - IWL_UMAC_SCAN_GEN_FLAGS_V2_OCE = 32768, -}; - -enum iwl_umac_scan_general_params_flags2 { - IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_RESPECT_P2P_GO_LB = 1, - IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_RESPECT_P2P_GO_HB = 2, - IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_DONT_TOGGLE_ANT = 4, -}; - -enum iwl_uhb_chan_cfg_flags { - IWL_UHB_CHAN_CFG_FLAG_UNSOLICITED_PROBE_RES = 16777216, - IWL_UHB_CHAN_CFG_FLAG_PSC_CHAN_NO_LISTEN = 33554432, - IWL_UHB_CHAN_CFG_FLAG_FORCE_PASSIVE = 67108864, -}; - -enum iwl_umac_scan_general_flags { - IWL_UMAC_SCAN_GEN_FLAGS_PERIODIC = 1, - IWL_UMAC_SCAN_GEN_FLAGS_OVER_BT = 2, - IWL_UMAC_SCAN_GEN_FLAGS_PASS_ALL = 4, - IWL_UMAC_SCAN_GEN_FLAGS_PASSIVE = 8, - IWL_UMAC_SCAN_GEN_FLAGS_PRE_CONNECT = 16, - IWL_UMAC_SCAN_GEN_FLAGS_ITER_COMPLETE = 32, - IWL_UMAC_SCAN_GEN_FLAGS_MULTIPLE_SSID = 64, - IWL_UMAC_SCAN_GEN_FLAGS_FRAGMENTED = 128, - IWL_UMAC_SCAN_GEN_FLAGS_RRM_ENABLED = 256, - IWL_UMAC_SCAN_GEN_FLAGS_MATCH = 512, - IWL_UMAC_SCAN_GEN_FLAGS_EXTENDED_DWELL = 1024, - IWL_UMAC_SCAN_GEN_FLAGS_PROB_REQ_DEFER_SUPP = 1024, - IWL_UMAC_SCAN_GEN_FLAGS_LMAC2_FRAGMENTED = 2048, - IWL_UMAC_SCAN_GEN_FLAGS_ADAPTIVE_DWELL = 8192, - IWL_UMAC_SCAN_GEN_FLAGS_MAX_CHNL_TIME = 16384, - IWL_UMAC_SCAN_GEN_FLAGS_PROB_REQ_HIGH_TX_RATE = 32768, -}; - -enum iwl_umac_scan_general_flags2 { - IWL_UMAC_SCAN_GEN_FLAGS2_NOTIF_PER_CHNL = 1, - IWL_UMAC_SCAN_GEN_FLAGS2_ALLOW_CHNL_REORDER = 2, -}; - -enum iwl_umac_scan_flags { - IWL_UMAC_SCAN_FLAG_PREEMPTIVE = 1, - IWL_UMAC_SCAN_FLAG_START_NOTIF = 2, -}; - -enum scan_framework_client { - SCAN_CLIENT_SCHED_SCAN = 1, - SCAN_CLIENT_NETDETECT = 2, - SCAN_CLIENT_ASSET_TRACKING = 4, -}; - -enum iwl_scan_offload_auth_alg { - IWL_AUTH_ALGO_UNSUPPORTED = 0, - IWL_AUTH_ALGO_NONE = 1, - IWL_AUTH_ALGO_PSK = 2, - IWL_AUTH_ALGO_8021X = 4, - IWL_AUTH_ALGO_SAE = 8, - IWL_AUTH_ALGO_8021X_SHA384 = 16, - IWL_AUTH_ALGO_OWE = 32, -}; - -enum iwl_scan_offload_network_type { - IWL_NETWORK_TYPE_BSS = 1, - IWL_NETWORK_TYPE_IBSS = 2, - IWL_NETWORK_TYPE_ANY = 3, -}; - -enum iwl_scan_offload_band_selection { - IWL_SCAN_OFFLOAD_SELECT_2_4 = 4, - IWL_SCAN_OFFLOAD_SELECT_5_2 = 8, - IWL_SCAN_OFFLOAD_SELECT_ANY = 12, -}; - -struct iwl_scan_umac_schedule { - __le16 interval; - u8 iter_count; - u8 reserved; -}; - -struct iwl_scan_req_umac_tail_v2 { - struct iwl_scan_umac_schedule schedule[2]; - __le16 delay; - __le16 reserved; - struct iwl_scan_probe_req preq; - struct iwl_ssid_ie direct_scan[20]; -}; - -struct iwl_scan_probe_req_v1 { - struct iwl_scan_probe_segment mac_header; - struct iwl_scan_probe_segment band_data[2]; - struct iwl_scan_probe_segment common_data; - u8 buf[512]; -}; - -struct iwl_scan_req_umac_tail_v1 { - struct iwl_scan_umac_schedule schedule[2]; - __le16 delay; - __le16 reserved; - struct iwl_scan_probe_req_v1 preq; - struct iwl_ssid_ie direct_scan[20]; -}; - -struct iwl_scan_offload_profile { - u8 ssid_index; - u8 unicast_cipher; - u8 auth_alg; - u8 network_type; - u8 band_selection; - u8 client_bitmap; - u8 reserved[2]; -}; - -struct iwl_scan_offload_profile_cfg_data { - u8 blocklist_len; - u8 num_profiles; - u8 match_notify; - u8 pass_match; - u8 active_clients; - u8 any_beacon_notify; - u8 reserved[2]; -}; - -struct iwl_scan_offload_profile_cfg { - struct iwl_scan_offload_profile profiles[8]; - struct iwl_scan_offload_profile_cfg_data data; -}; - -struct iwl_mvm_scan_iter_data { - u32 global_cnt; - struct ieee80211_vif *current_vif; - bool is_dcm_with_p2p_go; -}; - -struct iwl_scan_dwell { - u8 active; - u8 passive; - u8 fragmented; - u8 extended; -}; - -struct iwl_scan_config_v2 { - __le32 flags; - __le32 tx_chains; - __le32 rx_chains; - __le32 legacy_rates; - __le32 out_of_channel_time[2]; - __le32 suspend_time[2]; - struct iwl_scan_dwell dwell; - u8 mac_addr[6]; - u8 bcast_sta_id; - u8 channel_flags; - u8 channel_array[0]; -}; - -struct iwl_scan_config_v1 { - __le32 flags; - __le32 tx_chains; - __le32 rx_chains; - __le32 legacy_rates; - __le32 out_of_channel_time; - __le32 suspend_time; - struct iwl_scan_dwell dwell; - u8 mac_addr[6]; - u8 bcast_sta_id; - u8 channel_flags; - u8 channel_array[0]; -}; - -struct iwl_mvm_scan_respect_p2p_go_iter_data { - struct ieee80211_vif *current_vif; - bool p2p_go; - enum nl80211_band band; -}; - -struct iwl_scan_req_tx_cmd { - __le32 tx_flags; - __le32 rate_n_flags; - u8 sta_id; - u8 reserved[3]; -}; - -struct iwl_scan_schedule_lmac { - __le16 delay; - u8 iterations; - u8 full_scan_mul; -}; - -struct iwl_scan_channel_opt { - __le16 flags; - __le16 non_ebs_ratio; -}; - -struct iwl_scan_req_lmac { - __le32 reserved1; - u8 n_channels; - u8 active_dwell; - u8 passive_dwell; - u8 fragmented_dwell; - u8 extended_dwell; - u8 reserved2; - __le16 rx_chain_select; - __le32 scan_flags; - __le32 max_out_time; - __le32 suspend_time; - __le32 flags; - __le32 filter_flags; - struct iwl_scan_req_tx_cmd tx_cmd[2]; - struct iwl_ssid_ie direct_scan[20]; - __le32 scan_prio; - __le32 iter_num; - __le32 delay; - struct iwl_scan_schedule_lmac schedule[2]; - struct iwl_scan_channel_opt channel_opt[2]; - u8 data[0]; -}; - -struct iwl_scan_umac_chan_param { - u8 flags; - u8 count; - __le16 reserved; -}; - -struct iwl_scan_req_umac { - __le32 flags; - __le32 uid; - __le32 ooc_priority; - __le16 general_flags; - u8 reserved; - u8 scan_start_mac_id; - union { - struct { - u8 extended_dwell; - u8 active_dwell; - u8 passive_dwell; - u8 fragmented_dwell; - __le32 max_out_time; - __le32 suspend_time; - __le32 scan_priority; - struct iwl_scan_umac_chan_param channel; - u8 data[0]; - } v1; - struct { - u8 extended_dwell; - u8 active_dwell; - u8 passive_dwell; - u8 fragmented_dwell; - __le32 max_out_time[2]; - __le32 suspend_time[2]; - __le32 scan_priority; - struct iwl_scan_umac_chan_param channel; - u8 data[0]; - } v6; - struct { - u8 active_dwell; - u8 passive_dwell; - u8 fragmented_dwell; - u8 adwell_default_n_aps; - u8 adwell_default_n_aps_social; - u8 reserved3; - __le16 adwell_max_budget; - __le32 max_out_time[2]; - __le32 suspend_time[2]; - __le32 scan_priority; - struct iwl_scan_umac_chan_param channel; - u8 data[0]; - } v7; - struct { - u8 active_dwell[2]; - u8 reserved2; - u8 adwell_default_n_aps; - u8 adwell_default_n_aps_social; - u8 general_flags2; - __le16 adwell_max_budget; - __le32 max_out_time[2]; - __le32 suspend_time[2]; - __le32 scan_priority; - u8 passive_dwell[2]; - u8 num_of_fragments[2]; - struct iwl_scan_umac_chan_param channel; - u8 data[0]; - } v8; - struct { - u8 active_dwell[2]; - u8 adwell_default_hb_n_aps; - u8 adwell_default_lb_n_aps; - u8 adwell_default_n_aps_social; - u8 general_flags2; - __le16 adwell_max_budget; - __le32 max_out_time[2]; - __le32 suspend_time[2]; - __le32 scan_priority; - u8 passive_dwell[2]; - u8 num_of_fragments[2]; - struct iwl_scan_umac_chan_param channel; - u8 data[0]; - } v9; - }; -}; - -struct iwl_scan_channel_cfg_lmac { - __le32 flags; - __le16 channel_num; - __le16 iter_count; - __le32 iter_interval; -}; - -struct iwl_scan_channel_cfg_umac { - __le32 flags; - union { - struct { - u8 channel_num; - u8 iter_count; - __le16 iter_interval; - } v1; - struct { - u8 channel_num; - u8 band; - u8 iter_count; - u8 iter_interval; - } v2; - struct { - u8 channel_num; - u8 psd_20; - u8 iter_count; - u8 iter_interval; - } v5; - }; -}; - -struct iwl_scan_offload_blocklist { - u8 ssid[6]; - u8 reported_rssi; - u8 client_bitmap; -}; - -struct iwl_scan_offload_profile_cfg_v1 { - struct iwl_scan_offload_profile profiles[11]; - struct iwl_scan_offload_profile_cfg_data data; -}; - -struct iwl_umac_scan_abort { - __le32 uid; - __le32 flags; -}; - -struct iwl_scan_general_params_v11 { - __le16 flags; - u8 reserved; - u8 scan_start_mac_or_link_id; - u8 active_dwell[2]; - u8 adwell_default_2g; - u8 adwell_default_5g; - u8 adwell_default_social_chn; - u8 flags2; - __le16 adwell_max_budget; - __le32 max_out_of_time[2]; - __le32 suspend_time[2]; - __le32 scan_priority; - u8 passive_dwell[2]; - u8 num_of_fragments[2]; -}; - -struct iwl_scan_probe_params_v3 { - struct iwl_scan_probe_req preq; - u8 ssid_num; - u8 short_ssid_num; - u8 bssid_num; - u8 reserved; - struct iwl_ssid_ie direct_scan[20]; - __le32 short_ssid[8]; - u8 bssid_array[96]; -}; - -struct iwl_scan_channel_params_v4 { - u8 flags; - u8 count; - u8 num_of_aps_override; - u8 reserved; - struct iwl_scan_channel_cfg_umac channel_config[67]; - u8 adwell_ch_override_bitmap[16]; -}; - -struct iwl_scan_probe_params_v4 { - struct iwl_scan_probe_req preq; - u8 short_ssid_num; - u8 bssid_num; - __le16 reserved; - struct iwl_ssid_ie direct_scan[20]; - __le32 short_ssid[8]; - u8 bssid_array[96]; -}; - -struct iwl_scan_channel_params_v7 { - u8 flags; - u8 count; - u8 n_aps_override[2]; - struct iwl_scan_channel_cfg_umac channel_config[67]; -}; - -struct iwl_scan_results_notif { - u8 channel; - u8 band; - u8 probe_status; - u8 num_probe_not_sent; - __le32 duration; -}; - -struct iwl_lmac_scan_complete_notif { - u8 scanned_channels; - u8 status; - u8 bt_status; - u8 last_channel; - __le32 tsf_low; - __le32 tsf_high; - struct iwl_scan_results_notif results[0]; -}; - -struct iwl_periodic_scan_complete { - u8 last_schedule_line; - u8 last_schedule_iteration; - u8 status; - u8 ebs_status; - __le32 time_after_last_iter; - __le32 reserved; -}; - -struct iwl_scan_config { - u8 enable_cam_mode; - u8 enable_promiscouos_mode; - u8 bcast_sta_id; - u8 reserved; - __le32 tx_chains; - __le32 rx_chains; -}; - -struct iwl_umac_scan_complete { - __le32 uid; - u8 last_schedule; - u8 last_iter; - u8 status; - u8 ebs_status; - __le32 time_from_last_iter; - __le32 reserved; -}; - -struct iwl_umac_scan_iter_complete_notif { - __le32 uid; - u8 scanned_channels; - u8 status; - u8 bt_status; - u8 last_channel; - __le64 start_tsf; - struct iwl_scan_results_notif results[0]; -}; - -struct iwl_scan_periodic_parms_v1 { - struct iwl_scan_umac_schedule schedule[2]; - __le16 delay; - __le16 reserved; -}; - -struct iwl_scan_req_params_v12 { - struct iwl_scan_general_params_v11 general_params; - struct iwl_scan_channel_params_v4 channel_params; - struct iwl_scan_periodic_parms_v1 periodic_params; - struct iwl_scan_probe_params_v3 probe_params; -}; - -struct iwl_scan_req_umac_v12 { - __le32 uid; - __le32 ooc_priority; - struct iwl_scan_req_params_v12 scan_params; -}; - -struct iwl_scan_req_params_v17 { - struct iwl_scan_general_params_v11 general_params; - struct iwl_scan_channel_params_v7 channel_params; - struct iwl_scan_periodic_parms_v1 periodic_params; - struct iwl_scan_probe_params_v4 probe_params; -}; - -struct iwl_scan_req_umac_v17 { - __le32 uid; - __le32 ooc_priority; - struct iwl_scan_req_params_v17 scan_params; -}; - -enum hub_led_mode { - INDICATOR_AUTO = 0, - INDICATOR_CYCLE = 1, - INDICATOR_GREEN_BLINK = 2, - INDICATOR_GREEN_BLINK_OFF = 3, - INDICATOR_AMBER_BLINK = 4, - INDICATOR_AMBER_BLINK_OFF = 5, - INDICATOR_ALT_BLINK = 6, - INDICATOR_ALT_BLINK_OFF = 7, -} __attribute__((mode(byte))); - -enum hub_quiescing_type { - HUB_DISCONNECT = 0, - HUB_PRE_RESET = 1, - HUB_SUSPEND = 2, -}; - -enum hub_activation_type { - HUB_INIT = 0, - HUB_INIT2 = 1, - HUB_INIT3 = 2, - HUB_POST_RESET = 3, - HUB_RESUME = 4, - HUB_RESET_RESUME = 5, -}; - -struct usb_tt_clear { - struct list_head clear_list; - unsigned int tt; - u16 devinfo; - struct usb_hcd *hcd; - struct usb_host_endpoint *ep; -}; - -struct usb_qualifier_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdUSB; - __u8 bDeviceClass; - __u8 bDeviceSubClass; - __u8 bDeviceProtocol; - __u8 bMaxPacketSize0; - __u8 bNumConfigurations; - __u8 bRESERVED; -}; - -struct usbdevfs_hub_portinfo { - char nports; - char port[127]; -}; - -struct usb_set_sel_req { - __u8 u1_sel; - __u8 u1_pel; - __le16 u2_sel; - __le16 u2_pel; -}; - -struct pps_event_time { - struct timespec64 ts_real; -}; - -struct dmi_device_attribute { - struct device_attribute dev_attr; - int field; -}; - -struct mafield { - const char *prefix; - int field; -}; - -struct csum_state { - __wsum csum; - size_t off; -}; - -enum { - ETHTOOL_A_CHANNELS_UNSPEC = 0, - ETHTOOL_A_CHANNELS_HEADER = 1, - ETHTOOL_A_CHANNELS_RX_MAX = 2, - ETHTOOL_A_CHANNELS_TX_MAX = 3, - ETHTOOL_A_CHANNELS_OTHER_MAX = 4, - ETHTOOL_A_CHANNELS_COMBINED_MAX = 5, - ETHTOOL_A_CHANNELS_RX_COUNT = 6, - ETHTOOL_A_CHANNELS_TX_COUNT = 7, - ETHTOOL_A_CHANNELS_OTHER_COUNT = 8, - ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9, - __ETHTOOL_A_CHANNELS_CNT = 10, - ETHTOOL_A_CHANNELS_MAX = 9, -}; - -struct channels_reply_data { - struct ethnl_reply_data base; - struct ethtool_channels channels; -}; - -struct xt_tcp { - __u16 spts[2]; - __u16 dpts[2]; - __u8 option; - __u8 flg_mask; - __u8 flg_cmp; - __u8 invflags; -}; - -struct xt_udp { - __u16 spts[2]; - __u16 dpts[2]; - __u8 invflags; -}; - -struct ipt_icmp { - __u8 type; - __u8 code[2]; - __u8 invflags; -}; - -struct ip6t_icmp { - __u8 type; - __u8 code[2]; - __u8 invflags; -}; - -enum { - INET6_IFADDR_STATE_PREDAD = 0, - INET6_IFADDR_STATE_DAD = 1, - INET6_IFADDR_STATE_POSTDAD = 2, - INET6_IFADDR_STATE_ERRDAD = 3, - INET6_IFADDR_STATE_DEAD = 4, -}; - -enum { - IPV6_SADDR_RULE_INIT = 0, - IPV6_SADDR_RULE_LOCAL = 1, - IPV6_SADDR_RULE_SCOPE = 2, - IPV6_SADDR_RULE_PREFERRED = 3, - IPV6_SADDR_RULE_OIF = 4, - IPV6_SADDR_RULE_LABEL = 5, - IPV6_SADDR_RULE_PRIVACY = 6, - IPV6_SADDR_RULE_ORCHID = 7, - IPV6_SADDR_RULE_PREFIX = 8, - IPV6_SADDR_RULE_MAX = 9, -}; - -enum { - DAD_PROCESS = 0, - DAD_BEGIN = 1, - DAD_ABORT = 2, -}; - -enum cleanup_prefix_rt_t { - CLEANUP_PREFIX_RT_NOP = 0, - CLEANUP_PREFIX_RT_DEL = 1, - CLEANUP_PREFIX_RT_EXPIRE = 2, -}; - -enum in6_addr_gen_mode { - IN6_ADDR_GEN_MODE_EUI64 = 0, - IN6_ADDR_GEN_MODE_NONE = 1, - IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2, - IN6_ADDR_GEN_MODE_RANDOM = 3, -}; - -enum { - DEVCONF_FORWARDING = 0, - DEVCONF_HOPLIMIT = 1, - DEVCONF_MTU6 = 2, - DEVCONF_ACCEPT_RA = 3, - DEVCONF_ACCEPT_REDIRECTS = 4, - DEVCONF_AUTOCONF = 5, - DEVCONF_DAD_TRANSMITS = 6, - DEVCONF_RTR_SOLICITS = 7, - DEVCONF_RTR_SOLICIT_INTERVAL = 8, - DEVCONF_RTR_SOLICIT_DELAY = 9, - DEVCONF_USE_TEMPADDR = 10, - DEVCONF_TEMP_VALID_LFT = 11, - DEVCONF_TEMP_PREFERED_LFT = 12, - DEVCONF_REGEN_MAX_RETRY = 13, - DEVCONF_MAX_DESYNC_FACTOR = 14, - DEVCONF_MAX_ADDRESSES = 15, - DEVCONF_FORCE_MLD_VERSION = 16, - DEVCONF_ACCEPT_RA_DEFRTR = 17, - DEVCONF_ACCEPT_RA_PINFO = 18, - DEVCONF_ACCEPT_RA_RTR_PREF = 19, - DEVCONF_RTR_PROBE_INTERVAL = 20, - DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21, - DEVCONF_PROXY_NDP = 22, - DEVCONF_OPTIMISTIC_DAD = 23, - DEVCONF_ACCEPT_SOURCE_ROUTE = 24, - DEVCONF_MC_FORWARDING = 25, - DEVCONF_DISABLE_IPV6 = 26, - DEVCONF_ACCEPT_DAD = 27, - DEVCONF_FORCE_TLLAO = 28, - DEVCONF_NDISC_NOTIFY = 29, - DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30, - DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31, - DEVCONF_SUPPRESS_FRAG_NDISC = 32, - DEVCONF_ACCEPT_RA_FROM_LOCAL = 33, - DEVCONF_USE_OPTIMISTIC = 34, - DEVCONF_ACCEPT_RA_MTU = 35, - DEVCONF_STABLE_SECRET = 36, - DEVCONF_USE_OIF_ADDRS_ONLY = 37, - DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38, - DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39, - DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40, - DEVCONF_DROP_UNSOLICITED_NA = 41, - DEVCONF_KEEP_ADDR_ON_DOWN = 42, - DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43, - DEVCONF_SEG6_ENABLED = 44, - DEVCONF_SEG6_REQUIRE_HMAC = 45, - DEVCONF_ENHANCED_DAD = 46, - DEVCONF_ADDR_GEN_MODE = 47, - DEVCONF_DISABLE_POLICY = 48, - DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, - DEVCONF_NDISC_TCLASS = 50, - DEVCONF_RPL_SEG_ENABLED = 51, - DEVCONF_RA_DEFRTR_METRIC = 52, - DEVCONF_IOAM6_ENABLED = 53, - DEVCONF_IOAM6_ID = 54, - DEVCONF_IOAM6_ID_WIDE = 55, - DEVCONF_NDISC_EVICT_NOCARRIER = 56, - DEVCONF_ACCEPT_UNTRACKED_NA = 57, - DEVCONF_ACCEPT_RA_MIN_LFT = 58, - DEVCONF_MAX = 59, -}; - -enum { - IFLA_INET6_UNSPEC = 0, - IFLA_INET6_FLAGS = 1, - IFLA_INET6_CONF = 2, - IFLA_INET6_STATS = 3, - IFLA_INET6_MCAST = 4, - IFLA_INET6_CACHEINFO = 5, - IFLA_INET6_ICMP6STATS = 6, - IFLA_INET6_TOKEN = 7, - IFLA_INET6_ADDR_GEN_MODE = 8, - IFLA_INET6_RA_MTU = 9, - __IFLA_INET6_MAX = 10, -}; - -enum { - PREFIX_UNSPEC = 0, - PREFIX_ADDRESS = 1, - PREFIX_CACHEINFO = 2, - __PREFIX_MAX = 3, -}; - -enum addr_type_t { - UNICAST_ADDR = 0, - MULTICAST_ADDR = 1, - ANYCAST_ADDR = 2, -}; - -union fwnet_hwaddr { - u8 u[16]; - struct { - __be64 uniq_id; - u8 max_rec; - u8 sspd; - u8 fifo[6]; - } uc; -}; - -struct prefix_cacheinfo { - __u32 preferred_time; - __u32 valid_time; -}; - -struct prefixmsg { - unsigned char prefix_family; - unsigned char prefix_pad1; - unsigned short prefix_pad2; - int prefix_ifindex; - unsigned char prefix_type; - unsigned char prefix_len; - unsigned char prefix_flags; - unsigned char prefix_pad3; -}; - -struct in6_ifreq { - struct in6_addr ifr6_addr; - __u32 ifr6_prefixlen; - int ifr6_ifindex; -}; - -struct if6_iter_state { - struct seq_net_private p; - int bucket; - int offset; -}; - -struct inet6_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; - enum addr_type_t type; -}; - -struct ipv6_saddr_score { - int rule; - int addr_type; - struct inet6_ifaddr *ifa; - unsigned long scorebits[1]; - int scopedist; - int matchlen; -}; - -struct ipv6_saddr_dst { - const struct in6_addr *addr; - int ifindex; - int scope; - int label; - unsigned int prefs; -}; - -struct ifa6_config { - const struct in6_addr *pfx; - unsigned int plen; - u8 ifa_proto; - const struct in6_addr *peer_pfx; - u32 rt_priority; - u32 ifa_flags; - u32 preferred_lft; - u32 valid_lft; - u16 scope; -}; - -struct in6_validator_info { - struct in6_addr i6vi_addr; - struct inet6_dev *i6vi_dev; - struct netlink_ext_ack *extack; -}; - -struct ifla_cacheinfo { - __u32 max_reasm_len; - __u32 tstamp; - __u32 reachable_time; - __u32 retrans_time; -}; - -struct rate_control_alg { - struct list_head list; - const struct rate_control_ops *ops; -}; - -struct ssb_state { - struct ssb_state *shared_state; - raw_spinlock_t lock; - unsigned int disable_state; - unsigned long local_state; -}; - -enum idle_boot_override { - IDLE_NO_OVERRIDE = 0, - IDLE_HALT = 1, - IDLE_NOMWAIT = 2, - IDLE_POLL = 3, -}; - -struct fork_frame { - struct inactive_task_frame frame; - struct pt_regs regs; -}; - -struct user_desc { - unsigned int entry_number; - unsigned int base_addr; - unsigned int limit; - unsigned int seg_32bit: 1; - unsigned int contents: 2; - unsigned int read_exec_only: 1; - unsigned int limit_in_pages: 1; - unsigned int seg_not_present: 1; - unsigned int useable: 1; - unsigned int lm: 1; -}; - -typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); - -typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); - -struct trace_event_raw_task_newtask { - struct trace_entry ent; - pid_t pid; - char comm[16]; - unsigned long clone_flags; - short oom_score_adj; - char __data[0]; -}; - -struct trace_event_raw_task_rename { - struct trace_entry ent; - pid_t pid; - char oldcomm[16]; - char newcomm[16]; - short oom_score_adj; - char __data[0]; -}; - -struct vm_stack { - struct callback_head rcu; - struct vm_struct *stack_vm_area; -}; - -struct clone_args { - __u64 flags; - __u64 pidfd; - __u64 child_tid; - __u64 parent_tid; - __u64 exit_signal; - __u64 stack; - __u64 stack_size; - __u64 tls; - __u64 set_tid; - __u64 set_tid_size; - __u64 cgroup; -}; - -struct trace_event_data_offsets_task_newtask {}; - -struct trace_event_data_offsets_task_rename {}; - -typedef int (*proc_visitor)(struct task_struct *, void *); - -struct trace_probe_log { - const char *subsystem; - const char **argv; - int argc; - int index; -}; - -enum buddy { - FIRST = 0, - LAST = 1, -}; - -struct zbud_header { - struct list_head buddy; - unsigned int first_chunks; - unsigned int last_chunks; -}; - -struct zbud_pool { - spinlock_t lock; - union { - struct list_head buddied; - struct list_head unbuddied[63]; - }; - u64 pages_nr; -}; - -struct btrfs_compr_pool { - struct shrinker *shrinker; - spinlock_t lock; - struct list_head list; - int count; - int thresh; -}; - -struct bucket_item; - -struct heuristic_ws { - u8 *sample; - u32 sample_size; - struct bucket_item *bucket; - struct bucket_item *bucket_b; - struct list_head list; -}; - -struct bucket_item { - u32 count; -}; - -struct variable_validate { - efi_guid_t vendor; - char *name; - bool (*validate)(efi_char16_t *, int, u8 *, unsigned long); -}; - -struct efi_generic_dev_path { - u8 type; - u8 sub_type; - u16 length; -}; - -struct sg_io_v4; - -typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); - -struct bsg_device { - struct request_queue *queue; - struct device device; - struct cdev cdev; - int max_queue; - unsigned int timeout; - unsigned int reserved_size; - bsg_sg_io_fn *sg_io_fn; -}; - -struct sg_io_v4 { - __s32 guard; - __u32 protocol; - __u32 subprotocol; - __u32 request_len; - __u64 request; - __u64 request_tag; - __u32 request_attr; - __u32 request_priority; - __u32 request_extra; - __u32 max_response_len; - __u64 response; - __u32 dout_iovec_count; - __u32 dout_xfer_len; - __u32 din_iovec_count; - __u32 din_xfer_len; - __u64 dout_xferp; - __u64 din_xferp; - __u32 timeout; - __u32 flags; - __u64 usr_ptr; - __u32 spare_in; - __u32 driver_status; - __u32 transport_status; - __u32 device_status; - __u32 retry_delay; - __u32 info; - __u32 duration; - __u32 response_len; - __s32 din_resid; - __s32 dout_resid; - __u64 generated_tag; - __u32 spare_out; - __u32 padding; -}; - -struct io_timeout { - struct file *file; - u32 off; - u32 target_seq; - u32 repeats; - struct list_head list; - struct io_kiocb *head; - struct io_kiocb *prev; -}; - -struct io_timeout_rem { - struct file *file; - u64 addr; - struct timespec64 ts; - u32 flags; - bool ltimeout; -}; - -struct io_timeout_data { - struct io_kiocb *req; - struct hrtimer timer; - struct timespec64 ts; - enum hrtimer_mode mode; - u32 flags; -}; - -enum devm_ioremap_type { - DEVM_IOREMAP = 0, - DEVM_IOREMAP_UC = 1, - DEVM_IOREMAP_WC = 2, - DEVM_IOREMAP_NP = 3, -}; - -struct arch_io_reserve_memtype_wc_devres { - resource_size_t start; - resource_size_t size; -}; - -struct pci_osc_bit_struct { - u32 bit; - char *desc; -}; - -enum acpi_bridge_type { - ACPI_BRIDGE_TYPE_PCIE = 1, - ACPI_BRIDGE_TYPE_CXL = 2, -}; - -struct igb_reg_info { - u32 ofs; - char *name; -}; - -enum e1000_ring_flags_t { - IGB_RING_FLAG_RX_3K_BUFFER = 0, - IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1, - IGB_RING_FLAG_RX_SCTP_CSUM = 2, - IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3, - IGB_RING_FLAG_TX_CTX_IDX = 4, - IGB_RING_FLAG_TX_DETECT_HANG = 5, -}; - -enum igb_tx_flags { - IGB_TX_FLAGS_VLAN = 1, - IGB_TX_FLAGS_TSO = 2, - IGB_TX_FLAGS_TSTAMP = 4, - IGB_TX_FLAGS_IPV4 = 16, - IGB_TX_FLAGS_CSUM = 32, -}; - -enum tx_queue_prio { - TX_QUEUE_PRIO_HIGH = 0, - TX_QUEUE_PRIO_LOW = 1, -}; - -enum queue_mode { - QUEUE_MODE_STRICT_PRIORITY = 0, - QUEUE_MODE_STREAM_RESERVATION = 1, -}; - -enum ptp_clock_events { - PTP_CLOCK_ALARM = 0, - PTP_CLOCK_EXTTS = 1, - PTP_CLOCK_EXTOFF = 2, - PTP_CLOCK_PPS = 3, - PTP_CLOCK_PPSUSR = 4, -}; - -struct e1000_adv_tx_context_desc { - __le32 vlan_macip_lens; - __le32 seqnum_seed; - __le32 type_tucmd_mlhl; - __le32 mss_l4len_idx; -}; - -struct tc_query_caps_base { - enum tc_setup_type type; - void *caps; -}; - -struct tc_taprio_caps { - bool supports_queue_max_sdu: 1; - bool gate_mask_per_txq: 1; - bool broken_mqprio: 1; -}; - -struct tc_cbs_qopt_offload { - u8 enable; - s32 queue; - s32 hicredit; - s32 locredit; - s32 idleslope; - s32 sendslope; -}; - -struct tc_etf_qopt_offload { - u8 enable; - s32 queue; -}; - -struct flow_match_eth_addrs { - struct flow_dissector_key_eth_addrs *key; - struct flow_dissector_key_eth_addrs *mask; -}; - -struct flow_match_basic { - struct flow_dissector_key_basic *key; - struct flow_dissector_key_basic *mask; -}; - -struct flow_match_vlan { - struct flow_dissector_key_vlan *key; - struct flow_dissector_key_vlan *mask; -}; - -struct ptp_clock_event { - int type; - int index; - union { - u64 timestamp; - s64 offset; - struct pps_event_time pps_times; - }; -}; - -struct usb_dynid { - struct list_head node; - struct usb_device_id id; -}; - -enum bitmap_page_attr { - BITMAP_PAGE_DIRTY = 0, - BITMAP_PAGE_PENDING = 1, - BITMAP_PAGE_NEEDWRITE = 2, -}; - -typedef __u16 bitmap_counter_t; - -struct bitmap_unplug_work { - struct work_struct work; - struct bitmap *bitmap; - struct completion *done; -}; - -struct bitmap_super_s { - __le32 magic; - __le32 version; - __u8 uuid[16]; - __le64 events; - __le64 events_cleared; - __le64 sync_size; - __le32 state; - __le32 chunksize; - __le32 daemon_sleep; - __le32 write_behind; - __le32 sectors_reserved; - __le32 nodes; - __u8 cluster_name[64]; - __u8 pad[120]; -}; - -typedef struct bitmap_super_s bitmap_super_t; - -struct xdp_frame_bulk { - int count; - void *xa; - void *q[16]; -}; - -struct xdp_attachment_info { - struct bpf_prog *prog; - u32 flags; -}; - -enum ieee80211_packet_rx_flags { - IEEE80211_RX_AMSDU = 8, - IEEE80211_RX_MALFORMED_ACTION_FRM = 16, - IEEE80211_RX_DEFERRED_RELEASE = 32, -}; - -enum ___mac80211_drop_reason { - ___RX_CONTINUE = 1, - ___RX_QUEUED = 0, - ___RX_DROP_MONITOR = 131072, - ___RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073, - ___RX_DROP_M_BAD_BCN_KEYIDX = 131074, - ___RX_DROP_M_BAD_MGMT_KEYIDX = 131075, - ___RX_DROP_UNUSABLE = 65536, - ___RX_DROP_U_MIC_FAIL = 65537, - ___RX_DROP_U_REPLAY = 65538, - ___RX_DROP_U_BAD_MMIE = 65539, - ___RX_DROP_U_DUP = 65540, - ___RX_DROP_U_SPURIOUS = 65541, - ___RX_DROP_U_DECRYPT_FAIL = 65542, - ___RX_DROP_U_NO_KEY_ID = 65543, - ___RX_DROP_U_BAD_CIPHER = 65544, - ___RX_DROP_U_OOM = 65545, - ___RX_DROP_U_NONSEQ_PN = 65546, - ___RX_DROP_U_BAD_KEY_COLOR = 65547, - ___RX_DROP_U_BAD_4ADDR = 65548, - ___RX_DROP_U_BAD_AMSDU = 65549, - ___RX_DROP_U_BAD_AMSDU_CIPHER = 65550, - ___RX_DROP_U_INVALID_8023 = 65551, - ___RX_DROP_U_RUNT_ACTION = 65552, - ___RX_DROP_U_UNPROT_ACTION = 65553, - ___RX_DROP_U_UNPROT_DUAL = 65554, - ___RX_DROP_U_UNPROT_UCAST_MGMT = 65555, - ___RX_DROP_U_UNPROT_MCAST_MGMT = 65556, - ___RX_DROP_U_UNPROT_BEACON = 65557, - ___RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558, - ___RX_DROP_U_UNPROT_ROBUST_ACTION = 65559, - ___RX_DROP_U_ACTION_UNKNOWN_SRC = 65560, - ___RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561, - ___RX_DROP_U_EXPECT_DEFRAG_PROT = 65562, - ___RX_DROP_U_WEP_DEC_FAIL = 65563, - ___RX_DROP_U_NO_IV = 65564, - ___RX_DROP_U_NO_ICV = 65565, - ___RX_DROP_U_AP_RX_GROUPCAST = 65566, - ___RX_DROP_U_SHORT_MMIC = 65567, - ___RX_DROP_U_MMIC_FAIL = 65568, - ___RX_DROP_U_SHORT_TKIP = 65569, - ___RX_DROP_U_TKIP_FAIL = 65570, - ___RX_DROP_U_SHORT_CCMP = 65571, - ___RX_DROP_U_SHORT_CCMP_MIC = 65572, - ___RX_DROP_U_SHORT_GCMP = 65573, - ___RX_DROP_U_SHORT_GCMP_MIC = 65574, - ___RX_DROP_U_SHORT_CMAC = 65575, - ___RX_DROP_U_SHORT_CMAC256 = 65576, - ___RX_DROP_U_SHORT_GMAC = 65577, - ___RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578, - ___RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579, - ___RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580, - ___RX_DROP_U_NOT_PORT_CONTROL = 65581, -}; - -enum ieee80211_rx_flags { - IEEE80211_RX_CMNTR = 1, - IEEE80211_RX_BEACON_REPORTED = 2, -}; - -enum ieee80211_ht_chanwidth_values { - IEEE80211_HT_CHANWIDTH_20MHZ = 0, - IEEE80211_HT_CHANWIDTH_ANY = 1, -}; - -enum ieee80211_self_protected_actioncode { - WLAN_SP_RESERVED = 0, - WLAN_SP_MESH_PEERING_OPEN = 1, - WLAN_SP_MESH_PEERING_CONFIRM = 2, - WLAN_SP_MESH_PEERING_CLOSE = 3, - WLAN_SP_MGK_INFORM = 4, - WLAN_SP_MGK_ACK = 5, -}; - -enum ieee80211_sa_query_action { - WLAN_ACTION_SA_QUERY_REQUEST = 0, - WLAN_ACTION_SA_QUERY_RESPONSE = 1, -}; - -enum ieee80211_radiotap_channel_flags { - IEEE80211_CHAN_CCK = 32, - IEEE80211_CHAN_OFDM = 64, - IEEE80211_CHAN_2GHZ = 128, - IEEE80211_CHAN_5GHZ = 256, - IEEE80211_CHAN_DYN = 1024, - IEEE80211_CHAN_HALF = 16384, - IEEE80211_CHAN_QUARTER = 32768, -}; - -enum ieee80211_radiotap_rx_flags { - IEEE80211_RADIOTAP_F_RX_BADPLCP = 2, -}; - -enum ieee80211_radiotap_ampdu_flags { - IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN = 1, - IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN = 2, - IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN = 4, - IEEE80211_RADIOTAP_AMPDU_IS_LAST = 8, - IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR = 16, - IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN = 32, - IEEE80211_RADIOTAP_AMPDU_EOF = 64, - IEEE80211_RADIOTAP_AMPDU_EOF_KNOWN = 128, -}; - -enum ieee80211_radiotap_vht_coding { - IEEE80211_RADIOTAP_CODING_LDPC_USER0 = 1, - IEEE80211_RADIOTAP_CODING_LDPC_USER1 = 2, - IEEE80211_RADIOTAP_CODING_LDPC_USER2 = 4, - IEEE80211_RADIOTAP_CODING_LDPC_USER3 = 8, -}; - -enum ieee80211_radiotap_timestamp_flags { - IEEE80211_RADIOTAP_TIMESTAMP_FLAG_64BIT = 0, - IEEE80211_RADIOTAP_TIMESTAMP_FLAG_32BIT = 1, - IEEE80211_RADIOTAP_TIMESTAMP_FLAG_ACCURACY = 2, -}; - -enum nl80211_plink_state { - NL80211_PLINK_LISTEN = 0, - NL80211_PLINK_OPN_SNT = 1, - NL80211_PLINK_OPN_RCVD = 2, - NL80211_PLINK_CNF_RCVD = 3, - NL80211_PLINK_ESTAB = 4, - NL80211_PLINK_HOLDING = 5, - NL80211_PLINK_BLOCKED = 6, - NUM_NL80211_PLINK_STATES = 7, - MAX_NL80211_PLINK_STATES = 6, -}; - -struct ieee80211_radiotap_he_mu { - __le16 flags1; - __le16 flags2; - u8 ru_ch1[4]; - u8 ru_ch2[4]; -}; - -struct ieee80211_radiotap_lsig { - __le16 data1; - __le16 data2; -}; - -struct vector_cleanup { - struct hlist_head head; - struct timer_list timer; -}; - -struct apic_chip_data { - struct irq_cfg hw_irq_cfg; - unsigned int vector; - unsigned int prev_vector; - unsigned int cpu; - unsigned int prev_cpu; - unsigned int irq; - struct hlist_node clist; - unsigned int move_in_progress: 1; - unsigned int is_managed: 1; - unsigned int can_reserve: 1; - unsigned int has_reserved: 1; -}; - -typedef struct irq_desc *vector_irq_t[256]; - -struct kallsym_iter { - loff_t pos; - loff_t pos_mod_end; - loff_t pos_ftrace_mod_end; - loff_t pos_bpf_end; - unsigned long value; - unsigned int nameoff; - char type; - char name[512]; - char module_name[56]; - int exported; - int show_value; -}; - -struct bpf_iter__ksym { - union { - struct bpf_iter_meta *meta; - }; - union { - struct kallsym_iter *ksym; - }; -}; - -struct static_call_tramp_key { - s32 tramp; - s32 key; -}; - -struct f_owner_ex { - int type; - __kernel_pid_t pid; -}; - -struct signalfd_siginfo { - __u32 ssi_signo; - __s32 ssi_errno; - __s32 ssi_code; - __u32 ssi_pid; - __u32 ssi_uid; - __s32 ssi_fd; - __u32 ssi_tid; - __u32 ssi_band; - __u32 ssi_overrun; - __u32 ssi_trapno; - __s32 ssi_status; - __s32 ssi_int; - __u64 ssi_ptr; - __u64 ssi_utime; - __u64 ssi_stime; - __u64 ssi_addr; - __u16 ssi_addr_lsb; - __u16 __pad2; - __s32 ssi_syscall; - __u64 ssi_call_addr; - __u32 ssi_arch; - __u8 __pad[28]; -}; - -struct signalfd_ctx { - sigset_t sigmask; -}; - -struct fat_boot_fsinfo { - __le32 signature1; - __le32 reserved1[120]; - __le32 signature2; - __le32 free_clusters; - __le32 next_cluster; - __le32 reserved2[4]; -}; - -struct io_ftrunc { - struct file *file; - loff_t len; -}; - -struct dmt_videomode { - u32 dmt_id; - u32 std_2byte_code; - u32 cvt_3byte_code; - const struct fb_videomode *mode; -}; - -struct acpi_prmt_module_info { - u16 revision; - u16 length; - u8 module_guid[16]; - u16 major_rev; - u16 minor_rev; - u16 handler_info_count; - u32 handler_info_offset; - u64 mmio_list_pointer; -} __attribute__((packed)); - -struct acpi_prmt_handler_info { - u16 revision; - u16 length; - u8 handler_guid[16]; - u64 handler_address; - u64 static_data_buffer_address; - u64 acpi_param_buffer_address; -} __attribute__((packed)); - -struct prm_buffer { - u8 prm_status; - u64 efi_status; - u8 prm_cmd; - guid_t handler_guid; -} __attribute__((packed)); - -struct prm_handler_info { - guid_t guid; - efi_status_t (*handler_addr)(u64, void *); - u64 static_data_buffer_addr; - u64 acpi_param_buffer_addr; - struct list_head handler_list; -}; - -struct prm_mmio_info; - -struct prm_module_info { - guid_t guid; - u16 major_rev; - u16 minor_rev; - u16 handler_count; - struct prm_mmio_info *mmio_info; - bool updatable; - struct list_head module_list; - struct prm_handler_info handlers[0]; -}; - -struct prm_mmio_addr_range { - u64 phys_addr; - u64 virt_addr; - u32 length; -} __attribute__((packed)); - -struct prm_mmio_info { - u64 mmio_count; - struct prm_mmio_addr_range addr_ranges[0]; -}; - -struct prm_context_buffer { - char signature[4]; - u16 revision; - u16 reserved; - guid_t identifier; - u64 static_data_buffer; - struct prm_mmio_info *mmio_ranges; -}; - -struct acpi_gpe_walk_info { - struct acpi_namespace_node *gpe_device; - struct acpi_gpe_block_info *gpe_block; - u16 count; - acpi_owner_id owner_id; - u8 execute_by_owner_id; -}; - -struct acpi_reg_walk_info { - u32 function; - u32 reg_run_count; - acpi_adr_space_type space_id; -}; - -struct acpi_connection_info { - u8 *connection; - u16 length; - u8 access_length; -}; - -struct acpi_ffh_info { - u64 offset; - u64 length; -}; - -struct acpi_exception_info { - char *name; -}; - -struct acpi_table_spcr { - struct acpi_table_header header; - u8 interface_type; - u8 reserved[3]; - struct acpi_generic_address serial_port; - u8 interrupt_type; - u8 pc_interrupt; - u32 interrupt; - u8 baud_rate; - u8 parity; - u8 stop_bits; - u8 flow_control; - u8 terminal_type; - u8 reserved1; - u16 pci_device_id; - u16 pci_vendor_id; - u8 pci_bus; - u8 pci_device; - u8 pci_function; - u32 pci_flags; - u8 pci_segment; - u32 reserved2; -} __attribute__((packed)); - -struct devm_clk_state { - struct clk *clk; - void (*exit)(struct clk *); -}; - -struct clk_bulk_devres { - struct clk_bulk_data *clks; - int num_clks; -}; - -struct container_dev { - struct device dev; - int (*offline)(struct container_dev *); -}; - -struct ich8_hsflctl { - u16 flcgo: 1; - u16 flcycle: 2; - u16 reserved: 5; - u16 fldbcount: 2; - u16 flockdn: 6; -}; - -union ich8_hws_flash_ctrl { - struct ich8_hsflctl hsf_ctrl; - u16 regval; -}; - -struct ich8_hsfsts { - u16 flcdone: 1; - u16 flcerr: 1; - u16 dael: 1; - u16 berasesz: 2; - u16 flcinprog: 1; - u16 reserved1: 2; - u16 reserved2: 6; - u16 fldesvalid: 1; - u16 flockdn: 1; -}; - -union ich8_hws_flash_status { - struct ich8_hsfsts hsf_status; - u16 regval; -}; - -struct ich8_pr { - u32 base: 13; - u32 reserved1: 2; - u32 rpe: 1; - u32 limit: 13; - u32 reserved2: 2; - u32 wpe: 1; -}; - -union ich8_flash_protected_range { - struct ich8_pr range; - u32 regval; -}; - -enum iwl_sf_scenario { - SF_SCENARIO_SINGLE_UNICAST = 0, - SF_SCENARIO_AGG_UNICAST = 1, - SF_SCENARIO_MULTICAST = 2, - SF_SCENARIO_BA_RESP = 3, - SF_SCENARIO_TX_RESP = 4, - SF_NUM_SCENARIO = 5, -}; - -struct iwl_sf_cfg_cmd { - __le32 state; - __le32 watermark[2]; - __le32 long_delay_timeouts[10]; - __le32 full_on_timeouts[10]; -}; - -struct iwl_mvm_active_iface_iterator_data { - struct ieee80211_vif *ignore_vif; - struct ieee80211_sta *sta_vif_ap_sta; - enum iwl_sf_state sta_vif_state; - u32 num_active_macs; -}; - -typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); - -struct linear_c { - struct dm_dev *dev; - sector_t start; -}; - -struct neigh_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table neigh_vars[22]; -}; - -enum { - NDTA_UNSPEC = 0, - NDTA_NAME = 1, - NDTA_THRESH1 = 2, - NDTA_THRESH2 = 3, - NDTA_THRESH3 = 4, - NDTA_CONFIG = 5, - NDTA_PARMS = 6, - NDTA_STATS = 7, - NDTA_GC_INTERVAL = 8, - NDTA_PAD = 9, - __NDTA_MAX = 10, -}; - -enum { - NDTPA_UNSPEC = 0, - NDTPA_IFINDEX = 1, - NDTPA_REFCNT = 2, - NDTPA_REACHABLE_TIME = 3, - NDTPA_BASE_REACHABLE_TIME = 4, - NDTPA_RETRANS_TIME = 5, - NDTPA_GC_STALETIME = 6, - NDTPA_DELAY_PROBE_TIME = 7, - NDTPA_QUEUE_LEN = 8, - NDTPA_APP_PROBES = 9, - NDTPA_UCAST_PROBES = 10, - NDTPA_MCAST_PROBES = 11, - NDTPA_ANYCAST_DELAY = 12, - NDTPA_PROXY_DELAY = 13, - NDTPA_PROXY_QLEN = 14, - NDTPA_LOCKTIME = 15, - NDTPA_QUEUE_LENBYTES = 16, - NDTPA_MCAST_REPROBES = 17, - NDTPA_PAD = 18, - NDTPA_INTERVAL_PROBE_TIME_MS = 19, - __NDTPA_MAX = 20, -}; - -struct neigh_dump_filter { - int master_idx; - int dev_idx; -}; - -struct ndtmsg { - __u8 ndtm_family; - __u8 ndtm_pad1; - __u16 ndtm_pad2; -}; - -struct ndt_config { - __u16 ndtc_key_len; - __u16 ndtc_entry_size; - __u32 ndtc_entries; - __u32 ndtc_last_flush; - __u32 ndtc_last_rand; - __u32 ndtc_hash_rnd; - __u32 ndtc_hash_mask; - __u32 ndtc_hash_chain_gc; - __u32 ndtc_proxy_qlen; -}; - -struct ndt_stats { - __u64 ndts_allocs; - __u64 ndts_destroys; - __u64 ndts_hash_grows; - __u64 ndts_res_failed; - __u64 ndts_lookups; - __u64 ndts_hits; - __u64 ndts_rcv_probes_mcast; - __u64 ndts_rcv_probes_ucast; - __u64 ndts_periodic_gc_runs; - __u64 ndts_forced_gc_runs; - __u64 ndts_table_fulls; -}; - -enum nft_exthdr_attributes { - NFTA_EXTHDR_UNSPEC = 0, - NFTA_EXTHDR_DREG = 1, - NFTA_EXTHDR_TYPE = 2, - NFTA_EXTHDR_OFFSET = 3, - NFTA_EXTHDR_LEN = 4, - NFTA_EXTHDR_FLAGS = 5, - NFTA_EXTHDR_OP = 6, - NFTA_EXTHDR_SREG = 7, - __NFTA_EXTHDR_MAX = 8, -}; - -enum nft_exthdr_op { - NFT_EXTHDR_OP_IPV6 = 0, - NFT_EXTHDR_OP_TCPOPT = 1, - NFT_EXTHDR_OP_IPV4 = 2, - NFT_EXTHDR_OP_SCTP = 3, - NFT_EXTHDR_OP_DCCP = 4, - __NFT_EXTHDR_OP_MAX = 5, -}; - -enum nft_exthdr_flags { - NFT_EXTHDR_F_PRESENT = 1, -}; - -enum { - DCCPO_PADDING = 0, - DCCPO_MANDATORY = 1, - DCCPO_MIN_RESERVED = 3, - DCCPO_MAX_RESERVED = 31, - DCCPO_CHANGE_L = 32, - DCCPO_CONFIRM_L = 33, - DCCPO_CHANGE_R = 34, - DCCPO_CONFIRM_R = 35, - DCCPO_NDP_COUNT = 37, - DCCPO_ACK_VECTOR_0 = 38, - DCCPO_ACK_VECTOR_1 = 39, - DCCPO_TIMESTAMP = 41, - DCCPO_TIMESTAMP_ECHO = 42, - DCCPO_ELAPSED_TIME = 43, - DCCPO_MAX = 45, - DCCPO_MIN_RX_CCID_SPECIFIC = 128, - DCCPO_MAX_RX_CCID_SPECIFIC = 191, - DCCPO_MIN_TX_CCID_SPECIFIC = 192, - DCCPO_MAX_TX_CCID_SPECIFIC = 255, -}; - -enum dccp_pkt_type { - DCCP_PKT_REQUEST = 0, - DCCP_PKT_RESPONSE = 1, - DCCP_PKT_DATA = 2, - DCCP_PKT_ACK = 3, - DCCP_PKT_DATAACK = 4, - DCCP_PKT_CLOSEREQ = 5, - DCCP_PKT_CLOSE = 6, - DCCP_PKT_RESET = 7, - DCCP_PKT_SYNC = 8, - DCCP_PKT_SYNCACK = 9, - DCCP_PKT_INVALID = 10, -}; - -struct dccp_hdr { - __be16 dccph_sport; - __be16 dccph_dport; - __u8 dccph_doff; - __u8 dccph_cscov: 4; - __u8 dccph_ccval: 4; - __sum16 dccph_checksum; - __u8 dccph_x: 1; - __u8 dccph_type: 4; - __u8 dccph_reserved: 3; - __u8 dccph_seq2; - __be16 dccph_seq; -}; - -struct nft_exthdr { - u8 type; - u8 offset; - u8 len; - u8 op; - u8 dreg; - u8 sreg; - u8 flags; -}; - -struct sctp_chunkhdr { - __u8 type; - __u8 flags; - __be16 length; -}; - -struct brnf_frag_data { - char mac[22]; - u8 encap_size; - u8 size; - u16 vlan_tci; - __be16 vlan_proto; -}; - -enum nf_br_hook_priorities { - NF_BR_PRI_FIRST = -2147483648, - NF_BR_PRI_NAT_DST_BRIDGED = -300, - NF_BR_PRI_FILTER_BRIDGED = -200, - NF_BR_PRI_BRNF = 0, - NF_BR_PRI_NAT_DST_OTHER = 100, - NF_BR_PRI_FILTER_OTHER = 200, - NF_BR_PRI_NAT_SRC = 300, - NF_BR_PRI_LAST = 2147483647, -}; - -struct brnf_net { - bool enabled; - struct ctl_table_header *ctl_hdr; - int call_iptables; - int call_ip6tables; - int call_arptables; - int filter_vlan_tagged; - int filter_pppoe_tagged; - int pass_vlan_indev; -}; - -enum cpio_fields { - C_MAGIC = 0, - C_INO = 1, - C_MODE = 2, - C_UID = 3, - C_GID = 4, - C_NLINK = 5, - C_MTIME = 6, - C_FILESIZE = 7, - C_MAJ = 8, - C_MIN = 9, - C_RMAJ = 10, - C_RMIN = 11, - C_NAMESIZE = 12, - C_CHKSUM = 13, - C_NFIELDS = 14, -}; - -struct klist_waiter { - struct list_head list; - struct klist_node *node; - struct task_struct *process; - int woken; -}; - -struct radix_tree_preload { - local_lock_t lock; - unsigned int nr; - struct xa_node *nodes; -}; - -typedef void (*btf_trace_nmi_handler)(void *, void *, s64, int); - -struct nmi_stats { - unsigned int normal; - unsigned int unknown; - unsigned int external; - unsigned int swallow; - unsigned long recv_jiffies; - unsigned long idt_seq; - unsigned long idt_nmi_seq; - unsigned long idt_ignored; - atomic_long_t idt_calls; - unsigned long idt_seq_snap; - unsigned long idt_nmi_seq_snap; - unsigned long idt_ignored_snap; - long idt_calls_snap; -}; - -enum nmi_states { - NMI_NOT_RUNNING = 0, - NMI_EXECUTING = 1, - NMI_LATCHED = 2, -}; - -struct nmi_desc { - raw_spinlock_t lock; - struct list_head head; -}; - -struct trace_event_raw_nmi_handler { - struct trace_entry ent; - void *handler; - s64 delta_ns; - int handled; - char __data[0]; -}; - -struct trace_event_data_offsets_nmi_handler {}; - -enum { - AFFINITY = 0, - AFFINITY_LIST = 1, - EFFECTIVE = 2, - EFFECTIVE_LIST = 3, -}; - -enum rcutorture_type { - RCU_FLAVOR = 0, - RCU_TASKS_FLAVOR = 1, - RCU_TASKS_RUDE_FLAVOR = 2, - RCU_TASKS_TRACING_FLAVOR = 3, - RCU_TRIVIAL_FLAVOR = 4, - SRCU_FLAVOR = 5, - INVALID_RCU_FLAVOR = 6, -}; - -typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); - -typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); - -typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); - -typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); - -typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); - -typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); - -typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); - -typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); - -typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); - -typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); - -typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); - -typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); - -typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); - -enum cgroup_opt_features { - OPT_FEATURE_PRESSURE = 0, - OPT_FEATURE_COUNT = 1, -}; - -enum cfile_flags { - CFILE_HIDDEN = 1, -}; - -enum cgroup2_param { - Opt_nsdelegate = 0, - Opt_favordynmods___2 = 1, - Opt_memory_localevents = 2, - Opt_memory_recursiveprot = 3, - Opt_memory_hugetlb_accounting = 4, - nr__cgroup2_params = 5, -}; - -struct trace_event_raw_cgroup_root { - struct trace_entry ent; - int root; - u16 ss_mask; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_cgroup { - struct trace_entry ent; - int root; - int level; - u64 id; - u32 __data_loc_path; - char __data[0]; -}; - -struct trace_event_raw_cgroup_migrate { - struct trace_entry ent; - int dst_root; - int dst_level; - u64 dst_id; - int pid; - u32 __data_loc_dst_path; - u32 __data_loc_comm; - char __data[0]; -}; - -struct trace_event_raw_cgroup_event { - struct trace_entry ent; - int root; - int level; - u64 id; - u32 __data_loc_path; - int val; - char __data[0]; -}; - -struct trace_event_data_offsets_cgroup_root { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_cgroup { - u32 path; - const void *path_ptr_; -}; - -struct trace_event_data_offsets_cgroup_migrate { - u32 dst_path; - const void *dst_path_ptr_; - u32 comm; - const void *comm_ptr_; -}; - -struct trace_event_data_offsets_cgroup_event { - u32 path; - const void *path_ptr_; -}; - -struct prop_handler { - struct hlist_node node; - const char *xattr_name; - int (*validate)(const struct btrfs_inode *, const char *, size_t); - int (*apply)(struct inode *, const char *, size_t); - const char * (*extract)(struct inode *); - bool (*ignore)(const struct btrfs_inode *); - int inheritable; -}; - -struct crypto_istat_hash { - atomic64_t hash_cnt; - atomic64_t hash_tlen; - atomic64_t err_cnt; -}; - -struct io_splice { - struct file *file_out; - loff_t off_out; - loff_t off_in; - u64 len; - int splice_fd_in; - unsigned int flags; -}; - -struct font_data { - unsigned int extra[4]; - const unsigned char data[0]; -}; - -struct nvs_region { - __u64 phys_start; - __u64 size; - struct list_head node; -}; - -struct nvs_page { - unsigned long phys_start; unsigned int size; - void *kaddr; - void *data; - bool unmap; - struct list_head node; + struct ipt_entry entrytable[0]; }; -struct vt_event { - unsigned int event; - unsigned int oldev; - unsigned int newev; - unsigned int pad[4]; -}; - -struct vt_event_wait { - struct list_head list; - struct vt_event event; - int done; -}; - -struct unipair; - -struct unimapdesc { - unsigned short entry_ct; - struct unipair __attribute__((btf_type_tag("user"))) *entries; -}; - -struct unipair { - unsigned short unicode; - unsigned short fontpos; -}; - -struct vt_stat { - unsigned short v_active; - unsigned short v_signal; - unsigned short v_state; -}; - -struct vt_sizes { - unsigned short v_rows; - unsigned short v_cols; - unsigned short v_scrollsize; -}; - -struct vt_setactivate { - unsigned int console; - struct vt_mode mode; -}; - -struct vt_consize { - unsigned short v_rows; - unsigned short v_cols; - unsigned short v_vlin; - unsigned short v_clin; - unsigned short v_vcol; - unsigned short v_ccol; -}; - -struct scsi_dev_info_list { - struct list_head dev_info_list; - char vendor[8]; - char model[16]; - blist_flags_t flags; - unsigned int compatible; -}; - -struct scsi_dev_info_list_table { - struct list_head node; - struct list_head scsi_dev_info_list; - const char *name; - int key; -}; - -struct phylib_stubs { - int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); - int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); -}; - -struct phy_fixup { - struct list_head list; - char bus_id[64]; - u32 phy_uid; - u32 phy_uid_mask; - int (*run)(struct phy_device *); -}; - -struct sfp_eeprom_id; - -struct sfp_upstream_ops { - void (*attach)(void *, struct sfp_bus *); - void (*detach)(void *, struct sfp_bus *); - int (*module_insert)(void *, const struct sfp_eeprom_id *); - void (*module_remove)(void *); - int (*module_start)(void *); - void (*module_stop)(void *); - void (*link_down)(void *); - void (*link_up)(void *); - int (*connect_phy)(void *, struct phy_device *); - void (*disconnect_phy)(void *); -}; - -struct sfp_eeprom_base { - u8 phys_id; - u8 phys_ext_id; - u8 connector; - u8 if_1x_copper_passive: 1; - u8 if_1x_copper_active: 1; - u8 if_1x_lx: 1; - u8 if_1x_sx: 1; - u8 e10g_base_sr: 1; - u8 e10g_base_lr: 1; - u8 e10g_base_lrm: 1; - u8 e10g_base_er: 1; - u8 sonet_oc3_short_reach: 1; - u8 sonet_oc3_smf_intermediate_reach: 1; - u8 sonet_oc3_smf_long_reach: 1; - u8 unallocated_5_3: 1; - u8 sonet_oc12_short_reach: 1; - u8 sonet_oc12_smf_intermediate_reach: 1; - u8 sonet_oc12_smf_long_reach: 1; - u8 unallocated_5_7: 1; - u8 sonet_oc48_short_reach: 1; - u8 sonet_oc48_intermediate_reach: 1; - u8 sonet_oc48_long_reach: 1; - u8 sonet_reach_bit2: 1; - u8 sonet_reach_bit1: 1; - u8 sonet_oc192_short_reach: 1; - u8 escon_smf_1310_laser: 1; - u8 escon_mmf_1310_led: 1; - u8 e1000_base_sx: 1; - u8 e1000_base_lx: 1; - u8 e1000_base_cx: 1; - u8 e1000_base_t: 1; - u8 e100_base_lx: 1; - u8 e100_base_fx: 1; - u8 e_base_bx10: 1; - u8 e_base_px: 1; - u8 fc_tech_electrical_inter_enclosure: 1; - u8 fc_tech_lc: 1; - u8 fc_tech_sa: 1; - u8 fc_ll_m: 1; - u8 fc_ll_l: 1; - u8 fc_ll_i: 1; - u8 fc_ll_s: 1; - u8 fc_ll_v: 1; - u8 unallocated_8_0: 1; - u8 unallocated_8_1: 1; - u8 sfp_ct_passive: 1; - u8 sfp_ct_active: 1; - u8 fc_tech_ll: 1; - u8 fc_tech_sl: 1; - u8 fc_tech_sn: 1; - u8 fc_tech_electrical_intra_enclosure: 1; - u8 fc_media_sm: 1; - u8 unallocated_9_1: 1; - u8 fc_media_m5: 1; - u8 fc_media_m6: 1; - u8 fc_media_tv: 1; - u8 fc_media_mi: 1; - u8 fc_media_tp: 1; - u8 fc_media_tw: 1; - u8 fc_speed_100: 1; - u8 unallocated_10_1: 1; - u8 fc_speed_200: 1; - u8 fc_speed_3200: 1; - u8 fc_speed_400: 1; - u8 fc_speed_1600: 1; - u8 fc_speed_800: 1; - u8 fc_speed_1200: 1; - u8 encoding; - u8 br_nominal; - u8 rate_id; - u8 link_len[6]; - char vendor_name[16]; - u8 extended_cc; - char vendor_oui[3]; - char vendor_pn[16]; - char vendor_rev[4]; - union { - __be16 optical_wavelength; - __be16 cable_compliance; - struct { - u8 sff8431_app_e: 1; - u8 fc_pi_4_app_h: 1; - u8 reserved60_2: 6; - u8 reserved61: 8; - } passive; - struct { - u8 sff8431_app_e: 1; - u8 fc_pi_4_app_h: 1; - u8 sff8431_lim: 1; - u8 fc_pi_4_lim: 1; - u8 reserved60_4: 4; - u8 reserved61: 8; - } active; - }; - u8 reserved62; - u8 cc_base; -}; - -struct sfp_eeprom_ext { - __be16 options; - u8 br_max; - u8 br_min; - char vendor_sn[16]; - char datecode[8]; - u8 diagmon; - u8 enhopts; - u8 sff8472_compliance; - u8 cc_ext; -}; - -struct sfp_eeprom_id { - struct sfp_eeprom_base base; - struct sfp_eeprom_ext ext; -}; - -enum { - TX_STATUS_SUCCESS = 1, - TX_STATUS_DIRECT_DONE = 2, - TX_STATUS_POSTPONE_DELAY = 64, - TX_STATUS_POSTPONE_FEW_BYTES = 65, - TX_STATUS_POSTPONE_BT_PRIO = 66, - TX_STATUS_POSTPONE_QUIET_PERIOD = 67, - TX_STATUS_POSTPONE_CALC_TTAK = 68, - TX_STATUS_FAIL_INTERNAL_CROSSED_RETRY = 129, - TX_STATUS_FAIL_SHORT_LIMIT = 130, - TX_STATUS_FAIL_LONG_LIMIT = 131, - TX_STATUS_FAIL_FIFO_UNDERRUN = 132, - TX_STATUS_FAIL_DRAIN_FLOW = 133, - TX_STATUS_FAIL_RFKILL_FLUSH = 134, - TX_STATUS_FAIL_LIFE_EXPIRE = 135, - TX_STATUS_FAIL_DEST_PS = 136, - TX_STATUS_FAIL_HOST_ABORTED = 137, - TX_STATUS_FAIL_BT_RETRY = 138, - TX_STATUS_FAIL_STA_INVALID = 139, - TX_STATUS_FAIL_FRAG_DROPPED = 140, - TX_STATUS_FAIL_TID_DISABLE = 141, - TX_STATUS_FAIL_FIFO_FLUSHED = 142, - TX_STATUS_FAIL_INSUFFICIENT_CF_POLL = 143, - TX_STATUS_FAIL_PASSIVE_NO_RX = 144, - TX_STATUS_FAIL_NO_BEACON_ON_RADAR = 145, -}; - -enum { - AGG_TX_STATE_TRANSMITTED = 0, - AGG_TX_STATE_UNDERRUN_MSK = 1, - AGG_TX_STATE_BT_PRIO_MSK = 2, - AGG_TX_STATE_FEW_BYTES_MSK = 4, - AGG_TX_STATE_ABORT_MSK = 8, - AGG_TX_STATE_LAST_SENT_TTL_MSK = 16, - AGG_TX_STATE_LAST_SENT_TRY_CNT_MSK = 32, - AGG_TX_STATE_LAST_SENT_BT_KILL_MSK = 64, - AGG_TX_STATE_SCD_QUERY_MSK = 128, - AGG_TX_STATE_TEST_BAD_CRC32_MSK = 256, - AGG_TX_STATE_RESPONSE_MSK = 511, - AGG_TX_STATE_DUMP_TX_MSK = 512, - AGG_TX_STATE_DELAY_TX_MSK = 1024, -}; - -enum { - TX_STATUS_MSK = 255, - TX_STATUS_DELAY_MSK = 64, - TX_STATUS_ABORT_MSK = 128, - TX_PACKET_MODE_MSK = 65280, - TX_FIFO_NUMBER_MSK = 458752, - TX_RESERVED = 7864320, - TX_POWER_PA_DETECT_MSK = 2139095040, - TX_ABORT_REQUIRED_MSK = 2147483648, -}; - -struct iwl_compressed_ba_resp { - __le32 sta_addr_lo32; - __le16 sta_addr_hi16; - __le16 reserved; - u8 sta_id; - u8 tid; - __le16 seq_ctl; - __le64 bitmap; - __le16 scd_flow; - __le16 scd_ssn; - u8 txed; - u8 txed_2_done; - __le16 reserved1; -} __attribute__((packed)); - -struct netdev_lag_lower_state_info { - u8 link_up: 1; - u8 tx_enabled: 1; -}; - -struct net_failover_info { - struct net_device __attribute__((btf_type_tag("rcu"))) *primary_dev; - struct net_device __attribute__((btf_type_tag("rcu"))) *standby_dev; - struct rtnl_link_stats64 primary_stats; - struct rtnl_link_stats64 standby_stats; - struct rtnl_link_stats64 failover_stats; - spinlock_t stats_lock; -}; - -enum check_states { - check_state_idle = 0, - check_state_run = 1, - check_state_run_q = 2, - check_state_run_pq = 3, - check_state_check_result = 4, - check_state_compute_run = 5, - check_state_compute_result = 6, -}; - -enum reconstruct_states { - reconstruct_state_idle = 0, - reconstruct_state_prexor_drain_run = 1, - reconstruct_state_drain_run = 2, - reconstruct_state_run = 3, - reconstruct_state_prexor_drain_result = 4, - reconstruct_state_drain_result = 5, - reconstruct_state_result = 6, -}; - -enum { - STRIPE_ACTIVE = 0, - STRIPE_HANDLE = 1, - STRIPE_SYNC_REQUESTED = 2, - STRIPE_SYNCING = 3, - STRIPE_INSYNC = 4, - STRIPE_REPLACED = 5, - STRIPE_PREREAD_ACTIVE = 6, - STRIPE_DELAYED = 7, - STRIPE_DEGRADED = 8, - STRIPE_BIT_DELAY = 9, - STRIPE_EXPANDING = 10, - STRIPE_EXPAND_SOURCE = 11, - STRIPE_EXPAND_READY = 12, - STRIPE_IO_STARTED = 13, - STRIPE_FULL_WRITE = 14, - STRIPE_BIOFILL_RUN = 15, - STRIPE_COMPUTE_RUN = 16, - STRIPE_ON_UNPLUG_LIST = 17, - STRIPE_DISCARD = 18, - STRIPE_ON_RELEASE_LIST = 19, - STRIPE_BATCH_READY = 20, - STRIPE_BATCH_ERR = 21, - STRIPE_BITMAP_PENDING = 22, - STRIPE_LOG_TRAPPED = 23, - STRIPE_R5C_CACHING = 24, - STRIPE_R5C_PARTIAL_STRIPE = 25, - STRIPE_R5C_FULL_STRIPE = 26, - STRIPE_R5C_PREFLUSH = 27, -}; - -enum r5_cache_state { - R5_INACTIVE_BLOCKED = 0, - R5_ALLOC_MORE = 1, - R5_DID_ALLOC = 2, - R5C_LOG_TIGHT = 3, - R5C_LOG_CRITICAL = 4, - R5C_EXTRA_PAGE_IN_USE = 5, -}; - -enum r5dev_flags { - R5_UPTODATE = 0, - R5_LOCKED = 1, - R5_DOUBLE_LOCKED = 2, - R5_OVERWRITE = 3, - R5_Insync = 4, - R5_Wantread = 5, - R5_Wantwrite = 6, - R5_Overlap = 7, - R5_ReadNoMerge = 8, - R5_ReadError = 9, - R5_ReWrite = 10, - R5_Expanded = 11, - R5_Wantcompute = 12, - R5_Wantfill = 13, - R5_Wantdrain = 14, - R5_WantFUA = 15, - R5_SyncIO = 16, - R5_WriteError = 17, - R5_MadeGood = 18, - R5_ReadRepl = 19, - R5_MadeGoodRepl = 20, - R5_NeedReplace = 21, - R5_WantReplace = 22, - R5_Discard = 23, - R5_SkipCopy = 24, - R5_InJournal = 25, - R5_OrigPageUPTDODATE = 26, -}; - -enum stripe_result { - STRIPE_SUCCESS = 0, - STRIPE_RETRY = 1, - STRIPE_SCHEDULE_AND_RETRY = 2, - STRIPE_FAIL = 3, - STRIPE_WAIT_RESHAPE = 4, -}; - -enum { - PARITY_DISABLE_RMW = 0, - PARITY_ENABLE_RMW = 1, - PARITY_PREFER_RMW = 2, -}; - -enum { - STRIPE_OP_BIOFILL = 0, - STRIPE_OP_COMPUTE_BLK = 1, - STRIPE_OP_PREXOR = 2, - STRIPE_OP_BIODRAIN = 3, - STRIPE_OP_RECONSTRUCT = 4, - STRIPE_OP_CHECK = 5, - STRIPE_OP_PARTIAL_PARITY = 6, -}; - -enum { - SYNDROME_SRC_ALL = 0, - SYNDROME_SRC_WANT_DRAIN = 1, - SYNDROME_SRC_WRITTEN = 2, -}; - -struct stripe_operations { - int target; - int target2; - enum sum_check_flags zero_sum_result; -}; - -struct r5dev { - struct bio req; - struct bio rreq; - struct bio_vec vec; - struct bio_vec rvec; - struct page *page; - struct page *orig_page; - unsigned int offset; - struct bio *toread; - struct bio *read; - struct bio *towrite; - struct bio *written; - sector_t sector; - unsigned long flags; - u32 log_checksum; - unsigned short write_hint; -}; - -struct r5conf; - -struct r5worker_group; - -struct r5l_io_unit; - -struct ppl_io_unit; - -struct stripe_head { - struct hlist_node hash; - struct list_head lru; - struct llist_node release_list; - struct r5conf *raid_conf; - short generation; - sector_t sector; - short pd_idx; - short qd_idx; - short ddf_layout; - short hash_lock_index; - unsigned long state; - atomic_t count; - int bm_seq; - int disks; - int overwrite_disks; - enum check_states check_state; - enum reconstruct_states reconstruct_state; - spinlock_t stripe_lock; - int cpu; - struct r5worker_group *group; - struct stripe_head *batch_head; - spinlock_t batch_lock; - struct list_head batch_list; - union { - struct r5l_io_unit *log_io; - struct ppl_io_unit *ppl_io; - }; - struct list_head log_list; - sector_t log_start; - struct list_head r5c; - struct page *ppl_page; - struct stripe_operations ops; - struct r5dev dev[0]; -}; - -struct raid5_percpu; - -struct disk_info; - -struct r5l_log; - -struct r5pending_data; - -struct r5conf { - struct hlist_head *stripe_hashtbl; - spinlock_t hash_locks[8]; - struct mddev *mddev; - int chunk_sectors; - int level; - int algorithm; - int rmw_level; - int max_degraded; - int raid_disks; - int max_nr_stripes; - int min_nr_stripes; - sector_t reshape_progress; - sector_t reshape_safe; - int previous_raid_disks; - int prev_chunk_sectors; - int prev_algo; - short generation; - seqcount_spinlock_t gen_lock; - unsigned long reshape_checkpoint; - long long min_offset_diff; - struct list_head handle_list; - struct list_head loprio_list; - struct list_head hold_list; - struct list_head delayed_list; - struct list_head bitmap_list; - struct bio *retry_read_aligned; - unsigned int retry_read_offset; - struct bio *retry_read_aligned_list; - atomic_t preread_active_stripes; - atomic_t active_aligned_reads; - atomic_t pending_full_writes; - int bypass_count; - int bypass_threshold; - int skip_copy; - struct list_head *last_hold; - atomic_t reshape_stripes; - int active_name; - char cache_name[64]; - struct kmem_cache *slab_cache; - struct mutex cache_size_mutex; - int seq_flush; - int seq_write; - int quiesce; - int fullsync; - int recovery_disabled; - struct raid5_percpu __attribute__((btf_type_tag("percpu"))) *percpu; - int scribble_disks; - int scribble_sectors; - struct hlist_node node; - atomic_t active_stripes; - struct list_head inactive_list[8]; - atomic_t r5c_cached_full_stripes; - struct list_head r5c_full_stripe_list; - atomic_t r5c_cached_partial_stripes; - struct list_head r5c_partial_stripe_list; - atomic_t r5c_flushing_full_stripes; - atomic_t r5c_flushing_partial_stripes; - atomic_t empty_inactive_list_nr; - struct llist_head released_stripes; - wait_queue_head_t wait_for_quiescent; - wait_queue_head_t wait_for_stripe; - wait_queue_head_t wait_for_overlap; - unsigned long cache_state; - struct shrinker *shrinker; - int pool_size; - spinlock_t device_lock; - struct disk_info *disks; - struct bio_set bio_split; - struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; - struct list_head temp_inactive_list[8]; - struct r5worker_group *worker_groups; - int group_cnt; - int worker_cnt_per_group; - struct r5l_log *log; - void *log_private; - spinlock_t pending_bios_lock; - bool batch_bio_dispatch; - struct r5pending_data *pending_data; - struct list_head free_list; - struct list_head pending_list; - int pending_data_cnt; - struct r5pending_data *next_pending_data; -}; - -struct raid5_percpu { - struct page *spare_page; - void *scribble; - int scribble_obj_size; - local_lock_t lock; -}; - -struct disk_info { - struct md_rdev *rdev; - struct md_rdev *replacement; - struct page *extra_page; -}; - -struct r5worker; - -struct r5worker_group { - struct list_head handle_list; - struct list_head loprio_list; - struct r5conf *conf; - struct r5worker *workers; - int stripes_cnt; -}; - -struct r5worker { - struct work_struct work; - struct r5worker_group *group; - struct list_head temp_inactive_list[8]; - bool working; -}; - -struct r5pending_data { - struct list_head sibling; - sector_t sector; - struct bio_list bios; -}; - -struct raid5_plug_cb { - struct blk_plug_cb cb; - struct list_head list; - struct list_head temp_inactive_list[8]; -}; - -struct stripe_request_ctx { - struct stripe_head *batch_last; - sector_t first_sector; - sector_t last_sector; - unsigned long sectors_to_do[5]; - bool do_flush; -}; - -struct stripe_head_state { - int syncing; - int expanding; - int expanded; - int replacing; - int locked; - int uptodate; - int to_read; - int to_write; - int failed; - int written; - int to_fill; - int compute; - int req_compute; - int non_overwrite; - int injournal; - int just_cached; - int failed_num[2]; - int p_failed; - int q_failed; - int dec_preread_active; - unsigned long ops_request; - struct md_rdev *blocked_rdev; - int handle_bad_blocks; - int log_failed; - int waiting_extra_page; -}; - -enum nfqnl_attr_type { - NFQA_UNSPEC = 0, - NFQA_PACKET_HDR = 1, - NFQA_VERDICT_HDR = 2, - NFQA_MARK = 3, - NFQA_TIMESTAMP = 4, - NFQA_IFINDEX_INDEV = 5, - NFQA_IFINDEX_OUTDEV = 6, - NFQA_IFINDEX_PHYSINDEV = 7, - NFQA_IFINDEX_PHYSOUTDEV = 8, - NFQA_HWADDR = 9, - NFQA_PAYLOAD = 10, - NFQA_CT = 11, - NFQA_CT_INFO = 12, - NFQA_CAP_LEN = 13, - NFQA_SKB_INFO = 14, - NFQA_EXP = 15, - NFQA_UID = 16, - NFQA_GID = 17, - NFQA_SECCTX = 18, - NFQA_VLAN = 19, - NFQA_L2HDR = 20, - NFQA_PRIORITY = 21, - NFQA_CGROUP_CLASSID = 22, - __NFQA_MAX = 23, -}; - -enum nfqnl_vlan_attr { - NFQA_VLAN_UNSPEC = 0, - NFQA_VLAN_PROTO = 1, - NFQA_VLAN_TCI = 2, - __NFQA_VLAN_MAX = 3, -}; - -enum nfqnl_attr_config { - NFQA_CFG_UNSPEC = 0, - NFQA_CFG_CMD = 1, - NFQA_CFG_PARAMS = 2, - NFQA_CFG_QUEUE_MAXLEN = 3, - NFQA_CFG_MASK = 4, - NFQA_CFG_FLAGS = 5, - __NFQA_CFG_MAX = 6, -}; - -enum nfqnl_msg_config_cmds { - NFQNL_CFG_CMD_NONE = 0, - NFQNL_CFG_CMD_BIND = 1, - NFQNL_CFG_CMD_UNBIND = 2, - NFQNL_CFG_CMD_PF_BIND = 3, - NFQNL_CFG_CMD_PF_UNBIND = 4, -}; - -enum nfqnl_config_mode { - NFQNL_COPY_NONE = 0, - NFQNL_COPY_META = 1, - NFQNL_COPY_PACKET = 2, -}; - -enum nfqnl_msg_types { - NFQNL_MSG_PACKET = 0, - NFQNL_MSG_VERDICT = 1, - NFQNL_MSG_CONFIG = 2, - NFQNL_MSG_VERDICT_BATCH = 3, - NFQNL_MSG_MAX = 4, -}; - -struct nfqnl_instance { - struct hlist_node hlist; - struct callback_head rcu; - u32 peer_portid; - unsigned int queue_maxlen; - unsigned int copy_range; - unsigned int queue_dropped; - unsigned int queue_user_dropped; - u_int16_t queue_num; - u_int8_t copy_mode; - u_int32_t flags; - spinlock_t lock; - unsigned int queue_total; - unsigned int id_sequence; - struct list_head queue_list; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct nfnl_queue_net { - spinlock_t instances_lock; - struct hlist_head instance_table[16]; -}; - -typedef int (*nfqnl_cmpfn)(struct nf_queue_entry *, unsigned long); - -struct nfqnl_msg_verdict_hdr { - __be32 verdict; - __be32 id; -}; - -struct iter_state { - struct seq_net_private p; - unsigned int bucket; -}; - -struct nfqnl_msg_packet_hdr { - __be32 packet_id; - __be16 hw_protocol; - __u8 hook; -} __attribute__((packed)); - -struct nfqnl_msg_packet_hw { - __be16 hw_addrlen; - __u16 _pad; - __u8 hw_addr[8]; -}; - -struct nfqnl_msg_packet_timestamp { - __be64 sec; - __be64 usec; -}; - -struct nfqnl_msg_config_cmd { - __u8 command; - __u8 _pad; - __be16 pf; -}; - -struct nfqnl_msg_config_params { - __be32 copy_range; - __u8 copy_mode; -} __attribute__((packed)); - -enum { - UDP_FLAGS_CORK = 0, - UDP_FLAGS_NO_CHECK6_TX = 1, - UDP_FLAGS_NO_CHECK6_RX = 2, - UDP_FLAGS_GRO_ENABLED = 3, - UDP_FLAGS_ACCEPT_FRAGLIST = 4, - UDP_FLAGS_ACCEPT_L4 = 5, - UDP_FLAGS_ENCAP_ENABLED = 6, - UDP_FLAGS_UDPLITE_SEND_CC = 7, - UDP_FLAGS_UDPLITE_RECV_CC = 8, -}; - -typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); - -enum { - IEEE80211_PROBE_FLAG_DIRECTED = 1, - IEEE80211_PROBE_FLAG_MIN_CONTENT = 2, - IEEE80211_PROBE_FLAG_RANDOM_SN = 4, -}; - -enum ieee80211_s1g_chanwidth { - IEEE80211_S1G_CHANWIDTH_1MHZ = 0, - IEEE80211_S1G_CHANWIDTH_2MHZ = 1, - IEEE80211_S1G_CHANWIDTH_4MHZ = 3, - IEEE80211_S1G_CHANWIDTH_8MHZ = 7, - IEEE80211_S1G_CHANWIDTH_16MHZ = 15, -}; - -struct ieee80211_noa_data { - u32 next_tsf; - bool has_next_tsf; - u8 absent; - u8 count[4]; - struct { - u32 start; - u32 duration; - u32 interval; - } desc[4]; -}; - -typedef struct ldttss_desc ldt_desc; - -enum { - Blktrace_setup = 1, - Blktrace_running = 2, - Blktrace_stopped = 3, -}; - -enum blktrace_notify { - __BLK_TN_PROCESS = 0, - __BLK_TN_TIMESTAMP = 1, - __BLK_TN_MESSAGE = 2, - __BLK_TN_CGROUP = 256, -}; - -enum blktrace_act { - __BLK_TA_QUEUE = 1, - __BLK_TA_BACKMERGE = 2, - __BLK_TA_FRONTMERGE = 3, - __BLK_TA_GETRQ = 4, - __BLK_TA_SLEEPRQ = 5, - __BLK_TA_REQUEUE = 6, - __BLK_TA_ISSUE = 7, - __BLK_TA_COMPLETE = 8, - __BLK_TA_PLUG = 9, - __BLK_TA_UNPLUG_IO = 10, - __BLK_TA_UNPLUG_TIMER = 11, - __BLK_TA_INSERT = 12, - __BLK_TA_SPLIT = 13, - __BLK_TA_BOUNCE = 14, - __BLK_TA_REMAP = 15, - __BLK_TA_ABORT = 16, - __BLK_TA_DRV_DATA = 17, - __BLK_TA_CGROUP = 256, -}; - -struct blk_io_trace { - __u32 magic; - __u32 sequence; - __u64 time; - __u64 sector; - __u32 bytes; - __u32 action; - __u32 pid; - __u32 device; - __u32 cpu; - __u16 error; - __u16 pdu_len; -}; - -struct blk_user_trace_setup { - char name[32]; - __u16 act_mask; - __u32 buf_size; - __u32 buf_nr; - __u64 start_lba; - __u64 end_lba; - __u32 pid; -}; - -struct blk_io_trace_remap { - __be32 device_from; - __be32 device_to; - __be64 sector_from; -}; - -typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); - -enum { - IDX_MODULE_ID = 0, - IDX_ST_OPS_COMMON_VALUE_ID = 1, -}; - -struct bpf_struct_ops_value { - struct bpf_struct_ops_common_value common; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - char data[0]; -}; - -struct bpf_struct_ops_map { - struct bpf_map map; - struct callback_head rcu; - const struct bpf_struct_ops_desc *st_ops_desc; - struct mutex lock; - struct bpf_link **links; - u32 links_cnt; - u32 image_pages_cnt; - void *image_pages[8]; - struct btf *btf; - struct bpf_struct_ops_value *uvalue; - struct bpf_struct_ops_value kvalue; -}; - -struct bpf_struct_ops_link { - struct bpf_link link; - struct bpf_map __attribute__((btf_type_tag("rcu"))) *map; -}; - -struct statfs { - __kernel_long_t f_type; - __kernel_long_t f_bsize; - __kernel_long_t f_blocks; - __kernel_long_t f_bfree; - __kernel_long_t f_bavail; - __kernel_long_t f_files; - __kernel_long_t f_ffree; - __kernel_fsid_t f_fsid; - __kernel_long_t f_namelen; - __kernel_long_t f_frsize; - __kernel_long_t f_flags; - __kernel_long_t f_spare[4]; -}; - -struct statfs64 { - __kernel_long_t f_type; - __kernel_long_t f_bsize; - __u64 f_blocks; - __u64 f_bfree; - __u64 f_bavail; - __u64 f_files; - __u64 f_ffree; - __kernel_fsid_t f_fsid; - __kernel_long_t f_namelen; - __kernel_long_t f_frsize; - __kernel_long_t f_flags; - __kernel_long_t f_spare[4]; -}; - -typedef int __kernel_daddr_t; - -struct ustat { - __kernel_daddr_t f_tfree; - unsigned long f_tinode; - char f_fname[6]; - char f_fpack[6]; -}; - -enum { - BLOCK_BITMAP = 0, - INODE_BITMAP = 1, - INODE_TABLE = 2, - GROUP_TABLE_COUNT = 3, -}; - -struct ext4_rcu_ptr { - struct callback_head rcu; - void *ptr; -}; - -struct ext4_new_flex_group_data { - struct ext4_new_group_data *groups; - __u16 *bg_flags; - ext4_group_t resize_bg; - ext4_group_t count; -}; - -enum btrfs_lockdep_trans_states { - BTRFS_LOCKDEP_TRANS_COMMIT_PREP = 0, - BTRFS_LOCKDEP_TRANS_UNBLOCKED = 1, - BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED = 2, - BTRFS_LOCKDEP_TRANS_COMPLETED = 3, -}; - -enum btrfs_csum_type { - BTRFS_CSUM_TYPE_CRC32 = 0, - BTRFS_CSUM_TYPE_XXHASH = 1, - BTRFS_CSUM_TYPE_SHA256 = 2, - BTRFS_CSUM_TYPE_BLAKE2 = 3, -}; - -struct biovec_slab { - int nr_vecs; - char *name; - struct kmem_cache *slab; -}; - -struct bio_slab { - struct kmem_cache *slab; - unsigned int slab_ref; - unsigned int slab_size; - char name[8]; -}; - -struct dma_fence_array_cb { - struct dma_fence_cb cb; - struct dma_fence_array *array; -}; - -enum firmware_errors { - FW_OK = 0, - FW_BAD_CRC = 1, - FW_BAD_LENGTH = 2, - FW_BAD_VERSION = 3, -}; - -typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int); - -typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int); - -typedef void (*btf_trace_rtc_set_alarm)(void *, time64_t, int); - -typedef void (*btf_trace_rtc_read_alarm)(void *, time64_t, int); - -typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int); - -typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int); - -typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int); - -typedef void (*btf_trace_rtc_set_offset)(void *, long, int); - -typedef void (*btf_trace_rtc_read_offset)(void *, long, int); - -typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); - -typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); - -typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); - -enum { - none = 0, - day = 1, - month = 2, - year = 3, -}; - -struct trace_event_raw_rtc_time_alarm_class { - struct trace_entry ent; - time64_t secs; - int err; - char __data[0]; -}; - -struct trace_event_raw_rtc_irq_set_freq { - struct trace_entry ent; - int freq; - int err; - char __data[0]; -}; - -struct trace_event_raw_rtc_irq_set_state { - struct trace_entry ent; - int enabled; - int err; - char __data[0]; -}; - -struct trace_event_raw_rtc_alarm_irq_enable { - struct trace_entry ent; - unsigned int enabled; - int err; - char __data[0]; -}; - -struct trace_event_raw_rtc_offset_class { - struct trace_entry ent; - long offset; - int err; - char __data[0]; -}; - -struct trace_event_raw_rtc_timer_class { - struct trace_entry ent; - struct rtc_timer *timer; - ktime_t expires; - ktime_t period; - char __data[0]; -}; - -struct trace_event_data_offsets_rtc_time_alarm_class {}; - -struct trace_event_data_offsets_rtc_irq_set_freq {}; - -struct trace_event_data_offsets_rtc_irq_set_state {}; - -struct trace_event_data_offsets_rtc_alarm_irq_enable {}; - -struct trace_event_data_offsets_rtc_offset_class {}; - -struct trace_event_data_offsets_rtc_timer_class {}; - -typedef struct { - u32 version; - u32 num_entries; - u32 desc_size; - u32 flags; - efi_memory_desc_t entry[0]; -} efi_memory_attributes_table_t; - -struct rtnl_link { - rtnl_doit_func doit; - rtnl_dumpit_func dumpit; - struct module *owner; - unsigned int flags; - struct callback_head rcu; -}; - -enum { - IFLA_OFFLOAD_XSTATS_UNSPEC = 0, - IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, - IFLA_OFFLOAD_XSTATS_HW_S_INFO = 2, - IFLA_OFFLOAD_XSTATS_L3_STATS = 3, - __IFLA_OFFLOAD_XSTATS_MAX = 4, -}; - -enum rtnl_kinds { - RTNL_KIND_NEW = 0, - RTNL_KIND_DEL = 1, - RTNL_KIND_GET = 2, - RTNL_KIND_SET = 3, -}; - -enum { - IFLA_EVENT_NONE = 0, - IFLA_EVENT_REBOOT = 1, - IFLA_EVENT_FEATURES = 2, - IFLA_EVENT_BONDING_FAILOVER = 3, - IFLA_EVENT_NOTIFY_PEERS = 4, - IFLA_EVENT_IGMP_RESEND = 5, - IFLA_EVENT_BONDING_OPTIONS = 6, -}; - -enum { - IFLA_PROTO_DOWN_REASON_UNSPEC = 0, - IFLA_PROTO_DOWN_REASON_MASK = 1, - IFLA_PROTO_DOWN_REASON_VALUE = 2, - __IFLA_PROTO_DOWN_REASON_CNT = 3, - IFLA_PROTO_DOWN_REASON_MAX = 2, -}; - -enum { - IFLA_VF_INFO_UNSPEC = 0, - IFLA_VF_INFO = 1, - __IFLA_VF_INFO_MAX = 2, -}; - -enum { - IFLA_VF_UNSPEC = 0, - IFLA_VF_MAC = 1, - IFLA_VF_VLAN = 2, - IFLA_VF_TX_RATE = 3, - IFLA_VF_SPOOFCHK = 4, - IFLA_VF_LINK_STATE = 5, - IFLA_VF_RATE = 6, - IFLA_VF_RSS_QUERY_EN = 7, - IFLA_VF_STATS = 8, - IFLA_VF_TRUST = 9, - IFLA_VF_IB_NODE_GUID = 10, - IFLA_VF_IB_PORT_GUID = 11, - IFLA_VF_VLAN_LIST = 12, - IFLA_VF_BROADCAST = 13, - __IFLA_VF_MAX = 14, -}; - -enum { - IFLA_VF_VLAN_INFO_UNSPEC = 0, - IFLA_VF_VLAN_INFO = 1, - __IFLA_VF_VLAN_INFO_MAX = 2, -}; - -enum { - IFLA_VF_STATS_RX_PACKETS = 0, - IFLA_VF_STATS_TX_PACKETS = 1, - IFLA_VF_STATS_RX_BYTES = 2, - IFLA_VF_STATS_TX_BYTES = 3, - IFLA_VF_STATS_BROADCAST = 4, - IFLA_VF_STATS_MULTICAST = 5, - IFLA_VF_STATS_PAD = 6, - IFLA_VF_STATS_RX_DROPPED = 7, - IFLA_VF_STATS_TX_DROPPED = 8, - __IFLA_VF_STATS_MAX = 9, -}; - -enum { - IFLA_VF_PORT_UNSPEC = 0, - IFLA_VF_PORT = 1, - __IFLA_VF_PORT_MAX = 2, -}; - -enum { - IFLA_PORT_UNSPEC = 0, - IFLA_PORT_VF = 1, - IFLA_PORT_PROFILE = 2, - IFLA_PORT_VSI_TYPE = 3, - IFLA_PORT_INSTANCE_UUID = 4, - IFLA_PORT_HOST_UUID = 5, - IFLA_PORT_REQUEST = 6, - IFLA_PORT_RESPONSE = 7, - __IFLA_PORT_MAX = 8, -}; - -enum { - XDP_ATTACHED_NONE = 0, - XDP_ATTACHED_DRV = 1, - XDP_ATTACHED_SKB = 2, - XDP_ATTACHED_HW = 3, - XDP_ATTACHED_MULTI = 4, -}; - -enum { - IFLA_XDP_UNSPEC = 0, - IFLA_XDP_FD = 1, - IFLA_XDP_ATTACHED = 2, - IFLA_XDP_FLAGS = 3, - IFLA_XDP_PROG_ID = 4, - IFLA_XDP_DRV_PROG_ID = 5, - IFLA_XDP_SKB_PROG_ID = 6, - IFLA_XDP_HW_PROG_ID = 7, - IFLA_XDP_EXPECTED_FD = 8, - __IFLA_XDP_MAX = 9, -}; - -enum { - IFLA_INFO_UNSPEC = 0, - IFLA_INFO_KIND = 1, - IFLA_INFO_DATA = 2, - IFLA_INFO_XSTATS = 3, - IFLA_INFO_SLAVE_KIND = 4, - IFLA_INFO_SLAVE_DATA = 5, - __IFLA_INFO_MAX = 6, -}; - -enum { - IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0, - IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 1, - IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 2, - __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX = 3, -}; - -enum { - IFLA_STATS_GETSET_UNSPEC = 0, - IFLA_STATS_GET_FILTERS = 1, - IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2, - __IFLA_STATS_GETSET_MAX = 3, -}; - -struct rtnl_offload_xstats_request_used { - bool request; - bool used; -}; - -struct rtnl_newlink_tbs { - struct nlattr *tb[66]; - struct nlattr *attr[51]; - struct nlattr *slave_attr[45]; -}; - -struct if_stats_msg { - __u8 family; - __u8 pad1; - __u16 pad2; - __u32 ifindex; - __u32 filter_mask; -}; - -struct rtnl_link_stats { - __u32 rx_packets; - __u32 tx_packets; - __u32 rx_bytes; - __u32 tx_bytes; - __u32 rx_errors; - __u32 tx_errors; - __u32 rx_dropped; - __u32 tx_dropped; - __u32 multicast; - __u32 collisions; - __u32 rx_length_errors; - __u32 rx_over_errors; - __u32 rx_crc_errors; - __u32 rx_frame_errors; - __u32 rx_fifo_errors; - __u32 rx_missed_errors; - __u32 tx_aborted_errors; - __u32 tx_carrier_errors; - __u32 tx_fifo_errors; - __u32 tx_heartbeat_errors; - __u32 tx_window_errors; - __u32 rx_compressed; - __u32 tx_compressed; - __u32 rx_nohandler; -}; - -struct ifla_vf_mac { - __u32 vf; - __u8 mac[32]; -}; - -struct ifla_vf_vlan { - __u32 vf; - __u32 vlan; - __u32 qos; -}; - -struct ifla_vf_vlan_info { - __u32 vf; - __u32 vlan; - __u32 qos; - __be16 vlan_proto; -}; - -struct ifla_vf_tx_rate { - __u32 vf; - __u32 rate; -}; - -struct ifla_vf_rate { - __u32 vf; - __u32 min_tx_rate; - __u32 max_tx_rate; -}; - -struct ifla_vf_spoofchk { - __u32 vf; - __u32 setting; -}; - -struct ifla_vf_link_state { - __u32 vf; - __u32 link_state; -}; - -struct ifla_vf_rss_query_en { - __u32 vf; - __u32 setting; -}; - -struct ifla_vf_trust { - __u32 vf; - __u32 setting; -}; - -struct rtnl_stats_dump_filters { - u32 mask[6]; -}; - -struct rta_cacheinfo { - __u32 rta_clntref; - __u32 rta_lastuse; - __s32 rta_expires; - __u32 rta_error; - __u32 rta_used; - __u32 rta_id; - __u32 rta_ts; - __u32 rta_tsage; -}; - -struct rtnl_mdb_dump_ctx { - long idx; -}; - -struct rtnl_link_ifmap { - __u64 mem_start; - __u64 mem_end; - __u64 base_addr; - __u16 irq; - __u8 dma; - __u8 port; -}; - -struct ifla_vf_broadcast { - __u8 broadcast[32]; -}; - -struct masq_dev_work { - struct work_struct work; - struct net *net; - netns_tracker ns_tracker; - union nf_inet_addr addr; - int ifindex; - int (*iter)(struct nf_conn *, void *); -}; - -enum { - TCP_BPF_IPV4 = 0, - TCP_BPF_IPV6 = 1, - TCP_BPF_NUM_PROTS = 2, -}; - -enum { - TCP_BPF_BASE = 0, - TCP_BPF_TX = 1, - TCP_BPF_RX = 2, - TCP_BPF_TXRX = 3, - TCP_BPF_NUM_CFGS = 4, -}; - -enum sk_psock_state_bits { - SK_PSOCK_TX_ENABLED = 0, - SK_PSOCK_RX_STRP_ENABLED = 1, -}; - -enum __sk_action { - __SK_DROP = 0, - __SK_PASS = 1, - __SK_REDIRECT = 2, - __SK_NONE = 3, -}; - -struct tx_work { - struct delayed_work work; - struct sock *sk; -}; - -struct tls_rec; - -struct tls_sw_context_tx { - struct crypto_aead *aead_send; - struct crypto_wait async_wait; - struct tx_work tx_work; - struct tls_rec *open_rec; - struct list_head tx_list; - atomic_t encrypt_pending; - u8 async_capable: 1; - unsigned long tx_bitmask; -}; - -enum switchdev_attr_id { - SWITCHDEV_ATTR_ID_UNDEFINED = 0, - SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, - SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, - SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, - SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, - SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, - SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, - SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, - SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, - SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, - SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, - SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, - SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, - SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, -}; - -struct switchdev_mst_state { - u16 msti; - u8 state; -}; - -struct switchdev_brport_flags { - unsigned long val; - unsigned long mask; -}; - -struct switchdev_vlan_msti { - u16 vid; - u16 msti; -}; - -struct switchdev_attr { - struct net_device *orig_dev; - enum switchdev_attr_id id; - u32 flags; - void *complete_priv; - void (*complete)(struct net_device *, int, void *); - union { - u8 stp_state; - struct switchdev_mst_state mst_state; - struct switchdev_brport_flags brport_flags; - bool mrouter; - clock_t ageing_time; - bool vlan_filtering; - u16 vlan_protocol; - bool mst; - bool mc_disabled; - u8 mrp_port_role; - struct switchdev_vlan_msti vlan_msti; - } u; -}; - -enum assoc_status { - ASSOC_SUCCESS = 0, - ASSOC_REJECTED = 1, - ASSOC_TIMEOUT = 2, - ASSOC_ABANDON = 3, -}; - -enum ieee80211_timeout_interval_type { - WLAN_TIMEOUT_REASSOC_DEADLINE = 1, - WLAN_TIMEOUT_KEY_LIFETIME = 2, - WLAN_TIMEOUT_ASSOC_COMEBACK = 3, -}; - -enum ieee80211_idle_options { - WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = 1, -}; - -enum ieee80211_bss_corrupt_data_flags { - IEEE80211_BSS_CORRUPT_BEACON = 1, - IEEE80211_BSS_CORRUPT_PROBE_RESP = 2, -}; - -struct ieee80211_country_ie_triplet { - union { - struct { - u8 first_channel; - u8 num_channels; - s8 max_power; - } chans; - struct { - u8 reg_extension_id; - u8 reg_class; - u8 coverage_class; - } ext; - }; -}; - -struct setup_indirect { - __u32 type; - __u32 reserved; - __u64 len; - __u64 addr; -}; - -struct pkru_state { - u32 pkru; - u32 pad; -}; - -enum topo_types { - INVALID_TYPE = 0, - SMT_TYPE = 1, - CORE_TYPE = 2, - MAX_TYPE_0B = 3, - MODULE_TYPE = 3, - TILE_TYPE = 4, - DIE_TYPE = 5, - DIEGRP_TYPE = 6, - MAX_TYPE_1F = 7, -}; - -enum rtmutex_chainwalk { - RT_MUTEX_MIN_CHAINWALK = 0, - RT_MUTEX_FULL_CHAINWALK = 1, -}; - -typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int); - -typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t); - -typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t); - -typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); - -struct alarm_base { - spinlock_t lock; - struct timerqueue_head timerqueue; - ktime_t (*get_ktime)(); - void (*get_timespec)(struct timespec64 *); - clockid_t base_clockid; -}; - -struct trace_event_raw_alarmtimer_suspend { - struct trace_entry ent; - s64 expires; - unsigned char alarm_type; - char __data[0]; -}; - -struct trace_event_raw_alarm_class { - struct trace_entry ent; - void *alarm; - unsigned char alarm_type; - s64 expires; - s64 now; - char __data[0]; -}; - -struct trace_event_data_offsets_alarmtimer_suspend {}; - -struct trace_event_data_offsets_alarm_class {}; - -struct bpf_iter__bpf_prog { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_prog *prog; - }; -}; - -struct bpf_iter_seq_prog_info { - u32 prog_id; -}; - -enum zone_flags { - ZONE_BOOSTED_WATERMARK = 0, - ZONE_RECLAIM_ACTIVE = 1, - ZONE_BELOW_HIGH = 2, -}; - -typedef int fpi_t; - -struct posix_acl_xattr_entry { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; -}; - -struct ext4_dir_entry_tail { - __le32 det_reserved_zero1; - __le16 det_rec_len; - __u8 det_reserved_zero2; - __u8 det_reserved_ft; - __le32 det_checksum; -}; - -struct dx_entry; - -struct dx_frame { - struct buffer_head *bh; - struct dx_entry *entries; - struct dx_entry *at; -}; - -struct dx_entry { - __le32 hash; - __le32 block; -}; - -struct fake_dirent { - __le32 inode; - __le16 rec_len; - u8 name_len; - u8 file_type; -}; - -struct dx_root_info { - __le32 reserved_zero; - u8 hash_version; - u8 info_length; - u8 indirect_levels; - u8 unused_flags; -}; - -struct dx_root { - struct fake_dirent dot; - char dot_name[4]; - struct fake_dirent dotdot; - char dotdot_name[4]; - struct dx_root_info info; - struct dx_entry entries[0]; -}; - -struct dx_node { - struct fake_dirent fake; - struct dx_entry entries[0]; -}; - -struct dx_countlimit { - __le16 limit; - __le16 count; -}; - -struct ext4_dir_entry { - __le32 inode; - __le16 rec_len; - __le16 name_len; - char name[255]; -}; - -struct dx_tail { - u32 dt_reserved; - __le32 dt_checksum; -}; - -struct dx_map_entry { - u32 hash; - u16 offs; - u16 size; -}; - -struct ext4_renament { - struct inode *dir; - struct dentry *dentry; - struct inode *inode; - bool is_dir; - int dir_nlink_delta; - struct buffer_head *bh; - struct ext4_dir_entry_2 *de; - int inlined; - struct buffer_head *dir_bh; - struct ext4_dir_entry_2 *parent_de; - int dir_inlined; -}; - -typedef enum { - EITHER = 0, - INDEX = 1, - DIRENT = 2, - DIRENT_HTREE = 3, -} dirblock_type_t; - -enum btrfs_tree_block_status { - BTRFS_TREE_BLOCK_CLEAN = 0, - BTRFS_TREE_BLOCK_INVALID_NRITEMS = 1, - BTRFS_TREE_BLOCK_INVALID_PARENT_KEY = 2, - BTRFS_TREE_BLOCK_BAD_KEY_ORDER = 3, - BTRFS_TREE_BLOCK_INVALID_LEVEL = 4, - BTRFS_TREE_BLOCK_INVALID_FREE_SPACE = 5, - BTRFS_TREE_BLOCK_INVALID_OFFSETS = 6, - BTRFS_TREE_BLOCK_INVALID_BLOCKPTR = 7, - BTRFS_TREE_BLOCK_INVALID_ITEM = 8, - BTRFS_TREE_BLOCK_INVALID_OWNER = 9, -}; - -struct crypto_istat_akcipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t verify_cnt; - atomic64_t sign_cnt; - atomic64_t err_cnt; -}; - -typedef enum { - trustInput = 0, - checkMaxSymbolValue = 1, -} HIST_checkInput_e; - -typedef enum { - search_hashChain = 0, - search_binaryTree = 1, - search_rowHash = 2, -} searchMethod_e; - -typedef U64 ZSTD_VecMask; - -struct ata_internal { - struct scsi_transport_template t; - struct device_attribute private_port_attrs[3]; - struct device_attribute private_link_attrs[3]; - struct device_attribute private_dev_attrs[9]; - struct transport_container link_attr_cont; - struct transport_container dev_attr_cont; - struct device_attribute *link_attrs[4]; - struct device_attribute *port_attrs[4]; - struct device_attribute *dev_attrs[10]; -}; - -struct ata_show_ering_arg { - char *buf; - int written; -}; - -struct iwl_dev_info { - u16 device; - u16 subdevice; - u16 mac_type; - u16 rf_type; - u8 mac_step; - u8 rf_step; - u8 rf_id; - u8 no_160; - u8 cores; - u8 cdb; - u8 jacket; - const struct iwl_cfg *cfg; - const char *name; -}; - -enum { - WFPM_AUX_CTL_AUX_IF_MAC_OWNER_MSK = 2147483648, -}; - -struct ieee80211_tpt_blink { - int throughput; - int blink_time; -}; - -enum { - IF_COMB_AP = 0, - NUM_IF_COMB = 1, -}; - -struct txdone_entry_desc { - unsigned long flags; - int retry; -}; - -struct itco_wdt_platform_data { - char name[32]; - unsigned int version; - bool no_reboot_use_pmc; -}; - -struct dmi_onboard_device_info { - const char *name; - u8 type; - unsigned short i2c_addr; - const char *i2c_type; -}; - -struct i801_priv { - struct i2c_adapter adapter; - unsigned long smba; - unsigned char original_hstcfg; - unsigned char original_hstcnt; - unsigned char original_slvcmd; - struct pci_dev *pci_dev; - unsigned int features; - struct completion done; - u8 status; - u8 cmd; - bool is_read; - int count; - int len; - u8 *data; - struct platform_device *tco_pdev; - bool acpi_reserved; -}; - -enum { - NETDEV_A_PAGE_POOL_STATS_INFO = 1, - NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8, - NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW = 9, - NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER = 10, - NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY = 11, - NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL = 12, - NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE = 13, - NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED = 14, - NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL = 15, - NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING = 16, - NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL = 17, - NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT = 18, - __NETDEV_A_PAGE_POOL_STATS_MAX = 19, - NETDEV_A_PAGE_POOL_STATS_MAX = 18, -}; - -enum { - NETDEV_A_PAGE_POOL_ID = 1, - NETDEV_A_PAGE_POOL_IFINDEX = 2, - NETDEV_A_PAGE_POOL_NAPI_ID = 3, - NETDEV_A_PAGE_POOL_INFLIGHT = 4, - NETDEV_A_PAGE_POOL_INFLIGHT_MEM = 5, - NETDEV_A_PAGE_POOL_DETACH_TIME = 6, - __NETDEV_A_PAGE_POOL_MAX = 7, - NETDEV_A_PAGE_POOL_MAX = 6, -}; - -typedef int (*pp_nl_fill_cb)(struct sk_buff *, const struct page_pool *, const struct genl_info *); - -struct page_pool_dump_cb { - unsigned long ifindex; - u32 pp_id; -}; - -struct nf_ct_bridge_info { - struct nf_hook_ops *ops; - unsigned int ops_size; - struct module *me; -}; - -enum tcp_ca_ack_event_flags { - CA_ACK_SLOWPATH = 1, - CA_ACK_WIN_UPDATE = 2, - CA_ACK_ECE = 4, -}; - -struct tcp_sacktag_state { - u64 first_sackt; - u64 last_sackt; - u32 reord; - u32 sack_delivered; - int flag; - unsigned int mss_now; - struct rate_sample *rate; -}; - -enum ieee80211_bss_valid_data_flags { - IEEE80211_BSS_VALID_WMM = 2, - IEEE80211_BSS_VALID_RATES = 4, - IEEE80211_BSS_VALID_ERP = 8, -}; - -struct inform_bss_update_data { - struct ieee80211_rx_status *rx_status; - bool beacon; -}; - -struct x86_init_resources { - void (*probe_roms)(); - void (*reserve_resources)(); - char * (*memory_setup)(); -}; - -struct x86_init_mpparse { - void (*setup_ioapic_ids)(); - void (*find_mptable)(); - void (*early_parse_smp_cfg)(); - void (*parse_smp_cfg)(); -}; - -struct x86_init_irqs { - void (*pre_vector_init)(); - void (*intr_init)(); - void (*intr_mode_select)(); - void (*intr_mode_init)(); - struct irq_domain * (*create_pci_msi_domain)(); -}; - -struct x86_init_oem { - void (*arch_setup)(); - void (*banner)(); -}; - -struct x86_init_paging { - void (*pagetable_init)(); -}; - -struct x86_init_timers { - void (*setup_percpu_clockev)(); - void (*timer_init)(); - void (*wallclock_init)(); -}; - -struct x86_init_iommu { - int (*iommu_init)(); -}; - -struct x86_init_pci { - int (*arch_init)(); - int (*init)(); - void (*init_irq)(); - void (*fixup_irqs)(); -}; - -struct x86_hyper_init { - void (*init_platform)(); - void (*guest_late_init)(); - bool (*x2apic_available)(); - bool (*msi_ext_dest_id)(); - void (*init_mem_mapping)(); - void (*init_after_bootmem)(); -}; - -struct x86_init_acpi { - void (*set_root_pointer)(u64); - u64 (*get_root_pointer)(); - void (*reduced_hw_early_init)(); -}; - -struct x86_init_ops { - struct x86_init_resources resources; - struct x86_init_mpparse mpparse; - struct x86_init_irqs irqs; - struct x86_init_oem oem; - struct x86_init_paging paging; - struct x86_init_timers timers; - struct x86_init_iommu iommu; - struct x86_init_pci pci; - struct x86_hyper_init hyper; - struct x86_init_acpi acpi; -}; - -struct x86_cpuinit_ops { - void (*setup_percpu_clockev)(); - void (*early_percpu_clock_init)(); - void (*fixup_cpu_id)(struct cpuinfo_x86 *, int); - bool parallel_bringup; -}; - -struct x86_legacy_devices { - int pnpbios; -}; - -struct x86_legacy_features { - enum x86_legacy_i8042_state i8042; - int rtc; - int warm_reset; - int no_vga; - int reserve_bios_regions; - struct x86_legacy_devices devices; -}; - -struct ghcb; - -struct x86_hyper_runtime { - void (*pin_vcpu)(int); - void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *); - bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *); - bool (*is_private_mmio)(u64); -}; - -struct x86_guest { - bool (*enc_status_change_prepare)(unsigned long, int, bool); - bool (*enc_status_change_finish)(unsigned long, int, bool); - bool (*enc_tlb_flush_required)(bool); - bool (*enc_cache_flush_required)(); -}; - -struct x86_platform_ops { - unsigned long (*calibrate_cpu)(); - unsigned long (*calibrate_tsc)(); - void (*get_wallclock)(struct timespec64 *); - int (*set_wallclock)(const struct timespec64 *); - void (*iommu_shutdown)(); - bool (*is_untracked_pat_range)(u64, u64); - void (*nmi_init)(); - unsigned char (*get_nmi_reason)(); - void (*save_sched_clock_state)(); - void (*restore_sched_clock_state)(); - void (*apic_post_init)(); - struct x86_legacy_features legacy; - void (*set_legacy_features)(); - void (*realmode_reserve)(); - void (*realmode_init)(); - struct x86_hyper_runtime hyper; - struct x86_guest guest; -}; - -struct x86_apic_ops { - unsigned int (*io_apic_read)(unsigned int, unsigned int); - void (*restore)(); -}; - -struct rcu_exp_work { - unsigned long rew_s; - struct kthread_work rew_work; -}; - -struct rcu_node { - raw_spinlock_t lock; - unsigned long gp_seq; - unsigned long gp_seq_needed; - unsigned long completedqs; - unsigned long qsmask; - unsigned long rcu_gp_init_mask; - unsigned long qsmaskinit; - unsigned long qsmaskinitnext; - unsigned long expmask; - unsigned long expmaskinit; - unsigned long expmaskinitnext; - struct kthread_worker *exp_kworker; - unsigned long cbovldmask; - unsigned long ffmask; - unsigned long grpmask; - int grplo; - int grphi; - u8 grpnum; - u8 level; - bool wait_blkd_tasks; - struct rcu_node *parent; - struct list_head blkd_tasks; - struct list_head *gp_tasks; - struct list_head *exp_tasks; - struct list_head *boost_tasks; - struct rt_mutex boost_mtx; - unsigned long boost_time; - struct mutex kthread_mutex; - struct task_struct *boost_kthread_task; - unsigned int boost_kthread_status; - unsigned long n_boosts; - struct swait_queue_head nocb_gp_wq[2]; - raw_spinlock_t fqslock; - spinlock_t exp_lock; - unsigned long exp_seq_rq; - wait_queue_head_t exp_wq[4]; - struct rcu_exp_work rew; - bool exp_need_flush; - raw_spinlock_t exp_poll_lock; - unsigned long exp_seq_poll_rq; - struct work_struct exp_poll_wq; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -union rcu_noqs { - struct { - u8 norm; - u8 exp; - } b; - u16 s; -}; - -struct rcu_snap_record { - unsigned long gp_seq; - u64 cputime_irq; - u64 cputime_softirq; - u64 cputime_system; - unsigned long nr_hardirqs; - unsigned int nr_softirqs; - unsigned long long nr_csw; - unsigned long jiffies; -}; - -struct rcu_data { - unsigned long gp_seq; - unsigned long gp_seq_needed; - union rcu_noqs cpu_no_qs; - bool core_needs_qs; - bool beenonline; - bool gpwrap; - bool cpu_started; - struct rcu_node *mynode; - unsigned long grpmask; - unsigned long ticks_this_gp; - struct irq_work defer_qs_iw; - bool defer_qs_iw_pending; - struct work_struct strict_work; - struct rcu_segcblist cblist; - long qlen_last_fqs_check; - unsigned long n_cbs_invoked; - unsigned long n_force_qs_snap; - long blimit; - int dynticks_snap; - bool rcu_need_heavy_qs; - bool rcu_urgent_qs; - bool rcu_forced_tick; - bool rcu_forced_tick_exp; - unsigned long barrier_seq_snap; - struct callback_head barrier_head; - int exp_dynticks_snap; - struct swait_queue_head nocb_cb_wq; - struct swait_queue_head nocb_state_wq; - struct task_struct *nocb_gp_kthread; - raw_spinlock_t nocb_lock; - atomic_t nocb_lock_contended; - int nocb_defer_wakeup; - struct timer_list nocb_timer; - unsigned long nocb_gp_adv_time; - struct mutex nocb_gp_kthread_mutex; - long: 64; - raw_spinlock_t nocb_bypass_lock; - struct rcu_cblist nocb_bypass; - unsigned long nocb_bypass_first; - unsigned long nocb_nobypass_last; - int nocb_nobypass_count; - long: 64; - long: 64; - raw_spinlock_t nocb_gp_lock; - u8 nocb_gp_sleep; - u8 nocb_gp_bypass; - u8 nocb_gp_gp; - unsigned long nocb_gp_seq; - unsigned long nocb_gp_loops; - struct swait_queue_head nocb_gp_wq; - bool nocb_cb_sleep; - struct task_struct *nocb_cb_kthread; - struct list_head nocb_head_rdp; - struct list_head nocb_entry_rdp; - struct rcu_data *nocb_toggling_rdp; - long: 64; - long: 64; - long: 64; - long: 64; - struct rcu_data *nocb_gp_rdp; - struct task_struct *rcu_cpu_kthread_task; - unsigned int rcu_cpu_kthread_status; - char rcu_cpu_has_work; - unsigned long rcuc_activity; - unsigned int softirq_snap; - struct irq_work rcu_iw; - bool rcu_iw_pending; - unsigned long rcu_iw_gp_seq; - unsigned long rcu_ofl_gp_seq; - short rcu_ofl_gp_flags; - unsigned long rcu_onl_gp_seq; - short rcu_onl_gp_flags; - unsigned long last_fqs_resched; - unsigned long last_sched_clock; - struct rcu_snap_record snap_record; - long lazy_len; - int cpu; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct rcu_state { - struct rcu_node node[521]; - struct rcu_node *level[4]; - int ncpus; - int n_online_cpus; - long: 64; - long: 64; - long: 64; - unsigned long gp_seq; - unsigned long gp_max; - struct task_struct *gp_kthread; - struct swait_queue_head gp_wq; - short gp_flags; - short gp_state; - unsigned long gp_wake_time; - unsigned long gp_wake_seq; - unsigned long gp_seq_polled; - unsigned long gp_seq_polled_snap; - unsigned long gp_seq_polled_exp_snap; - struct mutex barrier_mutex; - atomic_t barrier_cpu_count; - struct completion barrier_completion; - unsigned long barrier_sequence; - raw_spinlock_t barrier_lock; - struct mutex exp_mutex; - struct mutex exp_wake_mutex; - unsigned long expedited_sequence; - atomic_t expedited_need_qs; - struct swait_queue_head expedited_wq; - int ncpus_snap; - u8 cbovld; - u8 cbovldnext; - unsigned long jiffies_force_qs; - unsigned long jiffies_kick_kthreads; - unsigned long n_force_qs; - unsigned long gp_start; - unsigned long gp_end; - unsigned long gp_activity; - unsigned long gp_req_activity; - unsigned long jiffies_stall; - int nr_fqs_jiffies_stall; - unsigned long jiffies_resched; - unsigned long n_force_qs_gpstart; - const char *name; - char abbr; - long: 0; - arch_spinlock_t ofl_lock; - int nocb_is_setup; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct rcu_gp_oldstate { - unsigned long rgos_norm; - unsigned long rgos_exp; -}; - -struct kfree_rcu_cpu; - -struct kfree_rcu_cpu_work { - struct rcu_work rcu_work; - struct callback_head *head_free; - struct rcu_gp_oldstate head_free_gp_snap; - struct list_head bulk_head_free[2]; - struct kfree_rcu_cpu *krcp; -}; - -struct kfree_rcu_cpu { - struct callback_head *head; - unsigned long head_gp_snap; - atomic_t head_count; - struct list_head bulk_head[2]; - atomic_t bulk_count[2]; - struct kfree_rcu_cpu_work krw_arr[2]; - raw_spinlock_t lock; - struct delayed_work monitor_work; - bool initialized; - struct delayed_work page_cache_work; - atomic_t backoff_page_cache_fill; - atomic_t work_in_progress; - struct hrtimer hrtimer; - struct llist_head bkvcache; - int nr_bkv_objs; -}; - -struct kvfree_rcu_bulk_data { - struct list_head list; - struct rcu_gp_oldstate gp_snap; - unsigned long nr_records; - void *records[0]; -}; - -struct rcu_stall_chk_rdr { - int nesting; - union rcu_special rs; - bool on_blkd_list; -}; - -struct pending_reservation { - struct rb_node rb_node; - ext4_lblk_t lclu; -}; - -struct rsvd_count { - int ndelonly; - bool first_do_lblk_found; - ext4_lblk_t first_do_lblk; - ext4_lblk_t last_do_lblk; - struct extent_status *left_es; - bool partial; - ext4_lblk_t lclu; -}; - -enum scrub_stripe_flags { - SCRUB_STRIPE_FLAG_INITIALIZED = 0, - SCRUB_STRIPE_FLAG_REPAIR_DONE = 1, - SCRUB_STRIPE_FLAG_NO_REPORT = 2, -}; - -struct scrub_sector_verification; - -struct scrub_stripe { - struct scrub_ctx *sctx; - struct btrfs_block_group *bg; - struct page *pages[16]; - struct scrub_sector_verification *sectors; - struct btrfs_device *dev; - u64 logical; - u64 physical; - u16 mirror_num; - u16 nr_sectors; - u16 nr_data_extents; - u16 nr_meta_extents; - atomic_t pending_io; - wait_queue_head_t io_wait; - wait_queue_head_t repair_wait; - unsigned long state; - unsigned long extent_sector_bitmap; - unsigned long init_error_bitmap; - unsigned int init_nr_io_errors; - unsigned int init_nr_csum_errors; - unsigned int init_nr_meta_errors; - unsigned long error_bitmap; - unsigned long io_error_bitmap; - unsigned long csum_error_bitmap; - unsigned long meta_error_bitmap; - unsigned long write_error_bitmap; - spinlock_t write_error_lock; - u8 *csums; - struct work_struct work; -}; - -struct scrub_ctx { - struct scrub_stripe stripes[128]; - struct scrub_stripe *raid56_data_stripes; - struct btrfs_fs_info *fs_info; - struct btrfs_path extent_path; - struct btrfs_path csum_path; - int first_free; - int cur_stripe; - atomic_t cancel_req; - int readonly; - ktime_t throttle_deadline; - u64 throttle_sent; - int is_dev_replace; - u64 write_pointer; - struct mutex wr_lock; - struct btrfs_device *wr_tgtdev; - struct btrfs_scrub_progress stat; - spinlock_t stat_lock; - refcount_t refs; -}; - -struct scrub_sector_verification { - bool is_metadata; - union { - u8 *csum; - u64 generation; - }; -}; - -struct scrub_warning { - struct btrfs_path *path; - u64 extent_item_size; - const char *errstr; - u64 physical; - u64 logical; - struct btrfs_device *dev; -}; - -typedef unsigned char u8___2; - -struct rand_data { - void *hash_state; - __u64 prev_time; - __u64 last_delta; - __s64 last_delta2; - unsigned int flags; - unsigned int osr; - unsigned char *mem; - unsigned int memlocation; - unsigned int memblocks; - unsigned int memblocksize; - unsigned int memaccessloops; - unsigned int rct_count; - unsigned int apt_cutoff; - unsigned int apt_cutoff_permanent; - unsigned int apt_observations; - unsigned int apt_count; - unsigned int apt_base; - unsigned int health_failure; - unsigned int apt_base_set: 1; -}; - -struct jitterentropy { - spinlock_t jent_lock; - struct rand_data *entropy_collector; - struct crypto_shash *tfm; - struct shash_desc *sdesc; -}; - -struct queue_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct request_queue *, char *); - ssize_t (*store)(struct request_queue *, const char *, size_t); -}; - -union nested_table { - union nested_table __attribute__((btf_type_tag("rcu"))) *table; - struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; -}; - -typedef enum { - HEAD = 0, - FLAGS = 1, - TIME = 2, - OS = 3, - EXLEN = 4, - EXTRA = 5, - NAME = 6, - COMMENT = 7, - HCRC = 8, - DICTID = 9, - DICT = 10, - TYPE = 11, - TYPEDO = 12, - STORED = 13, - COPY = 14, - TABLE = 15, - LENLENS = 16, - CODELENS = 17, - LEN = 18, - LENEXT = 19, - DIST = 20, - DISTEXT = 21, - MATCH = 22, - LIT = 23, - CHECK = 24, - LENGTH = 25, - DONE = 26, - BAD = 27, - MEM = 28, - SYNC = 29, -} inflate_mode; - -struct inflate_state { - inflate_mode mode; - int last; - int wrap; - int havedict; - int flags; - unsigned int dmax; - unsigned long check; - unsigned long total; - unsigned int wbits; - unsigned int wsize; - unsigned int whave; - unsigned int write; - unsigned char *window; - unsigned long hold; - unsigned int bits; - unsigned int length; - unsigned int offset; - unsigned int extra; - const code *lencode; - const code *distcode; - unsigned int lenbits; - unsigned int distbits; - unsigned int ncode; - unsigned int nlen; - unsigned int ndist; - unsigned int have; - code *next; - unsigned short lens[320]; - unsigned short work[288]; - code codes[2048]; -}; - -struct inflate_workspace { - struct inflate_state inflate_state; - unsigned char working_window[32768]; -}; - -enum { - ZSTDbss_compress = 0, - ZSTDbss_noCompress = 1, -}; - -typedef enum { - ZSTD_cpm_noAttachDict = 0, - ZSTD_cpm_attachDict = 1, - ZSTD_cpm_createCDict = 2, - ZSTD_cpm_unknown = 3, -} ZSTD_cParamMode_e; - -typedef enum { - ZSTD_e_continue = 0, - ZSTD_e_flush = 1, - ZSTD_e_end = 2, -} ZSTD_EndDirective; - -typedef struct { - U32 LLtype; - U32 Offtype; - U32 MLtype; - size_t size; - size_t lastCountSize; -} ZSTD_symbolEncodingTypeStats_t; - -typedef struct { - U32 *splitLocations; - size_t idx; -} seqStoreSplits; - -typedef struct { - U32 idx; - U32 posInSequence; - size_t posInSrc; -} ZSTD_sequencePosition; - -typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); - -typedef struct { - unsigned long long ingested; - unsigned long long consumed; - unsigned long long produced; - unsigned long long flushed; - unsigned int currentJobID; - unsigned int nbActiveWorkers; -} ZSTD_frameProgression; - -typedef enum { - ZSTDcrp_makeClean = 0, - ZSTDcrp_leaveDirty = 1, -} ZSTD_compResetPolicy_e; - -typedef enum { - ZSTDirp_continue = 0, - ZSTDirp_reset = 1, -} ZSTD_indexResetPolicy_e; - -typedef enum { - ZSTD_resetTarget_CDict = 0, - ZSTD_resetTarget_CCtx = 1, -} ZSTD_resetTarget_e; - -struct acpi_probe_entry; - -typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *); - -struct acpi_probe_entry { - __u8 id[5]; - __u8 type; - acpi_probe_entry_validate_subtbl subtable_valid; - union { - acpi_tbl_table_handler probe_table; - acpi_tbl_entry_handler probe_subtbl; - }; - kernel_ulong_t driver_data; -}; - -struct acpi_dep_data { - struct list_head node; - acpi_handle supplier; - acpi_handle consumer; - bool honor_dep; - bool met; - bool free_when_met; -}; - -struct acpi_scan_clear_dep_work { - struct work_struct work; - struct acpi_device *adev; -}; - -struct iommu_ops {}; - -struct acpi_table_stao { - struct acpi_table_header header; - u8 ignore_uart; -} __attribute__((packed)); - -struct clk_gpio { - struct clk_hw hw; - struct gpio_desc *gpiod; -}; - -struct lpss8250; - -struct lpss8250_board { - unsigned long freq; - unsigned int base_baud; - int (*setup)(struct lpss8250 *, struct uart_port *); - void (*exit)(struct lpss8250 *); -}; - -struct dw_dma; - -struct dw_dma_platform_data; - -struct dw_dma_chip { - struct device *dev; - int id; - int irq; - void *regs; - struct clk *clk; - struct dw_dma *dw; - const struct dw_dma_platform_data *pdata; -}; - -struct dw_dma_slave { - struct device *dma_dev; - u8 src_id; - u8 dst_id; - u8 m_master; - u8 p_master; - u8 channels; - bool hs_polarity; -}; - -struct lpss8250 { - struct dw8250_port_data data; - struct lpss8250_board *board; - struct dw_dma_chip dma_chip; - struct dw_dma_slave dma_param; - u8 dma_maxburst; -}; - -struct dw_dma_platform_data { - u32 nr_masters; - u32 nr_channels; - u32 chan_allocation_order; - u32 chan_priority; - u32 block_size; - u32 data_width[4]; - u32 multi_block[8]; - u32 max_burst[8]; - u32 protctl; - u32 quirks; -}; - -enum hsm_task_states { - HSM_ST_IDLE = 0, - HSM_ST_FIRST = 1, - HSM_ST = 2, - HSM_ST_LAST = 3, - HSM_ST_ERR = 4, -}; - -enum iwl_mei_nvm_caps { - MEI_NVM_CAPS_LARI_SUPPORT = 1, - MEI_NVM_CAPS_11AX_SUPPORT = 2, -}; - -enum iwl_nvm_sbands_flags { - IWL_NVM_SBANDS_FLAGS_LAR = 1, - IWL_NVM_SBANDS_FLAGS_NO_WIDE_IN_5GHZ = 2, -}; - -enum nvm_sku_bits { - NVM_SKU_CAP_BAND_24GHZ = 1, - NVM_SKU_CAP_BAND_52GHZ = 2, - NVM_SKU_CAP_11N_ENABLE = 4, - NVM_SKU_CAP_11AC_ENABLE = 8, - NVM_SKU_CAP_MIMO_DISABLE = 32, -}; - -enum nvm_offsets { - SUBSYSTEM_ID = 10, - HW_ADDR = 21, - NVM_SW_SECTION = 448, - NVM_VERSION = 0, - RADIO_CFG = 1, - SKU = 2, - N_HW_ADDRS = 3, - NVM_CHANNELS = 32, - NVM_CALIB_SECTION = 696, - XTAL_CALIB = 94, - NVM_CHANNELS_SDP = 0, -}; - -enum ext_nvm_offsets { - MAC_ADDRESS_OVERRIDE_EXT_NVM = 1, - NVM_VERSION_EXT_NVM = 0, - N_HW_ADDRS_FAMILY_8000 = 3, - RADIO_CFG_FAMILY_EXT_NVM = 0, - SKU_FAMILY_8000 = 2, - NVM_CHANNELS_EXTENDED = 0, - NVM_LAR_OFFSET_OLD = 1223, - NVM_LAR_OFFSET = 1287, - NVM_LAR_ENABLED = 7, -}; - -enum iwl_nvm_channel_flags { - NVM_CHANNEL_VALID = 1, - NVM_CHANNEL_IBSS = 2, - NVM_CHANNEL_ACTIVE = 8, - NVM_CHANNEL_RADAR = 16, - NVM_CHANNEL_INDOOR_ONLY = 32, - NVM_CHANNEL_GO_CONCURRENT = 64, - NVM_CHANNEL_UNIFORM = 128, - NVM_CHANNEL_20MHZ = 256, - NVM_CHANNEL_40MHZ = 512, - NVM_CHANNEL_80MHZ = 1024, - NVM_CHANNEL_160MHZ = 2048, - NVM_CHANNEL_DC_HIGH = 4096, - NVM_CHANNEL_VLP = 8192, - NVM_CHANNEL_AFC = 16384, -}; - -enum iwl_geo_information { - GEO_NO_INFO = 0, - GEO_WMM_ETSI_5GHZ_INFO = 1, -}; - -enum iwl_nvm_info_general_flags { - NVM_GENERAL_FLAGS_EMPTY_OTP = 1, -}; - -enum iwl_nvm_mac_sku_flags { - NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED = 1, - NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED = 2, - NVM_MAC_SKU_FLAGS_802_11N_ENABLED = 4, - NVM_MAC_SKU_FLAGS_802_11AC_ENABLED = 8, - NVM_MAC_SKU_FLAGS_802_11AX_ENABLED = 16, - NVM_MAC_SKU_FLAGS_MIMO_DISABLED = 32, - NVM_MAC_SKU_FLAGS_WAPI_ENABLED = 256, - NVM_MAC_SKU_FLAGS_REG_CHECK_ENABLED = 16384, - NVM_MAC_SKU_FLAGS_API_LOCK_ENABLED = 32768, -}; - -enum ieee80211_vht_max_ampdu_length_exp { - IEEE80211_VHT_MAX_AMPDU_8K = 0, - IEEE80211_VHT_MAX_AMPDU_16K = 1, - IEEE80211_VHT_MAX_AMPDU_32K = 2, - IEEE80211_VHT_MAX_AMPDU_64K = 3, - IEEE80211_VHT_MAX_AMPDU_128K = 4, - IEEE80211_VHT_MAX_AMPDU_256K = 5, - IEEE80211_VHT_MAX_AMPDU_512K = 6, - IEEE80211_VHT_MAX_AMPDU_1024K = 7, -}; - -enum iwl_reg_capa_flags_v4 { - REG_CAPA_V4_160MHZ_ALLOWED = 8, - REG_CAPA_V4_80MHZ_ALLOWED = 16, - REG_CAPA_V4_MCS_12_ALLOWED = 32, - REG_CAPA_V4_MCS_13_ALLOWED = 64, - REG_CAPA_V4_11BE_DISABLED = 256, - REG_CAPA_V4_11AX_DISABLED = 8192, - REG_CAPA_V4_320MHZ_ALLOWED = 65536, -}; - -enum iwl_reg_capa_flags_v2 { - REG_CAPA_V2_STRADDLE_DISABLED = 1, - REG_CAPA_V2_BF_CCD_LOW_BAND = 2, - REG_CAPA_V2_BF_CCD_HIGH_BAND = 4, - REG_CAPA_V2_160MHZ_ALLOWED = 8, - REG_CAPA_V2_80MHZ_ALLOWED = 16, - REG_CAPA_V2_MCS_8_ALLOWED = 32, - REG_CAPA_V2_MCS_9_ALLOWED = 64, - REG_CAPA_V2_WEATHER_DISABLED = 128, - REG_CAPA_V2_40MHZ_ALLOWED = 256, - REG_CAPA_V2_11AX_DISABLED = 1024, -}; - -enum iwl_reg_capa_flags_v1 { - REG_CAPA_V1_BF_CCD_LOW_BAND = 1, - REG_CAPA_V1_BF_CCD_HIGH_BAND = 2, - REG_CAPA_V1_160MHZ_ALLOWED = 4, - REG_CAPA_V1_80MHZ_ALLOWED = 8, - REG_CAPA_V1_MCS_8_ALLOWED = 16, - REG_CAPA_V1_MCS_9_ALLOWED = 32, - REG_CAPA_V1_40MHZ_FORBIDDEN = 128, - REG_CAPA_V1_DC_HIGH_ENABLED = 512, - REG_CAPA_V1_11AX_DISABLED = 1024, -}; - -struct iwl_reg_capa { - bool allow_40mhz; - bool allow_80mhz; - bool allow_160mhz; - bool allow_320mhz; - bool disable_11ax; - bool disable_11be; -}; - -struct iwl_nvm_get_info { - __le32 reserved; -}; - -struct iwl_nvm_get_info_general { - __le32 flags; - __le16 nvm_version; - u8 board_type; - u8 n_hw_addrs; -}; - -struct iwl_nvm_get_info_sku { - __le32 mac_sku_flags; -}; - -struct iwl_nvm_get_info_phy { - __le32 tx_chains; - __le32 rx_chains; -}; - -struct iwl_nvm_get_info_regulatory { - __le32 lar_enabled; - __le32 n_channels; - __le32 channel_profile[110]; -}; - -struct iwl_nvm_get_info_rsp { - struct iwl_nvm_get_info_general general; - struct iwl_nvm_get_info_sku mac_sku; - struct iwl_nvm_get_info_phy phy_sku; - struct iwl_nvm_get_info_regulatory regulatory; -}; - -struct iwl_nvm_get_info_regulatory_v1 { - __le32 lar_enabled; - __le16 channel_profile[51]; - __le16 reserved; -}; - -struct iwl_nvm_get_info_rsp_v3 { - struct iwl_nvm_get_info_general general; - struct iwl_nvm_get_info_sku mac_sku; - struct iwl_nvm_get_info_phy phy_sku; - struct iwl_nvm_get_info_regulatory_v1 regulatory; -}; - -struct rtw_hw_reg_desc { - u32 addr; - u32 mask; - const char *desc; -}; - -enum rtw_fw_rf_type { - FW_RF_1T2R = 0, - FW_RF_2T4R = 1, - FW_RF_2T2R = 2, - FW_RF_2T3R = 3, - FW_RF_1T1R = 4, - FW_RF_2T2R_GREEN = 5, - FW_RF_3T3R = 6, - FW_RF_3T4R = 7, - FW_RF_4T4R = 8, - FW_RF_MAX_TYPE = 15, -}; - -enum rtw_beacon_filter_offload_mode { - BCN_FILTER_OFFLOAD_MODE_0 = 0, - BCN_FILTER_OFFLOAD_MODE_1 = 1, - BCN_FILTER_OFFLOAD_MODE_2 = 2, - BCN_FILTER_OFFLOAD_MODE_3 = 3, - BCN_FILTER_OFFLOAD_MODE_DEFAULT = 0, -}; - -enum rtw_packet_type { - RTW_PACKET_PROBE_REQ = 0, - RTW_PACKET_UNDEFINE = 2147483647, -}; - -enum rtw_scan_report_code { - RTW_SCAN_REPORT_SUCCESS = 0, - RTW_SCAN_REPORT_ERR_PHYDM = 1, - RTW_SCAN_REPORT_ERR_ID = 2, - RTW_SCAN_REPORT_ERR_TX = 3, - RTW_SCAN_REPORT_CANCELED = 16, - RTW_SCAN_REPORT_CANCELED_EXT = 17, - RTW_SCAN_REPORT_FW_DISABLED = 240, -}; - -enum rtw_scan_notify_id { - RTW_SCAN_NOTIFY_ID_PRESWITCH = 0, - RTW_SCAN_NOTIFY_ID_POSTSWITCH = 1, - RTW_SCAN_NOTIFY_ID_PROBE_PRETX = 2, - RTW_SCAN_NOTIFY_ID_PROBE_ISSUETX = 3, - RTW_SCAN_NOTIFY_ID_NULL0_PRETX = 4, - RTW_SCAN_NOTIFY_ID_NULL0_ISSUETX = 5, - RTW_SCAN_NOTIFY_ID_NULL0_POSTTX = 6, - RTW_SCAN_NOTIFY_ID_NULL1_PRETX = 7, - RTW_SCAN_NOTIFY_ID_NULL1_ISSUETX = 8, - RTW_SCAN_NOTIFY_ID_NULL1_POSTTX = 9, - RTW_SCAN_NOTIFY_ID_DWELLEXT = 10, -}; - -enum rtw_c2h_cmd_id_ext { - C2H_SCAN_STATUS_RPT = 3, - C2H_CCX_RPT = 15, - C2H_CHAN_SWITCH = 34, -}; - -enum rtw_channel_type { - RTW_CHANNEL_PASSIVE = 0, - RTW_CHANNEL_ACTIVE = 1, - RTW_CHANNEL_RADAR = 2, -}; - -enum rtw_scan_extra_id { - RTW_SCAN_EXTRA_ID_DFS = 0, -}; - -enum rtw_scan_extra_info { - RTW_SCAN_EXTRA_ACTION_SCAN = 0, -}; - -struct rtw_c2h_adaptivity { - u8 density; - u8 igi; - u8 l2h_th_init; - u8 l2h; - u8 h2l; - u8 option; -}; - -struct rtw_h2c_cmd { - __le32 msg; - __le32 msg_ext; -}; - -struct rtw_fw_iter_ra_data { - struct rtw_dev *rtwdev; - u8 *payload; -}; - -struct rtw_beacon_filter_iter_data { - struct rtw_dev *rtwdev; - u8 *payload; -}; - -struct rtw_h2c_register { - u32 w0; - u32 w1; -}; - -struct rtw_chan_list { - u32 buf_size; - u32 ch_num; - u32 size; - u16 addr; -}; - -struct rtw_chan_info { - int pri_ch_idx; - int action_id; - int bw; - u8 extra_info; - u8 channel; - u16 timeout; -}; - -struct rtw_ch_switch_option { - u8 periodic_option; - u32 tsf_high; - u32 tsf_low; - u8 dest_ch_en; - u8 absolute_time_en; - u8 dest_ch; - u8 normal_period; - u8 normal_period_sel; - u8 normal_cycle; - u8 slow_period; - u8 slow_period_sel; - u8 nlo_en; - bool switch_en; - bool back_op_en; -}; - -struct rtw_lps_pg_dpk_hdr { - u16 dpk_path_ok; - u8 dpk_txagc[2]; - u16 dpk_gs[2]; - u32 coef[40]; - u8 dpk_ch; -} __attribute__((packed)); - -struct rtw_lps_pg_info_hdr { - u8 macid; - u8 mbssid; - u8 pattern_count; - u8 mu_tab_group_id; - u8 sec_cam_count; - u8 tx_bu_page_count; - u16 rsvd; - u8 sec_cam[8]; -}; - -struct rtw_nlo_info_hdr { - u8 nlo_count; - u8 hidden_ap_count; - u8 rsvd1[2]; - u8 pattern_check[4]; - u8 rsvd2[8]; - u8 ssid_len[16]; - u8 chiper[16]; - u8 rsvd3[16]; - u8 location[8]; -}; - -struct rtw_fw_wow_keep_alive_para { - bool adopt; - u8 pkt_type; - u8 period; -}; - -struct rtw_fw_wow_disconnect_para { - bool adopt; - u8 period; - u8 retry_count; -}; - -enum input_clock_type { - INPUT_CLK_REAL = 0, - INPUT_CLK_MONO = 1, - INPUT_CLK_BOOT = 2, - INPUT_CLK_MAX = 3, -}; - -union input_seq_state { - struct { - unsigned short pos; - bool mutex_acquired; - }; - void *p; -}; - -struct input_devres { - struct input_dev *input; -}; - -typedef int (*cppc_mode_transition_fn)(int); - -enum amd_pstate_mode { - AMD_PSTATE_UNDEFINED = 0, - AMD_PSTATE_DISABLE = 1, - AMD_PSTATE_PASSIVE = 2, - AMD_PSTATE_ACTIVE = 3, - AMD_PSTATE_GUIDED = 4, - AMD_PSTATE_MAX = 5, -}; - -enum acpi_preferred_pm_profiles { - PM_UNSPECIFIED = 0, - PM_DESKTOP = 1, - PM_MOBILE = 2, - PM_WORKSTATION = 3, - PM_ENTERPRISE_SERVER = 4, - PM_SOHO_SERVER = 5, - PM_APPLIANCE_PC = 6, - PM_PERFORMANCE_SERVER = 7, - PM_TABLET = 8, - NR_PM_PROFILES = 9, -}; - -enum energy_perf_value_index___2 { - EPP_INDEX_DEFAULT = 0, - EPP_INDEX_PERFORMANCE = 1, - EPP_INDEX_BALANCE_PERFORMANCE = 2, - EPP_INDEX_BALANCE_POWERSAVE = 3, - EPP_INDEX_POWERSAVE = 4, -}; - -struct amd_aperf_mperf { - u64 aperf; - u64 mperf; - u64 tsc; -}; - -struct amd_cpudata { - int cpu; - struct freq_qos_request req[2]; - u64 cppc_req_cached; - u32 highest_perf; - u32 nominal_perf; - u32 lowest_nonlinear_perf; - u32 lowest_perf; - u32 prefcore_ranking; - u32 min_limit_perf; - u32 max_limit_perf; - u32 min_limit_freq; - u32 max_limit_freq; - u32 max_freq; - u32 min_freq; - u32 nominal_freq; - u32 lowest_nonlinear_freq; - struct amd_aperf_mperf cur; - struct amd_aperf_mperf prev; - u64 freq; - bool boost_supported; - bool hw_prefcore; - s16 epp_policy; - s16 epp_cached; - u32 policy; - u64 cppc_cap1_cached; - bool suspended; -}; - -enum { - ETHTOOL_A_FEATURES_UNSPEC = 0, - ETHTOOL_A_FEATURES_HEADER = 1, - ETHTOOL_A_FEATURES_HW = 2, - ETHTOOL_A_FEATURES_WANTED = 3, - ETHTOOL_A_FEATURES_ACTIVE = 4, - ETHTOOL_A_FEATURES_NOCHANGE = 5, - __ETHTOOL_A_FEATURES_CNT = 6, - ETHTOOL_A_FEATURES_MAX = 5, -}; - -struct features_reply_data { - struct ethnl_reply_data base; - u32 hw[2]; - u32 wanted[2]; - u32 active[2]; - u32 nochange[2]; - u32 all[2]; -}; - -enum nft_meta_attributes { - NFTA_META_UNSPEC = 0, - NFTA_META_DREG = 1, - NFTA_META_KEY = 2, - NFTA_META_SREG = 3, - __NFTA_META_MAX = 4, -}; - -struct igmphdr { - __u8 type; - __u8 code; - __sum16 csum; - __be32 group; -}; - -struct igmp_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *in_dev; -}; - -struct igmp_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *idev; - struct ip_mc_list *im; -}; - -enum tpacket_versions { - TPACKET_V1 = 0, - TPACKET_V2 = 1, - TPACKET_V3 = 2, -}; - -enum packet_sock_flags { - PACKET_SOCK_ORIGDEV = 0, - PACKET_SOCK_AUXDATA = 1, - PACKET_SOCK_TX_HAS_OFF = 2, - PACKET_SOCK_TP_LOSS = 3, - PACKET_SOCK_RUNNING = 4, - PACKET_SOCK_PRESSURE = 5, - PACKET_SOCK_QDISC_BYPASS = 6, -}; - -struct tpacket_stats { - unsigned int tp_packets; - unsigned int tp_drops; -}; - -struct tpacket_stats_v3 { - unsigned int tp_packets; - unsigned int tp_drops; - unsigned int tp_freeze_q_cnt; -}; - -union tpacket_stats_u { - struct tpacket_stats stats1; - struct tpacket_stats_v3 stats3; -}; - -struct pgv; - -struct tpacket_kbdq_core { - struct pgv *pkbdq; - unsigned int feature_req_word; - unsigned int hdrlen; - unsigned char reset_pending_on_curr_blk; - unsigned char delete_blk_timer; - unsigned short kactive_blk_num; - unsigned short blk_sizeof_priv; - unsigned short last_kactive_blk_num; - char *pkblk_start; - char *pkblk_end; - int kblk_size; - unsigned int max_frame_len; - unsigned int knum_blocks; - uint64_t knxt_seq_num; - char *prev; - char *nxt_offset; - struct sk_buff *skb; - rwlock_t blk_fill_in_prog_lock; - unsigned short retire_blk_tov; - unsigned short version; - unsigned long tov_in_jiffies; - struct timer_list retire_blk_timer; -}; - -struct packet_ring_buffer { - struct pgv *pg_vec; - unsigned int head; - unsigned int frames_per_block; - unsigned int frame_size; - unsigned int frame_max; - unsigned int pg_vec_order; - unsigned int pg_vec_pages; - unsigned int pg_vec_len; - unsigned int __attribute__((btf_type_tag("percpu"))) *pending_refcnt; - union { - unsigned long *rx_owner_map; - struct tpacket_kbdq_core prb_bdqc; - }; -}; - -struct packet_fanout; - -struct packet_rollover; - -struct packet_mclist; - -struct packet_sock { - struct sock sk; - struct packet_fanout *fanout; - union tpacket_stats_u stats; - struct packet_ring_buffer rx_ring; - struct packet_ring_buffer tx_ring; - int copy_thresh; - spinlock_t bind_lock; - struct mutex pg_vec_lock; - unsigned long flags; - int ifindex; - u8 vnet_hdr_sz; - __be16 num; - struct packet_rollover *rollover; - struct packet_mclist *mclist; - atomic_long_t mapped; - enum tpacket_versions tp_version; - unsigned int tp_hdrlen; - unsigned int tp_reserve; - unsigned int tp_tstamp; - struct completion skb_completion; - struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; - long: 64; - long: 64; - struct packet_type prot_hook; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - atomic_t tp_drops; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct packet_fanout { - possible_net_t net; - unsigned int num_members; - u32 max_num_members; - u16 id; - u8 type; - u8 flags; - union { - atomic_t rr_cur; - struct bpf_prog __attribute__((btf_type_tag("rcu"))) *bpf_prog; - }; - struct list_head list; - spinlock_t lock; - refcount_t sk_ref; - long: 64; - struct packet_type prot_hook; - struct sock __attribute__((btf_type_tag("rcu"))) *arr[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct pgv { - char *buffer; -}; - -struct packet_rollover { - int sock; - atomic_long_t num; - atomic_long_t num_huge; - atomic_long_t num_failed; - long: 64; - long: 64; - long: 64; - long: 64; - u32 history[16]; -}; - -struct packet_mclist { - struct packet_mclist *next; - int ifindex; - int count; - unsigned short type; - unsigned short alen; - unsigned char addr[32]; -}; - -struct tpacket_bd_ts { - unsigned int ts_sec; - union { - unsigned int ts_usec; - unsigned int ts_nsec; - }; -}; - -struct tpacket_hdr_v1 { - __u32 block_status; - __u32 num_pkts; - __u32 offset_to_first_pkt; - __u32 blk_len; - __u64 seq_num; - struct tpacket_bd_ts ts_first_pkt; - struct tpacket_bd_ts ts_last_pkt; -}; - -union tpacket_bd_header_u { - struct tpacket_hdr_v1 bh1; -}; - -struct tpacket_block_desc { - __u32 version; - __u32 offset_to_priv; - union tpacket_bd_header_u hdr; -}; - -struct tpacket_hdr_variant1 { - __u32 tp_rxhash; - __u32 tp_vlan_tci; - __u16 tp_vlan_tpid; - __u16 tp_padding; -}; - -struct tpacket3_hdr { - __u32 tp_next_offset; - __u32 tp_sec; - __u32 tp_nsec; - __u32 tp_snaplen; - __u32 tp_len; - __u32 tp_status; - __u16 tp_mac; - __u16 tp_net; - union { - struct tpacket_hdr_variant1 hv1; - }; - __u8 tp_padding[8]; -}; - -struct sockaddr_ll { - unsigned short sll_family; - __be16 sll_protocol; - int sll_ifindex; - unsigned short sll_hatype; - unsigned char sll_pkttype; - unsigned char sll_halen; - unsigned char sll_addr[8]; -}; - -struct sockaddr_pkt { - unsigned short spkt_family; - unsigned char spkt_device[14]; - __be16 spkt_protocol; -}; - -struct packet_skb_cb { - union { - struct sockaddr_pkt pkt; - union { - unsigned int origlen; - struct sockaddr_ll ll; - }; - } sa; -}; - -struct virtio_net_hdr { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; - __virtio16 csum_start; - __virtio16 csum_offset; -}; - -struct tpacket_hdr; - -struct tpacket2_hdr; - -union tpacket_uhdr { - struct tpacket_hdr *h1; - struct tpacket2_hdr *h2; - struct tpacket3_hdr *h3; - void *raw; -}; - -struct tpacket_hdr { - unsigned long tp_status; - unsigned int tp_len; - unsigned int tp_snaplen; - unsigned short tp_mac; - unsigned short tp_net; - unsigned int tp_sec; - unsigned int tp_usec; -}; - -struct tpacket2_hdr { - __u32 tp_status; - __u32 tp_len; - __u32 tp_snaplen; - __u16 tp_mac; - __u16 tp_net; - __u32 tp_sec; - __u32 tp_nsec; - __u16 tp_vlan_tci; - __u16 tp_vlan_tpid; - __u8 tp_padding[4]; -}; - -struct virtio_net_hdr_mrg_rxbuf { - struct virtio_net_hdr hdr; - __virtio16 num_buffers; -}; - -struct tpacket_req { - unsigned int tp_block_size; - unsigned int tp_block_nr; - unsigned int tp_frame_size; - unsigned int tp_frame_nr; -}; - -struct tpacket_req3 { - unsigned int tp_block_size; - unsigned int tp_block_nr; - unsigned int tp_frame_size; - unsigned int tp_frame_nr; - unsigned int tp_retire_blk_tov; - unsigned int tp_sizeof_priv; - unsigned int tp_feature_req_word; -}; - -union tpacket_req_u { - struct tpacket_req req; - struct tpacket_req3 req3; -}; - -struct packet_mreq_max { - int mr_ifindex; - unsigned short mr_type; - unsigned short mr_alen; - unsigned char mr_address[32]; -}; - -struct fanout_args { - __u16 id; - __u16 type_flags; - __u32 max_num_members; -}; - -struct tpacket_rollover_stats { - __u64 tp_all; - __u64 tp_huge; - __u64 tp_failed; -}; - -struct tpacket_auxdata { - __u32 tp_status; - __u32 tp_len; - __u32 tp_snaplen; - __u16 tp_mac; - __u16 tp_net; - __u16 tp_vlan_tci; - __u16 tp_vlan_tpid; -}; - -typedef struct { - unsigned long key[2]; -} hsiphash_key_t; - -struct legacy_pic { - int nr_legacy_irqs; - struct irq_chip *chip; - void (*mask)(unsigned int); - void (*unmask)(unsigned int); - void (*mask_all)(); - void (*restore_mask)(); - void (*init)(int); - int (*probe)(); - int (*irq_pending)(unsigned int); - void (*make_irq)(unsigned int); -}; - -enum { - SAMPLES = 8, - MIN_CHANGE = 5, -}; - -enum vmx_l1d_flush_state { - VMENTER_L1D_FLUSH_AUTO = 0, - VMENTER_L1D_FLUSH_NEVER = 1, - VMENTER_L1D_FLUSH_COND = 2, - VMENTER_L1D_FLUSH_ALWAYS = 3, - VMENTER_L1D_FLUSH_EPT_DISABLED = 4, - VMENTER_L1D_FLUSH_NOT_REQUIRED = 5, -}; - -enum rfds_mitigations { - RFDS_MITIGATION_OFF = 0, - RFDS_MITIGATION_VERW = 1, - RFDS_MITIGATION_UCODE_NEEDED = 2, -}; - -enum srbds_mitigations { - SRBDS_MITIGATION_OFF = 0, - SRBDS_MITIGATION_UCODE_NEEDED = 1, - SRBDS_MITIGATION_FULL = 2, - SRBDS_MITIGATION_TSX_OFF = 3, - SRBDS_MITIGATION_HYPERVISOR = 4, -}; - -enum l1d_flush_mitigations { - L1D_FLUSH_OFF = 0, - L1D_FLUSH_ON = 1, -}; - -enum gds_mitigations { - GDS_MITIGATION_OFF = 0, - GDS_MITIGATION_UCODE_NEEDED = 1, - GDS_MITIGATION_FORCE = 2, - GDS_MITIGATION_FULL = 3, - GDS_MITIGATION_FULL_LOCKED = 4, - GDS_MITIGATION_HYPERVISOR = 5, -}; - -enum spectre_v1_mitigation { - SPECTRE_V1_MITIGATION_NONE = 0, - SPECTRE_V1_MITIGATION_AUTO = 1, -}; - -enum retbleed_mitigation_cmd { - RETBLEED_CMD_OFF = 0, - RETBLEED_CMD_AUTO = 1, - RETBLEED_CMD_UNRET = 2, - RETBLEED_CMD_IBPB = 3, - RETBLEED_CMD_STUFF = 4, -}; - -enum retbleed_mitigation { - RETBLEED_MITIGATION_NONE = 0, - RETBLEED_MITIGATION_UNRET = 1, - RETBLEED_MITIGATION_IBPB = 2, - RETBLEED_MITIGATION_IBRS = 3, - RETBLEED_MITIGATION_EIBRS = 4, - RETBLEED_MITIGATION_STUFF = 5, -}; - -enum spectre_v2_mitigation_cmd { - SPECTRE_V2_CMD_NONE = 0, - SPECTRE_V2_CMD_AUTO = 1, - SPECTRE_V2_CMD_FORCE = 2, - SPECTRE_V2_CMD_RETPOLINE = 3, - SPECTRE_V2_CMD_RETPOLINE_GENERIC = 4, - SPECTRE_V2_CMD_RETPOLINE_LFENCE = 5, - SPECTRE_V2_CMD_EIBRS = 6, - SPECTRE_V2_CMD_EIBRS_RETPOLINE = 7, - SPECTRE_V2_CMD_EIBRS_LFENCE = 8, - SPECTRE_V2_CMD_IBRS = 9, -}; - -enum spectre_v2_user_cmd { - SPECTRE_V2_USER_CMD_NONE = 0, - SPECTRE_V2_USER_CMD_AUTO = 1, - SPECTRE_V2_USER_CMD_FORCE = 2, - SPECTRE_V2_USER_CMD_PRCTL = 3, - SPECTRE_V2_USER_CMD_PRCTL_IBPB = 4, - SPECTRE_V2_USER_CMD_SECCOMP = 5, - SPECTRE_V2_USER_CMD_SECCOMP_IBPB = 6, -}; - -enum spectre_v2_user_mitigation { - SPECTRE_V2_USER_NONE = 0, - SPECTRE_V2_USER_STRICT = 1, - SPECTRE_V2_USER_STRICT_PREFERRED = 2, - SPECTRE_V2_USER_PRCTL = 3, - SPECTRE_V2_USER_SECCOMP = 4, -}; - -enum mds_mitigations { - MDS_MITIGATION_OFF = 0, - MDS_MITIGATION_FULL = 1, - MDS_MITIGATION_VMWERV = 2, -}; - -enum taa_mitigations { - TAA_MITIGATION_OFF = 0, - TAA_MITIGATION_UCODE_NEEDED = 1, - TAA_MITIGATION_VERW = 2, - TAA_MITIGATION_TSX_DISABLED = 3, -}; - -enum mmio_mitigations { - MMIO_MITIGATION_OFF = 0, - MMIO_MITIGATION_UCODE_NEEDED = 1, - MMIO_MITIGATION_VERW = 2, -}; - -enum ssb_mitigation_cmd { - SPEC_STORE_BYPASS_CMD_NONE = 0, - SPEC_STORE_BYPASS_CMD_AUTO = 1, - SPEC_STORE_BYPASS_CMD_ON = 2, - SPEC_STORE_BYPASS_CMD_PRCTL = 3, - SPEC_STORE_BYPASS_CMD_SECCOMP = 4, -}; - -enum ssb_mitigation { - SPEC_STORE_BYPASS_NONE = 0, - SPEC_STORE_BYPASS_DISABLE = 1, - SPEC_STORE_BYPASS_PRCTL = 2, - SPEC_STORE_BYPASS_SECCOMP = 3, -}; - -enum srso_mitigation_cmd { - SRSO_CMD_OFF = 0, - SRSO_CMD_MICROCODE = 1, - SRSO_CMD_SAFE_RET = 2, - SRSO_CMD_IBPB = 3, - SRSO_CMD_IBPB_ON_VMEXIT = 4, -}; - -enum srso_mitigation { - SRSO_MITIGATION_NONE = 0, - SRSO_MITIGATION_UCODE_NEEDED = 1, - SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED = 2, - SRSO_MITIGATION_MICROCODE = 3, - SRSO_MITIGATION_SAFE_RET = 4, - SRSO_MITIGATION_IBPB = 5, - SRSO_MITIGATION_IBPB_ON_VMEXIT = 6, -}; - -enum cpuhp_smt_control { - CPU_SMT_ENABLED = 0, - CPU_SMT_DISABLED = 1, - CPU_SMT_FORCE_DISABLED = 2, - CPU_SMT_NOT_SUPPORTED = 3, - CPU_SMT_NOT_IMPLEMENTED = 4, -}; - -enum { - MEMTYPE_EXACT_MATCH = 0, - MEMTYPE_END_MATCH = 1, -}; - -struct platform_suspend_ops { - int (*valid)(suspend_state_t); - int (*begin)(suspend_state_t); - int (*prepare)(); - int (*prepare_late)(); - int (*enter)(suspend_state_t); - void (*wake)(); - void (*finish)(); - bool (*suspend_again)(); - void (*end)(); - void (*recover)(); -}; - -enum s2idle_states { - S2IDLE_STATE_NONE = 0, - S2IDLE_STATE_ENTER = 1, - S2IDLE_STATE_WAKE = 2, -}; - -struct bsd_acct_struct { - struct fs_pin pin; - atomic_long_t count; - struct callback_head rcu; - struct mutex lock; - int active; - unsigned long needcheck; - struct file *file; - struct pid_namespace *ns; - struct work_struct work; - struct completion done; -}; - -typedef __u16 comp_t; - -struct acct { - char ac_flag; - char ac_version; - __u16 ac_uid16; - __u16 ac_gid16; - __u16 ac_tty; - __u32 ac_btime; - comp_t ac_utime; - comp_t ac_stime; - comp_t ac_etime; - comp_t ac_mem; - comp_t ac_io; - comp_t ac_rw; - comp_t ac_minflt; - comp_t ac_majflt; - comp_t ac_swaps; - __u16 ac_ahz; - __u32 ac_exitcode; - char ac_comm[17]; - __u8 ac_etime_hi; - __u16 ac_etime_lo; - __u32 ac_uid; - __u32 ac_gid; -}; - -typedef struct acct acct_t; - -typedef __u32 comp2_t; - -struct reuseport_array { - struct bpf_map map; - struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; -}; - -struct memory_dev_type; - -struct node_memory_type_map { - struct memory_dev_type *memtype; - int map_count; -}; - -struct memory_dev_type { - struct list_head tier_sibling; - struct list_head list; - int adistance; - nodemask_t nodes; - struct kref kref; -}; - -struct demotion_nodes { - nodemask_t preferred; -}; - -struct access_coordinate { - unsigned int read_bandwidth; - unsigned int write_bandwidth; - unsigned int read_latency; - unsigned int write_latency; -}; - -enum btrfs_delayed_ref_flags { - BTRFS_DELAYED_REFS_FLUSHING = 0, -}; - -struct essiv_tfm_ctx { - union { - struct crypto_skcipher *skcipher; - struct crypto_aead *aead; - } u; - struct crypto_cipher *essiv_cipher; - struct crypto_shash *hash; - int ivoffset; -}; - -struct essiv_instance_ctx { - union { - struct crypto_skcipher_spawn skcipher_spawn; - struct crypto_aead_spawn aead_spawn; - } u; - char essiv_cipher_name[128]; - char shash_driver_name[128]; -}; - -struct essiv_aead_request_ctx { - struct scatterlist sg[4]; - u8 *assoc; - struct aead_request aead_req; -}; - -struct io_waitid { - struct file *file; - int which; - pid_t upid; - int options; - atomic_t refs; - struct wait_queue_head *head; - struct siginfo __attribute__((btf_type_tag("user"))) *infop; - struct waitid_info info; -}; - -struct io_waitid_async { - struct io_kiocb *req; - struct wait_opts wo; -}; - -struct barrett_ctx_s { - MPI m; - int m_copied; - int k; - MPI y; - MPI r1; - MPI r2; - MPI r3; -}; - -typedef struct { - U32 tableTime; - U32 decode256Time; -} algo_time_t; - -typedef struct { - BYTE nbBits; - BYTE byte; -} HUF_DEltX1; - -typedef struct { - U32 rankVal[13]; - U32 rankStart[13]; - U32 statsWksp[218]; - BYTE symbols[256]; - BYTE huffWeight[256]; -} HUF_ReadDTableX1_Workspace; - -typedef struct { - U16 sequence; - BYTE nbBits; - BYTE length; -} HUF_DEltX2; - -typedef U32 rankValCol_t[13]; - -typedef struct { - BYTE symbol; -} sortedSymbol_t; - -typedef struct { - rankValCol_t rankVal[12]; - U32 rankStats[13]; - U32 rankStart0[15]; - sortedSymbol_t sortedSymbol[256]; - BYTE weightList[256]; - U32 calleeWksp[218]; -} HUF_ReadDTableX2_Workspace; - -typedef struct { - BYTE maxTableLog; - BYTE tableType; - BYTE tableLog; - BYTE reserved; -} DTableDesc; - -struct acpi_gpe_block_status_context { - struct acpi_gpe_register_info *gpe_skip_register_info; - u8 gpe_skip_mask; - u8 retval; -}; - -typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); - -typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); - -typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *); - -typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *); - -typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *); - -typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); - -typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); - -typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); - -typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); - -typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); - -typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int); - -typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int); - -typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *); - -typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int); - -typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int); - -typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); - -typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); - -typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); - -typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int); - -typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int); - -typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); - -typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int); - -typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int); - -typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *); - -typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *); - -typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *); - -typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char); - -typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); - -typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char); - -typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); - -typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); - -typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); - -typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *); - -struct ata_force_param { - const char *name; - u8 cbl; - u8 spd_limit; - unsigned int xfer_mask; - unsigned int horkage_on; - unsigned int horkage_off; - u16 lflags_on; - u16 lflags_off; -}; - -struct ata_force_ent { - int port; - int device; - struct ata_force_param param; -}; - -struct ata_xfer_ent { - int shift; - int bits; - u8 base; -}; - -struct ata_blacklist_entry { - const char *model_num; - const char *model_rev; - unsigned long horkage; -}; - -enum ata_xfer_mask { - ATA_MASK_PIO = 127, - ATA_MASK_MWDMA = 3968, - ATA_MASK_UDMA = 1044480, -}; - -struct trace_event_raw_ata_qc_issue_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int tag; - unsigned char cmd; - unsigned char dev; - unsigned char lbal; - unsigned char lbam; - unsigned char lbah; - unsigned char nsect; - unsigned char feature; - unsigned char hob_lbal; - unsigned char hob_lbam; - unsigned char hob_lbah; - unsigned char hob_nsect; - unsigned char hob_feature; - unsigned char ctl; - unsigned char proto; - unsigned long flags; - char __data[0]; -}; - -struct trace_event_raw_ata_qc_complete_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int tag; - unsigned char status; - unsigned char dev; - unsigned char lbal; - unsigned char lbam; - unsigned char lbah; - unsigned char nsect; - unsigned char error; - unsigned char hob_lbal; - unsigned char hob_lbam; - unsigned char hob_lbah; - unsigned char hob_nsect; - unsigned char hob_feature; - unsigned char ctl; - unsigned long flags; - char __data[0]; -}; - -struct trace_event_raw_ata_tf_load { - struct trace_entry ent; - unsigned int ata_port; - unsigned char cmd; - unsigned char dev; - unsigned char lbal; - unsigned char lbam; - unsigned char lbah; - unsigned char nsect; - unsigned char feature; - unsigned char hob_lbal; - unsigned char hob_lbam; - unsigned char hob_lbah; - unsigned char hob_nsect; - unsigned char hob_feature; - unsigned char proto; - char __data[0]; -}; - -struct trace_event_raw_ata_exec_command_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int tag; - unsigned char cmd; - unsigned char feature; - unsigned char hob_nsect; - unsigned char proto; - char __data[0]; -}; - -struct trace_event_raw_ata_bmdma_status { - struct trace_entry ent; - unsigned int ata_port; - unsigned int tag; - unsigned char host_stat; - char __data[0]; -}; - -struct trace_event_raw_ata_eh_link_autopsy { - struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int eh_action; - unsigned int eh_err_mask; - char __data[0]; -}; - -struct trace_event_raw_ata_eh_link_autopsy_qc { - struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int tag; - unsigned int qc_flags; - unsigned int eh_err_mask; - char __data[0]; -}; - -struct trace_event_raw_ata_eh_action_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int eh_action; - char __data[0]; -}; - -struct trace_event_raw_ata_link_reset_begin_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int class[2]; - unsigned long deadline; - char __data[0]; -}; - -struct trace_event_raw_ata_link_reset_end_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int class[2]; - int rc; - char __data[0]; -}; - -struct trace_event_raw_ata_port_eh_begin_template { - struct trace_entry ent; - unsigned int ata_port; - char __data[0]; -}; - -struct trace_event_raw_ata_sff_hsm_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int tag; - unsigned int qc_flags; - unsigned int protocol; - unsigned int hsm_state; - unsigned char dev_state; - char __data[0]; -}; - -struct trace_event_raw_ata_transfer_data_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int tag; - unsigned int flags; - unsigned int offset; - unsigned int bytes; - char __data[0]; -}; - -struct trace_event_raw_ata_sff_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned char hsm_state; - char __data[0]; -}; - -struct trace_event_data_offsets_ata_qc_issue_template {}; - -struct trace_event_data_offsets_ata_qc_complete_template {}; - -struct trace_event_data_offsets_ata_tf_load {}; - -struct trace_event_data_offsets_ata_exec_command_template {}; - -struct trace_event_data_offsets_ata_bmdma_status {}; - -struct trace_event_data_offsets_ata_eh_link_autopsy {}; - -struct trace_event_data_offsets_ata_eh_link_autopsy_qc {}; - -struct trace_event_data_offsets_ata_eh_action_template {}; - -struct trace_event_data_offsets_ata_link_reset_begin_template {}; - -struct trace_event_data_offsets_ata_link_reset_end_template {}; - -struct trace_event_data_offsets_ata_port_eh_begin_template {}; - -struct trace_event_data_offsets_ata_sff_hsm_template {}; - -struct trace_event_data_offsets_ata_transfer_data_template {}; - -struct trace_event_data_offsets_ata_sff_template {}; - -enum iwl_mac_qos_flags { - MAC_QOS_FLG_UPDATE_EDCA = 1, - MAC_QOS_FLG_TGN = 2, - MAC_QOS_FLG_TXOP_TYPE = 16, -}; - -enum iwl_mac_types { - FW_MAC_TYPE_FIRST = 1, - FW_MAC_TYPE_AUX = 1, - FW_MAC_TYPE_LISTENER = 2, - FW_MAC_TYPE_PIBSS = 3, - FW_MAC_TYPE_IBSS = 4, - FW_MAC_TYPE_BSS_STA = 5, - FW_MAC_TYPE_P2P_DEVICE = 6, - FW_MAC_TYPE_P2P_STA = 7, - FW_MAC_TYPE_GO = 8, - FW_MAC_TYPE_TEST = 9, - FW_MAC_TYPE_MAX = 9, -}; - -enum iwl_mac_beacon_flags { - IWL_MAC_BEACON_CCK = 32, - IWL_MAC_BEACON_ANT_A = 64, - IWL_MAC_BEACON_ANT_B = 128, - IWL_MAC_BEACON_FILS = 256, -}; - -enum iwl_mac_beacon_flags_v1 { - IWL_MAC_BEACON_CCK_V1 = 256, - IWL_MAC_BEACON_ANT_A_V1 = 512, - IWL_MAC_BEACON_ANT_B_V1 = 1024, - IWL_MAC_BEACON_FILS_V1 = 4096, -}; - -enum iwl_tx_status { - TX_STATUS_MSK___2 = 255, - TX_STATUS_SUCCESS___2 = 1, - TX_STATUS_DIRECT_DONE___2 = 2, - TX_STATUS_POSTPONE_DELAY___2 = 64, - TX_STATUS_POSTPONE_FEW_BYTES___2 = 65, - TX_STATUS_POSTPONE_BT_PRIO___2 = 66, - TX_STATUS_POSTPONE_QUIET_PERIOD___2 = 67, - TX_STATUS_POSTPONE_CALC_TTAK___2 = 68, - TX_STATUS_FAIL_INTERNAL_CROSSED_RETRY___2 = 129, - TX_STATUS_FAIL_SHORT_LIMIT___2 = 130, - TX_STATUS_FAIL_LONG_LIMIT___2 = 131, - TX_STATUS_FAIL_UNDERRUN = 132, - TX_STATUS_FAIL_DRAIN_FLOW___2 = 133, - TX_STATUS_FAIL_RFKILL_FLUSH___2 = 134, - TX_STATUS_FAIL_LIFE_EXPIRE___2 = 135, - TX_STATUS_FAIL_DEST_PS___2 = 136, - TX_STATUS_FAIL_HOST_ABORTED___2 = 137, - TX_STATUS_FAIL_BT_RETRY___2 = 138, - TX_STATUS_FAIL_STA_INVALID___2 = 139, - TX_STATUS_FAIL_FRAG_DROPPED___2 = 140, - TX_STATUS_FAIL_TID_DISABLE___2 = 141, - TX_STATUS_FAIL_FIFO_FLUSHED___2 = 142, - TX_STATUS_FAIL_SMALL_CF_POLL = 143, - TX_STATUS_FAIL_FW_DROP = 144, - TX_STATUS_FAIL_STA_COLOR_MISMATCH = 145, - TX_STATUS_INTERNAL_ABORT = 146, - TX_MODE_MSK = 3840, - TX_MODE_NO_BURST = 0, - TX_MODE_IN_BURST_SEQ = 256, - TX_MODE_FIRST_IN_BURST = 512, - TX_QUEUE_NUM_MSK = 126976, - TX_NARROW_BW_MSK = 393216, - TX_NARROW_BW_1DIV2 = 131072, - TX_NARROW_BW_1DIV4 = 262144, - TX_NARROW_BW_1DIV8 = 393216, -}; - -enum iwl_rx_phy_flags { - RX_RES_PHY_FLAGS_BAND_24 = 1, - RX_RES_PHY_FLAGS_MOD_CCK = 2, - RX_RES_PHY_FLAGS_SHORT_PREAMBLE = 4, - RX_RES_PHY_FLAGS_NARROW_BAND = 8, - RX_RES_PHY_FLAGS_ANTENNA = 112, - RX_RES_PHY_FLAGS_ANTENNA_POS = 4, - RX_RES_PHY_FLAGS_AGG = 128, - RX_RES_PHY_FLAGS_OFDM_HT = 256, - RX_RES_PHY_FLAGS_OFDM_GF = 512, - RX_RES_PHY_FLAGS_OFDM_VHT = 1024, -}; - -enum iwl_mac_protection_flags { - MAC_PROT_FLG_TGG_PROTECT = 8, - MAC_PROT_FLG_HT_PROT = 8388608, - MAC_PROT_FLG_FAT_PROT = 16777216, - MAC_PROT_FLG_SELF_CTS_EN = 1073741824, -}; - -struct iwl_mvm_tx_resp { - u8 frame_count; - u8 bt_kill_count; - u8 failure_rts; - u8 failure_frame; - __le32 initial_rate; - __le16 wireless_media_time; - u8 pa_status; - u8 pa_integ_res_a[3]; - u8 pa_integ_res_b[3]; - u8 pa_integ_res_c[3]; - __le16 measurement_req_id; - u8 reduced_tpc; - u8 reserved; - __le32 tfd_info; - __le16 seq_ctl; - __le16 byte_cnt; - u8 tlc_info; - u8 ra_tid; - __le16 frame_ctrl; - __le16 tx_queue; - __le16 reserved2; - struct agg_tx_status status; -}; - -struct iwl_mvm_tx_resp_v3 { - u8 frame_count; - u8 bt_kill_count; - u8 failure_rts; - u8 failure_frame; - __le32 initial_rate; - __le16 wireless_media_time; - u8 pa_status; - u8 pa_integ_res_a[3]; - u8 pa_integ_res_b[3]; - u8 pa_integ_res_c[3]; - __le16 measurement_req_id; - u8 reduced_tpc; - u8 reserved; - __le32 tfd_info; - __le16 seq_ctl; - __le16 byte_cnt; - u8 tlc_info; - u8 ra_tid; - __le16 frame_ctrl; - struct agg_tx_status status[0]; -}; - -struct iwl_mac_beacon_cmd_v6 { - struct iwl_tx_cmd___2 tx; - __le32 template_id; - __le32 tim_idx; - __le32 tim_size; - struct ieee80211_hdr frame[0]; -}; - -struct iwl_mac_beacon_cmd_v7 { - struct iwl_tx_cmd___2 tx; - __le32 template_id; - __le32 tim_idx; - __le32 tim_size; - __le32 ecsa_offset; - __le32 csa_offset; - struct ieee80211_hdr frame[0]; -}; - -struct iwl_mac_beacon_cmd { - __le16 byte_cnt; - __le16 flags; - __le32 short_ssid; - __le32 reserved; - __le32 link_id; - __le32 tim_idx; - __le32 tim_size; - __le32 ecsa_offset; - __le32 csa_offset; - struct ieee80211_hdr frame[0]; -}; - -struct iwl_mac_data_ap { - __le32 beacon_time; - __le64 beacon_tsf; - __le32 bi; - __le32 reserved1; - __le32 dtim_interval; - __le32 reserved2; - __le32 mcast_qid; - __le32 beacon_template; -} __attribute__((packed)); - -struct iwl_mac_data_go { - struct iwl_mac_data_ap ap; - __le32 ctwin; - __le32 opp_ps_enabled; -}; - -struct iwl_mac_data_sta { - __le32 is_assoc; - __le32 dtim_time; - __le64 dtim_tsf; - __le32 bi; - __le32 reserved1; - __le32 dtim_interval; - __le32 data_policy; - __le32 listen_interval; - __le32 assoc_id; - __le32 assoc_beacon_arrive_time; -} __attribute__((packed)); - -struct iwl_mac_data_p2p_sta { - struct iwl_mac_data_sta sta; - __le32 ctwin; -}; - -struct iwl_mac_data_p2p_dev { - __le32 is_disc_extended; -}; - -struct iwl_mac_data_pibss { - __le32 stats_interval; -}; - -struct iwl_mac_data_ibss { - __le32 beacon_time; - __le64 beacon_tsf; - __le32 bi; - __le32 reserved; - __le32 beacon_template; -} __attribute__((packed)); - -struct iwl_mac_ctx_cmd { - __le32 id_and_color; - __le32 action; - __le32 mac_type; - __le32 tsf_id; - u8 node_addr[6]; - __le16 reserved_for_node_addr; - u8 bssid_addr[6]; - __le16 reserved_for_bssid_addr; - __le32 cck_rates; - __le32 ofdm_rates; - __le32 protection_flags; - __le32 cck_short_preamble; - __le32 short_slot; - __le32 filter_flags; - __le32 qos_flags; - struct iwl_ac_qos___2 ac[5]; - union { - struct iwl_mac_data_ap ap; - struct iwl_mac_data_go go; - struct iwl_mac_data_sta sta; - struct iwl_mac_data_p2p_sta p2p_sta; - struct iwl_mac_data_p2p_dev p2p_dev; - struct iwl_mac_data_pibss pibss; - struct iwl_mac_data_ibss ibss; - }; -}; - -struct iwl_mvm_go_iterator_data { - bool go_active; -}; - -struct iwl_mvm_mac_iface_iterator_data { - struct iwl_mvm *mvm; - struct ieee80211_vif *vif; - unsigned long available_mac_ids[1]; - unsigned long available_tsf_ids[1]; - enum iwl_tsf_id preferred_tsf; - bool found_vif; -}; - -struct iwl_extended_beacon_notif { - __le32 status; - __le64 tsf; - __le32 ibss_mgr_status; - __le32 gp2; -} __attribute__((packed)); - -struct iwl_extended_beacon_notif_v5 { - struct iwl_mvm_tx_resp beacon_notify_hdr; - __le64 tsf; - __le32 ibss_mgr_status; - __le32 gp2; -} __attribute__((packed)); - -struct iwl_missed_beacons_notif { - __le32 link_id; - __le32 consec_missed_beacons_since_last_rx; - __le32 consec_missed_beacons; - __le32 num_expected_beacons; - __le32 num_recvd_beacons; -}; - -struct iwl_fw_dbg_trigger_missed_bcon { - __le32 stop_consec_missed_bcon; - __le32 stop_consec_missed_bcon_since_rx; - __le32 reserved2[2]; - __le32 start_consec_missed_bcon; - __le32 start_consec_missed_bcon_since_rx; - __le32 reserved1[2]; -}; - -struct iwl_stored_beacon_notif_common { - __le32 system_time; - __le64 tsf; - __le32 beacon_timestamp; - __le16 band; - __le16 channel; - __le32 rates; - __le32 byte_count; -} __attribute__((packed)); - -struct iwl_stored_beacon_notif_v2 { - struct iwl_stored_beacon_notif_common common; - u8 data[600]; -}; - -struct iwl_stored_beacon_notif_v3 { - struct iwl_stored_beacon_notif_common common; - u8 sta_id; - u8 reserved[3]; - u8 data[600]; -}; - -struct iwl_channel_switch_start_notif_v1 { - __le32 id_and_color; -}; - -struct iwl_channel_switch_start_notif { - __le32 link_id; -}; - -struct iwl_channel_switch_error_notif { - __le32 link_id; - __le32 csa_err_mask; -}; - -struct iwl_missed_vap_notif { - __le32 mac_id; - u8 num_beacon_intervals_elapsed; - u8 profile_periodicity; - u8 reserved[2]; -}; - -struct iwl_mvm_mac_ap_iterator_data { - struct iwl_mvm *mvm; - struct ieee80211_vif *vif; - u32 beacon_device_ts; - u16 beacon_int; -}; - -struct usb_dev_cap_header { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; -}; - -struct usb_descriptor_header { - __u8 bLength; - __u8 bDescriptorType; -}; - -struct bulk_cb_wrap { - __le32 Signature; - __u32 Tag; - __le32 DataTransferLength; - __u8 Flags; - __u8 Lun; - __u8 Length; - __u8 CDB[16]; -}; - -struct bulk_cs_wrap { - __le32 Signature; - __u32 Tag; - __le32 Residue; - __u8 Status; -}; - -struct ppl_log; - -struct ppl_io_unit { - struct ppl_log *log; - struct page *header_page; - unsigned int entries_count; - unsigned int pp_size; - u64 seq; - struct list_head log_sibling; - struct list_head stripe_list; - atomic_t pending_stripes; - atomic_t pending_flushes; - bool submitted; - struct bio bio; - struct bio_vec biovec[32]; -}; - -struct ppl_conf; - -struct ppl_log { - struct ppl_conf *ppl_conf; - struct md_rdev *rdev; - struct mutex io_mutex; - struct ppl_io_unit *current_io; - spinlock_t io_list_lock; - struct list_head io_list; - sector_t next_io_sector; - unsigned int entry_space; - bool use_multippl; - bool wb_cache_on; - unsigned long disk_flush_bitmap; -}; - -struct ppl_conf { - struct mddev *mddev; - struct ppl_log *child_logs; - int count; - int block_size; - u32 signature; - atomic64_t seq; - struct kmem_cache *io_kc; - mempool_t io_pool; - struct bio_set bs; - struct bio_set flush_bs; - int recovered_entries; - int mismatch_count; - struct list_head no_mem_stripes; - spinlock_t no_mem_stripes_lock; - unsigned short write_hint; -}; - -struct ppl_header_entry { - __le64 data_sector; - __le32 pp_size; - __le32 data_size; - __le32 parity_disk; - __le32 checksum; -}; - -struct ppl_header { - __u8 reserved[512]; - __le32 signature; - __le32 padding; - __le64 generation; - __le32 entries_count; - __le32 checksum; - struct ppl_header_entry entries[148]; -}; - -enum nfulnl_attr_config { - NFULA_CFG_UNSPEC = 0, - NFULA_CFG_CMD = 1, - NFULA_CFG_MODE = 2, - NFULA_CFG_NLBUFSIZ = 3, - NFULA_CFG_TIMEOUT = 4, - NFULA_CFG_QTHRESH = 5, - NFULA_CFG_FLAGS = 6, - __NFULA_CFG_MAX = 7, -}; - -enum nfulnl_msg_config_cmds { - NFULNL_CFG_CMD_NONE = 0, - NFULNL_CFG_CMD_BIND = 1, - NFULNL_CFG_CMD_UNBIND = 2, - NFULNL_CFG_CMD_PF_BIND = 3, - NFULNL_CFG_CMD_PF_UNBIND = 4, -}; - -enum nfulnl_msg_types { - NFULNL_MSG_PACKET = 0, - NFULNL_MSG_CONFIG = 1, - NFULNL_MSG_MAX = 2, -}; - -enum nfulnl_attr_type { - NFULA_UNSPEC = 0, - NFULA_PACKET_HDR = 1, - NFULA_MARK = 2, - NFULA_TIMESTAMP = 3, - NFULA_IFINDEX_INDEV = 4, - NFULA_IFINDEX_OUTDEV = 5, - NFULA_IFINDEX_PHYSINDEV = 6, - NFULA_IFINDEX_PHYSOUTDEV = 7, - NFULA_HWADDR = 8, - NFULA_PAYLOAD = 9, - NFULA_PREFIX = 10, - NFULA_UID = 11, - NFULA_SEQ = 12, - NFULA_SEQ_GLOBAL = 13, - NFULA_GID = 14, - NFULA_HWTYPE = 15, - NFULA_HWHEADER = 16, - NFULA_HWLEN = 17, - NFULA_CT = 18, - NFULA_CT_INFO = 19, - NFULA_VLAN = 20, - NFULA_L2HDR = 21, - __NFULA_MAX = 22, -}; - -enum nfulnl_vlan_attr { - NFULA_VLAN_UNSPEC = 0, - NFULA_VLAN_PROTO = 1, - NFULA_VLAN_TCI = 2, - __NFULA_VLAN_MAX = 3, -}; - -struct nfulnl_instance { - struct hlist_node hlist; - spinlock_t lock; - refcount_t use; - unsigned int qlen; - struct sk_buff *skb; - struct timer_list timer; - struct net *net; - netns_tracker ns_tracker; - struct user_namespace *peer_user_ns; - u32 peer_portid; - unsigned int flushtimeout; - unsigned int nlbufsiz; - unsigned int qthreshold; - u_int32_t copy_range; - u_int32_t seq; - u_int16_t group_num; - u_int16_t flags; - u_int8_t copy_mode; - struct callback_head rcu; -}; - -struct nfnl_log_net { - spinlock_t instances_lock; - struct hlist_head instance_table[16]; - atomic_t global_seq; -}; - -struct nfulnl_msg_packet_hdr { - __be16 hw_protocol; - __u8 hook; - __u8 _pad; -}; - -struct nfulnl_msg_packet_hw { - __be16 hw_addrlen; - __u16 _pad; - __u8 hw_addr[8]; -}; - -struct nfulnl_msg_packet_timestamp { - __be64 sec; - __be64 usec; -}; - -struct nfulnl_msg_config_cmd { - __u8 command; -}; - -struct nfulnl_msg_config_mode { - __be32 copy_range; - __u8 copy_mode; - __u8 _pad; -} __attribute__((packed)); - -struct xt_log_info { - unsigned char level; - unsigned char logflags; - char prefix[30]; -}; - -enum { - BRIDGE_QUERIER_UNSPEC = 0, - BRIDGE_QUERIER_IP_ADDRESS = 1, - BRIDGE_QUERIER_IP_PORT = 2, - BRIDGE_QUERIER_IP_OTHER_TIMER = 3, - BRIDGE_QUERIER_PAD = 4, - BRIDGE_QUERIER_IPV6_ADDRESS = 5, - BRIDGE_QUERIER_IPV6_PORT = 6, - BRIDGE_QUERIER_IPV6_OTHER_TIMER = 7, - __BRIDGE_QUERIER_MAX = 8, -}; - -enum { - PIM_TYPE_HELLO = 0, - PIM_TYPE_REGISTER = 1, - PIM_TYPE_REGISTER_STOP = 2, - PIM_TYPE_JOIN_PRUNE = 3, - PIM_TYPE_BOOTSTRAP = 4, - PIM_TYPE_ASSERT = 5, - PIM_TYPE_GRAFT = 6, - PIM_TYPE_GRAFT_ACK = 7, - PIM_TYPE_CANDIDATE_RP_ADV = 8, -}; - -struct igmpv3_query { - __u8 type; - __u8 code; - __sum16 csum; - __be32 group; - __u8 qrv: 3; - __u8 suppress: 1; - __u8 resv: 4; - __u8 qqic; - __be16 nsrcs; - __be32 srcs[0]; -}; - -struct igmpv3_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - __be32 grec_mca; - __be32 grec_src[0]; -}; - -struct igmpv3_report { - __u8 type; - __u8 resv1; - __sum16 csum; - __be16 resv2; - __be16 ngrec; - struct igmpv3_grec grec[0]; -}; - -struct pimhdr { - __u8 type; - __u8 reserved; - __be16 csum; -}; - -struct br_ip_list { - struct list_head list; - struct br_ip addr; -}; - -enum pci_p2pdma_map_type { - PCI_P2PDMA_MAP_UNKNOWN = 0, - PCI_P2PDMA_MAP_NOT_SUPPORTED = 1, - PCI_P2PDMA_MAP_BUS_ADDR = 2, - PCI_P2PDMA_MAP_THRU_HOST_BRIDGE = 3, -}; - -struct pci_p2pdma_map_state { - struct dev_pagemap *pgmap; - int map; - u64 bus_off; -}; - -struct stacktrace_cookie { - unsigned long *store; - unsigned int size; - unsigned int skip; - unsigned int len; -}; - -struct kexec_load_limit { - struct mutex mutex; - int limit; -}; - -enum pgt_entry { - NORMAL_PMD = 0, - HPAGE_PMD = 1, - NORMAL_PUD = 2, - HPAGE_PUD = 3, -}; - -struct kernfs_global_locks { - struct mutex open_file_mutex[1024]; -}; - -enum btrfs_flush_state { - FLUSH_DELAYED_ITEMS_NR = 1, - FLUSH_DELAYED_ITEMS = 2, - FLUSH_DELAYED_REFS_NR = 3, - FLUSH_DELAYED_REFS = 4, - FLUSH_DELALLOC = 5, - FLUSH_DELALLOC_WAIT = 6, - FLUSH_DELALLOC_FULL = 7, - ALLOC_CHUNK = 8, - ALLOC_CHUNK_FORCE = 9, - RUN_DELAYED_IPUTS = 10, - COMMIT_TRANS = 11, -}; - -struct reserve_ticket { - u64 bytes; - int error; - bool steal; - struct list_head list; - wait_queue_head_t wait; -}; - -enum { - REQ_FSEQ_PREFLUSH = 1, - REQ_FSEQ_DATA = 2, - REQ_FSEQ_POSTFLUSH = 4, - REQ_FSEQ_DONE = 8, - REQ_FSEQ_ACTIONS = 7, - FLUSH_PENDING_TIMEOUT = 5000, -}; - -enum { - IO_SQ_THREAD_SHOULD_STOP = 0, - IO_SQ_THREAD_SHOULD_PARK = 1, -}; - -typedef u32 (*acpi_osd_handler)(void *); - -struct old_serial_port { - unsigned int uart; - unsigned int baud_base; - unsigned int port; - unsigned int irq; - upf_t flags; - unsigned char io_type; - unsigned char *iomem_base; - unsigned short iomem_reg_shift; -}; - -enum { - PLAT8250_DEV_LEGACY = -1, - PLAT8250_DEV_PLATFORM = 0, - PLAT8250_DEV_PLATFORM1 = 1, - PLAT8250_DEV_PLATFORM2 = 2, - PLAT8250_DEV_FOURPORT = 3, - PLAT8250_DEV_ACCENT = 4, - PLAT8250_DEV_BOCA = 5, - PLAT8250_DEV_EXAR_ST16C554 = 6, - PLAT8250_DEV_HUB6 = 7, - PLAT8250_DEV_AU1X00 = 8, - PLAT8250_DEV_SM501 = 9, -}; - -struct irq_info___2 { - struct hlist_node node; - int irq; - spinlock_t lock; - struct list_head *head; -}; - -struct plat_serial8250_port { - unsigned long iobase; - void *membase; - resource_size_t mapbase; - resource_size_t mapsize; - unsigned int uartclk; - unsigned int irq; - unsigned long irqflags; - void *private_data; - unsigned char regshift; - unsigned char iotype; - unsigned char hub6; - unsigned char has_sysrq; - unsigned int type; - upf_t flags; - u16 bugs; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); -}; - -enum iwl_rx_phy_info_type { - IWL_RX_PHY_INFO_TYPE_NONE = 0, - IWL_RX_PHY_INFO_TYPE_CCK = 1, - IWL_RX_PHY_INFO_TYPE_OFDM_LGCY = 2, - IWL_RX_PHY_INFO_TYPE_HT = 3, - IWL_RX_PHY_INFO_TYPE_VHT_SU = 4, - IWL_RX_PHY_INFO_TYPE_VHT_MU = 5, - IWL_RX_PHY_INFO_TYPE_HE_SU = 6, - IWL_RX_PHY_INFO_TYPE_HE_MU = 7, - IWL_RX_PHY_INFO_TYPE_HE_TB = 8, - IWL_RX_PHY_INFO_TYPE_HE_MU_EXT = 9, - IWL_RX_PHY_INFO_TYPE_HE_TB_EXT = 10, - IWL_RX_PHY_INFO_TYPE_EHT_MU = 11, - IWL_RX_PHY_INFO_TYPE_EHT_TB = 12, - IWL_RX_PHY_INFO_TYPE_EHT_MU_EXT = 13, - IWL_RX_PHY_INFO_TYPE_EHT_TB_EXT = 14, -}; - -enum iwl_rx_mpdu_mac_flags2 { - IWL_RX_MPDU_MFLG2_HDR_LEN_MASK = 31, - IWL_RX_MPDU_MFLG2_PAD = 32, - IWL_RX_MPDU_MFLG2_AMSDU = 64, -}; - -enum iwl_rx_mpdu_status { - IWL_RX_MPDU_STATUS_CRC_OK = 1, - IWL_RX_MPDU_STATUS_OVERRUN_OK = 2, - IWL_RX_MPDU_STATUS_SRC_STA_FOUND = 4, - IWL_RX_MPDU_STATUS_KEY_VALID = 8, - IWL_RX_MPDU_STATUS_ICV_OK = 32, - IWL_RX_MPDU_STATUS_MIC_OK = 64, - IWL_RX_MPDU_RES_STATUS_TTAK_OK = 128, - IWL_RX_MPDU_STATUS_REPLAY_ERROR = 128, - IWL_RX_MPDU_STATUS_SEC_MASK = 1792, - IWL_RX_MPDU_STATUS_SEC_UNKNOWN = 1792, - IWL_RX_MPDU_STATUS_SEC_NONE = 0, - IWL_RX_MPDU_STATUS_SEC_WEP = 256, - IWL_RX_MPDU_STATUS_SEC_CCM = 512, - IWL_RX_MPDU_STATUS_SEC_TKIP = 768, - IWL_RX_MPDU_STATUS_SEC_EXT_ENC = 1024, - IWL_RX_MPDU_STATUS_SEC_GCM = 1280, - IWL_RX_MPDU_STATUS_DECRYPTED = 2048, - IWL_RX_MPDU_STATUS_ROBUST_MNG_FRAME = 32768, - IWL_RX_MPDU_STATUS_DUPLICATE = 4194304, - IWL_RX_MPDU_STATUS_STA_ID = 520093696, -}; - -enum iwl_rx_mpdu_phy_info { - IWL_RX_MPDU_PHY_AMPDU = 32, - IWL_RX_MPDU_PHY_AMPDU_TOGGLE = 64, - IWL_RX_MPDU_PHY_SHORT_PREAMBLE = 128, - IWL_RX_MPDU_PHY_NCCK_ADDTL_NTFY = 128, - IWL_RX_MPDU_PHY_TSF_OVERLOAD = 256, -}; - -enum iwl_rx_mpdu_reorder_data { - IWL_RX_MPDU_REORDER_NSSN_MASK = 4095, - IWL_RX_MPDU_REORDER_SN_MASK = 16773120, - IWL_RX_MPDU_REORDER_SN_SHIFT = 12, - IWL_RX_MPDU_REORDER_BAID_MASK = 2130706432, - IWL_RX_MPDU_REORDER_BAID_SHIFT = 24, - IWL_RX_MPDU_REORDER_BA_OLD_SN = 2147483648, -}; - -enum iwl_rx_mpdu_amsdu_info { - IWL_RX_MPDU_AMSDU_SUBFRAME_IDX_MASK = 127, - IWL_RX_MPDU_AMSDU_LAST_SUBFRAME = 128, -}; - -enum ieee80211_radiotap_zero_len_psdu_type { - IEEE80211_RADIOTAP_ZERO_LEN_PSDU_SOUNDING = 0, - IEEE80211_RADIOTAP_ZERO_LEN_PSDU_NOT_CAPTURED = 1, - IEEE80211_RADIOTAP_ZERO_LEN_PSDU_VENDOR = 255, -}; - -enum iwl_bar_frame_release_ba_info { - IWL_BAR_FRAME_RELEASE_NSSN_MASK = 4095, - IWL_BAR_FRAME_RELEASE_SN_MASK = 16773120, - IWL_BAR_FRAME_RELEASE_BAID_MASK = 1056964608, -}; - -enum iwl_bar_frame_release_sta_tid { - IWL_BAR_FRAME_RELEASE_TID_MASK = 15, - IWL_BAR_FRAME_RELEASE_STA_MASK = 496, -}; - -enum iwl_mvm_rx_status { - RX_MPDU_RES_STATUS_CRC_OK = 1, - RX_MPDU_RES_STATUS_OVERRUN_OK = 2, - RX_MPDU_RES_STATUS_SRC_STA_FOUND = 4, - RX_MPDU_RES_STATUS_KEY_VALID = 8, - RX_MPDU_RES_STATUS_ICV_OK = 32, - RX_MPDU_RES_STATUS_MIC_OK = 64, - RX_MPDU_RES_STATUS_TTAK_OK = 128, - RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR = 128, - RX_MPDU_RES_STATUS_SEC_NO_ENC = 0, - RX_MPDU_RES_STATUS_SEC_WEP_ENC = 256, - RX_MPDU_RES_STATUS_SEC_CCM_ENC = 512, - RX_MPDU_RES_STATUS_SEC_TKIP_ENC = 768, - RX_MPDU_RES_STATUS_SEC_EXT_ENC = 1024, - RX_MPDU_RES_STATUS_SEC_CMAC_GMAC_ENC = 1536, - RX_MPDU_RES_STATUS_SEC_ENC_ERR = 1792, - RX_MPDU_RES_STATUS_SEC_ENC_MSK = 1792, - RX_MPDU_RES_STATUS_DEC_DONE = 2048, - RX_MPDU_RES_STATUS_CSUM_DONE = 65536, - RX_MPDU_RES_STATUS_CSUM_OK = 131072, - RX_MDPU_RES_STATUS_STA_ID_SHIFT = 24, - RX_MPDU_RES_STATUS_STA_ID_MSK = 520093696, -}; - -enum iwl_rx_phy_common_data1 { - IWL_RX_PHY_DATA1_INFO_TYPE_MASK = 4026531840, - IWL_RX_PHY_DATA1_LSIG_LEN_MASK = 268369920, -}; - -enum iwl_rx_phy_he_data0 { - IWL_RX_PHY_DATA0_HE_BEAM_CHNG = 1, - IWL_RX_PHY_DATA0_HE_UPLINK = 2, - IWL_RX_PHY_DATA0_HE_BSS_COLOR_MASK = 252, - IWL_RX_PHY_DATA0_HE_SPATIAL_REUSE_MASK = 3840, - IWL_RX_PHY_DATA0_HE_TXOP_DUR_MASK = 1040384, - IWL_RX_PHY_DATA0_HE_LDPC_EXT_SYM = 1048576, - IWL_RX_PHY_DATA0_HE_PRE_FEC_PAD_MASK = 6291456, - IWL_RX_PHY_DATA0_HE_PE_DISAMBIG = 8388608, - IWL_RX_PHY_DATA0_HE_DOPPLER = 16777216, - IWL_RX_PHY_DATA0_HE_DELIM_EOF = 2147483648, -}; - -enum iwl_rx_phy_eht_data0 { - IWL_RX_PHY_DATA0_EHT_VALIDATE = 1, - IWL_RX_PHY_DATA0_EHT_UPLINK = 2, - IWL_RX_PHY_DATA0_EHT_BSS_COLOR_MASK = 252, - IWL_RX_PHY_DATA0_ETH_SPATIAL_REUSE_MASK = 3840, - IWL_RX_PHY_DATA0_EHT_PS160 = 4096, - IWL_RX_PHY_DATA0_EHT_TXOP_DUR_MASK = 1040384, - IWL_RX_PHY_DATA0_EHT_LDPC_EXT_SYM = 1048576, - IWL_RX_PHY_DATA0_EHT_PRE_FEC_PAD_MASK = 6291456, - IWL_RX_PHY_DATA0_EHT_PE_DISAMBIG = 8388608, - IWL_RX_PHY_DATA0_EHT_BW320_SLOT = 16777216, - IWL_RX_PHY_DATA0_EHT_SIGA_CRC_OK = 33554432, - IWL_RX_PHY_DATA0_EHT_PHY_VER = 469762048, - IWL_RX_PHY_DATA0_EHT_DELIM_EOF = 2147483648, -}; - -enum iwl_rx_phy_he_data2 { - IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU0 = 255, - IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU2 = 65280, - IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU0 = 16711680, - IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU2 = 4278190080, - IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE1 = 15, - IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE2 = 240, - IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE3 = 3840, - IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE4 = 61440, -}; - -enum iwl_rx_phy_he_data1 { - IWL_RX_PHY_DATA1_HE_MU_SIGB_COMPRESSION = 1, - IWL_RX_PHY_DATA1_HE_MU_SIBG_SYM_OR_USER_NUM_MASK = 30, - IWL_RX_PHY_DATA1_HE_LTF_NUM_MASK = 224, - IWL_RX_PHY_DATA1_HE_RU_ALLOC_SEC80 = 256, - IWL_RX_PHY_DATA1_HE_RU_ALLOC_MASK = 65024, - IWL_RX_PHY_DATA1_HE_TB_PILOT_TYPE = 1, - IWL_RX_PHY_DATA1_HE_TB_LOW_SS_MASK = 14, -}; - -enum iwl_rx_phy_he_he_data4 { - IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CTR_RU = 1, - IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CTR_RU = 2, - IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CRC_OK = 4, - IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CRC_OK = 8, - IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_MCS_MASK = 240, - IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_DCM = 256, - IWL_RX_PHY_DATA4_HE_MU_EXT_PREAMBLE_PUNC_TYPE_MASK = 1536, -}; - -enum ieee80211_radiotap_he_mu_bits { - IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS = 15, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS_KNOWN = 16, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM = 32, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM_KNOWN = 64, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_CTR_26T_RU_KNOWN = 128, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_RU_KNOWN = 256, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_RU_KNOWN = 512, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU_KNOWN = 4096, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU = 8192, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_COMP_KNOWN = 16384, - IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_SYMS_USERS_KNOWN = 32768, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW = 3, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_20MHZ = 0, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_40MHZ = 1, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_80MHZ = 2, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_160MHZ = 3, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_KNOWN = 4, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_COMP = 8, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_SYMS_USERS = 240, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW = 768, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW_KNOWN = 1024, - IEEE80211_RADIOTAP_HE_MU_FLAGS2_CH2_CTR_26T_RU = 2048, -}; - -enum iwl_rx_phy_he_data3 { - IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU1 = 255, - IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU3 = 65280, - IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU1 = 16711680, - IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU3 = 4278190080, -}; - -enum ieee80211_radiotap_lsig_data1 { - IEEE80211_RADIOTAP_LSIG_DATA1_RATE_KNOWN = 1, - IEEE80211_RADIOTAP_LSIG_DATA1_LENGTH_KNOWN = 2, -}; - -enum ieee80211_radiotap_lsig_data2 { - IEEE80211_RADIOTAP_LSIG_DATA2_RATE = 15, - IEEE80211_RADIOTAP_LSIG_DATA2_LENGTH = 65520, -}; - -enum ieee80211_radiotap_eht_usig_common { - IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN = 1, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN = 2, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN = 4, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN = 8, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN = 16, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC = 32, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED = 64, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK = 128, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER = 28672, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW = 229376, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_20MHZ = 0, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_40MHZ = 1, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_80MHZ = 2, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_160MHZ = 3, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_1 = 4, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_2 = 5, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL = 262144, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR = 33030144, - IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP = 4261412864, -}; - -enum ieee80211_radiotap_eht_known { - IEEE80211_RADIOTAP_EHT_KNOWN_SPATIAL_REUSE = 2, - IEEE80211_RADIOTAP_EHT_KNOWN_GI = 4, - IEEE80211_RADIOTAP_EHT_KNOWN_EHT_LTF = 16, - IEEE80211_RADIOTAP_EHT_KNOWN_LDPC_EXTRA_SYM_OM = 32, - IEEE80211_RADIOTAP_EHT_KNOWN_PRE_PADD_FACOR_OM = 64, - IEEE80211_RADIOTAP_EHT_KNOWN_PE_DISAMBIGUITY_OM = 128, - IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_O = 256, - IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_S = 512, - IEEE80211_RADIOTAP_EHT_KNOWN_CRC1 = 8192, - IEEE80211_RADIOTAP_EHT_KNOWN_TAIL1 = 16384, - IEEE80211_RADIOTAP_EHT_KNOWN_CRC2_O = 32768, - IEEE80211_RADIOTAP_EHT_KNOWN_TAIL2_O = 65536, - IEEE80211_RADIOTAP_EHT_KNOWN_NSS_S = 131072, - IEEE80211_RADIOTAP_EHT_KNOWN_BEAMFORMED_S = 262144, - IEEE80211_RADIOTAP_EHT_KNOWN_NR_NON_OFDMA_USERS_M = 524288, - IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_CRC_M = 1048576, - IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_TAIL_M = 2097152, - IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_SIZE_OM = 4194304, - IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_INDEX_OM = 8388608, - IEEE80211_RADIOTAP_EHT_KNOWN_RU_ALLOC_TB_FMT = 16777216, - IEEE80211_RADIOTAP_EHT_KNOWN_PRIMARY_80 = 33554432, -}; - -enum ieee80211_radiotap_eht_data { - IEEE80211_RADIOTAP_EHT_DATA0_SPATIAL_REUSE = 120, - IEEE80211_RADIOTAP_EHT_DATA0_GI = 384, - IEEE80211_RADIOTAP_EHT_DATA0_LTF = 1536, - IEEE80211_RADIOTAP_EHT_DATA0_EHT_LTF = 14336, - IEEE80211_RADIOTAP_EHT_DATA0_LDPC_EXTRA_SYM_OM = 16384, - IEEE80211_RADIOTAP_EHT_DATA0_PRE_PADD_FACOR_OM = 98304, - IEEE80211_RADIOTAP_EHT_DATA0_PE_DISAMBIGUITY_OM = 131072, - IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_S = 786432, - IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_O = 3932160, - IEEE80211_RADIOTAP_EHT_DATA0_CRC1_O = 62914560, - IEEE80211_RADIOTAP_EHT_DATA0_TAIL1_O = 4227858432, - IEEE80211_RADIOTAP_EHT_DATA1_RU_SIZE = 31, - IEEE80211_RADIOTAP_EHT_DATA1_RU_INDEX = 8160, - IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1 = 4186112, - IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1_KNOWN = 4194304, - IEEE80211_RADIOTAP_EHT_DATA1_PRIMARY_80 = 3221225472, - IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1 = 511, - IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1_KNOWN = 512, - IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2 = 523264, - IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2_KNOWN = 524288, - IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2 = 535822336, - IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2_KNOWN = 536870912, - IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1 = 511, - IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1_KNOWN = 512, - IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1 = 523264, - IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1_KNOWN = 524288, - IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2 = 535822336, - IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2_KNOWN = 536870912, - IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2 = 511, - IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2_KNOWN = 512, - IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3 = 523264, - IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3_KNOWN = 524288, - IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3 = 535822336, - IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3_KNOWN = 536870912, - IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4 = 511, - IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4_KNOWN = 512, - IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4 = 523264, - IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4_KNOWN = 524288, - IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5 = 535822336, - IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5_KNOWN = 536870912, - IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5 = 511, - IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5_KNOWN = 512, - IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6 = 523264, - IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6_KNOWN = 524288, - IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6 = 535822336, - IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6_KNOWN = 536870912, - IEEE80211_RADIOTAP_EHT_DATA7_CRC2_O = 15, - IEEE80211_RADIOTAP_EHT_DATA7_TAIL_2_O = 1008, - IEEE80211_RADIOTAP_EHT_DATA7_NSS_S = 61440, - IEEE80211_RADIOTAP_EHT_DATA7_BEAMFORMED_S = 65536, - IEEE80211_RADIOTAP_EHT_DATA7_NUM_OF_NON_OFDMA_USERS = 917504, - IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_CRC = 15728640, - IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_TAIL = 1056964608, - IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_PS_160 = 1, - IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B0 = 2, - IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B7_B1 = 508, -}; - -enum ieee80211_radiotap_eht_user_info { - IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID_KNOWN = 1, - IEEE80211_RADIOTAP_EHT_USER_INFO_MCS_KNOWN = 2, - IEEE80211_RADIOTAP_EHT_USER_INFO_CODING_KNOWN = 4, - IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_KNOWN_O = 16, - IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_KNOWN_O = 32, - IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_KNOWN_M = 64, - IEEE80211_RADIOTAP_EHT_USER_INFO_DATA_FOR_USER = 128, - IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID = 524032, - IEEE80211_RADIOTAP_EHT_USER_INFO_CODING = 524288, - IEEE80211_RADIOTAP_EHT_USER_INFO_MCS = 15728640, - IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_O = 251658240, - IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_O = 536870912, - IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_M = 1056964608, - IEEE80211_RADIOTAP_EHT_USER_INFO_RESEVED_c0000000 = 3221225472, -}; - -enum iwl_rx_usig_a1 { - IWL_RX_USIG_A1_ENHANCED_WIFI_VER_ID = 7, - IWL_RX_USIG_A1_BANDWIDTH = 56, - IWL_RX_USIG_A1_UL_FLAG = 64, - IWL_RX_USIG_A1_BSS_COLOR = 8064, - IWL_RX_USIG_A1_TXOP_DURATION = 1040384, - IWL_RX_USIG_A1_DISREGARD = 32505856, - IWL_RX_USIG_A1_VALIDATE = 33554432, - IWL_RX_USIG_A1_EHT_BW320_SLOT = 67108864, - IWL_RX_USIG_A1_EHT_TYPE = 402653184, - IWL_RX_USIG_A1_RDY = 2147483648, -}; - -enum iwl_rx_phy_eht_data1 { - IWL_RX_PHY_DATA1_EHT_MU_NUM_SIG_SYM_USIGA2 = 31, - IWL_RX_PHY_DATA1_EHT_TB_PILOT_TYPE = 1, - IWL_RX_PHY_DATA1_EHT_TB_LOW_SS = 30, - IWL_RX_PHY_DATA1_EHT_SIG_LTF_NUM = 224, - IWL_RX_PHY_DATA1_EHT_RU_ALLOC_B0 = 256, - IWL_RX_PHY_DATA1_EHT_RU_ALLOC_B1_B7 = 65024, -}; - -enum ieee80211_radiotap_eht_usig_tb { - IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD = 31, - IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE = 192, - IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE = 256, - IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1 = 7680, - IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2 = 122880, - IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD = 4063232, - IEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC = 62914560, - IEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL = 4227858432, -}; - -enum iwl_rx_phy_data5 { - IWL_RX_PHY_DATA5_EHT_TYPE_AND_COMP = 3, - IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE1 = 60, - IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE2 = 960, - IWL_RX_PHY_DATA5_EHT_MU_PUNC_CH_CODE = 124, - IWL_RX_PHY_DATA5_EHT_MU_STA_ID_USR = 262016, - IWL_RX_PHY_DATA5_EHT_MU_NUM_USR_NON_OFDMA = 1835008, - IWL_RX_PHY_DATA5_EHT_MU_SPATIAL_CONF_USR_FIELD = 266338304, -}; - -enum iwl_rx_usig_a2_eht { - IWL_RX_USIG_A2_EHT_PPDU_TYPE = 3, - IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B2 = 4, - IWL_RX_USIG_A2_EHT_PUNC_CHANNEL = 248, - IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B8 = 256, - IWL_RX_USIG_A2_EHT_SIG_MCS = 1536, - IWL_RX_USIG_A2_EHT_SIG_SYM_NUM = 63488, - IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_1 = 983040, - IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_2 = 15728640, - IWL_RX_USIG_A2_EHT_TRIG_USIG2_DISREGARD = 520093696, - IWL_RX_USIG_A2_EHT_CRC_OK = 1073741824, - IWL_RX_USIG_A2_EHT_RDY = 2147483648, -}; - -enum ieee80211_radiotap_eht_usig_mu { - IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD = 31, - IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE = 32, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE = 192, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE = 256, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO = 15872, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE = 16384, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS = 98304, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS = 4063232, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC = 62914560, - IEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL = 4227858432, -}; - -enum iwl_rx_phy_eht_data4 { - IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D1 = 511, - IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D2 = 261632, - IWL_RX_PHY_DATA4_EHT_MU_EXT_SIGB_MCS = 786432, - IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_B2 = 535822336, -}; - -enum iwl_rx_phy_eht_data2 { - IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A1 = 511, - IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A2 = 261632, - IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_B1 = 133955584, - IWL_RX_PHY_DATA2_EHT_TB_EXT_TRIG_SIGA1 = 4294967295, -}; - -enum iwl_rx_phy_eht_data3 { - IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C1 = 261632, - IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C2 = 133955584, -}; - -enum iwl_rx_l3l4_flags { - IWL_RX_L3L4_IP_HDR_CSUM_OK = 1, - IWL_RX_L3L4_TCP_UDP_CSUM_OK = 2, - IWL_RX_L3L4_TCP_FIN_SYN_RST_PSH = 4, - IWL_RX_L3L4_TCP_ACK = 8, - IWL_RX_L3L4_L3_PROTO_MASK = 240, - IWL_RX_L3L4_L4_PROTO_MASK = 3840, - IWL_RX_L3L4_RSS_HASH_MASK = 61440, -}; - -enum iwl_rx_l3_proto_values { - IWL_RX_L3_TYPE_NONE = 0, - IWL_RX_L3_TYPE_IPV4 = 1, - IWL_RX_L3_TYPE_IPV4_FRAG = 2, - IWL_RX_L3_TYPE_IPV6_FRAG = 3, - IWL_RX_L3_TYPE_IPV6 = 4, - IWL_RX_L3_TYPE_IPV6_IN_IPV4 = 5, - IWL_RX_L3_TYPE_ARP = 6, - IWL_RX_L3_TYPE_EAPOL = 7, -}; - -enum iwl_rx_mpdu_mac_flags1 { - IWL_RX_MDPU_MFLG1_ADDRTYPE_MASK = 3, - IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_MASK = 240, - IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_SHIFT = 3, -}; - -struct iwl_rx_mpdu_desc_v1 { - union { - __le32 rss_hash; - __le32 phy_data2; - }; - union { - __le32 filter_match; - __le32 phy_data3; - }; - __le32 rate_n_flags; - u8 energy_a; - u8 energy_b; - u8 channel; - u8 mac_context; - __le32 gp2_on_air_rise; - union { - __le64 tsf_on_air_rise; - struct { - __le32 phy_data0; - __le32 phy_data1; - }; - }; -} __attribute__((packed)); - -struct iwl_rx_mpdu_desc_v3 { - union { - __le32 filter_match; - __le32 phy_data3; - }; - union { - __le32 rss_hash; - __le32 phy_data2; - }; - __le32 partial_hash; - __be16 raw_xsum; - __le16 reserved_xsum; - __le32 rate_n_flags; - u8 energy_a; - u8 energy_b; - u8 channel; - u8 mac_context; - __le32 gp2_on_air_rise; - union { - __le64 tsf_on_air_rise; - struct { - __le32 phy_data0; - __le32 phy_data1; - }; - }; - __le32 phy_data5; - __le32 reserved[1]; -} __attribute__((packed)); - -struct iwl_rx_mpdu_desc { - __le16 mpdu_len; - u8 mac_flags1; - u8 mac_flags2; - u8 amsdu_info; - __le16 phy_info; - u8 mac_phy_idx; - union { - struct { - __le16 raw_csum; - union { - __le16 l3l4_flags; - __le16 phy_data4; - }; - }; - __le32 phy_eht_data4; - }; - __le32 status; - __le32 reorder_data; - union { - struct iwl_rx_mpdu_desc_v1 v1; - struct iwl_rx_mpdu_desc_v3 v3; - }; -} __attribute__((packed)); - -struct iwl_mvm_rx_phy_data { - enum iwl_rx_phy_info_type info_type; - __le32 d0; - __le32 d1; - __le32 d2; - __le32 d3; - __le32 eht_d4; - __le32 d5; - __le16 d4; - bool with_data; - bool first_subframe; - __le32 rx_vec[4]; - u32 rate_n_flags; - u32 gp2_on_air_rise; - u16 phy_info; - u8 energy_a; - u8 energy_b; - u8 channel; -}; - -struct ieee80211_radiotap_eht { - __le32 known; - __le32 data[9]; - __le32 user_info[0]; -}; - -struct ieee80211_radiotap_eht_usig { - __le32 common; - __le32 value; - __le32 mask; -}; - -struct ieee80211_radiotap_tlv { - __le16 type; - __le16 len; - u8 data[0]; -}; - -struct iwl_rxq_sync_notification { - __le32 count; - u8 payload[0]; -}; - -struct iwl_rx_sta_csa { - bool all_sta_unblocked; - struct ieee80211_vif *vif; -}; - -struct iwl_fw_dbg_trigger_low_rssi { - __le32 rssi; -}; - -struct iwl_rx_no_data_ver_3 { - __le32 info; - __le32 rssi; - __le32 on_air_rise_time; - __le32 fr_time; - __le32 rate; - __le32 phy_info[2]; - __le32 rx_vec[4]; -}; - -struct iwl_frame_release { - u8 baid; - u8 reserved; - __le16 nssn; -}; - -struct iwl_bar_frame_release { - __le32 sta_tid; - __le32 ba_info; -}; - -struct ieee80211_radiotap_vendor_content { - u8 oui[3]; - u8 oui_subtype; - __le16 vendor_type; - __le16 reserved; - u8 data[0]; -}; - -struct each_dev_arg { - void *data; - int (*fn)(struct usb_device *, void *); -}; - -struct find_interface_arg { - int minor; - struct device_driver *drv; -}; - -enum rc6_state { - STATE_INACTIVE___7 = 0, - STATE_PREFIX_SPACE = 1, - STATE_HEADER_BIT_START___2 = 2, - STATE_HEADER_BIT_END___2 = 3, - STATE_TOGGLE_START = 4, - STATE_TOGGLE_END = 5, - STATE_BODY_BIT_START___2 = 6, - STATE_BODY_BIT_END___2 = 7, - STATE_FINISHED___4 = 8, -}; - -enum rc6_mode { - RC6_MODE_0 = 0, - RC6_MODE_6A = 1, - RC6_MODE_UNKNOWN = 2, -}; - -struct hidraw_report { - __u8 *value; - int len; -}; - -struct hidraw_list { - struct hidraw_report buffer[64]; - int head; - int tail; - struct fasync_struct *fasync; - struct hidraw *hidraw; - struct list_head node; - struct mutex read_mutex; -}; - -struct hidraw_devinfo { - __u32 bustype; - __s16 vendor; - __s16 product; -}; - -struct datalink_proto { - unsigned char type[8]; - struct llc_sap *sap; - unsigned short header_length; - int (*rcvfunc)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *); - int (*request)(struct datalink_proto *, struct sk_buff *, const unsigned char *); - struct list_head node; -}; - -struct bpf_nf_link { - struct bpf_link link; - struct nf_hook_ops hook_ops; - struct net *net; - u32 dead; - const struct nf_defrag_hook *defrag_hook; -}; - -struct jump_label_patch { - const void *code; - int size; -}; - -typedef __s64 Elf64_Sxword; - -struct elf64_rela { - Elf64_Addr r_offset; - Elf64_Xword r_info; - Elf64_Sxword r_addend; -}; - -typedef struct elf64_rela Elf64_Rela; - -struct timer_list_iter { - int cpu; - bool second_pass; - u64 now; -}; - -typedef void (*btf_trace_irq_disable)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_irq_enable)(void *, unsigned long, unsigned long); - -struct trace_event_raw_preemptirq_template { - struct trace_entry ent; - s32 caller_offs; - s32 parent_offs; - char __data[0]; -}; - -struct trace_event_data_offsets_preemptirq_template {}; - -struct lpm_trie_node; - -struct lpm_trie { - struct bpf_map map; - struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *root; - size_t n_entries; - size_t max_prefixlen; - size_t data_size; - spinlock_t lock; -}; - -struct lpm_trie_node { - struct callback_head rcu; - struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *child[2]; - u32 prefixlen; - u32 flags; - u8 data[0]; -}; - -struct bpf_lpm_trie_key_hdr { - __u32 prefixlen; -}; - -struct bpf_lpm_trie_key_u8 { - union { - struct bpf_lpm_trie_key_hdr hdr; - __u32 prefixlen; - }; - __u8 data[0]; -}; - -struct vm_event_state { - unsigned long event[98]; -}; - -struct contig_page_info { - unsigned long free_pages; - unsigned long free_blocks_total; - unsigned long free_blocks_suitable; -}; - -struct zswap_tree { - struct rb_root rbroot; - spinlock_t lock; -}; - -enum zswap_init_type { - ZSWAP_UNINIT = 0, - ZSWAP_INIT_SUCCEED = 1, - ZSWAP_INIT_FAILED = 2, -}; - -struct crypto_acomp_ctx; - -struct zswap_pool { - struct zpool *zpools[32]; - struct crypto_acomp_ctx __attribute__((btf_type_tag("percpu"))) *acomp_ctx; - struct percpu_ref ref; - struct list_head list; - struct work_struct release_work; - struct hlist_node node; - char tfm_name[128]; -}; - -struct crypto_acomp_ctx { - struct crypto_acomp *acomp; - struct acomp_req *req; - struct crypto_wait wait; - u8 *buffer; - struct mutex mutex; - bool is_sleepable; -}; - -struct zswap_entry { - struct rb_node rbnode; - swp_entry_t swpentry; - unsigned int length; - struct zswap_pool *pool; - union { - unsigned long handle; - unsigned long value; - }; - struct obj_cgroup *objcg; - struct list_head lru; -}; - -struct proc_fs_opts { - int flag; - const char *str; -}; - -enum fuse_ext_type { - FUSE_MAX_NR_SECCTX = 31, - FUSE_EXT_GROUPS = 32, -}; - -struct fuse_supp_groups { - uint32_t nr_groups; - uint32_t groups[0]; -}; - -struct fuse_statx_in { - uint32_t getattr_flags; - uint32_t reserved; - uint64_t fh; - uint32_t sx_flags; - uint32_t sx_mask; -}; - -struct fuse_statx_out { - uint64_t attr_valid; - uint32_t attr_valid_nsec; - uint32_t flags; - uint64_t spare[2]; - struct fuse_statx stat; -}; - -struct fuse_setattr_in { - uint32_t valid; - uint32_t padding; - uint64_t fh; - uint64_t size; - uint64_t lock_owner; - uint64_t atime; - uint64_t mtime; - uint64_t ctime; - uint32_t atimensec; - uint32_t mtimensec; - uint32_t ctimensec; - uint32_t mode; - uint32_t unused4; - uint32_t uid; - uint32_t gid; - uint32_t unused5; -}; - -struct fuse_attr_out { - uint64_t attr_valid; - uint32_t attr_valid_nsec; - uint32_t dummy; - struct fuse_attr attr; -}; - -struct fuse_access_in { - uint32_t mask; - uint32_t padding; -}; - -struct fuse_mknod_in { - uint32_t mode; - uint32_t rdev; - uint32_t umask; - uint32_t padding; -}; - -struct fuse_secctx_header { - uint32_t size; - uint32_t nr_secctx; -}; - -struct fuse_secctx { - uint32_t size; - uint32_t padding; -}; - -struct fuse_ext_header { - uint32_t size; - uint32_t type; -}; - -struct fuse_getattr_in { - uint32_t getattr_flags; - uint32_t dummy; - uint64_t fh; -}; - -struct fuse_link_in { - uint64_t oldnodeid; -}; - -struct fuse_mkdir_in { - uint32_t mode; - uint32_t umask; -}; - -struct fuse_rename2_in { - uint64_t newdir; - uint32_t flags; - uint32_t padding; -}; - -struct fuse_create_in { - uint32_t flags; - uint32_t mode; - uint32_t umask; - uint32_t open_flags; -}; - -struct mq_attr { - __kernel_long_t mq_flags; - __kernel_long_t mq_maxmsg; - __kernel_long_t mq_msgsize; - __kernel_long_t mq_curmsgs; - __kernel_long_t __reserved[4]; -}; - -struct ext_wait_queue { - struct task_struct *task; - struct list_head list; - struct msg_msg *msg; - int state; -}; - -struct posix_msg_tree_node; - -struct mqueue_inode_info { - spinlock_t lock; - struct inode vfs_inode; - wait_queue_head_t wait_q; - struct rb_root msg_tree; - struct rb_node *msg_tree_rightmost; - struct posix_msg_tree_node *node_cache; - struct mq_attr attr; - struct sigevent notify; - struct pid *notify_owner; - u32 notify_self_exec_id; - struct user_namespace *notify_user_ns; - struct ucounts *ucounts; - struct sock *notify_sock; - struct sk_buff *notify_cookie; - struct ext_wait_queue e_wait_q[2]; - unsigned long qsize; -}; - -struct posix_msg_tree_node { - struct rb_node rb_node; - struct list_head msg_list; - int priority; -}; - -typedef int __kernel_mqd_t; - -typedef __kernel_mqd_t mqd_t; - -struct mqueue_fs_context { - struct ipc_namespace *ipc_ns; - bool newns; -}; - -struct show_busy_params { - struct seq_file *m; - struct blk_mq_hw_ctx *hctx; -}; - -struct pcim_iomap_devres { - void *table[6]; -}; - -struct uni_pagedict { - u16 **uni_pgdir[32]; - unsigned long refcount; - unsigned long sum; - unsigned char *inverse_translations[4]; - u16 *inverse_trans_unicode; -}; - -struct mdiobus_devres { - struct mii_bus *mii; -}; - -enum iwl_proto_offloads { - IWL_D3_PROTO_OFFLOAD_ARP = 1, - IWL_D3_PROTO_OFFLOAD_NS = 2, - IWL_D3_PROTO_IPV4_VALID = 4, - IWL_D3_PROTO_IPV6_VALID = 8, - IWL_D3_PROTO_OFFLOAD_BTM = 16, -}; - -struct iwl_proto_offload_cmd_common { - __le32 enabled; - __be32 remote_ipv4_addr; - __be32 host_ipv4_addr; - u8 arp_mac_addr[6]; - __le16 reserved; -}; - -struct iwl_proto_offload_cmd_v1 { - struct iwl_proto_offload_cmd_common common; - u8 remote_ipv6_addr[16]; - u8 solicited_node_ipv6_addr[16]; - u8 target_ipv6_addr[32]; - u8 ndp_mac_addr[6]; - __le16 reserved2; -}; - -struct iwl_proto_offload_cmd_v2 { - struct iwl_proto_offload_cmd_common common; - u8 remote_ipv6_addr[16]; - u8 solicited_node_ipv6_addr[16]; - u8 target_ipv6_addr[96]; - u8 ndp_mac_addr[6]; - u8 num_valid_ipv6_addrs; - u8 reserved2[3]; -} __attribute__((packed)); - -struct iwl_targ_addr { - struct in6_addr addr; - __le32 config_num; -}; - -struct iwl_ns_config { - struct in6_addr source_ipv6_addr; - struct in6_addr dest_ipv6_addr; - u8 target_mac_addr[6]; - __le16 reserved; -}; - -struct iwl_proto_offload_cmd_v3_small { - struct iwl_proto_offload_cmd_common common; - __le32 num_valid_ipv6_addrs; - struct iwl_targ_addr targ_addrs[4]; - struct iwl_ns_config ns_config[2]; -}; - -struct iwl_proto_offload_cmd_v4 { - __le32 sta_id; - struct iwl_proto_offload_cmd_common common; - __le32 num_valid_ipv6_addrs; - struct iwl_targ_addr targ_addrs[12]; - struct iwl_ns_config ns_config[4]; -}; - -enum jvc_state { - STATE_INACTIVE___8 = 0, - STATE_HEADER_SPACE___3 = 1, - STATE_BIT_PULSE___4 = 2, - STATE_BIT_SPACE___4 = 3, - STATE_TRAILER_PULSE___3 = 4, - STATE_TRAILER_SPACE___3 = 5, - STATE_CHECK_REPEAT = 6, -}; - -union efi_rts_args; - -struct efi_runtime_work { - union efi_rts_args *args; - efi_status_t status; - struct work_struct work; - enum efi_rts_ids efi_rts_id; - struct completion efi_rts_comp; - const void *caller; -}; - -union efi_rts_args { - struct { - efi_time_t *time; - efi_time_cap_t *capabilities; - } GET_TIME; - struct { - efi_time_t *time; - } SET_TIME; - struct { - efi_bool_t *enabled; - efi_bool_t *pending; - efi_time_t *time; - } GET_WAKEUP_TIME; - struct { - efi_bool_t enable; - efi_time_t *time; - } SET_WAKEUP_TIME; - struct { - efi_char16_t *name; - efi_guid_t *vendor; - u32 *attr; - unsigned long *data_size; - void *data; - } GET_VARIABLE; - struct { - unsigned long *name_size; - efi_char16_t *name; - efi_guid_t *vendor; - } GET_NEXT_VARIABLE; - struct { - efi_char16_t *name; - efi_guid_t *vendor; - u32 attr; - unsigned long data_size; - void *data; - } SET_VARIABLE; - struct { - u32 attr; - u64 *storage_space; - u64 *remaining_space; - u64 *max_variable_size; - } QUERY_VARIABLE_INFO; - struct { - u32 *high_count; - } GET_NEXT_HIGH_MONO_COUNT; - struct { - efi_capsule_header_t **capsules; - unsigned long count; - unsigned long sg_list; - } UPDATE_CAPSULE; - struct { - efi_capsule_header_t **capsules; - unsigned long count; - u64 *max_size; - int *reset_type; - } QUERY_CAPSULE_CAPS; - struct { - efi_status_t (*acpi_prm_handler)(u64, void *); - u64 param_buffer_addr; - void *context; - } ACPI_PRM_HANDLER; -}; - -enum { - ETHTOOL_A_EEE_UNSPEC = 0, - ETHTOOL_A_EEE_HEADER = 1, - ETHTOOL_A_EEE_MODES_OURS = 2, - ETHTOOL_A_EEE_MODES_PEER = 3, - ETHTOOL_A_EEE_ACTIVE = 4, - ETHTOOL_A_EEE_ENABLED = 5, - ETHTOOL_A_EEE_TX_LPI_ENABLED = 6, - ETHTOOL_A_EEE_TX_LPI_TIMER = 7, - __ETHTOOL_A_EEE_CNT = 8, - ETHTOOL_A_EEE_MAX = 7, -}; - -struct eee_reply_data { - struct ethnl_reply_data base; - struct ethtool_keee eee; -}; - -enum nft_bitwise_ops { - NFT_BITWISE_BOOL = 0, - NFT_BITWISE_LSHIFT = 1, - NFT_BITWISE_RSHIFT = 2, -}; - -enum nft_bitwise_attributes { - NFTA_BITWISE_UNSPEC = 0, - NFTA_BITWISE_SREG = 1, - NFTA_BITWISE_DREG = 2, - NFTA_BITWISE_LEN = 3, - NFTA_BITWISE_MASK = 4, - NFTA_BITWISE_XOR = 5, - NFTA_BITWISE_OP = 6, - NFTA_BITWISE_DATA = 7, - __NFTA_BITWISE_MAX = 8, -}; - -struct nft_bitwise { - u8 sreg; - u8 dreg; - enum nft_bitwise_ops op: 8; - u8 len; - struct nft_data mask; - struct nft_data xor; - struct nft_data data; -}; - -enum reg_type { - REG_TYPE_RM = 0, - REG_TYPE_REG = 1, - REG_TYPE_INDEX = 2, - REG_TYPE_BASE = 3, -}; - -enum insn_mmio_type { - INSN_MMIO_DECODE_FAILED = 0, - INSN_MMIO_WRITE = 1, - INSN_MMIO_WRITE_IMM = 2, - INSN_MMIO_READ = 3, - INSN_MMIO_READ_ZERO_EXTEND = 4, - INSN_MMIO_READ_SIGN_EXTEND = 5, - INSN_MMIO_MOVS = 6, -}; - -typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); - -typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); - -typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); - -struct cpuhp_cpu_state { - enum cpuhp_state state; - enum cpuhp_state target; - enum cpuhp_state fail; - struct task_struct *thread; - bool should_run; - bool rollback; - bool single; - bool bringup; - struct hlist_node *node; - struct hlist_node *last; - enum cpuhp_state cb_state; - int result; - atomic_t ap_sync_state; - struct completion done_up; - struct completion done_down; -}; - -struct cpuhp_step { - const char *name; - union { - int (*single)(unsigned int); - int (*multi)(unsigned int, struct hlist_node *); - } startup; - union { - int (*single)(unsigned int); - int (*multi)(unsigned int, struct hlist_node *); - } teardown; - struct hlist_head list; - bool cant_stop; - bool multi_instance; -}; - -enum cpu_mitigations { - CPU_MITIGATIONS_OFF = 0, - CPU_MITIGATIONS_AUTO = 1, - CPU_MITIGATIONS_AUTO_NOSMT = 2, -}; - -enum cpuhp_sync_state { - SYNC_STATE_DEAD = 0, - SYNC_STATE_KICKED = 1, - SYNC_STATE_SHOULD_DIE = 2, - SYNC_STATE_ALIVE = 3, - SYNC_STATE_SHOULD_ONLINE = 4, - SYNC_STATE_ONLINE = 5, -}; - -struct trace_event_raw_cpuhp_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; -}; - -struct trace_event_raw_cpuhp_multi_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; -}; - -struct trace_event_raw_cpuhp_exit { - struct trace_entry ent; - unsigned int cpu; - int state; - int idx; - int ret; - char __data[0]; -}; - -struct cpu_down_work { - unsigned int cpu; - enum cpuhp_state target; -}; - -struct trace_event_data_offsets_cpuhp_enter {}; - -struct trace_event_data_offsets_cpuhp_multi_enter {}; - -struct trace_event_data_offsets_cpuhp_exit {}; - -struct listener_list { - struct rw_semaphore sem; - struct list_head list; -}; - -enum { - TASKSTATS_CMD_UNSPEC = 0, - TASKSTATS_CMD_GET = 1, - TASKSTATS_CMD_NEW = 2, - __TASKSTATS_CMD_MAX = 3, -}; - -enum { - TASKSTATS_TYPE_UNSPEC = 0, - TASKSTATS_TYPE_PID = 1, - TASKSTATS_TYPE_TGID = 2, - TASKSTATS_TYPE_STATS = 3, - TASKSTATS_TYPE_AGGR_PID = 4, - TASKSTATS_TYPE_AGGR_TGID = 5, - TASKSTATS_TYPE_NULL = 6, - __TASKSTATS_TYPE_MAX = 7, -}; - -enum { - TASKSTATS_CMD_ATTR_UNSPEC = 0, - TASKSTATS_CMD_ATTR_PID = 1, - TASKSTATS_CMD_ATTR_TGID = 2, - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 3, - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 4, - __TASKSTATS_CMD_ATTR_MAX = 5, -}; - -enum actions { - REGISTER = 0, - DEREGISTER = 1, - CPU_DONT_CARE = 2, -}; - -enum { - CGROUPSTATS_CMD_ATTR_UNSPEC = 0, - CGROUPSTATS_CMD_ATTR_FD = 1, - __CGROUPSTATS_CMD_ATTR_MAX = 2, -}; - -enum { - CGROUPSTATS_CMD_UNSPEC = 3, - CGROUPSTATS_CMD_GET = 4, - CGROUPSTATS_CMD_NEW = 5, - __CGROUPSTATS_CMD_MAX = 6, -}; - -enum { - CGROUPSTATS_TYPE_UNSPEC = 0, - CGROUPSTATS_TYPE_CGROUP_STATS = 1, - __CGROUPSTATS_TYPE_MAX = 2, -}; - -struct listener { - struct list_head list; - pid_t pid; - char valid; -}; - -typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); - -typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); - -typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); - -typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); - -typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, int); - -typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); - -struct reclaim_stat; - -typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); - -struct reclaim_stat { - unsigned int nr_dirty; - unsigned int nr_unqueued_dirty; - unsigned int nr_congested; - unsigned int nr_writeback; - unsigned int nr_immediate; - unsigned int nr_pageout; - unsigned int nr_activate[2]; - unsigned int nr_ref_keep; - unsigned int nr_unmap_fail; - unsigned int nr_lazyfree_fail; -}; - -typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, unsigned long, unsigned long, unsigned long, unsigned long, int, int); - -typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); - -enum pgdat_flags { - PGDAT_DIRTY = 0, - PGDAT_WRITEBACK = 1, - PGDAT_RECLAIM_LOCKED = 2, -}; - -enum folio_references { - FOLIOREF_RECLAIM = 0, - FOLIOREF_RECLAIM_CLEAN = 1, - FOLIOREF_KEEP = 2, - FOLIOREF_ACTIVATE = 3, -}; - -enum lruvec_flags { - LRUVEC_CGROUP_CONGESTED = 0, - LRUVEC_NODE_CONGESTED = 1, -}; - -enum scan_balance { - SCAN_EQUAL = 0, - SCAN_FRACT = 1, - SCAN_ANON = 2, - SCAN_FILE = 3, -}; - -struct trace_event_raw_mm_vmscan_kswapd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_kswapd_wake { - struct trace_entry ent; - int nid; - int zid; - int order; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_wakeup_kswapd { - struct trace_entry ent; - int nid; - int zid; - int order; - unsigned long gfp_flags; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { - struct trace_entry ent; - int order; - unsigned long gfp_flags; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { - struct trace_entry ent; - unsigned long nr_reclaimed; - char __data[0]; -}; - -struct trace_event_raw_mm_shrink_slab_start { - struct trace_entry ent; - struct shrinker *shr; - void *shrink; - int nid; - long nr_objects_to_shrink; - unsigned long gfp_flags; - unsigned long cache_items; - unsigned long long delta; - unsigned long total_scan; - int priority; - char __data[0]; -}; - -struct trace_event_raw_mm_shrink_slab_end { - struct trace_entry ent; - struct shrinker *shr; - int nid; - void *shrink; - long unused_scan; - long new_scan; - int retval; - long total_scan; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_lru_isolate { - struct trace_entry ent; - int highest_zoneidx; - int order; - unsigned long nr_requested; - unsigned long nr_scanned; - unsigned long nr_skipped; - unsigned long nr_taken; - int lru; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_write_folio { - struct trace_entry ent; - unsigned long pfn; - int reclaim_flags; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_lru_shrink_inactive { - struct trace_entry ent; - int nid; - unsigned long nr_scanned; - unsigned long nr_reclaimed; - unsigned long nr_dirty; - unsigned long nr_writeback; - unsigned long nr_congested; - unsigned long nr_immediate; - unsigned int nr_activate0; - unsigned int nr_activate1; - unsigned long nr_ref_keep; - unsigned long nr_unmap_fail; - int priority; - int reclaim_flags; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_lru_shrink_active { - struct trace_entry ent; - int nid; - unsigned long nr_taken; - unsigned long nr_active; - unsigned long nr_deactivated; - unsigned long nr_referenced; - int priority; - int reclaim_flags; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_node_reclaim_begin { - struct trace_entry ent; - int nid; - int order; - unsigned long gfp_flags; - char __data[0]; -}; - -struct trace_event_raw_mm_vmscan_throttled { - struct trace_entry ent; - int nid; - int usec_timeout; - int usec_delayed; - int reason; - char __data[0]; -}; - -struct scan_control { - unsigned long nr_to_reclaim; - nodemask_t *nodemask; - struct mem_cgroup *target_mem_cgroup; - unsigned long anon_cost; - unsigned long file_cost; - unsigned int may_deactivate: 2; - unsigned int force_deactivate: 1; - unsigned int skipped_deactivate: 1; - unsigned int may_writepage: 1; - unsigned int may_unmap: 1; - unsigned int may_swap: 1; - unsigned int no_cache_trim_mode: 1; - unsigned int cache_trim_mode_failed: 1; - unsigned int proactive: 1; - unsigned int memcg_low_reclaim: 1; - unsigned int memcg_low_skipped: 1; - unsigned int hibernation_mode: 1; - unsigned int compaction_ready: 1; - unsigned int cache_trim_mode: 1; - unsigned int file_is_tiny: 1; - unsigned int no_demotion: 1; - s8 order; - s8 priority; - s8 reclaim_idx; - gfp_t gfp_mask; - unsigned long nr_scanned; - unsigned long nr_reclaimed; - struct { - unsigned int dirty; - unsigned int unqueued_dirty; - unsigned int congested; - unsigned int writeback; - unsigned int immediate; - unsigned int file_taken; - unsigned int taken; - } nr; - struct reclaim_state reclaim_state; -}; - -typedef enum { - PAGE_KEEP = 0, - PAGE_ACTIVATE = 1, - PAGE_SUCCESS = 2, - PAGE_CLEAN = 3, -} pageout_t; - -struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; - -struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; - -struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; - -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; - -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; - -struct trace_event_data_offsets_mm_shrink_slab_start {}; - -struct trace_event_data_offsets_mm_shrink_slab_end {}; - -struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; - -struct trace_event_data_offsets_mm_vmscan_write_folio {}; - -struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; - -struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; - -struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; - -struct trace_event_data_offsets_mm_vmscan_throttled {}; - -struct fuse_backing_map { - int32_t fd; - uint32_t flags; - uint64_t padding; -}; - -struct btrfs_feature_attr { - struct kobj_attribute kobj_attr; - enum btrfs_feature_set feature_set; - u64 feature_bit; -}; - -struct raid_kobject { - u64 flags; - struct kobject kobj; -}; - -enum devcg_behavior { - DEVCG_DEFAULT_NONE = 0, - DEVCG_DEFAULT_ALLOW = 1, - DEVCG_DEFAULT_DENY = 2, -}; - -struct dev_cgroup { - struct cgroup_subsys_state css; - struct list_head exceptions; - enum devcg_behavior behavior; -}; - -struct dev_exception_item { - u32 major; - u32 minor; - short type; - short access; - struct list_head list; - struct callback_head rcu; -}; - -struct lwq { - spinlock_t lock; - struct llist_node *ready; - struct llist_head new; -}; - -struct efifb_par { - u32 pseudo_palette[16]; - resource_size_t base; - resource_size_t size; -}; - -struct clk_fixed_factor { - struct clk_hw hw; - unsigned int mult; - unsigned int div; - unsigned long acc; - unsigned int flags; -}; - -struct virtio_pci_modern_common_cfg { - struct virtio_pci_common_cfg cfg; - __le16 queue_notify_data; - __le16 queue_reset; - __le16 admin_queue_index; - __le16 admin_queue_num; -}; - -struct e1000_host_mng_command_header { - u8 command_id; - u8 checksum; - u16 reserved1; - u16 reserved2; - u16 command_length; -}; - -enum iwl_statistics_cmd_flags { - IWL_STATISTICS_FLG_CLEAR = 1, - IWL_STATISTICS_FLG_DISABLE_NOTIF = 2, -}; - -enum iwl_statistics_cfg_flags { - IWL_STATS_CFG_FLG_DISABLE_NTFY_MSK = 1, - IWL_STATS_CFG_FLG_ON_DEMAND_NTFY_MSK = 2, - IWL_STATS_CFG_FLG_RESET_MSK = 4, -}; - -enum iwl_statistics_notify_type_id { - IWL_STATS_NTFY_TYPE_ID_OPER = 1, - IWL_STATS_NTFY_TYPE_ID_OPER_PART1 = 2, - IWL_STATS_NTFY_TYPE_ID_OPER_PART2 = 4, - IWL_STATS_NTFY_TYPE_ID_OPER_PART3 = 8, - IWL_STATS_NTFY_TYPE_ID_OPER_PART4 = 16, -}; - -struct iwl_system_statistics_cmd { - __le32 cfg_mask; - __le32 config_time_sec; - __le32 type_id_mask; -}; - -struct iwl_cmd_response { - __le32 status; -}; - -struct iwl_error_resp___2 { - __le32 error_type; - u8 cmd_id; - u8 reserved1; - __le16 bad_cmd_seq_num; - __le32 error_service; - __le64 timestamp; -} __attribute__((packed)); - -struct iwl_statistics_cmd___2 { - __le32 flags; -}; - -struct iwl_mvm_diversity_iter_data { - struct iwl_mvm_phy_ctxt *ctxt; - bool result; -}; - -struct iwl_mac_low_latency_cmd { - __le32 mac_id; - u8 low_latency_rx; - u8 low_latency_tx; - __le16 reserved; -}; - -struct iwl_mvm_low_latency_iter { - bool result; - bool result_per_band[6]; -}; - -struct iwl_bss_iter_data { - struct ieee80211_vif *vif; - bool error; -}; - -struct iwl_bss_find_iter_data { - struct ieee80211_vif *vif; - u32 macid; -}; - -struct iwl_sta_iter_data { - bool assoc; -}; - -struct iwl_fw_dbg_trigger_txq_timer { - __le32 command_queue; - __le32 bss; - __le32 softap; - __le32 p2p_go; - __le32 p2p_client; - __le32 p2p_device; - __le32 ibss; - __le32 tdls; - __le32 reserved[4]; -}; - -enum csi_seg_len { - HAL_CSI_SEG_4K = 0, - HAL_CSI_SEG_8K = 1, - HAL_CSI_SEG_11K = 2, -}; - -struct mu_bfer_init_para { - u16 paid; - u16 csi_para; - u16 my_aid; - enum csi_seg_len csi_length_sel; - u8 bfer_address[6]; -}; - -struct cfg_mumimo_para { - u8 sounding_sts[6]; - u16 grouping_bitmap; - u8 mu_tx_en; - u32 given_gid_tab[2]; - u32 given_user_pos[4]; -}; - -struct ignore_entry { - u16 vid; - u16 pid; - u16 bcdmin; - u16 bcdmax; -}; - -struct i2c_smbus_alert { - struct work_struct alert; - struct i2c_client *ara; -}; - -struct alert_data { - unsigned short addr; - enum i2c_alert_protocol type; - unsigned int data; -}; - -struct rt_cache_stat { - unsigned int in_slow_tot; - unsigned int in_slow_mc; - unsigned int in_no_route; - unsigned int in_brd; - unsigned int in_martian_dst; - unsigned int in_martian_src; - unsigned int out_slow_tot; - unsigned int out_slow_mc; -}; - -struct restore_data_record { - unsigned long jump_address; - unsigned long jump_address_phys; - unsigned long cr3; - unsigned long magic; - unsigned long e820_checksum; -}; - -struct cstate_model { - unsigned long core_events; - unsigned long pkg_events; - unsigned long module_events; - unsigned long quirks; -}; - -enum perf_cstate_pkg_events { - PERF_CSTATE_PKG_C2_RES = 0, - PERF_CSTATE_PKG_C3_RES = 1, - PERF_CSTATE_PKG_C6_RES = 2, - PERF_CSTATE_PKG_C7_RES = 3, - PERF_CSTATE_PKG_C8_RES = 4, - PERF_CSTATE_PKG_C9_RES = 5, - PERF_CSTATE_PKG_C10_RES = 6, - PERF_CSTATE_PKG_EVENT_MAX = 7, -}; - -enum perf_cstate_core_events { - PERF_CSTATE_CORE_C1_RES = 0, - PERF_CSTATE_CORE_C3_RES = 1, - PERF_CSTATE_CORE_C6_RES = 2, - PERF_CSTATE_CORE_C7_RES = 3, - PERF_CSTATE_CORE_EVENT_MAX = 4, -}; - -enum perf_cstate_module_events { - PERF_CSTATE_MODULE_C6_RES = 0, - PERF_CSTATE_MODULE_EVENT_MAX = 1, -}; - -struct cyc2ns { - struct cyc2ns_data data[2]; - seqcount_latch_t seq; -}; - -struct umd_info { - const char *driver_name; - struct file *pipe_to_umh; - struct file *pipe_from_umh; - struct path wd; - struct pid *tgid; -}; - -enum kernel_load_data_id { - LOADING_UNKNOWN = 0, - LOADING_FIRMWARE = 1, - LOADING_MODULE = 2, - LOADING_KEXEC_IMAGE = 3, - LOADING_KEXEC_INITRAMFS = 4, - LOADING_POLICY = 5, - LOADING_X509_CERTIFICATE = 6, - LOADING_MAX_ID = 7, -}; - -struct syscall_trace_enter { - struct trace_entry ent; - int nr; - unsigned long args[0]; -}; - -struct syscall_trace_exit { - struct trace_entry ent; - int nr; - long ret; -}; - -struct syscall_tp_t { - struct trace_entry ent; - int syscall_nr; - unsigned long args[6]; -}; - -struct syscall_tp_t___2 { - struct trace_entry ent; - int syscall_nr; - unsigned long ret; -}; - -enum { - BPF_F_SKIP_FIELD_MASK = 255, - BPF_F_USER_STACK = 256, - BPF_F_FAST_STACK_CMP = 512, - BPF_F_REUSE_STACKID = 1024, - BPF_F_USER_BUILD_ID = 2048, -}; - -enum bpf_stack_build_id_status { - BPF_STACK_BUILD_ID_EMPTY = 0, - BPF_STACK_BUILD_ID_VALID = 1, - BPF_STACK_BUILD_ID_IP = 2, -}; - -typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); - -typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); - -typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); - -struct stack_map_bucket; - -struct bpf_stack_map { - struct bpf_map map; - void *elems; - struct pcpu_freelist freelist; - u32 n_buckets; - struct stack_map_bucket *buckets[0]; -}; - -struct stack_map_bucket { - struct pcpu_freelist_node fnode; - u32 hash; - u32 nr; - u64 data[0]; -}; - -struct bpf_stack_build_id { - __s32 status; - unsigned char build_id[20]; - union { - __u64 offset; - __u64 ip; - }; -}; - -struct mmap_unlock_irq_work { - struct irq_work irq_work; - struct mm_struct *mm; -}; - -struct mempolicy_operations { - int (*create)(struct mempolicy *, const nodemask_t *); - void (*rebind)(struct mempolicy *, const nodemask_t *); -}; - -struct iw_node_attr { - struct kobj_attribute kobj_attr; - int nid; -}; - -struct sp_node { - struct rb_node nd; - unsigned long start; - unsigned long end; - struct mempolicy *policy; -}; - -struct migration_mpol { - struct mempolicy *pol; - unsigned long ilx; -}; - -struct queue_pages { - struct list_head *pagelist; - unsigned long flags; - nodemask_t *nmask; - unsigned long start; - unsigned long end; - struct vm_area_struct *first; - struct folio *large; - long nr_failed; -}; - -struct nodemask_scratch { - nodemask_t mask1; - nodemask_t mask2; -}; - -enum { - Opt_uid___6 = 0, - Opt_gid___7 = 1, - Opt_mode___6 = 2, - Opt_ptmxmode = 3, - Opt_newinstance = 4, - Opt_max = 5, - Opt_err___5 = 6, -}; - -struct pts_mount_opts { - int setuid; - int setgid; - kuid_t uid; - kgid_t gid; - umode_t mode; - umode_t ptmxmode; - int reserve; - int max; -}; - -struct pts_fs_info { - struct ida allocated_ptys; - struct pts_mount_opts mount_opts; - struct super_block *sb; - struct dentry *ptmx_dentry; -}; - -typedef struct { - __le32 a_version; -} ext4_acl_header; - -typedef struct { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; -} ext4_acl_entry; - -struct autofs_dev_ioctl; - -typedef int (*ioctl_fn___2)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); - -struct args_protover { - __u32 version; -}; - -struct args_protosubver { - __u32 sub_version; -}; - -struct args_openmount { - __u32 devid; -}; - -struct args_ready { - __u32 token; -}; - -struct args_fail { - __u32 token; - __s32 status; -}; - -struct args_setpipefd { - __s32 pipefd; -}; - -struct args_timeout { - __u64 timeout; -}; - -struct args_requester { - __u32 uid; - __u32 gid; -}; - -struct args_expire { - __u32 how; -}; - -struct args_askumount { - __u32 may_umount; -}; - -struct args_in { - __u32 type; -}; - -struct args_out { - __u32 devid; - __u32 magic; -}; - -struct args_ismountpoint { - union { - struct args_in in; - struct args_out out; - }; -}; - -struct autofs_dev_ioctl { - __u32 ver_major; - __u32 ver_minor; - __u32 size; - __s32 ioctlfd; - union { - struct args_protover protover; - struct args_protosubver protosubver; - struct args_openmount openmount; - struct args_ready ready; - struct args_fail fail; - struct args_setpipefd setpipefd; - struct args_timeout timeout; - struct args_requester requester; - struct args_expire expire; - struct args_askumount askumount; - struct args_ismountpoint ismountpoint; - }; - char path[0]; -}; - -enum { - AUTOFS_DEV_IOCTL_VERSION_CMD = 113, - AUTOFS_DEV_IOCTL_PROTOVER_CMD = 114, - AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD = 115, - AUTOFS_DEV_IOCTL_OPENMOUNT_CMD = 116, - AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD = 117, - AUTOFS_DEV_IOCTL_READY_CMD = 118, - AUTOFS_DEV_IOCTL_FAIL_CMD = 119, - AUTOFS_DEV_IOCTL_SETPIPEFD_CMD = 120, - AUTOFS_DEV_IOCTL_CATATONIC_CMD = 121, - AUTOFS_DEV_IOCTL_TIMEOUT_CMD = 122, - AUTOFS_DEV_IOCTL_REQUESTER_CMD = 123, - AUTOFS_DEV_IOCTL_EXPIRE_CMD = 124, - AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD = 125, - AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD = 126, -}; - -struct shmid_kernel { - struct kern_ipc_perm shm_perm; - struct file *shm_file; - unsigned long shm_nattch; - unsigned long shm_segsz; - time64_t shm_atim; - time64_t shm_dtim; - time64_t shm_ctim; - struct pid *shm_cprid; - struct pid *shm_lprid; - struct ucounts *mlock_ucounts; - struct task_struct *shm_creator; - struct list_head shm_clist; - struct ipc_namespace *ns; - long: 64; - long: 64; - long: 64; -}; - -struct shm_file_data { - int id; - struct ipc_namespace *ns; - struct file *file; - const struct vm_operations_struct *vm_ops; -}; - -struct shmid_ds { - struct ipc_perm shm_perm; - int shm_segsz; - __kernel_old_time_t shm_atime; - __kernel_old_time_t shm_dtime; - __kernel_old_time_t shm_ctime; - __kernel_ipc_pid_t shm_cpid; - __kernel_ipc_pid_t shm_lpid; - unsigned short shm_nattch; - unsigned short shm_unused; - void *shm_unused2; - void *shm_unused3; -}; - -struct shmid64_ds { - struct ipc64_perm shm_perm; - __kernel_size_t shm_segsz; - long shm_atime; - long shm_dtime; - long shm_ctime; - __kernel_pid_t shm_cpid; - __kernel_pid_t shm_lpid; - unsigned long shm_nattch; - unsigned long __unused4; - unsigned long __unused5; -}; - -struct shminfo64 { - unsigned long shmmax; - unsigned long shmmin; - unsigned long shmmni; - unsigned long shmseg; - unsigned long shmall; - unsigned long __unused1; - unsigned long __unused2; - unsigned long __unused3; - unsigned long __unused4; -}; - -struct shm_info { - int used_ids; - __kernel_ulong_t shm_tot; - __kernel_ulong_t shm_rss; - __kernel_ulong_t shm_swp; - __kernel_ulong_t swap_attempts; - __kernel_ulong_t swap_successes; -}; - -struct shminfo { - int shmmax; - int shmmin; - int shmmni; - int shmseg; - int shmall; -}; - -enum { - IORING_MSG_DATA = 0, - IORING_MSG_SEND_FD = 1, -}; - -struct io_msg { - struct file *file; - struct file *src_file; - struct callback_head tw; - u64 user_data; - u32 len; - u32 cmd; - u32 src_fd; - union { - u32 dst_fd; - u32 cqe_flags; - }; - u32 flags; -}; - -struct vgastate { - void *vgabase; - unsigned long membase; - __u32 memsize; - __u32 flags; - __u32 depth; - __u32 num_attr; - __u32 num_crtc; - __u32 num_gfx; - __u32 num_seq; - void *vidstate; -}; - -enum { - Lo_unbound = 0, - Lo_bound = 1, - Lo_rundown = 2, - Lo_deleting = 3, -}; - -enum { - LO_FLAGS_READ_ONLY = 1, - LO_FLAGS_AUTOCLEAR = 4, - LO_FLAGS_PARTSCAN = 8, - LO_FLAGS_DIRECT_IO = 16, -}; - -struct loop_device { - int lo_number; - loff_t lo_offset; - loff_t lo_sizelimit; - int lo_flags; - char lo_file_name[64]; - struct file *lo_backing_file; - struct block_device *lo_device; - gfp_t old_gfp_mask; - spinlock_t lo_lock; - int lo_state; - spinlock_t lo_work_lock; - struct workqueue_struct *workqueue; - struct work_struct rootcg_work; - struct list_head rootcg_cmd_list; - struct list_head idle_worker_list; - struct rb_root worker_tree; - struct timer_list timer; - bool use_dio; - bool sysfs_inited; - struct request_queue *lo_queue; - struct blk_mq_tag_set tag_set; - struct gendisk *lo_disk; - struct mutex lo_mutex; - bool idr_visible; -}; - -struct loop_worker { - struct rb_node rb_node; - struct work_struct work; - struct list_head cmd_list; - struct list_head idle_list; - struct loop_device *lo; - struct cgroup_subsys_state *blkcg_css; - unsigned long last_ran_at; -}; - -struct loop_cmd { - struct list_head list_entry; - bool use_aio; - atomic_t ref; - long ret; - struct kiocb iocb; - struct bio_vec *bvec; - struct cgroup_subsys_state *blkcg_css; - struct cgroup_subsys_state *memcg_css; -}; - -typedef unsigned long __kernel_old_dev_t; - -struct loop_info { - int lo_number; - __kernel_old_dev_t lo_device; - unsigned long lo_inode; - __kernel_old_dev_t lo_rdevice; - int lo_offset; - int lo_encrypt_type; - int lo_encrypt_key_size; - int lo_flags; - char lo_name[64]; - unsigned char lo_encrypt_key[32]; - unsigned long lo_init[2]; - char reserved[4]; -}; - -struct loop_info64 { - __u64 lo_device; - __u64 lo_inode; - __u64 lo_rdevice; - __u64 lo_offset; - __u64 lo_sizelimit; - __u32 lo_number; - __u32 lo_encrypt_type; - __u32 lo_encrypt_key_size; - __u32 lo_flags; - __u8 lo_file_name[64]; - __u8 lo_crypt_name[64]; - __u8 lo_encrypt_key[32]; - __u64 lo_init[2]; -}; - -struct loop_config { - __u32 fd; - __u32 block_size; - struct loop_info64 info; - __u64 __reserved[8]; -}; - -enum rt2800_eeprom_word { - EEPROM_CHIP_ID = 0, - EEPROM_VERSION = 1, - EEPROM_MAC_ADDR_0 = 2, - EEPROM_MAC_ADDR_1 = 3, - EEPROM_MAC_ADDR_2 = 4, - EEPROM_NIC_CONF0 = 5, - EEPROM_NIC_CONF1 = 6, - EEPROM_FREQ = 7, - EEPROM_LED_AG_CONF = 8, - EEPROM_LED_ACT_CONF = 9, - EEPROM_LED_POLARITY = 10, - EEPROM_NIC_CONF2 = 11, - EEPROM_LNA = 12, - EEPROM_RSSI_BG = 13, - EEPROM_RSSI_BG2 = 14, - EEPROM_TXMIXER_GAIN_BG = 15, - EEPROM_RSSI_A = 16, - EEPROM_RSSI_A2 = 17, - EEPROM_TXMIXER_GAIN_A = 18, - EEPROM_EIRP_MAX_TX_POWER = 19, - EEPROM_TXPOWER_DELTA = 20, - EEPROM_TXPOWER_BG1 = 21, - EEPROM_TXPOWER_BG2 = 22, - EEPROM_TSSI_BOUND_BG1 = 23, - EEPROM_TSSI_BOUND_BG2 = 24, - EEPROM_TSSI_BOUND_BG3 = 25, - EEPROM_TSSI_BOUND_BG4 = 26, - EEPROM_TSSI_BOUND_BG5 = 27, - EEPROM_TXPOWER_A1 = 28, - EEPROM_TXPOWER_A2 = 29, - EEPROM_TXPOWER_INIT = 30, - EEPROM_TSSI_BOUND_A1 = 31, - EEPROM_TSSI_BOUND_A2 = 32, - EEPROM_TSSI_BOUND_A3 = 33, - EEPROM_TSSI_BOUND_A4 = 34, - EEPROM_TSSI_BOUND_A5 = 35, - EEPROM_TXPOWER_BYRATE = 36, - EEPROM_BBP_START = 37, - EEPROM_EXT_LNA2 = 38, - EEPROM_EXT_TXPOWER_BG3 = 39, - EEPROM_EXT_TXPOWER_A3 = 40, - EEPROM_WORD_COUNT = 41, -}; - -enum { - TX_PWR_CFG_0_IDX = 0, - TX_PWR_CFG_1_IDX = 1, - TX_PWR_CFG_2_IDX = 2, - TX_PWR_CFG_3_IDX = 3, - TX_PWR_CFG_4_IDX = 4, - TX_PWR_CFG_5_IDX = 5, - TX_PWR_CFG_6_IDX = 6, - TX_PWR_CFG_7_IDX = 7, - TX_PWR_CFG_8_IDX = 8, - TX_PWR_CFG_9_IDX = 9, - TX_PWR_CFG_0_EXT_IDX = 10, - TX_PWR_CFG_1_EXT_IDX = 11, - TX_PWR_CFG_2_EXT_IDX = 12, - TX_PWR_CFG_3_EXT_IDX = 13, - TX_PWR_CFG_4_EXT_IDX = 14, - TX_PWR_CFG_IDX_COUNT = 15, -}; - -enum led_mode { - LED_MODE_DEFAULT = 0, - LED_MODE_TXRX_ACTIVITY = 1, - LED_MODE_SIGNAL_STRENGTH = 2, - LED_MODE_ASUS = 3, - LED_MODE_ALPHA = 4, -}; - -struct rt2x00_field16 { - u16 bit_offset; - u16 bit_mask; -}; - -struct mac_wcid_entry { - u8 mac[6]; - u8 reserved[2]; -}; - -struct rt2800_drv_data { - u8 calibration_bw20; - u8 calibration_bw40; - s8 rx_calibration_bw20; - s8 rx_calibration_bw40; - s8 tx_calibration_bw20; - s8 tx_calibration_bw40; - u8 bbp25; - u8 bbp26; - u8 txmixer_gain_24g; - u8 txmixer_gain_5g; - u8 max_psdu; - unsigned int tbtt_tick; - unsigned int ampdu_factor_cnt[4]; - unsigned long sta_ids[3]; - struct ieee80211_sta *wcid_to_sta[191]; -}; - -struct rt2x00_field8 { - u8 bit_offset; - u8 bit_mask; -}; - -struct hw_key_entry { - u8 key[16]; - u8 tx_mic[8]; - u8 rx_mic[8]; -}; - -struct mac_iveiv_entry { - u8 iv[8]; -}; - -struct rf_reg_pair { - u8 bank; - u8 reg; - u8 value; -}; - -struct percpu_free_defer { - struct callback_head rcu; - void __attribute__((btf_type_tag("percpu"))) *ptr; -}; - -enum { - NFACCT_NO_QUOTA = -1, - NFACCT_UNDERQUOTA = 0, - NFACCT_OVERQUOTA = 1, -}; - -enum nfnl_acct_flags { - NFACCT_F_QUOTA_PKTS = 1, - NFACCT_F_QUOTA_BYTES = 2, - NFACCT_F_OVERQUOTA = 4, -}; - -enum nfnl_acct_msg_types { - NFNL_MSG_ACCT_NEW = 0, - NFNL_MSG_ACCT_GET = 1, - NFNL_MSG_ACCT_GET_CTRZERO = 2, - NFNL_MSG_ACCT_DEL = 3, - NFNL_MSG_ACCT_OVERQUOTA = 4, - NFNL_MSG_ACCT_MAX = 5, -}; - -enum nfnl_acct_type { - NFACCT_UNSPEC = 0, - NFACCT_NAME = 1, - NFACCT_PKTS = 2, - NFACCT_BYTES = 3, - NFACCT_USE = 4, - NFACCT_FLAGS = 5, - NFACCT_QUOTA = 6, - NFACCT_FILTER = 7, - NFACCT_PAD = 8, - __NFACCT_MAX = 9, -}; - -enum nfnl_attr_filter_type { - NFACCT_FILTER_UNSPEC = 0, - NFACCT_FILTER_MASK = 1, - NFACCT_FILTER_VALUE = 2, - __NFACCT_FILTER_MAX = 3, -}; - -struct nf_acct { - atomic64_t pkts; - atomic64_t bytes; - unsigned long flags; - struct list_head head; - refcount_t refcnt; - char name[32]; - struct callback_head callback_head; - char data[0]; -}; - -struct nfnl_acct_net { - struct list_head nfnl_acct_list; -}; - -struct nfacct_filter { - u32 value; - u32 mask; -}; - -enum nft_payload_attributes { - NFTA_PAYLOAD_UNSPEC = 0, - NFTA_PAYLOAD_DREG = 1, - NFTA_PAYLOAD_BASE = 2, - NFTA_PAYLOAD_OFFSET = 3, - NFTA_PAYLOAD_LEN = 4, - NFTA_PAYLOAD_SREG = 5, - NFTA_PAYLOAD_CSUM_TYPE = 6, - NFTA_PAYLOAD_CSUM_OFFSET = 7, - NFTA_PAYLOAD_CSUM_FLAGS = 8, - __NFTA_PAYLOAD_MAX = 9, -}; - -enum nft_offload_reg_flags { - NFT_OFFLOAD_F_NETWORK2HOST = 1, -}; - -enum nft_payload_csum_types { - NFT_PAYLOAD_CSUM_NONE = 0, - NFT_PAYLOAD_CSUM_INET = 1, - NFT_PAYLOAD_CSUM_SCTP = 2, -}; - -enum nft_payload_csum_flags { - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 1, -}; - -struct sctphdr { - __be16 source; - __be16 dest; - __be32 vtag; - __le32 checksum; -}; - -struct nft_payload_set { - enum nft_payload_bases base: 8; - u8 offset; - u8 len; - u8 sreg; - u8 csum_type; - u8 csum_offset; - u8 csum_flags; -}; - -struct fwdb_country { - u8 alpha2[2]; - __be16 coll_ptr; -}; - -struct fwdb_header { - __be32 magic; - __be32 version; - struct fwdb_country country[0]; -}; - -enum reg_request_treatment { - REG_REQ_OK = 0, - REG_REQ_IGNORE = 1, - REG_REQ_INTERSECT = 2, - REG_REQ_ALREADY_SET = 3, -}; - -enum fwdb_flags { - FWDB_FLAG_NO_OFDM = 1, - FWDB_FLAG_NO_OUTDOOR = 2, - FWDB_FLAG_DFS = 4, - FWDB_FLAG_NO_IR = 8, - FWDB_FLAG_AUTO_BW = 16, -}; - -struct reg_beacon { - struct list_head list; - struct ieee80211_channel chan; -}; - -struct fwdb_wmm_ac { - u8 ecw; - u8 aifsn; - __be16 cot; -}; - -struct reg_regdb_apply_request { - struct list_head list; - const struct ieee80211_regdomain *regdom; -}; - -struct fwdb_collection { - u8 len; - u8 n_rules; - u8 dfs_region; - int: 0; -}; - -struct fwdb_rule { - u8 len; - u8 flags; - __be16 max_eirp; - __be32 start; - __be32 end; - __be32 max_bw; - __be16 cac_timeout; - __be16 wmm_ptr; -}; - -struct fwdb_wmm_rule { - struct fwdb_wmm_ac client[4]; - struct fwdb_wmm_ac ap[4]; -}; - -struct irqchip_fwid { - struct fwnode_handle fwnode; - unsigned int type; - char *name; - phys_addr_t *pa; -}; - -typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); - -struct bpf_nested_pt_regs { - struct pt_regs regs[3]; -}; - -struct bpf_trace_sample_data { - struct perf_sample_data sds[3]; -}; - -struct send_signal_irq_work { - struct irq_work irq_work; - struct task_struct *task; - u32 sig; - enum pid_type type; -}; - -struct bpf_raw_tp_regs { - struct pt_regs regs[3]; -}; - -enum { - BPF_F_UPROBE_MULTI_RETURN = 1, -}; - -enum { - BPF_F_GET_BRANCH_RECORDS_SIZE = 1, -}; - -typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); - -typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); - -typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); - -typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); - -typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); - -typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); - -typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); - -typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); - -typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); - -typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); - -typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); - -typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); - -struct btf_ptr; - -typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); - -struct btf_ptr { - void *ptr; - __u32 type_id; - __u32 flags; -}; - -typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); - -struct bpf_perf_event_value; - -typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); - -struct bpf_perf_event_value { - __u64 counter; - __u64 enabled; - __u64 running; -}; - -typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); - -typedef u64 (*btf_bpf_get_current_task)(); - -typedef u64 (*btf_bpf_get_current_task_btf)(); - -typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); - -typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); - -typedef u64 (*btf_bpf_send_signal)(u32); - -typedef u64 (*btf_bpf_send_signal_thread)(u32); - -typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); - -typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); - -typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); - -typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); - -typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); - -typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); - -typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); - -typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); - -typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); - -typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); - -typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); - -typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); - -typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); - -typedef u64 (*btf_get_func_ret)(void *, u64 *); - -typedef u64 (*btf_get_func_arg_cnt)(void *); - -typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); - -typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); - -typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); - -typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); - -typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); - -typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); - -struct trace_event_raw_bpf_trace_printk { - struct trace_entry ent; - u32 __data_loc_bpf_string; - char __data[0]; -}; - -struct bpf_uprobe; - -struct bpf_uprobe_multi_run_ctx { - struct bpf_run_ctx run_ctx; - unsigned long entry_ip; - struct bpf_uprobe *uprobe; -}; - -struct bpf_uprobe_multi_link; - -struct bpf_uprobe { - struct bpf_uprobe_multi_link *link; - loff_t offset; - unsigned long ref_ctr_offset; - u64 cookie; - struct uprobe_consumer consumer; -}; - -struct bpf_uprobe_multi_link { - struct path path; - struct bpf_link link; - u32 cnt; - u32 flags; - struct bpf_uprobe *uprobes; - struct task_struct *task; -}; - -struct bpf_trace_module { - struct module *module; - struct list_head list; -}; - -struct trace_event_data_offsets_bpf_trace_printk { - u32 bpf_string; - const void *bpf_string_ptr_; -}; - -struct bpf_key { - struct key *key; - bool has_ref; -}; - -struct perf_event_query_bpf { - __u32 ids_len; - __u32 prog_cnt; - __u32 ids[0]; -}; - -enum { - DIO_LOCKING = 1, - DIO_SKIP_HOLES = 2, -}; - -typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); - -struct dio { - int flags; - blk_opf_t opf; - struct gendisk *bio_disk; - struct inode *inode; - loff_t i_size; - dio_iodone_t *end_io; - bool is_pinned; - void *private; - spinlock_t bio_lock; - int page_errors; - int is_async; - bool defer_completion; - bool should_dirty; - int io_error; - unsigned long refcount; - struct bio *bio_list; - struct task_struct *waiter; - struct kiocb *iocb; - ssize_t result; - union { - struct page *pages[64]; - struct work_struct complete_work; - }; - long: 64; - long: 64; -}; - -struct dio_submit { - struct bio *bio; - unsigned int blkbits; - unsigned int blkfactor; - unsigned int start_zero_done; - int pages_in_io; - sector_t block_in_file; - unsigned int blocks_available; - int reap_counter; - sector_t final_block_in_request; - int boundary; - get_block_t *get_block; - loff_t logical_offset_in_bio; - sector_t final_block_in_bio; - sector_t next_block_for_io; - struct page *cur_page; - unsigned int cur_page_offset; - unsigned int cur_page_len; - sector_t cur_page_block; - loff_t cur_page_fs_offset; - struct iov_iter *iter; - unsigned int head; - unsigned int tail; - size_t from; - size_t to; -}; - -struct fat_floppy_defaults { - unsigned int nr_sectors; - unsigned int sec_per_clus; - unsigned int dir_entries; - unsigned int media; - unsigned int fat_length; -}; - -enum { - Opt_check_n = 0, - Opt_check_r___2 = 1, - Opt_check_s___2 = 2, - Opt_uid___7 = 3, - Opt_gid___8 = 4, - Opt_umask = 5, - Opt_dmask = 6, - Opt_fmask = 7, - Opt_allow_utime = 8, - Opt_codepage = 9, - Opt_usefree = 10, - Opt_nocase = 11, - Opt_quiet = 12, - Opt_showexec = 13, - Opt_debug___2 = 14, - Opt_immutable = 15, - Opt_dots = 16, - Opt_nodots = 17, - Opt_charset = 18, - Opt_shortname_lower = 19, - Opt_shortname_win95 = 20, - Opt_shortname_winnt = 21, - Opt_shortname_mixed = 22, - Opt_utf8_no = 23, - Opt_utf8_yes = 24, - Opt_uni_xl_no = 25, - Opt_uni_xl_yes = 26, - Opt_nonumtail_no = 27, - Opt_nonumtail_yes = 28, - Opt_obsolete = 29, - Opt_flush = 30, - Opt_tz_utc = 31, - Opt_rodir = 32, - Opt_err_cont = 33, - Opt_err_panic = 34, - Opt_err_ro = 35, - Opt_discard___2 = 36, - Opt_nfs = 37, - Opt_time_offset = 38, - Opt_nfs_stale_rw = 39, - Opt_nfs_nostale_ro = 40, - Opt_err___6 = 41, - Opt_dos1xfloppy = 42, -}; - -struct fat_bios_param_block { - u16 fat_sector_size; - u8 fat_sec_per_clus; - u16 fat_reserved; - u8 fat_fats; - u16 fat_dir_entries; - u16 fat_sectors; - u16 fat_fat_length; - u32 fat_total_sect; - u8 fat16_state; - u32 fat16_vol_id; - u32 fat32_length; - u32 fat32_root_cluster; - u16 fat32_info_sector; - u8 fat32_state; - u32 fat32_vol_id; -}; - -typedef void (*btf_trace_btrfs_transaction_commit)(void *, const struct btrfs_fs_info *); - -typedef void (*btf_trace_btrfs_inode_new)(void *, const struct inode *); - -typedef void (*btf_trace_btrfs_inode_request)(void *, const struct inode *); - -typedef void (*btf_trace_btrfs_inode_evict)(void *, const struct inode *); - -typedef void (*btf_trace_btrfs_get_extent)(void *, const struct btrfs_root *, const struct btrfs_inode *, const struct extent_map *); - -typedef void (*btf_trace_btrfs_handle_em_exist)(void *, const struct btrfs_fs_info *, const struct extent_map *, const struct extent_map *, u64, u64); - -typedef void (*btf_trace_btrfs_get_extent_show_fi_regular)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, u64); - -typedef void (*btf_trace_btrfs_truncate_show_fi_regular)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, u64); - -typedef void (*btf_trace_btrfs_get_extent_show_fi_inline)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, int, u64); - -typedef void (*btf_trace_btrfs_truncate_show_fi_inline)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, int, u64); - -typedef void (*btf_trace_btrfs_ordered_extent_add)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_remove)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_start)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_put)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_lookup)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_lookup_range)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_lookup_first_range)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_lookup_for_logging)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_lookup_first)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_split)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_dec_test_pending)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_ordered_extent_mark_finished)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); - -typedef void (*btf_trace_btrfs_finish_ordered_extent)(void *, const struct btrfs_inode *, u64, u64, bool); - -typedef void (*btf_trace___extent_writepage)(void *, const struct page *, const struct inode *, const struct writeback_control *); - -typedef void (*btf_trace_btrfs_writepage_end_io_hook)(void *, const struct btrfs_inode *, u64, u64, int); - -typedef void (*btf_trace_btrfs_sync_file)(void *, const struct file *, int); - -typedef void (*btf_trace_btrfs_sync_fs)(void *, const struct btrfs_fs_info *, int); - -typedef void (*btf_trace_btrfs_add_block_group)(void *, const struct btrfs_fs_info *, const struct btrfs_block_group *, int); - -typedef void (*btf_trace_add_delayed_tree_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_tree_ref *, int); - -typedef void (*btf_trace_run_delayed_tree_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_tree_ref *, int); - -typedef void (*btf_trace_add_delayed_data_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_data_ref *, int); - -typedef void (*btf_trace_run_delayed_data_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_data_ref *, int); - -typedef void (*btf_trace_add_delayed_ref_head)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_head *, int); - -typedef void (*btf_trace_run_delayed_ref_head)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_head *, int); - -typedef void (*btf_trace_btrfs_chunk_alloc)(void *, const struct btrfs_fs_info *, const struct btrfs_chunk_map *, u64, u64); - -typedef void (*btf_trace_btrfs_chunk_free)(void *, const struct btrfs_fs_info *, const struct btrfs_chunk_map *, u64, u64); - -typedef void (*btf_trace_btrfs_cow_block)(void *, const struct btrfs_root *, const struct extent_buffer *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_space_reservation)(void *, const struct btrfs_fs_info *, const char *, u64, u64, int); - -typedef void (*btf_trace_btrfs_trigger_flush)(void *, const struct btrfs_fs_info *, u64, u64, int, const char *); - -typedef void (*btf_trace_btrfs_flush_space)(void *, const struct btrfs_fs_info *, u64, u64, int, int, bool); - -typedef void (*btf_trace_btrfs_reserved_extent_alloc)(void *, const struct btrfs_fs_info *, u64, u64); - -typedef void (*btf_trace_btrfs_reserved_extent_free)(void *, const struct btrfs_fs_info *, u64, u64); - -typedef void (*btf_trace_find_free_extent)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *); - -typedef void (*btf_trace_find_free_extent_search_loop)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *); - -typedef void (*btf_trace_find_free_extent_have_block_group)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *, const struct btrfs_block_group *); - -typedef void (*btf_trace_btrfs_reserve_extent)(void *, const struct btrfs_block_group *, const struct find_free_extent_ctl *); - -typedef void (*btf_trace_btrfs_reserve_extent_cluster)(void *, const struct btrfs_block_group *, const struct find_free_extent_ctl *); - -typedef void (*btf_trace_btrfs_find_cluster)(void *, const struct btrfs_block_group *, u64, u64, u64, u64); - -typedef void (*btf_trace_btrfs_failed_cluster_setup)(void *, const struct btrfs_block_group *); - -typedef void (*btf_trace_btrfs_setup_cluster)(void *, const struct btrfs_block_group *, const struct btrfs_free_cluster *, u64, int); - -typedef void (*btf_trace_alloc_extent_state)(void *, const struct extent_state *, gfp_t, unsigned long); - -typedef void (*btf_trace_free_extent_state)(void *, const struct extent_state *, unsigned long); - -typedef void (*btf_trace_btrfs_work_queued)(void *, const struct btrfs_work *); - -typedef void (*btf_trace_btrfs_work_sched)(void *, const struct btrfs_work *); - -typedef void (*btf_trace_btrfs_all_work_done)(void *, const struct btrfs_fs_info *, const void *); - -typedef void (*btf_trace_btrfs_ordered_sched)(void *, const struct btrfs_work *); - -typedef void (*btf_trace_btrfs_workqueue_alloc)(void *, const struct btrfs_workqueue *, const char *); - -typedef void (*btf_trace_btrfs_workqueue_destroy)(void *, const struct btrfs_workqueue *); - -typedef void (*btf_trace_btrfs_qgroup_reserve_data)(void *, const struct inode *, u64, u64, u64, int); - -typedef void (*btf_trace_btrfs_qgroup_release_data)(void *, const struct inode *, u64, u64, u64, int); - -typedef void (*btf_trace_btrfs_qgroup_account_extents)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup_extent_record *); - -typedef void (*btf_trace_btrfs_qgroup_trace_extent)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup_extent_record *); - -typedef void (*btf_trace_qgroup_num_dirty_extents)(void *, const struct btrfs_fs_info *, u64, u64); - -typedef void (*btf_trace_btrfs_qgroup_account_extent)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64, u64); - -typedef void (*btf_trace_qgroup_update_counters)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup *, u64, u64); - -typedef void (*btf_trace_qgroup_update_reserve)(void *, struct btrfs_fs_info *, struct btrfs_qgroup *, s64, int); - -typedef void (*btf_trace_qgroup_meta_reserve)(void *, struct btrfs_root *, s64, int); - -typedef void (*btf_trace_qgroup_meta_convert)(void *, struct btrfs_root *, s64); - -typedef void (*btf_trace_qgroup_meta_free_all_pertrans)(void *, struct btrfs_root *); - -typedef void (*btf_trace_btrfs_prelim_ref_merge)(void *, const struct btrfs_fs_info *, const struct prelim_ref *, const struct prelim_ref *, u64); - -typedef void (*btf_trace_btrfs_prelim_ref_insert)(void *, const struct btrfs_fs_info *, const struct prelim_ref *, const struct prelim_ref *, u64); - -typedef void (*btf_trace_btrfs_inode_mod_outstanding_extents)(void *, const struct btrfs_root *, u64, int, unsigned int); - -typedef void (*btf_trace_btrfs_remove_block_group)(void *, const struct btrfs_block_group *); - -typedef void (*btf_trace_btrfs_add_unused_block_group)(void *, const struct btrfs_block_group *); - -typedef void (*btf_trace_btrfs_add_reclaim_block_group)(void *, const struct btrfs_block_group *); - -typedef void (*btf_trace_btrfs_reclaim_block_group)(void *, const struct btrfs_block_group *); - -typedef void (*btf_trace_btrfs_skip_unused_block_group)(void *, const struct btrfs_block_group *); - -typedef void (*btf_trace_btrfs_set_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int); - -typedef void (*btf_trace_btrfs_clear_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int); - -typedef void (*btf_trace_btrfs_convert_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int, unsigned int); - -typedef void (*btf_trace_btrfs_done_preemptive_reclaim)(void *, struct btrfs_fs_info *, const struct btrfs_space_info *); - -typedef void (*btf_trace_btrfs_fail_all_tickets)(void *, struct btrfs_fs_info *, const struct btrfs_space_info *); - -typedef void (*btf_trace_btrfs_reserve_ticket)(void *, const struct btrfs_fs_info *, u64, u64, u64, int, int); - -typedef void (*btf_trace_btrfs_tree_read_lock)(void *, const struct extent_buffer *, u64); - -typedef void (*btf_trace_btrfs_tree_lock)(void *, const struct extent_buffer *, u64); - -typedef void (*btf_trace_btrfs_tree_unlock)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_tree_read_unlock)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_tree_read_unlock_blocking)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_set_lock_blocking_read)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_set_lock_blocking_write)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_try_tree_read_lock)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_try_tree_write_lock)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_btrfs_tree_read_lock_atomic)(void *, const struct extent_buffer *); - -typedef void (*btf_trace_update_bytes_may_use)(void *, const struct btrfs_fs_info *, const struct btrfs_space_info *, u64, s64); - -typedef void (*btf_trace_update_bytes_pinned)(void *, const struct btrfs_fs_info *, const struct btrfs_space_info *, u64, s64); - -typedef void (*btf_trace_raid56_read)(void *, const struct btrfs_raid_bio *, const struct bio *, const struct raid56_bio_trace_info *); - -typedef void (*btf_trace_raid56_write)(void *, const struct btrfs_raid_bio *, const struct bio *, const struct raid56_bio_trace_info *); - -typedef void (*btf_trace_btrfs_insert_one_raid_extent)(void *, const struct btrfs_fs_info *, u64, u64, int); - -typedef void (*btf_trace_btrfs_raid_extent_delete)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64); - -typedef void (*btf_trace_btrfs_get_raid_extent_offset)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64); - -struct init_sequence { - int (*init_func)(); - void (*exit_func)(); -}; - -enum { - Opt_acl___2 = 0, - Opt_clear_cache = 1, - Opt_commit_interval = 2, - Opt_compress = 3, - Opt_compress_force = 4, - Opt_compress_force_type = 5, - Opt_compress_type = 6, - Opt_degraded = 7, - Opt_device = 8, - Opt_fatal_errors = 9, - Opt_flushoncommit = 10, - Opt_max_inline = 11, - Opt_barrier___2 = 12, - Opt_datacow = 13, - Opt_datasum = 14, - Opt_defrag = 15, - Opt_discard___3 = 16, - Opt_discard_mode = 17, - Opt_ratio = 18, - Opt_rescan_uuid_tree = 19, - Opt_skip_balance = 20, - Opt_space_cache = 21, - Opt_space_cache_version = 22, - Opt_ssd = 23, - Opt_ssd_spread = 24, - Opt_subvol = 25, - Opt_subvol_empty = 26, - Opt_subvolid = 27, - Opt_thread_pool = 28, - Opt_treelog = 29, - Opt_user_subvol_rm_allowed = 30, - Opt_rescue = 31, - Opt_usebackuproot = 32, - Opt_nologreplay = 33, - Opt_ignorebadroots = 34, - Opt_ignoredatacsums = 35, - Opt_rescue_all = 36, - Opt_enospc_debug = 37, - Opt_err___7 = 38, -}; - -enum { - Opt_discard_sync = 0, - Opt_discard_async = 1, -}; - -enum { - Opt_space_cache_v1 = 0, - Opt_space_cache_v2 = 1, -}; - -enum { - Opt_fatal_errors_panic = 0, - Opt_fatal_errors_bug = 1, -}; - -enum { - Opt_rescue_usebackuproot = 0, - Opt_rescue_nologreplay = 1, - Opt_rescue_ignorebadroots = 2, - Opt_rescue_ignoredatacsums = 3, - Opt_rescue_parameter_all = 4, -}; - -struct trace_event_raw_btrfs_transaction_commit { - struct trace_entry ent; - u8 fsid[16]; - u64 generation; - u64 root_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs__inode { - struct trace_entry ent; - u8 fsid[16]; - u64 ino; - u64 blocks; - u64 disk_i_size; - u64 generation; - u64 last_trans; - u64 logged_trans; - u64 root_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs_get_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 root_objectid; - u64 ino; - u64 start; - u64 len; - u64 orig_start; - u64 block_start; - u64 block_len; - u32 flags; - int refs; - char __data[0]; -}; - -struct trace_event_raw_btrfs_handle_em_exist { - struct trace_entry ent; - u8 fsid[16]; - u64 e_start; - u64 e_len; - u64 map_start; - u64 map_len; - u64 start; - u64 len; - char __data[0]; -}; - -struct trace_event_raw_btrfs__file_extent_item_regular { - struct trace_entry ent; - u8 fsid[16]; - u64 root_obj; - u64 ino; - loff_t isize; - u64 disk_isize; - u64 num_bytes; - u64 ram_bytes; - u64 disk_bytenr; - u64 disk_num_bytes; - u64 extent_offset; - u8 extent_type; - u8 compression; - u64 extent_start; - u64 extent_end; - char __data[0]; -}; - -struct trace_event_raw_btrfs__file_extent_item_inline { - struct trace_entry ent; - u8 fsid[16]; - u64 root_obj; - u64 ino; - loff_t isize; - u64 disk_isize; - u8 extent_type; - u8 compression; - u64 extent_start; - u64 extent_end; - char __data[0]; -}; - -struct trace_event_raw_btrfs__ordered_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 ino; - u64 file_offset; - u64 start; - u64 len; - u64 disk_len; - u64 bytes_left; - unsigned long flags; - int compress_type; - int refs; - u64 root_objectid; - u64 truncated_len; - char __data[0]; -}; - -struct trace_event_raw_btrfs_finish_ordered_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 ino; - u64 start; - u64 len; - bool uptodate; - u64 root_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs__writepage { - struct trace_entry ent; - u8 fsid[16]; - u64 ino; - unsigned long index; - long nr_to_write; - long pages_skipped; - loff_t range_start; - loff_t range_end; - char for_kupdate; - char for_reclaim; - char range_cyclic; - unsigned long writeback_index; - u64 root_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs_writepage_end_io_hook { - struct trace_entry ent; - u8 fsid[16]; - u64 ino; - u64 start; - u64 end; - int uptodate; - u64 root_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs_sync_file { - struct trace_entry ent; - u8 fsid[16]; - u64 ino; - u64 parent; - int datasync; - u64 root_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs_sync_fs { - struct trace_entry ent; - u8 fsid[16]; - int wait; - char __data[0]; -}; - -struct trace_event_raw_btrfs_add_block_group { - struct trace_entry ent; - u8 fsid[16]; - u64 offset; - u64 size; - u64 flags; - u64 bytes_used; - u64 bytes_super; - int create; - char __data[0]; -}; - -struct trace_event_raw_btrfs_delayed_tree_ref { - struct trace_entry ent; - u8 fsid[16]; - u64 bytenr; - u64 num_bytes; - int action; - u64 parent; - u64 ref_root; - int level; - int type; - u64 seq; - char __data[0]; -}; - -struct trace_event_raw_btrfs_delayed_data_ref { - struct trace_entry ent; - u8 fsid[16]; - u64 bytenr; - u64 num_bytes; - int action; - u64 parent; - u64 ref_root; - u64 owner; - u64 offset; - int type; - u64 seq; - char __data[0]; -}; - -struct trace_event_raw_btrfs_delayed_ref_head { - struct trace_entry ent; - u8 fsid[16]; - u64 bytenr; - u64 num_bytes; - int action; - int is_data; - char __data[0]; -}; - -struct trace_event_raw_btrfs__chunk { - struct trace_entry ent; - u8 fsid[16]; - int num_stripes; - u64 type; - int sub_stripes; - u64 offset; - u64 size; - u64 root_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs_cow_block { - struct trace_entry ent; - u8 fsid[16]; - u64 root_objectid; - u64 buf_start; - int refs; - u64 cow_start; - int buf_level; - int cow_level; - char __data[0]; -}; - -struct trace_event_raw_btrfs_space_reservation { - struct trace_entry ent; - u8 fsid[16]; - u32 __data_loc_type; - u64 val; - u64 bytes; - int reserve; - char __data[0]; -}; - -struct trace_event_raw_btrfs_trigger_flush { - struct trace_entry ent; - u8 fsid[16]; - u64 flags; - u64 bytes; - int flush; - u32 __data_loc_reason; - char __data[0]; -}; - -struct trace_event_raw_btrfs_flush_space { - struct trace_entry ent; - u8 fsid[16]; - u64 flags; - u64 num_bytes; - int state; - int ret; - bool for_preempt; - char __data[0]; -}; - -struct trace_event_raw_btrfs__reserved_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 start; - u64 len; - char __data[0]; -}; - -struct trace_event_raw_find_free_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 root_objectid; - u64 num_bytes; - u64 empty_size; - u64 flags; - char __data[0]; -}; - -struct trace_event_raw_find_free_extent_search_loop { - struct trace_entry ent; - u8 fsid[16]; - u64 root_objectid; - u64 num_bytes; - u64 empty_size; - u64 flags; - u64 loop; - char __data[0]; -}; - -struct trace_event_raw_find_free_extent_have_block_group { - struct trace_entry ent; - u8 fsid[16]; - u64 root_objectid; - u64 num_bytes; - u64 empty_size; - u64 flags; - u64 loop; - bool hinted; - u64 bg_start; - u64 bg_flags; - char __data[0]; -}; - -struct trace_event_raw_btrfs__reserve_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 bg_objectid; - u64 flags; - int bg_size_class; - u64 start; - u64 len; - u64 loop; - bool hinted; - int size_class; - char __data[0]; -}; - -struct trace_event_raw_btrfs_find_cluster { - struct trace_entry ent; - u8 fsid[16]; - u64 bg_objectid; - u64 flags; - u64 start; - u64 bytes; - u64 empty_size; - u64 min_bytes; - char __data[0]; -}; - -struct trace_event_raw_btrfs_failed_cluster_setup { - struct trace_entry ent; - u8 fsid[16]; - u64 bg_objectid; - char __data[0]; -}; - -struct trace_event_raw_btrfs_setup_cluster { - struct trace_entry ent; - u8 fsid[16]; - u64 bg_objectid; - u64 flags; - u64 start; - u64 max_size; - u64 size; - int bitmap; - char __data[0]; -}; - -struct trace_event_raw_alloc_extent_state { - struct trace_entry ent; - const struct extent_state *state; - unsigned long mask; - const void *ip; - char __data[0]; -}; - -struct trace_event_raw_free_extent_state { - struct trace_entry ent; - const struct extent_state *state; - const void *ip; - char __data[0]; -}; - -struct trace_event_raw_btrfs__work { - struct trace_entry ent; - u8 fsid[16]; - const void *work; - const void *wq; - const void *func; - const void *ordered_func; - const void *normal_work; - char __data[0]; -}; - -struct trace_event_raw_btrfs__work__done { - struct trace_entry ent; - u8 fsid[16]; - const void *wtag; - char __data[0]; -}; - -struct trace_event_raw_btrfs_workqueue { - struct trace_entry ent; - u8 fsid[16]; - const void *wq; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_btrfs_workqueue_done { - struct trace_entry ent; - u8 fsid[16]; - const void *wq; - char __data[0]; -}; - -struct trace_event_raw_btrfs__qgroup_rsv_data { - struct trace_entry ent; - u8 fsid[16]; - u64 rootid; - u64 ino; - u64 start; - u64 len; - u64 reserved; - int op; - char __data[0]; -}; - -struct trace_event_raw_btrfs_qgroup_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 bytenr; - u64 num_bytes; - char __data[0]; -}; - -struct trace_event_raw_qgroup_num_dirty_extents { - struct trace_entry ent; - u8 fsid[16]; - u64 transid; - u64 num_dirty_extents; - char __data[0]; -}; - -struct trace_event_raw_btrfs_qgroup_account_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 transid; - u64 bytenr; - u64 num_bytes; - u64 nr_old_roots; - u64 nr_new_roots; - char __data[0]; -}; - -struct trace_event_raw_qgroup_update_counters { - struct trace_entry ent; - u8 fsid[16]; - u64 qgid; - u64 old_rfer; - u64 old_excl; - u64 cur_old_count; - u64 cur_new_count; - char __data[0]; -}; - -struct trace_event_raw_qgroup_update_reserve { - struct trace_entry ent; - u8 fsid[16]; - u64 qgid; - u64 cur_reserved; - s64 diff; - int type; - char __data[0]; -}; - -struct trace_event_raw_qgroup_meta_reserve { - struct trace_entry ent; - u8 fsid[16]; - u64 refroot; - s64 diff; - int type; - char __data[0]; -}; - -struct trace_event_raw_qgroup_meta_convert { - struct trace_entry ent; - u8 fsid[16]; - u64 refroot; - s64 diff; - char __data[0]; -}; - -struct trace_event_raw_qgroup_meta_free_all_pertrans { - struct trace_entry ent; - u8 fsid[16]; - u64 refroot; - s64 diff; - int type; - char __data[0]; -}; - -struct trace_event_raw_btrfs__prelim_ref { - struct trace_entry ent; - u8 fsid[16]; - u64 root_id; - u64 objectid; - u8 type; - u64 offset; - int level; - int old_count; - u64 parent; - u64 bytenr; - int mod_count; - u64 tree_size; - char __data[0]; -}; - -struct trace_event_raw_btrfs_inode_mod_outstanding_extents { - struct trace_entry ent; - u8 fsid[16]; - u64 root_objectid; - u64 ino; - int mod; - unsigned int outstanding; - char __data[0]; -}; - -struct trace_event_raw_btrfs__block_group { - struct trace_entry ent; - u8 fsid[16]; - u64 bytenr; - u64 len; - u64 used; - u64 flags; - char __data[0]; -}; - -struct trace_event_raw_btrfs_set_extent_bit { - struct trace_entry ent; - u8 fsid[16]; - unsigned int owner; - u64 ino; - u64 rootid; - u64 start; - u64 len; - unsigned int set_bits; - char __data[0]; -}; - -struct trace_event_raw_btrfs_clear_extent_bit { - struct trace_entry ent; - u8 fsid[16]; - unsigned int owner; - u64 ino; - u64 rootid; - u64 start; - u64 len; - unsigned int clear_bits; - char __data[0]; -}; - -struct trace_event_raw_btrfs_convert_extent_bit { - struct trace_entry ent; - u8 fsid[16]; - unsigned int owner; - u64 ino; - u64 rootid; - u64 start; - u64 len; - unsigned int set_bits; - unsigned int clear_bits; - char __data[0]; -}; - -struct trace_event_raw_btrfs_dump_space_info { - struct trace_entry ent; - u8 fsid[16]; - u64 flags; - u64 total_bytes; - u64 bytes_used; - u64 bytes_pinned; - u64 bytes_reserved; - u64 bytes_may_use; - u64 bytes_readonly; - u64 reclaim_size; - int clamp; - u64 global_reserved; - u64 trans_reserved; - u64 delayed_refs_reserved; - u64 delayed_reserved; - u64 free_chunk_space; - u64 delalloc_bytes; - u64 ordered_bytes; - char __data[0]; -}; - -struct trace_event_raw_btrfs_reserve_ticket { - struct trace_entry ent; - u8 fsid[16]; - u64 flags; - u64 bytes; - u64 start_ns; - int flush; - int error; - char __data[0]; -}; - -struct trace_event_raw_btrfs_sleep_tree_lock { - struct trace_entry ent; - u8 fsid[16]; - u64 block; - u64 generation; - u64 start_ns; - u64 end_ns; - u64 diff_ns; - u64 owner; - int is_log_tree; - char __data[0]; -}; - -struct trace_event_raw_btrfs_locking_events { - struct trace_entry ent; - u8 fsid[16]; - u64 block; - u64 generation; - u64 owner; - int is_log_tree; - char __data[0]; -}; - -struct trace_event_raw_btrfs__space_info_update { - struct trace_entry ent; - u8 fsid[16]; - u64 type; - u64 old; - s64 diff; - char __data[0]; -}; - -struct trace_event_raw_btrfs_raid56_bio { - struct trace_entry ent; - u8 fsid[16]; - u64 full_stripe; - u64 physical; - u64 devid; - u32 offset; - u32 len; - u8 opf; - u8 total_stripes; - u8 real_stripes; - u8 nr_data; - u8 stripe_nr; - char __data[0]; -}; - -struct trace_event_raw_btrfs_insert_one_raid_extent { - struct trace_entry ent; - u8 fsid[16]; - u64 logical; - u64 length; - int num_stripes; - char __data[0]; -}; - -struct trace_event_raw_btrfs_raid_extent_delete { - struct trace_entry ent; - u8 fsid[16]; - u64 start; - u64 end; - u64 found_start; - u64 found_end; - char __data[0]; -}; - -struct trace_event_raw_btrfs_get_raid_extent_offset { - struct trace_entry ent; - u8 fsid[16]; - u64 logical; - u64 length; - u64 physical; - u64 devid; - char __data[0]; -}; - -struct trace_event_data_offsets_btrfs_space_reservation { - u32 type; - const void *type_ptr_; -}; - -struct trace_event_data_offsets_btrfs_trigger_flush { - u32 reason; - const void *reason_ptr_; -}; - -struct trace_event_data_offsets_btrfs_workqueue { - u32 name; - const void *name_ptr_; -}; - -struct btrfs_fs_context { - char *subvol_name; - u64 subvol_objectid; - u64 max_inline; - u32 commit_interval; - u32 metadata_ratio; - u32 thread_pool_size; - unsigned long mount_opt; - unsigned long compress_type: 4; - unsigned int compress_level; - refcount_t refs; -}; - -struct trace_event_data_offsets_btrfs_transaction_commit {}; - -struct trace_event_data_offsets_btrfs__inode {}; - -struct trace_event_data_offsets_btrfs_get_extent {}; - -struct trace_event_data_offsets_btrfs_handle_em_exist {}; - -struct trace_event_data_offsets_btrfs__file_extent_item_regular {}; - -struct trace_event_data_offsets_btrfs__file_extent_item_inline {}; - -struct trace_event_data_offsets_btrfs__ordered_extent {}; - -struct trace_event_data_offsets_btrfs_finish_ordered_extent {}; - -struct trace_event_data_offsets_btrfs__writepage {}; - -struct trace_event_data_offsets_btrfs_writepage_end_io_hook {}; - -struct trace_event_data_offsets_btrfs_sync_file {}; - -struct trace_event_data_offsets_btrfs_sync_fs {}; - -struct trace_event_data_offsets_btrfs_add_block_group {}; - -struct trace_event_data_offsets_btrfs_delayed_tree_ref {}; - -struct trace_event_data_offsets_btrfs_delayed_data_ref {}; - -struct trace_event_data_offsets_btrfs_delayed_ref_head {}; - -struct trace_event_data_offsets_btrfs__chunk {}; - -struct trace_event_data_offsets_btrfs_cow_block {}; - -struct trace_event_data_offsets_btrfs_flush_space {}; - -struct trace_event_data_offsets_btrfs__reserved_extent {}; - -struct trace_event_data_offsets_find_free_extent {}; - -struct trace_event_data_offsets_find_free_extent_search_loop {}; - -struct trace_event_data_offsets_find_free_extent_have_block_group {}; - -struct trace_event_data_offsets_btrfs__reserve_extent {}; - -struct trace_event_data_offsets_btrfs_find_cluster {}; - -struct trace_event_data_offsets_btrfs_failed_cluster_setup {}; - -struct trace_event_data_offsets_btrfs_setup_cluster {}; - -struct trace_event_data_offsets_alloc_extent_state {}; - -struct trace_event_data_offsets_free_extent_state {}; - -struct trace_event_data_offsets_btrfs__work {}; - -struct trace_event_data_offsets_btrfs__work__done {}; - -struct trace_event_data_offsets_btrfs_workqueue_done {}; - -struct trace_event_data_offsets_btrfs__qgroup_rsv_data {}; - -struct trace_event_data_offsets_btrfs_qgroup_extent {}; - -struct trace_event_data_offsets_qgroup_num_dirty_extents {}; - -struct trace_event_data_offsets_btrfs_qgroup_account_extent {}; - -struct trace_event_data_offsets_qgroup_update_counters {}; - -struct trace_event_data_offsets_qgroup_update_reserve {}; - -struct trace_event_data_offsets_qgroup_meta_reserve {}; - -struct trace_event_data_offsets_qgroup_meta_convert {}; - -struct trace_event_data_offsets_qgroup_meta_free_all_pertrans {}; - -struct trace_event_data_offsets_btrfs__prelim_ref {}; - -struct trace_event_data_offsets_btrfs_inode_mod_outstanding_extents {}; - -struct trace_event_data_offsets_btrfs__block_group {}; - -struct trace_event_data_offsets_btrfs_set_extent_bit {}; - -struct trace_event_data_offsets_btrfs_clear_extent_bit {}; - -struct trace_event_data_offsets_btrfs_convert_extent_bit {}; - -struct trace_event_data_offsets_btrfs_dump_space_info {}; - -struct trace_event_data_offsets_btrfs_reserve_ticket {}; - -struct trace_event_data_offsets_btrfs_sleep_tree_lock {}; - -struct trace_event_data_offsets_btrfs_locking_events {}; - -struct trace_event_data_offsets_btrfs__space_info_update {}; - -struct trace_event_data_offsets_btrfs_raid56_bio {}; - -struct trace_event_data_offsets_btrfs_insert_one_raid_extent {}; - -struct trace_event_data_offsets_btrfs_raid_extent_delete {}; - -struct trace_event_data_offsets_btrfs_get_raid_extent_offset {}; - -enum bfqq_state_flags { - BFQQF_just_created = 0, - BFQQF_busy = 1, - BFQQF_wait_request = 2, - BFQQF_non_blocking_wait_rq = 3, - BFQQF_fifo_expire = 4, - BFQQF_has_short_ttime = 5, - BFQQF_sync = 6, - BFQQF_IO_bound = 7, - BFQQF_in_large_burst = 8, - BFQQF_softrt_update = 9, - BFQQF_coop = 10, - BFQQF_split_coop = 11, -}; - -struct sysrq_state { - struct input_handle handle; - struct work_struct reinject_work; - unsigned long key_down[12]; - unsigned int alt; - unsigned int alt_use; - unsigned int shift; - unsigned int shift_use; - bool active; - bool need_reinject; - bool reinjecting; - bool reset_canceled; - bool reset_requested; - unsigned long reset_keybit[12]; - int reset_seq_len; - int reset_seq_cnt; - int reset_seq_version; - struct timer_list keyreset_timer; -}; - -struct fixed_mdio_bus { - struct mii_bus *mii_bus; - struct list_head phys; -}; - -struct fixed_phy { - int addr; - struct phy_device *phydev; - struct fixed_phy_status status; - bool no_carrier; - int (*link_update)(struct net_device *, struct fixed_phy_status *); - struct list_head node; - struct gpio_desc *link_gpiod; -}; - -enum { - IWL_PHY_CALIBRATE_DC_CMD = 8, - IWL_PHY_CALIBRATE_LO_CMD = 9, - IWL_PHY_CALIBRATE_TX_IQ_CMD = 11, - IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD = 15, - IWL_PHY_CALIBRATE_BASE_BAND_CMD = 16, - IWL_PHY_CALIBRATE_TX_IQ_PERD_CMD = 17, - IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD = 18, -}; - -struct iwl_bt_coex_prot_env_cmd { - u8 action; - u8 type; - u8 reserved[2]; -}; - -struct iwl_calib_temperature_offset_v2_cmd { - struct iwl_calib_hdr hdr; - __le16 radio_sensor_offset_high; - __le16 radio_sensor_offset_low; - __le16 burntVoltageRef; - __le16 reserved; -}; - -struct iwl_calib_temperature_offset_cmd { - struct iwl_calib_hdr hdr; - __le16 radio_sensor_offset; - __le16 reserved; -}; - -struct iwl_wimax_coex_event_entry { - u8 request_prio; - u8 win_medium_prio; - u8 reserved; - u8 flags; -}; - -struct iwl_wimax_coex_cmd { - u8 flags; - u8 reserved[3]; - struct iwl_wimax_coex_event_entry sta_prio[16]; -}; - -struct iwl_calib_xtal_freq_cmd { - struct iwl_calib_hdr hdr; - u8 cap_pin1; - u8 cap_pin2; - u8 pad[2]; -}; - -struct iwl_bt_coex_prio_table_cmd { - u8 prio_tbl[16]; -}; - -struct iwl_alive_data { - bool valid; - u8 subtype; -}; - -struct iwl_alive_resp { - u8 ucode_minor; - u8 ucode_major; - __le16 reserved1; - u8 sw_rev[8]; - u8 ver_type; - u8 ver_subtype; - __le16 reserved2; - __le32 log_event_table_ptr; - __le32 error_event_table_ptr; - __le32 timestamp; - __le32 is_valid; -}; - -struct scsi_eh_save { - int result; - unsigned int resid_len; - int eh_eflags; - enum dma_data_direction data_direction; - unsigned int underflow; - unsigned char cmd_len; - unsigned char prot_op; - unsigned char cmnd[32]; - struct scsi_data_buffer sdb; - struct scatterlist sense_sgl; -}; - -enum sanyo_state { - STATE_INACTIVE___9 = 0, - STATE_HEADER_SPACE___4 = 1, - STATE_BIT_PULSE___5 = 2, - STATE_BIT_SPACE___5 = 3, - STATE_TRAILER_PULSE___4 = 4, - STATE_TRAILER_SPACE___4 = 5, -}; - -struct efifb_dmi_info { - char *optname; - unsigned long base; - int stride; - int width; - int height; - int flags; -}; - -enum { - M_I17 = 0, - M_I20 = 1, - M_I20_SR = 2, - M_I24 = 3, - M_I24_8_1 = 4, - M_I24_10_1 = 5, - M_I27_11_1 = 6, - M_MINI = 7, - M_MINI_3_1 = 8, - M_MINI_4_1 = 9, - M_MB = 10, - M_MB_2 = 11, - M_MB_3 = 12, - M_MB_5_1 = 13, - M_MB_6_1 = 14, - M_MB_7_1 = 15, - M_MB_SR = 16, - M_MBA = 17, - M_MBA_3 = 18, - M_MBP = 19, - M_MBP_2 = 20, - M_MBP_2_2 = 21, - M_MBP_SR = 22, - M_MBP_4 = 23, - M_MBP_5_1 = 24, - M_MBP_5_2 = 25, - M_MBP_5_3 = 26, - M_MBP_6_1 = 27, - M_MBP_6_2 = 28, - M_MBP_7_1 = 29, - M_MBP_8_2 = 30, - M_UNKNOWN = 31, -}; - -enum { - OVERRIDE_NONE = 0, - OVERRIDE_BASE = 1, - OVERRIDE_STRIDE = 2, - OVERRIDE_HEIGHT = 4, - OVERRIDE_WIDTH = 8, -}; - -enum nft_lookup_attributes { - NFTA_LOOKUP_UNSPEC = 0, - NFTA_LOOKUP_SET = 1, - NFTA_LOOKUP_SREG = 2, - NFTA_LOOKUP_DREG = 3, - NFTA_LOOKUP_SET_ID = 4, - NFTA_LOOKUP_FLAGS = 5, - __NFTA_LOOKUP_MAX = 6, -}; - -enum nft_lookup_flags { - NFT_LOOKUP_F_INV = 1, -}; - -struct nft_lookup { - struct nft_set *set; - u8 sreg; - u8 dreg; - bool dreg_set; - bool invert; - struct nft_set_binding binding; -}; - -struct ipfrag_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - }; - struct sk_buff *next_frag; - int frag_run_len; - int ip_defrag_offset; -}; - -struct irq_devres { - unsigned int irq; - void *dev_id; -}; - -struct irq_desc_devres { - unsigned int from; - unsigned int cnt; -}; - -typedef void (*btf_trace_module_load)(void *, struct module *); - -typedef void (*btf_trace_module_free)(void *, struct module *); - -typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); - -typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); - -typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); - -enum mod_license { - NOT_GPL_ONLY = 0, - GPL_ONLY = 1, -}; - -struct symsearch { - const struct kernel_symbol *start; - const struct kernel_symbol *stop; - const s32 *crcs; - enum mod_license license; -}; - -enum fail_dup_mod_reason { - FAIL_DUP_MOD_BECOMING = 0, - FAIL_DUP_MOD_LOAD = 1, -}; - -struct trace_event_raw_module_load { - struct trace_entry ent; - unsigned int taints; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_module_free { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_module_refcnt { - struct trace_entry ent; - unsigned long ip; - int refcnt; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_module_request { - struct trace_entry ent; - unsigned long ip; - bool wait; - u32 __data_loc_name; - char __data[0]; -}; - -struct mod_initfree { - struct llist_node node; - void *init_text; - void *init_data; - void *init_rodata; -}; - -struct idempotent { - const void *cookie; - struct hlist_node entry; - struct completion complete; - int ret; -}; - -struct trace_event_data_offsets_module_load { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_module_free { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_module_refcnt { - u32 name; - const void *name_ptr_; -}; - -struct trace_event_data_offsets_module_request { - u32 name; - const void *name_ptr_; -}; - -struct find_symbol_arg { - const char *name; - bool gplok; - bool warn; - struct module *owner; - const s32 *crc; - const struct kernel_symbol *sym; - enum mod_license license; -}; - -struct bpf_queue_stack { - struct bpf_map map; - raw_spinlock_t lock; - u32 head; - u32 tail; - u32 size; - long: 0; - char elements[0]; -}; - -typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); - -typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long); - -typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); - -typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); - -struct trace_event_raw_vm_unmapped_area { - struct trace_entry ent; - unsigned long addr; - unsigned long total_vm; - unsigned long flags; - unsigned long length; - unsigned long low_limit; - unsigned long high_limit; - unsigned long align_mask; - unsigned long align_offset; - char __data[0]; -}; - -struct trace_event_raw_vma_mas_szero { - struct trace_entry ent; - struct maple_tree *mt; - unsigned long start; - unsigned long end; - char __data[0]; -}; - -struct trace_event_raw_vma_store { - struct trace_entry ent; - struct maple_tree *mt; - struct vm_area_struct *vma; - unsigned long vm_start; - unsigned long vm_end; - char __data[0]; -}; - -struct trace_event_raw_exit_mmap { - struct trace_entry ent; - struct mm_struct *mm; - struct maple_tree *mt; - char __data[0]; -}; - -struct vma_prepare { - struct vm_area_struct *vma; - struct vm_area_struct *adj_next; - struct file *file; - struct address_space *mapping; - struct anon_vma *anon_vma; - struct vm_area_struct *insert; - struct vm_area_struct *remove; - struct vm_area_struct *remove2; -}; - -struct trace_event_data_offsets_vm_unmapped_area {}; - -struct trace_event_data_offsets_vma_mas_szero {}; - -struct trace_event_data_offsets_vma_store {}; - -struct trace_event_data_offsets_exit_mmap {}; - -struct epitem; - -struct eventpoll { - struct mutex mtx; - wait_queue_head_t wq; - wait_queue_head_t poll_wait; - struct list_head rdllist; - rwlock_t lock; - struct rb_root_cached rbr; - struct epitem *ovflist; - struct wakeup_source *ws; - struct user_struct *user; - struct file *file; - u64 gen; - struct hlist_head refs; - refcount_t refcount; - unsigned int napi_id; - u32 busy_poll_usecs; - u16 busy_poll_budget; - bool prefer_busy_poll; - u8 nests; -}; - -struct epoll_filefd { - struct file *file; - int fd; -} __attribute__((packed)); - -struct eppoll_entry; - -struct epitem { - union { - struct rb_node rbn; - struct callback_head rcu; - }; - struct list_head rdllink; - struct epitem *next; - struct epoll_filefd ffd; - bool dying; - struct eppoll_entry *pwqlist; - struct eventpoll *ep; - struct hlist_node fllink; - struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; - struct epoll_event event; -}; - -struct eppoll_entry { - struct eppoll_entry *next; - struct epitem *base; - wait_queue_entry_t wait; - wait_queue_head_t *whead; -}; - -struct epitems_head { - struct hlist_head epitems; - struct epitems_head *next; -}; - -struct ep_pqueue { - poll_table pt; - struct epitem *epi; -}; - -struct epoll_params { - __u32 busy_poll_usecs; - __u16 busy_poll_budget; - __u8 prefer_busy_poll; - __u8 __pad; -}; - -enum reloc_stage { - MOVE_DATA_EXTENTS = 0, - UPDATE_DATA_PTRS = 1, -}; - -struct mapping_node { - struct { - struct rb_node rb_node; - u64 bytenr; - }; - void *data; -}; - -struct file_extent_cluster { - u64 start; - u64 end; - u64 boundary[128]; - unsigned int nr; - u64 owning_root; -}; - -struct mapping_tree { - struct rb_root rb_root; - spinlock_t lock; -}; - -struct reloc_control { - struct btrfs_block_group *block_group; - struct btrfs_root *extent_root; - struct inode *data_inode; - struct btrfs_block_rsv *block_rsv; - struct btrfs_backref_cache backref_cache; - struct file_extent_cluster cluster; - struct extent_io_tree processed_blocks; - struct mapping_tree reloc_root_tree; - struct list_head reloc_roots; - struct list_head dirty_subvol_roots; - u64 merging_rsv_size; - u64 nodes_relocated; - u64 reserved_bytes; - u64 search_start; - u64 extents_found; - enum reloc_stage stage; - bool create_reloc_tree; - bool merge_reloc_tree; - bool found_file_extent; -}; - -struct tree_block { - struct { - struct rb_node rb_node; - u64 bytenr; - }; - u64 owner; - struct btrfs_key key; - u8 level; - bool key_ready; -}; - -struct rq_qos_wait_data { - struct wait_queue_entry wq; - struct task_struct *task; - struct rq_wait *rqw; - acquire_inflight_cb_t *cb; - void *private_data; - bool got_token; -}; - -struct io_uring_rsrc_update { - __u32 offset; - __u32 resv; - __u64 data; -}; - -struct acpi_ioremap { - struct list_head list; - void *virt; - acpi_physical_address phys; - acpi_size size; - union { - unsigned long refcount; - struct rcu_work rwork; - } track; -}; - -struct acpi_os_dpc { - acpi_osd_exec_callback function; - void *context; - struct work_struct work; -}; - -struct acpi_hp_work { - struct work_struct work; - struct acpi_device *adev; - u32 src; -}; - -struct pericom8250 { - void *virt; - unsigned int nr; - int line[0]; -}; - -struct virtnet_stat_desc { - char desc[32]; - size_t offset; -}; - -struct rx_queue_attribute { - struct attribute attr; - ssize_t (*show)(struct netdev_rx_queue *, char *); - ssize_t (*store)(struct netdev_rx_queue *, const char *, size_t); -}; - -enum dim_cq_period_mode { - DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, - DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, - DIM_CQ_PERIOD_NUM_MODES = 2, -}; - -enum dim_state { - DIM_START_MEASURE = 0, - DIM_MEASURE_IN_PROGRESS = 1, - DIM_APPLY_NEW_PROFILE = 2, -}; - -struct virtnet_interrupt_coalesce { - u32 max_packets; - u32 max_usecs; -}; - -struct send_queue; - -struct receive_queue; - -struct control_buf; - -struct virtnet_info { - struct virtio_device *vdev; - struct virtqueue *cvq; - struct net_device *dev; - struct send_queue *sq; - struct receive_queue *rq; - unsigned int status; - u16 max_queue_pairs; - u16 curr_queue_pairs; - u16 xdp_queue_pairs; - bool xdp_enabled; - bool big_packets; - unsigned int big_packets_num_skbfrags; - bool mergeable_rx_bufs; - bool has_rss; - bool has_rss_hash_report; - u8 rss_key_size; - u16 rss_indir_table_size; - u32 rss_hash_types_supported; - u32 rss_hash_types_saved; - bool has_cvq; - bool any_header_sg; - u8 hdr_len; - struct delayed_work refill; - bool refill_enabled; - spinlock_t refill_lock; - struct work_struct config_work; - struct work_struct rx_mode_work; - bool rx_mode_work_enabled; - bool affinity_hint_set; - struct hlist_node node; - struct hlist_node node_dead; - struct control_buf *ctrl; - u8 duplex; - u32 speed; - bool rx_dim_enabled; - struct virtnet_interrupt_coalesce intr_coal_tx; - struct virtnet_interrupt_coalesce intr_coal_rx; - unsigned long guest_offloads; - unsigned long guest_offloads_capable; - struct failover *failover; -}; - -struct virtnet_sq_stats { - struct u64_stats_sync syncp; - u64_stats_t packets; - u64_stats_t bytes; - u64_stats_t xdp_tx; - u64_stats_t xdp_tx_drops; - u64_stats_t kicks; - u64_stats_t tx_timeouts; -}; - -struct send_queue { - struct virtqueue *vq; - struct scatterlist sg[19]; - char name[16]; - struct virtnet_sq_stats stats; - struct virtnet_interrupt_coalesce intr_coal; - struct napi_struct napi; - bool reset; -}; - -struct virtnet_rq_stats { - struct u64_stats_sync syncp; - u64_stats_t packets; - u64_stats_t bytes; - u64_stats_t drops; - u64_stats_t xdp_packets; - u64_stats_t xdp_tx; - u64_stats_t xdp_redirects; - u64_stats_t xdp_drops; - u64_stats_t kicks; -}; - -struct dim_stats { - int ppms; - int bpms; - int epms; - int cpms; - int cpe_ratio; -}; - -struct dim_sample { - ktime_t time; - u32 pkt_ctr; - u32 byte_ctr; - u16 event_ctr; - u32 comp_ctr; -}; - -struct dim { - u8 state; - struct dim_stats prev_stats; - struct dim_sample start_sample; - struct dim_sample measuring_sample; - struct work_struct work; - void *priv; - u8 profile_ix; - u8 mode; - u8 tune_state; - u8 steps_right; - u8 steps_left; - u8 tired; -}; - -struct ewma_pkt_len { - unsigned long internal; -}; - -struct virtnet_rq_dma; - -struct receive_queue { - struct virtqueue *vq; - struct napi_struct napi; - struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; - struct virtnet_rq_stats stats; - u16 calls; - bool dim_enabled; - struct dim dim; - u32 packets_in_napi; - struct virtnet_interrupt_coalesce intr_coal; - struct page *pages; - struct ewma_pkt_len mrg_avg_pkt_len; - struct page_frag alloc_frag; - struct scatterlist sg[19]; - unsigned int min_buf_len; - char name[16]; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; - struct virtnet_rq_dma *last_dma; - bool do_dma; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct virtnet_rq_dma { - dma_addr_t addr; - u32 ref; - u16 len; - u16 need_sync; -}; - -struct virtio_net_ctrl_hdr { - __u8 class; - __u8 cmd; -}; - -typedef __u8 virtio_net_ctrl_ack; - -struct virtio_net_ctrl_mq { - __virtio16 virtqueue_pairs; -}; - -struct virtio_net_ctrl_rss { - u32 hash_types; - u16 indirection_table_mask; - u16 unclassified_queue; - u16 indirection_table[128]; - u16 max_tx_vq; - u8 hash_key_length; - u8 key[40]; -}; - -struct virtio_net_ctrl_coal_tx { - __le32 tx_max_packets; - __le32 tx_usecs; -}; - -struct virtio_net_ctrl_coal_rx { - __le32 rx_max_packets; - __le32 rx_usecs; -}; - -struct virtio_net_ctrl_coal { - __le32 max_packets; - __le32 max_usecs; -}; - -struct virtio_net_ctrl_coal_vq { - __le16 vqn; - __le16 reserved; - struct virtio_net_ctrl_coal coal; -}; - -struct control_buf { - struct virtio_net_ctrl_hdr hdr; - virtio_net_ctrl_ack status; - struct virtio_net_ctrl_mq mq; - u8 promisc; - u8 allmulti; - __virtio16 vid; - __virtio64 offloads; - struct virtio_net_ctrl_rss rss; - struct virtio_net_ctrl_coal_tx coal_tx; - struct virtio_net_ctrl_coal_rx coal_rx; - struct virtio_net_ctrl_coal_vq coal_vq; -}; - -struct virtio_net_hdr_v1 { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; - union { - struct { - __virtio16 csum_start; - __virtio16 csum_offset; - }; - struct { - __virtio16 start; - __virtio16 offset; - } csum; - struct { - __le16 segments; - __le16 dup_acks; - } rsc; - }; - __virtio16 num_buffers; -}; - -struct virtio_net_hdr_v1_hash { - struct virtio_net_hdr_v1 hdr; - __le32 hash_value; - __le16 hash_report; - __le16 padding; -}; - -struct virtio_net_common_hdr { - union { - struct virtio_net_hdr hdr; - struct virtio_net_hdr_mrg_rxbuf mrg_hdr; - struct virtio_net_hdr_v1_hash hash_v1_hdr; - }; -}; - -struct virtnet_sq_free_stats { - u64 packets; - u64 bytes; -}; - -struct dim_cq_moder { - u16 usec; - u16 pkts; - u16 comps; - u8 cq_period_mode; -}; - -struct virtio_net_ctrl_mac { - __virtio32 entries; - __u8 macs[0]; -}; - -enum iwl_tx_pm_timeouts { - PM_FRAME_NONE = 0, - PM_FRAME_MGMT = 2, - PM_FRAME_ASSOC = 3, -}; - -enum iwl_dump_control { - DUMP_TX_FIFO_FLUSH = 2, -}; - -enum iwl_tx_offload_assist_flags_pos { - TX_CMD_OFFLD_IP_HDR = 0, - TX_CMD_OFFLD_L4_EN = 6, - TX_CMD_OFFLD_L3_EN = 7, - TX_CMD_OFFLD_MH_SIZE = 8, - TX_CMD_OFFLD_PAD = 13, - TX_CMD_OFFLD_AMSDU = 14, -}; - -enum iwl_tx_cmd_flags { - IWL_TX_FLAGS_CMD_RATE = 1, - IWL_TX_FLAGS_ENCRYPT_DIS = 2, - IWL_TX_FLAGS_HIGH_PRI = 4, - IWL_TX_FLAGS_RTS = 8, - IWL_TX_FLAGS_CTS = 16, -}; - -struct tx_status { - u8 status; - u8 reserved[3]; -}; - -struct iwl_fw_dbg_trigger_tx_status { - struct tx_status statuses[16]; - __le32 reserved[2]; -}; - -struct iwl_tx_path_flush_cmd_v1 { - __le32 queues_ctl; - __le16 flush_ctl; - __le16 reserved; -}; - -struct iwl_tx_cmd_gen3 { - __le16 len; - __le16 flags; - __le32 offload_assist; - struct iwl_dram_sec_info dram_info; - __le32 rate_n_flags; - u8 reserved[8]; - struct ieee80211_hdr hdr[0]; -}; - -struct iwl_mvm_ba_notif { - u8 sta_addr[6]; - __le16 reserved; - u8 sta_id; - u8 tid; - __le16 seq_ctl; - __le64 bitmap; - __le16 scd_flow; - __le16 scd_ssn; - u8 txed; - u8 txed_2_done; - u8 reduced_txp; - u8 reserved1; -} __attribute__((packed)); - -struct iwl_mvm_compressed_ba_ratid { - u8 q_num; - u8 tid; - __le16 ssn; -}; - -struct iwl_mvm_compressed_ba_tfd { - __le16 q_num; - __le16 tfd_index; - u8 scd_queue; - u8 tid; - u8 reserved[2]; -}; - -struct iwl_mvm_compressed_ba_notif { - __le32 flags; - u8 sta_id; - u8 reduced_txp; - u8 tlc_rate_info; - u8 retry_cnt; - __le32 query_byte_cnt; - __le16 query_frame_cnt; - __le16 txed; - __le16 done; - __le16 reserved; - __le32 wireless_time; - __le32 tx_rate; - __le16 tfd_cnt; - __le16 ra_tid_cnt; - union { - struct { - struct {} __empty_ra_tid; - struct iwl_mvm_compressed_ba_ratid ra_tid[0]; - }; - struct { - struct {} __empty_tfd; - struct iwl_mvm_compressed_ba_tfd tfd[0]; - }; - }; -}; - -struct iwl_tx_path_flush_cmd { - __le32 sta_id; - __le16 tid_mask; - __le16 reserved; -}; - -struct iwl_flush_queue_info { - __le16 tid; - __le16 queue_num; - __le16 read_before_flush; - __le16 read_after_flush; -}; - -struct iwl_tx_path_flush_cmd_rsp { - __le16 sta_id; - __le16 num_flushed_queues; - struct iwl_flush_queue_info queues[16]; -}; - -enum amd_chipset_gen { - NOT_AMD_CHIPSET = 0, - AMD_CHIPSET_SB600 = 1, - AMD_CHIPSET_SB700 = 2, - AMD_CHIPSET_SB800 = 3, - AMD_CHIPSET_HUDSON2 = 4, - AMD_CHIPSET_BOLTON = 5, - AMD_CHIPSET_YANGTZE = 6, - AMD_CHIPSET_TAISHAN = 7, - AMD_CHIPSET_UNKNOWN = 8, -}; - -struct amd_chipset_type { - enum amd_chipset_gen gen; - u8 rev; -}; - -struct amd_chipset_info { - struct pci_dev *nb_dev; - struct pci_dev *smbus_dev; - int nb_type; - struct amd_chipset_type sb_type; - int isoc_reqs; - int probe_count; - bool need_pll_quirk; -}; - -enum r5c_journal_mode { - R5C_JOURNAL_MODE_WRITE_THROUGH = 0, - R5C_JOURNAL_MODE_WRITE_BACK = 1, -}; - -enum r5l_payload_type { - R5LOG_PAYLOAD_DATA = 0, - R5LOG_PAYLOAD_PARITY = 1, - R5LOG_PAYLOAD_FLUSH = 2, -}; - -enum r5l_io_unit_state { - IO_UNIT_RUNNING = 0, - IO_UNIT_IO_START = 1, - IO_UNIT_IO_END = 2, - IO_UNIT_STRIPE_END = 3, -}; - -struct r5l_log { - struct md_rdev *rdev; - u32 uuid_checksum; - sector_t device_size; - sector_t max_free_space; - sector_t last_checkpoint; - u64 last_cp_seq; - sector_t log_start; - u64 seq; - sector_t next_checkpoint; - struct mutex io_mutex; - struct r5l_io_unit *current_io; - spinlock_t io_list_lock; - struct list_head running_ios; - struct list_head io_end_ios; - struct list_head flushing_ios; - struct list_head finished_ios; - struct bio flush_bio; - struct list_head no_mem_stripes; - struct kmem_cache *io_kc; - mempool_t io_pool; - struct bio_set bs; - mempool_t meta_pool; - struct md_thread __attribute__((btf_type_tag("rcu"))) *reclaim_thread; - unsigned long reclaim_target; - wait_queue_head_t iounit_wait; - struct list_head no_space_stripes; - spinlock_t no_space_stripes_lock; - bool need_cache_flush; - enum r5c_journal_mode r5c_journal_mode; - struct list_head stripe_in_journal_list; - spinlock_t stripe_in_journal_lock; - atomic_t stripe_in_journal_count; - struct work_struct deferred_io_work; - struct work_struct disable_writeback_work; - spinlock_t tree_lock; - struct xarray big_stripe_tree; -}; - -struct r5l_io_unit { - struct r5l_log *log; - struct page *meta_page; - int meta_offset; - struct bio *current_bio; - atomic_t pending_stripe; - u64 seq; - sector_t log_start; - sector_t log_end; - struct list_head log_sibling; - struct list_head stripe_list; - int state; - bool need_split_bio; - struct bio *split_bio; - unsigned int has_flush: 1; - unsigned int has_fua: 1; - unsigned int has_null_flush: 1; - unsigned int has_flush_payload: 1; - unsigned int io_deferred: 1; - struct bio_list flush_barriers; -}; - -struct r5l_payload_header { - __le16 type; - __le16 flags; -}; - -struct r5l_payload_data_parity { - struct r5l_payload_header header; - __le32 size; - __le64 location; - __le32 checksum[0]; -}; - -struct r5l_meta_block { - __le32 magic; - __le32 checksum; - __u8 version; - __u8 __zero_pading_1; - __le16 __zero_pading_2; - __le32 meta_size; - __le64 seq; - __le64 position; - struct r5l_payload_header payloads[0]; -}; - -struct r5l_payload_flush { - struct r5l_payload_header header; - __le32 size; - __le64 flush_stripes[0]; -}; - -struct r5l_recovery_ctx { - struct page *meta_page; - sector_t meta_total_blocks; - sector_t pos; - u64 seq; - int data_parity_stripes; - int data_only_stripes; - struct list_head cached_list; - struct page *ra_pool[256]; - struct bio_vec ra_bvec[256]; - sector_t pool_offset; - int total_pages; - int valid_pages; -}; - -enum hwtstamp_flags { - HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, - HWTSTAMP_FLAG_LAST = 1, - HWTSTAMP_FLAG_MASK = 1, -}; - -enum { - ETHTOOL_A_COALESCE_UNSPEC = 0, - ETHTOOL_A_COALESCE_HEADER = 1, - ETHTOOL_A_COALESCE_RX_USECS = 2, - ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 3, - ETHTOOL_A_COALESCE_RX_USECS_IRQ = 4, - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 5, - ETHTOOL_A_COALESCE_TX_USECS = 6, - ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 7, - ETHTOOL_A_COALESCE_TX_USECS_IRQ = 8, - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 9, - ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 10, - ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 11, - ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 12, - ETHTOOL_A_COALESCE_PKT_RATE_LOW = 13, - ETHTOOL_A_COALESCE_RX_USECS_LOW = 14, - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 15, - ETHTOOL_A_COALESCE_TX_USECS_LOW = 16, - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 17, - ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 18, - ETHTOOL_A_COALESCE_RX_USECS_HIGH = 19, - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 20, - ETHTOOL_A_COALESCE_TX_USECS_HIGH = 21, - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 22, - ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 23, - ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 24, - ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 25, - ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES = 26, - ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES = 27, - ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS = 28, - __ETHTOOL_A_COALESCE_CNT = 29, - ETHTOOL_A_COALESCE_MAX = 28, -}; - -struct coalesce_reply_data { - struct ethnl_reply_data base; - struct ethtool_coalesce coalesce; - struct kernel_ethtool_coalesce kernel_coalesce; - u32 supported_params; -}; - -enum nft_nat_types { - NFT_NAT_SNAT = 0, - NFT_NAT_DNAT = 1, -}; - -enum nft_nat_attributes { - NFTA_NAT_UNSPEC = 0, - NFTA_NAT_TYPE = 1, - NFTA_NAT_FAMILY = 2, - NFTA_NAT_REG_ADDR_MIN = 3, - NFTA_NAT_REG_ADDR_MAX = 4, - NFTA_NAT_REG_PROTO_MIN = 5, - NFTA_NAT_REG_PROTO_MAX = 6, - NFTA_NAT_FLAGS = 7, - __NFTA_NAT_MAX = 8, -}; - -struct nft_nat { - u8 sreg_addr_min; - u8 sreg_addr_max; - u8 sreg_proto_min; - u8 sreg_proto_max; - enum nf_nat_manip_type type: 8; - u8 family; - u16 flags; -}; - -struct ping_table { - struct hlist_head hash[64]; - spinlock_t lock; -}; - -struct pingv6_ops { - int (*ipv6_recv_error)(struct sock *, struct msghdr *, int, int *); - void (*ip6_datagram_recv_common_ctl)(struct sock *, struct msghdr *, struct sk_buff *); - void (*ip6_datagram_recv_specific_ctl)(struct sock *, struct msghdr *, struct sk_buff *); - int (*icmpv6_err_convert)(u8, u8, int *); - void (*ipv6_icmp_error)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); - int (*ipv6_chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int); -}; - -struct udp_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - __u16 cscov; - __u8 partial_cov; +struct xt_get_revision { + char name[29]; + __u8 revision; }; typedef void (*btf_trace_drv_return_void)(void *, struct ieee80211_local *); @@ -136513,8 +102683,18 @@ typedef void (*btf_trace_drv_sta_set_4addr)(void *, struct ieee80211_local *, st typedef void (*btf_trace_drv_sta_set_decap_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool); +struct ieee80211_twt_params; + typedef void (*btf_trace_drv_add_twt_setup)(void *, struct ieee80211_local *, struct ieee80211_sta *, struct ieee80211_twt_setup *, struct ieee80211_twt_params *); +struct ieee80211_twt_params { + __le16 req_type; + __le64 twt; + u8 min_twt_dur; + __le16 mantissa; + u8 channel; +} __attribute__((packed)); + typedef void (*btf_trace_drv_twt_teardown_request)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8); typedef void (*btf_trace_drv_net_fill_forward_path)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); @@ -138125,6 +104305,17556 @@ struct trace_event_data_offsets_wake_queue {}; struct trace_event_data_offsets_stop_queue {}; +struct p4_event_bind { + unsigned int opcode; + unsigned int escr_msr[2]; + unsigned int escr_emask; + unsigned int shared; + signed char cntr[6]; +}; + +struct p4_pebs_bind { + unsigned int metric_pebs; + unsigned int metric_vert; +}; + +struct p4_event_alias { + u64 original; + u64 alternative; +}; + +enum P4_PEBS_METRIC { + P4_PEBS_METRIC__none = 0, + P4_PEBS_METRIC__1stl_cache_load_miss_retired = 1, + P4_PEBS_METRIC__2ndl_cache_load_miss_retired = 2, + P4_PEBS_METRIC__dtlb_load_miss_retired = 3, + P4_PEBS_METRIC__dtlb_store_miss_retired = 4, + P4_PEBS_METRIC__dtlb_all_miss_retired = 5, + P4_PEBS_METRIC__tagged_mispred_branch = 6, + P4_PEBS_METRIC__mob_load_replay_retired = 7, + P4_PEBS_METRIC__split_load_retired = 8, + P4_PEBS_METRIC__split_store_retired = 9, + P4_PEBS_METRIC__max = 10, +}; + +enum P4_EVENTS { + P4_EVENT_TC_DELIVER_MODE = 0, + P4_EVENT_BPU_FETCH_REQUEST = 1, + P4_EVENT_ITLB_REFERENCE = 2, + P4_EVENT_MEMORY_CANCEL = 3, + P4_EVENT_MEMORY_COMPLETE = 4, + P4_EVENT_LOAD_PORT_REPLAY = 5, + P4_EVENT_STORE_PORT_REPLAY = 6, + P4_EVENT_MOB_LOAD_REPLAY = 7, + P4_EVENT_PAGE_WALK_TYPE = 8, + P4_EVENT_BSQ_CACHE_REFERENCE = 9, + P4_EVENT_IOQ_ALLOCATION = 10, + P4_EVENT_IOQ_ACTIVE_ENTRIES = 11, + P4_EVENT_FSB_DATA_ACTIVITY = 12, + P4_EVENT_BSQ_ALLOCATION = 13, + P4_EVENT_BSQ_ACTIVE_ENTRIES = 14, + P4_EVENT_SSE_INPUT_ASSIST = 15, + P4_EVENT_PACKED_SP_UOP = 16, + P4_EVENT_PACKED_DP_UOP = 17, + P4_EVENT_SCALAR_SP_UOP = 18, + P4_EVENT_SCALAR_DP_UOP = 19, + P4_EVENT_64BIT_MMX_UOP = 20, + P4_EVENT_128BIT_MMX_UOP = 21, + P4_EVENT_X87_FP_UOP = 22, + P4_EVENT_TC_MISC = 23, + P4_EVENT_GLOBAL_POWER_EVENTS = 24, + P4_EVENT_TC_MS_XFER = 25, + P4_EVENT_UOP_QUEUE_WRITES = 26, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27, + P4_EVENT_RETIRED_BRANCH_TYPE = 28, + P4_EVENT_RESOURCE_STALL = 29, + P4_EVENT_WC_BUFFER = 30, + P4_EVENT_B2B_CYCLES = 31, + P4_EVENT_BNR = 32, + P4_EVENT_SNOOP = 33, + P4_EVENT_RESPONSE = 34, + P4_EVENT_FRONT_END_EVENT = 35, + P4_EVENT_EXECUTION_EVENT = 36, + P4_EVENT_REPLAY_EVENT = 37, + P4_EVENT_INSTR_RETIRED = 38, + P4_EVENT_UOPS_RETIRED = 39, + P4_EVENT_UOP_TYPE = 40, + P4_EVENT_BRANCH_RETIRED = 41, + P4_EVENT_MISPRED_BRANCH_RETIRED = 42, + P4_EVENT_X87_ASSIST = 43, + P4_EVENT_MACHINE_CLEAR = 44, + P4_EVENT_INSTR_COMPLETED = 45, +}; + +struct hpet_channel; + +struct hpet_base { + unsigned int nr_channels; + unsigned int nr_clockevents; + unsigned int boot_cfg; + struct hpet_channel *channels; +}; + +enum hpet_mode { + HPET_MODE_UNUSED = 0, + HPET_MODE_LEGACY = 1, + HPET_MODE_CLOCKEVT = 2, + HPET_MODE_DEVICE = 3, +}; + +struct hpet_channel { + struct clock_event_device evt; + unsigned int num; + unsigned int cpu; + unsigned int irq; + unsigned int in_use; + enum hpet_mode mode; + unsigned int boot_cfg; + char name[10]; + long: 64; + long: 64; + long: 64; +}; + +typedef irqreturn_t (*rtc_irq_handler)(int, void *); + +struct clocksource { + u64 (*read)(struct clocksource *); + u64 mask; + u32 mult; + u32 shift; + u64 max_idle_ns; + u32 maxadj; + u32 uncertainty_margin; + u64 max_cycles; + const char *name; + struct list_head list; + int rating; + enum clocksource_ids id; + enum vdso_clock_mode vdso_clock_mode; + unsigned long flags; + int (*enable)(struct clocksource *); + void (*disable)(struct clocksource *); + void (*suspend)(struct clocksource *); + void (*resume)(struct clocksource *); + void (*mark_unstable)(struct clocksource *); + void (*tick_stable)(struct clocksource *); + struct list_head wd_list; + u64 cs_last; + u64 wd_last; + struct module *owner; +}; + +union hpet_lock { + struct { + arch_spinlock_t lock; + u32 value; + }; + u64 lockval; +}; + +struct bpf_binary_header { + u32 size; + long: 0; + u8 image[0]; +}; + +struct jit_context { + int cleanup_addr; + int tail_call_direct_label; + int tail_call_indirect_label; +}; + +struct x64_jit_data { + struct bpf_binary_header *rw_header; + struct bpf_binary_header *header; + int *addrs; + u8 *image; + int proglen; + struct jit_context ctx; +}; + +enum kprobe_slot_state { + SLOT_CLEAN = 0, + SLOT_DIRTY = 1, + SLOT_USED = 2, +}; + +struct kprobe_insn_page { + struct list_head list; + kprobe_opcode_t *insns; + struct kprobe_insn_cache *cache; + int nused; + int ngarbage; + char slot_used[0]; +}; + +struct kprobe_blacklist_entry { + struct list_head list; + unsigned long start_addr; + unsigned long end_addr; +}; + +struct kretprobe_instance; + +typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); + +struct kretprobe { + struct kprobe kp; + kretprobe_handler_t handler; + kretprobe_handler_t entry_handler; + int maxactive; + int nmissed; + size_t data_size; + struct rethook *rh; +}; + +struct kretprobe_instance { + struct rethook_node node; + char data[0]; +}; + +struct reuseport_array { + struct bpf_map map; + struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; +}; + +struct btrfs_raid_attr { + u8 sub_stripes; + u8 dev_stripes; + u8 devs_max; + u8 devs_min; + u8 tolerated_failures; + u8 devs_increment; + u8 ncopies; + u8 nparity; + u8 mindev_error; + const char raid_name[8]; + u64 bg_flag; +}; + +struct btrfs_disk_balance_args { + __le64 profiles; + union { + __le64 usage; + struct { + __le32 usage_min; + __le32 usage_max; + }; + }; + __le64 devid; + __le64 pstart; + __le64 pend; + __le64 vstart; + __le64 vend; + __le64 target; + __le64 flags; + union { + __le64 limit; + struct { + __le32 limit_min; + __le32 limit_max; + }; + }; + __le32 stripes_min; + __le32 stripes_max; + __le64 unused[6]; +}; + +struct btrfs_balance_item { + __le64 flags; + struct btrfs_disk_balance_args data; + struct btrfs_disk_balance_args meta; + struct btrfs_disk_balance_args sys; + __le64 unused[4]; +}; + +struct btrfs_swapfile_pin { + struct rb_node node; + void *ptr; + struct inode *inode; + bool is_block_group; + int bg_extent_count; +}; + +struct btrfs_dev_stats_item { + __le64 values[5]; +}; + +struct alloc_chunk_ctl { + u64 start; + u64 type; + int num_stripes; + int sub_stripes; + int dev_stripes; + int devs_max; + int devs_min; + int devs_increment; + int ncopies; + int nparity; + u64 max_stripe_size; + u64 max_chunk_size; + u64 dev_extent_min; + u64 stripe_size; + u64 chunk_size; + int ndevs; +}; + +struct btrfs_device_info { + struct btrfs_device *dev; + u64 dev_offset; + u64 max_avail; + u64 total_avail; +}; + +struct btrfs_io_geometry { + u32 stripe_index; + u32 stripe_nr; + int mirror_num; + int num_stripes; + u64 stripe_offset; + u64 raid56_full_stripe_start; + int max_errors; + enum btrfs_map_op op; +}; + +struct btrfs_discard_stripe { + struct btrfs_device *dev; + u64 physical; + u64 length; +}; + +struct skcipher_instance { + void (*free)(struct skcipher_instance *); + union { + struct { + char head[88]; + struct crypto_instance base; + } s; + struct skcipher_alg alg; + }; +}; + +struct crypto_skcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_cipher_spawn { + struct crypto_spawn base; +}; + +struct xts_instance_ctx { + struct crypto_skcipher_spawn spawn; + struct crypto_cipher_spawn tweak_spawn; +}; + +struct xts_request_ctx { + le128 t; + struct scatterlist *tail; + struct scatterlist sg[2]; + struct skcipher_request subreq; +}; + +struct xts_tfm_ctx { + struct crypto_skcipher *child; + struct crypto_cipher *tweak; +}; + +enum io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, +}; + +struct io_cancel { + struct file *file; + u64 addr; + u32 flags; + s32 fd; + u8 opcode; +}; + +struct io_poll { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; +}; + +struct async_poll { + union { + struct io_poll poll; + struct io_cache_entry cache; + }; + struct io_poll *double_poll; +}; + +typedef bool work_cancel_fn(struct io_wq_work *, void *); + +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u8 opcode; + __u8 pad[7]; + __u64 pad2[3]; +}; + +struct pci_osc_bit_struct { + u32 bit; + char *desc; +}; + +enum acpi_bridge_type { + ACPI_BRIDGE_TYPE_PCIE = 1, + ACPI_BRIDGE_TYPE_CXL = 2, +}; + +struct acpi_osc_context { + char *uuid_str; + int rev; + struct acpi_buffer cap; + struct acpi_buffer ret; +}; + +enum scsi_msg_byte { + COMMAND_COMPLETE = 0, + EXTENDED_MESSAGE = 1, + SAVE_POINTERS = 2, + RESTORE_POINTERS = 3, + DISCONNECT = 4, + INITIATOR_ERROR = 5, + ABORT_TASK_SET = 6, + MESSAGE_REJECT = 7, + NOP___2 = 8, + MSG_PARITY_ERROR = 9, + LINKED_CMD_COMPLETE = 10, + LINKED_FLG_CMD_COMPLETE = 11, + TARGET_RESET = 12, + ABORT_TASK = 13, + CLEAR_TASK_SET = 14, + INITIATE_RECOVERY = 15, + RELEASE_RECOVERY = 16, + TERMINATE_IO_PROC = 17, + CLEAR_ACA = 22, + LOGICAL_UNIT_RESET = 23, + SIMPLE_QUEUE_TAG = 32, + HEAD_OF_QUEUE_TAG = 33, + ORDERED_QUEUE_TAG = 34, + IGNORE_WIDE_RESIDUE = 35, + ACA = 36, + QAS_REQUEST = 85, + BUS_DEVICE_RESET = 12, + ABORT = 6, +}; + +struct request_sense; + +struct cdrom_generic_command { + unsigned char cmd[12]; + unsigned char __attribute__((btf_type_tag("user"))) *buffer; + unsigned int buflen; + int stat; + struct request_sense __attribute__((btf_type_tag("user"))) *sense; + unsigned char data_direction; + int quiet; + int timeout; + union { + void __attribute__((btf_type_tag("user"))) *reserved[1]; + void __attribute__((btf_type_tag("user"))) *unused; + }; +}; + +struct request_sense { + __u8 error_code: 7; + __u8 valid: 1; + __u8 segment_number; + __u8 sense_key: 4; + __u8 reserved2: 1; + __u8 ili: 1; + __u8 reserved1: 2; + __u8 information[4]; + __u8 add_sense_len; + __u8 command_info[4]; + __u8 asc; + __u8 ascq; + __u8 fruc; + __u8 sks[3]; + __u8 asb[46]; +}; + +struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +}; + +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +}; + +struct sg_io_hdr { + int interface_id; + int dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + unsigned short iovec_count; + unsigned int dxfer_len; + void __attribute__((btf_type_tag("user"))) *dxferp; + unsigned char __attribute__((btf_type_tag("user"))) *cmdp; + void __attribute__((btf_type_tag("user"))) *sbp; + unsigned int timeout; + unsigned int flags; + int pack_id; + void __attribute__((btf_type_tag("user"))) *usr_ptr; + unsigned char status; + unsigned char masked_status; + unsigned char msg_status; + unsigned char sb_len_wr; + unsigned short host_status; + unsigned short driver_status; + int resid; + unsigned int duration; + unsigned int info; +}; + +enum iwl_disable_11n { + IWL_DISABLE_HT_ALL = 1, + IWL_DISABLE_HT_TXAGG = 2, + IWL_DISABLE_HT_RXAGG = 4, + IWL_ENABLE_HT_TXAGG = 8, +}; + +enum ieee80211_max_ampdu_length_exp { + IEEE80211_HT_MAX_AMPDU_8K = 0, + IEEE80211_HT_MAX_AMPDU_16K = 1, + IEEE80211_HT_MAX_AMPDU_32K = 2, + IEEE80211_HT_MAX_AMPDU_64K = 3, +}; + +enum ieee80211_min_mpdu_spacing { + IEEE80211_HT_MPDU_DENSITY_NONE = 0, + IEEE80211_HT_MPDU_DENSITY_0_25 = 1, + IEEE80211_HT_MPDU_DENSITY_0_5 = 2, + IEEE80211_HT_MPDU_DENSITY_1 = 3, + IEEE80211_HT_MPDU_DENSITY_2 = 4, + IEEE80211_HT_MPDU_DENSITY_4 = 5, + IEEE80211_HT_MPDU_DENSITY_8 = 6, + IEEE80211_HT_MPDU_DENSITY_16 = 7, +}; + +enum eeprom_sku_bits { + EEPROM_SKU_CAP_BAND_24GHZ = 16, + EEPROM_SKU_CAP_BAND_52GHZ = 32, + EEPROM_SKU_CAP_11N_ENABLE = 64, + EEPROM_SKU_CAP_AMT_ENABLE = 128, + EEPROM_SKU_CAP_IPAN_ENABLE = 256, +}; + +enum iwl_eeprom_channel_flags { + EEPROM_CHANNEL_VALID = 1, + EEPROM_CHANNEL_IBSS = 2, + EEPROM_CHANNEL_ACTIVE = 8, + EEPROM_CHANNEL_RADAR = 16, + EEPROM_CHANNEL_WIDE = 32, + EEPROM_CHANNEL_DFS = 128, +}; + +enum iwl_eeprom_enhanced_txpwr_flags { + IWL_EEPROM_ENH_TXP_FL_VALID = 1, + IWL_EEPROM_ENH_TXP_FL_BAND_52G = 2, + IWL_EEPROM_ENH_TXP_FL_OFDM = 4, + IWL_EEPROM_ENH_TXP_FL_40MHZ = 8, + IWL_EEPROM_ENH_TXP_FL_HT_AP = 16, + IWL_EEPROM_ENH_TXP_FL_RES1 = 32, + IWL_EEPROM_ENH_TXP_FL_RES2 = 64, + IWL_EEPROM_ENH_TXP_FL_COMMON_TYPE = 128, +}; + +struct iwl_eeprom_calib_hdr { + u8 version; + u8 pa_type; + __le16 voltage; +}; + +struct iwl_eeprom_channel { + u8 flags; + s8 max_power_avg; +}; + +struct iwl_eeprom_enhanced_txpwr { + u8 flags; + u8 channel; + s8 chain_a_max; + s8 chain_b_max; + s8 chain_c_max; + u8 delta_20_in_40; + s8 mimo2_max; + s8 mimo3_max; +}; + +struct iwl_rfi_freq_table_resp_cmd { + struct iwl_rfi_lut_entry table[4]; + __le32 status; +}; + +struct iwl_rfi_config_cmd { + struct iwl_rfi_lut_entry table[24]; + u8 oem; + u8 reserved[3]; +}; + +struct iwl_rfi_deactivate_notif { + __le32 reason; +}; + +struct xhci_file_map { + const char *name; + int (*show)(struct seq_file *, void *); +}; + +struct debugfs_reg32 { + char *name; + unsigned long offset; +}; + +struct debugfs_regset32 { + const struct debugfs_reg32 *regs; + int nregs; + void *base; + struct device *dev; +}; + +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; +}; + +struct xhci_ep_priv; + +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; +}; + +struct xhci_ep_priv { + char name[32]; + struct dentry *root; + struct xhci_stream_info *stream_info; + struct xhci_ring *show_ring; + unsigned int stream_id; +}; + +typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); + +typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); + +typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); + +enum hwmon_sensor_types { + hwmon_chip = 0, + hwmon_temp = 1, + hwmon_in = 2, + hwmon_curr = 3, + hwmon_power = 4, + hwmon_energy = 5, + hwmon_humidity = 6, + hwmon_fan = 7, + hwmon_pwm = 8, + hwmon_intrusion = 9, + hwmon_max = 10, +}; + +enum hwmon_chip_attributes { + hwmon_chip_temp_reset_history = 0, + hwmon_chip_in_reset_history = 1, + hwmon_chip_curr_reset_history = 2, + hwmon_chip_power_reset_history = 3, + hwmon_chip_register_tz = 4, + hwmon_chip_update_interval = 5, + hwmon_chip_alarms = 6, + hwmon_chip_samples = 7, + hwmon_chip_curr_samples = 8, + hwmon_chip_in_samples = 9, + hwmon_chip_power_samples = 10, + hwmon_chip_temp_samples = 11, + hwmon_chip_beep_enable = 12, +}; + +enum hwmon_temp_attributes { + hwmon_temp_enable = 0, + hwmon_temp_input = 1, + hwmon_temp_type = 2, + hwmon_temp_lcrit = 3, + hwmon_temp_lcrit_hyst = 4, + hwmon_temp_min = 5, + hwmon_temp_min_hyst = 6, + hwmon_temp_max = 7, + hwmon_temp_max_hyst = 8, + hwmon_temp_crit = 9, + hwmon_temp_crit_hyst = 10, + hwmon_temp_emergency = 11, + hwmon_temp_emergency_hyst = 12, + hwmon_temp_alarm = 13, + hwmon_temp_lcrit_alarm = 14, + hwmon_temp_min_alarm = 15, + hwmon_temp_max_alarm = 16, + hwmon_temp_crit_alarm = 17, + hwmon_temp_emergency_alarm = 18, + hwmon_temp_fault = 19, + hwmon_temp_offset = 20, + hwmon_temp_label = 21, + hwmon_temp_lowest = 22, + hwmon_temp_highest = 23, + hwmon_temp_reset_history = 24, + hwmon_temp_rated_min = 25, + hwmon_temp_rated_max = 26, + hwmon_temp_beep = 27, +}; + +enum hwmon_in_attributes { + hwmon_in_enable = 0, + hwmon_in_input = 1, + hwmon_in_min = 2, + hwmon_in_max = 3, + hwmon_in_lcrit = 4, + hwmon_in_crit = 5, + hwmon_in_average = 6, + hwmon_in_lowest = 7, + hwmon_in_highest = 8, + hwmon_in_reset_history = 9, + hwmon_in_label = 10, + hwmon_in_alarm = 11, + hwmon_in_min_alarm = 12, + hwmon_in_max_alarm = 13, + hwmon_in_lcrit_alarm = 14, + hwmon_in_crit_alarm = 15, + hwmon_in_rated_min = 16, + hwmon_in_rated_max = 17, + hwmon_in_beep = 18, + hwmon_in_fault = 19, +}; + +enum hwmon_curr_attributes { + hwmon_curr_enable = 0, + hwmon_curr_input = 1, + hwmon_curr_min = 2, + hwmon_curr_max = 3, + hwmon_curr_lcrit = 4, + hwmon_curr_crit = 5, + hwmon_curr_average = 6, + hwmon_curr_lowest = 7, + hwmon_curr_highest = 8, + hwmon_curr_reset_history = 9, + hwmon_curr_label = 10, + hwmon_curr_alarm = 11, + hwmon_curr_min_alarm = 12, + hwmon_curr_max_alarm = 13, + hwmon_curr_lcrit_alarm = 14, + hwmon_curr_crit_alarm = 15, + hwmon_curr_rated_min = 16, + hwmon_curr_rated_max = 17, + hwmon_curr_beep = 18, +}; + +enum hwmon_power_attributes { + hwmon_power_enable = 0, + hwmon_power_average = 1, + hwmon_power_average_interval = 2, + hwmon_power_average_interval_max = 3, + hwmon_power_average_interval_min = 4, + hwmon_power_average_highest = 5, + hwmon_power_average_lowest = 6, + hwmon_power_average_max = 7, + hwmon_power_average_min = 8, + hwmon_power_input = 9, + hwmon_power_input_highest = 10, + hwmon_power_input_lowest = 11, + hwmon_power_reset_history = 12, + hwmon_power_accuracy = 13, + hwmon_power_cap = 14, + hwmon_power_cap_hyst = 15, + hwmon_power_cap_max = 16, + hwmon_power_cap_min = 17, + hwmon_power_min = 18, + hwmon_power_max = 19, + hwmon_power_crit = 20, + hwmon_power_lcrit = 21, + hwmon_power_label = 22, + hwmon_power_alarm = 23, + hwmon_power_cap_alarm = 24, + hwmon_power_min_alarm = 25, + hwmon_power_max_alarm = 26, + hwmon_power_lcrit_alarm = 27, + hwmon_power_crit_alarm = 28, + hwmon_power_rated_min = 29, + hwmon_power_rated_max = 30, +}; + +enum hwmon_energy_attributes { + hwmon_energy_enable = 0, + hwmon_energy_input = 1, + hwmon_energy_label = 2, +}; + +enum hwmon_humidity_attributes { + hwmon_humidity_enable = 0, + hwmon_humidity_input = 1, + hwmon_humidity_label = 2, + hwmon_humidity_min = 3, + hwmon_humidity_min_hyst = 4, + hwmon_humidity_max = 5, + hwmon_humidity_max_hyst = 6, + hwmon_humidity_alarm = 7, + hwmon_humidity_fault = 8, + hwmon_humidity_rated_min = 9, + hwmon_humidity_rated_max = 10, + hwmon_humidity_min_alarm = 11, + hwmon_humidity_max_alarm = 12, +}; + +enum hwmon_fan_attributes { + hwmon_fan_enable = 0, + hwmon_fan_input = 1, + hwmon_fan_label = 2, + hwmon_fan_min = 3, + hwmon_fan_max = 4, + hwmon_fan_div = 5, + hwmon_fan_pulses = 6, + hwmon_fan_target = 7, + hwmon_fan_alarm = 8, + hwmon_fan_min_alarm = 9, + hwmon_fan_max_alarm = 10, + hwmon_fan_fault = 11, + hwmon_fan_beep = 12, +}; + +struct trace_event_raw_hwmon_attr_class { + struct trace_entry ent; + int index; + u32 __data_loc_attr_name; + long val; + char __data[0]; +}; + +struct trace_event_raw_hwmon_attr_show_string { + struct trace_entry ent; + int index; + u32 __data_loc_attr_name; + u32 __data_loc_label; + char __data[0]; +}; + +struct hwmon_ops; + +struct hwmon_device_attribute { + struct device_attribute dev_attr; + const struct hwmon_ops *ops; + enum hwmon_sensor_types type; + u32 attr; + int index; + char name[32]; +}; + +struct hwmon_ops { + umode_t (*is_visible)(const void *, enum hwmon_sensor_types, u32, int); + int (*read)(struct device *, enum hwmon_sensor_types, u32, int, long *); + int (*read_string)(struct device *, enum hwmon_sensor_types, u32, int, const char **); + int (*write)(struct device *, enum hwmon_sensor_types, u32, int, long); +}; + +struct hwmon_chip_info; + +struct hwmon_device { + const char *name; + const char *label; + struct device dev; + const struct hwmon_chip_info *chip; + struct list_head tzdata; + struct attribute_group group; + const struct attribute_group **groups; +}; + +struct hwmon_channel_info; + +struct hwmon_chip_info { + const struct hwmon_ops *ops; + const struct hwmon_channel_info * const *info; +}; + +struct hwmon_channel_info { + enum hwmon_sensor_types type; + const u32 *config; +}; + +struct trace_event_data_offsets_hwmon_attr_class { + u32 attr_name; + const void *attr_name_ptr_; +}; + +struct trace_event_data_offsets_hwmon_attr_show_string { + u32 attr_name; + const void *attr_name_ptr_; + u32 label; + const void *label_ptr_; +}; + +struct llc_pdu_sn { + u8 dsap; + u8 ssap; + u8 ctrl_1; + u8 ctrl_2; +}; + +struct xt_cgroup_info_v0 { + __u32 id; + __u32 invert; +}; + +struct xt_cgroup_info_v1 { + __u8 has_path; + __u8 has_classid; + __u8 invert_path; + __u8 invert_classid; + char path[4096]; + __u32 classid; + void *priv; +}; + +struct xt_cgroup_info_v2 { + __u8 has_path; + __u8 has_classid; + __u8 invert_path; + __u8 invert_classid; + union { + char path[512]; + __u32 classid; + }; + void *priv; +}; + +enum tunnel_encap_types { + TUNNEL_ENCAP_NONE = 0, + TUNNEL_ENCAP_FOU = 1, + TUNNEL_ENCAP_GUE = 2, + TUNNEL_ENCAP_MPLS = 3, +}; + +struct ip_tunnel_prl_entry; + +struct ip_tunnel { + struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *next; + struct hlist_node hash_node; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct net *net; + unsigned long err_time; + int err_count; + u32 i_seqno; + atomic_t o_seqno; + int tun_hlen; + u32 index; + u8 erspan_ver; + u8 dir; + u16 hwid; + struct dst_cache dst_cache; + struct ip_tunnel_parm parms; + int mlink; + int encap_hlen; + int hlen; + struct ip_tunnel_encap encap; + struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *prl; + unsigned int prl_count; + unsigned int ip_tnl_net_id; + struct gro_cells gro_cells; + __u32 fwmark; + bool collect_md; + bool ignore_df; +}; + +struct ip_tunnel_prl_entry { + struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *next; + __be32 addr; + u16 flags; + struct callback_head callback_head; +}; + +struct ip_tunnel_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); + int (*err_handler)(struct sk_buff *, u32); +}; + +struct ip_tunnel_net { + struct net_device *fb_tunnel_dev; + struct rtnl_link_ops *rtnl_link_ops; + struct hlist_head tunnels[128]; + struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *collect_md_tun; + int type; +}; + +struct tnl_ptk_info { + __be16 flags; + __be16 proto; + __be32 key; + __be32 seq; + int hdr_len; +}; + +enum { + IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC = 0, + IFLA_BRIDGE_VLAN_TUNNEL_ID = 1, + IFLA_BRIDGE_VLAN_TUNNEL_VID = 2, + IFLA_BRIDGE_VLAN_TUNNEL_FLAGS = 3, + __IFLA_BRIDGE_VLAN_TUNNEL_MAX = 4, +}; + +struct vtunnel_info { + u32 tunid; + u16 vid; + u16 flags; +}; + +struct muldiv { + u32 multiplier; + u32 divider; +}; + +struct freq_desc { + bool use_msr_plat; + struct muldiv muldiv[16]; + u32 freqs[16]; + u32 mask; +}; + +struct exception_stacks { + char DF_stack_guard[0]; + char DF_stack[8192]; + char NMI_stack_guard[0]; + char NMI_stack[8192]; + char DB_stack_guard[0]; + char DB_stack[8192]; + char MCE_stack_guard[0]; + char MCE_stack[8192]; + char VC_stack_guard[0]; + char VC_stack[0]; + char VC2_stack_guard[0]; + char VC2_stack[0]; + char IST_top_guard[0]; +}; + +enum { + IRQ_STARTUP_NORMAL = 0, + IRQ_STARTUP_MANAGED = 1, + IRQ_STARTUP_ABORT = 2, +}; + +struct tmigr_group; + +typedef void (*btf_trace_tmigr_group_set)(void *, struct tmigr_group *); + +struct tmigr_event { + struct timerqueue_node nextevt; + unsigned int cpu; + bool ignore; +}; + +struct tmigr_group { + raw_spinlock_t lock; + struct tmigr_group *parent; + struct tmigr_event groupevt; + u64 next_expiry; + struct timerqueue_head events; + atomic_t migr_state; + unsigned int level; + int numa_node; + unsigned int num_children; + u8 childmask; + struct list_head list; +}; + +typedef void (*btf_trace_tmigr_connect_child_parent)(void *, struct tmigr_group *); + +struct tmigr_cpu; + +typedef void (*btf_trace_tmigr_connect_cpu_parent)(void *, struct tmigr_cpu *); + +struct tmigr_cpu { + raw_spinlock_t lock; + bool online; + bool idle; + bool remote; + struct tmigr_group *tmgroup; + u8 childmask; + u64 wakeup; + struct tmigr_event cpuevt; +}; + +union tmigr_state; + +typedef void (*btf_trace_tmigr_group_set_cpu_inactive)(void *, struct tmigr_group *, union tmigr_state, u32); + +union tmigr_state { + u32 state; + struct { + u8 active; + u8 migrator; + u16 seq; + }; +}; + +typedef void (*btf_trace_tmigr_group_set_cpu_active)(void *, struct tmigr_group *, union tmigr_state, u32); + +typedef void (*btf_trace_tmigr_cpu_new_timer)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_active)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_online)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_offline)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_handle_remote_cpu)(void *, struct tmigr_cpu *); + +typedef void (*btf_trace_tmigr_cpu_idle)(void *, struct tmigr_cpu *, u64); + +typedef void (*btf_trace_tmigr_cpu_new_timer_idle)(void *, struct tmigr_cpu *, u64); + +typedef void (*btf_trace_tmigr_update_events)(void *, struct tmigr_group *, struct tmigr_group *, union tmigr_state, union tmigr_state, u64); + +typedef void (*btf_trace_tmigr_handle_remote)(void *, struct tmigr_group *); + +struct trace_event_raw_tmigr_group_set { + struct trace_entry ent; + void *group; + unsigned int lvl; + unsigned int numa_node; + char __data[0]; +}; + +struct trace_event_raw_tmigr_connect_child_parent { + struct trace_entry ent; + void *child; + void *parent; + unsigned int lvl; + unsigned int numa_node; + unsigned int num_children; + u32 childmask; + char __data[0]; +}; + +struct trace_event_raw_tmigr_connect_cpu_parent { + struct trace_entry ent; + void *parent; + unsigned int cpu; + unsigned int lvl; + unsigned int numa_node; + unsigned int num_children; + u32 childmask; + char __data[0]; +}; + +struct trace_event_raw_tmigr_group_and_cpu { + struct trace_entry ent; + void *group; + void *parent; + unsigned int lvl; + unsigned int numa_node; + u32 childmask; + u8 active; + u8 migrator; + char __data[0]; +}; + +struct trace_event_raw_tmigr_cpugroup { + struct trace_entry ent; + u64 wakeup; + void *parent; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_tmigr_idle { + struct trace_entry ent; + u64 nextevt; + u64 wakeup; + void *parent; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_tmigr_update_events { + struct trace_entry ent; + void *child; + void *group; + u64 nextevt; + u64 group_next_expiry; + u64 child_evt_expiry; + unsigned int group_lvl; + unsigned int child_evtcpu; + u8 child_active; + u8 group_active; + char __data[0]; +}; + +struct trace_event_raw_tmigr_handle_remote { + struct trace_entry ent; + void *group; + unsigned int lvl; + char __data[0]; +}; + +typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, void *); + +struct tmigr_remote_data { + unsigned long basej; + u64 now; + u64 firstexp; + u8 childmask; + bool check; + bool tmc_active; +}; + +struct timer_events { + u64 local; + u64 global; +}; + +struct tmigr_walk { + u64 nextexp; + u64 firstexp; + struct tmigr_event *evt; + u8 childmask; + bool remote; +}; + +struct trace_event_data_offsets_tmigr_group_set {}; + +struct trace_event_data_offsets_tmigr_connect_child_parent {}; + +struct trace_event_data_offsets_tmigr_connect_cpu_parent {}; + +struct trace_event_data_offsets_tmigr_group_and_cpu {}; + +struct trace_event_data_offsets_tmigr_cpugroup {}; + +struct trace_event_data_offsets_tmigr_idle {}; + +struct trace_event_data_offsets_tmigr_update_events {}; + +struct trace_event_data_offsets_tmigr_handle_remote {}; + +struct bpf_arena { + struct bpf_map map; + u64 user_vm_start; + u64 user_vm_end; + struct vm_struct *kern_vm; + struct maple_tree mt; + struct list_head vma_list; + struct mutex lock; +}; + +struct vma_list { + struct vm_area_struct *vma; + struct list_head head; +}; + +typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); + +enum fsnotify_iter_type { + FSNOTIFY_ITER_TYPE_INODE = 0, + FSNOTIFY_ITER_TYPE_VFSMOUNT = 1, + FSNOTIFY_ITER_TYPE_SB = 2, + FSNOTIFY_ITER_TYPE_PARENT = 3, + FSNOTIFY_ITER_TYPE_INODE2 = 4, + FSNOTIFY_ITER_TYPE_COUNT = 5, +}; + +struct fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; +}; + +struct ext4_xattr_header { + __le32 h_magic; + __le32 h_refcount; + __le32 h_blocks; + __le32 h_hash; + __le32 h_checksum; + __u32 h_reserved[3]; +}; + +struct ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; +}; + +enum devcg_behavior { + DEVCG_DEFAULT_NONE = 0, + DEVCG_DEFAULT_ALLOW = 1, + DEVCG_DEFAULT_DENY = 2, +}; + +struct dev_cgroup { + struct cgroup_subsys_state css; + struct list_head exceptions; + enum devcg_behavior behavior; +}; + +struct dev_exception_item { + u32 major; + u32 minor; + short type; + short access; + struct list_head list; + struct callback_head rcu; +}; + +enum blkg_iostat_type { + BLKG_IOSTAT_READ = 0, + BLKG_IOSTAT_WRITE = 1, + BLKG_IOSTAT_DISCARD = 2, + BLKG_IOSTAT_NR = 3, +}; + +struct class_dev_iter { + struct klist_iter ki; + const struct device_type *type; + struct subsys_private *sp; +}; + +struct wrapper { + cmp_func_t cmp; + swap_func_t swap; +}; + +struct sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; +}; + +struct sg_dma_page_iter { + struct sg_page_iter base; +}; + +struct vgastate { + void *vgabase; + unsigned long membase; + __u32 memsize; + __u32 flags; + __u32 depth; + __u32 num_attr; + __u32 num_crtc; + __u32 num_gfx; + __u32 num_seq; + void *vidstate; +}; + +struct acpi_device_properties { + const guid_t *guid; + union acpi_object *properties; + struct list_head list; + void **bufs; +}; + +struct virtio_pci_modern_common_cfg { + struct virtio_pci_common_cfg cfg; + __le16 queue_notify_data; + __le16 queue_reset; + __le16 admin_queue_index; + __le16 admin_queue_num; +}; + +struct pericom8250 { + void *virt; + unsigned int nr; + int line[0]; +}; + +struct virtio_driver { + struct device_driver driver; + const struct virtio_device_id *id_table; + const unsigned int *feature_table; + unsigned int feature_table_size; + const unsigned int *feature_table_legacy; + unsigned int feature_table_size_legacy; + int (*validate)(struct virtio_device *); + int (*probe)(struct virtio_device *); + void (*scan)(struct virtio_device *); + void (*remove)(struct virtio_device *); + void (*config_changed)(struct virtio_device *); + int (*freeze)(struct virtio_device *); + int (*restore)(struct virtio_device *); +}; + +struct virtnet_stat_desc { + char desc[32]; + size_t offset; +}; + +struct virtnet_interrupt_coalesce { + u32 max_packets; + u32 max_usecs; +}; + +struct send_queue; + +struct receive_queue; + +struct control_buf; + +struct failover; + +struct virtnet_info { + struct virtio_device *vdev; + struct virtqueue *cvq; + struct net_device *dev; + struct send_queue *sq; + struct receive_queue *rq; + unsigned int status; + u16 max_queue_pairs; + u16 curr_queue_pairs; + u16 xdp_queue_pairs; + bool xdp_enabled; + bool big_packets; + unsigned int big_packets_num_skbfrags; + bool mergeable_rx_bufs; + bool has_rss; + bool has_rss_hash_report; + u8 rss_key_size; + u16 rss_indir_table_size; + u32 rss_hash_types_supported; + u32 rss_hash_types_saved; + bool has_cvq; + bool any_header_sg; + u8 hdr_len; + struct delayed_work refill; + bool refill_enabled; + spinlock_t refill_lock; + struct work_struct config_work; + struct work_struct rx_mode_work; + bool rx_mode_work_enabled; + bool affinity_hint_set; + struct hlist_node node; + struct hlist_node node_dead; + struct control_buf *ctrl; + u8 duplex; + u32 speed; + bool rx_dim_enabled; + struct virtnet_interrupt_coalesce intr_coal_tx; + struct virtnet_interrupt_coalesce intr_coal_rx; + unsigned long guest_offloads; + unsigned long guest_offloads_capable; + struct failover *failover; +}; + +struct virtnet_sq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; +}; + +struct send_queue { + struct virtqueue *vq; + struct scatterlist sg[19]; + char name[16]; + struct virtnet_sq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct napi_struct napi; + bool reset; +}; + +struct virtnet_rq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; +}; + +struct ewma_pkt_len { + unsigned long internal; +}; + +struct virtnet_rq_dma; + +struct receive_queue { + struct virtqueue *vq; + struct napi_struct napi; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; + struct virtnet_rq_stats stats; + u16 calls; + bool dim_enabled; + struct dim dim; + u32 packets_in_napi; + struct virtnet_interrupt_coalesce intr_coal; + struct page *pages; + struct ewma_pkt_len mrg_avg_pkt_len; + struct page_frag alloc_frag; + struct scatterlist sg[19]; + unsigned int min_buf_len; + char name[16]; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; + struct virtnet_rq_dma *last_dma; + bool do_dma; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct virtnet_rq_dma { + dma_addr_t addr; + u32 ref; + u16 len; + u16 need_sync; +}; + +struct virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; +}; + +typedef __u8 virtio_net_ctrl_ack; + +struct virtio_net_ctrl_mq { + __virtio16 virtqueue_pairs; +}; + +struct virtio_net_ctrl_rss { + u32 hash_types; + u16 indirection_table_mask; + u16 unclassified_queue; + u16 indirection_table[128]; + u16 max_tx_vq; + u8 hash_key_length; + u8 key[40]; +}; + +struct virtio_net_ctrl_coal_tx { + __le32 tx_max_packets; + __le32 tx_usecs; +}; + +struct virtio_net_ctrl_coal_rx { + __le32 rx_max_packets; + __le32 rx_usecs; +}; + +struct virtio_net_ctrl_coal { + __le32 max_packets; + __le32 max_usecs; +}; + +struct virtio_net_ctrl_coal_vq { + __le16 vqn; + __le16 reserved; + struct virtio_net_ctrl_coal coal; +}; + +struct control_buf { + struct virtio_net_ctrl_hdr hdr; + virtio_net_ctrl_ack status; + struct virtio_net_ctrl_mq mq; + u8 promisc; + u8 allmulti; + __virtio16 vid; + __virtio64 offloads; + struct virtio_net_ctrl_rss rss; + struct virtio_net_ctrl_coal_tx coal_tx; + struct virtio_net_ctrl_coal_rx coal_rx; + struct virtio_net_ctrl_coal_vq coal_vq; +}; + +struct failover_ops; + +struct failover { + struct list_head list; + struct net_device __attribute__((btf_type_tag("rcu"))) *failover_dev; + netdevice_tracker dev_tracker; + struct failover_ops __attribute__((btf_type_tag("rcu"))) *ops; +}; + +struct failover_ops { + int (*slave_pre_register)(struct net_device *, struct net_device *); + int (*slave_register)(struct net_device *, struct net_device *); + int (*slave_pre_unregister)(struct net_device *, struct net_device *); + int (*slave_unregister)(struct net_device *, struct net_device *); + int (*slave_link_change)(struct net_device *, struct net_device *); + int (*slave_name_change)(struct net_device *, struct net_device *); + rx_handler_result_t (*slave_handle_frame)(struct sk_buff **); +}; + +struct virtio_net_hdr_v1 { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + union { + struct { + __virtio16 csum_start; + __virtio16 csum_offset; + }; + struct { + __virtio16 start; + __virtio16 offset; + } csum; + struct { + __le16 segments; + __le16 dup_acks; + } rsc; + }; + __virtio16 num_buffers; +}; + +struct virtio_net_hdr_v1_hash { + struct virtio_net_hdr_v1 hdr; + __le32 hash_value; + __le16 hash_report; + __le16 padding; +}; + +struct virtio_net_common_hdr { + union { + struct virtio_net_hdr hdr; + struct virtio_net_hdr_mrg_rxbuf mrg_hdr; + struct virtio_net_hdr_v1_hash hash_v1_hdr; + }; +}; + +struct virtnet_sq_free_stats { + u64 packets; + u64 bytes; +}; + +struct virtio_net_ctrl_mac { + __virtio32 entries; + __u8 macs[0]; +}; + +enum iwl_mac_config_filter_flags { + MAC_CFG_FILTER_PROMISC = 1, + MAC_CFG_FILTER_ACCEPT_CONTROL_AND_MGMT = 2, + MAC_CFG_FILTER_ACCEPT_GRP = 4, + MAC_CFG_FILTER_ACCEPT_BEACON = 8, + MAC_CFG_FILTER_ACCEPT_BCAST_PROBE_RESP = 16, + MAC_CFG_FILTER_ACCEPT_PROBE_REQ = 32, +}; + +enum iwl_mac_data_policy { + TWT_SUPPORTED = 1, + MORE_DATA_ACK_SUPPORTED = 2, + FLEXIBLE_TWT_SUPPORTED = 4, + PROTECTED_TWT_SUPPORTED = 8, + BROADCAST_TWT_SUPPORTED = 16, + COEX_HIGH_PRIORITY_ENABLE = 32, +}; + +enum iwl_mac_conf_subcmd_ids { + LOW_LATENCY_CMD = 3, + CHANNEL_SWITCH_TIME_EVENT_CMD = 4, + MISSED_VAP_NOTIF = 250, + SESSION_PROTECTION_CMD = 5, + CANCEL_CHANNEL_SWITCH_CMD = 6, + MAC_CONFIG_CMD = 8, + LINK_CONFIG_CMD = 9, + STA_CONFIG_CMD = 10, + AUX_STA_CMD = 11, + STA_REMOVE_CMD = 12, + STA_DISABLE_TX_CMD = 13, + ROC_CMD = 14, + ROC_NOTIF = 248, + SESSION_PROTECTION_NOTIF = 251, + PROBE_RESPONSE_DATA_NOTIF = 252, + CHANNEL_SWITCH_START_NOTIF = 255, + CHANNEL_SWITCH_ERROR_NOTIF = 249, +}; + +struct iwl_mac_client_data { + u8 is_assoc; + u8 esr_transition_timeout; + __le16 medium_sync_delay; + __le16 assoc_id; + __le16 reserved1; + __le16 data_policy; + __le16 reserved2; + __le32 ctwin; +}; + +struct iwl_mac_p2p_dev_data { + __le32 is_disc_extended; +}; + +struct iwl_mac_config_cmd { + __le32 id_and_color; + __le32 action; + __le32 mac_type; + u8 local_mld_addr[6]; + __le16 reserved_for_local_mld_addr; + __le32 filter_flags; + __le16 he_support; + __le16 he_ap_support; + __le32 eht_support; + __le32 nic_not_ack_enabled; + union { + struct iwl_mac_client_data client; + struct iwl_mac_p2p_dev_data p2p_dev; + }; +}; + +struct usb_dynid { + struct list_head node; + struct usb_device_id id; +}; + +enum input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 3, +}; + +struct input_mt_slot { + int abs[14]; + unsigned int frame; + unsigned int key; +}; + +struct input_mt { + int trkid; + int num_slots; + int slot; + unsigned int flags; + unsigned int frame; + int *red; + struct input_mt_slot slots[0]; +}; + +union input_seq_state { + struct { + unsigned short pos; + bool mutex_acquired; + }; + void *p; +}; + +struct input_devres { + struct input_dev *input; +}; + +struct userspace_policy { + unsigned int is_managed; + unsigned int setspeed; + struct mutex mutex; +}; + +enum tcpa_event_types { + PREBOOT = 0, + POST_CODE = 1, + UNUSED = 2, + NO_ACTION = 3, + SEPARATOR = 4, + ACTION = 5, + EVENT_TAG = 6, + SCRTM_CONTENTS = 7, + SCRTM_VERSION = 8, + CPU_MICROCODE = 9, + PLATFORM_CONFIG_FLAGS = 10, + TABLE_OF_DEVICES = 11, + COMPACT_HASH = 12, + IPL = 13, + IPL_PARTITION_DATA = 14, + NONHOST_CODE = 15, + NONHOST_CONFIG = 16, + NONHOST_INFO = 17, +}; + +struct tpm_digest { + u16 alg_id; + u8 digest[64]; +}; + +struct tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; +}; + +struct tcg_efi_specid_event_algs { + u16 alg_id; + u16 digest_size; +}; + +struct tcg_efi_specid_event_head { + u8 signature[16]; + u32 platform_class; + u8 spec_version_minor; + u8 spec_version_major; + u8 spec_errata; + u8 uintnsize; + u32 num_algs; + struct tcg_efi_specid_event_algs digest_sizes[0]; +}; + +struct tcg_event_field { + u32 event_size; + u8 event[0]; +}; + +struct tcg_pcr_event { + u32 pcr_idx; + u32 event_type; + u8 digest[20]; + u32 event_size; + u8 event[0]; +}; + +struct linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; +}; + +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; +}; + +enum efi_rts_ids { + EFI_NONE = 0, + EFI_GET_TIME = 1, + EFI_SET_TIME = 2, + EFI_GET_WAKEUP_TIME = 3, + EFI_SET_WAKEUP_TIME = 4, + EFI_GET_VARIABLE = 5, + EFI_GET_NEXT_VARIABLE = 6, + EFI_SET_VARIABLE = 7, + EFI_QUERY_VARIABLE_INFO = 8, + EFI_GET_NEXT_HIGH_MONO_COUNT = 9, + EFI_RESET_SYSTEM = 10, + EFI_UPDATE_CAPSULE = 11, + EFI_QUERY_CAPSULE_CAPS = 12, + EFI_ACPI_PRM_HANDLER = 13, +}; + +union efi_rts_args; + +struct efi_runtime_work { + union efi_rts_args *args; + efi_status_t status; + struct work_struct work; + enum efi_rts_ids efi_rts_id; + struct completion efi_rts_comp; + const void *caller; +}; + +typedef struct { + u16 year; + u8 month; + u8 day; + u8 hour; + u8 minute; + u8 second; + u8 pad1; + u32 nanosecond; + s16 timezone; + u8 daylight; + u8 pad2; +} efi_time_t; + +typedef struct { + u32 resolution; + u32 accuracy; + u8 sets_to_zero; +} efi_time_cap_t; + +typedef u8 efi_bool_t; + +typedef struct { + efi_guid_t guid; + u32 headersize; + u32 flags; + u32 imagesize; +} efi_capsule_header_t; + +union efi_rts_args { + struct { + efi_time_t *time; + efi_time_cap_t *capabilities; + } GET_TIME; + struct { + efi_time_t *time; + } SET_TIME; + struct { + efi_bool_t *enabled; + efi_bool_t *pending; + efi_time_t *time; + } GET_WAKEUP_TIME; + struct { + efi_bool_t enable; + efi_time_t *time; + } SET_WAKEUP_TIME; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 *attr; + unsigned long *data_size; + void *data; + } GET_VARIABLE; + struct { + unsigned long *name_size; + efi_char16_t *name; + efi_guid_t *vendor; + } GET_NEXT_VARIABLE; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 attr; + unsigned long data_size; + void *data; + } SET_VARIABLE; + struct { + u32 attr; + u64 *storage_space; + u64 *remaining_space; + u64 *max_variable_size; + } QUERY_VARIABLE_INFO; + struct { + u32 *high_count; + } GET_NEXT_HIGH_MONO_COUNT; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + unsigned long sg_list; + } UPDATE_CAPSULE; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + u64 *max_size; + int *reset_type; + } QUERY_CAPSULE_CAPS; + struct { + efi_status_t (*acpi_prm_handler)(u64, void *); + u64 param_buffer_addr; + void *context; + } ACPI_PRM_HANDLER; +}; + +struct quirks_list_struct { + struct hid_device_id hid_bl_item; + struct list_head node; +}; + +struct stp_proto { + unsigned char group_address[6]; + void (*rcv)(const struct stp_proto *, struct sk_buff *, struct net_device *); + void *data; +}; + +enum { + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + __ETHTOOL_STATS_CNT = 4, +}; + +enum { + ETHTOOL_A_STATS_UNSPEC = 0, + ETHTOOL_A_STATS_PAD = 1, + ETHTOOL_A_STATS_HEADER = 2, + ETHTOOL_A_STATS_GROUPS = 3, + ETHTOOL_A_STATS_GRP = 4, + ETHTOOL_A_STATS_SRC = 5, + __ETHTOOL_A_STATS_CNT = 6, + ETHTOOL_A_STATS_MAX = 5, +}; + +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, +}; + +enum { + ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, + __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, + ETHTOOL_A_STATS_ETH_PHY_MAX = 0, +}; + +enum { + ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT = 0, + ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL = 1, + ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL = 2, + ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT = 3, + ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR = 4, + ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR = 5, + ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES = 6, + ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER = 7, + ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL = 8, + ETHTOOL_A_STATS_ETH_MAC_11_XS_COL = 9, + ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR = 10, + ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR = 11, + ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES = 12, + ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR = 13, + ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST = 14, + ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST = 15, + ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER = 16, + ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST = 17, + ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST = 18, + ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR = 19, + ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN = 20, + ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR = 21, + __ETHTOOL_A_STATS_ETH_MAC_CNT = 22, + ETHTOOL_A_STATS_ETH_MAC_MAX = 21, +}; + +enum { + ETHTOOL_A_STATS_ETH_CTRL_3_TX = 0, + ETHTOOL_A_STATS_ETH_CTRL_4_RX = 1, + ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP = 2, + __ETHTOOL_A_STATS_ETH_CTRL_CNT = 3, + ETHTOOL_A_STATS_ETH_CTRL_MAX = 2, +}; + +enum { + ETHTOOL_A_STATS_RMON_UNDERSIZE = 0, + ETHTOOL_A_STATS_RMON_OVERSIZE = 1, + ETHTOOL_A_STATS_RMON_FRAG = 2, + ETHTOOL_A_STATS_RMON_JABBER = 3, + __ETHTOOL_A_STATS_RMON_CNT = 4, + ETHTOOL_A_STATS_RMON_MAX = 3, +}; + +struct stats_req_info { + struct ethnl_req_info base; + unsigned long stat_mask[1]; + enum ethtool_mac_stats_src src; +}; + +struct stats_reply_data { + struct ethnl_reply_data base; + union { + struct { + struct ethtool_eth_phy_stats phy_stats; + struct ethtool_eth_mac_stats mac_stats; + struct ethtool_eth_ctrl_stats ctrl_stats; + struct ethtool_rmon_stats rmon_stats; + }; + struct { + struct ethtool_eth_phy_stats phy_stats; + struct ethtool_eth_mac_stats mac_stats; + struct ethtool_eth_ctrl_stats ctrl_stats; + struct ethtool_rmon_stats rmon_stats; + } stats; + }; + const struct ethtool_rmon_hist_range *rmon_ranges; +}; + +struct tsq_tasklet { + struct tasklet_struct tasklet; + struct list_head head; +}; + +enum tsq_flags { + TSQF_THROTTLED = 1, + TSQF_QUEUED = 2, + TCPF_TSQ_DEFERRED = 4, + TCPF_WRITE_TIMER_DEFERRED = 8, + TCPF_DELACK_TIMER_DEFERRED = 16, + TCPF_MTU_REDUCED_DEFERRED = 32, + TCPF_ACK_DEFERRED = 64, +}; + +struct tcp_ao_key; + +struct tcp_md5sig_key; + +struct tcp_key { + union { + struct { + struct tcp_ao_key *ao_key; + char *traffic_key; + u32 sne; + u8 rcv_next; + }; + struct tcp_md5sig_key *md5_key; + }; + enum { + TCP_KEY_NONE = 0, + TCP_KEY_MD5 = 1, + TCP_KEY_AO = 2, + } type; +}; + +union tcp_ao_addr { + struct in_addr a4; + struct in6_addr a6; +}; + +struct tcp_ao_key { + struct hlist_node node; + union tcp_ao_addr addr; + u8 key[80]; + unsigned int tcp_sigpool_id; + unsigned int digest_size; + int l3index; + u8 prefixlen; + u8 family; + u8 keylen; + u8 keyflags; + u8 sndid; + u8 rcvid; + u8 maclen; + struct callback_head rcu; + atomic64_t pkt_good; + atomic64_t pkt_bad; + u8 traffic_keys[0]; +}; + +struct tcp_md5sig_key { + struct hlist_node node; + u8 keylen; + u8 family; + u8 prefixlen; + u8 flags; + union tcp_ao_addr addr; + int l3index; + u8 key[80]; + struct callback_head rcu; +}; + +enum tcp_chrono { + TCP_CHRONO_UNSPEC = 0, + TCP_CHRONO_BUSY = 1, + TCP_CHRONO_RWND_LIMITED = 2, + TCP_CHRONO_SNDBUF_LIMITED = 3, + __TCP_CHRONO_MAX = 4, +}; + +enum tsq_enum { + TSQ_THROTTLED = 0, + TSQ_QUEUED = 1, + TCP_TSQ_DEFERRED = 2, + TCP_WRITE_TIMER_DEFERRED = 3, + TCP_DELACK_TIMER_DEFERRED = 4, + TCP_MTU_REDUCED_DEFERRED = 5, + TCP_ACK_DEFERRED = 6, +}; + +enum { + BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, +}; + +enum { + TCP_NO_QUEUE = 0, + TCP_RECV_QUEUE = 1, + TCP_SEND_QUEUE = 2, + TCP_QUEUES_NR = 3, +}; + +enum sk_pacing { + SK_PACING_NONE = 0, + SK_PACING_NEEDED = 1, + SK_PACING_FQ = 2, +}; + +struct sk_buff_fclones { + struct sk_buff skb1; + struct sk_buff skb2; + refcount_t fclone_ref; +}; + +struct mptcp_out_options {}; + +struct tcp_out_options { + u16 options; + u16 mss; + u8 ws; + u8 num_sack_blocks; + u8 hash_size; + u8 bpf_opt_len; + __u8 *hash_location; + __u32 tsval; + __u32 tsecr; + struct tcp_fastopen_cookie *fastopen_cookie; + struct mptcp_out_options mptcp; +}; + +enum { + IFLA_IPTUN_UNSPEC = 0, + IFLA_IPTUN_LINK = 1, + IFLA_IPTUN_LOCAL = 2, + IFLA_IPTUN_REMOTE = 3, + IFLA_IPTUN_TTL = 4, + IFLA_IPTUN_TOS = 5, + IFLA_IPTUN_ENCAP_LIMIT = 6, + IFLA_IPTUN_FLOWINFO = 7, + IFLA_IPTUN_FLAGS = 8, + IFLA_IPTUN_PROTO = 9, + IFLA_IPTUN_PMTUDISC = 10, + IFLA_IPTUN_6RD_PREFIX = 11, + IFLA_IPTUN_6RD_RELAY_PREFIX = 12, + IFLA_IPTUN_6RD_PREFIXLEN = 13, + IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14, + IFLA_IPTUN_ENCAP_TYPE = 15, + IFLA_IPTUN_ENCAP_FLAGS = 16, + IFLA_IPTUN_ENCAP_SPORT = 17, + IFLA_IPTUN_ENCAP_DPORT = 18, + IFLA_IPTUN_COLLECT_METADATA = 19, + IFLA_IPTUN_FWMARK = 20, + __IFLA_IPTUN_MAX = 21, +}; + +struct ip_tunnel_prl { + __be32 addr; + __u16 flags; + __u16 __reserved; + __u32 datalen; + __u32 __reserved2; +}; + +struct sit_net { + struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r_l[16]; + struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r[16]; + struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_l[16]; + struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_wc[1]; + struct ip_tunnel __attribute__((btf_type_tag("rcu"))) **tunnels[4]; + struct net_device *fb_tunnel_dev; +}; + +struct pci_mmcfg_hostbridge_probe { + u32 bus; + u32 devfn; + u32 vendor; + u32 device; + const char * (*probe)(); +}; + +struct acpi_table_mcfg { + struct acpi_table_header header; + u8 reserved[8]; +}; + +struct acpi_mcfg_allocation { + u64 address; + u16 pci_segment; + u8 start_bus_number; + u8 end_bus_number; + u32 reserved; +}; + +typedef bool (*check_reserved_t)(u64, u64, enum e820_type); + +struct pt_filter { + unsigned long msr_a; + unsigned long msr_b; + unsigned long config; +}; + +struct pt_filters { + struct pt_filter filter[4]; + unsigned int nr_filters; +}; + +struct pt { + struct perf_output_handle handle; + struct pt_filters filters; + int handle_nmi; + int vmx_on; + u64 output_base; + u64 output_mask; +}; + +struct pt_pmu { + struct pmu pmu; + u32 caps[8]; + bool vmx; + bool branch_en_always_on; + unsigned long max_nonturbo_ratio; + unsigned int tsc_art_num; + unsigned int tsc_art_den; +}; + +struct pt_cap_desc { + const char *name; + u32 leaf; + u8 reg; + u32 mask; +}; + +struct pt_address_range { + unsigned long msr_a; + unsigned long msr_b; + unsigned int reg_off; +}; + +enum pt_capabilities { + PT_CAP_max_subleaf = 0, + PT_CAP_cr3_filtering = 1, + PT_CAP_psb_cyc = 2, + PT_CAP_ip_filtering = 3, + PT_CAP_mtc = 4, + PT_CAP_ptwrite = 5, + PT_CAP_power_event_trace = 6, + PT_CAP_event_trace = 7, + PT_CAP_tnt_disable = 8, + PT_CAP_topa_output = 9, + PT_CAP_topa_multiple_entries = 10, + PT_CAP_single_range_output = 11, + PT_CAP_output_subsys = 12, + PT_CAP_payloads_lip = 13, + PT_CAP_num_address_ranges = 14, + PT_CAP_mtc_periods = 15, + PT_CAP_cycle_thresholds = 16, + PT_CAP_psb_periods = 17, +}; + +enum cpuid_regs_idx { + CPUID_EAX = 0, + CPUID_EBX = 1, + CPUID_ECX = 2, + CPUID_EDX = 3, +}; + +struct topa { + struct list_head list; + u64 offset; + size_t size; + int last; + unsigned int z_count; +}; + +struct topa_entry { + u64 end: 1; + u64 rsvd0: 1; + u64 intr: 1; + u64 rsvd1: 1; + u64 stop: 1; + u64 rsvd2: 1; + u64 size: 4; + u64 rsvd3: 2; + u64 base: 36; + u64 rsvd4: 16; +}; + +struct topa_page { + struct topa_entry table[507]; + struct topa topa; +}; + +struct pt_buffer { + struct list_head tables; + struct topa *first; + struct topa *last; + struct topa *cur; + unsigned int cur_idx; + size_t output_off; + unsigned long nr_pages; + local_t data_size; + local64_t head; + bool snapshot; + bool single; + long stop_pos; + long intr_pos; + struct topa_entry *stop_te; + struct topa_entry *intr_te; + void **data_pages; +}; + +enum { + PAT_UC = 0, + PAT_WC = 1, + PAT_WT = 4, + PAT_WP = 5, + PAT_WB = 6, + PAT_UC_MINUS = 7, +}; + +struct memtype { + u64 start; + u64 end; + u64 subtree_max_end; + enum page_cache_mode type; + struct rb_node rb; +}; + +struct pagerange_state { + unsigned long cur_pfn; + int ram; + int not_ram; +}; + +typedef struct { + efi_guid_t guid; + unsigned long *ptr; + const char name[16]; +} efi_config_table_type_t; + +enum efi_secureboot_mode { + efi_secureboot_mode_unset = 0, + efi_secureboot_mode_unknown = 1, + efi_secureboot_mode_disabled = 2, + efi_secureboot_mode_enabled = 3, +}; + +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; + +typedef struct { + efi_table_hdr_t hdr; + u32 get_time; + u32 set_time; + u32 get_wakeup_time; + u32 set_wakeup_time; + u32 set_virtual_address_map; + u32 convert_pointer; + u32 get_variable; + u32 get_next_variable; + u32 set_variable; + u32 get_next_high_mono_count; + u32 reset_system; + u32 update_capsule; + u32 query_capsule_caps; + u32 query_variable_info; +} efi_runtime_services_32_t; + +typedef union { + struct { + efi_table_hdr_t hdr; + efi_status_t (*get_time)(efi_time_t *, efi_time_cap_t *); + efi_status_t (*set_time)(efi_time_t *); + efi_status_t (*get_wakeup_time)(efi_bool_t *, efi_bool_t *, efi_time_t *); + efi_status_t (*set_wakeup_time)(efi_bool_t, efi_time_t *); + efi_status_t (*set_virtual_address_map)(unsigned long, unsigned long, u32, efi_memory_desc_t *); + void *convert_pointer; + efi_status_t (*get_variable)(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); + efi_status_t (*get_next_variable)(unsigned long *, efi_char16_t *, efi_guid_t *); + efi_status_t (*set_variable)(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); + efi_status_t (*get_next_high_mono_count)(u32 *); + void (*reset_system)(int, efi_status_t, unsigned long, efi_char16_t *); + efi_status_t (*update_capsule)(efi_capsule_header_t **, unsigned long, unsigned long); + efi_status_t (*query_capsule_caps)(efi_capsule_header_t **, unsigned long, u64 *, int *); + efi_status_t (*query_variable_info)(u32, u64 *, u64 *, u64 *); + }; + efi_runtime_services_32_t mixed_mode; +} efi_runtime_services_t; + +typedef struct { + efi_guid_t guid; + u32 table; +} efi_config_table_32_t; + +typedef union { + struct { + efi_guid_t guid; + void *table; + }; + efi_config_table_32_t mixed_mode; +} efi_config_table_t; + +struct efi_info { + __u32 efi_loader_signature; + __u32 efi_systab; + __u32 efi_memdesc_size; + __u32 efi_memdesc_version; + __u32 efi_memmap; + __u32 efi_memmap_size; + __u32 efi_systab_hi; + __u32 efi_memmap_hi; +}; + +typedef struct { + u32 version; + u32 length; + u64 memory_protection_attribute; +} efi_properties_table_t; + +typedef struct { + efi_table_hdr_t hdr; + u32 fw_vendor; + u32 fw_revision; + u32 con_in_handle; + u32 con_in; + u32 con_out_handle; + u32 con_out; + u32 stderr_handle; + u32 stderr; + u32 runtime; + u32 boottime; + u32 nr_tables; + u32 tables; +} efi_system_table_32_t; + +typedef struct { + efi_table_hdr_t hdr; + u64 fw_vendor; + u32 fw_revision; + u32 __pad1; + u64 con_in_handle; + u64 con_in; + u64 con_out_handle; + u64 con_out; + u64 stderr_handle; + u64 stderr; + u64 runtime; + u64 boottime; + u32 nr_tables; + u32 __pad2; + u64 tables; +} efi_system_table_64_t; + +struct efi_setup_data { + u64 fw_vendor; + u64 __unused; + u64 tables; + u64 smbios; + u64 reserved[8]; +}; + +struct irqchip_fwid { + struct fwnode_handle fwnode; + unsigned int type; + char *name; + phys_addr_t *pa; +}; + +struct cgrp_cset_link { + struct cgroup *cgrp; + struct css_set *cset; + struct list_head cset_link; + struct list_head cgrp_link; +}; + +struct bpf_tuple { + struct bpf_prog *prog; + struct bpf_link *link; +}; + +enum hugetlbfs_size_type { + NO_SIZE = 0, + SIZE_STD = 1, + SIZE_PERCENT = 2, +}; + +enum hugetlb_param { + Opt_gid___5 = 0, + Opt_min_size = 1, + Opt_mode___5 = 2, + Opt_nr_inodes___2 = 3, + Opt_pagesize = 4, + Opt_size___2 = 5, + Opt_uid___5 = 6, +}; + +struct hugetlbfs_inode_info { + struct inode vfs_inode; + unsigned int seals; +}; + +struct resv_map { + struct kref refs; + spinlock_t lock; + struct list_head regions; + long adds_in_progress; + struct list_head region_cache; + long region_cache_count; + struct rw_semaphore rw_sema; + struct page_counter *reservation_counter; + unsigned long pages_per_hpage; + struct cgroup_subsys_state *css; +}; + +struct hugetlbfs_fs_context { + struct hstate *hstate; + unsigned long long max_size_opt; + unsigned long long min_size_opt; + long max_hpages; + long nr_inodes; + long min_hpages; + enum hugetlbfs_size_type max_val_type; + enum hugetlbfs_size_type min_val_type; + kuid_t uid; + kgid_t gid; + umode_t mode; +}; + +enum { + __QGROUP_RESERVE_BIT = 0, + QGROUP_RESERVE = 1, + __QGROUP_RESERVE_SEQ = 0, + __QGROUP_RELEASE_BIT = 1, + QGROUP_RELEASE = 2, + __QGROUP_RELEASE_SEQ = 1, + __QGROUP_FREE_BIT = 2, + QGROUP_FREE = 4, + __QGROUP_FREE_SEQ = 2, +}; + +struct btrfs_qgroup_status_item { + __le64 version; + __le64 generation; + __le64 flags; + __le64 rescan; + __le64 enable_gen; +}; + +struct btrfs_qgroup_info_item { + __le64 generation; + __le64 rfer; + __le64 rfer_cmpr; + __le64 excl; + __le64 excl_cmpr; +}; + +struct btrfs_qgroup_limit_item { + __le64 flags; + __le64 max_rfer; + __le64 max_excl; + __le64 rsv_rfer; + __le64 rsv_excl; +}; + +struct btrfs_qgroup_rsv { + u64 values[3]; +}; + +struct btrfs_qgroup { + u64 qgroupid; + u64 rfer; + u64 rfer_cmpr; + u64 excl; + u64 excl_cmpr; + u64 lim_flags; + u64 max_rfer; + u64 max_excl; + u64 rsv_rfer; + u64 rsv_excl; + struct btrfs_qgroup_rsv rsv; + struct list_head groups; + struct list_head members; + struct list_head dirty; + struct list_head iterator; + struct list_head nested_iterator; + struct rb_node node; + u64 old_refcnt; + u64 new_refcnt; + struct kobject kobj; +}; + +struct btrfs_qgroup_list { + struct list_head next_group; + struct list_head next_member; + struct btrfs_qgroup *group; + struct btrfs_qgroup *member; +}; + +struct btrfs_qgroup_extent_record { + struct rb_node node; + u64 bytenr; + u64 num_bytes; + u32 data_rsv; + u64 data_rsv_refroot; + struct ulist *old_roots; +}; + +struct btrfs_qgroup_swapped_block { + struct rb_node node; + int level; + bool trace_leaf; + u64 subvol_bytenr; + u64 subvol_generation; + u64 reloc_bytenr; + u64 reloc_generation; + u64 last_snapshot; + struct btrfs_key first_key; +}; + +struct btrfs_squota_delta { + u64 root; + u64 num_bytes; + u64 generation; + bool is_inc; + bool is_data; +}; + +struct skcipher_ctx_simple { + struct crypto_cipher *cipher; +}; + +struct crypto_rfc3686_ctx { + struct crypto_skcipher *child; + u8 nonce[4]; +}; + +struct crypto_rfc3686_req_ctx { + u8 iv[16]; + struct skcipher_request subreq; +}; + +enum prep_dispatch { + PREP_DISPATCH_OK = 0, + PREP_DISPATCH_NO_TAG = 1, + PREP_DISPATCH_NO_BUDGET = 2, +}; + +struct blk_mq_qe_pair { + struct list_head node; + struct request_queue *q; + struct elevator_type *type; +}; + +struct flush_busy_ctx_data { + struct blk_mq_hw_ctx *hctx; + struct list_head *list; +}; + +struct dispatch_rq_data { + struct blk_mq_hw_ctx *hctx; + struct request *rq; +}; + +struct blk_expired_data { + bool has_timedout_rq; + unsigned long next; + unsigned long timeout_start; +}; + +struct rq_iter_data { + struct blk_mq_hw_ctx *hctx; + bool has_rq; +}; + +struct mq_inflight { + struct block_device *part; + unsigned int inflight[2]; +}; + +struct blk_rq_wait { + struct completion done; + blk_status_t ret; +}; + +struct gen_pool_chunk { + struct list_head next_chunk; + atomic_long_t avail; + phys_addr_t phys_addr; + void *owner; + unsigned long start_addr; + unsigned long end_addr; + unsigned long bits[0]; +}; + +typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); + +struct gen_pool { + spinlock_t lock; + struct list_head chunks; + int min_alloc_order; + genpool_algo_t algo; + void *data; + const char *name; +}; + +struct genpool_data_align { + int align; +}; + +struct genpool_data_fixed { + unsigned long offset; +}; + +enum pci_mmap_state { + pci_mmap_io = 0, + pci_mmap_mem = 1, +}; + +enum pci_mmap_api { + PCI_MMAP_SYSFS = 0, + PCI_MMAP_PROCFS = 1, +}; + +enum pcie_link_width { + PCIE_LNK_WIDTH_RESRV = 0, + PCIE_LNK_X1 = 1, + PCIE_LNK_X2 = 2, + PCIE_LNK_X4 = 4, + PCIE_LNK_X8 = 8, + PCIE_LNK_X12 = 12, + PCIE_LNK_X16 = 16, + PCIE_LNK_X32 = 32, + PCIE_LNK_WIDTH_UNKNOWN = 255, +}; + +struct clk_mux { + struct clk_hw hw; + void *reg; + const u32 *table; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; +}; + +struct devres_node { + struct list_head entry; + dr_release_t release; + const char *name; + size_t size; +}; + +struct devres { + struct devres_node node; + u8 data[0]; +}; + +struct devres_group { + struct devres_node node[2]; + void *id; + int color; +}; + +struct action_devres { + void *data; + void (*action)(void *); +}; + +struct pages_devres { + unsigned long addr; + unsigned int order; +}; + +struct sg_scatter_hold { + unsigned short k_use_sg; + unsigned int sglist_len; + unsigned int bufflen; + struct page **pages; + int page_order; + char dio_in_use; + unsigned char cmd_opcode; +}; + +typedef struct sg_scatter_hold Sg_scatter_hold; + +typedef struct sg_io_hdr sg_io_hdr_t; + +struct execute_work { + struct work_struct work; +}; + +struct sg_fd; + +struct sg_request { + struct list_head entry; + struct sg_fd *parentfp; + Sg_scatter_hold data; + sg_io_hdr_t header; + unsigned char sense_b[96]; + char res_used; + char orphan; + char sg_io_owned; + char done; + struct request *rq; + struct bio *bio; + struct execute_work ew; +}; + +typedef struct sg_request Sg_request; + +struct sg_device; + +struct sg_fd { + struct list_head sfd_siblings; + struct sg_device *parentdp; + wait_queue_head_t read_wait; + rwlock_t rq_list_lock; + struct mutex f_mutex; + int timeout; + int timeout_user; + Sg_scatter_hold reserve; + struct list_head rq_list; + struct fasync_struct *async_qp; + Sg_request req_arr[16]; + char force_packid; + char cmd_q; + unsigned char next_cmd_len; + char keep_orphan; + char mmap_called; + char res_in_use; + struct kref f_ref; + struct execute_work ew; +}; + +typedef struct sg_fd Sg_fd; + +struct sg_device { + struct scsi_device *device; + wait_queue_head_t open_wait; + struct mutex open_rel_lock; + int sg_tablesize; + u32 index; + struct list_head sfds; + rwlock_t sfd_lock; + atomic_t detaching; + bool exclude; + int open_cnt; + char sgdebug; + char name[32]; + struct cdev *cdev; + struct kref d_ref; +}; + +typedef struct sg_device Sg_device; + +struct sg_header { + int pack_len; + int reply_len; + int pack_id; + int result; + unsigned int twelve_byte: 1; + unsigned int target_status: 5; + unsigned int host_status: 8; + unsigned int driver_status: 8; + unsigned int other_flags: 10; + unsigned char sense_buffer[16]; +}; + +struct compat_sg_io_hdr { + compat_int_t interface_id; + compat_int_t dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + unsigned short iovec_count; + compat_uint_t dxfer_len; + compat_uint_t dxferp; + compat_uptr_t cmdp; + compat_uptr_t sbp; + compat_uint_t timeout; + compat_uint_t flags; + compat_int_t pack_id; + compat_uptr_t usr_ptr; + unsigned char status; + unsigned char masked_status; + unsigned char msg_status; + unsigned char sb_len_wr; + unsigned short host_status; + unsigned short driver_status; + compat_int_t resid; + compat_uint_t duration; + compat_uint_t info; +}; + +struct sg_scsi_id { + int host_no; + int channel; + int scsi_id; + int lun; + int scsi_type; + short h_cmd_per_lun; + short d_queue_depth; + int unused[2]; +}; + +typedef struct sg_scsi_id sg_scsi_id_t; + +struct sg_req_info { + char req_state; + char orphan; + char sg_io_owned; + char problem; + int pack_id; + void __attribute__((btf_type_tag("user"))) *usr_ptr; + unsigned int duration; + int unused; +}; + +typedef struct sg_req_info sg_req_info_t; + +enum iwl_context_info_flags { + IWL_CTXT_INFO_AUTO_FUNC_INIT = 1, + IWL_CTXT_INFO_EARLY_DEBUG = 2, + IWL_CTXT_INFO_ENABLE_CDMP = 4, + IWL_CTXT_INFO_RB_CB_SIZE = 240, + IWL_CTXT_INFO_TFD_FORMAT_LONG = 256, + IWL_CTXT_INFO_RB_SIZE = 7680, + IWL_CTXT_INFO_RB_SIZE_1K = 1, + IWL_CTXT_INFO_RB_SIZE_2K = 2, + IWL_CTXT_INFO_RB_SIZE_4K = 4, + IWL_CTXT_INFO_RB_SIZE_8K = 8, + IWL_CTXT_INFO_RB_SIZE_12K = 9, + IWL_CTXT_INFO_RB_SIZE_16K = 10, + IWL_CTXT_INFO_RB_SIZE_20K = 11, + IWL_CTXT_INFO_RB_SIZE_24K = 12, + IWL_CTXT_INFO_RB_SIZE_28K = 13, + IWL_CTXT_INFO_RB_SIZE_32K = 14, +}; + +enum iwl_location_cipher { + IWL_LOCATION_CIPHER_CCMP_128 = 0, + IWL_LOCATION_CIPHER_GCMP_128 = 1, + IWL_LOCATION_CIPHER_GCMP_256 = 2, + IWL_LOCATION_CIPHER_INVALID = 3, + IWL_LOCATION_CIPHER_MAX = 4, +}; + +enum iwl_mvm_pasn_flags { + IWL_MVM_PASN_FLAG_HAS_HLTK = 1, +}; + +enum nl80211_peer_measurement_status { + NL80211_PMSR_STATUS_SUCCESS = 0, + NL80211_PMSR_STATUS_REFUSED = 1, + NL80211_PMSR_STATUS_TIMEOUT = 2, + NL80211_PMSR_STATUS_FAILURE = 3, +}; + +enum nl80211_peer_measurement_ftm_failure_reasons { + NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0, + NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 1, + NL80211_PMSR_FTM_FAILURE_REJECTED = 2, + NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 3, + NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 4, + NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 5, + NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 6, + NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 7, +}; + +enum iwl_location_subcmd_ids { + TOF_RANGE_REQ_CMD = 0, + TOF_CONFIG_CMD = 1, + TOF_RANGE_ABORT_CMD = 2, + TOF_RANGE_REQ_EXT_CMD = 3, + TOF_RESPONDER_CONFIG_CMD = 4, + TOF_RESPONDER_DYN_CONFIG_CMD = 5, + CSI_HEADER_NOTIFICATION = 250, + CSI_CHUNKS_NOTIFICATION = 251, + TOF_LC_NOTIF = 252, + TOF_RESPONDER_STATS = 253, + TOF_MCSI_DEBUG_NOTIF = 254, + TOF_RANGE_RESPONSE_NOTIF = 255, +}; + +enum iwl_tof_entry_status { + IWL_TOF_ENTRY_SUCCESS = 0, + IWL_TOF_ENTRY_GENERAL_FAILURE = 1, + IWL_TOF_ENTRY_NO_RESPONSE = 2, + IWL_TOF_ENTRY_REQUEST_REJECTED = 3, + IWL_TOF_ENTRY_NOT_SCHEDULED = 4, + IWL_TOF_ENTRY_TIMING_MEASURE_TIMEOUT = 5, + IWL_TOF_ENTRY_TARGET_DIFF_CH_CANNOT_CHANGE = 6, + IWL_TOF_ENTRY_RANGE_NOT_SUPPORTED = 7, + IWL_TOF_ENTRY_REQUEST_ABORT_UNKNOWN_REASON = 8, + IWL_TOF_ENTRY_LOCATION_INVALID_T1_T4_TIME_STAMP = 9, + IWL_TOF_ENTRY_11MC_PROTOCOL_FAILURE = 10, + IWL_TOF_ENTRY_REQUEST_CANNOT_SCHED = 11, + IWL_TOF_ENTRY_RESPONDER_CANNOT_COLABORATE = 12, + IWL_TOF_ENTRY_BAD_REQUEST_ARGS = 13, + IWL_TOF_ENTRY_WIFI_NOT_ENABLED = 14, + IWL_TOF_ENTRY_RESPONDER_OVERRIDE_PARAMS = 15, +}; + +enum iwl_tof_initiator_flags { + IWL_TOF_INITIATOR_FLAGS_FAST_ALGO_DISABLED = 1, + IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_A = 2, + IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_B = 4, + IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_C = 8, + IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_A = 16, + IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_B = 32, + IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_C = 64, + IWL_TOF_INITIATOR_FLAGS_MACADDR_RANDOM = 128, + IWL_TOF_INITIATOR_FLAGS_SPECIFIC_CALIB = 32768, + IWL_TOF_INITIATOR_FLAGS_COMMON_CALIB = 65536, + IWL_TOF_INITIATOR_FLAGS_NON_ASAP_SUPPORT = 1048576, +}; + +enum iwl_initiator_ap_flags { + IWL_INITIATOR_AP_FLAGS_ASAP = 2, + IWL_INITIATOR_AP_FLAGS_LCI_REQUEST = 4, + IWL_INITIATOR_AP_FLAGS_CIVIC_REQUEST = 8, + IWL_INITIATOR_AP_FLAGS_DYN_ACK = 16, + IWL_INITIATOR_AP_FLAGS_ALGO_LR = 32, + IWL_INITIATOR_AP_FLAGS_ALGO_FFT = 64, + IWL_INITIATOR_AP_FLAGS_MCSI_REPORT = 256, + IWL_INITIATOR_AP_FLAGS_NON_TB = 512, + IWL_INITIATOR_AP_FLAGS_TB = 1024, + IWL_INITIATOR_AP_FLAGS_SECURED = 2048, + IWL_INITIATOR_AP_FLAGS_LMR_FEEDBACK = 4096, + IWL_INITIATOR_AP_FLAGS_USE_CALIB = 8192, + IWL_INITIATOR_AP_FLAGS_PMF = 16384, + IWL_INITIATOR_AP_FLAGS_TERMINATE_ON_LMR_FEEDBACK = 32768, +}; + +enum iwl_location_frame_format { + IWL_LOCATION_FRAME_FORMAT_LEGACY = 0, + IWL_LOCATION_FRAME_FORMAT_HT = 1, + IWL_LOCATION_FRAME_FORMAT_VHT = 2, + IWL_LOCATION_FRAME_FORMAT_HE = 3, +}; + +enum iwl_location_bw { + IWL_LOCATION_BW_20MHZ = 0, + IWL_LOCATION_BW_40MHZ = 1, + IWL_LOCATION_BW_80MHZ = 2, + IWL_LOCATION_BW_160MHZ = 3, +}; + +enum iwl_tof_range_request_status { + IWL_TOF_RANGE_REQUEST_STATUS_SUCCESS = 0, + IWL_TOF_RANGE_REQUEST_STATUS_BUSY = 1, +}; + +enum iwl_tof_bandwidth { + IWL_TOF_BW_20_LEGACY = 0, + IWL_TOF_BW_20_HT = 1, + IWL_TOF_BW_40 = 2, + IWL_TOF_BW_80 = 3, + IWL_TOF_BW_160 = 4, + IWL_TOF_BW_NUM = 5, +}; + +enum iwl_tof_location_query { + IWL_TOF_LOC_LCI = 1, + IWL_TOF_LOC_CIVIC = 2, +}; + +enum iwl_tof_algo_type { + IWL_TOF_ALGO_TYPE_MAX_LIKE = 0, + IWL_TOF_ALGO_TYPE_LINEAR_REG = 1, + IWL_TOF_ALGO_TYPE_FFT = 2, + IWL_TOF_ALGO_TYPE_INVALID = 3, +}; + +struct iwl_mvm_ftm_pasn_entry { + struct list_head list; + u8 addr[6]; + u8 hltk[32]; + u8 tk[32]; + u8 cipher; + u8 tx_pn[6]; + u8 rx_pn[6]; + u32 flags; +}; + +struct iwl_mvm_smooth_entry { + struct list_head list; + u8 addr[6]; + s64 rtt_avg; + u64 host_time; +}; + +struct iwl_mvm_loc_entry { + struct list_head list; + u8 addr[6]; + u8 lci_len; + u8 civic_len; + u8 buf[0]; +}; + +struct cfg80211_pmsr_ftm_result { + const u8 *lci; + const u8 *civicloc; + unsigned int lci_len; + unsigned int civicloc_len; + enum nl80211_peer_measurement_ftm_failure_reasons failure_reason; + u32 num_ftmr_attempts; + u32 num_ftmr_successes; + s16 burst_index; + u8 busy_retry_time; + u8 num_bursts_exp; + u8 burst_duration; + u8 ftms_per_burst; + s32 rssi_avg; + s32 rssi_spread; + struct rate_info tx_rate; + struct rate_info rx_rate; + s64 rtt_avg; + s64 rtt_variance; + s64 rtt_spread; + s64 dist_avg; + s64 dist_variance; + s64 dist_spread; + u16 num_ftmr_attempts_valid: 1; + u16 num_ftmr_successes_valid: 1; + u16 rssi_avg_valid: 1; + u16 rssi_spread_valid: 1; + u16 tx_rate_valid: 1; + u16 rx_rate_valid: 1; + u16 rtt_avg_valid: 1; + u16 rtt_variance_valid: 1; + u16 rtt_spread_valid: 1; + u16 dist_avg_valid: 1; + u16 dist_variance_valid: 1; + u16 dist_spread_valid: 1; +}; + +struct cfg80211_pmsr_result { + u64 host_time; + u64 ap_tsf; + enum nl80211_peer_measurement_status status; + u8 addr[6]; + u8 final: 1; + u8 ap_tsf_valid: 1; + enum nl80211_peer_measurement_type type; + union { + struct cfg80211_pmsr_ftm_result ftm; + }; +}; + +struct iwl_tof_range_req_ap_entry_v2 { + u8 channel_num; + u8 bandwidth; + u8 tsf_delta_direction; + u8 ctrl_ch_position; + u8 bssid[6]; + u8 measure_type; + u8 num_of_bursts; + __le16 burst_period; + u8 samples_per_burst; + u8 retries_per_sample; + __le32 tsf_delta; + u8 location_req; + u8 asap_mode; + u8 enable_dyn_ack; + s8 rssi; + u8 algo_type; + u8 notify_mcsi; + __le16 reserved; +}; + +struct iwl_tof_range_req_cmd_v5 { + __le32 initiator_flags; + u8 request_id; + u8 initiator; + u8 one_sided_los_disable; + u8 req_timeout; + u8 report_policy; + u8 reserved0; + u8 num_of_ap; + u8 macaddr_random; + u8 range_req_bssid[6]; + u8 macaddr_template[6]; + u8 macaddr_mask[6]; + u8 ftm_rx_chains; + u8 ftm_tx_chains; + __le16 common_calib; + __le16 specific_calib; + struct iwl_tof_range_req_ap_entry_v2 ap[5]; +}; + +struct iwl_tof_range_req_ap_entry_v6 { + __le32 initiator_ap_flags; + u8 channel_num; + u8 format_bw; + u8 ctrl_ch_position; + u8 ftmr_max_retries; + u8 bssid[6]; + __le16 burst_period; + u8 samples_per_burst; + u8 num_of_bursts; + u8 sta_id; + u8 cipher; + u8 hltk[32]; + u8 tk[32]; + __le16 calib[5]; + __le16 beacon_interval; +}; + +struct iwl_tof_range_req_cmd_v9 { + __le32 initiator_flags; + u8 request_id; + u8 num_of_ap; + u8 range_req_bssid[6]; + u8 macaddr_mask[6]; + u8 macaddr_template[6]; + __le32 req_timeout_ms; + __le32 tsf_mac_id; + struct iwl_tof_range_req_ap_entry_v6 ap[5]; +}; + +struct iwl_tof_range_req_ap_entry_v3 { + __le32 initiator_ap_flags; + u8 channel_num; + u8 bandwidth; + u8 ctrl_ch_position; + u8 ftmr_max_retries; + u8 bssid[6]; + __le16 burst_period; + u8 samples_per_burst; + u8 num_of_bursts; + __le16 reserved; + __le32 tsf_delta; +}; + +struct iwl_tof_range_req_cmd_v7 { + __le32 initiator_flags; + u8 request_id; + u8 num_of_ap; + u8 range_req_bssid[6]; + u8 macaddr_mask[6]; + u8 macaddr_template[6]; + __le32 req_timeout_ms; + __le32 tsf_mac_id; + __le16 common_calib; + __le16 specific_calib; + struct iwl_tof_range_req_ap_entry_v3 ap[5]; +}; + +struct iwl_tof_range_req_ap_entry_v4 { + __le32 initiator_ap_flags; + u8 channel_num; + u8 format_bw; + u8 ctrl_ch_position; + u8 ftmr_max_retries; + u8 bssid[6]; + __le16 burst_period; + u8 samples_per_burst; + u8 num_of_bursts; + __le16 reserved; + u8 hltk[32]; + u8 tk[32]; +}; + +struct iwl_tof_range_req_cmd_v8 { + __le32 initiator_flags; + u8 request_id; + u8 num_of_ap; + u8 range_req_bssid[6]; + u8 macaddr_mask[6]; + u8 macaddr_template[6]; + __le32 req_timeout_ms; + __le32 tsf_mac_id; + __le16 common_calib; + __le16 specific_calib; + struct iwl_tof_range_req_ap_entry_v4 ap[5]; +}; + +struct iwl_tof_range_req_ap_entry_v7 { + __le32 initiator_ap_flags; + u8 channel_num; + u8 format_bw; + u8 ctrl_ch_position; + u8 ftmr_max_retries; + u8 bssid[6]; + __le16 burst_period; + u8 samples_per_burst; + u8 num_of_bursts; + u8 sta_id; + u8 cipher; + u8 hltk[32]; + u8 tk[32]; + __le16 calib[5]; + __le16 beacon_interval; + u8 rx_pn[6]; + u8 tx_pn[6]; +}; + +struct iwl_tof_range_req_cmd_v11 { + __le32 initiator_flags; + u8 request_id; + u8 num_of_ap; + u8 range_req_bssid[6]; + u8 macaddr_mask[6]; + u8 macaddr_template[6]; + __le32 req_timeout_ms; + __le32 tsf_mac_id; + struct iwl_tof_range_req_ap_entry_v7 ap[5]; +}; + +struct iwl_tof_range_req_ap_entry_v8 { + __le32 initiator_ap_flags; + u8 channel_num; + u8 format_bw; + u8 ctrl_ch_position; + u8 ftmr_max_retries; + u8 bssid[6]; + __le16 burst_period; + u8 samples_per_burst; + u8 num_of_bursts; + u8 sta_id; + u8 cipher; + u8 hltk[32]; + u8 tk[32]; + __le16 calib[5]; + __le16 beacon_interval; + u8 rx_pn[6]; + u8 tx_pn[6]; + u8 r2i_ndp_params; + u8 i2r_ndp_params; + u8 r2i_max_total_ltf; + u8 i2r_max_total_ltf; +}; + +struct iwl_tof_range_req_cmd_v12 { + __le32 initiator_flags; + u8 request_id; + u8 num_of_ap; + u8 range_req_bssid[6]; + u8 macaddr_mask[6]; + u8 macaddr_template[6]; + __le32 req_timeout_ms; + __le32 tsf_mac_id; + struct iwl_tof_range_req_ap_entry_v8 ap[5]; +}; + +struct iwl_tof_range_req_ap_entry_v9 { + __le32 initiator_ap_flags; + u8 channel_num; + u8 format_bw; + u8 ctrl_ch_position; + u8 ftmr_max_retries; + u8 bssid[6]; + __le16 burst_period; + u8 samples_per_burst; + u8 num_of_bursts; + u8 sta_id; + u8 cipher; + u8 hltk[32]; + u8 tk[32]; + __le16 calib[5]; + u16 beacon_interval; + u8 rx_pn[6]; + u8 tx_pn[6]; + u8 r2i_ndp_params; + u8 i2r_ndp_params; + u8 r2i_max_total_ltf; + u8 i2r_max_total_ltf; + u8 bss_color; + u8 band; + __le16 min_time_between_msr; +}; + +struct iwl_tof_range_req_cmd_v13 { + __le32 initiator_flags; + u8 request_id; + u8 num_of_ap; + u8 range_req_bssid[6]; + u8 macaddr_mask[6]; + u8 macaddr_template[6]; + __le32 req_timeout_ms; + __le32 tsf_mac_id; + struct iwl_tof_range_req_ap_entry_v9 ap[5]; +}; + +struct iwl_tof_range_rsp_ap_entry_ntfy_v6 { + u8 bssid[6]; + u8 measure_status; + u8 measure_bw; + __le32 rtt; + __le32 rtt_variance; + __le32 rtt_spread; + s8 rssi; + u8 rssi_spread; + u8 last_burst; + u8 refusal_period; + __le32 timestamp; + __le32 start_tsf; + __le32 rx_rate_n_flags; + __le32 tx_rate_n_flags; + __le32 t2t3_initiator; + __le32 t1t4_responder; + __le16 common_calib; + __le16 specific_calib; + __le32 papd_calib_output; + u8 rttConfidence; + u8 reserved[3]; + u8 rx_pn[6]; + u8 tx_pn[6]; +}; + +struct iwl_tof_range_abort_cmd { + u8 request_id; + u8 reserved[3]; +}; + +struct iwl_tof_range_rsp_ap_entry_ntfy_v3 { + u8 bssid[6]; + u8 measure_status; + u8 measure_bw; + __le32 rtt; + __le32 rtt_variance; + __le32 rtt_spread; + s8 rssi; + u8 rssi_spread; + u8 reserved; + u8 refusal_period; + __le32 range; + __le32 range_variance; + __le32 timestamp; + __le32 t2t3_initiator; + __le32 t1t4_responder; + __le16 common_calib; + __le16 specific_calib; + __le32 papd_calib_output; +}; + +struct iwl_tof_range_rsp_ntfy_v5 { + u8 request_id; + u8 request_status; + u8 last_in_batch; + u8 num_of_aps; + struct iwl_tof_range_rsp_ap_entry_ntfy_v3 ap[5]; +}; + +struct iwl_tof_range_rsp_ap_entry_ntfy_v4 { + u8 bssid[6]; + u8 measure_status; + u8 measure_bw; + __le32 rtt; + __le32 rtt_variance; + __le32 rtt_spread; + s8 rssi; + u8 rssi_spread; + u8 last_burst; + u8 refusal_period; + __le32 timestamp; + __le32 start_tsf; + __le32 rx_rate_n_flags; + __le32 tx_rate_n_flags; + __le32 t2t3_initiator; + __le32 t1t4_responder; + __le16 common_calib; + __le16 specific_calib; + __le32 papd_calib_output; +}; + +struct iwl_tof_range_rsp_ntfy_v6 { + u8 request_id; + u8 num_of_aps; + u8 last_report; + u8 reserved; + struct iwl_tof_range_rsp_ap_entry_ntfy_v4 ap[5]; +}; + +struct iwl_tof_range_rsp_ap_entry_ntfy_v5 { + u8 bssid[6]; + u8 measure_status; + u8 measure_bw; + __le32 rtt; + __le32 rtt_variance; + __le32 rtt_spread; + s8 rssi; + u8 rssi_spread; + u8 last_burst; + u8 refusal_period; + __le32 timestamp; + __le32 start_tsf; + __le32 rx_rate_n_flags; + __le32 tx_rate_n_flags; + __le32 t2t3_initiator; + __le32 t1t4_responder; + __le16 common_calib; + __le16 specific_calib; + __le32 papd_calib_output; + u8 rttConfidence; + u8 reserved[3]; +}; + +struct iwl_tof_range_rsp_ntfy_v7 { + u8 request_id; + u8 num_of_aps; + u8 last_report; + u8 reserved; + struct iwl_tof_range_rsp_ap_entry_ntfy_v5 ap[5]; +}; + +struct iwl_tof_range_rsp_ntfy_v8 { + u8 request_id; + u8 num_of_aps; + u8 last_report; + u8 reserved; + struct iwl_tof_range_rsp_ap_entry_ntfy_v6 ap[5]; +}; + +enum nvmem_type { + NVMEM_TYPE_UNKNOWN = 0, + NVMEM_TYPE_EEPROM = 1, + NVMEM_TYPE_OTP = 2, + NVMEM_TYPE_BATTERY_BACKED = 3, + NVMEM_TYPE_FRAM = 4, +}; + +typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); + +typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); + +struct nvmem_cell_info; + +struct nvmem_device; + +struct nvmem_keepout; + +struct nvmem_layout; + +struct nvmem_config { + struct device *dev; + const char *name; + int id; + struct module *owner; + const struct nvmem_cell_info *cells; + int ncells; + bool add_legacy_fixed_of_cells; + void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + enum nvmem_type type; + bool read_only; + bool root_only; + bool ignore_wp; + struct nvmem_layout *layout; + struct device_node *of_node; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + int size; + int word_size; + int stride; + void *priv; + bool compat; + struct device *base_dev; +}; + +typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); + +struct nvmem_cell_info { + const char *name; + unsigned int offset; + size_t raw_len; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; + nvmem_cell_post_process_t read_post_process; + void *priv; +}; + +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; +}; + +struct nvmem_layout { + struct device dev; + struct nvmem_device *nvmem; + int (*add_cells)(struct nvmem_layout *); +}; + +enum rc5_state { + STATE_INACTIVE___5 = 0, + STATE_BIT_START = 1, + STATE_BIT_END = 2, + STATE_CHECK_RC5X = 3, + STATE_FINISHED___3 = 4, +}; + +enum hid_class_request { + HID_REQ_GET_REPORT = 1, + HID_REQ_GET_IDLE = 2, + HID_REQ_GET_PROTOCOL = 3, + HID_REQ_SET_REPORT = 9, + HID_REQ_SET_IDLE = 10, + HID_REQ_SET_PROTOCOL = 11, +}; + +struct hid_control_fifo { + unsigned char dir; + struct hid_report *report; + char *raw_report; +}; + +struct hid_output_fifo { + struct hid_report *report; + char *raw_report; +}; + +struct usbhid_device { + struct hid_device *hid; + struct usb_interface *intf; + int ifnum; + unsigned int bufsize; + struct urb *urbin; + char *inbuf; + dma_addr_t inbuf_dma; + struct urb *urbctrl; + struct usb_ctrlrequest *cr; + struct hid_control_fifo ctrl[256]; + unsigned char ctrlhead; + unsigned char ctrltail; + char *ctrlbuf; + dma_addr_t ctrlbuf_dma; + unsigned long last_ctrl; + struct urb *urbout; + struct hid_output_fifo out[256]; + unsigned char outhead; + unsigned char outtail; + char *outbuf; + dma_addr_t outbuf_dma; + unsigned long last_out; + struct mutex mutex; + spinlock_t lock; + unsigned long iofl; + struct timer_list io_retry; + unsigned long stop_retry; + unsigned int retry_delay; + struct work_struct reset_work; + wait_queue_head_t wait; +}; + +struct hid_class_descriptor { + __u8 bDescriptorType; + __le16 wDescriptorLength; +} __attribute__((packed)); + +struct hid_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdHID; + __u8 bCountryCode; + __u8 bNumDescriptors; + struct hid_class_descriptor desc[1]; +} __attribute__((packed)); + +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID = 0, + NL_ATTR_TYPE_FLAG = 1, + NL_ATTR_TYPE_U8 = 2, + NL_ATTR_TYPE_U16 = 3, + NL_ATTR_TYPE_U32 = 4, + NL_ATTR_TYPE_U64 = 5, + NL_ATTR_TYPE_S8 = 6, + NL_ATTR_TYPE_S16 = 7, + NL_ATTR_TYPE_S32 = 8, + NL_ATTR_TYPE_S64 = 9, + NL_ATTR_TYPE_BINARY = 10, + NL_ATTR_TYPE_STRING = 11, + NL_ATTR_TYPE_NUL_STRING = 12, + NL_ATTR_TYPE_NESTED = 13, + NL_ATTR_TYPE_NESTED_ARRAY = 14, + NL_ATTR_TYPE_BITFIELD32 = 15, + NL_ATTR_TYPE_SINT = 16, + NL_ATTR_TYPE_UINT = 17, +}; + +enum netlink_policy_type_attr { + NL_POLICY_TYPE_ATTR_UNSPEC = 0, + NL_POLICY_TYPE_ATTR_TYPE = 1, + NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2, + NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3, + NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4, + NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5, + NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6, + NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7, + NL_POLICY_TYPE_ATTR_POLICY_IDX = 8, + NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9, + NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10, + NL_POLICY_TYPE_ATTR_PAD = 11, + NL_POLICY_TYPE_ATTR_MASK = 12, + __NL_POLICY_TYPE_ATTR_MAX = 13, + NL_POLICY_TYPE_ATTR_MAX = 12, +}; + +struct netlink_policy_dump_state { + unsigned int policy_idx; + unsigned int attr_idx; + unsigned int n_alloc; + struct { + const struct nla_policy *policy; + unsigned int maxtype; + } policies[0]; +}; + +struct bpf_dummy_ops_state; + +struct bpf_dummy_ops { + int (*test_1)(struct bpf_dummy_ops_state *); + int (*test_2)(struct bpf_dummy_ops_state *, int, unsigned short, char, unsigned long); + int (*test_sleepable)(struct bpf_dummy_ops_state *); +}; + +struct bpf_dummy_ops_state { + int val; +}; + +enum bpf_struct_ops_state { + BPF_STRUCT_OPS_STATE_INIT = 0, + BPF_STRUCT_OPS_STATE_INUSE = 1, + BPF_STRUCT_OPS_STATE_TOBEFREE = 2, + BPF_STRUCT_OPS_STATE_READY = 3, +}; + +struct bpf_struct_ops_common_value { + refcount_t refcnt; + enum bpf_struct_ops_state state; +}; + +struct bpf_struct_ops_bpf_dummy_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct bpf_dummy_ops data; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_dummy_ops_test_args { + u64 args[12]; + struct bpf_dummy_ops_state state; +}; + +typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...); + +struct lwtunnel_encap_ops { + int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *); + void (*destroy_state)(struct lwtunnel_state *); + int (*output)(struct net *, struct sock *, struct sk_buff *); + int (*input)(struct sk_buff *); + int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *); + int (*get_encap_size)(struct lwtunnel_state *); + int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *); + int (*xmit)(struct sk_buff *); + struct module *owner; +}; + +enum lwtunnel_ip_t { + LWTUNNEL_IP_UNSPEC = 0, + LWTUNNEL_IP_ID = 1, + LWTUNNEL_IP_DST = 2, + LWTUNNEL_IP_SRC = 3, + LWTUNNEL_IP_TTL = 4, + LWTUNNEL_IP_TOS = 5, + LWTUNNEL_IP_FLAGS = 6, + LWTUNNEL_IP_PAD = 7, + LWTUNNEL_IP_OPTS = 8, + __LWTUNNEL_IP_MAX = 9, +}; + +enum { + LWTUNNEL_IP_OPTS_UNSPEC = 0, + LWTUNNEL_IP_OPTS_GENEVE = 1, + LWTUNNEL_IP_OPTS_VXLAN = 2, + LWTUNNEL_IP_OPTS_ERSPAN = 3, + __LWTUNNEL_IP_OPTS_MAX = 4, +}; + +enum { + LWTUNNEL_IP_OPT_GENEVE_UNSPEC = 0, + LWTUNNEL_IP_OPT_GENEVE_CLASS = 1, + LWTUNNEL_IP_OPT_GENEVE_TYPE = 2, + LWTUNNEL_IP_OPT_GENEVE_DATA = 3, + __LWTUNNEL_IP_OPT_GENEVE_MAX = 4, +}; + +enum { + LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, + LWTUNNEL_IP_OPT_VXLAN_GBP = 1, + __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, +}; + +enum { + LWTUNNEL_IP_OPT_ERSPAN_UNSPEC = 0, + LWTUNNEL_IP_OPT_ERSPAN_VER = 1, + LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2, + LWTUNNEL_IP_OPT_ERSPAN_DIR = 3, + LWTUNNEL_IP_OPT_ERSPAN_HWID = 4, + __LWTUNNEL_IP_OPT_ERSPAN_MAX = 5, +}; + +enum lwtunnel_ip6_t { + LWTUNNEL_IP6_UNSPEC = 0, + LWTUNNEL_IP6_ID = 1, + LWTUNNEL_IP6_DST = 2, + LWTUNNEL_IP6_SRC = 3, + LWTUNNEL_IP6_HOPLIMIT = 4, + LWTUNNEL_IP6_TC = 5, + LWTUNNEL_IP6_FLAGS = 6, + LWTUNNEL_IP6_PAD = 7, + LWTUNNEL_IP6_OPTS = 8, + __LWTUNNEL_IP6_MAX = 9, +}; + +struct snmp_mib { + const char *name; + int entry; +}; + +enum ieee80211_encrypt { + ENCRYPT_NO = 0, + ENCRYPT_MGMT = 1, + ENCRYPT_DATA = 2, +}; + +enum mesh_path_flags { + MESH_PATH_ACTIVE = 1, + MESH_PATH_RESOLVING = 2, + MESH_PATH_SN_VALID = 4, + MESH_PATH_FIXED = 8, + MESH_PATH_RESOLVED = 16, + MESH_PATH_REQ_QUEUED = 32, + MESH_PATH_DELETED = 64, +}; + +typedef unsigned int ieee80211_tx_result; + +typedef bool fq_skb_filter_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *, void *); + +typedef void fq_skb_free_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *); + +struct ieee80211_tx_data { + struct sk_buff *skb; + struct sk_buff_head skbs; + struct ieee80211_local *local; + struct ieee80211_sub_if_data *sdata; + struct sta_info *sta; + struct ieee80211_key *key; + struct ieee80211_tx_rate rate; + unsigned int flags; +}; + +typedef struct sk_buff *fq_tin_dequeue_t(struct fq *, struct fq_tin *, struct fq_flow *); + +typedef u32 (*codel_skb_len_t)(const struct sk_buff *); + +typedef codel_time_t (*codel_skb_time_t)(const struct sk_buff *); + +typedef void (*codel_skb_drop_t)(struct sk_buff *, void *); + +typedef struct sk_buff * (*codel_skb_dequeue_t)(struct codel_vars *, void *); + +struct ieee80211_mutable_offsets { + u16 tim_offset; + u16 tim_length; + u16 cntdwn_counter_offs[2]; + u16 mbssid_off; +}; + +struct ieee80211_ema_beacons { + u8 cnt; + struct { + struct sk_buff *skb; + struct ieee80211_mutable_offsets offs; + } bcn[0]; +}; + +struct mesh_path { + u8 dst[6]; + u8 mpp[6]; + struct rhash_head rhash; + struct hlist_node walk_list; + struct hlist_node gate_list; + struct ieee80211_sub_if_data *sdata; + struct sta_info __attribute__((btf_type_tag("rcu"))) *next_hop; + struct timer_list timer; + struct sk_buff_head frame_queue; + struct callback_head rcu; + u32 sn; + u32 metric; + u8 hop_count; + unsigned long exp_time; + u32 discovery_timeout; + u8 discovery_retries; + enum mesh_path_flags flags; + spinlock_t state_lock; + u8 rann_snd_addr[6]; + u32 rann_metric; + unsigned long last_preq_to_root; + unsigned long fast_tx_check; + bool is_root; + bool is_gate; + u32 path_change_count; +}; + +struct ieee80211s_hdr { + u8 flags; + u8 ttl; + __le32 seqnum; + u8 eaddr1[6]; + u8 eaddr2[6]; +} __attribute__((packed)); + +struct ieee80211_pspoll { + __le16 frame_control; + __le16 aid; + u8 bssid[6]; + u8 ta[6]; +}; + +struct ieee80211_rts { + __le16 frame_control; + __le16 duration; + u8 ra[6]; + u8 ta[6]; +}; + +struct ieee80211_cts { + __le16 frame_control; + __le16 duration; + u8 ra[6]; +}; + +struct sigcontext_64 { + __u64 r8; + __u64 r9; + __u64 r10; + __u64 r11; + __u64 r12; + __u64 r13; + __u64 r14; + __u64 r15; + __u64 di; + __u64 si; + __u64 bp; + __u64 bx; + __u64 dx; + __u64 ax; + __u64 cx; + __u64 sp; + __u64 ip; + __u64 flags; + __u16 cs; + __u16 gs; + __u16 fs; + __u16 ss; + __u64 err; + __u64 trapno; + __u64 oldmask; + __u64 cr2; + __u64 fpstate; + __u64 reserved1[8]; +}; + +struct ucontext { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + struct sigcontext_64 uc_mcontext; + sigset_t uc_sigmask; +}; + +struct rt_sigframe { + char __attribute__((btf_type_tag("user"))) *pretcode; + struct ucontext uc; + struct siginfo info; +}; + +struct irq_matrix; + +typedef void (*btf_trace_irq_matrix_online)(void *, struct irq_matrix *); + +struct cpumap; + +struct irq_matrix { + unsigned int matrix_bits; + unsigned int alloc_start; + unsigned int alloc_end; + unsigned int alloc_size; + unsigned int global_available; + unsigned int global_reserved; + unsigned int systembits_inalloc; + unsigned int total_allocated; + unsigned int online_maps; + struct cpumap __attribute__((btf_type_tag("percpu"))) *maps; + unsigned long *system_map; + unsigned long scratch_map[0]; +}; + +struct cpumap { + unsigned int available; + unsigned int allocated; + unsigned int managed; + unsigned int managed_allocated; + bool initialized; + bool online; + unsigned long *managed_map; + unsigned long alloc_map[0]; +}; + +typedef void (*btf_trace_irq_matrix_offline)(void *, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_reserve)(void *, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_remove_reserved)(void *, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_assign_system)(void *, int, struct irq_matrix *); + +typedef void (*btf_trace_irq_matrix_alloc_reserved)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_reserve_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_remove_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_alloc_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_assign)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_alloc)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +typedef void (*btf_trace_irq_matrix_free)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); + +struct trace_event_raw_irq_matrix_global { + struct trace_entry ent; + unsigned int online_maps; + unsigned int global_available; + unsigned int global_reserved; + unsigned int total_allocated; + char __data[0]; +}; + +struct trace_event_raw_irq_matrix_global_update { + struct trace_entry ent; + int bit; + unsigned int online_maps; + unsigned int global_available; + unsigned int global_reserved; + unsigned int total_allocated; + char __data[0]; +}; + +struct trace_event_raw_irq_matrix_cpu { + struct trace_entry ent; + int bit; + unsigned int cpu; + bool online; + unsigned int available; + unsigned int allocated; + unsigned int managed; + unsigned int online_maps; + unsigned int global_available; + unsigned int global_reserved; + unsigned int total_allocated; + char __data[0]; +}; + +struct trace_event_data_offsets_irq_matrix_global {}; + +struct trace_event_data_offsets_irq_matrix_global_update {}; + +struct trace_event_data_offsets_irq_matrix_cpu {}; + +struct listener_list { + struct rw_semaphore sem; + struct list_head list; +}; + +enum { + TASKSTATS_CMD_UNSPEC = 0, + TASKSTATS_CMD_GET = 1, + TASKSTATS_CMD_NEW = 2, + __TASKSTATS_CMD_MAX = 3, +}; + +enum { + TASKSTATS_TYPE_UNSPEC = 0, + TASKSTATS_TYPE_PID = 1, + TASKSTATS_TYPE_TGID = 2, + TASKSTATS_TYPE_STATS = 3, + TASKSTATS_TYPE_AGGR_PID = 4, + TASKSTATS_TYPE_AGGR_TGID = 5, + TASKSTATS_TYPE_NULL = 6, + __TASKSTATS_TYPE_MAX = 7, +}; + +enum { + TASKSTATS_CMD_ATTR_UNSPEC = 0, + TASKSTATS_CMD_ATTR_PID = 1, + TASKSTATS_CMD_ATTR_TGID = 2, + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 3, + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 4, + __TASKSTATS_CMD_ATTR_MAX = 5, +}; + +enum actions { + REGISTER = 0, + DEREGISTER = 1, + CPU_DONT_CARE = 2, +}; + +enum { + CGROUPSTATS_CMD_ATTR_UNSPEC = 0, + CGROUPSTATS_CMD_ATTR_FD = 1, + __CGROUPSTATS_CMD_ATTR_MAX = 2, +}; + +enum { + CGROUPSTATS_CMD_UNSPEC = 3, + CGROUPSTATS_CMD_GET = 4, + CGROUPSTATS_CMD_NEW = 5, + __CGROUPSTATS_CMD_MAX = 6, +}; + +enum { + CGROUPSTATS_TYPE_UNSPEC = 0, + CGROUPSTATS_TYPE_CGROUP_STATS = 1, + __CGROUPSTATS_TYPE_MAX = 2, +}; + +struct listener { + struct list_head list; + pid_t pid; + char valid; +}; + +struct cgroupstats { + __u64 nr_sleeping; + __u64 nr_running; + __u64 nr_stopped; + __u64 nr_uninterruptible; + __u64 nr_io_wait; +}; + +struct bpf_iter__bpf_link { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_link *link; + }; +}; + +struct bpf_iter_seq_link_info { + u32 link_id; +}; + +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, + ZONE_BELOW_HIGH = 2, +}; + +typedef int fpi_t; + +struct page_frag_cache { + void *va; + __u16 offset; + __u16 size; + unsigned int pagecnt_bias; + bool pfmemalloc; +}; + +struct ext4_system_zone { + struct rb_node node; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; +}; + +struct debugfs_cancellation { + struct list_head list; + void (*cancel)(struct dentry *, void *); + void *cancel_data; +}; + +struct debugfs_fsdata { + const struct file_operations *real_fops; + union { + debugfs_automount_t automount; + struct { + refcount_t active_users; + struct completion active_users_drained; + struct mutex cancellations_mtx; + struct list_head cancellations; + }; + }; +}; + +struct debugfs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; + +struct debugfs_fs_info { + struct debugfs_mount_opts mount_opts; +}; + +struct crypto_kpp { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct kpp_request; + +struct kpp_alg { + int (*set_secret)(struct crypto_kpp *, const void *, unsigned int); + int (*generate_public_key)(struct kpp_request *); + int (*compute_shared_secret)(struct kpp_request *); + unsigned int (*max_size)(struct crypto_kpp *); + int (*init)(struct crypto_kpp *); + void (*exit)(struct crypto_kpp *); + struct crypto_alg base; +}; + +struct kpp_request { + struct crypto_async_request base; + struct scatterlist *src; + struct scatterlist *dst; + unsigned int src_len; + unsigned int dst_len; + void *__ctx[0]; +}; + +struct kpp_instance { + void (*free)(struct kpp_instance *); + union { + struct { + char head[48]; + struct crypto_instance base; + } s; + struct kpp_alg alg; + }; +}; + +struct crypto_istat_kpp { + atomic64_t setsecret_cnt; + atomic64_t generate_public_key_cnt; + atomic64_t compute_shared_secret_cnt; + atomic64_t err_cnt; +}; + +struct crypto_kpp_spawn { + struct crypto_spawn base; +}; + +struct ioc_gq; + +struct ioc_now; + +typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); + +struct iocg_stat { + u64 usage_us; + u64 wait_us; + u64 indebt_us; + u64 indelay_us; +}; + +struct ioc; + +struct iocg_pcpu_stat; + +struct ioc_gq { + struct blkg_policy_data pd; + struct ioc *ioc; + u32 cfg_weight; + u32 weight; + u32 active; + u32 inuse; + u32 last_inuse; + s64 saved_margin; + sector_t cursor; + atomic64_t vtime; + atomic64_t done_vtime; + u64 abs_vdebt; + u64 delay; + u64 delay_at; + atomic64_t active_period; + struct list_head active_list; + u64 child_active_sum; + u64 child_inuse_sum; + u64 child_adjusted_sum; + int hweight_gen; + u32 hweight_active; + u32 hweight_inuse; + u32 hweight_donating; + u32 hweight_after_donation; + struct list_head walk_list; + struct list_head surplus_list; + struct wait_queue_head waitq; + struct hrtimer waitq_timer; + u64 activated_at; + struct iocg_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat; + struct iocg_stat stat; + struct iocg_stat last_stat; + u64 last_stat_abs_vusage; + u64 usage_delta_us; + u64 wait_since; + u64 indebt_since; + u64 indelay_since; + int level; + struct ioc_gq *ancestors[0]; +}; + +struct ioc_params { + u32 qos[6]; + u64 i_lcoefs[6]; + u64 lcoefs[6]; + u32 too_fast_vrate_pct; + u32 too_slow_vrate_pct; +}; + +struct ioc_margins { + s64 min; + s64 low; + s64 target; +}; + +enum ioc_running { + IOC_IDLE = 0, + IOC_RUNNING = 1, + IOC_STOP = 2, +}; + +struct ioc_pcpu_stat; + +struct ioc { + struct rq_qos rqos; + bool enabled; + struct ioc_params params; + struct ioc_margins margins; + u32 period_us; + u32 timer_slack_ns; + u64 vrate_min; + u64 vrate_max; + spinlock_t lock; + struct timer_list timer; + struct list_head active_iocgs; + struct ioc_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat; + enum ioc_running running; + atomic64_t vtime_rate; + u64 vtime_base_rate; + s64 vtime_err; + seqcount_spinlock_t period_seqcount; + u64 period_at; + u64 period_at_vtime; + atomic64_t cur_period; + int busy_level; + bool weights_updated; + atomic_t hweight_gen; + u64 dfgv_period_at; + u64 dfgv_period_rem; + u64 dfgv_usage_us_sum; + u64 autop_too_fast_at; + u64 autop_too_slow_at; + int autop_idx; + bool user_qos_params: 1; + bool user_cost_model: 1; +}; + +struct ioc_missed { + local_t nr_met; + local_t nr_missed; + u32 last_met; + u32 last_missed; +}; + +struct ioc_pcpu_stat { + struct ioc_missed missed[2]; + local64_t rq_wait_ns; + u64 last_rq_wait_ns; +}; + +struct iocg_pcpu_stat { + local64_t abs_vusage; +}; + +struct ioc_now { + u64 now_ns; + u64 now; + u64 vnow; +}; + +typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); + +typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); + +typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); + +typedef void (*btf_trace_iocost_inuse_adjust)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); + +typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int); + +typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64); + +enum { + MILLION = 1000000, + MIN_PERIOD = 1000, + MAX_PERIOD = 1000000, + MARGIN_MIN_PCT = 10, + MARGIN_LOW_PCT = 20, + MARGIN_TARGET_PCT = 50, + INUSE_ADJ_STEP_PCT = 25, + TIMER_SLACK_PCT = 1, + WEIGHT_ONE = 65536, +}; + +enum { + QOS_RPPM = 0, + QOS_RLAT = 1, + QOS_WPPM = 2, + QOS_WLAT = 3, + QOS_MIN = 4, + QOS_MAX = 5, + NR_QOS_PARAMS = 6, +}; + +enum { + QOS_ENABLE = 0, + QOS_CTRL = 1, + NR_QOS_CTRL_PARAMS = 2, +}; + +enum { + VTIME_PER_SEC_SHIFT = 37ULL, + VTIME_PER_SEC = 137438953472ULL, + VTIME_PER_USEC = 137438ULL, + VTIME_PER_NSEC = 137ULL, + VRATE_MIN_PPM = 10000ULL, + VRATE_MAX_PPM = 100000000ULL, + VRATE_MIN = 1374ULL, + VRATE_CLAMP_ADJ_PCT = 4ULL, + AUTOP_CYCLE_NSEC = 10000000000ULL, +}; + +enum { + AUTOP_INVALID = 0, + AUTOP_HDD = 1, + AUTOP_SSD_QD1 = 2, + AUTOP_SSD_DFL = 3, + AUTOP_SSD_FAST = 4, +}; + +enum { + RQ_WAIT_BUSY_PCT = 5, + UNBUSY_THR_PCT = 75, + MIN_DELAY_THR_PCT = 500, + MAX_DELAY_THR_PCT = 25000, + MIN_DELAY = 250, + MAX_DELAY = 250000, + DFGV_USAGE_PCT = 50, + DFGV_PERIOD = 100000, + MAX_LAGGING_PERIODS = 10, + IOC_PAGE_SHIFT = 12, + IOC_PAGE_SIZE = 4096, + IOC_SECT_TO_PAGE_SHIFT = 3, + LCOEF_RANDIO_PAGES = 4096, +}; + +enum { + I_LCOEF_RBPS = 0, + I_LCOEF_RSEQIOPS = 1, + I_LCOEF_RRANDIOPS = 2, + I_LCOEF_WBPS = 3, + I_LCOEF_WSEQIOPS = 4, + I_LCOEF_WRANDIOPS = 5, + NR_I_LCOEFS = 6, +}; + +enum { + LCOEF_RPAGE = 0, + LCOEF_RSEQIO = 1, + LCOEF_RRANDIO = 2, + LCOEF_WPAGE = 3, + LCOEF_WSEQIO = 4, + LCOEF_WRANDIO = 5, + NR_LCOEFS = 6, +}; + +enum { + COST_CTRL = 0, + COST_MODEL = 1, + NR_COST_CTRL_PARAMS = 2, +}; + +struct trace_event_raw_iocost_iocg_state { + struct trace_entry ent; + u32 __data_loc_devname; + u32 __data_loc_cgroup; + u64 now; + u64 vnow; + u64 vrate; + u64 last_period; + u64 cur_period; + u64 vtime; + u32 weight; + u32 inuse; + u64 hweight_active; + u64 hweight_inuse; + char __data[0]; +}; + +struct trace_event_raw_iocg_inuse_update { + struct trace_entry ent; + u32 __data_loc_devname; + u32 __data_loc_cgroup; + u64 now; + u32 old_inuse; + u32 new_inuse; + u64 old_hweight_inuse; + u64 new_hweight_inuse; + char __data[0]; +}; + +struct trace_event_raw_iocost_ioc_vrate_adj { + struct trace_entry ent; + u32 __data_loc_devname; + u64 old_vrate; + u64 new_vrate; + int busy_level; + u32 read_missed_ppm; + u32 write_missed_ppm; + u32 rq_wait_pct; + int nr_lagging; + int nr_shortages; + char __data[0]; +}; + +struct trace_event_raw_iocost_iocg_forgive_debt { + struct trace_entry ent; + u32 __data_loc_devname; + u32 __data_loc_cgroup; + u64 now; + u64 vnow; + u32 usage_pct; + u64 old_debt; + u64 new_debt; + u64 old_delay; + u64 new_delay; + char __data[0]; +}; + +struct ioc_cgrp { + struct blkcg_policy_data cpd; + unsigned int dfl_weight; +}; + +struct iocg_wait { + struct wait_queue_entry wait; + struct bio *bio; + u64 abs_cost; + bool committed; +}; + +struct trace_event_data_offsets_iocost_iocg_state { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iocg_inuse_update { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct trace_event_data_offsets_iocost_ioc_vrate_adj { + u32 devname; + const void *devname_ptr_; +}; + +struct trace_event_data_offsets_iocost_iocg_forgive_debt { + u32 devname; + const void *devname_ptr_; + u32 cgroup; + const void *cgroup_ptr_; +}; + +struct iocg_wake_ctx { + struct ioc_gq *iocg; + u32 hw_inuse; + s64 vbudget; +}; + +struct acpi_wakeup_handler { + struct list_head list_node; + bool (*wakeup)(void *); + void *context; +}; + +typedef acpi_status (*acpi_table_handler)(u32, void *, void *); + +struct acpi_dev_walk_context { + int (*fn)(struct acpi_device *, void *); + void *data; +}; + +struct acpi_pci_ioapic { + acpi_handle root_handle; + acpi_handle handle; + u32 gsi_base; + struct resource res; + struct pci_dev *pdev; + struct list_head list; +}; + +struct memdev { + const char *name; + const struct file_operations *fops; + fmode_t fmode; + umode_t mode; +}; + +enum iwl_cfg_trans_ltr_delay { + IWL_CFG_TRANS_LTR_DELAY_NONE = 0, + IWL_CFG_TRANS_LTR_DELAY_200US = 1, + IWL_CFG_TRANS_LTR_DELAY_2500US = 2, + IWL_CFG_TRANS_LTR_DELAY_1820US = 3, +}; + +struct iwl_soc_configuration_cmd { + __le32 flags; + __le32 latency; +}; + +struct iwl_rfh_queue_data { + u8 q_num; + u8 enable; + __le16 reserved; + __le64 urbd_stts_wrptr; + __le64 fr_bd_cb; + __le64 ur_bd_cb; + __le32 fr_bd_wid; +} __attribute__((packed)); + +struct iwl_rfh_queue_config { + u8 num_queues; + u8 reserved[3]; + struct iwl_rfh_queue_data data[0]; +}; + +enum rtw_regulatory_domains { + RTW_REGD_FCC = 0, + RTW_REGD_MKK = 1, + RTW_REGD_ETSI = 2, + RTW_REGD_IC = 3, + RTW_REGD_KCC = 4, + RTW_REGD_ACMA = 5, + RTW_REGD_CHILE = 6, + RTW_REGD_UKRAINE = 7, + RTW_REGD_MEXICO = 8, + RTW_REGD_CN = 9, + RTW_REGD_QATAR = 10, + RTW_REGD_UK = 11, + RTW_REGD_WW = 12, + RTW_REGD_MAX = 13, +}; + +enum rtw_phy_band_type { + PHY_BAND_2G = 0, + PHY_BAND_5G = 1, +}; + +enum rtw_phy_cck_pd_lv { + CCK_PD_LV0 = 0, + CCK_PD_LV1 = 1, + CCK_PD_LV2 = 2, + CCK_PD_LV3 = 3, + CCK_PD_LV4 = 4, + CCK_PD_LV_MAX = 5, +}; + +struct rtw_phy_stat_iter_data { + struct rtw_dev *rtwdev; + u8 min_rssi; +}; + +struct rtw_rx_addr_match_data { + struct rtw_dev *rtwdev; + struct ieee80211_hdr *hdr; + struct rtw_rx_pkt_stat *pkt_stat; + u8 *bssid; +}; + +struct phy_cfg_pair { + u32 addr; + u32 data; +}; + +union phy_table_tile { + struct rtw_phy_cond cond; + struct phy_cfg_pair cfg; +}; + +struct rtw_power_params { + u8 pwr_base; + s8 pwr_offset; + s8 pwr_limit; + s8 pwr_remnant; + s8 pwr_sar; +}; + +enum { + POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0, + POWER_SUPPLY_TECHNOLOGY_NiMH = 1, + POWER_SUPPLY_TECHNOLOGY_LION = 2, + POWER_SUPPLY_TECHNOLOGY_LIPO = 3, + POWER_SUPPLY_TECHNOLOGY_LiFe = 4, + POWER_SUPPLY_TECHNOLOGY_NiCd = 5, + POWER_SUPPLY_TECHNOLOGY_LiMn = 6, +}; + +enum { + POWER_SUPPLY_SCOPE_UNKNOWN = 0, + POWER_SUPPLY_SCOPE_SYSTEM = 1, + POWER_SUPPLY_SCOPE_DEVICE = 2, +}; + +enum power_supply_notifier_events { + PSY_EVENT_PROP_CHANGED = 0, +}; + +struct psy_am_i_supplied_data { + struct power_supply *psy; + unsigned int count; +}; + +struct psy_get_supplier_prop_data { + struct power_supply *psy; + enum power_supply_property psp; + union power_supply_propval *val; +}; + +struct power_supply_config { + struct device_node *of_node; + struct fwnode_handle *fwnode; + void *drv_data; + const struct attribute_group **attr_grp; + char **supplied_to; + size_t num_supplicants; +}; + +struct dm_ioctl; + +typedef int (*ioctl_fn___2)(struct file *, struct dm_ioctl *, size_t); + +struct dm_ioctl { + __u32 version[3]; + __u32 data_size; + __u32 data_start; + __u32 target_count; + __s32 open_count; + __u32 flags; + __u32 event_nr; + __u32 padding; + __u64 dev; + char name[128]; + char uuid[129]; + char data[7]; +}; + +enum { + DM_VERSION_CMD = 0, + DM_REMOVE_ALL_CMD = 1, + DM_LIST_DEVICES_CMD = 2, + DM_DEV_CREATE_CMD = 3, + DM_DEV_REMOVE_CMD = 4, + DM_DEV_RENAME_CMD = 5, + DM_DEV_SUSPEND_CMD = 6, + DM_DEV_STATUS_CMD = 7, + DM_DEV_WAIT_CMD = 8, + DM_TABLE_LOAD_CMD = 9, + DM_TABLE_CLEAR_CMD = 10, + DM_TABLE_DEPS_CMD = 11, + DM_TABLE_STATUS_CMD = 12, + DM_LIST_VERSIONS_CMD = 13, + DM_TARGET_MSG_CMD = 14, + DM_DEV_SET_GEOMETRY_CMD = 15, + DM_DEV_ARM_POLL_CMD = 16, + DM_GET_TARGET_VERSION_CMD = 17, +}; + +struct hash_cell { + struct rb_node name_node; + struct rb_node uuid_node; + bool name_set; + bool uuid_set; + char *name; + char *uuid; + struct mapped_device *md; + struct dm_table *new_map; +}; + +struct dm_target_spec { + __u64 sector_start; + __u64 length; + __s32 status; + __u32 next; + char target_type[16]; +}; + +struct dm_target_msg { + __u64 sector; + char message[0]; +}; + +struct dm_target_deps { + __u32 count; + __u32 padding; + __u64 dev[0]; +}; + +struct dm_target_versions; + +struct vers_iter { + size_t param_size; + struct dm_target_versions *vers; + struct dm_target_versions *old_vers; + char *end; + uint32_t flags; +}; + +struct dm_target_versions { + __u32 next; + __u32 version[3]; + char name[0]; +}; + +struct dm_file { + volatile unsigned int global_event_nr; +}; + +struct dm_name_list { + __u64 dev; + __u32 next; + char name[0]; +}; + +enum qdisc_state_t { + __QDISC_STATE_SCHED = 0, + __QDISC_STATE_DEACTIVATED = 1, + __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, +}; + +enum { + TCA_UNSPEC = 0, + TCA_KIND = 1, + TCA_OPTIONS = 2, + TCA_STATS = 3, + TCA_XSTATS = 4, + TCA_RATE = 5, + TCA_FCNT = 6, + TCA_STATS2 = 7, + TCA_STAB = 8, + TCA_PAD = 9, + TCA_DUMP_INVISIBLE = 10, + TCA_CHAIN = 11, + TCA_HW_OFFLOAD = 12, + TCA_INGRESS_BLOCK = 13, + TCA_EGRESS_BLOCK = 14, + TCA_DUMP_FLAGS = 15, + TCA_EXT_WARN_MSG = 16, + __TCA_MAX = 17, +}; + +enum qdisc_state2_t { + __QDISC_STATE2_RUNNING = 0, +}; + +struct mini_Qdisc { + struct tcf_proto *filter_list; + struct tcf_block *block; + struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats; + struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats; + unsigned long rcu_state; +}; + +struct skb_array { + struct ptr_ring ring; +}; + +struct pfifo_fast_priv { + struct skb_array q[3]; +}; + +struct tc_prio_qopt { + int bands; + __u8 priomap[16]; +}; + +struct psched_ratecfg { + u64 rate_bytes_ps; + u32 mult; + u16 overhead; + u16 mpu; + u8 linklayer; + u8 shift; +}; + +struct tc_ratespec { + unsigned char cell_log; + __u8 linklayer; + unsigned short overhead; + short cell_align; + unsigned short mpu; + __u32 rate; +}; + +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; + u8 shift; +}; + +struct mini_Qdisc_pair { + struct mini_Qdisc miniq1; + struct mini_Qdisc miniq2; + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; +}; + +struct nft_rbtree_elem { + struct nft_elem_priv priv; + struct rb_node node; + struct nft_set_ext ext; +}; + +struct seqcount_rwlock { + seqcount_t seqcount; + rwlock_t *lock; +}; + +typedef struct seqcount_rwlock seqcount_rwlock_t; + +struct nft_rbtree { + struct rb_root root; + rwlock_t lock; + seqcount_rwlock_t count; + unsigned long last_gc; +}; + +struct gre_base_hdr { + __be16 flags; + __be16 protocol; +}; + +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); + +enum { + BR_GROUPFWD_STP = 1, + BR_GROUPFWD_MACPAUSE = 2, + BR_GROUPFWD_LACP = 4, +}; + +enum { + IFLA_BR_UNSPEC = 0, + IFLA_BR_FORWARD_DELAY = 1, + IFLA_BR_HELLO_TIME = 2, + IFLA_BR_MAX_AGE = 3, + IFLA_BR_AGEING_TIME = 4, + IFLA_BR_STP_STATE = 5, + IFLA_BR_PRIORITY = 6, + IFLA_BR_VLAN_FILTERING = 7, + IFLA_BR_VLAN_PROTOCOL = 8, + IFLA_BR_GROUP_FWD_MASK = 9, + IFLA_BR_ROOT_ID = 10, + IFLA_BR_BRIDGE_ID = 11, + IFLA_BR_ROOT_PORT = 12, + IFLA_BR_ROOT_PATH_COST = 13, + IFLA_BR_TOPOLOGY_CHANGE = 14, + IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, + IFLA_BR_HELLO_TIMER = 16, + IFLA_BR_TCN_TIMER = 17, + IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, + IFLA_BR_GC_TIMER = 19, + IFLA_BR_GROUP_ADDR = 20, + IFLA_BR_FDB_FLUSH = 21, + IFLA_BR_MCAST_ROUTER = 22, + IFLA_BR_MCAST_SNOOPING = 23, + IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, + IFLA_BR_MCAST_QUERIER = 25, + IFLA_BR_MCAST_HASH_ELASTICITY = 26, + IFLA_BR_MCAST_HASH_MAX = 27, + IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, + IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, + IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, + IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, + IFLA_BR_MCAST_QUERIER_INTVL = 32, + IFLA_BR_MCAST_QUERY_INTVL = 33, + IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, + IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, + IFLA_BR_NF_CALL_IPTABLES = 36, + IFLA_BR_NF_CALL_IP6TABLES = 37, + IFLA_BR_NF_CALL_ARPTABLES = 38, + IFLA_BR_VLAN_DEFAULT_PVID = 39, + IFLA_BR_PAD = 40, + IFLA_BR_VLAN_STATS_ENABLED = 41, + IFLA_BR_MCAST_STATS_ENABLED = 42, + IFLA_BR_MCAST_IGMP_VERSION = 43, + IFLA_BR_MCAST_MLD_VERSION = 44, + IFLA_BR_VLAN_STATS_PER_PORT = 45, + IFLA_BR_MULTI_BOOLOPT = 46, + IFLA_BR_MCAST_QUERIER_STATE = 47, + IFLA_BR_FDB_N_LEARNED = 48, + IFLA_BR_FDB_MAX_LEARNED = 49, + __IFLA_BR_MAX = 50, +}; + +enum { + LINK_XSTATS_TYPE_UNSPEC = 0, + LINK_XSTATS_TYPE_BRIDGE = 1, + LINK_XSTATS_TYPE_BOND = 2, + __LINK_XSTATS_TYPE_MAX = 3, +}; + +enum { + BRIDGE_XSTATS_UNSPEC = 0, + BRIDGE_XSTATS_VLAN = 1, + BRIDGE_XSTATS_MCAST = 2, + BRIDGE_XSTATS_PAD = 3, + BRIDGE_XSTATS_STP = 4, + __BRIDGE_XSTATS_MAX = 5, +}; + +struct bridge_vlan_info { + __u16 flags; + __u16 vid; +}; + +struct net_bridge_fdb_flush_desc { + unsigned long flags; + unsigned long flags_mask; + int port_ifindex; + u16 vlan_id; +}; + +struct br_boolopt_multi { + __u32 optval; + __u32 optmask; +}; + +struct radix_tree_preload { + local_lock_t lock; + unsigned int nr; + struct xa_node *nodes; +}; + +enum { + RADIX_TREE_ITER_TAG_MASK = 15, + RADIX_TREE_ITER_TAGGED = 16, + RADIX_TREE_ITER_CONTIG = 32, +}; + +struct radix_tree_iter { + unsigned long index; + unsigned long next_index; + unsigned long tags; + struct xa_node *node; +}; + +enum { + X86_PERF_KFREE_SHARED = 0, + X86_PERF_KFREE_EXCL = 1, + X86_PERF_KFREE_MAX = 2, +}; + +struct stack_frame { + struct stack_frame *next_frame; + unsigned long return_address; +}; + +struct sched_state { + int weight; + int event; + int counter; + int unassigned; + int nr_gp; + u64 used; +}; + +struct perf_sched { + int max_weight; + int max_events; + int max_gp; + int saved_states; + struct event_constraint **constraints; + struct sched_state state; + struct sched_state saved[2]; +}; + +struct cyc2ns_data { + u32 cyc2ns_mul; + u32 cyc2ns_shift; + u64 cyc2ns_offset; +}; + +struct x86_pmu_capability { + int version; + int num_counters_gp; + int num_counters_fixed; + int bit_width_gp; + int bit_width_fixed; + unsigned int events_mask; + int events_mask_len; + unsigned int pebs_ept: 1; +}; + +enum energy_perf_value_index { + EPB_INDEX_PERFORMANCE = 0, + EPB_INDEX_BALANCE_PERFORMANCE = 1, + EPB_INDEX_NORMAL = 2, + EPB_INDEX_BALANCE_POWERSAVE = 3, + EPB_INDEX_POWERSAVE = 4, +}; + +struct var_mtrr_range_state { + unsigned long base_pfn; + unsigned long size_pfn; + mtrr_type type; +}; + +typedef void (*btf_trace_notifier_register)(void *, void *); + +typedef void (*btf_trace_notifier_unregister)(void *, void *); + +typedef void (*btf_trace_notifier_run)(void *, void *); + +struct trace_event_raw_notifier_info { + struct trace_entry ent; + void *cb; + char __data[0]; +}; + +struct trace_event_data_offsets_notifier_info {}; + +typedef unsigned long perf_trace_t[1024]; + +struct bpf_crypto_type_list { + const struct bpf_crypto_type *type; + struct list_head list; +}; + +struct bpf_crypto_ctx { + const struct bpf_crypto_type *type; + void *tfm; + u32 siv_len; + struct callback_head rcu; + refcount_t usage; +}; + +struct bpf_crypto_params { + char type[14]; + u8 reserved[2]; + char algo[128]; + u8 key[256]; + u32 key_len; + u32 authsize; +}; + +struct zpool { + struct zpool_driver *driver; + void *pool; +}; + +enum kernfs_node_flag { + KERNFS_ACTIVATED = 16, + KERNFS_NS = 32, + KERNFS_HAS_SEQ_SHOW = 64, + KERNFS_HAS_MMAP = 128, + KERNFS_LOCKDEP = 256, + KERNFS_HIDDEN = 512, + KERNFS_SUICIDAL = 1024, + KERNFS_SUICIDED = 2048, + KERNFS_EMPTY_DIR = 4096, + KERNFS_HAS_RELEASE = 8192, + KERNFS_REMOVING = 16384, +}; + +enum fuse_req_flag { + FR_ISREPLY = 0, + FR_FORCE = 1, + FR_BACKGROUND = 2, + FR_WAITING = 3, + FR_ABORTED = 4, + FR_INTERRUPTED = 5, + FR_LOCKED = 6, + FR_PENDING = 7, + FR_SENT = 8, + FR_FINISHED = 9, + FR_PRIVATE = 10, + FR_ASYNC = 11, +}; + +enum fuse_notify_code { + FUSE_NOTIFY_POLL = 1, + FUSE_NOTIFY_INVAL_INODE = 2, + FUSE_NOTIFY_INVAL_ENTRY = 3, + FUSE_NOTIFY_STORE = 4, + FUSE_NOTIFY_RETRIEVE = 5, + FUSE_NOTIFY_DELETE = 6, + FUSE_NOTIFY_RESEND = 7, + FUSE_NOTIFY_CODE_MAX = 8, +}; + +struct fuse_pqueue { + unsigned int connected; + spinlock_t lock; + struct list_head *processing; + struct list_head io; +}; + +struct fuse_dev { + struct fuse_conn *fc; + struct fuse_pqueue pq; + struct list_head entry; +}; + +struct fuse_in_header { + uint32_t len; + uint32_t opcode; + uint64_t unique; + uint64_t nodeid; + uint32_t uid; + uint32_t gid; + uint32_t pid; + uint16_t total_extlen; + uint16_t padding; +}; + +struct fuse_out_header { + uint32_t len; + int32_t error; + uint64_t unique; +}; + +struct fuse_req { + struct list_head list; + struct list_head intr_entry; + struct fuse_args *args; + refcount_t count; + unsigned long flags; + struct { + struct fuse_in_header h; + } in; + struct { + struct fuse_out_header h; + } out; + wait_queue_head_t waitq; + struct fuse_mount *fm; +}; + +struct fuse_notify_retrieve_in { + uint64_t dummy1; + uint64_t offset; + uint32_t size; + uint32_t dummy2; + uint64_t dummy3; + uint64_t dummy4; +}; + +struct fuse_retrieve_args { + struct fuse_args_pages ap; + struct fuse_notify_retrieve_in inarg; +}; + +struct fuse_copy_state { + int write; + struct fuse_req *req; + struct iov_iter *iter; + struct pipe_buffer *pipebufs; + struct pipe_buffer *currbuf; + struct pipe_inode_info *pipe; + unsigned long nr_segs; + struct page *pg; + unsigned int len; + unsigned int offset; + unsigned int move_pages: 1; +}; + +struct fuse_batch_forget_in { + uint32_t count; + uint32_t dummy; +}; + +struct fuse_forget_in { + uint64_t nlookup; +}; + +struct fuse_notify_retrieve_out { + uint64_t notify_unique; + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_notify_inval_entry_out { + uint64_t parent; + uint32_t namelen; + uint32_t flags; +}; + +struct fuse_notify_store_out { + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_notify_inval_inode_out { + uint64_t ino; + int64_t off; + int64_t len; +}; + +struct fuse_notify_delete_out { + uint64_t parent; + uint64_t child; + uint32_t namelen; + uint32_t padding; +}; + +struct fuse_interrupt_in { + uint64_t unique; +}; + +struct btrfs_free_space_info { + __le32 extent_count; + __le32 flags; +}; + +enum { + CRYPTO_AUTHENC_KEYA_UNSPEC = 0, + CRYPTO_AUTHENC_KEYA_PARAM = 1, +}; + +struct crypto_ahash_spawn { + struct crypto_spawn base; +}; + +struct authenc_instance_ctx { + struct crypto_ahash_spawn auth; + struct crypto_skcipher_spawn enc; + unsigned int reqoff; +}; + +struct crypto_ahash { + bool using_shash; + unsigned int statesize; + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_authenc_keys { + const u8 *authkey; + const u8 *enckey; + unsigned int authkeylen; + unsigned int enckeylen; +}; + +struct crypto_authenc_key_param { + __be32 enckeylen; +}; + +struct crypto_authenc_ctx { + struct crypto_ahash *auth; + struct crypto_skcipher *enc; + struct crypto_sync_skcipher *null; +}; + +struct authenc_request_ctx { + struct scatterlist src[2]; + struct scatterlist dst[2]; + char tail[0]; +}; + +struct pci_filp_private { + enum pci_mmap_state mmap_state; + int write_combine; +}; + +enum { + ACPI_BUTTON_LID_INIT_IGNORE = 0, + ACPI_BUTTON_LID_INIT_OPEN = 1, + ACPI_BUTTON_LID_INIT_METHOD = 2, + ACPI_BUTTON_LID_INIT_DISABLED = 3, +}; + +struct acpi_button { + unsigned int type; + struct input_dev *input; + char phys[32]; + unsigned long pushed; + int last_state; + ktime_t last_time; + bool suspended; + bool lid_state_initialized; +}; + +typedef u32 (*acpi_event_handler)(void *); + +typedef enum { + OSL_GLOBAL_LOCK_HANDLER = 0, + OSL_NOTIFY_HANDLER = 1, + OSL_GPE_HANDLER = 2, + OSL_DEBUGGER_MAIN_THREAD = 3, + OSL_DEBUGGER_EXEC_THREAD = 4, + OSL_EC_POLL_HANDLER = 5, + OSL_EC_BURST_HANDLER = 6, +} acpi_execute_type; + +typedef void (*acpi_osd_exec_callback)(void *); + +struct md_cluster_operations { + int (*join)(struct mddev *, int); + int (*leave)(struct mddev *); + int (*slot_number)(struct mddev *); + int (*resync_info_update)(struct mddev *, sector_t, sector_t); + void (*resync_info_get)(struct mddev *, sector_t *, sector_t *); + int (*metadata_update_start)(struct mddev *); + int (*metadata_update_finish)(struct mddev *); + void (*metadata_update_cancel)(struct mddev *); + int (*resync_start)(struct mddev *); + int (*resync_finish)(struct mddev *); + int (*area_resyncing)(struct mddev *, int, sector_t, sector_t); + int (*add_new_disk)(struct mddev *, struct md_rdev *); + void (*add_new_disk_cancel)(struct mddev *); + int (*new_disk_ack)(struct mddev *, bool); + int (*remove_disk)(struct mddev *, struct md_rdev *); + void (*load_bitmaps)(struct mddev *, int); + int (*gather_bitmaps)(struct md_rdev *); + int (*resize_bitmaps)(struct mddev *, sector_t, sector_t); + int (*lock_all_bitmaps)(struct mddev *); + void (*unlock_all_bitmaps)(struct mddev *); + void (*update_size)(struct mddev *, sector_t); +}; + +struct rdev_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct md_rdev *, char *); + ssize_t (*store)(struct md_rdev *, const char *, size_t); +}; + +struct super_type { + char *name; + struct module *owner; + int (*load_super)(struct md_rdev *, struct md_rdev *, int); + int (*validate_super)(struct mddev *, struct md_rdev *, struct md_rdev *); + void (*sync_super)(struct mddev *, struct md_rdev *); + unsigned long long (*rdev_size_change)(struct md_rdev *, sector_t); + int (*allow_new_offset)(struct md_rdev *, unsigned long long); +}; + +enum md_ro_state { + MD_RDWR = 0, + MD_RDONLY = 1, + MD_AUTO_READ = 2, + MD_MAX_STATE = 3, +}; + +enum { + MD_RESYNC_NONE = 0, + MD_RESYNC_YIELDED = 1, + MD_RESYNC_DELAYED = 2, + MD_RESYNC_ACTIVE = 3, +}; + +enum array_state { + clear = 0, + inactive = 1, + suspended = 2, + readonly = 3, + read_auto = 4, + clean = 5, + active = 6, + write_pending = 7, + active_idle = 8, + broken = 9, + bad_word = 10, +}; + +struct detected_devices_node { + struct list_head list; + dev_t dev; +}; + +struct md_io_clone { + struct mddev *mddev; + struct bio *orig_bio; + unsigned long start_time; + struct bio bio_clone; +}; + +struct mdp_superblock_1 { + __le32 magic; + __le32 major_version; + __le32 feature_map; + __le32 pad0; + __u8 set_uuid[16]; + char set_name[32]; + __le64 ctime; + __le32 level; + __le32 layout; + __le64 size; + __le32 chunksize; + __le32 raid_disks; + union { + __le32 bitmap_offset; + struct { + __le16 offset; + __le16 size; + } ppl; + }; + __le32 new_level; + __le64 reshape_position; + __le32 delta_disks; + __le32 new_layout; + __le32 new_chunk; + __le32 new_offset; + __le64 data_offset; + __le64 data_size; + __le64 super_offset; + union { + __le64 recovery_offset; + __le64 journal_tail; + }; + __le32 dev_number; + __le32 cnt_corrected_read; + __u8 device_uuid[16]; + __u8 devflags; + __u8 bblog_shift; + __le16 bblog_size; + __le32 bblog_offset; + __le64 utime; + __le64 events; + __le64 resync_offset; + __le32 sb_csum; + __le32 max_dev; + __u8 pad3[32]; + __le16 dev_roles[0]; +}; + +struct mdu_version_s { + int major; + int minor; + int patchlevel; +}; + +typedef struct mdu_version_s mdu_version_t; + +struct mdu_array_info_s { + int major_version; + int minor_version; + int patch_version; + unsigned int ctime; + int level; + int size; + int nr_disks; + int raid_disks; + int md_minor; + int not_persistent; + unsigned int utime; + int state; + int active_disks; + int working_disks; + int failed_disks; + int spare_disks; + int layout; + int chunk_size; +}; + +typedef struct mdu_array_info_s mdu_array_info_t; + +struct mdu_bitmap_file_s { + char pathname[4096]; +}; + +typedef struct mdu_bitmap_file_s mdu_bitmap_file_t; + +struct mdu_disk_info_s { + int number; + int major; + int minor; + int raid_disk; + int state; +}; + +typedef struct mdu_disk_info_s mdu_disk_info_t; + +struct mdp_device_descriptor_s { + __u32 number; + __u32 major; + __u32 minor; + __u32 raid_disk; + __u32 state; + __u32 reserved[27]; +}; + +typedef struct mdp_device_descriptor_s mdp_disk_t; + +struct mdp_superblock_s { + __u32 md_magic; + __u32 major_version; + __u32 minor_version; + __u32 patch_version; + __u32 gvalid_words; + __u32 set_uuid0; + __u32 ctime; + __u32 level; + __u32 size; + __u32 nr_disks; + __u32 raid_disks; + __u32 md_minor; + __u32 not_persistent; + __u32 set_uuid1; + __u32 set_uuid2; + __u32 set_uuid3; + __u32 gstate_creserved[16]; + __u32 utime; + __u32 state; + __u32 active_disks; + __u32 working_disks; + __u32 failed_disks; + __u32 spare_disks; + __u32 sb_csum; + __u32 events_lo; + __u32 events_hi; + __u32 cp_events_lo; + __u32 cp_events_hi; + __u32 recovery_cp; + __u64 reshape_position; + __u32 new_level; + __u32 delta_disks; + __u32 new_layout; + __u32 new_chunk; + __u32 gstate_sreserved[14]; + __u32 layout; + __u32 chunk_size; + __u32 root_pv; + __u32 root_block; + __u32 pstate_reserved[60]; + mdp_disk_t disks[27]; + __u32 reserved[0]; + mdp_disk_t this_disk; +}; + +typedef struct mdp_superblock_s mdp_super_t; + +enum { + ETHTOOL_A_LINKMODES_UNSPEC = 0, + ETHTOOL_A_LINKMODES_HEADER = 1, + ETHTOOL_A_LINKMODES_AUTONEG = 2, + ETHTOOL_A_LINKMODES_OURS = 3, + ETHTOOL_A_LINKMODES_PEER = 4, + ETHTOOL_A_LINKMODES_SPEED = 5, + ETHTOOL_A_LINKMODES_DUPLEX = 6, + ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 7, + ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 8, + ETHTOOL_A_LINKMODES_LANES = 9, + ETHTOOL_A_LINKMODES_RATE_MATCHING = 10, + __ETHTOOL_A_LINKMODES_CNT = 11, + ETHTOOL_A_LINKMODES_MAX = 10, +}; + +struct linkmodes_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; + bool peer_empty; +}; + +struct bictcp { + u32 cnt; + u32 last_max_cwnd; + u32 last_cwnd; + u32 last_time; + u32 bic_origin_point; + u32 bic_K; + u32 delay_min; + u32 epoch_start; + u32 ack_cnt; + u32 tcp_cwnd; + u16 unused; + u8 sample_cnt; + u8 found; + u32 round_start; + u32 end_seq; + u32 last_ack; + u32 curr_rtt; +}; + +enum { + NFEA_UNSPEC = 0, + NFEA_ACTIVITY_NOTIFY = 1, + NFEA_DONT_REFRESH = 2, + __NFEA_MAX = 3, +}; + +enum { + FDB_NOTIFY_BIT = 1, + FDB_NOTIFY_INACTIVE_BIT = 2, +}; + +struct __fdb_entry { + __u8 mac_addr[6]; + __u8 port_no; + __u8 is_local; + __u32 ageing_timer_value; + __u8 port_hi; + __u8 pad0; + __u16 unused; +}; + +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; +}; + +struct imc_uncore_pci_dev { + __u32 pci_id; + struct pci_driver *driver; +}; + +struct pci2phy_map { + struct list_head list; + int segment; + int pbus_to_dieid[256]; +}; + +enum rwsem_waiter_type { + RWSEM_WAITING_FOR_WRITE = 0, + RWSEM_WAITING_FOR_READ = 1, +}; + +enum rwsem_wake_type { + RWSEM_WAKE_ANY = 0, + RWSEM_WAKE_READERS = 1, + RWSEM_WAKE_READ_OWNED = 2, +}; + +enum owner_state { + OWNER_NULL = 1, + OWNER_WRITER = 2, + OWNER_READER = 4, + OWNER_NONSPINNABLE = 8, +}; + +struct rwsem_waiter { + struct list_head list; + struct task_struct *task; + enum rwsem_waiter_type type; + unsigned long timeout; + bool handoff_set; +}; + +struct linked_page; + +struct chain_allocator { + struct linked_page *chain; + unsigned int used_space; + gfp_t gfp_mask; + int safe_needed; +}; + +struct linked_page { + struct linked_page *next; + char data[4088]; +}; + +struct pbe { + void *address; + void *orig_address; + struct pbe *next; +}; + +struct mem_zone_bm_rtree; + +struct rtree_node; + +struct bm_position { + struct mem_zone_bm_rtree *zone; + struct rtree_node *node; + unsigned long node_pfn; + unsigned long cur_pfn; + int node_bit; +}; + +struct memory_bitmap { + struct list_head zones; + struct linked_page *p_list; + struct bm_position cur; +}; + +struct mem_zone_bm_rtree { + struct list_head list; + struct list_head nodes; + struct list_head leaves; + unsigned long start_pfn; + unsigned long end_pfn; + struct rtree_node *rtree; + int levels; + unsigned int blocks; +}; + +struct rtree_node { + struct list_head list; + unsigned long *data; +}; + +struct nosave_region { + struct list_head list; + unsigned long start_pfn; + unsigned long end_pfn; +}; + +struct swsusp_info { + struct new_utsname uts; + u32 version_code; + unsigned long num_physpages; + int cpus; + unsigned long image_pages; + unsigned long pages; + unsigned long size; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct mem_extent { + struct list_head hook; + unsigned long start; + unsigned long end; +}; + +struct snapshot_handle { + unsigned int cur; + void *buffer; + int sync_read; +}; + +typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); + +struct bpf_nested_pt_regs { + struct pt_regs regs[3]; +}; + +struct bpf_trace_sample_data { + struct perf_sample_data sds[3]; +}; + +struct send_signal_irq_work { + struct irq_work irq_work; + struct task_struct *task; + u32 sig; + enum pid_type type; +}; + +struct bpf_raw_tp_regs { + struct pt_regs regs[3]; +}; + +enum key_lookup_flag { + KEY_LOOKUP_CREATE = 1, + KEY_LOOKUP_PARTIAL = 2, + KEY_LOOKUP_ALL = 3, +}; + +enum uprobe_filter_ctx { + UPROBE_FILTER_REGISTER = 0, + UPROBE_FILTER_UNREGISTER = 1, + UPROBE_FILTER_MMAP = 2, +}; + +enum { + BPF_F_UPROBE_MULTI_RETURN = 1, +}; + +enum { + BPF_F_GET_BRANCH_RECORDS_SIZE = 1, +}; + +typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); + +typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); + +typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); + +typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); + +typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); + +typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); + +typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); + +typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); + +typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); + +struct btf_ptr; + +typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); + +struct btf_ptr { + void *ptr; + __u32 type_id; + __u32 flags; +}; + +typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); + +struct bpf_perf_event_value; + +typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); + +struct bpf_perf_event_value { + __u64 counter; + __u64 enabled; + __u64 running; +}; + +typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_current_task)(); + +typedef u64 (*btf_bpf_get_current_task_btf)(); + +typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); + +typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); + +typedef u64 (*btf_bpf_send_signal)(u32); + +typedef u64 (*btf_bpf_send_signal_thread)(u32); + +typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); + +typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); + +typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); + +typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); + +typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); + +typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); + +typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); + +typedef u64 (*btf_get_func_ret)(void *, u64 *); + +typedef u64 (*btf_get_func_arg_cnt)(void *); + +typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); + +typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); + +typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); + +struct trace_event_raw_bpf_trace_printk { + struct trace_entry ent; + u32 __data_loc_bpf_string; + char __data[0]; +}; + +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + bool is_uprobe; +}; + +struct trace_uprobe; + +struct uprobe_dispatch_data { + struct trace_uprobe *tu; + unsigned long bp_addr; +}; + +struct bpf_uprobe; + +struct bpf_uprobe_multi_run_ctx { + struct bpf_run_ctx run_ctx; + unsigned long entry_ip; + struct bpf_uprobe *uprobe; +}; + +struct uprobe_consumer { + int (*handler)(struct uprobe_consumer *, struct pt_regs *); + int (*ret_handler)(struct uprobe_consumer *, unsigned long, struct pt_regs *); + bool (*filter)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); + struct uprobe_consumer *next; +}; + +struct bpf_uprobe_multi_link; + +struct bpf_uprobe { + struct bpf_uprobe_multi_link *link; + loff_t offset; + unsigned long ref_ctr_offset; + u64 cookie; + struct uprobe_consumer consumer; +}; + +struct bpf_uprobe_multi_link { + struct path path; + struct bpf_link link; + u32 cnt; + u32 flags; + struct bpf_uprobe *uprobes; + struct task_struct *task; +}; + +struct bpf_trace_module { + struct module *module; + struct list_head list; +}; + +struct trace_event_data_offsets_bpf_trace_printk { + u32 bpf_string; + const void *bpf_string_ptr_; +}; + +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); + +struct bpf_key { + struct key *key; + bool has_ref; +}; + +struct perf_event_query_bpf { + __u32 ids_len; + __u32 prog_cnt; + __u32 ids[0]; +}; + +struct fsuuid2 { + __u8 len; + __u8 uuid[16]; +}; + +struct file_dedupe_range_info { + __s64 dest_fd; + __u64 dest_offset; + __u64 bytes_deduped; + __s32 status; + __u32 reserved; +}; + +struct file_dedupe_range { + __u64 src_offset; + __u64 src_length; + __u16 dest_count; + __u16 reserved1; + __u32 reserved2; + struct file_dedupe_range_info info[0]; +}; + +struct file_clone_range { + __s64 src_fd; + __u64 src_offset; + __u64 src_length; + __u64 dest_offset; +}; + +struct space_resv { + __s16 l_type; + __s16 l_whence; + __s64 l_start; + __s64 l_len; + __s32 l_sysid; + __u32 l_pid; + __s32 l_pad[4]; +}; + +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; +}; + +struct fs_sysfs_path { + __u8 len; + __u8 name[128]; +}; + +struct fiemap { + __u64 fm_start; + __u64 fm_length; + __u32 fm_flags; + __u32 fm_mapped_extents; + __u32 fm_extent_count; + __u32 fm_reserved; + struct fiemap_extent fm_extents[0]; +}; + +struct essiv_tfm_ctx { + union { + struct crypto_skcipher *skcipher; + struct crypto_aead *aead; + } u; + struct crypto_cipher *essiv_cipher; + struct crypto_shash *hash; + int ivoffset; +}; + +struct essiv_instance_ctx { + union { + struct crypto_skcipher_spawn skcipher_spawn; + struct crypto_aead_spawn aead_spawn; + } u; + char essiv_cipher_name[128]; + char shash_driver_name[128]; +}; + +struct essiv_aead_request_ctx { + struct scatterlist sg[4]; + u8 *assoc; + struct aead_request aead_req; +}; + +struct clk_fixed_rate { + struct clk_hw hw; + unsigned long fixed_rate; + unsigned long fixed_accuracy; + unsigned long flags; +}; + +struct req { + struct req *next; + struct completion done; + int err; + const char *name; + umode_t mode; + kuid_t uid; + kgid_t gid; + struct device *dev; +}; + +enum iwl_bt_coex_mode { + BT_COEX_DISABLE = 0, + BT_COEX_NW = 1, + BT_COEX_BT = 2, + BT_COEX_WIFI = 3, +}; + +enum iwl_bt_coex_enabled_modules { + BT_COEX_MPLUT_ENABLED = 1, + BT_COEX_MPLUT_BOOST_ENABLED = 2, + BT_COEX_SYNC2SCO_ENABLED = 4, + BT_COEX_CORUN_ENABLED = 8, + BT_COEX_HIGH_BAND_RET = 16, +}; + +enum iwl_bt_activity_grading { + BT_OFF = 0, + BT_ON_NO_CONNECTION = 1, + BT_LOW_TRAFFIC = 2, + BT_HIGH_TRAFFIC = 3, + BT_VERY_HIGH_TRAFFIC = 4, + BT_MAX_AG = 5, +}; + +enum iwl_bt_coex_lut_type { + BT_COEX_TIGHT_LUT = 0, + BT_COEX_LOOSE_LUT = 1, + BT_COEX_TX_DIS_LUT = 2, + BT_COEX_MAX_LUT = 3, + BT_COEX_INVALID_LUT = 255, +}; + +struct iwl_bt_iterator_data { + struct iwl_bt_coex_profile_notif *notif; + struct iwl_mvm *mvm; + struct ieee80211_chanctx_conf *primary; + struct ieee80211_chanctx_conf *secondary; + bool primary_ll; + u8 primary_load; + u8 secondary_load; +}; + +struct iwl_bt_coex_cmd { + __le32 mode; + __le32 enabled_modules; +}; + +struct iwl_bt_coex_reduced_txp_update_cmd { + __le32 reduced_txp; +}; + +struct ptp_sys_offset_precise { + struct ptp_clock_time device; + struct ptp_clock_time sys_realtime; + struct ptp_clock_time sys_monoraw; + unsigned int rsv[4]; +}; + +struct ptp_clock_caps { + int max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int pps; + int n_pins; + int cross_timestamping; + int adjust_phase; + int max_phase_adj; + int rsv[11]; +}; + +struct ptp_sys_offset_extended { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[75]; +}; + +struct ptp_sys_offset { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[51]; +}; + +struct menu_device { + int needs_update; + int tick_wakeup; + u64 next_timer_ns; + unsigned int bucket; + unsigned int correction_factor[12]; + unsigned int intervals[8]; + int interval_ptr; +}; + +struct dmi_device_attribute { + struct device_attribute dev_attr; + int field; +}; + +struct mafield { + const char *prefix; + int field; +}; + +struct p2sb_res_cache { + u32 bus_dev_id; + struct resource res; +}; + +struct michael_mic_ctx { + u32 l; + u32 r; +}; + +enum { + TKIP_DECRYPT_OK = 0, + TKIP_DECRYPT_NO_EXT_IV = -1, + TKIP_DECRYPT_INVALID_KEYIDX = -2, + TKIP_DECRYPT_REPLAY = -3, +}; + +enum uncore_access_type { + UNCORE_ACCESS_MSR = 0, + UNCORE_ACCESS_MMIO = 1, + UNCORE_ACCESS_PCI = 2, + UNCORE_ACCESS_MAX = 3, +}; + +enum { + SNBEP_PCI_QPI_PORT0_FILTER = 0, + SNBEP_PCI_QPI_PORT1_FILTER = 1, + BDX_PCI_QPI_PORT2_FILTER = 2, +}; + +enum { + IIO_TOPOLOGY_TYPE = 0, + UPI_TOPOLOGY_TYPE = 1, + TOPOLOGY_MAX = 2, +}; + +struct sys_off_handler { + struct notifier_block nb; + int (*sys_off_cb)(struct sys_off_data *); + void *cb_data; + enum sys_off_mode mode; + bool blocking; + void *list; + struct device *dev; +}; + +struct msi_ctrl { + unsigned int domid; + unsigned int first; + unsigned int last; + unsigned int nirqs; +}; + +struct tracer_stat; + +struct stat_session { + struct list_head session_list; + struct tracer_stat *ts; + struct rb_root stat_root; + struct mutex stat_mutex; + struct dentry *file; +}; + +struct tracer_stat { + const char *name; + void * (*stat_start)(struct tracer_stat *); + void * (*stat_next)(void *, int); + cmp_func_t stat_cmp; + int (*stat_show)(struct seq_file *, void *); + void (*stat_release)(void *); + int (*stat_headers)(struct seq_file *); +}; + +struct stat_node { + struct rb_node node; + void *stat; +}; + +enum { + BPF_TASK_ITER_ALL_PROCS = 0, + BPF_TASK_ITER_ALL_THREADS = 1, + BPF_TASK_ITER_PROC_THREADS = 2, +}; + +enum bpf_task_vma_iter_find_op { + task_vma_iter_first_vma = 0, + task_vma_iter_next_vma = 1, + task_vma_iter_find_vma = 2, +}; + +typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); + +struct bpf_iter__task { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; +}; + +struct bpf_iter_seq_task_common { + struct pid_namespace *ns; + enum bpf_iter_task_type type; + u32 pid; + u32 pid_visiting; +}; + +struct bpf_iter__task_file { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + u32 fd; + union { + struct file *file; + }; +}; + +struct bpf_iter_seq_task_file_info { + struct bpf_iter_seq_task_common common; + struct task_struct *task; + u32 tid; + u32 fd; +}; + +struct bpf_iter__task_vma { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; + }; +}; + +struct bpf_iter_seq_task_vma_info { + struct bpf_iter_seq_task_common common; + struct task_struct *task; + struct mm_struct *mm; + struct vm_area_struct *vma; + u32 tid; + unsigned long prev_vm_start; + unsigned long prev_vm_end; +}; + +struct bpf_iter_task_vma { + __u64 __opaque[1]; +}; + +struct bpf_iter_task_vma_kern_data; + +struct bpf_iter_task_vma_kern { + struct bpf_iter_task_vma_kern_data *data; +}; + +struct bpf_iter_task_vma_kern_data { + struct task_struct *task; + struct mm_struct *mm; + struct mmap_unlock_irq_work *work; + struct vma_iterator vmi; +}; + +struct bpf_iter_css_task { + __u64 __opaque[1]; +}; + +struct bpf_iter_css_task_kern { + struct css_task_iter *css_it; +}; + +struct bpf_iter_task { + __u64 __opaque[3]; +}; + +struct bpf_iter_task_kern { + struct task_struct *task; + struct task_struct *pos; + unsigned int flags; +}; + +struct bpf_iter_seq_task_info { + struct bpf_iter_seq_task_common common; + u32 tid; +}; + +struct node_hstate { + struct kobject *hugepages_kobj; + struct kobject *hstate_kobjs[2]; +}; + +enum vma_resv_mode { + VMA_NEEDS_RESV = 0, + VMA_COMMIT_RESV = 1, + VMA_END_RESV = 2, + VMA_ADD_RESV = 3, + VMA_DEL_RESV = 4, +}; + +enum { + FOLL_TOUCH = 65536, + FOLL_TRIED = 131072, + FOLL_REMOTE = 262144, + FOLL_PIN = 524288, + FOLL_FAST_ONLY = 1048576, + FOLL_UNLOCKABLE = 2097152, +}; + +struct file_region { + struct list_head link; + long from; + long to; + struct page_counter *reservation_counter; + struct cgroup_subsys_state *css; +}; + +struct huge_bootmem_page { + struct list_head list; + struct hstate *hstate; +}; + +struct hugetlb_cgroup_per_node; + +struct hugetlb_cgroup { + struct cgroup_subsys_state css; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct page_counter hugepage[2]; + struct page_counter rsvd_hugepage[2]; + atomic_long_t events[2]; + atomic_long_t events_local[2]; + struct cgroup_file events_file[2]; + struct cgroup_file events_local_file[2]; + struct hugetlb_cgroup_per_node *nodeinfo[0]; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct hugetlb_cgroup_per_node { + unsigned long usage[2]; +}; + +typedef unsigned long pte_marker; + +struct padata_mt_job { + void (*thread_fn)(unsigned long, unsigned long, void *); + void *fn_arg; + unsigned long start; + unsigned long size; + unsigned long align; + unsigned long min_chunk; + int max_threads; + bool numa_aware; +}; + +struct mmp_struct { + __le32 mmp_magic; + __le32 mmp_seq; + __le64 mmp_time; + char mmp_nodename[64]; + char mmp_bdevname[32]; + __le16 mmp_check_interval; + __le16 mmp_pad1; + __le32 mmp_pad2[226]; + __le32 mmp_checksum; +}; + +struct fat_fid { + u32 i_gen; + u32 i_pos_low; + u16 i_pos_hi; + u16 parent_i_pos_hi; + u32 parent_i_pos_low; + u32 parent_i_gen; +}; + +struct btrfs_compr_pool { + struct shrinker *shrinker; + spinlock_t lock; + struct list_head list; + int count; + int thresh; +}; + +struct bucket_item; + +struct heuristic_ws { + u8 *sample; + u32 sample_size; + struct bucket_item *bucket; + struct bucket_item *bucket_b; + struct list_head list; +}; + +struct bucket_item { + u32 count; +}; + +struct scomp_scratch { + spinlock_t lock; + void *src; + void *dst; +}; + +enum prio_policy { + POLICY_NO_CHANGE = 0, + POLICY_PROMOTE_TO_RT = 1, + POLICY_RESTRICT_TO_BE = 2, + POLICY_ALL_TO_IDLE = 3, + POLICY_NONE_TO_RT = 4, +}; + +struct ioprio_blkcg { + struct blkcg_policy_data cpd; + enum prio_policy prio_policy; +}; + +struct ioprio_blkg { + struct blkg_policy_data pd; +}; + +struct barrett_ctx_s { + MPI m; + int m_copied; + int k; + MPI y; + MPI r1; + MPI r2; + MPI r3; +}; + +typedef struct { + U32 f1c; + U32 f1d; + U32 f7b; + U32 f7c; +} ZSTD_cpuid_t; + +typedef struct { + size_t compressedSize; + unsigned long long decompressedBound; +} ZSTD_frameSizeInfo; + +typedef enum { + ZSTD_dlm_byCopy = 0, + ZSTD_dlm_byRef = 1, +} ZSTD_dictLoadMethod_e; + +typedef enum { + ZSTD_d_windowLogMax = 100, + ZSTD_d_experimentalParam1 = 1000, + ZSTD_d_experimentalParam2 = 1001, + ZSTD_d_experimentalParam3 = 1002, + ZSTD_d_experimentalParam4 = 1003, +} ZSTD_dParameter; + +typedef struct { + size_t error; + int lowerBound; + int upperBound; +} ZSTD_bounds; + +typedef enum { + ZSTDnit_frameHeader = 0, + ZSTDnit_blockHeader = 1, + ZSTDnit_block = 2, + ZSTDnit_lastBlock = 3, + ZSTDnit_checksum = 4, + ZSTDnit_skippableFrame = 5, +} ZSTD_nextInputType_e; + +struct fb_cvt_data { + u32 xres; + u32 yres; + u32 refresh; + u32 f_refresh; + u32 pixclock; + u32 hperiod; + u32 hblank; + u32 hfreq; + u32 htotal; + u32 vtotal; + u32 vsync; + u32 hsync; + u32 h_front_porch; + u32 h_back_porch; + u32 v_front_porch; + u32 v_back_porch; + u32 h_margin; + u32 v_margin; + u32 interlace; + u32 aspect_ratio; + u32 active_pixels; + u32 flags; + u32 status; +}; + +struct pnp_info_buffer { + char *buffer; + char *curr; + unsigned long size; + unsigned long len; + int stop; + int error; +}; + +typedef struct pnp_info_buffer pnp_info_buffer_t; + +enum scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, +}; + +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 10000, +}; + +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; +}; + +struct scsi_lun { + __u8 scsi_lun[8]; +}; + +struct system_counterval_t { + u64 cycles; + enum clocksource_ids cs_id; +}; + +struct iwl_mvm_iface_iterator_data { + struct ieee80211_vif *ignore_vif; + int idx; + struct iwl_mvm_phy_ctxt *phyctxt; + u16 ids[3]; + u16 colors[3]; +}; + +struct iwl_binding_cmd { + __le32 id_and_color; + __le32 action; + __le32 macs[3]; + __le32 phy; + __le32 lmac_id; +}; + +enum usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, +}; + +struct vivaldi_data { + u32 function_row_physmap[24]; + unsigned int num_function_row_keys; +}; + +struct atkbd { + struct ps2dev ps2dev; + struct input_dev *dev; + char name[64]; + char phys[32]; + unsigned short id; + unsigned short keycode[512]; + unsigned long force_release_mask[8]; + unsigned char set; + bool translated; + bool extra; + bool write; + bool softrepeat; + bool softraw; + bool scroll; + bool enabled; + unsigned char emul; + bool resend; + bool release; + unsigned long xl_bit; + unsigned int last; + unsigned long time; + unsigned long err_count; + struct delayed_work event_work; + unsigned long event_jiffies; + unsigned long event_mask; + struct mutex mutex; + struct vivaldi_data vdata; +}; + +struct linear_c { + struct dm_dev *dev; + sector_t start; +}; + +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); + +enum { + NEIGH_ARP_TABLE = 0, + NEIGH_ND_TABLE = 1, + NEIGH_DN_TABLE = 2, + NEIGH_NR_TABLES = 3, + NEIGH_LINK_TABLE = 3, +}; + +enum { + NDUSEROPT_UNSPEC = 0, + NDUSEROPT_SRCADDR = 1, + __NDUSEROPT_MAX = 2, +}; + +struct neighbour_cb { + unsigned long sched_next; + unsigned int flags; +}; + +struct rs_msg { + struct icmp6hdr icmph; + __u8 opt[0]; +}; + +struct ra_msg { + struct icmp6hdr icmph; + __be32 reachable_time; + __be32 retrans_timer; +}; + +struct nduseroptmsg { + unsigned char nduseropt_family; + unsigned char nduseropt_pad1; + unsigned short nduseropt_opts_len; + int nduseropt_ifindex; + __u8 nduseropt_icmp_type; + __u8 nduseropt_icmp_code; + unsigned short nduseropt_pad2; + unsigned int nduseropt_pad3; +}; + +enum nl80211_peer_measurement_peer_attrs { + __NL80211_PMSR_PEER_ATTR_INVALID = 0, + NL80211_PMSR_PEER_ATTR_ADDR = 1, + NL80211_PMSR_PEER_ATTR_CHAN = 2, + NL80211_PMSR_PEER_ATTR_REQ = 3, + NL80211_PMSR_PEER_ATTR_RESP = 4, + NUM_NL80211_PMSR_PEER_ATTRS = 5, + NL80211_PMSR_PEER_ATTR_MAX = 4, +}; + +enum nl80211_peer_measurement_req { + __NL80211_PMSR_REQ_ATTR_INVALID = 0, + NL80211_PMSR_REQ_ATTR_DATA = 1, + NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 2, + NUM_NL80211_PMSR_REQ_ATTRS = 3, + NL80211_PMSR_REQ_ATTR_MAX = 2, +}; + +enum nl80211_peer_measurement_ftm_req { + __NL80211_PMSR_FTM_REQ_ATTR_INVALID = 0, + NL80211_PMSR_FTM_REQ_ATTR_ASAP = 1, + NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 2, + NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 3, + NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 4, + NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 5, + NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 6, + NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 7, + NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 8, + NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 9, + NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 10, + NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 11, + NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 12, + NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 13, + NUM_NL80211_PMSR_FTM_REQ_ATTR = 14, + NL80211_PMSR_FTM_REQ_ATTR_MAX = 13, +}; + +enum nl80211_peer_measurement_resp { + __NL80211_PMSR_RESP_ATTR_INVALID = 0, + NL80211_PMSR_RESP_ATTR_DATA = 1, + NL80211_PMSR_RESP_ATTR_STATUS = 2, + NL80211_PMSR_RESP_ATTR_HOST_TIME = 3, + NL80211_PMSR_RESP_ATTR_AP_TSF = 4, + NL80211_PMSR_RESP_ATTR_FINAL = 5, + NL80211_PMSR_RESP_ATTR_PAD = 6, + NUM_NL80211_PMSR_RESP_ATTRS = 7, + NL80211_PMSR_RESP_ATTR_MAX = 6, +}; + +enum nl80211_peer_measurement_ftm_resp { + __NL80211_PMSR_FTM_RESP_ATTR_INVALID = 0, + NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 1, + NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 2, + NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 3, + NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 4, + NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 5, + NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 6, + NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 7, + NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 8, + NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 9, + NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 10, + NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 11, + NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 12, + NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 13, + NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 14, + NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 15, + NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 16, + NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 17, + NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 18, + NL80211_PMSR_FTM_RESP_ATTR_LCI = 19, + NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 20, + NL80211_PMSR_FTM_RESP_ATTR_PAD = 21, + NUM_NL80211_PMSR_FTM_RESP_ATTR = 22, + NL80211_PMSR_FTM_RESP_ATTR_MAX = 21, +}; + +typedef void (*btf_trace_nmi_handler)(void *, void *, s64, int); + +struct nmi_stats { + unsigned int normal; + unsigned int unknown; + unsigned int external; + unsigned int swallow; + unsigned long recv_jiffies; + unsigned long idt_seq; + unsigned long idt_nmi_seq; + unsigned long idt_ignored; + atomic_long_t idt_calls; + unsigned long idt_seq_snap; + unsigned long idt_nmi_seq_snap; + unsigned long idt_ignored_snap; + long idt_calls_snap; +}; + +enum nmi_states { + NMI_NOT_RUNNING = 0, + NMI_EXECUTING = 1, + NMI_LATCHED = 2, +}; + +struct nmi_desc { + raw_spinlock_t lock; + struct list_head head; +}; + +struct trace_event_raw_nmi_handler { + struct trace_entry ent; + void *handler; + s64 delta_ns; + int handled; + char __data[0]; +}; + +struct trace_event_data_offsets_nmi_handler {}; + +struct __kernel_old_itimerval { + struct __kernel_old_timeval it_interval; + struct __kernel_old_timeval it_value; +}; + +enum bpf_lru_list_type { + BPF_LRU_LIST_T_ACTIVE = 0, + BPF_LRU_LIST_T_INACTIVE = 1, + BPF_LRU_LIST_T_FREE = 2, + BPF_LRU_LOCAL_LIST_T_FREE = 3, + BPF_LRU_LOCAL_LIST_T_PENDING = 4, +}; + +struct bpf_lru_list { + struct list_head lists[3]; + unsigned int counts[2]; + struct list_head *next_inactive_rotation; + raw_spinlock_t lock; +}; + +struct bpf_lru_locallist { + struct list_head lists[2]; + u16 next_steal; + raw_spinlock_t lock; +}; + +struct bpf_lru_node { + struct list_head list; + u16 cpu; + u8 type; + u8 ref; +}; + +struct bpf_common_lru { + struct bpf_lru_list lru_list; + struct bpf_lru_locallist __attribute__((btf_type_tag("percpu"))) *local_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *); + +struct bpf_lru { + union { + struct bpf_common_lru common_lru; + struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru; + }; + del_from_htab_func del_from_htab; + void *del_arg; + unsigned int hash_offset; + unsigned int nr_scans; + bool percpu; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bpf_queue_stack { + struct bpf_map map; + raw_spinlock_t lock; + u32 head; + u32 tail; + u32 size; + long: 0; + char elements[0]; +}; + +typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); + +typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int); + +typedef void (*btf_trace_kfree)(void *, unsigned long, const void *); + +typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *); + +typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int); + +typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *); + +typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); + +typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); + +typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int); + +typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); + +typedef void (*btf_trace_mm_alloc_contig_migrate_range_info)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); + +typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); + +struct kmalloc_info_struct { + const char *name[4]; + unsigned int size; +}; + +struct trace_event_raw_kmem_cache_alloc { + struct trace_entry ent; + unsigned long call_site; + const void *ptr; + size_t bytes_req; + size_t bytes_alloc; + unsigned long gfp_flags; + int node; + bool accounted; + char __data[0]; +}; + +struct trace_event_raw_kmalloc { + struct trace_entry ent; + unsigned long call_site; + const void *ptr; + size_t bytes_req; + size_t bytes_alloc; + unsigned long gfp_flags; + int node; + char __data[0]; +}; + +struct trace_event_raw_kfree { + struct trace_entry ent; + unsigned long call_site; + const void *ptr; + char __data[0]; +}; + +struct trace_event_raw_kmem_cache_free { + struct trace_entry ent; + unsigned long call_site; + const void *ptr; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_mm_page_free { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + char __data[0]; +}; + +struct trace_event_raw_mm_page_free_batched { + struct trace_entry ent; + unsigned long pfn; + char __data[0]; +}; + +struct trace_event_raw_mm_page_alloc { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + unsigned long gfp_flags; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_page { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + int migratetype; + int percpu_refill; + char __data[0]; +}; + +struct trace_event_raw_mm_page_pcpu_drain { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_mm_page_alloc_extfrag { + struct trace_entry ent; + unsigned long pfn; + int alloc_order; + int fallback_order; + int alloc_migratetype; + int fallback_migratetype; + int change_ownership; + char __data[0]; +}; + +struct trace_event_raw_mm_alloc_contig_migrate_range_info { + struct trace_entry ent; + unsigned long start; + unsigned long end; + unsigned long nr_migrated; + unsigned long nr_reclaimed; + unsigned long nr_mapped; + int migratetype; + char __data[0]; +}; + +struct trace_event_raw_rss_stat { + struct trace_entry ent; + unsigned int mm_id; + unsigned int curr; + int member; + long size; + char __data[0]; +}; + +struct trace_event_data_offsets_kmem_cache_free { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_kmem_cache_alloc {}; + +struct trace_event_data_offsets_kmalloc {}; + +struct trace_event_data_offsets_kfree {}; + +struct trace_event_data_offsets_mm_page_free {}; + +struct trace_event_data_offsets_mm_page_free_batched {}; + +struct trace_event_data_offsets_mm_page_alloc {}; + +struct trace_event_data_offsets_mm_page {}; + +struct trace_event_data_offsets_mm_page_pcpu_drain {}; + +struct trace_event_data_offsets_mm_page_alloc_extfrag {}; + +struct trace_event_data_offsets_mm_alloc_contig_migrate_range_info {}; + +struct trace_event_data_offsets_rss_stat {}; + +struct eventfd_ctx { + struct kref kref; + wait_queue_head_t wqh; + __u64 count; + unsigned int flags; + int id; +}; + +enum shrink_type { + SHRINK_DESTROY = 0, + SHRINK_BUSY_STOP = 1, + SHRINK_BUSY_SKIP = 2, +}; + +struct crypto_lskcipher_spawn { + struct crypto_spawn base; +}; + +enum { + ZSTDbss_compress = 0, + ZSTDbss_noCompress = 1, +}; + +struct ZSTD_CDict_s { + const void *dictContent; + size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; + U32 *entropyWorkspace; + ZSTD_cwksp workspace; + ZSTD_matchState_t matchState; + ZSTD_compressedBlockState_t cBlockState; + ZSTD_customMem customMem; + U32 dictID; + int compressionLevel; + ZSTD_paramSwitch_e useRowMatchFinder; +}; + +typedef enum { + ZSTD_cpm_noAttachDict = 0, + ZSTD_cpm_attachDict = 1, + ZSTD_cpm_createCDict = 2, + ZSTD_cpm_unknown = 3, +} ZSTD_cParamMode_e; + +typedef enum { + ZSTD_e_continue = 0, + ZSTD_e_flush = 1, + ZSTD_e_end = 2, +} ZSTD_EndDirective; + +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; +} ZSTD_symbolEncodingTypeStats_t; + +typedef struct { + U32 *splitLocations; + size_t idx; +} seqStoreSplits; + +typedef struct { + U32 idx; + U32 posInSequence; + size_t posInSrc; +} ZSTD_sequencePosition; + +typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); + +typedef struct { + unsigned long long ingested; + unsigned long long consumed; + unsigned long long produced; + unsigned long long flushed; + unsigned int currentJobID; + unsigned int nbActiveWorkers; +} ZSTD_frameProgression; + +typedef enum { + ZSTDcrp_makeClean = 0, + ZSTDcrp_leaveDirty = 1, +} ZSTD_compResetPolicy_e; + +typedef enum { + ZSTDirp_continue = 0, + ZSTDirp_reset = 1, +} ZSTD_indexResetPolicy_e; + +typedef enum { + ZSTD_resetTarget_CDict = 0, + ZSTD_resetTarget_CCtx = 1, +} ZSTD_resetTarget_e; + +enum { + FBCON_LOGO_CANSHOW = -1, + FBCON_LOGO_DRAW = -2, + FBCON_LOGO_DONTSHOW = -3, +}; + +struct fb_con2fbmap { + __u32 console; + __u32 framebuffer; +}; + +typedef unsigned int u_int; + +struct acpi_fadt_info { + const char *name; + u16 address64; + u16 address32; + u16 length; + u8 default_length; + u8 flags; +}; + +struct acpi_fadt_pm_info { + struct acpi_generic_address *target; + u16 source; + u8 register_num; +}; + +struct acpi_address_range { + struct acpi_address_range *next; + struct acpi_namespace_node *region_node; + acpi_physical_address start_address; + acpi_physical_address end_address; +}; + +struct class_attribute_string { + struct class_attribute attr; + char *str; +}; + +struct class_compat { + struct kobject *kobj; +}; + +struct sync_file { + struct file *file; + char user_name[32]; + struct list_head sync_file_list; + wait_queue_head_t wq; + unsigned long flags; + struct dma_fence *fence; + struct dma_fence_cb cb; +}; + +struct sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; +}; + +struct sync_set_deadline { + __u64 deadline_ns; + __u64 pad; +}; + +struct sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; +}; + +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; +}; + +enum iwl_ucode_tlv_flag { + IWL_UCODE_TLV_FLAGS_PAN = 1, + IWL_UCODE_TLV_FLAGS_NEWSCAN = 2, + IWL_UCODE_TLV_FLAGS_MFP = 4, + IWL_UCODE_TLV_FLAGS_SHORT_BL = 128, + IWL_UCODE_TLV_FLAGS_D3_6_IPV6_ADDRS = 1024, + IWL_UCODE_TLV_FLAGS_NO_BASIC_SSID = 4096, + IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_SMALL = 32768, + IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_LARGE = 65536, + IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT = 16777216, + IWL_UCODE_TLV_FLAGS_EBS_SUPPORT = 33554432, + IWL_UCODE_TLV_FLAGS_P2P_PS_UAPSD = 67108864, +}; + +enum iwl_proto_offloads { + IWL_D3_PROTO_OFFLOAD_ARP = 1, + IWL_D3_PROTO_OFFLOAD_NS = 2, + IWL_D3_PROTO_IPV4_VALID = 4, + IWL_D3_PROTO_IPV6_VALID = 8, + IWL_D3_PROTO_OFFLOAD_BTM = 16, +}; + +struct iwl_proto_offload_cmd_common { + __le32 enabled; + __be32 remote_ipv4_addr; + __be32 host_ipv4_addr; + u8 arp_mac_addr[6]; + __le16 reserved; +}; + +struct iwl_proto_offload_cmd_v1 { + struct iwl_proto_offload_cmd_common common; + u8 remote_ipv6_addr[16]; + u8 solicited_node_ipv6_addr[16]; + u8 target_ipv6_addr[32]; + u8 ndp_mac_addr[6]; + __le16 reserved2; +}; + +struct iwl_proto_offload_cmd_v2 { + struct iwl_proto_offload_cmd_common common; + u8 remote_ipv6_addr[16]; + u8 solicited_node_ipv6_addr[16]; + u8 target_ipv6_addr[96]; + u8 ndp_mac_addr[6]; + u8 num_valid_ipv6_addrs; + u8 reserved2[3]; +} __attribute__((packed)); + +struct iwl_targ_addr { + struct in6_addr addr; + __le32 config_num; +}; + +struct iwl_ns_config { + struct in6_addr source_ipv6_addr; + struct in6_addr dest_ipv6_addr; + u8 target_mac_addr[6]; + __le16 reserved; +}; + +struct iwl_proto_offload_cmd_v3_small { + struct iwl_proto_offload_cmd_common common; + __le32 num_valid_ipv6_addrs; + struct iwl_targ_addr targ_addrs[4]; + struct iwl_ns_config ns_config[2]; +}; + +struct iwl_proto_offload_cmd_v4 { + __le32 sta_id; + struct iwl_proto_offload_cmd_common common; + __le32 num_valid_ipv6_addrs; + struct iwl_targ_addr targ_addrs[12]; + struct iwl_ns_config ns_config[4]; +}; + +struct usb_cdc_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; +}; + +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; +}; + +struct usb_cdc_header_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdCDC; +} __attribute__((packed)); + +struct usb_cdc_acm_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; +}; + +struct usb_cdc_ether_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iMACAddress; + __le32 bmEthernetStatistics; + __le16 wMaxSegmentSize; + __le16 wNumberMCFilters; + __u8 bNumberPowerFilters; +} __attribute__((packed)); + +struct usb_cdc_call_mgmt_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; + __u8 bDataInterface; +}; + +struct usb_cdc_dmm_desc { + __u8 bFunctionLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u16 bcdVersion; + __le16 wMaxCommand; +} __attribute__((packed)); + +struct usb_cdc_mdlm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; + __u8 bGUID[16]; +} __attribute__((packed)); + +struct usb_cdc_mdlm_detail_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bGuidDescriptorType; + __u8 bDetailData[0]; +}; + +struct usb_cdc_ncm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdNcmVersion; + __u8 bmNetworkCapabilities; +} __attribute__((packed)); + +struct usb_cdc_mbim_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdMBIMVersion; + __le16 wMaxControlMessage; + __u8 bNumberFilters; + __u8 bMaxFilterSize; + __le16 wMaxSegmentSize; + __u8 bmNetworkCapabilities; +} __attribute__((packed)); + +struct usb_cdc_mbim_extended_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdMBIMExtendedVersion; + __u8 bMaxOutstandingCommandMessages; + __le16 wMTU; +} __attribute__((packed)); + +struct set_config_request { + struct usb_device *udev; + int config; + struct work_struct work; + struct list_head node; +}; + +struct api_context { + struct completion done; + int status; +}; + +struct usb_cdc_network_terminal_desc; + +struct usb_cdc_obex_desc; + +struct usb_cdc_parsed_header { + struct usb_cdc_union_desc *usb_cdc_union_desc; + struct usb_cdc_header_desc *usb_cdc_header_desc; + struct usb_cdc_call_mgmt_descriptor *usb_cdc_call_mgmt_descriptor; + struct usb_cdc_acm_descriptor *usb_cdc_acm_descriptor; + struct usb_cdc_country_functional_desc *usb_cdc_country_functional_desc; + struct usb_cdc_network_terminal_desc *usb_cdc_network_terminal_desc; + struct usb_cdc_ether_desc *usb_cdc_ether_desc; + struct usb_cdc_dmm_desc *usb_cdc_dmm_desc; + struct usb_cdc_mdlm_desc *usb_cdc_mdlm_desc; + struct usb_cdc_mdlm_detail_desc *usb_cdc_mdlm_detail_desc; + struct usb_cdc_obex_desc *usb_cdc_obex_desc; + struct usb_cdc_ncm_desc *usb_cdc_ncm_desc; + struct usb_cdc_mbim_desc *usb_cdc_mbim_desc; + struct usb_cdc_mbim_extended_desc *usb_cdc_mbim_extended_desc; + bool phonet_magic_present; +}; + +struct usb_cdc_network_terminal_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bEntityId; + __u8 iName; + __u8 bChannelIndex; + __u8 bPhysicalInterface; +}; + +struct usb_cdc_obex_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; +} __attribute__((packed)); + +struct i2c_devinfo { + struct list_head list; + int busnum; + struct i2c_board_info board_info; +}; + +struct hid_global { + unsigned int usage_page; + __s32 logical_minimum; + __s32 logical_maximum; + __s32 physical_minimum; + __s32 physical_maximum; + __s32 unit_exponent; + unsigned int unit; + unsigned int report_id; + unsigned int report_size; + unsigned int report_count; +}; + +struct hid_local { + unsigned int usage[12288]; + u8 usage_size[12288]; + unsigned int collection_index[12288]; + unsigned int usage_index; + unsigned int usage_minimum; + unsigned int delimiter_depth; + unsigned int delimiter_branch; +}; + +struct hid_parser { + struct hid_global global; + struct hid_global global_stack[4]; + unsigned int global_stack_ptr; + struct hid_local local; + unsigned int *collection_stack; + unsigned int collection_stack_ptr; + unsigned int collection_stack_size; + struct hid_device *device; + unsigned int scan_flags; +}; + +struct hid_item { + unsigned int format; + __u8 size; + __u8 type; + __u8 tag; + union { + __u8 u8; + __s8 s8; + __u16 u16; + __s16 s16; + __u32 u32; + __s32 s32; + __u8 *longdata; + } data; +}; + +struct hiddev { + int minor; + int exist; + int open; + struct mutex existancelock; + wait_queue_head_t wait; + struct hid_device *hid; + struct list_head list; + spinlock_t list_lock; + bool initialized; +}; + +struct hidraw { + unsigned int minor; + int exist; + int open; + wait_queue_head_t wait; + struct hid_device *hid; + struct device *dev; + spinlock_t list_lock; + struct list_head list; +}; + +struct hid_dynid { + struct list_head list; + struct hid_device_id id; +}; + +enum { + ETHTOOL_A_LINKINFO_UNSPEC = 0, + ETHTOOL_A_LINKINFO_HEADER = 1, + ETHTOOL_A_LINKINFO_PORT = 2, + ETHTOOL_A_LINKINFO_PHYADDR = 3, + ETHTOOL_A_LINKINFO_TP_MDIX = 4, + ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5, + ETHTOOL_A_LINKINFO_TRANSCEIVER = 6, + __ETHTOOL_A_LINKINFO_CNT = 7, + ETHTOOL_A_LINKINFO_MAX = 6, +}; + +struct linkinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; +}; + +struct igmp_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *in_dev; +}; + +struct igmp_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *idev; + struct ip_mc_list *im; +}; + +struct amd_hostbridge { + u32 bus; + u32 slot; + u32 device; +}; + +struct saved_msr; + +struct saved_msrs { + unsigned int num; + struct saved_msr *array; +}; + +struct saved_context { + struct pt_regs regs; + u16 ds; + u16 es; + u16 fs; + u16 gs; + unsigned long kernelmode_gs_base; + unsigned long usermode_gs_base; + unsigned long fs_base; + unsigned long cr0; + unsigned long cr2; + unsigned long cr3; + unsigned long cr4; + u64 misc_enable; + struct saved_msrs saved_msrs; + unsigned long efer; + u16 gdt_pad; + struct desc_ptr gdt_desc; + u16 idt_pad; + struct desc_ptr idt; + u16 ldt; + u16 tss; + unsigned long tr; + unsigned long safety; + unsigned long return_address; + bool misc_enable_saved; +} __attribute__((packed)); + +struct msr_info { + u32 msr_no; + struct msr reg; + struct msr __attribute__((btf_type_tag("percpu"))) *msrs; + int err; +}; + +struct saved_msr { + bool valid; + struct msr_info info; +}; + +typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *); + +struct msr_enumeration { + u32 msr_no; + u32 feature; +}; + +struct aperfmperf { + seqcount_t seq; + unsigned long last_update; + u64 acnt; + u64 mcnt; + u64 aperf; + u64 mperf; +}; + +struct cpuid_dep { + unsigned int feature; + unsigned int depends; +}; + +enum cgroup_filetype { + CGROUP_FILE_PROCS = 0, + CGROUP_FILE_TASKS = 1, +}; + +enum cgroup1_param { + Opt_all = 0, + Opt_clone_children = 1, + Opt_cpuset_v2_mode = 2, + Opt_name = 3, + Opt_none = 4, + Opt_noprefix = 5, + Opt_release_agent = 6, + Opt_xattr = 7, + Opt_favordynmods = 8, + Opt_nofavordynmods = 9, +}; + +struct cgroup_pidlist { + struct { + enum cgroup_filetype type; + struct pid_namespace *ns; + } key; + pid_t *list; + int length; + struct list_head links; + struct cgroup *owner; + struct delayed_work destroy_dwork; +}; + +struct cgroup_fs_context { + struct kernfs_fs_context kfc; + struct cgroup_root *root; + struct cgroup_namespace *ns; + unsigned int flags; + bool cpuset_clone_children; + bool none; + bool all_ss; + u16 subsys_mask; + char *name; + char *release_agent; +}; + +struct cgroup_mgctx { + struct list_head preloaded_src_csets; + struct list_head preloaded_dst_csets; + struct cgroup_taskset tset; + u16 ss_mask; +}; + +struct cgroup_file_ctx { + struct cgroup_namespace *ns; + struct { + void *trigger; + } psi; + struct { + bool started; + struct css_task_iter iter; + } procs; + struct { + struct cgroup_pidlist *pidlist; + } procs1; +}; + +struct bucket; + +struct htab_elem; + +struct bpf_htab { + struct bpf_map map; + struct bpf_mem_alloc ma; + struct bpf_mem_alloc pcpu_ma; + struct bucket *buckets; + void *elems; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct pcpu_freelist freelist; + struct bpf_lru lru; + }; + struct htab_elem * __attribute__((btf_type_tag("percpu"))) *extra_elems; + struct percpu_counter pcount; + atomic_t count; + bool use_percpu_counter; + u32 n_buckets; + u32 elem_size; + u32 hashrnd; + struct lock_class_key lockdep_key; + int __attribute__((btf_type_tag("percpu"))) *map_locked[8]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct bucket { + struct hlist_nulls_head head; + raw_spinlock_t raw_lock; +}; + +struct htab_elem { + union { + struct hlist_nulls_node hash_node; + struct { + void *padding; + union { + struct pcpu_freelist_node fnode; + struct htab_elem *batch_flink; + }; + }; + }; + union { + void *ptr_to_pptr; + struct bpf_lru_node lru_node; + }; + u32 hash; + long: 0; + char key[0]; +}; + +struct bpf_iter_seq_hash_map_info { + struct bpf_map *map; + struct bpf_htab *htab; + void *percpu_value_buf; + u32 bucket_id; + u32 skip_elems; +}; + +enum { + PAGE_WAS_MAPPED = 1, + PAGE_WAS_MLOCKED = 2, + PAGE_OLD_STATES = 3, +}; + +typedef int rmap_t; + +struct rmap_walk_control { + void *arg; + bool try_lock; + bool contended; + bool (*rmap_one)(struct folio *, struct vm_area_struct *, unsigned long, void *); + int (*done)(struct folio *); + struct anon_vma * (*anon_lock)(struct folio *, struct rmap_walk_control *); + bool (*invalid_vma)(struct vm_area_struct *, void *); +}; + +struct page_vma_mapped_walk { + unsigned long pfn; + unsigned long nr_pages; + unsigned long pgoff; + struct vm_area_struct *vma; + unsigned long address; + pmd_t *pmd; + pte_t *pte; + spinlock_t *ptl; + unsigned int flags; +}; + +struct migrate_pages_stats { + int nr_succeeded; + int nr_failed_pages; + int nr_thp_succeeded; + int nr_thp_failed; + int nr_thp_split; + int nr_split; +}; + +enum { + Enabled = 0, + Magic = 1, +}; + +typedef struct { + struct list_head list; + unsigned long flags; + int offset; + int size; + char *magic; + char *mask; + const char *interpreter; + char *name; + struct dentry *dentry; + struct file *interp_file; + refcount_t users; +} Node; + +enum btrfs_extent_allocation_policy { + BTRFS_EXTENT_ALLOC_CLUSTERED = 0, + BTRFS_EXTENT_ALLOC_ZONED = 1, +}; + +enum btrfs_caching_type { + BTRFS_CACHE_NO = 0, + BTRFS_CACHE_STARTED = 1, + BTRFS_CACHE_FINISHED = 2, + BTRFS_CACHE_ERROR = 3, +}; + +enum btrfs_loop_type { + LOOP_CACHING_NOWAIT = 0, + LOOP_CACHING_WAIT = 1, + LOOP_UNSET_SIZE_CLASS = 2, + LOOP_ALLOC_CHUNK = 3, + LOOP_WRONG_SIZE_CLASS = 4, + LOOP_NO_EMPTY_SIZE = 5, +}; + +struct btrfs_delayed_ref_node { + struct rb_node ref_node; + struct list_head add_list; + u64 bytenr; + u64 num_bytes; + u64 seq; + refcount_t refs; + int ref_mod; + unsigned int action: 8; + unsigned int type: 8; +}; + +struct btrfs_delayed_tree_ref { + struct btrfs_delayed_ref_node node; + u64 root; + u64 parent; + int level; +}; + +struct btrfs_delayed_data_ref { + struct btrfs_delayed_ref_node node; + u64 root; + u64 parent; + u64 objectid; + u64 offset; +}; + +struct btrfs_delayed_extent_op; + +struct btrfs_delayed_ref_head { + u64 bytenr; + u64 num_bytes; + struct rb_node href_node; + struct mutex mutex; + refcount_t refs; + spinlock_t lock; + struct rb_root_cached ref_tree; + struct list_head ref_add_list; + struct btrfs_delayed_extent_op *extent_op; + int total_ref_mod; + int ref_mod; + u64 owning_root; + u64 reserved_bytes; + bool must_insert_reserved; + bool is_data; + bool is_system; + bool processing; +}; + +struct btrfs_delayed_extent_op { + struct btrfs_disk_key key; + u8 level; + bool update_key; + bool update_flags; + u64 flags_to_set; +}; + +struct find_free_extent_ctl { + u64 ram_bytes; + u64 num_bytes; + u64 min_alloc_size; + u64 empty_size; + u64 flags; + int delalloc; + u64 search_start; + u64 empty_cluster; + struct btrfs_free_cluster *last_ptr; + bool use_cluster; + bool have_caching_bg; + bool orig_have_caching_bg; + bool for_treelog; + bool for_data_reloc; + int index; + int loop; + bool retry_uncached; + int cached; + u64 max_extent_size; + u64 total_free_space; + u64 found_offset; + u64 hint_byte; + enum btrfs_extent_allocation_policy policy; + bool hinted; + enum btrfs_block_group_size_class size_class; +}; + +struct walk_control___2 { + u64 refs[8]; + u64 flags[8]; + struct btrfs_key update_progress; + struct btrfs_key drop_progress; + int drop_level; + int stage; + int level; + int shared_level; + int update_ref; + int keep_locks; + int reada_slot; + int reada_count; + int restarted; +}; + +struct shash_instance { + void (*free)(struct shash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct shash_alg alg; + }; +}; + +struct crypto_shash_spawn { + struct crypto_spawn base; +}; + +struct hmac_ctx { + struct crypto_shash *hash; + u8 pads[0]; +}; + +struct waitid_info { + pid_t pid; + uid_t uid; + int status; + int cause; +}; + +struct io_waitid { + struct file *file; + int which; + pid_t upid; + int options; + atomic_t refs; + struct wait_queue_head *head; + struct siginfo __attribute__((btf_type_tag("user"))) *infop; + struct waitid_info info; +}; + +struct wait_opts { + enum pid_type wo_type; + int wo_flags; + struct pid *wo_pid; + struct waitid_info *wo_info; + int wo_stat; + struct rusage *wo_rusage; + wait_queue_entry_t child_wait; + int notask_error; +}; + +struct io_waitid_async { + struct io_kiocb *req; + struct wait_opts wo; +}; + +enum asn1_opcode { + ASN1_OP_MATCH = 0, + ASN1_OP_MATCH_OR_SKIP = 1, + ASN1_OP_MATCH_ACT = 2, + ASN1_OP_MATCH_ACT_OR_SKIP = 3, + ASN1_OP_MATCH_JUMP = 4, + ASN1_OP_MATCH_JUMP_OR_SKIP = 5, + ASN1_OP_MATCH_ANY = 8, + ASN1_OP_MATCH_ANY_OR_SKIP = 9, + ASN1_OP_MATCH_ANY_ACT = 10, + ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11, + ASN1_OP_COND_MATCH_OR_SKIP = 17, + ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19, + ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21, + ASN1_OP_COND_MATCH_ANY = 24, + ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25, + ASN1_OP_COND_MATCH_ANY_ACT = 26, + ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27, + ASN1_OP_COND_FAIL = 28, + ASN1_OP_COMPLETE = 29, + ASN1_OP_ACT = 30, + ASN1_OP_MAYBE_ACT = 31, + ASN1_OP_END_SEQ = 32, + ASN1_OP_END_SET = 33, + ASN1_OP_END_SEQ_OF = 34, + ASN1_OP_END_SET_OF = 35, + ASN1_OP_END_SEQ_ACT = 36, + ASN1_OP_END_SET_ACT = 37, + ASN1_OP_END_SEQ_OF_ACT = 38, + ASN1_OP_END_SET_OF_ACT = 39, + ASN1_OP_RETURN = 40, + ASN1_OP__NR = 41, +}; + +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, +}; + +enum { + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, +}; + +struct builtin_fw { + char *name; + void *data; + unsigned long size; +}; + +struct node_attr { + struct device_attribute attr; + enum node_states state; +}; + +enum access_coordinate_class { + ACCESS_COORDINATE_LOCAL = 0, + ACCESS_COORDINATE_CPU = 1, + ACCESS_COORDINATE_MAX = 2, +}; + +struct node_access_nodes { + struct device dev; + struct list_head list_node; + unsigned int access; +}; + +struct e1000_stats { + char stat_string[32]; + int type; + int sizeof_stat; + int stat_offset; +}; + +enum e1000_state_t___2 { + __E1000_TESTING = 0, + __E1000_RESETTING = 1, + __E1000_DOWN = 2, + __E1000_DISABLED = 3, +}; + +enum { + NETDEV_STATS = 0, + E1000_STATS = 1, +}; + +struct e1000_tx_desc { + __le64 buffer_addr; + union { + __le32 data; + struct { + __le16 length; + u8 cso; + u8 cmd; + } flags; + } lower; + union { + __le32 data; + struct { + u8 status; + u8 css; + __le16 special; + } fields; + } upper; +}; + +struct e1000_rx_desc { + __le64 buffer_addr; + __le16 length; + __le16 csum; + u8 status; + u8 errors; + __le16 special; +}; + +struct e1000_hw_stats___3 { + u64 crcerrs; + u64 algnerrc; + u64 symerrs; + u64 rxerrc; + u64 txerrc; + u64 mpc; + u64 scc; + u64 ecol; + u64 mcc; + u64 latecol; + u64 colc; + u64 dc; + u64 tncrs; + u64 sec; + u64 cexterr; + u64 rlec; + u64 xonrxc; + u64 xontxc; + u64 xoffrxc; + u64 xofftxc; + u64 fcruc; + u64 prc64; + u64 prc127; + u64 prc255; + u64 prc511; + u64 prc1023; + u64 prc1522; + u64 gprc; + u64 bprc; + u64 mprc; + u64 gptc; + u64 gorcl; + u64 gorch; + u64 gotcl; + u64 gotch; + u64 rnbc; + u64 ruc; + u64 rfc; + u64 roc; + u64 rlerrc; + u64 rjc; + u64 mgprc; + u64 mgpdc; + u64 mgptc; + u64 torl; + u64 torh; + u64 totl; + u64 toth; + u64 tpr; + u64 tpt; + u64 ptc64; + u64 ptc127; + u64 ptc255; + u64 ptc511; + u64 ptc1023; + u64 ptc1522; + u64 mptc; + u64 bptc; + u64 tsctc; + u64 tsctfc; + u64 iac; + u64 icrxptc; + u64 icrxatc; + u64 ictxptc; + u64 ictxatc; + u64 ictxqec; + u64 ictxqmtc; + u64 icrxdmtc; + u64 icrxoc; +}; + +struct e1000_tx_buffer; + +struct e1000_tx_ring { + void *desc; + dma_addr_t dma; + unsigned int size; + unsigned int count; + unsigned int next_to_use; + unsigned int next_to_clean; + struct e1000_tx_buffer *buffer_info; + u16 tdh; + u16 tdt; + bool last_tx_tso; +}; + +struct e1000_rx_buffer; + +struct e1000_rx_ring { + void *desc; + dma_addr_t dma; + unsigned int size; + unsigned int count; + unsigned int next_to_use; + unsigned int next_to_clean; + struct e1000_rx_buffer *buffer_info; + struct sk_buff *rx_skb_top; + int cpu; + u16 rdh; + u16 rdt; +}; + +struct e1000_adapter___2 { + unsigned long active_vlans[64]; + u16 mng_vlan_id; + u32 bd_number; + u32 rx_buffer_len; + u32 wol; + u32 smartspeed; + u32 en_mng_pt; + u16 link_speed; + u16 link_duplex; + spinlock_t stats_lock; + unsigned int total_tx_bytes; + unsigned int total_tx_packets; + unsigned int total_rx_bytes; + unsigned int total_rx_packets; + u32 itr; + u32 itr_setting; + u16 tx_itr; + u16 rx_itr; + u8 fc_autoneg; + struct e1000_tx_ring *tx_ring; + unsigned int restart_queue; + u32 txd_cmd; + u32 tx_int_delay; + u32 tx_abs_int_delay; + u32 gotcl; + u64 gotcl_old; + u64 tpt_old; + u64 colc_old; + u32 tx_timeout_count; + u32 tx_fifo_head; + u32 tx_head_addr; + u32 tx_fifo_size; + u8 tx_timeout_factor; + atomic_t tx_fifo_stall; + bool pcix_82544; + bool detect_tx_hung; + bool dump_buffers; + bool (*clean_rx)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int *, int); + void (*alloc_rx_buf)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int); + struct e1000_rx_ring *rx_ring; + struct napi_struct napi; + int num_tx_queues; + int num_rx_queues; + u64 hw_csum_err; + u64 hw_csum_good; + u32 alloc_rx_buff_failed; + u32 rx_int_delay; + u32 rx_abs_int_delay; + bool rx_csum; + u32 gorcl; + u64 gorcl_old; + struct net_device *netdev; + struct pci_dev *pdev; + struct e1000_hw___3 hw; + struct e1000_hw_stats___3 stats; + struct e1000_phy_info___3 phy_info; + struct e1000_phy_stats phy_stats; + u32 test_icr; + struct e1000_tx_ring test_tx_ring; + struct e1000_rx_ring test_rx_ring; + int msg_enable; + bool tso_force; + bool smart_power_down; + bool quad_port_a; + unsigned long flags; + u32 eeprom_wol; + int bars; + int need_ioport; + bool discarding; + struct work_struct reset_task; + struct delayed_work watchdog_task; + struct delayed_work fifo_stall_task; + struct delayed_work phy_info_task; +}; + +struct e1000_tx_buffer { + struct sk_buff *skb; + dma_addr_t dma; + unsigned long time_stamp; + u16 length; + u16 next_to_watch; + bool mapped_as_page; + unsigned short segs; + unsigned int bytecount; +}; + +struct e1000_rx_buffer { + union { + struct page *page; + u8 *data; + } rxbuf; + dma_addr_t dma; +}; + +enum iwl_fw_sta_type { + STATION_TYPE_PEER = 0, + STATION_TYPE_BCAST_MGMT = 1, + STATION_TYPE_MCAST = 2, + STATION_TYPE_AUX = 3, +}; + +enum iwl_scd_queue_cfg_operation { + IWL_SCD_QUEUE_ADD = 0, + IWL_SCD_QUEUE_REMOVE = 1, + IWL_SCD_QUEUE_MODIFY = 2, +}; + +enum iwl_rx_baid_action { + IWL_RX_BAID_ACTION_ADD = 0, + IWL_RX_BAID_ACTION_MODIFY = 1, + IWL_RX_BAID_ACTION_REMOVE = 2, +}; + +struct iwl_mvm_aux_sta_cmd { + __le32 sta_id; + __le32 lmac_id; + u8 mac_addr[6]; + __le16 reserved_for_mac_addr; +}; + +struct iwl_he_pkt_ext_v2 { + u8 pkt_ext_qam_th[20]; +}; + +struct iwl_mvm_sta_cfg_cmd { + __le32 sta_id; + __le32 link_id; + u8 peer_mld_address[6]; + __le16 reserved_for_peer_mld_address; + u8 peer_link_address[6]; + __le16 reserved_for_peer_link_address; + __le32 station_type; + __le32 assoc_id; + __le32 beamform_flags; + __le32 mfp; + __le32 mimo; + __le32 mimo_protection; + __le32 ack_enabled; + __le32 trig_rnd_alloc; + __le32 tx_ampdu_spacing; + __le32 tx_ampdu_max_size; + __le32 sp_length; + __le32 uapsd_acs; + struct iwl_he_pkt_ext_v2 pkt_ext; + __le32 htc_flags; +}; + +struct iwl_mvm_remove_sta_cmd { + __le32 sta_id; +}; + +struct iwl_scd_queue_cfg_cmd { + __le32 operation; + union { + struct { + __le32 sta_mask; + u8 tid; + u8 reserved[3]; + __le32 flags; + __le32 cb_size; + __le64 bc_dram_addr; + __le64 tfdq_dram_addr; + } add; + struct { + __le32 sta_mask; + __le32 tid; + } remove; + struct { + __le32 old_sta_mask; + __le32 tid; + __le32 new_sta_mask; + } modify; + } u; +} __attribute__((packed)); + +struct iwl_mvm_txq { + struct list_head list; + u16 txq_id; + atomic_t tx_request; + unsigned long state; +}; + +struct iwl_mvm_sta_disable_tx_cmd { + __le32 sta_id; + __le32 disable; +}; + +struct iwl_rx_baid_cfg_cmd_alloc { + __le32 sta_id_mask; + u8 tid; + u8 reserved[3]; + __le16 ssn; + __le16 win_size; +}; + +struct iwl_rx_baid_cfg_cmd_modify { + __le32 old_sta_id_mask; + __le32 new_sta_id_mask; + __le32 tid; +}; + +struct iwl_rx_baid_cfg_cmd_remove_v1 { + __le32 baid; +}; + +struct iwl_rx_baid_cfg_cmd_remove { + __le32 sta_id_mask; + __le32 tid; +}; + +struct iwl_rx_baid_cfg_cmd { + __le32 action; + union { + struct iwl_rx_baid_cfg_cmd_alloc alloc; + struct iwl_rx_baid_cfg_cmd_modify modify; + struct iwl_rx_baid_cfg_cmd_remove_v1 remove_v1; + struct iwl_rx_baid_cfg_cmd_remove remove; + }; +}; + +struct io_err_c { + struct dm_dev *dev; + sector_t start; +}; + +enum txtime_flags { + SOF_TXTIME_DEADLINE_MODE = 1, + SOF_TXTIME_REPORT_ERRORS = 2, + SOF_TXTIME_FLAGS_LAST = 2, + SOF_TXTIME_FLAGS_MASK = 3, +}; + +enum { + SK_MEMINFO_RMEM_ALLOC = 0, + SK_MEMINFO_RCVBUF = 1, + SK_MEMINFO_WMEM_ALLOC = 2, + SK_MEMINFO_SNDBUF = 3, + SK_MEMINFO_FWD_ALLOC = 4, + SK_MEMINFO_WMEM_QUEUED = 5, + SK_MEMINFO_OPTMEM = 6, + SK_MEMINFO_BACKLOG = 7, + SK_MEMINFO_DROPS = 8, + SK_MEMINFO_VARS = 9, +}; + +struct old_timeval32 { + old_time32_t tv_sec; + s32 tv_usec; +}; + +struct __kernel_sock_timeval { + __s64 tv_sec; + __s64 tv_usec; +}; + +struct linger { + int l_onoff; + int l_linger; +}; + +struct sock_txtime { + __kernel_clockid_t clockid; + __u32 flags; +}; + +struct so_timestamping { + int flags; + int bind_phc; +}; + +enum ieee80211_twt_setup_cmd { + TWT_SETUP_CMD_REQUEST = 0, + TWT_SETUP_CMD_SUGGEST = 1, + TWT_SETUP_CMD_DEMAND = 2, + TWT_SETUP_CMD_GROUPING = 3, + TWT_SETUP_CMD_ACCEPT = 4, + TWT_SETUP_CMD_ALTERNATE = 5, + TWT_SETUP_CMD_DICTATE = 6, + TWT_SETUP_CMD_REJECT = 7, +}; + +struct x86_init_resources { + void (*probe_roms)(); + void (*reserve_resources)(); + char * (*memory_setup)(); +}; + +struct x86_init_mpparse { + void (*setup_ioapic_ids)(); + void (*find_mptable)(); + void (*early_parse_smp_cfg)(); + void (*parse_smp_cfg)(); +}; + +struct x86_init_irqs { + void (*pre_vector_init)(); + void (*intr_init)(); + void (*intr_mode_select)(); + void (*intr_mode_init)(); + struct irq_domain * (*create_pci_msi_domain)(); +}; + +struct x86_init_oem { + void (*arch_setup)(); + void (*banner)(); +}; + +struct x86_init_paging { + void (*pagetable_init)(); +}; + +struct x86_init_timers { + void (*setup_percpu_clockev)(); + void (*timer_init)(); + void (*wallclock_init)(); +}; + +struct x86_init_iommu { + int (*iommu_init)(); +}; + +struct x86_init_pci { + int (*arch_init)(); + int (*init)(); + void (*init_irq)(); + void (*fixup_irqs)(); +}; + +struct x86_hyper_init { + void (*init_platform)(); + void (*guest_late_init)(); + bool (*x2apic_available)(); + bool (*msi_ext_dest_id)(); + void (*init_mem_mapping)(); + void (*init_after_bootmem)(); +}; + +struct x86_init_acpi { + void (*set_root_pointer)(u64); + u64 (*get_root_pointer)(); + void (*reduced_hw_early_init)(); +}; + +struct x86_init_ops { + struct x86_init_resources resources; + struct x86_init_mpparse mpparse; + struct x86_init_irqs irqs; + struct x86_init_oem oem; + struct x86_init_paging paging; + struct x86_init_timers timers; + struct x86_init_iommu iommu; + struct x86_init_pci pci; + struct x86_hyper_init hyper; + struct x86_init_acpi acpi; +}; + +struct x86_cpuinit_ops { + void (*setup_percpu_clockev)(); + void (*early_percpu_clock_init)(); + void (*fixup_cpu_id)(struct cpuinfo_x86 *, int); + bool parallel_bringup; +}; + +enum x86_legacy_i8042_state { + X86_LEGACY_I8042_PLATFORM_ABSENT = 0, + X86_LEGACY_I8042_FIRMWARE_ABSENT = 1, + X86_LEGACY_I8042_EXPECTED_PRESENT = 2, +}; + +struct x86_legacy_devices { + int pnpbios; +}; + +struct x86_legacy_features { + enum x86_legacy_i8042_state i8042; + int rtc; + int warm_reset; + int no_vga; + int reserve_bios_regions; + struct x86_legacy_devices devices; +}; + +struct ghcb; + +struct x86_hyper_runtime { + void (*pin_vcpu)(int); + void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *); + bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *); + bool (*is_private_mmio)(u64); +}; + +struct x86_guest { + bool (*enc_status_change_prepare)(unsigned long, int, bool); + bool (*enc_status_change_finish)(unsigned long, int, bool); + bool (*enc_tlb_flush_required)(bool); + bool (*enc_cache_flush_required)(); +}; + +struct x86_platform_ops { + unsigned long (*calibrate_cpu)(); + unsigned long (*calibrate_tsc)(); + void (*get_wallclock)(struct timespec64 *); + int (*set_wallclock)(const struct timespec64 *); + void (*iommu_shutdown)(); + bool (*is_untracked_pat_range)(u64, u64); + void (*nmi_init)(); + unsigned char (*get_nmi_reason)(); + void (*save_sched_clock_state)(); + void (*restore_sched_clock_state)(); + void (*apic_post_init)(); + struct x86_legacy_features legacy; + void (*set_legacy_features)(); + void (*realmode_reserve)(); + void (*realmode_init)(); + struct x86_hyper_runtime hyper; + struct x86_guest guest; +}; + +struct x86_apic_ops { + unsigned int (*io_apic_read)(unsigned int, unsigned int); + void (*restore)(); +}; + +enum rcutorture_type { + RCU_FLAVOR = 0, + RCU_TASKS_FLAVOR = 1, + RCU_TASKS_RUDE_FLAVOR = 2, + RCU_TASKS_TRACING_FLAVOR = 3, + RCU_TRIVIAL_FLAVOR = 4, + SRCU_FLAVOR = 5, + INVALID_RCU_FLAVOR = 6, +}; + +struct io_tlb_area { + unsigned long used; + unsigned int index; + spinlock_t lock; +}; + +struct io_tlb_slot { + phys_addr_t orig_addr; + size_t alloc_size; + unsigned int list; +}; + +typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); + +struct trace_event_raw_swiotlb_bounced { + struct trace_entry ent; + u32 __data_loc_dev_name; + u64 dma_mask; + dma_addr_t dev_addr; + size_t size; + bool force; + char __data[0]; +}; + +struct trace_event_data_offsets_swiotlb_bounced { + u32 dev_name; + const void *dev_name_ptr_; +}; + +struct btf_anon_stack { + u32 tid; + u32 offset; +}; + +struct uprobe_cpu_buffer { + struct mutex mutex; + void *buf; +}; + +enum fetch_op { + FETCH_OP_NOP = 0, + FETCH_OP_REG = 1, + FETCH_OP_STACK = 2, + FETCH_OP_STACKP = 3, + FETCH_OP_RETVAL = 4, + FETCH_OP_IMM = 5, + FETCH_OP_COMM = 6, + FETCH_OP_ARG = 7, + FETCH_OP_FOFFS = 8, + FETCH_OP_DATA = 9, + FETCH_OP_EDATA = 10, + FETCH_OP_DEREF = 11, + FETCH_OP_UDEREF = 12, + FETCH_OP_ST_RAW = 13, + FETCH_OP_ST_MEM = 14, + FETCH_OP_ST_UMEM = 15, + FETCH_OP_ST_STRING = 16, + FETCH_OP_ST_USTRING = 17, + FETCH_OP_ST_SYMSTR = 18, + FETCH_OP_ST_EDATA = 19, + FETCH_OP_MOD_BF = 20, + FETCH_OP_LP_ARRAY = 21, + FETCH_OP_TP_ARG = 22, + FETCH_OP_END = 23, + FETCH_NOP_SYMBOL = 24, +}; + +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, +}; + +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_BAD_MAXACT_TYPE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_NO_TRACEPOINT = 12, + TP_ERR_BAD_ADDR_SUFFIX = 13, + TP_ERR_NO_GROUP_NAME = 14, + TP_ERR_GROUP_TOO_LONG = 15, + TP_ERR_BAD_GROUP_NAME = 16, + TP_ERR_NO_EVENT_NAME = 17, + TP_ERR_EVENT_TOO_LONG = 18, + TP_ERR_BAD_EVENT_NAME = 19, + TP_ERR_EVENT_EXIST = 20, + TP_ERR_RETVAL_ON_PROBE = 21, + TP_ERR_NO_RETVAL = 22, + TP_ERR_BAD_STACK_NUM = 23, + TP_ERR_BAD_ARG_NUM = 24, + TP_ERR_BAD_VAR = 25, + TP_ERR_BAD_REG_NAME = 26, + TP_ERR_BAD_MEM_ADDR = 27, + TP_ERR_BAD_IMM = 28, + TP_ERR_IMMSTR_NO_CLOSE = 29, + TP_ERR_FILE_ON_KPROBE = 30, + TP_ERR_BAD_FILE_OFFS = 31, + TP_ERR_SYM_ON_UPROBE = 32, + TP_ERR_TOO_MANY_OPS = 33, + TP_ERR_DEREF_NEED_BRACE = 34, + TP_ERR_BAD_DEREF_OFFS = 35, + TP_ERR_DEREF_OPEN_BRACE = 36, + TP_ERR_COMM_CANT_DEREF = 37, + TP_ERR_BAD_FETCH_ARG = 38, + TP_ERR_ARRAY_NO_CLOSE = 39, + TP_ERR_BAD_ARRAY_SUFFIX = 40, + TP_ERR_BAD_ARRAY_NUM = 41, + TP_ERR_ARRAY_TOO_BIG = 42, + TP_ERR_BAD_TYPE = 43, + TP_ERR_BAD_STRING = 44, + TP_ERR_BAD_SYMSTRING = 45, + TP_ERR_BAD_BITFIELD = 46, + TP_ERR_ARG_NAME_TOO_LONG = 47, + TP_ERR_NO_ARG_NAME = 48, + TP_ERR_BAD_ARG_NAME = 49, + TP_ERR_USED_ARG_NAME = 50, + TP_ERR_ARG_TOO_LONG = 51, + TP_ERR_NO_ARG_BODY = 52, + TP_ERR_BAD_INSN_BNDRY = 53, + TP_ERR_FAIL_REG_PROBE = 54, + TP_ERR_DIFF_PROBE_TYPE = 55, + TP_ERR_DIFF_ARG_TYPE = 56, + TP_ERR_SAME_PROBE = 57, + TP_ERR_NO_EVENT_INFO = 58, + TP_ERR_BAD_ATTACH_EVENT = 59, + TP_ERR_BAD_ATTACH_ARG = 60, + TP_ERR_NO_EP_FILTER = 61, + TP_ERR_NOSUP_BTFARG = 62, + TP_ERR_NO_BTFARG = 63, + TP_ERR_NO_BTF_ENTRY = 64, + TP_ERR_BAD_VAR_ARGS = 65, + TP_ERR_NOFENTRY_ARGS = 66, + TP_ERR_DOUBLE_ARGS = 67, + TP_ERR_ARGS_2LONG = 68, + TP_ERR_ARGIDX_2BIG = 69, + TP_ERR_NO_PTR_STRCT = 70, + TP_ERR_NOSUP_DAT_ARG = 71, + TP_ERR_BAD_HYPHEN = 72, + TP_ERR_NO_BTF_FIELD = 73, + TP_ERR_BAD_BTF_TID = 74, + TP_ERR_BAD_TYPE4STR = 75, + TP_ERR_NEED_STRING_TYPE = 76, +}; + +struct fetch_insn; + +struct fetch_type; + +struct probe_arg { + struct fetch_insn *code; + bool dynamic; + unsigned int offset; + unsigned int count; + const char *name; + const char *comm; + char *fmt; + const struct fetch_type *type; +}; + +struct trace_probe_event; + +struct probe_entry_arg; + +struct trace_probe { + struct list_head list; + struct trace_probe_event *event; + ssize_t size; + unsigned int nr_args; + struct probe_entry_arg *entry_arg; + struct probe_arg args[0]; +}; + +struct trace_uprobe { + struct dyn_event devent; + struct uprobe_consumer consumer; + struct path path; + struct inode *inode; + char *filename; + unsigned long offset; + unsigned long ref_ctr_offset; + unsigned long nhit; + struct trace_probe tp; +}; + +struct trace_uprobe_filter { + rwlock_t rwlock; + int nr_systemwide; + struct list_head perf_events; +}; + +struct trace_probe_event { + unsigned int flags; + struct trace_event_class class; + struct trace_event_call call; + struct list_head files; + struct list_head probes; + struct trace_uprobe_filter filter[0]; +}; + +struct probe_entry_arg { + struct fetch_insn *code; + unsigned int size; +}; + +struct fetch_insn { + enum fetch_op op; + union { + unsigned int param; + struct { + unsigned int size; + int offset; + }; + struct { + unsigned char basesize; + unsigned char lshift; + unsigned char rshift; + }; + unsigned long immediate; + void *data; + }; +}; + +typedef int (*print_type_func_t)(struct trace_seq *, void *, void *); + +struct fetch_type { + const char *name; + size_t size; + bool is_signed; + bool is_string; + print_type_func_t print; + const char *fmt; + const char *fmttype; +}; + +struct event_file_link { + struct trace_event_file *file; + struct list_head list; +}; + +struct uprobe_trace_entry_head { + struct trace_entry ent; + unsigned long vaddr[0]; +}; + +struct traceprobe_parse_context { + struct trace_event_call *event; + const char *funcname; + const struct btf_type *proto; + const struct btf_param *params; + s32 nr_params; + struct btf *btf; + const struct btf_type *last_type; + u32 last_bitoffs; + u32 last_bitsize; + struct trace_probe *tp; + unsigned int flags; + int offset; +}; + +typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); + +struct dentry_stat_t { + long nr_dentry; + long nr_unused; + long age_limit; + long want_pages; + long nr_negative; + long dummy; +}; + +enum d_walk_ret { + D_WALK_CONTINUE = 0, + D_WALK_QUIT = 1, + D_WALK_NORETRY = 2, + D_WALK_SKIP = 3, +}; + +struct external_name { + union { + atomic_t count; + struct callback_head head; + } u; + unsigned char name[0]; +}; + +struct check_mount { + struct vfsmount *mnt; + unsigned int mounted; +}; + +struct select_data { + struct dentry *start; + union { + long found; + struct dentry *victim; + }; + struct list_head dispose; +}; + +struct pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; +}; + +struct rsvd_count { + int ndelonly; + bool first_do_lblk_found; + ext4_lblk_t first_do_lblk; + ext4_lblk_t last_do_lblk; + struct extent_status *left_es; + bool partial; + ext4_lblk_t lclu; +}; + +enum btrfs_lockdep_trans_states { + BTRFS_LOCKDEP_TRANS_COMMIT_PREP = 0, + BTRFS_LOCKDEP_TRANS_UNBLOCKED = 1, + BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED = 2, + BTRFS_LOCKDEP_TRANS_COMPLETED = 3, +}; + +enum btrfs_csum_type { + BTRFS_CSUM_TYPE_CRC32 = 0, + BTRFS_CSUM_TYPE_XXHASH = 1, + BTRFS_CSUM_TYPE_SHA256 = 2, + BTRFS_CSUM_TYPE_BLAKE2 = 3, +}; + +struct blk_rq_stat; + +struct blk_stat_callback { + struct list_head list; + struct timer_list timer; + struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; + int (*bucket_fn)(const struct request *); + unsigned int buckets; + struct blk_rq_stat *stat; + void (*timer_fn)(struct blk_stat_callback *); + void *data; + struct callback_head rcu; +}; + +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; + u64 batch; +}; + +struct blk_queue_stats { + struct list_head callbacks; + spinlock_t lock; + int accounting; +}; + +typedef struct tree_desc_s tree_desc; + +enum { + TTY_LOCK_NORMAL = 0, + TTY_LOCK_SLAVE = 1, +}; + +typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); + +struct ata_acpi_hotplug_context { + struct acpi_hotplug_context hp; + union { + struct ata_port *ap; + struct ata_device *dev; + } data; +}; + +struct ata_acpi_gtf { + u8 tf[7]; +}; + +struct iwl_dev_info { + u16 device; + u16 subdevice; + u16 mac_type; + u16 rf_type; + u8 mac_step; + u8 rf_step; + u8 rf_id; + u8 no_160; + u8 cores; + u8 cdb; + u8 jacket; + const struct iwl_cfg *cfg; + const char *name; +}; + +enum { + WFPM_AUX_CTL_AUX_IF_MAC_OWNER_MSK = 2147483648, +}; + +enum iwl_device_power_flags { + DEVICE_POWER_FLAGS_POWER_SAVE_ENA_MSK = 1, + DEVICE_POWER_FLAGS_ALLOW_MEM_RETENTION_MSK = 2, + DEVICE_POWER_FLAGS_NO_SLEEP_TILL_D3_MSK = 128, + DEVICE_POWER_FLAGS_32K_CLK_VALID_MSK = 4096, +}; + +enum iwl_power_flags { + POWER_FLAGS_POWER_SAVE_ENA_MSK = 1, + POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK = 2, + POWER_FLAGS_SKIP_OVER_DTIM_MSK = 4, + POWER_FLAGS_SNOOZE_ENA_MSK = 32, + POWER_FLAGS_BT_SCO_ENA = 256, + POWER_FLAGS_ADVANCE_PM_ENA_MSK = 512, + POWER_FLAGS_LPRX_ENA_MSK = 2048, + POWER_FLAGS_UAPSD_MISBEHAVING_ENA_MSK = 4096, +}; + +enum iwl_uapsd_disable { + IWL_DISABLE_UAPSD_BSS = 1, + IWL_DISABLE_UAPSD_P2P_CLIENT = 2, +}; + +struct iwl_beacon_filter_cmd { + __le32 bf_energy_delta; + __le32 bf_roaming_energy_delta; + __le32 bf_roaming_state; + __le32 bf_temp_threshold; + __le32 bf_temp_fast_filter; + __le32 bf_temp_slow_filter; + __le32 bf_enable_beacon_filter; + __le32 bf_debug_flag; + __le32 bf_escape_timer; + __le32 ba_escape_timer; + __le32 ba_enable_beacon_abort; + __le32 bf_threshold_absolute_low[2]; + __le32 bf_threshold_absolute_high[2]; +}; + +struct iwl_power_vifs { + struct iwl_mvm *mvm; + struct ieee80211_vif *bss_vif; + struct ieee80211_vif *p2p_vif; + struct ieee80211_vif *ap_vif; + struct ieee80211_vif *monitor_vif; + bool p2p_active; + bool bss_active; + bool ap_active; + bool monitor_active; +}; + +struct iwl_mac_power_cmd { + __le32 id_and_color; + __le16 flags; + __le16 keep_alive_seconds; + __le32 rx_data_timeout; + __le32 tx_data_timeout; + __le32 rx_data_timeout_uapsd; + __le32 tx_data_timeout_uapsd; + u8 lprx_rssi_threshold; + u8 skip_dtim_periods; + __le16 snooze_interval; + __le16 snooze_window; + u8 snooze_step; + u8 qndp_tid; + u8 uapsd_ac_flags; + u8 uapsd_max_sp; + u8 heavy_tx_thld_packets; + u8 heavy_rx_thld_packets; + u8 heavy_tx_thld_percentage; + u8 heavy_rx_thld_percentage; + u8 limited_ps_threshold; + u8 reserved; +}; + +struct iwl_device_power_cmd { + __le16 flags; + __le16 reserved; +}; + +struct iwl_uapsd_misbehaving_ap_notif { + __le32 sta_id; + u8 mac_id; + u8 reserved[3]; +}; + +enum rtw_rfe_fem { + RTW_RFE_IFEM = 0, + RTW_RFE_EFEM = 1, + RTW_RFE_IFEM2G_EFEM5G = 2, + RTW_RFE_NUM = 3, +}; + +struct cca_ccut; + +struct rtw8822b_rfe_info { + const struct cca_ccut *cca_ccut_2g; + const struct cca_ccut *cca_ccut_5g; + enum rtw_rfe_fem fem; + bool ifem_ext; + void (*rtw_set_channel_rfe)(struct rtw_dev *, u8); +}; + +struct cca_ccut { + u32 reg82c[4]; + u32 reg830[4]; + u32 reg838[4]; +}; + +enum { + CCUT_IDX_1R_2G = 0, + CCUT_IDX_2R_2G = 1, + CCUT_IDX_1R_5G = 2, + CCUT_IDX_2R_5G = 3, + CCUT_IDX_NR = 4, +}; + +struct rtw8822be_efuse { + u8 mac_addr[6]; + u8 vender_id[2]; + u8 device_id[2]; + u8 sub_vender_id[2]; + u8 sub_device_id[2]; + u8 pmc[2]; + u8 exp_device_cap[2]; + u8 msi_cap; + u8 ltr_cap; + u8 exp_link_control[2]; + u8 link_cap[4]; + u8 link_control[2]; + u8 serial_number[8]; + u8 res0: 2; + u8 ltr_en: 1; + u8 res1: 2; + u8 obff: 2; + char: 1; + u8 res2: 3; + u8 obff_cap: 2; + short: 3; + u8 res3: 4; + u8 res4[3]; + u8 class_code[3]; + u8 pci_pm_L1_2_supp: 1; + u8 pci_pm_L1_1_supp: 1; + u8 aspm_pm_L1_2_supp: 1; + u8 aspm_pm_L1_1_supp: 1; + u8 L1_pm_substates_supp: 1; + u8 res5: 3; + u8 port_common_mode_restore_time; + u8 port_t_power_on_scale: 2; + u8 res6: 1; + u8 port_t_power_on_value: 5; + u8 res7; +}; + +struct rtw8822bu_efuse { + u8 res4[4]; + u8 usb_optional_function; + u8 res5[30]; + u8 res6[2]; + u8 serial[11]; + u8 vid; + u8 res7; + u8 pid; + u8 res8[4]; + u8 mac_addr[6]; + u8 res9[2]; + u8 vendor_name[7]; + u8 res10[2]; + u8 device_name[20]; + u8 res11[207]; + u8 package_type; + u8 res12[4]; +}; + +struct rtw8822bs_efuse { + u8 res4[74]; + u8 mac_addr[6]; +}; + +struct rtw8822b_efuse { + __le16 rtl_id; + u8 res0[14]; + struct rtw_txpwr_idx txpwr_idx_table[4]; + u8 channel_plan; + u8 xtal_k; + u8 thermal_meter; + u8 iqk_lck; + u8 pa_type; + u8 lna_type_2g[2]; + u8 lna_type_5g[2]; + u8 rf_board_option; + u8 rf_feature_option; + u8 rf_bt_setting; + u8 eeprom_version; + u8 eeprom_customer_id; + u8 tx_bb_swing_setting_2g; + u8 tx_bb_swing_setting_5g; + u8 tx_pwr_calibrate_rate; + u8 rf_antenna_option; + u8 rfe_option; + u8 country_code[2]; + u8 res[3]; + union { + struct rtw8822be_efuse e; + struct rtw8822bu_efuse u; + struct rtw8822bs_efuse s; + }; +}; + +struct usage_priority { + __u32 usage; + bool global; + unsigned int slot_overwrite; +}; + +typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); + +typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); + +enum { + ETHTOOL_A_HEADER_UNSPEC = 0, + ETHTOOL_A_HEADER_DEV_INDEX = 1, + ETHTOOL_A_HEADER_DEV_NAME = 2, + ETHTOOL_A_HEADER_FLAGS = 3, + __ETHTOOL_A_HEADER_CNT = 4, + ETHTOOL_A_HEADER_MAX = 3, +}; + +enum ethtool_multicast_groups { + ETHNL_MCGRP_MONITOR = 0, +}; + +struct ethnl_dump_ctx { + const struct ethnl_request_ops *ops; + struct ethnl_req_info *req_info; + struct ethnl_reply_data *reply_data; + unsigned long pos_ifindex; +}; + +struct skb_checksum_ops { + __wsum (*update)(const void *, int, __wsum); + __wsum (*combine)(__wsum, __wsum, int, int); +}; + +enum nft_payload_attributes { + NFTA_PAYLOAD_UNSPEC = 0, + NFTA_PAYLOAD_DREG = 1, + NFTA_PAYLOAD_BASE = 2, + NFTA_PAYLOAD_OFFSET = 3, + NFTA_PAYLOAD_LEN = 4, + NFTA_PAYLOAD_SREG = 5, + NFTA_PAYLOAD_CSUM_TYPE = 6, + NFTA_PAYLOAD_CSUM_OFFSET = 7, + NFTA_PAYLOAD_CSUM_FLAGS = 8, + __NFTA_PAYLOAD_MAX = 9, +}; + +enum nft_payload_csum_types { + NFT_PAYLOAD_CSUM_NONE = 0, + NFT_PAYLOAD_CSUM_INET = 1, + NFT_PAYLOAD_CSUM_SCTP = 2, +}; + +enum nft_payload_csum_flags { + NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 1, +}; + +struct sctphdr { + __be16 source; + __be16 dest; + __be32 vtag; + __le32 checksum; +}; + +struct nft_payload_set { + enum nft_payload_bases base: 8; + u8 offset; + u8 len; + u8 sreg; + u8 csum_type; + u8 csum_offset; + u8 csum_flags; +}; + +enum { + IEEE80211_PROBE_FLAG_DIRECTED = 1, + IEEE80211_PROBE_FLAG_MIN_CONTENT = 2, + IEEE80211_PROBE_FLAG_RANDOM_SN = 4, +}; + +enum assoc_status { + ASSOC_SUCCESS = 0, + ASSOC_REJECTED = 1, + ASSOC_TIMEOUT = 2, + ASSOC_ABANDON = 3, +}; + +enum ieee80211_p2p_attr_id { + IEEE80211_P2P_ATTR_STATUS = 0, + IEEE80211_P2P_ATTR_MINOR_REASON = 1, + IEEE80211_P2P_ATTR_CAPABILITY = 2, + IEEE80211_P2P_ATTR_DEVICE_ID = 3, + IEEE80211_P2P_ATTR_GO_INTENT = 4, + IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT = 5, + IEEE80211_P2P_ATTR_LISTEN_CHANNEL = 6, + IEEE80211_P2P_ATTR_GROUP_BSSID = 7, + IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING = 8, + IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR = 9, + IEEE80211_P2P_ATTR_MANAGABILITY = 10, + IEEE80211_P2P_ATTR_CHANNEL_LIST = 11, + IEEE80211_P2P_ATTR_ABSENCE_NOTICE = 12, + IEEE80211_P2P_ATTR_DEVICE_INFO = 13, + IEEE80211_P2P_ATTR_GROUP_INFO = 14, + IEEE80211_P2P_ATTR_GROUP_ID = 15, + IEEE80211_P2P_ATTR_INTERFACE = 16, + IEEE80211_P2P_ATTR_OPER_CHANNEL = 17, + IEEE80211_P2P_ATTR_INVITE_FLAGS = 18, + IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221, + IEEE80211_P2P_ATTR_MAX = 222, +}; + +enum ieee80211_timeout_interval_type { + WLAN_TIMEOUT_REASSOC_DEADLINE = 1, + WLAN_TIMEOUT_KEY_LIFETIME = 2, + WLAN_TIMEOUT_ASSOC_COMEBACK = 3, +}; + +enum ieee80211_vht_opmode_bits { + IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 3, + IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ = 0, + IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ = 1, + IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ = 2, + IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ = 3, + IEEE80211_OPMODE_NOTIF_BW_160_80P80 = 4, + IEEE80211_OPMODE_NOTIF_RX_NSS_MASK = 112, + IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT = 4, + IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF = 128, +}; + +enum ieee80211_idle_options { + WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = 1, +}; + +enum ieee80211_bss_corrupt_data_flags { + IEEE80211_BSS_CORRUPT_BEACON = 1, + IEEE80211_BSS_CORRUPT_PROBE_RESP = 2, +}; + +struct ieee80211_mle_basic_common_info { + u8 len; + u8 mld_mac_addr[6]; + u8 variable[0]; +}; + +struct ieee80211_csa_ie { + struct ieee80211_chan_req chanreq; + u8 mode; + u8 count; + u8 ttl; + u16 pre_value; + u16 reason_code; + u32 max_switch_time; +}; + +struct ieee80211_bss { + u32 device_ts_beacon; + u32 device_ts_presp; + bool wmm_used; + bool uapsd_supported; + u8 supp_rates[32]; + size_t supp_rates_len; + struct ieee80211_rate *beacon_rate; + u32 vht_cap_info; + bool has_erp_value; + u8 erp_value; + u8 corrupt_data; + u8 valid_data; +}; + +struct ieee80211_country_ie_triplet { + union { + struct { + u8 first_channel; + u8 num_channels; + s8 max_power; + } chans; + struct { + u8 reg_extension_id; + u8 reg_class; + u8 coverage_class; + } ext; + }; +}; + +enum perf_msr_id { + PERF_MSR_TSC = 0, + PERF_MSR_APERF = 1, + PERF_MSR_MPERF = 2, + PERF_MSR_PPERF = 3, + PERF_MSR_SMI = 4, + PERF_MSR_PTSC = 5, + PERF_MSR_IRPERF = 6, + PERF_MSR_THERM = 7, + PERF_MSR_EVENT_MAX = 8, +}; + +typedef struct sigevent sigevent_t; + +struct trace_probe_log { + const char *subsystem; + const char **argv; + int argc; + int index; +}; + +enum { + XA_CHECK_SCHED = 4096, +}; + +struct dirty_throttle_control { + struct wb_domain *dom; + struct dirty_throttle_control *gdtc; + struct bdi_writeback *wb; + struct fprop_local_percpu *wb_completions; + unsigned long avail; + unsigned long dirty; + unsigned long thresh; + unsigned long bg_thresh; + unsigned long wb_dirty; + unsigned long wb_thresh; + unsigned long wb_bg_thresh; + unsigned long pos_ratio; +}; + +struct wb_lock_cookie { + bool locked; + unsigned long flags; +}; + +struct prepend_buffer { + char *buf; + int len; +}; + +enum clear_refs_types { + CLEAR_REFS_ALL = 1, + CLEAR_REFS_ANON = 2, + CLEAR_REFS_MAPPED = 3, + CLEAR_REFS_SOFT_DIRTY = 4, + CLEAR_REFS_MM_HIWATER_RSS = 5, + CLEAR_REFS_LAST = 6, +}; + +struct page_region { + __u64 start; + __u64 end; + __u64 categories; +}; + +struct proc_maps_private { + struct inode *inode; + struct task_struct *task; + struct mm_struct *mm; + struct vma_iterator iter; + struct mempolicy *task_mempolicy; +}; + +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages; + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask; + __u64 return_mask; +}; + +struct pagemap_scan_private { + struct pm_scan_arg arg; + unsigned long masks_of_interest; + unsigned long cur_vma_category; + struct page_region *vec_buf; + unsigned long vec_buf_len; + unsigned long vec_buf_index; + unsigned long found_pages; + struct page_region __attribute__((btf_type_tag("user"))) *vec_out; +}; + +struct mem_size_stats { + unsigned long resident; + unsigned long shared_clean; + unsigned long shared_dirty; + unsigned long private_clean; + unsigned long private_dirty; + unsigned long referenced; + unsigned long anonymous; + unsigned long lazyfree; + unsigned long anonymous_thp; + unsigned long shmem_thp; + unsigned long file_thp; + unsigned long swap; + unsigned long shared_hugetlb; + unsigned long private_hugetlb; + unsigned long ksm; + u64 pss; + u64 pss_anon; + u64 pss_file; + u64 pss_shmem; + u64 pss_dirty; + u64 pss_locked; + u64 swap_pss; +}; + +typedef struct { + u64 pme; +} pagemap_entry_t; + +struct pagemapread { + int pos; + int len; + pagemap_entry_t *buffer; + bool show_pfn; +}; + +struct clear_refs_private { + enum clear_refs_types type; +}; + +struct numa_maps { + unsigned long pages; + unsigned long anon; + unsigned long active; + unsigned long writeback; + unsigned long mapcount_max; + unsigned long dirty; + unsigned long swapcache; + unsigned long node[1024]; +}; + +struct numa_maps_private { + struct proc_maps_private proc_maps; + struct numa_maps md; +}; + +struct btrfs_fid { + u64 objectid; + u64 root_objectid; + u32 gen; + u64 parent_objectid; + u32 parent_gen; + u64 parent_root_objectid; +} __attribute__((packed)); + +struct user_key_payload { + struct callback_head rcu; + unsigned short datalen; + long: 0; + char data[0]; +}; + +struct crypto_akcipher_sync_data { + struct crypto_akcipher *tfm; + const void *src; + void *dst; + unsigned int slen; + unsigned int dlen; + struct akcipher_request *req; + struct crypto_wait cwait; + struct scatterlist sg; + u8 *buf; +}; + +typedef u32 (*acpi_osd_handler)(void *); + +struct acpi_ioremap { + struct list_head list; + void *virt; + acpi_physical_address phys; + acpi_size size; + union { + unsigned long refcount; + struct rcu_work rwork; + } track; +}; + +struct acpi_os_dpc { + acpi_osd_exec_callback function; + void *context; + struct work_struct work; +}; + +struct acpi_hp_work { + struct work_struct work; + struct acpi_device *adev; + u32 src; +}; + +struct acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; +}; + +struct acpi_predefined_names { + const char *name; + u8 type; + char *val; +}; + +struct virtio_blk_vq; + +struct virtio_blk { + struct mutex vdev_mutex; + struct virtio_device *vdev; + struct gendisk *disk; + struct blk_mq_tag_set tag_set; + struct work_struct config_work; + int index; + int num_vqs; + int io_queues[3]; + struct virtio_blk_vq *vqs; + unsigned int zone_sectors; +}; + +struct virtio_blk_vq { + struct virtqueue *vq; + spinlock_t lock; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct virtio_blk_outhdr { + __virtio32 type; + __virtio32 ioprio; + __virtio64 sector; +}; + +struct virtblk_req { + struct virtio_blk_outhdr out_hdr; + union { + u8 status; + struct { + __virtio64 sector; + u8 status; + } zone_append; + } in_hdr; + size_t in_hdr_len; + struct sg_table sg_table; + struct scatterlist sg[0]; +}; + +struct virtio_blk_discard_write_zeroes { + __le64 sector; + __le32 num_sectors; + __le32 flags; +}; + +enum e1000_state_t___3 { + __E1000_TESTING___2 = 0, + __E1000_RESETTING___2 = 1, + __E1000_ACCESS_SHARED_RESOURCE = 2, + __E1000_DOWN___2 = 3, +}; + +union e1000_rx_desc_extended { + struct { + __le64 buffer_addr; + __le64 reserved; + } read; + struct { + struct { + __le32 mrq; + union { + __le32 rss; + struct { + __le16 ip_id; + __le16 csum; + } csum_ip; + } hi_dword; + } lower; + struct { + __le32 status_error; + __le16 length; + __le16 vlan; + } upper; + } wb; +}; + +enum iwl_sta_flags { + STA_FLG_REDUCED_TX_PWR_CTRL = 8, + STA_FLG_REDUCED_TX_PWR_DATA = 64, + STA_FLG_DISABLE_TX = 16, + STA_FLG_PS = 256, + STA_FLG_DRAIN_FLOW = 4096, + STA_FLG_PAN = 8192, + STA_FLG_CLASS_AUTH = 16384, + STA_FLG_CLASS_ASSOC = 32768, + STA_FLG_RTS_MIMO_PROT = 131072, + STA_FLG_MAX_AGG_SIZE_SHIFT = 19, + STA_FLG_MAX_AGG_SIZE_8K = 0, + STA_FLG_MAX_AGG_SIZE_16K = 524288, + STA_FLG_MAX_AGG_SIZE_32K = 1048576, + STA_FLG_MAX_AGG_SIZE_64K = 1572864, + STA_FLG_MAX_AGG_SIZE_128K = 2097152, + STA_FLG_MAX_AGG_SIZE_256K = 2621440, + STA_FLG_MAX_AGG_SIZE_512K = 3145728, + STA_FLG_MAX_AGG_SIZE_1024K = 3670016, + STA_FLG_MAX_AGG_SIZE_2M = 4194304, + STA_FLG_MAX_AGG_SIZE_4M = 4718592, + STA_FLG_MAX_AGG_SIZE_MSK = 7864320, + STA_FLG_AGG_MPDU_DENS_SHIFT = 23, + STA_FLG_AGG_MPDU_DENS_2US = 33554432, + STA_FLG_AGG_MPDU_DENS_4US = 41943040, + STA_FLG_AGG_MPDU_DENS_8US = 50331648, + STA_FLG_AGG_MPDU_DENS_16US = 58720256, + STA_FLG_AGG_MPDU_DENS_MSK = 58720256, + STA_FLG_FAT_EN_20MHZ = 0, + STA_FLG_FAT_EN_40MHZ = 67108864, + STA_FLG_FAT_EN_80MHZ = 134217728, + STA_FLG_FAT_EN_160MHZ = 201326592, + STA_FLG_FAT_EN_MSK = 201326592, + STA_FLG_MIMO_EN_SISO = 0, + STA_FLG_MIMO_EN_MIMO2 = 268435456, + STA_FLG_MIMO_EN_MIMO3 = 536870912, + STA_FLG_MIMO_EN_MSK = 805306368, +}; + +enum iwl_ac { + AC_BK = 0, + AC_BE = 1, + AC_VI = 2, + AC_VO = 3, + AC_NUM = 4, +}; + +enum iwl_sta_modify_flag { + STA_MODIFY_QUEUE_REMOVAL = 1, + STA_MODIFY_TID_DISABLE_TX = 2, + STA_MODIFY_UAPSD_ACS = 4, + STA_MODIFY_ADD_BA_TID = 8, + STA_MODIFY_REMOVE_BA_TID = 16, + STA_MODIFY_SLEEPING_STA_TX_COUNT = 32, + STA_MODIFY_PROT_TH = 64, + STA_MODIFY_QUEUES = 128, +}; + +enum iwl_mvm_add_sta_rsp_status { + ADD_STA_SUCCESS = 1, + ADD_STA_STATIONS_OVERLOAD = 2, + ADD_STA_IMMEDIATE_BA_FAILURE = 4, + ADD_STA_MODIFY_NON_EXISTING_STA = 8, +}; + +enum iwl_sta_type { + IWL_STA_LINK = 0, + IWL_STA_GENERAL_PURPOSE = 1, + IWL_STA_MULTICAST = 2, + IWL_STA_TDLS_LINK = 3, + IWL_STA_AUX_ACTIVITY = 4, +}; + +enum iwl_sta_mode { + STA_MODE_ADD = 0, + STA_MODE_MODIFY = 1, +}; + +enum iwl_mvm_tx_fifo { + IWL_MVM_TX_FIFO_BK = 0, + IWL_MVM_TX_FIFO_BE = 1, + IWL_MVM_TX_FIFO_VI = 2, + IWL_MVM_TX_FIFO_VO = 3, + IWL_MVM_TX_FIFO_MCAST = 5, + IWL_MVM_TX_FIFO_CMD = 7, +}; + +enum iwl_sta_sleep_flag { + STA_SLEEP_STATE_AWAKE = 0, + STA_SLEEP_STATE_PS_POLL = 1, + STA_SLEEP_STATE_UAPSD = 2, + STA_SLEEP_STATE_MOREDATA = 4, +}; + +enum iwl_scd_cfg_actions { + SCD_CFG_DISABLE_QUEUE = 0, + SCD_CFG_ENABLE_QUEUE = 1, + SCD_CFG_UPDATE_QUEUE_TID = 2, +}; + +struct iwl_mvm_add_sta_cmd { + u8 add_modify; + u8 awake_acs; + __le16 tid_disable_tx; + __le32 mac_id_n_color; + u8 addr[6]; + __le16 reserved2; + u8 sta_id; + u8 modify_mask; + __le16 reserved3; + __le32 station_flags; + __le32 station_flags_msk; + u8 add_immediate_ba_tid; + u8 remove_immediate_ba_tid; + __le16 add_immediate_ba_ssn; + __le16 sleep_tx_count; + u8 sleep_state_flags; + u8 station_type; + __le16 assoc_id; + __le16 beamform_flags; + __le32 tfd_queue_msk; + __le16 rx_ba_window; + u8 sp_length; + u8 uapsd_acs; +}; + +struct iwl_scd_txq_cfg_cmd { + u8 token; + u8 sta_id; + u8 tid; + u8 scd_queue; + u8 action; + u8 aggregate; + u8 tx_fifo; + u8 window; + __le16 ssn; + __le16 reserved; +}; + +struct iwl_mvm_add_sta_key_common { + u8 sta_id; + u8 key_offset; + __le16 key_flags; + u8 key[32]; + u8 rx_secur_seq_cnt[16]; +}; + +struct iwl_mvm_add_sta_key_cmd_v1 { + struct iwl_mvm_add_sta_key_common common; + u8 tkip_rx_tsc_byte2; + u8 reserved; + __le16 tkip_rx_ttak[5]; +}; + +struct iwl_mvm_add_sta_key_cmd { + struct iwl_mvm_add_sta_key_common common; + __le64 rx_mic_key; + __le64 tx_mic_key; + __le64 transmit_seq_cnt; +} __attribute__((packed)); + +struct iwl_mvm_rm_sta_cmd { + u8 sta_id; + u8 reserved[3]; +}; + +struct iwl_mvm_mgmt_mcast_key_cmd { + __le32 ctrl_flags; + u8 igtk[32]; + __le32 key_id; + __le32 sta_id; + __le64 receive_seq_cnt; +} __attribute__((packed)); + +struct iwl_mvm_mgmt_mcast_key_cmd_v1 { + __le32 ctrl_flags; + u8 igtk[16]; + u8 k1[16]; + u8 k2[16]; + __le32 key_id; + __le32 sta_id; + __le64 receive_seq_cnt; +} __attribute__((packed)); + +struct iwl_mvm_eosp_notification { + __le32 remain_frame_count; + __le32 sta_id; +}; + +struct iwl_cancel_channel_switch_cmd { + __le32 id; +}; + +enum sanyo_state { + STATE_INACTIVE___6 = 0, + STATE_HEADER_SPACE___3 = 1, + STATE_BIT_PULSE___3 = 2, + STATE_BIT_SPACE___3 = 3, + STATE_TRAILER_PULSE___2 = 4, + STATE_TRAILER_SPACE___2 = 5, +}; + +struct simplefb_platform_data { + u32 width; + u32 height; + u32 stride; + const char *format; +}; + +enum { + ETHTOOL_A_EEE_UNSPEC = 0, + ETHTOOL_A_EEE_HEADER = 1, + ETHTOOL_A_EEE_MODES_OURS = 2, + ETHTOOL_A_EEE_MODES_PEER = 3, + ETHTOOL_A_EEE_ACTIVE = 4, + ETHTOOL_A_EEE_ENABLED = 5, + ETHTOOL_A_EEE_TX_LPI_ENABLED = 6, + ETHTOOL_A_EEE_TX_LPI_TIMER = 7, + __ETHTOOL_A_EEE_CNT = 8, + ETHTOOL_A_EEE_MAX = 7, +}; + +struct eee_reply_data { + struct ethnl_reply_data base; + struct ethtool_keee eee; +}; + +enum nft_meta_attributes { + NFTA_META_UNSPEC = 0, + NFTA_META_DREG = 1, + NFTA_META_KEY = 2, + NFTA_META_SREG = 3, + __NFTA_META_MAX = 4, +}; + +struct nf_defrag_hook { + struct module *owner; + int (*enable)(struct net *); + void (*disable)(struct net *); +}; + +enum ip6_defrag_users { + IP6_DEFRAG_LOCAL_DELIVER = 0, + IP6_DEFRAG_CONNTRACK_IN = 1, + __IP6_DEFRAG_CONNTRACK_IN = 65536, + IP6_DEFRAG_CONNTRACK_OUT = 65537, + __IP6_DEFRAG_CONNTRACK_OUT = 131072, + IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073, + __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608, +}; + +struct equiv_cpu_entry; + +struct equiv_cpu_table { + unsigned int num_entries; + struct equiv_cpu_entry *entry; +}; + +struct equiv_cpu_entry { + u32 installed_cpu; + u32 fixed_errata_mask; + u32 fixed_errata_compare; + u16 equiv_cpu; + u16 res; +}; + +struct microcode_header_amd { + u32 data_code; + u32 patch_id; + u16 mc_patch_data_id; + u8 mc_patch_data_len; + u8 init_flag; + u32 mc_patch_data_checksum; + u32 nb_dev_id; + u32 sb_dev_id; + u16 processor_rev_id; + u8 nb_rev_id; + u8 sb_rev_id; + u8 bios_api_rev; + u8 reserved1[3]; + u32 match_reg[8]; +}; + +struct microcode_amd { + struct microcode_header_amd hdr; + unsigned int mpb[0]; +}; + +struct ucode_patch { + struct list_head plist; + void *data; + unsigned int size; + u32 patch_id; + u16 equiv_cpu; +}; + +struct cont_desc { + struct microcode_amd *mc; + u32 cpuid_1_eax; + u32 psize; + u8 *data; + size_t size; +}; + +struct cpuid_regs_done { + struct cpuid_regs regs; + struct completion done; +}; + +enum { + MAX_IORES_LEVEL = 5, +}; + +struct resource_constraint { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t (*alignf)(void *, const struct resource *, resource_size_t, resource_size_t); + void *alignf_data; +}; + +struct region_devres { + struct resource *parent; + resource_size_t start; + resource_size_t n; +}; + +struct ptrace_sud_config { + __u64 mode; + __u64 selector; + __u64 offset; + __u64 len; +}; + +enum { + FUTEX_STATE_OK = 0, + FUTEX_STATE_EXITING = 1, + FUTEX_STATE_DEAD = 2, +}; + +struct rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; +}; + +enum mm_cid_state { + MM_CID_UNSET = 4294967295, + MM_CID_LAZY_PUT = 2147483648, +}; + +struct user_arg_ptr { + union { + const char __attribute__((btf_type_tag("user"))) * const __attribute__((btf_type_tag("user"))) *native; + } ptr; +}; + +struct iomap_swapfile_info { + struct iomap iomap; + struct swap_info_struct *sis; + uint64_t lowest_ppage; + uint64_t highest_ppage; + unsigned long nr_pages; + int nr_extents; + struct file *file; +}; + +enum { + ____TRANS_FREEZABLE_BIT = 0, + __TRANS_FREEZABLE = 1, + ____TRANS_FREEZABLE_SEQ = 0, + ____TRANS_START_BIT = 1, + __TRANS_START = 2, + ____TRANS_START_SEQ = 1, + ____TRANS_ATTACH_BIT = 2, + __TRANS_ATTACH = 4, + ____TRANS_ATTACH_SEQ = 2, + ____TRANS_JOIN_BIT = 3, + __TRANS_JOIN = 8, + ____TRANS_JOIN_SEQ = 3, + ____TRANS_JOIN_NOLOCK_BIT = 4, + __TRANS_JOIN_NOLOCK = 16, + ____TRANS_JOIN_NOLOCK_SEQ = 4, + ____TRANS_DUMMY_BIT = 5, + __TRANS_DUMMY = 32, + ____TRANS_DUMMY_SEQ = 5, + ____TRANS_JOIN_NOSTART_BIT = 6, + __TRANS_JOIN_NOSTART = 64, + ____TRANS_JOIN_NOSTART_SEQ = 6, +}; + +enum btrfs_delayed_ref_flags { + BTRFS_DELAYED_REFS_FLUSHING = 0, +}; + +struct asymmetric_key_parser { + struct list_head link; + struct module *owner; + const char *name; + int (*parse)(struct key_preparsed_payload *); +}; + +enum blacklist_hash_type { + BLACKLIST_HASH_X509_TBS = 1, + BLACKLIST_HASH_BINARY = 2, +}; + +struct blk_major_name { + struct blk_major_name *next; + int major; + char name[16]; + void (*probe)(dev_t); +}; + +struct strarray { + char **array; + size_t n; +}; + +struct vga_device { + struct list_head list; + struct pci_dev *pdev; + unsigned int decodes; + unsigned int owns; + unsigned int locks; + unsigned int io_lock_cnt; + unsigned int mem_lock_cnt; + unsigned int io_norm_cnt; + unsigned int mem_norm_cnt; + bool bridge_has_one_vga; + bool is_firmware_default; + unsigned int (*set_decode)(struct pci_dev *, bool); +}; + +struct vga_arb_user_card { + struct pci_dev *pdev; + unsigned int mem_cnt; + unsigned int io_cnt; +}; + +struct vga_arb_private { + struct list_head list; + struct pci_dev *target; + struct vga_arb_user_card cards[16]; + spinlock_t lock; +}; + +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *); +}; + +struct clk_bulk_devres { + struct clk_bulk_data *clks; + int num_clks; +}; + +enum iwl_sf_scenario { + SF_SCENARIO_SINGLE_UNICAST = 0, + SF_SCENARIO_AGG_UNICAST = 1, + SF_SCENARIO_MULTICAST = 2, + SF_SCENARIO_BA_RESP = 3, + SF_SCENARIO_TX_RESP = 4, + SF_NUM_SCENARIO = 5, +}; + +struct iwl_sf_cfg_cmd { + __le32 state; + __le32 watermark[2]; + __le32 long_delay_timeouts[10]; + __le32 full_on_timeouts[10]; +}; + +struct iwl_mvm_active_iface_iterator_data { + struct ieee80211_vif *ignore_vif; + struct ieee80211_sta *sta_vif_ap_sta; + enum iwl_sf_state sta_vif_state; + u32 num_active_macs; +}; + +struct dm_kcopyd_throttle; + +struct dm_kcopyd_client { + struct page_list *pages; + unsigned int nr_reserved_pages; + unsigned int nr_free_pages; + unsigned int sub_job_size; + struct dm_io_client *io_client; + wait_queue_head_t destroyq; + mempool_t job_pool; + struct workqueue_struct *kcopyd_wq; + struct work_struct kcopyd_work; + struct dm_kcopyd_throttle *throttle; + atomic_t nr_jobs; + spinlock_t job_lock; + struct list_head callback_jobs; + struct list_head complete_jobs; + struct list_head io_jobs; + struct list_head pages_jobs; +}; + +struct dm_kcopyd_throttle { + unsigned int throttle; + unsigned int num_io_jobs; + unsigned int io_period; + unsigned int total_period; + unsigned int last_jiffies; +}; + +typedef void (*dm_kcopyd_notify_fn)(int, unsigned long, void *); + +struct kcopyd_job { + struct dm_kcopyd_client *kc; + struct list_head list; + unsigned int flags; + int read_err; + unsigned long write_err; + enum req_op op; + struct dm_io_region source; + unsigned int num_dests; + struct dm_io_region dests[8]; + struct page_list *pages; + dm_kcopyd_notify_fn fn; + void *context; + struct mutex lock; + atomic_t sub_jobs; + sector_t progress; + sector_t write_offset; + struct kcopyd_job *master_job; +}; + +struct clock_identity { + u8 id[8]; +}; + +struct port_identity { + struct clock_identity clock_identity; + __be16 port_number; +}; + +struct ptp_header { + u8 tsmt; + u8 ver; + __be16 message_length; + u8 domain_number; + u8 reserved1; + u8 flag_field[2]; + __be64 correction; + __be32 reserved2; + struct port_identity source_port_identity; + __be16 sequence_id; + u8 control; + u8 log_message_interval; +} __attribute__((packed)); + +enum { + NFACCT_NO_QUOTA = -1, + NFACCT_UNDERQUOTA = 0, + NFACCT_OVERQUOTA = 1, +}; + +enum nfnl_acct_flags { + NFACCT_F_QUOTA_PKTS = 1, + NFACCT_F_QUOTA_BYTES = 2, + NFACCT_F_OVERQUOTA = 4, +}; + +enum nfnl_acct_msg_types { + NFNL_MSG_ACCT_NEW = 0, + NFNL_MSG_ACCT_GET = 1, + NFNL_MSG_ACCT_GET_CTRZERO = 2, + NFNL_MSG_ACCT_DEL = 3, + NFNL_MSG_ACCT_OVERQUOTA = 4, + NFNL_MSG_ACCT_MAX = 5, +}; + +enum nfnl_acct_type { + NFACCT_UNSPEC = 0, + NFACCT_NAME = 1, + NFACCT_PKTS = 2, + NFACCT_BYTES = 3, + NFACCT_USE = 4, + NFACCT_FLAGS = 5, + NFACCT_QUOTA = 6, + NFACCT_FILTER = 7, + NFACCT_PAD = 8, + __NFACCT_MAX = 9, +}; + +enum nfnl_attr_filter_type { + NFACCT_FILTER_UNSPEC = 0, + NFACCT_FILTER_MASK = 1, + NFACCT_FILTER_VALUE = 2, + __NFACCT_FILTER_MAX = 3, +}; + +struct nf_acct { + atomic64_t pkts; + atomic64_t bytes; + unsigned long flags; + struct list_head head; + refcount_t refcnt; + char name[32]; + struct callback_head callback_head; + char data[0]; +}; + +struct nfnl_acct_net { + struct list_head nfnl_acct_list; +}; + +struct nfacct_filter { + u32 value; + u32 mask; +}; + +enum flow_cls_command { + FLOW_CLS_REPLACE = 0, + FLOW_CLS_DESTROY = 1, + FLOW_CLS_STATS = 2, + FLOW_CLS_TMPLT_CREATE = 3, + FLOW_CLS_TMPLT_DESTROY = 4, +}; + +enum flow_block_binder_type { + FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0, + FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1, + FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2, + FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3, + FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4, +}; + +struct flow_block_cb; + +struct flow_block_indr { + struct list_head list; + struct net_device *dev; + struct Qdisc *sch; + enum flow_block_binder_type binder_type; + void *data; + void *cb_priv; + void (*cleanup)(struct flow_block_cb *); +}; + +struct flow_block_cb { + struct list_head driver_list; + struct list_head list; + flow_setup_cb_t *cb; + void *cb_ident; + void *cb_priv; + void (*release)(void *); + struct flow_block_indr indr; + unsigned int refcnt; +}; + +struct nft_offload_ethertype { + __be16 value; + __be16 mask; +}; + +struct flow_cls_common_offload { + u32 chain_index; + __be16 protocol; + u32 prio; + struct netlink_ext_ack *extack; +}; + +struct flow_cls_offload { + struct flow_cls_common_offload common; + enum flow_cls_command command; + bool use_act_stats; + unsigned long cookie; + struct flow_rule *rule; + struct flow_stats stats; + u32 classid; +}; + +struct flow_block_offload { + enum flow_block_command command; + enum flow_block_binder_type binder_type; + bool block_shared; + bool unlocked_driver_cb; + struct net *net; + struct flow_block *block; + struct list_head cb_list; + struct list_head *driver_block_list; + struct netlink_ext_ack *extack; + struct Qdisc *sch; + struct list_head *cb_list_head; +}; + +struct ac6_iter_state { + struct seq_net_private p; + struct net_device *dev; +}; + +struct apm_bios_info { + __u16 version; + __u16 cseg; + __u32 offset; + __u16 cseg_16; + __u16 dseg; + __u16 flags; + __u16 cseg_len; + __u16 cseg_16_len; + __u16 dseg_len; +}; + +struct ist_info { + __u32 signature; + __u32 command; + __u32 event; + __u32 perf_level; +}; + +struct sys_desc_table { + __u16 length; + __u8 table[14]; +}; + +struct olpc_ofw_header { + __u32 ofw_magic; + __u32 ofw_version; + __u32 cif_handler; + __u32 irq_desc_table; +}; + +struct edid_info { + unsigned char dummy[128]; +}; + +struct setup_header { + __u8 setup_sects; + __u16 root_flags; + __u32 syssize; + __u16 ram_size; + __u16 vid_mode; + __u16 root_dev; + __u16 boot_flag; + __u16 jump; + __u32 header; + __u16 version; + __u32 realmode_swtch; + __u16 start_sys_seg; + __u16 kernel_version; + __u8 type_of_loader; + __u8 loadflags; + __u16 setup_move_size; + __u32 code32_start; + __u32 ramdisk_image; + __u32 ramdisk_size; + __u32 bootsect_kludge; + __u16 heap_end_ptr; + __u8 ext_loader_ver; + __u8 ext_loader_type; + __u32 cmd_line_ptr; + __u32 initrd_addr_max; + __u32 kernel_alignment; + __u8 relocatable_kernel; + __u8 min_alignment; + __u16 xloadflags; + __u32 cmdline_size; + __u32 hardware_subarch; + __u64 hardware_subarch_data; + __u32 payload_offset; + __u32 payload_length; + __u64 setup_data; + __u64 pref_address; + __u32 init_size; + __u32 handover_offset; + __u32 kernel_info_offset; +} __attribute__((packed)); + +struct boot_e820_entry { + __u64 addr; + __u64 size; + __u32 type; +} __attribute__((packed)); + +struct edd_device_params { + __u16 length; + __u16 info_flags; + __u32 num_default_cylinders; + __u32 num_default_heads; + __u32 sectors_per_track; + __u64 number_of_sectors; + __u16 bytes_per_sector; + __u32 dpte_ptr; + __u16 key; + __u8 device_path_info_length; + __u8 reserved2; + __u16 reserved3; + __u8 host_bus_type[4]; + __u8 interface_type[8]; + union { + struct { + __u16 base_address; + __u16 reserved1; + __u32 reserved2; + } isa; + struct { + __u8 bus; + __u8 slot; + __u8 function; + __u8 channel; + __u32 reserved; + } pci; + struct { + __u64 reserved; + } ibnd; + struct { + __u64 reserved; + } xprs; + struct { + __u64 reserved; + } htpt; + struct { + __u64 reserved; + } unknown; + } interface_path; + union { + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } ata; + struct { + __u8 device; + __u8 lun; + __u8 reserved1; + __u8 reserved2; + __u32 reserved3; + __u64 reserved4; + } atapi; + struct { + __u16 id; + __u64 lun; + __u16 reserved1; + __u32 reserved2; + } __attribute__((packed)) scsi; + struct { + __u64 serial_number; + __u64 reserved; + } usb; + struct { + __u64 eui; + __u64 reserved; + } i1394; + struct { + __u64 wwid; + __u64 lun; + } fibre; + struct { + __u64 identity_tag; + __u64 reserved; + } i2o; + struct { + __u32 array_number; + __u32 reserved1; + __u64 reserved2; + } raid; + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } sata; + struct { + __u64 reserved1; + __u64 reserved2; + } unknown; + } device_path; + __u8 reserved4; + __u8 checksum; +} __attribute__((packed)); + +struct edd_info { + __u8 device; + __u8 version; + __u16 interface_support; + __u16 legacy_max_cylinder; + __u8 legacy_max_head; + __u8 legacy_sectors_per_track; + struct edd_device_params params; +}; + +struct boot_params { + struct screen_info screen_info; + struct apm_bios_info apm_bios_info; + __u8 _pad2[4]; + __u64 tboot_addr; + struct ist_info ist_info; + __u64 acpi_rsdp_addr; + __u8 _pad3[8]; + __u8 hd0_info[16]; + __u8 hd1_info[16]; + struct sys_desc_table sys_desc_table; + struct olpc_ofw_header olpc_ofw_header; + __u32 ext_ramdisk_image; + __u32 ext_ramdisk_size; + __u32 ext_cmd_line_ptr; + __u8 _pad4[112]; + __u32 cc_blob_address; + struct edid_info edid_info; + struct efi_info efi_info; + __u32 alt_mem_k; + __u32 scratch; + __u8 e820_entries; + __u8 eddbuf_entries; + __u8 edd_mbr_sig_buf_entries; + __u8 kbd_status; + __u8 secure_boot; + __u8 _pad5[2]; + __u8 sentinel; + __u8 _pad6[1]; + struct setup_header hdr; + __u8 _pad7[36]; + __u32 edd_mbr_sig_buffer[16]; + struct boot_e820_entry e820_table[128]; + __u8 _pad8[48]; + struct edd_info eddbuf[6]; + __u8 _pad9[276]; +}; + +struct idt_bits { + u16 ist: 3; + u16 zero: 5; + u16 type: 5; + u16 dpl: 2; + u16 p: 1; +}; + +struct gate_struct { + u16 offset_low; + u16 segment; + struct idt_bits bits; + u16 offset_middle; + u32 offset_high; + u32 reserved; +}; + +typedef struct gate_struct gate_desc; + +enum x86_hardware_subarch { + X86_SUBARCH_PC = 0, + X86_SUBARCH_LGUEST = 1, + X86_SUBARCH_XEN = 2, + X86_SUBARCH_INTEL_MID = 3, + X86_SUBARCH_CE4100 = 4, + X86_NR_SUBARCHS = 5, +}; + +enum { + GATE_INTERRUPT = 14, + GATE_TRAP = 15, + GATE_CALL = 12, + GATE_TASK = 5, +}; + +typedef unsigned long p4dval_t; + +struct boot_params_to_save { + unsigned int start; + unsigned int len; +}; + +struct idt_data { + unsigned int vector; + unsigned int segment; + struct idt_bits bits; + const void *addr; +}; + +struct _fpx_sw_bytes { + __u32 magic1; + __u32 extended_size; + __u64 xfeatures; + __u32 xstate_size; + __u32 padding[7]; +}; + +struct user_i387_ia32_struct { + u32 cwd; + u32 swd; + u32 twd; + u32 fip; + u32 fcs; + u32 foo; + u32 fos; + u32 st_space[20]; +}; + +struct pt_regs_offset { + const char *name; + int offset; +}; + +enum x86_regset_32 { + REGSET32_GENERAL = 0, + REGSET32_FP = 1, + REGSET32_XFP = 2, + REGSET32_XSTATE = 3, + REGSET32_TLS = 4, + REGSET32_IOPERM = 5, +}; + +enum x86_regset_64 { + REGSET64_GENERAL = 0, + REGSET64_FP = 1, + REGSET64_IOPERM = 2, + REGSET64_XSTATE = 3, + REGSET64_SSP = 4, +}; + +typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int); + +typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t); + +typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t); + +typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); + +struct alarm_base { + spinlock_t lock; + struct timerqueue_head timerqueue; + ktime_t (*get_ktime)(); + void (*get_timespec)(struct timespec64 *); + clockid_t base_clockid; +}; + +struct trace_event_raw_alarmtimer_suspend { + struct trace_entry ent; + s64 expires; + unsigned char alarm_type; + char __data[0]; +}; + +struct trace_event_raw_alarm_class { + struct trace_entry ent; + void *alarm; + unsigned char alarm_type; + s64 expires; + s64 now; + char __data[0]; +}; + +struct trace_event_data_offsets_alarmtimer_suspend {}; + +struct trace_event_data_offsets_alarm_class {}; + +struct trace_kprobe { + struct dyn_event devent; + struct kretprobe rp; + unsigned long __attribute__((btf_type_tag("percpu"))) *nhit; + const char *symbol; + struct trace_probe tp; +}; + +struct kretprobe_trace_entry_head { + struct trace_entry ent; + unsigned long func; + unsigned long ret_ip; +}; + +struct kprobe_trace_entry_head { + struct trace_entry ent; + unsigned long ip; +}; + +struct sym_count_ctx { + unsigned int count; + const char *name; +}; + +struct files_stat_struct { + unsigned long nr_files; + unsigned long nr_free_files; + unsigned long max_files; +}; + +struct backing_file { + struct file file; + struct path user_path; +}; + +struct btrfs_csum_item { + __u8 csum; +}; + +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; +}; + +typedef struct { + U32 tableTime; + U32 decode256Time; +} algo_time_t; + +typedef struct { + BYTE nbBits; + BYTE byte; +} HUF_DEltX1; + +typedef struct { + U32 rankVal[13]; + U32 rankStart[13]; + U32 statsWksp[218]; + BYTE symbols[256]; + BYTE huffWeight[256]; +} HUF_ReadDTableX1_Workspace; + +typedef struct { + U16 sequence; + BYTE nbBits; + BYTE length; +} HUF_DEltX2; + +typedef U32 rankValCol_t[13]; + +typedef struct { + BYTE symbol; +} sortedSymbol_t; + +typedef struct { + rankValCol_t rankVal[12]; + U32 rankStats[13]; + U32 rankStart0[15]; + sortedSymbol_t sortedSymbol[256]; + BYTE weightList[256]; + U32 calleeWksp[218]; +} HUF_ReadDTableX2_Workspace; + +typedef struct { + BYTE maxTableLog; + BYTE tableType; + BYTE tableLog; + BYTE reserved; +} DTableDesc; + +struct e1000_fw_version { + u32 etrack_id; + u16 eep_major; + u16 eep_minor; + u16 eep_build; + u8 invm_major; + u8 invm_minor; + u8 invm_img_type; + bool or_valid; + u16 or_major; + u16 or_build; + u16 or_patch; +}; + +struct iwl_rxq_sync_cmd { + __le32 flags; + __le32 rxq_mask; + __le32 count; + u8 payload[0]; +}; + +enum iwl_mcc_update_status { + MCC_RESP_NEW_CHAN_PROFILE = 0, + MCC_RESP_SAME_CHAN_PROFILE = 1, + MCC_RESP_INVALID = 2, + MCC_RESP_NVM_DISABLED = 3, + MCC_RESP_ILLEGAL = 4, + MCC_RESP_LOW_PRIORITY = 5, + MCC_RESP_TEST_MODE_ACTIVE = 6, + MCC_RESP_TEST_MODE_NOT_ACTIVE = 7, + MCC_RESP_TEST_MODE_DENIAL_OF_SERVICE = 8, +}; + +enum ieee80211_radiotap_timestamp_unit_spos { + IEEE80211_RADIOTAP_TIMESTAMP_UNIT_MASK = 15, + IEEE80211_RADIOTAP_TIMESTAMP_UNIT_MS = 0, + IEEE80211_RADIOTAP_TIMESTAMP_UNIT_US = 1, + IEEE80211_RADIOTAP_TIMESTAMP_UNIT_NS = 3, + IEEE80211_RADIOTAP_TIMESTAMP_SPOS_MASK = 240, + IEEE80211_RADIOTAP_TIMESTAMP_SPOS_BEGIN_MDPU = 0, + IEEE80211_RADIOTAP_TIMESTAMP_SPOS_PLCP_SIG_ACQ = 16, + IEEE80211_RADIOTAP_TIMESTAMP_SPOS_EO_PPDU = 32, + IEEE80211_RADIOTAP_TIMESTAMP_SPOS_EO_MPDU = 48, + IEEE80211_RADIOTAP_TIMESTAMP_SPOS_UNKNOWN = 240, +}; + +enum iwl_dev_tx_power_cmd_mode { + IWL_TX_POWER_MODE_SET_MAC = 0, + IWL_TX_POWER_MODE_SET_DEVICE = 1, + IWL_TX_POWER_MODE_SET_CHAINS = 2, + IWL_TX_POWER_MODE_SET_ACK = 3, + IWL_TX_POWER_MODE_SET_SAR_TIMER = 4, + IWL_TX_POWER_MODE_SET_SAR_TIMER_DEFAULT_TABLE = 5, +}; + +enum iwl_he_pkt_ext_constellations { + IWL_HE_PKT_EXT_BPSK = 0, + IWL_HE_PKT_EXT_QPSK = 1, + IWL_HE_PKT_EXT_16QAM = 2, + IWL_HE_PKT_EXT_64QAM = 3, + IWL_HE_PKT_EXT_256QAM = 4, + IWL_HE_PKT_EXT_1024QAM = 5, + IWL_HE_PKT_EXT_4096QAM = 6, + IWL_HE_PKT_EXT_NONE = 7, +}; + +enum iwl_he_htc_flags { + IWL_HE_HTC_SUPPORT = 1, + IWL_HE_HTC_UL_MU_RESP_SCHED = 8, + IWL_HE_HTC_BSR_SUPP = 16, + IWL_HE_HTC_OMI_SUPP = 32, + IWL_HE_HTC_BQR_SUPP = 64, +}; + +enum iwl_mvm_low_latency_cause { + LOW_LATENCY_TRAFFIC = 1, + LOW_LATENCY_DEBUGFS = 2, + LOW_LATENCY_VCMD = 4, + LOW_LATENCY_VIF_TYPE = 8, + LOW_LATENCY_DEBUGFS_FORCE_ENABLE = 16, + LOW_LATENCY_DEBUGFS_FORCE = 32, +}; + +enum iwl_mvm_pm_event { + IWL_MVM_PM_EVENT_AWAKE = 0, + IWL_MVM_PM_EVENT_ASLEEP = 1, + IWL_MVM_PM_EVENT_UAPSD = 2, + IWL_MVM_PM_EVENT_PS_POLL = 3, +}; + +enum iwl_he_sta_ctxt_flags { + STA_CTXT_HE_REF_BSSID_VALID = 16, + STA_CTXT_HE_BSS_COLOR_DIS = 32, + STA_CTXT_HE_PARTIAL_BSS_COLOR = 64, + STA_CTXT_HE_32BIT_BA_BITMAP = 128, + STA_CTXT_HE_PACKET_EXT = 256, + STA_CTXT_HE_TRIG_RND_ALLOC = 512, + STA_CTXT_HE_CONST_TRIG_RND_ALLOC = 1024, + STA_CTXT_HE_ACK_ENABLED = 2048, + STA_CTXT_HE_MU_EDCA_CW = 4096, + STA_CTXT_HE_NIC_NOT_ACK_ENABLED = 8192, + STA_CTXT_HE_RU_2MHZ_BLOCK = 16384, + STA_CTXT_HE_NDP_FEEDBACK_ENABLED = 32768, + STA_CTXT_EHT_PUNCTURE_MASK_VALID = 65536, + STA_CTXT_EHT_LONG_PPE_ENABLED = 131072, +}; + +enum iwl_roc_activity { + ROC_ACTIVITY_HOTSPOT = 0, + ROC_ACTIVITY_P2P_DISC = 1, + ROC_ACTIVITY_P2P_TXRX = 2, + ROC_NUM_ACTIVITIES = 3, +}; + +struct iwl_mcc_update_resp_v8 { + __le32 status; + __le16 mcc; + u8 padding[2]; + __le32 cap; + __le16 time; + __le16 geo_info; + u8 source_id; + u8 reserved[3]; + __le32 n_channels; + __le32 channels[0]; +}; + +struct iwl_mu_group_mgmt_cmd { + __le32 reserved; + __le32 membership_status[2]; + __le32 user_position[4]; +}; + +struct iwl_hs20_roc_req_tail { + u8 node_addr[6]; + __le16 reserved; + __le32 apply_time; + __le32 apply_time_max_delay; + __le32 duration; +}; + +struct iwl_hs20_roc_req { + __le32 id_and_color; + __le32 action; + __le32 event_unique_id; + __le32 sta_id_and_color; + struct iwl_fw_channel_info channel_info; + struct iwl_hs20_roc_req_tail tail; +}; + +struct iwl_mvm_ftm_responder_iter_data { + bool responder; + struct ieee80211_chanctx_conf *ctx; +}; + +struct iwl_chan_switch_te_cmd { + __le32 mac_id; + __le32 action; + __le32 tsf; + u8 cs_count; + u8 cs_delayed_bcn_count; + u8 cs_mode; + u8 reserved; +}; + +struct iwl_fw_dbg_trigger_mlme { + u8 stop_auth_denied; + u8 stop_auth_timeout; + u8 stop_rx_deauth; + u8 stop_tx_deauth; + u8 stop_assoc_denied; + u8 stop_assoc_timeout; + u8 stop_connection_loss; + u8 reserved; + u8 start_auth_denied; + u8 start_auth_timeout; + u8 start_rx_deauth; + u8 start_tx_deauth; + u8 start_assoc_denied; + u8 start_assoc_timeout; + u8 start_connection_loss; + u8 reserved2; +}; + +struct iwl_mvm_he_obss_narrow_bw_ru_data { + bool tolerated; +}; + +struct iwl_mvm_mc_iter_data { + struct iwl_mvm *mvm; + int port_id; +}; + +struct iwl_mu_group_mgmt_notif { + __le32 membership_status[2]; + __le32 user_position[4]; +}; + +struct iwl_he_backoff_conf { + __le16 cwmin; + __le16 cwmax; + __le16 aifsn; + __le16 mu_time; +}; + +struct iwl_mvm_pm_state_notification { + u8 sta_id; + u8 type; + __le16 reserved; +}; + +struct iwl_fw_dbg_trigger_tdls { + u8 action_bitmap; + u8 peer_mode; + u8 peer[6]; + u8 reserved[4]; +}; + +struct iwl_he_pkt_ext_v1 { + u8 pkt_ext_qam_th[16]; +}; + +struct iwl_he_sta_context_cmd_v2 { + u8 sta_id; + u8 tid_limit; + u8 reserved1; + u8 reserved2; + __le32 flags; + u8 ref_bssid_addr[6]; + __le16 reserved0; + __le32 htc_flags; + u8 frag_flags; + u8 frag_level; + u8 frag_max_num; + u8 frag_min_size; + struct iwl_he_pkt_ext_v1 pkt_ext; + u8 bss_color; + u8 htc_trig_based_pkt_ext; + __le16 frame_time_rts_th; + u8 rand_alloc_ecwmin; + u8 rand_alloc_ecwmax; + __le16 reserved3; + struct iwl_he_backoff_conf trig_based_txf[4]; + u8 max_bssid_indicator; + u8 bssid_index; + u8 ema_ap; + u8 profile_periodicity; + u8 bssid_count; + u8 reserved4[3]; +}; + +struct iwl_he_sta_context_cmd_v3 { + u8 sta_id; + u8 tid_limit; + u8 reserved1; + u8 reserved2; + __le32 flags; + u8 ref_bssid_addr[6]; + __le16 reserved0; + __le32 htc_flags; + u8 frag_flags; + u8 frag_level; + u8 frag_max_num; + u8 frag_min_size; + struct iwl_he_pkt_ext_v2 pkt_ext; + u8 bss_color; + u8 htc_trig_based_pkt_ext; + __le16 frame_time_rts_th; + u8 rand_alloc_ecwmin; + u8 rand_alloc_ecwmax; + __le16 puncture_mask; + struct iwl_he_backoff_conf trig_based_txf[4]; + u8 max_bssid_indicator; + u8 bssid_index; + u8 ema_ap; + u8 profile_periodicity; + u8 bssid_count; + u8 reserved4[3]; +}; + +struct iwl_hs20_roc_res { + __le32 event_unique_id; + __le32 status; +}; + +struct ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); +}; + +enum ehci_hrtimer_event { + EHCI_HRTIMER_POLL_ASS = 0, + EHCI_HRTIMER_POLL_PSS = 1, + EHCI_HRTIMER_POLL_DEAD = 2, + EHCI_HRTIMER_UNLINK_INTR = 3, + EHCI_HRTIMER_FREE_ITDS = 4, + EHCI_HRTIMER_ACTIVE_UNLINK = 5, + EHCI_HRTIMER_START_UNLINK_INTR = 6, + EHCI_HRTIMER_ASYNC_UNLINKS = 7, + EHCI_HRTIMER_IAA_WATCHDOG = 8, + EHCI_HRTIMER_DISABLE_PERIODIC = 9, + EHCI_HRTIMER_DISABLE_ASYNC = 10, + EHCI_HRTIMER_IO_WATCHDOG = 11, + EHCI_HRTIMER_NUM_EVENTS = 12, +}; + +enum ehci_rh_state { + EHCI_RH_HALTED = 0, + EHCI_RH_SUSPENDED = 1, + EHCI_RH_RUNNING = 2, + EHCI_RH_STOPPING = 3, +}; + +struct ehci_stats { + unsigned long normal; + unsigned long error; + unsigned long iaa; + unsigned long lost_iaa; + unsigned long complete; + unsigned long unlink; +}; + +struct ehci_caps; + +struct ehci_regs; + +struct ehci_dbg_port; + +struct ehci_qh; + +union ehci_shadow; + +struct ehci_itd; + +struct ehci_sitd; + +struct ehci_hcd { + enum ehci_hrtimer_event next_hrtimer_event; + unsigned int enabled_hrtimer_events; + ktime_t hr_timeouts[12]; + struct hrtimer hrtimer; + int PSS_poll_count; + int ASS_poll_count; + int died_poll_count; + struct ehci_caps *caps; + struct ehci_regs *regs; + struct ehci_dbg_port *debug; + __u32 hcs_params; + spinlock_t lock; + enum ehci_rh_state rh_state; + bool scanning: 1; + bool need_rescan: 1; + bool intr_unlinking: 1; + bool iaa_in_progress: 1; + bool async_unlinking: 1; + bool shutdown: 1; + struct ehci_qh *qh_scan_next; + struct ehci_qh *async; + struct ehci_qh *dummy; + struct list_head async_unlink; + struct list_head async_idle; + unsigned int async_unlink_cycle; + unsigned int async_count; + __le32 old_current; + __le32 old_token; + unsigned int periodic_size; + __le32 *periodic; + dma_addr_t periodic_dma; + struct list_head intr_qh_list; + unsigned int i_thresh; + union ehci_shadow *pshadow; + struct list_head intr_unlink_wait; + struct list_head intr_unlink; + unsigned int intr_unlink_wait_cycle; + unsigned int intr_unlink_cycle; + unsigned int now_frame; + unsigned int last_iso_frame; + unsigned int intr_count; + unsigned int isoc_count; + unsigned int periodic_count; + unsigned int uframe_periodic_max; + struct list_head cached_itd_list; + struct ehci_itd *last_itd_to_free; + struct list_head cached_sitd_list; + struct ehci_sitd *last_sitd_to_free; + unsigned long reset_done[15]; + unsigned long bus_suspended; + unsigned long companion_ports; + unsigned long owned_ports; + unsigned long port_c_suspend; + unsigned long suspended_ports; + unsigned long resuming_ports; + struct dma_pool *qh_pool; + struct dma_pool *qtd_pool; + struct dma_pool *itd_pool; + struct dma_pool *sitd_pool; + unsigned int random_frame; + unsigned long next_statechange; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + unsigned int zx_wakeup_clear_needed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + struct ehci_stats stats; + struct dentry *debug_dir; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + unsigned long priv[0]; +}; + +struct ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; +}; + +struct ehci_regs { + u32 command; + u32 status; + u32 intr_enable; + u32 frame_index; + u32 segment; + u32 frame_list; + u32 async_next; + u32 reserved1[2]; + u32 txfill_tuning; + u32 reserved2[6]; + u32 configured_flag; + union { + u32 port_status[15]; + struct { + u32 reserved3[9]; + u32 usbmode; + }; + }; + union { + struct { + u32 reserved4; + u32 hostpc[15]; + }; + u32 brcm_insnreg[4]; + }; + u32 reserved5[2]; + u32 usbmode_ex; +}; + +struct ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; +}; + +struct ehci_fstn; + +union ehci_shadow { + struct ehci_qh *qh; + struct ehci_itd *itd; + struct ehci_sitd *sitd; + struct ehci_fstn *fstn; + __le32 *hw_next; + void *ptr; +}; + +struct ehci_per_sched { + struct usb_device *udev; + struct usb_host_endpoint *ep; + struct list_head ps_list; + u16 tt_usecs; + u16 cs_mask; + u16 period; + u16 phase; + u8 bw_phase; + u8 phase_uf; + u8 usecs; + u8 c_usecs; + u8 bw_uperiod; + u8 bw_period; +}; + +struct ehci_qh_hw; + +struct ehci_qtd; + +struct ehci_qh { + struct ehci_qh_hw *hw; + dma_addr_t qh_dma; + union ehci_shadow qh_next; + struct list_head qtd_list; + struct list_head intr_node; + struct ehci_qtd *dummy; + struct list_head unlink_node; + struct ehci_per_sched ps; + unsigned int unlink_cycle; + u8 qh_state; + u8 xacterrs; + u8 unlink_reason; + u8 gap_uf; + unsigned int is_out: 1; + unsigned int clearing_tt: 1; + unsigned int dequeue_during_giveback: 1; + unsigned int should_be_inactive: 1; +}; + +struct ehci_qh_hw { + __le32 hw_next; + __le32 hw_info1; + __le32 hw_info2; + __le32 hw_current; + __le32 hw_qtd_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + long: 64; + long: 64; + long: 64; +}; + +struct ehci_iso_stream; + +struct ehci_itd { + __le32 hw_next; + __le32 hw_transaction[8]; + __le32 hw_bufp[7]; + __le32 hw_bufp_hi[7]; + dma_addr_t itd_dma; + union ehci_shadow itd_next; + struct urb *urb; + struct ehci_iso_stream *stream; + struct list_head itd_list; + unsigned int frame; + unsigned int pg; + unsigned int index[8]; + long: 64; +}; + +struct ehci_iso_stream { + struct ehci_qh_hw *hw; + u8 bEndpointAddress; + u8 highspeed; + struct list_head td_list; + struct list_head free_list; + struct ehci_per_sched ps; + unsigned int next_uframe; + __le32 splits; + u16 uperiod; + u16 maxp; + unsigned int bandwidth; + __le32 buf0; + __le32 buf1; + __le32 buf2; + __le32 address; +}; + +struct ehci_sitd { + __le32 hw_next; + __le32 hw_fullspeed_ep; + __le32 hw_uframe; + __le32 hw_results; + __le32 hw_buf[2]; + __le32 hw_backpointer; + __le32 hw_buf_hi[2]; + dma_addr_t sitd_dma; + union ehci_shadow sitd_next; + struct urb *urb; + struct ehci_iso_stream *stream; + struct list_head sitd_list; + unsigned int frame; + unsigned int index; +}; + +struct ehci_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; + long: 64; +}; + +struct ehci_qtd { + __le32 hw_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + dma_addr_t qtd_dma; + struct list_head qtd_list; + struct urb *urb; + size_t length; +}; + +typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); + +typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); + +typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); + +typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); + +struct trace_event_raw_i2c_write { + struct trace_entry ent; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + u32 __data_loc_buf; + char __data[0]; +}; + +struct trace_event_raw_i2c_read { + struct trace_entry ent; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + char __data[0]; +}; + +struct trace_event_raw_i2c_reply { + struct trace_entry ent; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + u32 __data_loc_buf; + char __data[0]; +}; + +struct trace_event_raw_i2c_result { + struct trace_entry ent; + int adapter_nr; + __u16 nr_msgs; + __s16 ret; + char __data[0]; +}; + +struct trace_event_data_offsets_i2c_write { + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_i2c_reply { + u32 buf; + const void *buf_ptr_; +}; + +struct trace_event_data_offsets_i2c_read {}; + +struct trace_event_data_offsets_i2c_result {}; + +struct i2c_timings { + u32 bus_freq_hz; + u32 scl_rise_ns; + u32 scl_fall_ns; + u32 scl_int_delay_ns; + u32 sda_fall_ns; + u32 sda_hold_ns; + u32 digital_filter_width_ns; + u32 analog_filter_cutoff_freq_hz; +}; + +struct i2c_cmd_arg { + unsigned int cmd; + void *arg; +}; + +struct i2c_device_identity { + u16 manufacturer_id; + u16 part_id; + u8 die_revision; +}; + +enum { + TCA_STATS_UNSPEC = 0, + TCA_STATS_BASIC = 1, + TCA_STATS_RATE_EST = 2, + TCA_STATS_QUEUE = 3, + TCA_STATS_APP = 4, + TCA_STATS_RATE_EST64 = 5, + TCA_STATS_PAD = 6, + TCA_STATS_BASIC_HW = 7, + TCA_STATS_PKT64 = 8, + __TCA_STATS_MAX = 9, +}; + +struct gnet_stats_basic { + __u64 bytes; + __u32 packets; +}; + +struct gnet_stats_rate_est { + __u32 bps; + __u32 pps; +}; + +enum { + ETHTOOL_A_BITSET_UNSPEC = 0, + ETHTOOL_A_BITSET_NOMASK = 1, + ETHTOOL_A_BITSET_SIZE = 2, + ETHTOOL_A_BITSET_BITS = 3, + ETHTOOL_A_BITSET_VALUE = 4, + ETHTOOL_A_BITSET_MASK = 5, + __ETHTOOL_A_BITSET_CNT = 6, + ETHTOOL_A_BITSET_MAX = 5, +}; + +enum { + ETHTOOL_A_BITSET_BITS_UNSPEC = 0, + ETHTOOL_A_BITSET_BITS_BIT = 1, + __ETHTOOL_A_BITSET_BITS_CNT = 2, + ETHTOOL_A_BITSET_BITS_MAX = 1, +}; + +enum { + ETHTOOL_A_BITSET_BIT_UNSPEC = 0, + ETHTOOL_A_BITSET_BIT_INDEX = 1, + ETHTOOL_A_BITSET_BIT_NAME = 2, + ETHTOOL_A_BITSET_BIT_VALUE = 3, + __ETHTOOL_A_BITSET_BIT_CNT = 4, + ETHTOOL_A_BITSET_BIT_MAX = 3, +}; + +enum nft_trace_types { + NFT_TRACETYPE_UNSPEC = 0, + NFT_TRACETYPE_POLICY = 1, + NFT_TRACETYPE_RETURN = 2, + NFT_TRACETYPE_RULE = 3, + __NFT_TRACETYPE_MAX = 4, +}; + +struct nft_traceinfo { + bool trace; + bool nf_trace; + bool packet_dumped; + enum nft_trace_types type: 8; + u32 skbid; + const struct nft_base_chain *basechain; +}; + +struct nft_jumpstack { + const struct nft_rule_dp *rule; +}; + +struct fib_result_nl { + __be32 fl_addr; + u32 fl_mark; + unsigned char fl_tos; + unsigned char fl_scope; + unsigned char tb_id_in; + unsigned char tb_id; + unsigned char prefixlen; + unsigned char nh_sel; + unsigned char type; + unsigned char scope; + int err; +}; + +struct netdev_notifier_info_ext { + struct netdev_notifier_info info; + union { + u32 mtu; + } ext; +}; + +enum ieee80211_tpt_led_trigger_flags { + IEEE80211_TPT_LEDTRIG_FL_RADIO = 1, + IEEE80211_TPT_LEDTRIG_FL_WORK = 2, + IEEE80211_TPT_LEDTRIG_FL_CONNECTED = 4, +}; + +struct ieee80211_roc_work { + struct list_head list; + struct ieee80211_sub_if_data *sdata; + struct ieee80211_channel *chan; + bool started; + bool abort; + bool hw_begun; + bool notified; + bool on_channel; + unsigned long start_time; + u32 duration; + u32 req_duration; + struct sk_buff *frame; + u64 cookie; + u64 mgmt_tx_cookie; + enum ieee80211_roc_type type; +}; + +struct wq_flusher; + +struct workqueue_attrs; + +struct wq_device; + +struct wq_node_nr_active; + +struct workqueue_struct { + struct list_head pwqs; + struct list_head list; + struct mutex mutex; + int work_color; + int flush_color; + atomic_t nr_pwqs_to_flush; + struct wq_flusher *first_flusher; + struct list_head flusher_queue; + struct list_head flusher_overflow; + struct list_head maydays; + struct worker *rescuer; + int nr_drainers; + int max_active; + int min_active; + int saved_max_active; + int saved_min_active; + struct workqueue_attrs *unbound_attrs; + struct pool_workqueue __attribute__((btf_type_tag("rcu"))) *dfl_pwq; + struct wq_device *wq_dev; + char *lock_name; + struct lock_class_key key; + struct lockdep_map lockdep_map; + char name[32]; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned int flags; + struct pool_workqueue __attribute__((btf_type_tag("percpu"))) __attribute__((btf_type_tag("rcu"))) **cpu_pwq; + struct wq_node_nr_active *node_nr_active[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct wq_flusher { + struct list_head list; + int flush_color; + struct completion done; +}; + +struct pool_workqueue { + struct worker_pool *pool; + struct workqueue_struct *wq; + int work_color; + int flush_color; + int refcnt; + int nr_in_flight[16]; + bool plugged; + int nr_active; + struct list_head inactive_works; + struct list_head pending_node; + struct list_head pwqs_node; + struct list_head mayday_node; + u64 stats[8]; + struct kthread_work release_work; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct worker_pool { + raw_spinlock_t lock; + int cpu; + int node; + int id; + unsigned int flags; + unsigned long watchdog_ts; + bool cpu_stall; + int nr_running; + struct list_head worklist; + int nr_workers; + int nr_idle; + struct list_head idle_list; + struct timer_list idle_timer; + struct work_struct idle_cull_work; + struct timer_list mayday_timer; + struct hlist_head busy_hash[64]; + struct worker *manager; + struct list_head workers; + struct list_head dying_workers; + struct completion *detach_completion; + struct ida worker_ida; + struct workqueue_attrs *attrs; + struct hlist_node hash_node; + int refcnt; + struct callback_head rcu; +}; + +enum wq_affn_scope { + WQ_AFFN_DFL = 0, + WQ_AFFN_CPU = 1, + WQ_AFFN_SMT = 2, + WQ_AFFN_CACHE = 3, + WQ_AFFN_NUMA = 4, + WQ_AFFN_SYSTEM = 5, + WQ_AFFN_NR_TYPES = 6, +}; + +struct workqueue_attrs { + int nice; + cpumask_var_t cpumask; + cpumask_var_t __pod_cpumask; + bool affn_strict; + enum wq_affn_scope affn_scope; + bool ordered; +}; + +struct wq_device { + struct workqueue_struct *wq; + struct device dev; +}; + +struct wq_node_nr_active { + int max; + atomic_t nr; + raw_spinlock_t lock; + struct list_head pending_pwqs; +}; + +typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); + +typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); + +struct wq_pod_type { + int nr_pods; + cpumask_var_t *pod_cpus; + int *pod_node; + int *cpu_pod; +}; + +enum worker_flags { + WORKER_DIE = 2, + WORKER_IDLE = 4, + WORKER_PREP = 8, + WORKER_CPU_INTENSIVE = 64, + WORKER_UNBOUND = 128, + WORKER_REBOUND = 256, + WORKER_NOT_RUNNING = 456, +}; + +enum pool_workqueue_stats { + PWQ_STAT_STARTED = 0, + PWQ_STAT_COMPLETED = 1, + PWQ_STAT_CPU_TIME = 2, + PWQ_STAT_CPU_INTENSIVE = 3, + PWQ_STAT_CM_WAKEUP = 4, + PWQ_STAT_REPATRIATED = 5, + PWQ_STAT_MAYDAY = 6, + PWQ_STAT_RESCUED = 7, + PWQ_NR_STATS = 8, +}; + +enum work_cancel_flags { + WORK_CANCEL_DELAYED = 1, +}; + +enum wq_internal_consts { + NR_STD_WORKER_POOLS = 2, + UNBOUND_POOL_HASH_ORDER = 6, + BUSY_WORKER_HASH_ORDER = 6, + MAX_IDLE_WORKERS_RATIO = 4, + IDLE_WORKER_TIMEOUT = 300000, + MAYDAY_INITIAL_TIMEOUT = 10, + MAYDAY_INTERVAL = 100, + CREATE_COOLDOWN = 1000, + RESCUER_NICE_LEVEL = -20, + HIGHPRI_NICE_LEVEL = -20, + WQ_NAME_LEN = 32, +}; + +enum worker_pool_flags { + POOL_BH = 1, + POOL_MANAGER_ACTIVE = 2, + POOL_DISASSOCIATED = 4, + POOL_BH_DRAINING = 8, +}; + +enum work_flags { + WORK_STRUCT_PENDING = 1, + WORK_STRUCT_INACTIVE = 2, + WORK_STRUCT_PWQ = 4, + WORK_STRUCT_LINKED = 8, + WORK_STRUCT_STATIC = 0, +}; + +struct trace_event_raw_workqueue_queue_work { + struct trace_entry ent; + void *work; + void *function; + u32 __data_loc_workqueue; + int req_cpu; + int cpu; + char __data[0]; +}; + +struct trace_event_raw_workqueue_activate_work { + struct trace_entry ent; + void *work; + char __data[0]; +}; + +struct trace_event_raw_workqueue_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + +struct trace_event_raw_workqueue_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + +struct wq_drain_dead_softirq_work { + struct work_struct work; + struct worker_pool *pool; + struct completion done; +}; + +struct wq_barrier { + struct work_struct work; + struct completion done; + struct task_struct *task; +}; + +struct cwt_wait { + wait_queue_entry_t wait; + struct work_struct *work; +}; + +struct work_for_cpu { + struct work_struct work; + long (*fn)(void *); + void *arg; + long ret; +}; + +struct apply_wqattrs_ctx { + struct workqueue_struct *wq; + struct workqueue_attrs *attrs; + struct list_head list; + struct pool_workqueue *dfl_pwq; + struct pool_workqueue *pwq_tbl[0]; +}; + +struct trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; + const void *workqueue_ptr_; +}; + +struct pr_cont_work_struct { + bool comma; + work_func_t func; + long ctr; +}; + +struct trace_event_data_offsets_workqueue_activate_work {}; + +struct trace_event_data_offsets_workqueue_execute_start {}; + +struct trace_event_data_offsets_workqueue_execute_end {}; + +struct elf64_note { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; +}; + +typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); + +typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +enum rseq_cs_flags { + RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = 1, + RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = 2, + RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = 4, +}; + +enum rseq_flags { + RSEQ_FLAG_UNREGISTER = 1, +}; + +enum rseq_cpu_id_state { + RSEQ_CPU_ID_UNINITIALIZED = -1, + RSEQ_CPU_ID_REGISTRATION_FAILED = -2, +}; + +struct trace_event_raw_rseq_update { + struct trace_entry ent; + s32 cpu_id; + s32 node_id; + s32 mm_cid; + char __data[0]; +}; + +struct trace_event_raw_rseq_ip_fixup { + struct trace_entry ent; + unsigned long regs_ip; + unsigned long start_ip; + unsigned long post_commit_offset; + unsigned long abort_ip; + char __data[0]; +}; + +struct rseq_cs { + __u32 version; + __u32 flags; + __u64 start_ip; + __u64 post_commit_offset; + __u64 abort_ip; +}; + +struct trace_event_data_offsets_rseq_update {}; + +struct trace_event_data_offsets_rseq_ip_fixup {}; + +struct swap_slots_cache { + bool lock_initialized; + struct mutex alloc_lock; + swp_entry_t *slots; + int nr; + int cur; + spinlock_t free_lock; + swp_entry_t *slots_ret; + int n_ret; +}; + +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; +}; + +typedef void (*btf_trace_btrfs_transaction_commit)(void *, const struct btrfs_fs_info *); + +typedef void (*btf_trace_btrfs_inode_new)(void *, const struct inode *); + +typedef void (*btf_trace_btrfs_inode_request)(void *, const struct inode *); + +typedef void (*btf_trace_btrfs_inode_evict)(void *, const struct inode *); + +typedef void (*btf_trace_btrfs_get_extent)(void *, const struct btrfs_root *, const struct btrfs_inode *, const struct extent_map *); + +typedef void (*btf_trace_btrfs_handle_em_exist)(void *, const struct btrfs_fs_info *, const struct extent_map *, const struct extent_map *, u64, u64); + +typedef void (*btf_trace_btrfs_get_extent_show_fi_regular)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, u64); + +typedef void (*btf_trace_btrfs_truncate_show_fi_regular)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, u64); + +typedef void (*btf_trace_btrfs_get_extent_show_fi_inline)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, int, u64); + +typedef void (*btf_trace_btrfs_truncate_show_fi_inline)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, int, u64); + +typedef void (*btf_trace_btrfs_ordered_extent_add)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_remove)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_start)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_put)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_lookup)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_lookup_range)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_lookup_first_range)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_lookup_for_logging)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_lookup_first)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_split)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_dec_test_pending)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_ordered_extent_mark_finished)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *); + +typedef void (*btf_trace_btrfs_finish_ordered_extent)(void *, const struct btrfs_inode *, u64, u64, bool); + +typedef void (*btf_trace___extent_writepage)(void *, const struct page *, const struct inode *, const struct writeback_control *); + +typedef void (*btf_trace_btrfs_writepage_end_io_hook)(void *, const struct btrfs_inode *, u64, u64, int); + +typedef void (*btf_trace_btrfs_sync_file)(void *, const struct file *, int); + +typedef void (*btf_trace_btrfs_sync_fs)(void *, const struct btrfs_fs_info *, int); + +typedef void (*btf_trace_btrfs_add_block_group)(void *, const struct btrfs_fs_info *, const struct btrfs_block_group *, int); + +typedef void (*btf_trace_add_delayed_tree_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_tree_ref *, int); + +typedef void (*btf_trace_run_delayed_tree_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_tree_ref *, int); + +typedef void (*btf_trace_add_delayed_data_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_data_ref *, int); + +typedef void (*btf_trace_run_delayed_data_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_data_ref *, int); + +typedef void (*btf_trace_add_delayed_ref_head)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_head *, int); + +typedef void (*btf_trace_run_delayed_ref_head)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_head *, int); + +typedef void (*btf_trace_btrfs_chunk_alloc)(void *, const struct btrfs_fs_info *, const struct btrfs_chunk_map *, u64, u64); + +typedef void (*btf_trace_btrfs_chunk_free)(void *, const struct btrfs_fs_info *, const struct btrfs_chunk_map *, u64, u64); + +typedef void (*btf_trace_btrfs_cow_block)(void *, const struct btrfs_root *, const struct extent_buffer *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_space_reservation)(void *, const struct btrfs_fs_info *, const char *, u64, u64, int); + +typedef void (*btf_trace_btrfs_trigger_flush)(void *, const struct btrfs_fs_info *, u64, u64, int, const char *); + +typedef void (*btf_trace_btrfs_flush_space)(void *, const struct btrfs_fs_info *, u64, u64, int, int, bool); + +typedef void (*btf_trace_btrfs_reserved_extent_alloc)(void *, const struct btrfs_fs_info *, u64, u64); + +typedef void (*btf_trace_btrfs_reserved_extent_free)(void *, const struct btrfs_fs_info *, u64, u64); + +typedef void (*btf_trace_find_free_extent)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *); + +typedef void (*btf_trace_find_free_extent_search_loop)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *); + +typedef void (*btf_trace_find_free_extent_have_block_group)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *, const struct btrfs_block_group *); + +typedef void (*btf_trace_btrfs_reserve_extent)(void *, const struct btrfs_block_group *, const struct find_free_extent_ctl *); + +typedef void (*btf_trace_btrfs_reserve_extent_cluster)(void *, const struct btrfs_block_group *, const struct find_free_extent_ctl *); + +typedef void (*btf_trace_btrfs_find_cluster)(void *, const struct btrfs_block_group *, u64, u64, u64, u64); + +typedef void (*btf_trace_btrfs_failed_cluster_setup)(void *, const struct btrfs_block_group *); + +typedef void (*btf_trace_btrfs_setup_cluster)(void *, const struct btrfs_block_group *, const struct btrfs_free_cluster *, u64, int); + +typedef void (*btf_trace_alloc_extent_state)(void *, const struct extent_state *, gfp_t, unsigned long); + +typedef void (*btf_trace_free_extent_state)(void *, const struct extent_state *, unsigned long); + +typedef void (*btf_trace_btrfs_work_queued)(void *, const struct btrfs_work *); + +typedef void (*btf_trace_btrfs_work_sched)(void *, const struct btrfs_work *); + +typedef void (*btf_trace_btrfs_all_work_done)(void *, const struct btrfs_fs_info *, const void *); + +typedef void (*btf_trace_btrfs_ordered_sched)(void *, const struct btrfs_work *); + +typedef void (*btf_trace_btrfs_workqueue_alloc)(void *, const struct btrfs_workqueue *, const char *); + +typedef void (*btf_trace_btrfs_workqueue_destroy)(void *, const struct btrfs_workqueue *); + +typedef void (*btf_trace_btrfs_qgroup_reserve_data)(void *, const struct inode *, u64, u64, u64, int); + +typedef void (*btf_trace_btrfs_qgroup_release_data)(void *, const struct inode *, u64, u64, u64, int); + +typedef void (*btf_trace_btrfs_qgroup_account_extents)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup_extent_record *); + +typedef void (*btf_trace_btrfs_qgroup_trace_extent)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup_extent_record *); + +typedef void (*btf_trace_qgroup_num_dirty_extents)(void *, const struct btrfs_fs_info *, u64, u64); + +typedef void (*btf_trace_btrfs_qgroup_account_extent)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64, u64); + +typedef void (*btf_trace_qgroup_update_counters)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup *, u64, u64); + +typedef void (*btf_trace_qgroup_update_reserve)(void *, struct btrfs_fs_info *, struct btrfs_qgroup *, s64, int); + +typedef void (*btf_trace_qgroup_meta_reserve)(void *, struct btrfs_root *, s64, int); + +typedef void (*btf_trace_qgroup_meta_convert)(void *, struct btrfs_root *, s64); + +typedef void (*btf_trace_qgroup_meta_free_all_pertrans)(void *, struct btrfs_root *); + +struct prelim_ref; + +typedef void (*btf_trace_btrfs_prelim_ref_merge)(void *, const struct btrfs_fs_info *, const struct prelim_ref *, const struct prelim_ref *, u64); + +struct extent_inode_elem; + +struct prelim_ref { + struct rb_node rbnode; + u64 root_id; + struct btrfs_key key_for_search; + u8 level; + int count; + struct extent_inode_elem *inode_list; + u64 parent; + u64 wanted_disk_byte; +}; + +typedef void (*btf_trace_btrfs_prelim_ref_insert)(void *, const struct btrfs_fs_info *, const struct prelim_ref *, const struct prelim_ref *, u64); + +typedef void (*btf_trace_btrfs_inode_mod_outstanding_extents)(void *, const struct btrfs_root *, u64, int, unsigned int); + +typedef void (*btf_trace_btrfs_remove_block_group)(void *, const struct btrfs_block_group *); + +typedef void (*btf_trace_btrfs_add_unused_block_group)(void *, const struct btrfs_block_group *); + +typedef void (*btf_trace_btrfs_add_reclaim_block_group)(void *, const struct btrfs_block_group *); + +typedef void (*btf_trace_btrfs_reclaim_block_group)(void *, const struct btrfs_block_group *); + +typedef void (*btf_trace_btrfs_skip_unused_block_group)(void *, const struct btrfs_block_group *); + +typedef void (*btf_trace_btrfs_set_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int); + +typedef void (*btf_trace_btrfs_clear_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int); + +typedef void (*btf_trace_btrfs_convert_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int, unsigned int); + +typedef void (*btf_trace_btrfs_done_preemptive_reclaim)(void *, struct btrfs_fs_info *, const struct btrfs_space_info *); + +typedef void (*btf_trace_btrfs_fail_all_tickets)(void *, struct btrfs_fs_info *, const struct btrfs_space_info *); + +typedef void (*btf_trace_btrfs_reserve_ticket)(void *, const struct btrfs_fs_info *, u64, u64, u64, int, int); + +typedef void (*btf_trace_btrfs_tree_read_lock)(void *, const struct extent_buffer *, u64); + +typedef void (*btf_trace_btrfs_tree_lock)(void *, const struct extent_buffer *, u64); + +typedef void (*btf_trace_btrfs_tree_unlock)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_tree_read_unlock)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_tree_read_unlock_blocking)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_set_lock_blocking_read)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_set_lock_blocking_write)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_try_tree_read_lock)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_try_tree_write_lock)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_btrfs_tree_read_lock_atomic)(void *, const struct extent_buffer *); + +typedef void (*btf_trace_update_bytes_may_use)(void *, const struct btrfs_fs_info *, const struct btrfs_space_info *, u64, s64); + +typedef void (*btf_trace_update_bytes_pinned)(void *, const struct btrfs_fs_info *, const struct btrfs_space_info *, u64, s64); + +struct btrfs_raid_bio; + +struct raid56_bio_trace_info; + +typedef void (*btf_trace_raid56_read)(void *, const struct btrfs_raid_bio *, const struct bio *, const struct raid56_bio_trace_info *); + +enum btrfs_rbio_ops { + BTRFS_RBIO_WRITE = 0, + BTRFS_RBIO_READ_REBUILD = 1, + BTRFS_RBIO_PARITY_SCRUB = 2, +}; + +struct sector_ptr; + +struct btrfs_raid_bio { + struct btrfs_io_context *bioc; + struct list_head hash_list; + struct list_head stripe_cache; + struct work_struct work; + struct bio_list bio_list; + spinlock_t bio_list_lock; + struct list_head plug_list; + unsigned long flags; + enum btrfs_rbio_ops operation; + u16 nr_pages; + u16 nr_sectors; + u8 nr_data; + u8 real_stripes; + u8 stripe_npages; + u8 stripe_nsectors; + u8 scrubp; + int bio_list_bytes; + refcount_t refs; + atomic_t stripes_pending; + wait_queue_head_t io_wait; + unsigned long dbitmap; + unsigned long finish_pbitmap; + struct page **stripe_pages; + struct sector_ptr *bio_sectors; + struct sector_ptr *stripe_sectors; + void **finish_pointers; + unsigned long *error_bitmap; + u8 *csum_buf; + unsigned long *csum_bitmap; +}; + +struct raid56_bio_trace_info { + u64 devid; + u32 offset; + u8 stripe_nr; +}; + +typedef void (*btf_trace_raid56_write)(void *, const struct btrfs_raid_bio *, const struct bio *, const struct raid56_bio_trace_info *); + +typedef void (*btf_trace_btrfs_insert_one_raid_extent)(void *, const struct btrfs_fs_info *, u64, u64, int); + +typedef void (*btf_trace_btrfs_raid_extent_delete)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64); + +typedef void (*btf_trace_btrfs_get_raid_extent_offset)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64); + +struct init_sequence { + int (*init_func)(); + void (*exit_func)(); +}; + +enum { + Opt_acl = 0, + Opt_clear_cache = 1, + Opt_commit_interval = 2, + Opt_compress = 3, + Opt_compress_force = 4, + Opt_compress_force_type = 5, + Opt_compress_type = 6, + Opt_degraded = 7, + Opt_device = 8, + Opt_fatal_errors = 9, + Opt_flushoncommit = 10, + Opt_max_inline = 11, + Opt_barrier = 12, + Opt_datacow = 13, + Opt_datasum = 14, + Opt_defrag = 15, + Opt_discard = 16, + Opt_discard_mode = 17, + Opt_ratio = 18, + Opt_rescan_uuid_tree = 19, + Opt_skip_balance = 20, + Opt_space_cache = 21, + Opt_space_cache_version = 22, + Opt_ssd = 23, + Opt_ssd_spread = 24, + Opt_subvol = 25, + Opt_subvol_empty = 26, + Opt_subvolid = 27, + Opt_thread_pool = 28, + Opt_treelog = 29, + Opt_user_subvol_rm_allowed = 30, + Opt_rescue = 31, + Opt_usebackuproot = 32, + Opt_nologreplay = 33, + Opt_ignorebadroots = 34, + Opt_ignoredatacsums = 35, + Opt_rescue_all = 36, + Opt_enospc_debug = 37, + Opt_err___4 = 38, +}; + +enum { + Opt_discard_sync = 0, + Opt_discard_async = 1, +}; + +enum { + Opt_space_cache_v1 = 0, + Opt_space_cache_v2 = 1, +}; + +enum { + Opt_fatal_errors_panic = 0, + Opt_fatal_errors_bug = 1, +}; + +enum { + Opt_rescue_usebackuproot = 0, + Opt_rescue_nologreplay = 1, + Opt_rescue_ignorebadroots = 2, + Opt_rescue_ignoredatacsums = 3, + Opt_rescue_parameter_all = 4, +}; + +struct trace_event_raw_btrfs_transaction_commit { + struct trace_entry ent; + u8 fsid[16]; + u64 generation; + u64 root_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs__inode { + struct trace_entry ent; + u8 fsid[16]; + u64 ino; + u64 blocks; + u64 disk_i_size; + u64 generation; + u64 last_trans; + u64 logged_trans; + u64 root_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs_get_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 root_objectid; + u64 ino; + u64 start; + u64 len; + u64 orig_start; + u64 block_start; + u64 block_len; + u32 flags; + int refs; + char __data[0]; +}; + +struct trace_event_raw_btrfs_handle_em_exist { + struct trace_entry ent; + u8 fsid[16]; + u64 e_start; + u64 e_len; + u64 map_start; + u64 map_len; + u64 start; + u64 len; + char __data[0]; +}; + +struct trace_event_raw_btrfs__file_extent_item_regular { + struct trace_entry ent; + u8 fsid[16]; + u64 root_obj; + u64 ino; + loff_t isize; + u64 disk_isize; + u64 num_bytes; + u64 ram_bytes; + u64 disk_bytenr; + u64 disk_num_bytes; + u64 extent_offset; + u8 extent_type; + u8 compression; + u64 extent_start; + u64 extent_end; + char __data[0]; +}; + +struct trace_event_raw_btrfs__file_extent_item_inline { + struct trace_entry ent; + u8 fsid[16]; + u64 root_obj; + u64 ino; + loff_t isize; + u64 disk_isize; + u8 extent_type; + u8 compression; + u64 extent_start; + u64 extent_end; + char __data[0]; +}; + +struct trace_event_raw_btrfs__ordered_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 ino; + u64 file_offset; + u64 start; + u64 len; + u64 disk_len; + u64 bytes_left; + unsigned long flags; + int compress_type; + int refs; + u64 root_objectid; + u64 truncated_len; + char __data[0]; +}; + +struct trace_event_raw_btrfs_finish_ordered_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 ino; + u64 start; + u64 len; + bool uptodate; + u64 root_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs__writepage { + struct trace_entry ent; + u8 fsid[16]; + u64 ino; + unsigned long index; + long nr_to_write; + long pages_skipped; + loff_t range_start; + loff_t range_end; + char for_kupdate; + char for_reclaim; + char range_cyclic; + unsigned long writeback_index; + u64 root_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs_writepage_end_io_hook { + struct trace_entry ent; + u8 fsid[16]; + u64 ino; + u64 start; + u64 end; + int uptodate; + u64 root_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs_sync_file { + struct trace_entry ent; + u8 fsid[16]; + u64 ino; + u64 parent; + int datasync; + u64 root_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs_sync_fs { + struct trace_entry ent; + u8 fsid[16]; + int wait; + char __data[0]; +}; + +struct trace_event_raw_btrfs_add_block_group { + struct trace_entry ent; + u8 fsid[16]; + u64 offset; + u64 size; + u64 flags; + u64 bytes_used; + u64 bytes_super; + int create; + char __data[0]; +}; + +struct trace_event_raw_btrfs_delayed_tree_ref { + struct trace_entry ent; + u8 fsid[16]; + u64 bytenr; + u64 num_bytes; + int action; + u64 parent; + u64 ref_root; + int level; + int type; + u64 seq; + char __data[0]; +}; + +struct trace_event_raw_btrfs_delayed_data_ref { + struct trace_entry ent; + u8 fsid[16]; + u64 bytenr; + u64 num_bytes; + int action; + u64 parent; + u64 ref_root; + u64 owner; + u64 offset; + int type; + u64 seq; + char __data[0]; +}; + +struct trace_event_raw_btrfs_delayed_ref_head { + struct trace_entry ent; + u8 fsid[16]; + u64 bytenr; + u64 num_bytes; + int action; + int is_data; + char __data[0]; +}; + +struct trace_event_raw_btrfs__chunk { + struct trace_entry ent; + u8 fsid[16]; + int num_stripes; + u64 type; + int sub_stripes; + u64 offset; + u64 size; + u64 root_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs_cow_block { + struct trace_entry ent; + u8 fsid[16]; + u64 root_objectid; + u64 buf_start; + int refs; + u64 cow_start; + int buf_level; + int cow_level; + char __data[0]; +}; + +struct trace_event_raw_btrfs_space_reservation { + struct trace_entry ent; + u8 fsid[16]; + u32 __data_loc_type; + u64 val; + u64 bytes; + int reserve; + char __data[0]; +}; + +struct trace_event_raw_btrfs_trigger_flush { + struct trace_entry ent; + u8 fsid[16]; + u64 flags; + u64 bytes; + int flush; + u32 __data_loc_reason; + char __data[0]; +}; + +struct trace_event_raw_btrfs_flush_space { + struct trace_entry ent; + u8 fsid[16]; + u64 flags; + u64 num_bytes; + int state; + int ret; + bool for_preempt; + char __data[0]; +}; + +struct trace_event_raw_btrfs__reserved_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 start; + u64 len; + char __data[0]; +}; + +struct trace_event_raw_find_free_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 root_objectid; + u64 num_bytes; + u64 empty_size; + u64 flags; + char __data[0]; +}; + +struct trace_event_raw_find_free_extent_search_loop { + struct trace_entry ent; + u8 fsid[16]; + u64 root_objectid; + u64 num_bytes; + u64 empty_size; + u64 flags; + u64 loop; + char __data[0]; +}; + +struct trace_event_raw_find_free_extent_have_block_group { + struct trace_entry ent; + u8 fsid[16]; + u64 root_objectid; + u64 num_bytes; + u64 empty_size; + u64 flags; + u64 loop; + bool hinted; + u64 bg_start; + u64 bg_flags; + char __data[0]; +}; + +struct trace_event_raw_btrfs__reserve_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 bg_objectid; + u64 flags; + int bg_size_class; + u64 start; + u64 len; + u64 loop; + bool hinted; + int size_class; + char __data[0]; +}; + +struct trace_event_raw_btrfs_find_cluster { + struct trace_entry ent; + u8 fsid[16]; + u64 bg_objectid; + u64 flags; + u64 start; + u64 bytes; + u64 empty_size; + u64 min_bytes; + char __data[0]; +}; + +struct trace_event_raw_btrfs_failed_cluster_setup { + struct trace_entry ent; + u8 fsid[16]; + u64 bg_objectid; + char __data[0]; +}; + +struct trace_event_raw_btrfs_setup_cluster { + struct trace_entry ent; + u8 fsid[16]; + u64 bg_objectid; + u64 flags; + u64 start; + u64 max_size; + u64 size; + int bitmap; + char __data[0]; +}; + +struct trace_event_raw_alloc_extent_state { + struct trace_entry ent; + const struct extent_state *state; + unsigned long mask; + const void *ip; + char __data[0]; +}; + +struct trace_event_raw_free_extent_state { + struct trace_entry ent; + const struct extent_state *state; + const void *ip; + char __data[0]; +}; + +struct trace_event_raw_btrfs__work { + struct trace_entry ent; + u8 fsid[16]; + const void *work; + const void *wq; + const void *func; + const void *ordered_func; + const void *normal_work; + char __data[0]; +}; + +struct trace_event_raw_btrfs__work__done { + struct trace_entry ent; + u8 fsid[16]; + const void *wtag; + char __data[0]; +}; + +struct trace_event_raw_btrfs_workqueue { + struct trace_entry ent; + u8 fsid[16]; + const void *wq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_btrfs_workqueue_done { + struct trace_entry ent; + u8 fsid[16]; + const void *wq; + char __data[0]; +}; + +struct trace_event_raw_btrfs__qgroup_rsv_data { + struct trace_entry ent; + u8 fsid[16]; + u64 rootid; + u64 ino; + u64 start; + u64 len; + u64 reserved; + int op; + char __data[0]; +}; + +struct trace_event_raw_btrfs_qgroup_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 bytenr; + u64 num_bytes; + char __data[0]; +}; + +struct trace_event_raw_qgroup_num_dirty_extents { + struct trace_entry ent; + u8 fsid[16]; + u64 transid; + u64 num_dirty_extents; + char __data[0]; +}; + +struct trace_event_raw_btrfs_qgroup_account_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 transid; + u64 bytenr; + u64 num_bytes; + u64 nr_old_roots; + u64 nr_new_roots; + char __data[0]; +}; + +struct trace_event_raw_qgroup_update_counters { + struct trace_entry ent; + u8 fsid[16]; + u64 qgid; + u64 old_rfer; + u64 old_excl; + u64 cur_old_count; + u64 cur_new_count; + char __data[0]; +}; + +struct trace_event_raw_qgroup_update_reserve { + struct trace_entry ent; + u8 fsid[16]; + u64 qgid; + u64 cur_reserved; + s64 diff; + int type; + char __data[0]; +}; + +struct trace_event_raw_qgroup_meta_reserve { + struct trace_entry ent; + u8 fsid[16]; + u64 refroot; + s64 diff; + int type; + char __data[0]; +}; + +struct trace_event_raw_qgroup_meta_convert { + struct trace_entry ent; + u8 fsid[16]; + u64 refroot; + s64 diff; + char __data[0]; +}; + +struct trace_event_raw_qgroup_meta_free_all_pertrans { + struct trace_entry ent; + u8 fsid[16]; + u64 refroot; + s64 diff; + int type; + char __data[0]; +}; + +struct trace_event_raw_btrfs__prelim_ref { + struct trace_entry ent; + u8 fsid[16]; + u64 root_id; + u64 objectid; + u8 type; + u64 offset; + int level; + int old_count; + u64 parent; + u64 bytenr; + int mod_count; + u64 tree_size; + char __data[0]; +}; + +struct trace_event_raw_btrfs_inode_mod_outstanding_extents { + struct trace_entry ent; + u8 fsid[16]; + u64 root_objectid; + u64 ino; + int mod; + unsigned int outstanding; + char __data[0]; +}; + +struct trace_event_raw_btrfs__block_group { + struct trace_entry ent; + u8 fsid[16]; + u64 bytenr; + u64 len; + u64 used; + u64 flags; + char __data[0]; +}; + +struct trace_event_raw_btrfs_set_extent_bit { + struct trace_entry ent; + u8 fsid[16]; + unsigned int owner; + u64 ino; + u64 rootid; + u64 start; + u64 len; + unsigned int set_bits; + char __data[0]; +}; + +struct trace_event_raw_btrfs_clear_extent_bit { + struct trace_entry ent; + u8 fsid[16]; + unsigned int owner; + u64 ino; + u64 rootid; + u64 start; + u64 len; + unsigned int clear_bits; + char __data[0]; +}; + +struct trace_event_raw_btrfs_convert_extent_bit { + struct trace_entry ent; + u8 fsid[16]; + unsigned int owner; + u64 ino; + u64 rootid; + u64 start; + u64 len; + unsigned int set_bits; + unsigned int clear_bits; + char __data[0]; +}; + +struct trace_event_raw_btrfs_dump_space_info { + struct trace_entry ent; + u8 fsid[16]; + u64 flags; + u64 total_bytes; + u64 bytes_used; + u64 bytes_pinned; + u64 bytes_reserved; + u64 bytes_may_use; + u64 bytes_readonly; + u64 reclaim_size; + int clamp; + u64 global_reserved; + u64 trans_reserved; + u64 delayed_refs_reserved; + u64 delayed_reserved; + u64 free_chunk_space; + u64 delalloc_bytes; + u64 ordered_bytes; + char __data[0]; +}; + +struct trace_event_raw_btrfs_reserve_ticket { + struct trace_entry ent; + u8 fsid[16]; + u64 flags; + u64 bytes; + u64 start_ns; + int flush; + int error; + char __data[0]; +}; + +struct trace_event_raw_btrfs_sleep_tree_lock { + struct trace_entry ent; + u8 fsid[16]; + u64 block; + u64 generation; + u64 start_ns; + u64 end_ns; + u64 diff_ns; + u64 owner; + int is_log_tree; + char __data[0]; +}; + +struct trace_event_raw_btrfs_locking_events { + struct trace_entry ent; + u8 fsid[16]; + u64 block; + u64 generation; + u64 owner; + int is_log_tree; + char __data[0]; +}; + +struct trace_event_raw_btrfs__space_info_update { + struct trace_entry ent; + u8 fsid[16]; + u64 type; + u64 old; + s64 diff; + char __data[0]; +}; + +struct trace_event_raw_btrfs_raid56_bio { + struct trace_entry ent; + u8 fsid[16]; + u64 full_stripe; + u64 physical; + u64 devid; + u32 offset; + u32 len; + u8 opf; + u8 total_stripes; + u8 real_stripes; + u8 nr_data; + u8 stripe_nr; + char __data[0]; +}; + +struct trace_event_raw_btrfs_insert_one_raid_extent { + struct trace_entry ent; + u8 fsid[16]; + u64 logical; + u64 length; + int num_stripes; + char __data[0]; +}; + +struct trace_event_raw_btrfs_raid_extent_delete { + struct trace_entry ent; + u8 fsid[16]; + u64 start; + u64 end; + u64 found_start; + u64 found_end; + char __data[0]; +}; + +struct trace_event_raw_btrfs_get_raid_extent_offset { + struct trace_entry ent; + u8 fsid[16]; + u64 logical; + u64 length; + u64 physical; + u64 devid; + char __data[0]; +}; + +struct trace_event_data_offsets_btrfs_space_reservation { + u32 type; + const void *type_ptr_; +}; + +struct trace_event_data_offsets_btrfs_trigger_flush { + u32 reason; + const void *reason_ptr_; +}; + +struct trace_event_data_offsets_btrfs_workqueue { + u32 name; + const void *name_ptr_; +}; + +struct btrfs_fs_context { + char *subvol_name; + u64 subvol_objectid; + u64 max_inline; + u32 commit_interval; + u32 metadata_ratio; + u32 thread_pool_size; + unsigned long mount_opt; + unsigned long compress_type: 4; + unsigned int compress_level; + refcount_t refs; +}; + +struct trace_event_data_offsets_btrfs_transaction_commit {}; + +struct trace_event_data_offsets_btrfs__inode {}; + +struct trace_event_data_offsets_btrfs_get_extent {}; + +struct trace_event_data_offsets_btrfs_handle_em_exist {}; + +struct trace_event_data_offsets_btrfs__file_extent_item_regular {}; + +struct trace_event_data_offsets_btrfs__file_extent_item_inline {}; + +struct trace_event_data_offsets_btrfs__ordered_extent {}; + +struct trace_event_data_offsets_btrfs_finish_ordered_extent {}; + +struct trace_event_data_offsets_btrfs__writepage {}; + +struct trace_event_data_offsets_btrfs_writepage_end_io_hook {}; + +struct trace_event_data_offsets_btrfs_sync_file {}; + +struct trace_event_data_offsets_btrfs_sync_fs {}; + +struct trace_event_data_offsets_btrfs_add_block_group {}; + +struct trace_event_data_offsets_btrfs_delayed_tree_ref {}; + +struct trace_event_data_offsets_btrfs_delayed_data_ref {}; + +struct trace_event_data_offsets_btrfs_delayed_ref_head {}; + +struct trace_event_data_offsets_btrfs__chunk {}; + +struct trace_event_data_offsets_btrfs_cow_block {}; + +struct trace_event_data_offsets_btrfs_flush_space {}; + +struct trace_event_data_offsets_btrfs__reserved_extent {}; + +struct trace_event_data_offsets_find_free_extent {}; + +struct trace_event_data_offsets_find_free_extent_search_loop {}; + +struct trace_event_data_offsets_find_free_extent_have_block_group {}; + +struct trace_event_data_offsets_btrfs__reserve_extent {}; + +struct trace_event_data_offsets_btrfs_find_cluster {}; + +struct trace_event_data_offsets_btrfs_failed_cluster_setup {}; + +struct trace_event_data_offsets_btrfs_setup_cluster {}; + +struct trace_event_data_offsets_alloc_extent_state {}; + +struct trace_event_data_offsets_free_extent_state {}; + +struct trace_event_data_offsets_btrfs__work {}; + +struct trace_event_data_offsets_btrfs__work__done {}; + +struct trace_event_data_offsets_btrfs_workqueue_done {}; + +struct trace_event_data_offsets_btrfs__qgroup_rsv_data {}; + +struct trace_event_data_offsets_btrfs_qgroup_extent {}; + +struct trace_event_data_offsets_qgroup_num_dirty_extents {}; + +struct trace_event_data_offsets_btrfs_qgroup_account_extent {}; + +struct trace_event_data_offsets_qgroup_update_counters {}; + +struct trace_event_data_offsets_qgroup_update_reserve {}; + +struct trace_event_data_offsets_qgroup_meta_reserve {}; + +struct trace_event_data_offsets_qgroup_meta_convert {}; + +struct trace_event_data_offsets_qgroup_meta_free_all_pertrans {}; + +struct trace_event_data_offsets_btrfs__prelim_ref {}; + +struct trace_event_data_offsets_btrfs_inode_mod_outstanding_extents {}; + +struct trace_event_data_offsets_btrfs__block_group {}; + +struct trace_event_data_offsets_btrfs_set_extent_bit {}; + +struct trace_event_data_offsets_btrfs_clear_extent_bit {}; + +struct trace_event_data_offsets_btrfs_convert_extent_bit {}; + +struct trace_event_data_offsets_btrfs_dump_space_info {}; + +struct trace_event_data_offsets_btrfs_reserve_ticket {}; + +struct trace_event_data_offsets_btrfs_sleep_tree_lock {}; + +struct trace_event_data_offsets_btrfs_locking_events {}; + +struct trace_event_data_offsets_btrfs__space_info_update {}; + +struct trace_event_data_offsets_btrfs_raid56_bio {}; + +struct trace_event_data_offsets_btrfs_insert_one_raid_extent {}; + +struct trace_event_data_offsets_btrfs_raid_extent_delete {}; + +struct trace_event_data_offsets_btrfs_get_raid_extent_offset {}; + +struct acpi_pci_device { + acpi_handle device; + struct acpi_pci_device *next; +}; + +struct e1000_opt_list; + +struct e1000_option { + enum { + enable_option = 0, + range_option = 1, + list_option = 2, + } type; + const char *name; + const char *err; + int def; + union { + struct { + int min; + int max; + } r; + struct { + int nr; + struct e1000_opt_list *p; + } l; + } arg; +}; + +struct e1000_opt_list { + int i; + char *str; +}; + +enum iwl_nvm_section_type { + NVM_SECTION_TYPE_SW = 1, + NVM_SECTION_TYPE_REGULATORY = 3, + NVM_SECTION_TYPE_CALIBRATION = 4, + NVM_SECTION_TYPE_PRODUCTION = 5, + NVM_SECTION_TYPE_REGULATORY_SDP = 8, + NVM_SECTION_TYPE_MAC_OVERRIDE = 11, + NVM_SECTION_TYPE_PHY_SKU = 12, + NVM_MAX_NUM_SECTIONS = 13, +}; + +enum { + READ_NVM_CHUNK_SUCCEED = 0, + READ_NVM_CHUNK_NOT_VALID_ADDRESS = 1, +}; + +struct iwl_nvm_access_cmd { + u8 op_code; + u8 target; + __le16 type; + __le16 offset; + __le16 length; + u8 data[0]; +}; + +struct iwl_nvm_access_resp { + __le16 offset; + __le16 length; + __le16 type; + __le16 status; + u8 data[0]; +}; + +struct iwl_mcc_update_cmd { + __le16 mcc; + u8 source_id; + u8 reserved; + __le32 key; + u8 reserved2[20]; +}; + +struct iwl_mcc_update_resp_v3 { + __le32 status; + __le16 mcc; + u8 cap; + u8 source_id; + __le16 time; + __le16 geo_info; + __le32 n_channels; + __le32 channels[0]; +}; + +struct iwl_mcc_update_resp_v4 { + __le32 status; + __le16 mcc; + __le16 cap; + __le16 time; + __le16 geo_info; + u8 source_id; + u8 reserved[3]; + __le32 n_channels; + __le32 channels[0]; +}; + +struct iwl_mcc_chub_notif { + __le16 mcc; + u8 source_id; + u8 reserved1; +}; + +struct quirk_entry { + u16 vid; + u16 pid; + u32 flags; +}; + +struct input_event { + __kernel_ulong_t __sec; + __kernel_ulong_t __usec; + __u16 type; + __u16 code; + __s32 value; +}; + +struct input_dev_poller { + void (*poll)(struct input_dev *); + unsigned int poll_interval; + unsigned int poll_interval_max; + unsigned int poll_interval_min; + struct input_dev *input; + struct delayed_work work; +}; + +enum r10bio_state { + R10BIO_Uptodate = 0, + R10BIO_IsSync = 1, + R10BIO_IsRecover = 2, + R10BIO_IsReshape = 3, + R10BIO_Degraded = 4, + R10BIO_ReadError = 5, + R10BIO_MadeGood = 6, + R10BIO_WriteError = 7, + R10BIO_Previous = 8, + R10BIO_FailFast = 9, + R10BIO_Discard = 10, +}; + +enum geo_type { + geo_new = 0, + geo_old = 1, + geo_start = 2, +}; + +struct r10dev { + struct bio *bio; + union { + struct bio *repl_bio; + struct md_rdev *rdev; + }; + sector_t addr; + int devnum; +}; + +struct r10bio { + atomic_t remaining; + sector_t sector; + int sectors; + unsigned long state; + struct mddev *mddev; + struct bio *master_bio; + int read_slot; + struct list_head retry_list; + struct r10dev devs[0]; +}; + +struct geom { + int raid_disks; + int near_copies; + int far_copies; + int far_offset; + sector_t stride; + int far_set_size; + int chunk_shift; + sector_t chunk_mask; +}; + +struct raid10_info; + +struct r10conf { + struct mddev *mddev; + struct raid10_info *mirrors; + struct raid10_info *mirrors_new; + struct raid10_info *mirrors_old; + spinlock_t device_lock; + struct geom prev; + struct geom geo; + int copies; + sector_t dev_sectors; + sector_t reshape_progress; + sector_t reshape_safe; + unsigned long reshape_checkpoint; + sector_t offset_diff; + struct list_head retry_list; + struct list_head bio_end_io_list; + struct bio_list pending_bio_list; + seqlock_t resync_lock; + atomic_t nr_pending; + int nr_waiting; + int nr_queued; + int barrier; + int array_freeze_pending; + sector_t next_resync; + int fullsync; + int have_replacement; + wait_queue_head_t wait_barrier; + mempool_t r10bio_pool; + mempool_t r10buf_pool; + struct page *tmppage; + struct bio_set bio_split; + struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; + sector_t cluster_sync_low; + sector_t cluster_sync_high; +}; + +struct raid10_info { + struct md_rdev *rdev; + struct md_rdev *replacement; + sector_t head_position; + int recovery_disabled; +}; + +struct rsync_pages; + +struct sch_frag_data { + unsigned long dst; + struct qdisc_skb_cb cb; + __be16 inner_protocol; + u16 vlan_tci; + __be16 vlan_proto; + unsigned int l2_len; + u8 l2_data[18]; + int (*xmit)(struct sk_buff *); +}; + +struct tc_skb_cb { + struct qdisc_skb_cb qdisc_cb; + u32 drop_reason; + u16 zone; + u16 mru; + u8 post_ct: 1; + u8 post_ct_snat: 1; + u8 post_ct_dnat: 1; +}; + +enum { + NF_BPF_CT_OPTS_SZ = 12, +}; + +enum { + BPF_F_CURRENT_NETNS = -1, +}; + +struct bpf_ct_opts { + s32 netns_id; + s32 error; + u8 l4proto; + u8 dir; + u8 reserved[2]; +}; + +struct nf_bridge_frag_data; + +struct ip6_rt_info { + struct in6_addr daddr; + struct in6_addr saddr; + u_int32_t mark; +}; + +struct cyc2ns { + struct cyc2ns_data data[2]; + seqcount_latch_t seq; +}; + +struct smp_ops { + void (*smp_prepare_boot_cpu)(); + void (*smp_prepare_cpus)(unsigned int); + void (*smp_cpus_done)(unsigned int); + void (*stop_other_cpus)(int); + void (*crash_stop_other_cpus)(); + void (*smp_send_reschedule)(int); + void (*cleanup_dead_cpu)(unsigned int); + void (*poll_sync_state)(); + int (*kick_ap_alive)(unsigned int, struct task_struct *); + int (*cpu_disable)(); + void (*cpu_die)(unsigned int); + void (*play_dead)(); + void (*send_call_func_ipi)(const struct cpumask *); + void (*send_call_func_single_ipi)(int); +}; + +enum rtmutex_chainwalk { + RT_MUTEX_MIN_CHAINWALK = 0, + RT_MUTEX_FULL_CHAINWALK = 1, +}; + +struct ww_class; + +struct ww_acquire_ctx { + struct task_struct *task; + unsigned long stamp; + unsigned int acquired; + unsigned short wounded; + unsigned short is_wait_die; + unsigned int done_acquire; + struct ww_class *ww_class; + void *contending_lock; + struct lockdep_map dep_map; + unsigned int deadlock_inject_interval; + unsigned int deadlock_inject_countdown; +}; + +struct ww_class { + atomic_long_t stamp; + struct lock_class_key acquire_key; + struct lock_class_key mutex_key; + const char *acquire_name; + const char *mutex_name; + unsigned int is_wait_die; +}; + +struct ww_mutex { + struct mutex base; + struct ww_acquire_ctx *ctx; + struct ww_class *ww_class; +}; + +typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); + +typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); + +typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); + +typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); + +typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); + +typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); + +typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); + +typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); + +typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); + +typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_pm_qos_add_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_update_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); + +enum pm_qos_req_action { + PM_QOS_ADD_REQ = 0, + PM_QOS_UPDATE_REQ = 1, + PM_QOS_REMOVE_REQ = 2, +}; + +typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); + +typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); + +typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); + +typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); + +struct trace_event_raw_cpu { + struct trace_entry ent; + u32 state; + u32 cpu_id; + char __data[0]; +}; + +struct trace_event_raw_cpu_idle_miss { + struct trace_entry ent; + u32 cpu_id; + u32 state; + bool below; + char __data[0]; +}; + +struct trace_event_raw_powernv_throttle { + struct trace_entry ent; + int chip_id; + u32 __data_loc_reason; + int pmax; + char __data[0]; +}; + +struct trace_event_raw_pstate_sample { + struct trace_entry ent; + u32 core_busy; + u32 scaled_busy; + u32 from; + u32 to; + u64 mperf; + u64 aperf; + u64 tsc; + u32 freq; + u32 io_boost; + char __data[0]; +}; + +struct trace_event_raw_cpu_frequency_limits { + struct trace_entry ent; + u32 min_freq; + u32 max_freq; + u32 cpu_id; + char __data[0]; +}; + +struct trace_event_raw_device_pm_callback_start { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_driver; + u32 __data_loc_parent; + u32 __data_loc_pm_ops; + int event; + char __data[0]; +}; + +struct trace_event_raw_device_pm_callback_end { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_driver; + int error; + char __data[0]; +}; + +struct trace_event_raw_suspend_resume { + struct trace_entry ent; + const char *action; + int val; + bool start; + char __data[0]; +}; + +struct trace_event_raw_wakeup_source { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + char __data[0]; +}; + +struct trace_event_raw_clock { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + char __data[0]; +}; + +struct trace_event_raw_power_domain { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + char __data[0]; +}; + +struct trace_event_raw_cpu_latency_qos_request { + struct trace_entry ent; + s32 value; + char __data[0]; +}; + +struct trace_event_raw_pm_qos_update { + struct trace_entry ent; + enum pm_qos_req_action action; + int prev_value; + int curr_value; + char __data[0]; +}; + +struct trace_event_raw_dev_pm_qos_request { + struct trace_entry ent; + u32 __data_loc_name; + enum dev_pm_qos_req_type type; + s32 new_value; + char __data[0]; +}; + +struct trace_event_raw_guest_halt_poll_ns { + struct trace_entry ent; + bool grow; + unsigned int new; + unsigned int old; + char __data[0]; +}; + +struct trace_event_data_offsets_powernv_throttle { + u32 reason; + const void *reason_ptr_; +}; + +struct trace_event_data_offsets_device_pm_callback_end { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; +}; + +struct trace_event_data_offsets_wakeup_source { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clock { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_power_domain { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_dev_pm_qos_request { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cpu {}; + +struct trace_event_data_offsets_cpu_idle_miss {}; + +struct trace_event_data_offsets_pstate_sample {}; + +struct trace_event_data_offsets_cpu_frequency_limits {}; + +struct trace_event_data_offsets_device_pm_callback_start { + u32 device; + const void *device_ptr_; + u32 driver; + const void *driver_ptr_; + u32 parent; + const void *parent_ptr_; + u32 pm_ops; + const void *pm_ops_ptr_; +}; + +struct trace_event_data_offsets_suspend_resume {}; + +struct trace_event_data_offsets_cpu_latency_qos_request {}; + +struct trace_event_data_offsets_pm_qos_update {}; + +struct trace_event_data_offsets_guest_halt_poll_ns {}; + +struct __old_kernel_stat { + unsigned short st_dev; + unsigned short st_ino; + unsigned short st_mode; + unsigned short st_nlink; + unsigned short st_uid; + unsigned short st_gid; + unsigned short st_rdev; + unsigned int st_size; + unsigned int st_atime; + unsigned int st_mtime; + unsigned int st_ctime; +}; + +struct stat { + __kernel_ulong_t st_dev; + __kernel_ulong_t st_ino; + __kernel_ulong_t st_nlink; + unsigned int st_mode; + unsigned int st_uid; + unsigned int st_gid; + unsigned int __pad0; + __kernel_ulong_t st_rdev; + __kernel_long_t st_size; + __kernel_long_t st_blksize; + __kernel_long_t st_blocks; + __kernel_ulong_t st_atime; + __kernel_ulong_t st_atime_nsec; + __kernel_ulong_t st_mtime; + __kernel_ulong_t st_mtime_nsec; + __kernel_ulong_t st_ctime; + __kernel_ulong_t st_ctime_nsec; + __kernel_long_t __unused[3]; +}; + +struct memelfnote { + const char *name; + int type; + unsigned int datasz; + void *data; +}; + +struct elf_thread_core_info; + +struct elf_note_info { + struct elf_thread_core_info *thread; + struct memelfnote psinfo; + struct memelfnote signote; + struct memelfnote auxv; + struct memelfnote files; + siginfo_t csigdata; + size_t size; + int thread_notes; +}; + +struct elf_siginfo { + int si_signo; + int si_code; + int si_errno; +}; + +struct elf_prstatus_common { + struct elf_siginfo pr_info; + short pr_cursig; + unsigned long pr_sigpend; + unsigned long pr_sighold; + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct __kernel_old_timeval pr_utime; + struct __kernel_old_timeval pr_stime; + struct __kernel_old_timeval pr_cutime; + struct __kernel_old_timeval pr_cstime; +}; + +typedef unsigned long elf_greg_t; + +typedef elf_greg_t elf_gregset_t[27]; + +struct elf_prstatus { + struct elf_prstatus_common common; + elf_gregset_t pr_reg; + int pr_fpvalid; +}; + +struct elf_thread_core_info { + struct elf_thread_core_info *next; + struct task_struct *task; + struct elf_prstatus prstatus; + struct memelfnote notes[0]; +}; + +struct elf_prpsinfo { + char pr_state; + char pr_sname; + char pr_zomb; + char pr_nice; + unsigned long pr_flag; + __kernel_uid_t pr_uid; + __kernel_gid_t pr_gid; + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + char pr_fname[16]; + char pr_psargs[80]; +}; + +struct arch_elf_state {}; + +struct move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; +}; + +struct ext4_new_group_input { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 unused; +}; + +struct fsmap { + __u32 fmr_device; + __u32 fmr_flags; + __u64 fmr_physical; + __u64 fmr_owner; + __u64 fmr_offset; + __u64 fmr_length; + __u64 fmr_reserved[3]; +}; + +struct fsmap_head { + __u32 fmh_iflags; + __u32 fmh_oflags; + __u32 fmh_count; + __u32 fmh_entries; + __u64 fmh_reserved[6]; + struct fsmap fmh_keys[2]; + struct fsmap fmh_recs[0]; +}; + +struct getfsmap_info { + struct super_block *gi_sb; + struct fsmap_head __attribute__((btf_type_tag("user"))) *gi_data; + unsigned int gi_idx; + __u32 gi_last_flags; +}; + +struct ext4_fsmap { + struct list_head fmr_list; + dev_t fmr_device; + uint32_t fmr_flags; + uint64_t fmr_physical; + uint64_t fmr_owner; + uint64_t fmr_length; +}; + +struct ext4_fsmap_head { + uint32_t fmh_iflags; + uint32_t fmh_oflags; + unsigned int fmh_count; + unsigned int fmh_entries; + struct ext4_fsmap fmh_keys[2]; +}; + +struct fsuuid { + __u32 fsu_len; + __u32 fsu_flags; + __u8 fsu_uuid[0]; +}; + +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); + +typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); + +enum fuse_dax_mode { + FUSE_DAX_INODE_DEFAULT = 0, + FUSE_DAX_ALWAYS = 1, + FUSE_DAX_NEVER = 2, + FUSE_DAX_INODE_USER = 3, +}; + +enum { + OPT_SOURCE = 0, + OPT_SUBTYPE = 1, + OPT_FD = 2, + OPT_ROOTMODE = 3, + OPT_USER_ID = 4, + OPT_GROUP_ID = 5, + OPT_DEFAULT_PERMISSIONS = 6, + OPT_ALLOW_OTHER = 7, + OPT_MAX_READ = 8, + OPT_BLKSIZE = 9, + OPT_ERR = 10, +}; + +struct fuse_init_in { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint32_t flags2; + uint32_t unused[11]; +}; + +struct fuse_init_out { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint16_t max_background; + uint16_t congestion_threshold; + uint32_t max_write; + uint32_t time_gran; + uint16_t max_pages; + uint16_t map_alignment; + uint32_t flags2; + uint32_t max_stack_depth; + uint32_t unused[6]; +}; + +struct fuse_init_args { + struct fuse_args args; + struct fuse_init_in in; + struct fuse_init_out out; +}; + +struct fuse_kstatfs { + uint64_t blocks; + uint64_t bfree; + uint64_t bavail; + uint64_t files; + uint64_t ffree; + uint32_t bsize; + uint32_t namelen; + uint32_t frsize; + uint32_t padding; + uint32_t spare[6]; +}; + +struct fuse_fs_context { + int fd; + struct file *file; + unsigned int rootmode; + kuid_t user_id; + kgid_t group_id; + bool is_bdev: 1; + bool fd_present: 1; + bool rootmode_present: 1; + bool user_id_present: 1; + bool group_id_present: 1; + bool default_permissions: 1; + bool allow_other: 1; + bool destroy: 1; + bool no_control: 1; + bool no_force_umount: 1; + bool legacy_opts_show: 1; + enum fuse_dax_mode dax_mode; + unsigned int max_read; + unsigned int blksize; + const char *subtype; + struct dax_device *dax_dev; + void **fudptr; +}; + +struct fuse_syncfs_in { + uint64_t padding; +}; + +struct fuse_statfs_out { + struct fuse_kstatfs st; +}; + +struct fuse_inode_handle { + u64 nodeid; + u32 generation; +}; + +enum submit_disposition { + ASYNC_TX_SUBMITTED = 0, + ASYNC_TX_CHANNEL_SWITCH = 1, + ASYNC_TX_DIRECT_SUBMIT = 2, +}; + +struct compat_iovec { + compat_uptr_t iov_base; + compat_size_t iov_len; +}; + +typedef s32 compat_ssize_t; + +struct iov_iter_state { + size_t iov_offset; + size_t count; + unsigned long nr_segs; +}; + +typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *); + +struct earlycon_device { + struct console *con; + struct uart_port port; + char options[32]; + unsigned int baud; +}; + +struct earlycon_id { + char name[15]; + char name_term; + char compatible[128]; + int (*setup)(struct earlycon_device *, const char *); +}; + +enum { + K2_FLAG_SATA_8_PORTS = 16777216, + K2_FLAG_NO_ATAPI_DMA = 33554432, + K2_FLAG_BAR_POS_3 = 67108864, + K2_SATA_TF_CMD_OFFSET = 0, + K2_SATA_TF_DATA_OFFSET = 0, + K2_SATA_TF_ERROR_OFFSET = 4, + K2_SATA_TF_NSECT_OFFSET = 8, + K2_SATA_TF_LBAL_OFFSET = 12, + K2_SATA_TF_LBAM_OFFSET = 16, + K2_SATA_TF_LBAH_OFFSET = 20, + K2_SATA_TF_DEVICE_OFFSET = 24, + K2_SATA_TF_CMDSTAT_OFFSET = 28, + K2_SATA_TF_CTL_OFFSET = 32, + K2_SATA_DMA_CMD_OFFSET = 48, + K2_SATA_SCR_STATUS_OFFSET = 64, + K2_SATA_SCR_ERROR_OFFSET = 68, + K2_SATA_SCR_CONTROL_OFFSET = 72, + K2_SATA_SICR1_OFFSET = 128, + K2_SATA_SICR2_OFFSET = 132, + K2_SATA_SIM_OFFSET = 136, + K2_SATA_PORT_OFFSET = 256, + chip_svw4 = 0, + chip_svw8 = 1, + chip_svw42 = 2, + chip_svw43 = 3, +}; + +enum iwl_phy_db_section_type { + IWL_PHY_DB_CFG = 1, + IWL_PHY_DB_CALIB_NCH = 2, + IWL_PHY_DB_UNUSED = 3, + IWL_PHY_DB_CALIB_CHG_PAPD = 4, + IWL_PHY_DB_CALIB_CHG_TXP = 5, + IWL_PHY_DB_MAX = 6, +}; + +struct iwl_calib_res_notif_phy_db { + __le16 type; + __le16 length; + u8 data[0]; +}; + +struct iwl_phy_db_entry { + u16 size; + u8 *data; +}; + +struct iwl_phy_db { + struct iwl_phy_db_entry cfg; + struct iwl_phy_db_entry calib_nch; + int n_group_papd; + struct iwl_phy_db_entry *calib_ch_group_papd; + int n_group_txp; + struct iwl_phy_db_entry *calib_ch_group_txp; + struct iwl_trans *trans; +}; + +struct iwl_phy_db_cmd { + __le16 type; + __le16 length; + u8 data[0]; +}; + +enum iwl_time_event_type { + TE_BSS_STA_AGGRESSIVE_ASSOC = 0, + TE_BSS_STA_ASSOC = 1, + TE_BSS_EAP_DHCP_PROT = 2, + TE_BSS_QUIET_PERIOD = 3, + TE_P2P_DEVICE_DISCOVERABLE = 4, + TE_P2P_DEVICE_LISTEN = 5, + TE_P2P_DEVICE_ACTION_SCAN = 6, + TE_P2P_DEVICE_FULL_SCAN = 7, + TE_P2P_CLIENT_AGGRESSIVE_ASSOC = 8, + TE_P2P_CLIENT_ASSOC = 9, + TE_P2P_CLIENT_QUIET_PERIOD = 10, + TE_P2P_GO_ASSOC_PROT = 11, + TE_P2P_GO_REPETITIVET_NOA = 12, + TE_P2P_GO_CT_WINDOW = 13, + TE_WIDI_TX_SYNC = 14, + TE_CHANNEL_SWITCH_PERIOD = 15, + TE_MAX = 16, +}; + +enum { + TE_V2_FRAG_NONE = 0, + TE_V2_FRAG_SINGLE = 1, + TE_V2_FRAG_DUAL = 2, + TE_V2_FRAG_MAX = 254, + TE_V2_FRAG_ENDLESS = 255, +}; + +enum iwl_time_event_policy { + TE_V2_DEFAULT_POLICY = 0, + TE_V2_NOTIF_HOST_EVENT_START = 1, + TE_V2_NOTIF_HOST_EVENT_END = 2, + TE_V2_NOTIF_INTERNAL_EVENT_START = 4, + TE_V2_NOTIF_INTERNAL_EVENT_END = 8, + TE_V2_NOTIF_HOST_FRAG_START = 16, + TE_V2_NOTIF_HOST_FRAG_END = 32, + TE_V2_NOTIF_INTERNAL_FRAG_START = 64, + TE_V2_NOTIF_INTERNAL_FRAG_END = 128, + TE_V2_START_IMMEDIATELY = 2048, + TE_V2_DEP_OTHER = 4096, + TE_V2_DEP_TSF = 8192, + TE_V2_EVENT_SOCIOPATHIC = 16384, + TE_V2_ABSENCE = 32768, +}; + +enum iwl_mvm_session_prot_conf_id { + SESSION_PROTECT_CONF_ASSOC = 0, + SESSION_PROTECT_CONF_GO_CLIENT_ASSOC = 1, + SESSION_PROTECT_CONF_P2P_DEVICE_DISCOV = 2, + SESSION_PROTECT_CONF_P2P_GO_NEGOTIATION = 3, + SESSION_PROTECT_CONF_MAX_ID = 4, +}; + +struct iwl_time_event_notif { + __le32 timestamp; + __le32 session_id; + __le32 unique_id; + __le32 id_and_color; + __le32 action; + __le32 status; +}; + +struct iwl_mvm_session_prot_cmd { + __le32 id_and_color; + __le32 action; + __le32 conf_id; + __le32 duration_tu; + __le32 repetition_count; + __le32 interval; +}; + +struct iwl_roc_req { + __le32 action; + __le32 activity; + __le32 sta_id; + struct iwl_fw_channel_info channel_info; + u8 node_addr[6]; + __le16 reserved; + __le32 max_delay; + __le32 duration; +}; + +struct iwl_roc_notif { + __le32 success; + __le32 started; + __le32 activity; +}; + +struct iwl_time_event_cmd { + __le32 id_and_color; + __le32 action; + __le32 id; + __le32 apply_time; + __le32 max_delay; + __le32 depends_on; + __le32 interval; + __le32 duration; + u8 repeat; + u8 max_frags; + __le16 policy; +}; + +struct iwl_mvm_session_prot_notif { + __le32 mac_link_id; + __le32 status; + __le32 start; + __le32 conf_id; +}; + +struct iwl_fw_dbg_trigger_time_event { + struct { + __le32 id; + __le32 action_bitmap; + __le32 status_bitmap; + } time_events[16]; +}; + +struct iwl_time_event_resp { + __le32 status; + __le32 id; + __le32 unique_id; + __le32 id_and_color; +}; + +struct acpi_bus_type { + struct list_head list; + const char *name; + bool (*match)(struct device *); + struct acpi_device * (*find_companion)(struct device *); + void (*setup)(struct device *); +}; + +struct pps_kinfo { + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; +}; + +struct pps_fdata { + struct pps_kinfo info; + struct pps_ktime timeout; +}; + +struct pps_bind_args { + int tsformat; + int edge; + int consumer; +}; + +enum { + NVMEM_ADD = 1, + NVMEM_REMOVE = 2, + NVMEM_CELL_ADD = 3, + NVMEM_CELL_REMOVE = 4, + NVMEM_LAYOUT_ADD = 5, + NVMEM_LAYOUT_REMOVE = 6, +}; + +struct nvmem_cell_entry { + const char *name; + int offset; + size_t raw_len; + int bytes; + int bit_offset; + int nbits; + nvmem_cell_post_process_t read_post_process; + void *priv; + struct device_node *np; + struct nvmem_device *nvmem; + struct list_head node; +}; + +struct nvmem_device { + struct module *owner; + struct device dev; + struct list_head node; + int stride; + int word_size; + int id; + struct kref refcnt; + size_t size; + bool read_only; + bool root_only; + int flags; + enum nvmem_type type; + struct bin_attribute eeprom; + struct device *base_dev; + struct list_head cells; + void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *); + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; + void *priv; + bool sysfs_cells_populated; +}; + +struct nvmem_cell_table { + const char *nvmem_name; + const struct nvmem_cell_info *cells; + size_t ncells; + struct list_head node; +}; + +struct nvmem_cell_lookup { + const char *nvmem_name; + const char *cell_name; + const char *dev_id; + const char *con_id; + struct list_head node; +}; + +struct nvmem_cell { + struct nvmem_cell_entry *entry; + const char *id; + int index; +}; + +struct datalink_proto { + unsigned char type[8]; + struct llc_sap *sap; + unsigned short header_length; + int (*rcvfunc)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *); + int (*request)(struct datalink_proto *, struct sk_buff *, const unsigned char *); + struct list_head node; +}; + +enum ip_conntrack_expect_events { + IPEXP_NEW = 0, + IPEXP_DESTROY = 1, +}; + +struct ct_expect_iter_state { + struct seq_net_private p; + unsigned int bucket; +}; + +struct ipq { + struct inet_frag_queue q; + u8 ecn; + u16 max_df_size; + int iif; + unsigned int rid; + struct inet_peer *peer; +}; + +struct ip6addrlbl_init_table { + const struct in6_addr *prefix; + int prefixlen; + u32 label; +}; + +enum { + IFAL_ADDRESS = 1, + IFAL_LABEL = 2, + __IFAL_MAX = 3, +}; + +struct ip6addrlbl_entry { + struct in6_addr prefix; + int prefixlen; + int ifindex; + int addrtype; + u32 label; + struct hlist_node list; + struct callback_head rcu; +}; + +struct ifaddrlblmsg { + __u8 ifal_family; + __u8 __ifal_reserved; + __u8 ifal_prefixlen; + __u8 ifal_flags; + __u32 ifal_index; + __u32 ifal_seq; +}; + +enum cfg80211_event_type { + EVENT_CONNECT_RESULT = 0, + EVENT_ROAMED = 1, + EVENT_DISCONNECTED = 2, + EVENT_IBSS_JOINED = 3, + EVENT_STOPPED = 4, + EVENT_PORT_AUTHORIZED = 5, +}; + +struct cfg80211_event { + struct list_head list; + enum cfg80211_event_type type; + union { + struct cfg80211_connect_resp_params cr; + struct cfg80211_roam_info rm; + struct { + const u8 *ie; + size_t ie_len; + u16 reason; + bool locally_generated; + } dc; + struct { + u8 bssid[6]; + struct ieee80211_channel *channel; + } ij; + struct { + u8 peer_addr[6]; + const u8 *td_bitmap; + u8 td_bitmap_len; + } pa; + }; +}; + +struct iface_combination_params { + int num_different_channels; + u8 radar_detect; + int iftype_num[13]; + u32 new_beacon_int; +}; + +struct mpls_label { + __be32 entry; +}; + +struct iapp_layer2_update { + u8 da[6]; + u8 sa[6]; + __be16 len; + u8 dsap; + u8 ssap; + u8 control; + u8 xid_info[3]; +}; + +struct map_range { + unsigned long start; + unsigned long end; + unsigned int page_size_mask; +}; + +enum { + FTRACE_HASH_FL_MOD = 1, +}; + +enum { + FLAGS_FILL_FULL = 268435456, + FLAGS_FILL_START = 536870912, + FLAGS_FILL_END = 805306368, +}; + +struct fgraph_cpu_data { + pid_t last_pid; + int depth; + int depth_irq; + int ignore; + unsigned long enter_funcs[50]; +}; + +struct ftrace_graph_ent_entry { + struct trace_entry ent; + struct ftrace_graph_ent graph_ent; +}; + +struct ftrace_graph_ret_entry { + struct trace_entry ent; + struct ftrace_graph_ret ret; +}; + +struct ftrace_func_entry { + struct hlist_node hlist; + unsigned long ip; + unsigned long direct; +}; + +struct fgraph_data { + struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; + struct ftrace_graph_ent_entry ent; + struct ftrace_graph_ret_entry ret; + int failed; + int cpu; + long: 0; +} __attribute__((packed)); + +struct cgroup_iter_priv { + struct cgroup_subsys_state *start_css; + bool visited_all; + bool terminate; + int order; +}; + +struct bpf_iter__cgroup { + union { + struct bpf_iter_meta *meta; + }; + union { + struct cgroup *cgroup; + }; +}; + +struct bpf_iter_css { + __u64 __opaque[3]; +}; + +struct bpf_iter_css_kern { + struct cgroup_subsys_state *start; + struct cgroup_subsys_state *pos; + unsigned int flags; +}; + +struct utimbuf { + __kernel_old_time_t actime; + __kernel_old_time_t modtime; +}; + +enum autofs_notify { + NFY_NONE = 0, + NFY_MOUNT = 1, + NFY_EXPIRE = 2, +}; + +enum { + AUTOFS_IOC_READY_CMD = 96, + AUTOFS_IOC_FAIL_CMD = 97, + AUTOFS_IOC_CATATONIC_CMD = 98, + AUTOFS_IOC_PROTOVER_CMD = 99, + AUTOFS_IOC_SETTIMEOUT_CMD = 100, + AUTOFS_IOC_EXPIRE_CMD = 101, +}; + +struct autofs_packet_hdr { + int proto_version; + int type; +}; + +struct autofs_packet_expire { + struct autofs_packet_hdr hdr; + int len; + char name[256]; +}; + +enum { + Opt_uid___6 = 0, + Opt_gid___6 = 1, +}; + +struct blk_mq_hw_ctx_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_mq_hw_ctx *, char *); +}; + +enum { + MAX_OPT_ARGS = 3, +}; + +struct ddebug_table { + struct list_head link; + struct list_head maps; + const char *mod_name; + unsigned int num_ddebugs; + struct _ddebug *ddebugs; +}; + +struct ddebug_class_param { + union { + unsigned long *bits; + unsigned int *lvl; + }; + char flags[8]; + const struct ddebug_class_map *map; +}; + +struct ddebug_query { + const char *filename; + const char *module; + const char *function; + const char *format; + const char *class_string; + unsigned int first_lineno; + unsigned int last_lineno; +}; + +struct flag_settings { + unsigned int flags; + unsigned int mask; +}; + +struct flagsbuf { + char buf[8]; +}; + +struct ddebug_iter { + struct ddebug_table *table; + int idx; +}; + +struct vt_event { + unsigned int event; + unsigned int oldev; + unsigned int newev; + unsigned int pad[4]; +}; + +struct vt_event_wait { + struct list_head list; + struct vt_event event; + int done; +}; + +struct unipair; + +struct unimapdesc { + unsigned short entry_ct; + struct unipair __attribute__((btf_type_tag("user"))) *entries; +}; + +struct unipair { + unsigned short unicode; + unsigned short fontpos; +}; + +struct vt_stat { + unsigned short v_active; + unsigned short v_signal; + unsigned short v_state; +}; + +struct vt_sizes { + unsigned short v_rows; + unsigned short v_cols; + unsigned short v_scrollsize; +}; + +struct vt_setactivate { + unsigned int console; + struct vt_mode mode; +}; + +struct vt_consize { + unsigned short v_rows; + unsigned short v_cols; + unsigned short v_vlin; + unsigned short v_clin; + unsigned short v_vcol; + unsigned short v_ccol; +}; + +struct iwl_mod_params { + int swcrypto; + unsigned int disable_11n; + int amsdu_size; + bool fw_restart; + bool bt_coex_active; + int led_mode; + bool power_save; + int power_level; + char *nvm_file; + u32 uapsd_disable; + bool disable_11ac; + bool disable_11ax; + bool remove_when_gone; + u32 enable_ini; + bool disable_11be; +}; + +struct iwlwifi_opmode_table { + const char *name; + const struct iwl_op_mode_ops *ops; + struct list_head drv; +}; + +struct iwl_drv { + struct list_head list; + struct iwl_fw fw; + struct iwl_op_mode *op_mode; + struct iwl_trans *trans; + struct device *dev; + int fw_index; + char firmware_name[64]; + struct completion request_firmware_complete; +}; + +enum { + DVM_OP_MODE = 0, + MVM_OP_MODE = 1, +}; + +struct iwl_ucode_header { + __le32 ver; + union { + struct { + __le32 inst_size; + __le32 data_size; + __le32 init_size; + __le32 init_data_size; + __le32 boot_size; + u8 data[0]; + } v1; + struct { + __le32 build; + __le32 inst_size; + __le32 data_size; + __le32 init_size; + __le32 init_data_size; + __le32 boot_size; + u8 data[0]; + } v2; + } u; +}; + +struct fw_sec_parsing { + __le32 offset; + const u8 data[0]; +}; + +struct iwl_tlv_calib_data { + __le32 ucode_type; + struct iwl_tlv_calib_ctrl calib; +}; + +struct fw_sec; + +struct fw_img_parsing { + struct fw_sec *sec; + int sec_counter; +}; + +struct iwl_fw_dbg_dest_tlv; + +struct iwl_firmware_pieces { + struct fw_img_parsing img[4]; + u32 init_evtlog_ptr; + u32 init_evtlog_size; + u32 init_errlog_ptr; + u32 inst_evtlog_ptr; + u32 inst_evtlog_size; + u32 inst_errlog_ptr; + bool dbg_dest_tlv_init; + const u8 *dbg_dest_ver; + union { + const struct iwl_fw_dbg_dest_tlv *dbg_dest_tlv; + const struct iwl_fw_dbg_dest_tlv_v1 *dbg_dest_tlv_v1; + }; + const struct iwl_fw_dbg_conf_tlv *dbg_conf_tlv[32]; + size_t dbg_conf_tlv_len[32]; + const struct iwl_fw_dbg_trigger_tlv *dbg_trigger_tlv[17]; + size_t dbg_trigger_tlv_len[17]; + struct iwl_fw_dbg_mem_seg_tlv *dbg_mem_tlv; + size_t n_mem_tlv; +}; + +struct fw_sec { + const void *data; + size_t size; + u32 offset; +}; + +struct iwl_fw_dbg_dest_tlv { + u8 version; + u8 monitor_mode; + u8 size_power; + u8 reserved; + __le32 cfg_reg; + __le32 write_ptr_reg; + __le32 wrap_count; + u8 base_shift; + u8 size_shift; + struct iwl_fw_dbg_reg_op reg_ops[0]; +} __attribute__((packed)); + +struct iwl_tlv_ucode_header { + __le32 zero; + __le32 magic; + u8 human_readable[64]; + __le32 ver; + __le32 build; + __le64 ignore; + u8 data[0]; +}; + +struct iwl_fw_dump_exclude { + __le32 addr; + __le32 size; +}; + +struct iwl_ucode_api { + __le32 api_index; + __le32 api_flags; +}; + +struct iwl_ucode_capa { + __le32 api_index; + __le32 api_capa; +}; + +struct itco_wdt_platform_data { + char name[32]; + unsigned int version; + bool no_reboot_use_pmc; +}; + +struct dmi_onboard_device_info { + const char *name; + u8 type; + unsigned short i2c_addr; + const char *i2c_type; +}; + +struct i801_priv { + struct i2c_adapter adapter; + unsigned long smba; + unsigned char original_hstcfg; + unsigned char original_hstcnt; + unsigned char original_slvcmd; + struct pci_dev *pci_dev; + unsigned int features; + struct completion done; + u8 status; + u8 cmd; + bool is_read; + int count; + int len; + u8 *data; + struct platform_device *tco_pdev; + bool acpi_reserved; +}; + +enum { + ETHTOOL_A_FEATURES_UNSPEC = 0, + ETHTOOL_A_FEATURES_HEADER = 1, + ETHTOOL_A_FEATURES_HW = 2, + ETHTOOL_A_FEATURES_WANTED = 3, + ETHTOOL_A_FEATURES_ACTIVE = 4, + ETHTOOL_A_FEATURES_NOCHANGE = 5, + __ETHTOOL_A_FEATURES_CNT = 6, + ETHTOOL_A_FEATURES_MAX = 5, +}; + +struct features_reply_data { + struct ethnl_reply_data base; + u32 hw[2]; + u32 wanted[2]; + u32 active[2]; + u32 nochange[2]; + u32 all[2]; +}; + +enum nft_nat_types { + NFT_NAT_SNAT = 0, + NFT_NAT_DNAT = 1, +}; + +enum nft_nat_attributes { + NFTA_NAT_UNSPEC = 0, + NFTA_NAT_TYPE = 1, + NFTA_NAT_FAMILY = 2, + NFTA_NAT_REG_ADDR_MIN = 3, + NFTA_NAT_REG_ADDR_MAX = 4, + NFTA_NAT_REG_PROTO_MIN = 5, + NFTA_NAT_REG_PROTO_MAX = 6, + NFTA_NAT_FLAGS = 7, + __NFTA_NAT_MAX = 8, +}; + +struct nft_nat { + u8 sreg_addr_min; + u8 sreg_addr_max; + u8 sreg_proto_min; + u8 sreg_proto_max; + enum nf_nat_manip_type type: 8; + u8 family; + u16 flags; +}; + +enum br_boolopt_id { + BR_BOOLOPT_NO_LL_LEARN = 0, + BR_BOOLOPT_MCAST_VLAN_SNOOPING = 1, + BR_BOOLOPT_MST_ENABLE = 2, + BR_BOOLOPT_MAX = 3, +}; + +enum switchdev_notifier_type { + SWITCHDEV_FDB_ADD_TO_BRIDGE = 1, + SWITCHDEV_FDB_DEL_TO_BRIDGE = 2, + SWITCHDEV_FDB_ADD_TO_DEVICE = 3, + SWITCHDEV_FDB_DEL_TO_DEVICE = 4, + SWITCHDEV_FDB_OFFLOADED = 5, + SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6, + SWITCHDEV_PORT_OBJ_ADD = 7, + SWITCHDEV_PORT_OBJ_DEL = 8, + SWITCHDEV_PORT_ATTR_SET = 9, + SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10, + SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11, + SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12, + SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13, + SWITCHDEV_VXLAN_FDB_OFFLOADED = 14, + SWITCHDEV_BRPORT_OFFLOADED = 15, + SWITCHDEV_BRPORT_UNOFFLOADED = 16, + SWITCHDEV_BRPORT_REPLAY = 17, +}; + +struct netdev_notifier_pre_changeaddr_info { + struct netdev_notifier_info info; + const unsigned char *dev_addr; +}; + +struct uevent_sock { + struct list_head list; + struct sock *sk; +}; + +struct kernel_vm86_regs { + struct pt_regs pt; + unsigned short es; + unsigned short __esh; + unsigned short ds; + unsigned short __dsh; + unsigned short fs; + unsigned short __fsh; + unsigned short gs; + unsigned short __gsh; +}; + +struct umd_info { + const char *driver_name; + struct file *pipe_to_umh; + struct file *pipe_from_umh; + struct path wd; + struct pid *tgid; +}; + +struct module_sect_attr { + struct bin_attribute battr; + unsigned long address; +}; + +struct module_sect_attrs { + struct attribute_group grp; + unsigned int nsections; + struct module_sect_attr attrs[0]; +}; + +struct module_notes_attrs { + struct kobject *dir; + unsigned int notes; + struct bin_attribute attrs[0]; +}; + +struct bpf_preload_info; + +struct bpf_preload_ops { + int (*preload)(struct bpf_preload_info *); + struct module *owner; +}; + +struct bpf_preload_info { + char link_name[16]; + struct bpf_link *link; +}; + +enum bpf_type { + BPF_TYPE_UNSPEC = 0, + BPF_TYPE_PROG = 1, + BPF_TYPE_MAP = 2, + BPF_TYPE_LINK = 3, +}; + +enum { + OPT_UID = 0, + OPT_GID = 1, + OPT_MODE = 2, + OPT_DELEGATE_CMDS = 3, + OPT_DELEGATE_MAPS = 4, + OPT_DELEGATE_PROGS = 5, + OPT_DELEGATE_ATTACHS = 6, +}; + +struct map_iter { + void *key; + bool done; +}; + +struct bpffs_btf_enums { + const struct btf *btf; + const struct btf_type *cmd_t; + const struct btf_type *map_t; + const struct btf_type *prog_t; + const struct btf_type *attach_t; +}; + +struct memcg_vmstats { + long state[51]; + unsigned long events[22]; + long state_local[51]; + unsigned long events_local[22]; + long state_pending[51]; + unsigned long events_pending[22]; + atomic64_t stats_updates; +}; + +struct mem_cgroup_tree_per_node; + +struct mem_cgroup_tree { + struct mem_cgroup_tree_per_node *rb_tree_per_node[1024]; +}; + +struct mem_cgroup_tree_per_node { + struct rb_root rb_root; + struct rb_node *rb_rightmost; + spinlock_t lock; +}; + +struct memory_stat { + const char *name; + unsigned int idx; +}; + +struct move_charge_struct { + spinlock_t lock; + struct mm_struct *mm; + struct mem_cgroup *from; + struct mem_cgroup *to; + unsigned long flags; + unsigned long precharge; + unsigned long moved_charge; + unsigned long moved_swap; + struct task_struct *moving_task; + wait_queue_head_t waitq; +}; + +struct memcg_stock_pcp { + local_lock_t stock_lock; + struct mem_cgroup *cached; + unsigned int nr_pages; + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; + struct work_struct work; + unsigned long flags; +}; + +struct numa_stat { + const char *name; + unsigned int lru_mask; +}; + +enum { + CSS_TASK_ITER_PROCS = 1, + CSS_TASK_ITER_THREADED = 2, + CSS_TASK_ITER_SKIPPED = 65536, +}; + +enum writeback_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_VM_WRITEBACK_STAT_ITEMS = 2, +}; + +enum mem_cgroup_events_target { + MEM_CGROUP_TARGET_THRESH = 0, + MEM_CGROUP_TARGET_SOFTLIMIT = 1, + MEM_CGROUP_NTARGETS = 2, +}; + +enum mc_target_type { + MC_TARGET_NONE = 0, + MC_TARGET_PAGE = 1, + MC_TARGET_SWAP = 2, + MC_TARGET_DEVICE = 3, +}; + +enum res_type { + _MEM = 0, + _MEMSWAP = 1, + _KMEM = 2, + _TCP = 3, +}; + +enum { + RES_USAGE = 0, + RES_LIMIT = 1, + RES_MAX_USAGE = 2, + RES_FAILCNT = 3, + RES_SOFT_LIMIT = 4, +}; + +struct oom_wait_info { + struct mem_cgroup *memcg; + wait_queue_entry_t wait; +}; + +struct mem_cgroup_eventfd_list { + struct list_head list; + struct eventfd_ctx *eventfd; +}; + +struct mem_cgroup_event { + struct mem_cgroup *memcg; + struct eventfd_ctx *eventfd; + struct list_head list; + int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); + void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); + poll_table pt; + wait_queue_head_t *wqh; + wait_queue_entry_t wait; + struct work_struct remove; +}; + +struct uncharge_gather { + struct mem_cgroup *memcg; + unsigned long nr_memory; + unsigned long pgpgout; + unsigned long nr_kmem; + int nid; +}; + +union mc_target { + struct folio *folio; + swp_entry_t ent; +}; + +enum btrfs_ilock_type { + __BTRFS_ILOCK_SHARED_BIT = 0, + BTRFS_ILOCK_SHARED = 1, + __BTRFS_ILOCK_SHARED_SEQ = 0, + __BTRFS_ILOCK_TRY_BIT = 1, + BTRFS_ILOCK_TRY = 2, + __BTRFS_ILOCK_TRY_SEQ = 1, + __BTRFS_ILOCK_MMAP_BIT = 2, + BTRFS_ILOCK_MMAP = 4, + __BTRFS_ILOCK_MMAP_SEQ = 2, +}; + +struct async_cow; + +struct async_chunk { + struct btrfs_inode *inode; + struct page *locked_page; + u64 start; + u64 end; + blk_opf_t write_flags; + struct list_head extents; + struct cgroup_subsys_state *blkcg_css; + struct btrfs_work work; + struct async_cow *async_cow; +}; + +struct async_cow { + atomic_t num_chunks; + struct async_chunk chunks[0]; +}; + +struct async_extent { + u64 start; + u64 ram_size; + u64 compressed_size; + struct page **pages; + unsigned long nr_pages; + int compress_type; + struct list_head list; +}; + +struct btrfs_writepage_fixup { + struct page *page; + struct btrfs_inode *inode; + struct btrfs_work work; +}; + +struct btrfs_dio_private { + u64 file_offset; + u32 bytes; + struct btrfs_bio bbio; +}; + +struct btrfs_delalloc_work { + struct inode *inode; + struct completion completion; + struct list_head list; + struct btrfs_work work; +}; + +struct data_reloc_warn { + struct btrfs_path path; + struct btrfs_fs_info *fs_info; + u64 extent_item_size; + u64 logical; + int mirror_num; +}; + +struct btrfs_iget_args { + u64 ino; + struct btrfs_root *root; +}; + +struct btrfs_replace_extent_info { + u64 disk_offset; + u64 disk_len; + u64 data_offset; + u64 data_len; + u64 file_offset; + char *extent_buf; + bool is_new_extent; + bool update_times; + int qgroup_reserved; + int insertions; +}; + +struct btrfs_swap_info { + u64 start; + u64 block_start; + u64 block_len; + u64 lowest_ppage; + u64 highest_ppage; + unsigned long nr_pages; + int nr_extents; +}; + +struct btrfs_dio_data { + ssize_t submitted; + struct extent_changeset *data_reserved; + struct btrfs_ordered_extent *ordered; + bool data_space_reserved; + bool nocow_done; +}; + +struct btrfs_rename_ctx { + u64 index; +}; + +struct dir_entry { + u64 ino; + u64 offset; + unsigned int type; + int name_len; +}; + +struct can_nocow_file_extent_args { + u64 start; + u64 end; + bool writeback_path; + bool strict; + bool free_path; + u64 disk_bytenr; + u64 disk_num_bytes; + u64 extent_offset; + u64 num_bytes; +}; + +struct btrfs_encoded_read_private { + wait_queue_head_t wait; + atomic_t pending; + blk_status_t status; +}; + +struct btrfs_file_private { + void *filldir_buf; + u64 last_index; + struct extent_state *llseek_cached_state; +}; + +struct raid6_avx2_constants { + u64 x1d[4]; +}; + +enum backlight_type { + BACKLIGHT_RAW = 1, + BACKLIGHT_PLATFORM = 2, + BACKLIGHT_FIRMWARE = 3, + BACKLIGHT_TYPE_MAX = 4, +}; + +enum backlight_scale { + BACKLIGHT_SCALE_UNKNOWN = 0, + BACKLIGHT_SCALE_LINEAR = 1, + BACKLIGHT_SCALE_NON_LINEAR = 2, +}; + +enum backlight_update_reason { + BACKLIGHT_UPDATE_HOTKEY = 0, + BACKLIGHT_UPDATE_SYSFS = 1, +}; + +enum backlight_notification { + BACKLIGHT_REGISTERED = 0, + BACKLIGHT_UNREGISTERED = 1, +}; + +struct backlight_properties { + int brightness; + int max_brightness; + int power; + int fb_blank; + enum backlight_type type; + unsigned int state; + enum backlight_scale scale; +}; + +struct backlight_ops; + +struct backlight_device { + struct backlight_properties props; + struct mutex update_lock; + struct mutex ops_lock; + const struct backlight_ops *ops; + struct notifier_block fb_notif; + struct list_head entry; + struct device dev; + bool fb_bl_on[32]; + int use_count; +}; + +struct backlight_ops { + unsigned int options; + int (*update_status)(struct backlight_device *); + int (*get_brightness)(struct backlight_device *); + int (*check_fb)(struct backlight_device *, struct fb_info *); +}; + +struct acpi_gpe_device_info { + u32 index; + u32 next_block_base_index; + acpi_status status; + struct acpi_namespace_node *gpe_device; +}; + +struct clk_div_table; + +struct clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; + spinlock_t *lock; +}; + +struct clk_div_table { + unsigned int val; + unsigned int div; +}; + +struct serial_private; + +struct pciserial_board; + +struct pci_serial_quirk { + u32 vendor; + u32 device; + u32 subvendor; + u32 subdevice; + int (*probe)(struct pci_dev *); + int (*init)(struct pci_dev *); + int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int); + void (*exit)(struct pci_dev *); +}; + +struct serial_private { + struct pci_dev *dev; + unsigned int nr; + struct pci_serial_quirk *quirk; + const struct pciserial_board *board; + int line[0]; +}; + +struct pciserial_board { + unsigned int flags; + unsigned int num_ports; + unsigned int base_baud; + unsigned int uart_offset; + unsigned int reg_shift; + unsigned int first_offset; +}; + +struct timedia_struct { + int num; + const unsigned short *ids; +}; + +enum { + MOXA_SUPP_RS232 = 1, + MOXA_SUPP_RS422 = 2, + MOXA_SUPP_RS485 = 4, +}; + +enum pci_board_num_t { + pbn_default = 0, + pbn_b0_1_115200 = 1, + pbn_b0_2_115200 = 2, + pbn_b0_4_115200 = 3, + pbn_b0_5_115200 = 4, + pbn_b0_8_115200 = 5, + pbn_b0_1_921600 = 6, + pbn_b0_2_921600 = 7, + pbn_b0_4_921600 = 8, + pbn_b0_2_1130000 = 9, + pbn_b0_4_1152000 = 10, + pbn_b0_4_1250000 = 11, + pbn_b0_2_1843200 = 12, + pbn_b0_4_1843200 = 13, + pbn_b0_1_15625000 = 14, + pbn_b0_bt_1_115200 = 15, + pbn_b0_bt_2_115200 = 16, + pbn_b0_bt_4_115200 = 17, + pbn_b0_bt_8_115200 = 18, + pbn_b0_bt_1_460800 = 19, + pbn_b0_bt_2_460800 = 20, + pbn_b0_bt_4_460800 = 21, + pbn_b0_bt_1_921600 = 22, + pbn_b0_bt_2_921600 = 23, + pbn_b0_bt_4_921600 = 24, + pbn_b0_bt_8_921600 = 25, + pbn_b1_1_115200 = 26, + pbn_b1_2_115200 = 27, + pbn_b1_4_115200 = 28, + pbn_b1_8_115200 = 29, + pbn_b1_16_115200 = 30, + pbn_b1_1_921600 = 31, + pbn_b1_2_921600 = 32, + pbn_b1_4_921600 = 33, + pbn_b1_8_921600 = 34, + pbn_b1_2_1250000 = 35, + pbn_b1_bt_1_115200 = 36, + pbn_b1_bt_2_115200 = 37, + pbn_b1_bt_4_115200 = 38, + pbn_b1_bt_2_921600 = 39, + pbn_b1_1_1382400 = 40, + pbn_b1_2_1382400 = 41, + pbn_b1_4_1382400 = 42, + pbn_b1_8_1382400 = 43, + pbn_b2_1_115200 = 44, + pbn_b2_2_115200 = 45, + pbn_b2_4_115200 = 46, + pbn_b2_8_115200 = 47, + pbn_b2_1_460800 = 48, + pbn_b2_4_460800 = 49, + pbn_b2_8_460800 = 50, + pbn_b2_16_460800 = 51, + pbn_b2_1_921600 = 52, + pbn_b2_4_921600 = 53, + pbn_b2_8_921600 = 54, + pbn_b2_8_1152000 = 55, + pbn_b2_bt_1_115200 = 56, + pbn_b2_bt_2_115200 = 57, + pbn_b2_bt_4_115200 = 58, + pbn_b2_bt_2_921600 = 59, + pbn_b2_bt_4_921600 = 60, + pbn_b3_2_115200 = 61, + pbn_b3_4_115200 = 62, + pbn_b3_8_115200 = 63, + pbn_b4_bt_2_921600 = 64, + pbn_b4_bt_4_921600 = 65, + pbn_b4_bt_8_921600 = 66, + pbn_panacom = 67, + pbn_panacom2 = 68, + pbn_panacom4 = 69, + pbn_plx_romulus = 70, + pbn_oxsemi = 71, + pbn_oxsemi_1_15625000 = 72, + pbn_oxsemi_2_15625000 = 73, + pbn_oxsemi_4_15625000 = 74, + pbn_oxsemi_8_15625000 = 75, + pbn_intel_i960 = 76, + pbn_sgi_ioc3 = 77, + pbn_computone_4 = 78, + pbn_computone_6 = 79, + pbn_computone_8 = 80, + pbn_sbsxrsio = 81, + pbn_pasemi_1682M = 82, + pbn_ni8430_2 = 83, + pbn_ni8430_4 = 84, + pbn_ni8430_8 = 85, + pbn_ni8430_16 = 86, + pbn_ADDIDATA_PCIe_1_3906250 = 87, + pbn_ADDIDATA_PCIe_2_3906250 = 88, + pbn_ADDIDATA_PCIe_4_3906250 = 89, + pbn_ADDIDATA_PCIe_8_3906250 = 90, + pbn_ce4100_1_115200 = 91, + pbn_omegapci = 92, + pbn_NETMOS9900_2s_115200 = 93, + pbn_brcm_trumanage = 94, + pbn_fintek_4 = 95, + pbn_fintek_8 = 96, + pbn_fintek_12 = 97, + pbn_fintek_F81504A = 98, + pbn_fintek_F81508A = 99, + pbn_fintek_F81512A = 100, + pbn_wch382_2 = 101, + pbn_wch384_4 = 102, + pbn_wch384_8 = 103, + pbn_sunix_pci_1s = 104, + pbn_sunix_pci_2s = 105, + pbn_sunix_pci_4s = 106, + pbn_sunix_pci_8s = 107, + pbn_sunix_pci_16s = 108, + pbn_titan_1_4000000 = 109, + pbn_titan_2_4000000 = 110, + pbn_titan_4_4000000 = 111, + pbn_titan_8_4000000 = 112, + pbn_moxa_2 = 113, + pbn_moxa_4 = 114, + pbn_moxa_8 = 115, +}; + +struct f815xxa_data { + spinlock_t lock; + int idx; +}; + +enum { + NVME_IOCTL_VEC = 1, + NVME_IOCTL_PARTITION = 2, +}; + +struct nvme_uring_cmd_pdu { + struct request *req; + struct bio *bio; + u64 result; + int status; +}; + +struct nvme_user_io { + __u8 opcode; + __u8 flags; + __u16 control; + __u16 nblocks; + __u16 rsvd; + __u64 metadata; + __u64 addr; + __u64 slba; + __u32 dsmgmt; + __u32 reftag; + __u16 apptag; + __u16 appmask; +}; + +struct nvme_uring_cmd { + __u8 opcode; + __u8 flags; + __u16 rsvd1; + __u32 nsid; + __u32 cdw2; + __u32 cdw3; + __u64 metadata; + __u64 addr; + __u32 metadata_len; + __u32 data_len; + __u32 cdw10; + __u32 cdw11; + __u32 cdw12; + __u32 cdw13; + __u32 cdw14; + __u32 cdw15; + __u32 timeout_ms; + __u32 rsvd2; +}; + +struct nvme_uring_data { + __u64 metadata; + __u64 addr; + __u32 data_len; + __u32 metadata_len; + __u32 timeout_ms; +}; + +struct nvme_passthru_cmd { + __u8 opcode; + __u8 flags; + __u16 rsvd1; + __u32 nsid; + __u32 cdw2; + __u32 cdw3; + __u64 metadata; + __u64 addr; + __u32 metadata_len; + __u32 data_len; + __u32 cdw10; + __u32 cdw11; + __u32 cdw12; + __u32 cdw13; + __u32 cdw14; + __u32 cdw15; + __u32 timeout_ms; + __u32 result; +}; + +struct nvme_passthru_cmd64 { + __u8 opcode; + __u8 flags; + __u16 rsvd1; + __u32 nsid; + __u32 cdw2; + __u32 cdw3; + __u64 metadata; + __u64 addr; + __u32 metadata_len; + union { + __u32 data_len; + __u32 vec_cnt; + }; + __u32 cdw10; + __u32 cdw11; + __u32 cdw12; + __u32 cdw13; + __u32 cdw14; + __u32 cdw15; + __u32 timeout_ms; + __u32 rsvd2; + __u64 result; +}; + +struct iwl_time_msmt_ptp_ctx { + union { + struct { + u8 element_id; + u8 length; + __le16 reserved; + u8 data[128]; + } ftm; + struct { + u8 element_id; + u8 length; + u8 data[128]; + } tm; + }; +}; + +struct iwl_time_msmt_notify { + u8 peer_addr[6]; + u8 reserved[2]; + __le32 dialog_token; + __le32 followup_dialog_token; + __le32 t1_hi; + __le32 t1_lo; + __le32 t1_max_err; + __le32 t4_hi; + __le32 t4_lo; + __le32 t4_max_err; + __le32 t2_hi; + __le32 t2_lo; + __le32 t2_max_err; + __le32 t3_hi; + __le32 t3_lo; + __le32 t3_max_err; + struct iwl_time_msmt_ptp_ctx ptp; +}; + +struct iwl_time_msmt_cfm_notify { + u8 peer_addr[6]; + u8 reserved[2]; + __le32 dialog_token; + __le32 t1_hi; + __le32 t1_lo; + __le32 t1_max_err; + __le32 t4_hi; + __le32 t4_lo; + __le32 t4_max_err; +}; + +struct iwl_time_sync_cfg_cmd { + __le32 protocols; + u8 peer_addr[6]; + u8 reserved[2]; +}; + +struct cpu_dbs_info { + u64 prev_cpu_idle; + u64 prev_update_time; + u64 prev_cpu_nice; + unsigned int prev_load; + struct update_util_data update_util; + struct policy_dbs_info *policy_dbs; +}; + +enum offload_act_command { + FLOW_ACT_REPLACE = 0, + FLOW_ACT_DESTROY = 1, + FLOW_ACT_STATS = 2, +}; + +typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *)); + +struct flow_indr_dev { + struct list_head list; + flow_indr_block_bind_cb_t *cb; + void *cb_priv; + refcount_t refcnt; +}; + +struct flow_indir_dev_info { + void *data; + struct net_device *dev; + struct Qdisc *sch; + enum tc_setup_type type; + void (*cleanup)(struct flow_block_cb *); + struct list_head list; + enum flow_block_command command; + enum flow_block_binder_type binder_type; + struct list_head *cb_list; +}; + +struct flow_offload_action { + struct netlink_ext_ack *extack; + enum offload_act_command command; + enum flow_action_id id; + u32 index; + unsigned long cookie; + struct flow_stats stats; + struct flow_action action; +}; + +struct flow_match_meta { + struct flow_dissector_key_meta *key; + struct flow_dissector_key_meta *mask; +}; + +struct flow_match_basic { + struct flow_dissector_key_basic *key; + struct flow_dissector_key_basic *mask; +}; + +struct flow_match_control { + struct flow_dissector_key_control *key; + struct flow_dissector_key_control *mask; +}; + +struct flow_match_eth_addrs { + struct flow_dissector_key_eth_addrs *key; + struct flow_dissector_key_eth_addrs *mask; +}; + +struct flow_match_vlan { + struct flow_dissector_key_vlan *key; + struct flow_dissector_key_vlan *mask; +}; + +struct flow_dissector_key_arp; + +struct flow_match_arp { + struct flow_dissector_key_arp *key; + struct flow_dissector_key_arp *mask; +}; + +struct flow_dissector_key_arp { + __u32 sip; + __u32 tip; + __u8 op; + unsigned char sha[6]; + unsigned char tha[6]; +}; + +struct flow_match_ipv4_addrs { + struct flow_dissector_key_ipv4_addrs *key; + struct flow_dissector_key_ipv4_addrs *mask; +}; + +struct flow_match_ipv6_addrs { + struct flow_dissector_key_ipv6_addrs *key; + struct flow_dissector_key_ipv6_addrs *mask; +}; + +struct flow_match_ip { + struct flow_dissector_key_ip *key; + struct flow_dissector_key_ip *mask; +}; + +struct flow_match_ports { + struct flow_dissector_key_ports *key; + struct flow_dissector_key_ports *mask; +}; + +struct flow_dissector_key_ports_range; + +struct flow_match_ports_range { + struct flow_dissector_key_ports_range *key; + struct flow_dissector_key_ports_range *mask; +}; + +struct flow_dissector_key_ports_range { + union { + struct flow_dissector_key_ports tp; + struct { + struct flow_dissector_key_ports tp_min; + struct flow_dissector_key_ports tp_max; + }; + }; +}; + +struct flow_match_tcp { + struct flow_dissector_key_tcp *key; + struct flow_dissector_key_tcp *mask; +}; + +struct flow_dissector_key_ipsec; + +struct flow_match_ipsec { + struct flow_dissector_key_ipsec *key; + struct flow_dissector_key_ipsec *mask; +}; + +struct flow_dissector_key_ipsec { + __be32 spi; +}; + +struct flow_match_icmp { + struct flow_dissector_key_icmp *key; + struct flow_dissector_key_icmp *mask; +}; + +struct flow_dissector_key_mpls; + +struct flow_match_mpls { + struct flow_dissector_key_mpls *key; + struct flow_dissector_key_mpls *mask; +}; + +struct flow_dissector_mpls_lse { + u32 mpls_ttl: 8; + u32 mpls_bos: 1; + u32 mpls_tc: 3; + u32 mpls_label: 20; +}; + +struct flow_dissector_key_mpls { + struct flow_dissector_mpls_lse ls[7]; + u8 used_lses; +}; + +struct flow_match_enc_keyid { + struct flow_dissector_key_keyid *key; + struct flow_dissector_key_keyid *mask; +}; + +struct flow_dissector_key_enc_opts; + +struct flow_match_enc_opts { + struct flow_dissector_key_enc_opts *key; + struct flow_dissector_key_enc_opts *mask; +}; + +struct flow_dissector_key_enc_opts { + u8 data[255]; + u8 len; + __be16 dst_opt_type; +}; + +struct flow_dissector_key_ct; + +struct flow_match_ct { + struct flow_dissector_key_ct *key; + struct flow_dissector_key_ct *mask; +}; + +struct flow_dissector_key_ct { + u16 ct_state; + u16 ct_zone; + u32 ct_mark; + u32 ct_labels[4]; +}; + +struct flow_dissector_key_pppoe; + +struct flow_match_pppoe { + struct flow_dissector_key_pppoe *key; + struct flow_dissector_key_pppoe *mask; +}; + +struct flow_dissector_key_pppoe { + __be16 session_id; + __be16 ppp_proto; + __be16 type; +}; + +struct flow_dissector_key_l2tpv3; + +struct flow_match_l2tpv3 { + struct flow_dissector_key_l2tpv3 *key; + struct flow_dissector_key_l2tpv3 *mask; +}; + +struct flow_dissector_key_l2tpv3 { + __be32 session_id; +}; + +struct nf_queue_handler { + int (*outfn)(struct nf_queue_entry *, unsigned int); + void (*nf_hook_drop)(struct net *); +}; + +enum nfqnl_attr_type { + NFQA_UNSPEC = 0, + NFQA_PACKET_HDR = 1, + NFQA_VERDICT_HDR = 2, + NFQA_MARK = 3, + NFQA_TIMESTAMP = 4, + NFQA_IFINDEX_INDEV = 5, + NFQA_IFINDEX_OUTDEV = 6, + NFQA_IFINDEX_PHYSINDEV = 7, + NFQA_IFINDEX_PHYSOUTDEV = 8, + NFQA_HWADDR = 9, + NFQA_PAYLOAD = 10, + NFQA_CT = 11, + NFQA_CT_INFO = 12, + NFQA_CAP_LEN = 13, + NFQA_SKB_INFO = 14, + NFQA_EXP = 15, + NFQA_UID = 16, + NFQA_GID = 17, + NFQA_SECCTX = 18, + NFQA_VLAN = 19, + NFQA_L2HDR = 20, + NFQA_PRIORITY = 21, + NFQA_CGROUP_CLASSID = 22, + __NFQA_MAX = 23, +}; + +enum nfqnl_vlan_attr { + NFQA_VLAN_UNSPEC = 0, + NFQA_VLAN_PROTO = 1, + NFQA_VLAN_TCI = 2, + __NFQA_VLAN_MAX = 3, +}; + +enum nfqnl_attr_config { + NFQA_CFG_UNSPEC = 0, + NFQA_CFG_CMD = 1, + NFQA_CFG_PARAMS = 2, + NFQA_CFG_QUEUE_MAXLEN = 3, + NFQA_CFG_MASK = 4, + NFQA_CFG_FLAGS = 5, + __NFQA_CFG_MAX = 6, +}; + +enum nfqnl_msg_config_cmds { + NFQNL_CFG_CMD_NONE = 0, + NFQNL_CFG_CMD_BIND = 1, + NFQNL_CFG_CMD_UNBIND = 2, + NFQNL_CFG_CMD_PF_BIND = 3, + NFQNL_CFG_CMD_PF_UNBIND = 4, +}; + +enum nfqnl_config_mode { + NFQNL_COPY_NONE = 0, + NFQNL_COPY_META = 1, + NFQNL_COPY_PACKET = 2, +}; + +enum nfqnl_msg_types { + NFQNL_MSG_PACKET = 0, + NFQNL_MSG_VERDICT = 1, + NFQNL_MSG_CONFIG = 2, + NFQNL_MSG_VERDICT_BATCH = 3, + NFQNL_MSG_MAX = 4, +}; + +struct nfqnl_instance { + struct hlist_node hlist; + struct callback_head rcu; + u32 peer_portid; + unsigned int queue_maxlen; + unsigned int copy_range; + unsigned int queue_dropped; + unsigned int queue_user_dropped; + u_int16_t queue_num; + u_int8_t copy_mode; + u_int32_t flags; + spinlock_t lock; + unsigned int queue_total; + unsigned int id_sequence; + struct list_head queue_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct nf_ct_hook { + int (*update)(struct net *, struct sk_buff *); + void (*destroy)(struct nf_conntrack *); + bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *); + void (*attach)(struct sk_buff *, const struct sk_buff *); + void (*set_closing)(struct nf_conntrack *); + int (*confirm)(struct sk_buff *); +}; + +struct nfnl_ct_hook { + size_t (*build_size)(const struct nf_conn *); + int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t); + int (*parse)(const struct nlattr *, struct nf_conn *); + int (*attach_expect)(const struct nlattr *, struct nf_conn *, u32, u32); + void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32); +}; + +struct nfnl_queue_net { + spinlock_t instances_lock; + struct hlist_head instance_table[16]; +}; + +typedef int (*nfqnl_cmpfn)(struct nf_queue_entry *, unsigned long); + +struct ip_rt_info { + __be32 daddr; + __be32 saddr; + u_int8_t tos; + u_int32_t mark; +}; + +struct nfqnl_msg_verdict_hdr { + __be32 verdict; + __be32 id; +}; + +struct iter_state { + struct seq_net_private p; + unsigned int bucket; +}; + +struct nfqnl_msg_packet_hdr { + __be32 packet_id; + __be16 hw_protocol; + __u8 hook; +} __attribute__((packed)); + +struct nfqnl_msg_packet_hw { + __be16 hw_addrlen; + __u16 _pad; + __u8 hw_addr[8]; +}; + +struct nfqnl_msg_packet_timestamp { + __be64 sec; + __be64 usec; +}; + +struct nfqnl_msg_config_cmd { + __u8 command; + __u8 _pad; + __be16 pf; +}; + +struct nfqnl_msg_config_params { + __be32 copy_range; + __u8 copy_mode; +} __attribute__((packed)); + +enum { + SEG6_ATTR_UNSPEC = 0, + SEG6_ATTR_DST = 1, + SEG6_ATTR_DSTLEN = 2, + SEG6_ATTR_HMACKEYID = 3, + SEG6_ATTR_SECRET = 4, + SEG6_ATTR_SECRETLEN = 5, + SEG6_ATTR_ALGID = 6, + SEG6_ATTR_HMACINFO = 7, + __SEG6_ATTR_MAX = 8, +}; + +enum { + SEG6_CMD_UNSPEC = 0, + SEG6_CMD_SETHMAC = 1, + SEG6_CMD_DUMPHMAC = 2, + SEG6_CMD_SET_TUNSRC = 3, + SEG6_CMD_GET_TUNSRC = 4, + __SEG6_CMD_MAX = 5, +}; + +struct sr6_tlv { + __u8 type; + __u8 len; + __u8 data[0]; +}; + +struct cfg80211_conn { + struct cfg80211_connect_params params; + enum { + CFG80211_CONN_SCANNING = 0, + CFG80211_CONN_SCAN_AGAIN = 1, + CFG80211_CONN_AUTHENTICATE_NEXT = 2, + CFG80211_CONN_AUTHENTICATING = 3, + CFG80211_CONN_AUTH_FAILED_TIMEOUT = 4, + CFG80211_CONN_ASSOCIATE_NEXT = 5, + CFG80211_CONN_ASSOCIATING = 6, + CFG80211_CONN_ASSOC_FAILED = 7, + CFG80211_CONN_ASSOC_FAILED_TIMEOUT = 8, + CFG80211_CONN_DEAUTH = 9, + CFG80211_CONN_ABANDON = 10, + CFG80211_CONN_CONNECTED = 11, + } state; + u8 bssid[6]; + u8 prev_bssid[6]; + const u8 *ie; + size_t ie_len; + bool auto_auth; + bool prev_bssid_valid; +}; + +enum { + LOGIC_PIO_INDIRECT = 0, + LOGIC_PIO_CPU_MMIO = 1, +}; + +struct logic_pio_host_ops; + +struct logic_pio_hwaddr { + struct list_head list; + struct fwnode_handle *fwnode; + resource_size_t hw_start; + resource_size_t io_start; + resource_size_t size; + unsigned long flags; + void *hostdata; + const struct logic_pio_host_ops *ops; +}; + +struct logic_pio_host_ops { + u32 (*in)(void *, unsigned long, size_t); + void (*out)(void *, unsigned long, u32, size_t); + u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int); + void (*outs)(void *, unsigned long, const void *, size_t, unsigned int); +}; + +struct pci_extra_dev { + struct pci_dev *dev[4]; +}; + +struct intel_uncore_init_fun { + void (*cpu_init)(); + int (*pci_init)(); + void (*mmio_init)(); + bool use_discovery; + int *uncore_units_ignore; +}; + +struct param_attribute { + struct module_attribute mattr; + const struct kernel_param *param; +}; + +struct module_param_attrs { + unsigned int num; + struct attribute_group grp; + struct param_attribute attrs[0]; +}; + +enum { + KERNEL_PARAM_OPS_FL_NOARG = 1, +}; + +enum { + KERNEL_PARAM_FL_UNSAFE = 1, + KERNEL_PARAM_FL_HWPARAM = 2, +}; + +struct kmalloced_param { + struct list_head list; + char val[0]; +}; + +typedef void (*btf_trace_module_load)(void *, struct module *); + +typedef void (*btf_trace_module_free)(void *, struct module *); + +typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); + +typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); + +typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); + +struct latch_tree_root { + seqcount_latch_t seq; + struct rb_root tree[2]; +}; + +struct mod_tree_root { + struct latch_tree_root root; + unsigned long addr_min; + unsigned long addr_max; +}; + +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, +}; + +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const s32 *crcs; + enum mod_license license; +}; + +enum fail_dup_mod_reason { + FAIL_DUP_MOD_BECOMING = 0, + FAIL_DUP_MOD_LOAD = 1, +}; + +struct trace_event_raw_module_load { + struct trace_entry ent; + unsigned int taints; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_module_free { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_module_refcnt { + struct trace_entry ent; + unsigned long ip; + int refcnt; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_module_request { + struct trace_entry ent; + unsigned long ip; + bool wait; + u32 __data_loc_name; + char __data[0]; +}; + +struct mod_initfree { + struct llist_node node; + void *init_text; + void *init_data; + void *init_rodata; +}; + +struct idempotent { + const void *cookie; + struct hlist_node entry; + struct completion complete; + int ret; +}; + +struct trace_event_data_offsets_module_load { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_free { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_refcnt { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_module_request { + u32 name; + const void *name_ptr_; +}; + +struct find_symbol_arg { + const char *name; + bool gplok; + bool warn; + struct module *owner; + const s32 *crc; + const struct kernel_symbol *sym; + enum mod_license license; +}; + +struct bpf_iter__bpf_prog { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_prog *prog; + }; +}; + +struct bpf_iter_seq_prog_info { + u32 prog_id; +}; + +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, +}; + +struct fname { + __u32 hash; + __u32 minor_hash; + struct rb_node rb_hash; + struct fname *next; + __u32 inode; + __u8 name_len; + __u8 file_type; + char name[0]; +}; + +struct dir_private_info { + struct rb_root root; + struct rb_node *curr_node; + struct fname *extra_fname; + loff_t last_pos; + __u32 curr_hash; + __u32 curr_minor_hash; + __u32 next_hash; +}; + +enum btrfs_flush_state { + FLUSH_DELAYED_ITEMS_NR = 1, + FLUSH_DELAYED_ITEMS = 2, + FLUSH_DELAYED_REFS_NR = 3, + FLUSH_DELAYED_REFS = 4, + FLUSH_DELALLOC = 5, + FLUSH_DELALLOC_WAIT = 6, + FLUSH_DELALLOC_FULL = 7, + ALLOC_CHUNK = 8, + ALLOC_CHUNK_FORCE = 9, + RUN_DELAYED_IPUTS = 10, + COMMIT_TRANS = 11, +}; + +struct reserve_ticket { + u64 bytes; + int error; + bool steal; + struct list_head list; + wait_queue_head_t wait; +}; + +struct authenc_esn_instance_ctx { + struct crypto_ahash_spawn auth; + struct crypto_skcipher_spawn enc; +}; + +struct crypto_authenc_esn_ctx { + unsigned int reqoff; + struct crypto_ahash *auth; + struct crypto_skcipher *enc; + struct crypto_sync_skcipher *null; +}; + +struct authenc_esn_request_ctx { + struct scatterlist src[2]; + struct scatterlist dst[2]; + char tail[0]; +}; + +struct epoll_event { + __poll_t events; + __u64 data; +} __attribute__((packed)); + +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; +}; + +enum gcry_mpi_format { + GCRYMPI_FMT_NONE = 0, + GCRYMPI_FMT_STD = 1, + GCRYMPI_FMT_PGP = 2, + GCRYMPI_FMT_SSH = 3, + GCRYMPI_FMT_HEX = 4, + GCRYMPI_FMT_USG = 5, + GCRYMPI_FMT_OPAQUE = 8, +}; + +struct acpi_processor_errata { + u8 smp; + struct { + u8 throttle: 1; + u8 fdma: 1; + u8 reserved: 6; + u32 bmisx; + } piix4; +}; + +struct acpi_comment_node { + char *comment; + struct acpi_comment_node *next; +}; + +struct acpi_fixed_event_info { + u8 status_register_id; + u8 enable_register_id; + u16 status_bit_mask; + u16 enable_bit_mask; +}; + +struct acpi_table_fadt { + struct acpi_table_header header; + u32 facs; + u32 dsdt; + u8 model; + u8 preferred_profile; + u16 sci_interrupt; + u32 smi_command; + u8 acpi_enable; + u8 acpi_disable; + u8 s4_bios_request; + u8 pstate_control; + u32 pm1a_event_block; + u32 pm1b_event_block; + u32 pm1a_control_block; + u32 pm1b_control_block; + u32 pm2_control_block; + u32 pm_timer_block; + u32 gpe0_block; + u32 gpe1_block; + u8 pm1_event_length; + u8 pm1_control_length; + u8 pm2_control_length; + u8 pm_timer_length; + u8 gpe0_block_length; + u8 gpe1_block_length; + u8 gpe1_base; + u8 cst_control; + u16 c2_latency; + u16 c3_latency; + u16 flush_size; + u16 flush_stride; + u8 duty_offset; + u8 duty_width; + u8 day_alarm; + u8 month_alarm; + u8 century; + u16 boot_flags; + u8 reserved; + u32 flags; + struct acpi_generic_address reset_register; + u8 reset_value; + u16 arm_boot_flags; + u8 minor_revision; + u64 Xfacs; + u64 Xdsdt; + struct acpi_generic_address xpm1a_event_block; + struct acpi_generic_address xpm1b_event_block; + struct acpi_generic_address xpm1a_control_block; + struct acpi_generic_address xpm1b_control_block; + struct acpi_generic_address xpm2_control_block; + struct acpi_generic_address xpm_timer_block; + struct acpi_generic_address xgpe0_block; + struct acpi_generic_address xgpe1_block; + struct acpi_generic_address sleep_control; + struct acpi_generic_address sleep_status; + u64 hypervisor_id; +} __attribute__((packed)); + +struct acpi_table_list { + struct acpi_table_desc *tables; + u32 current_table_count; + u32 max_table_count; + u8 flags; +}; + +struct acpi_mutex_info { + void *mutex; + u32 use_count; + u64 thread_id; +}; + +typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); + +typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); + +typedef u32 (*acpi_sci_handler)(void *); + +struct acpi_sci_handler_info { + struct acpi_sci_handler_info *next; + acpi_sci_handler address; + void *context; +}; + +struct acpi_ged_handler_info { + struct acpi_ged_handler_info *next; + u32 int_id; + struct acpi_namespace_node *evt_method; +}; + +struct acpi_fixed_event_handler { + acpi_event_handler handler; + void *context; +}; + +enum { + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, +}; + +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, +}; + +struct loop_device { + int lo_number; + loff_t lo_offset; + loff_t lo_sizelimit; + int lo_flags; + char lo_file_name[64]; + struct file *lo_backing_file; + struct block_device *lo_device; + gfp_t old_gfp_mask; + spinlock_t lo_lock; + int lo_state; + spinlock_t lo_work_lock; + struct workqueue_struct *workqueue; + struct work_struct rootcg_work; + struct list_head rootcg_cmd_list; + struct list_head idle_worker_list; + struct rb_root worker_tree; + struct timer_list timer; + bool use_dio; + bool sysfs_inited; + struct request_queue *lo_queue; + struct blk_mq_tag_set tag_set; + struct gendisk *lo_disk; + struct mutex lo_mutex; + bool idr_visible; +}; + +struct loop_worker { + struct rb_node rb_node; + struct work_struct work; + struct list_head cmd_list; + struct list_head idle_list; + struct loop_device *lo; + struct cgroup_subsys_state *blkcg_css; + unsigned long last_ran_at; +}; + +struct loop_cmd { + struct list_head list_entry; + bool use_aio; + atomic_t ref; + long ret; + struct kiocb iocb; + struct bio_vec *bvec; + struct cgroup_subsys_state *blkcg_css; + struct cgroup_subsys_state *memcg_css; +}; + +struct req_iterator { + struct bvec_iter iter; + struct bio *bio; +}; + +typedef unsigned long __kernel_old_dev_t; + +struct loop_info { + int lo_number; + __kernel_old_dev_t lo_device; + unsigned long lo_inode; + __kernel_old_dev_t lo_rdevice; + int lo_offset; + int lo_encrypt_type; + int lo_encrypt_key_size; + int lo_flags; + char lo_name[64]; + unsigned char lo_encrypt_key[32]; + unsigned long lo_init[2]; + char reserved[4]; +}; + +struct loop_info64 { + __u64 lo_device; + __u64 lo_inode; + __u64 lo_rdevice; + __u64 lo_offset; + __u64 lo_sizelimit; + __u32 lo_number; + __u32 lo_encrypt_type; + __u32 lo_encrypt_key_size; + __u32 lo_flags; + __u8 lo_file_name[64]; + __u8 lo_crypt_name[64]; + __u8 lo_encrypt_key[32]; + __u64 lo_init[2]; +}; + +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; +}; + +enum iwl_statistics_cmd_flags { + IWL_STATISTICS_FLG_CLEAR = 1, + IWL_STATISTICS_FLG_DISABLE_NOTIF = 2, +}; + +enum iwl_statistics_cfg_flags { + IWL_STATS_CFG_FLG_DISABLE_NTFY_MSK = 1, + IWL_STATS_CFG_FLG_ON_DEMAND_NTFY_MSK = 2, + IWL_STATS_CFG_FLG_RESET_MSK = 4, +}; + +enum iwl_statistics_notify_type_id { + IWL_STATS_NTFY_TYPE_ID_OPER = 1, + IWL_STATS_NTFY_TYPE_ID_OPER_PART1 = 2, + IWL_STATS_NTFY_TYPE_ID_OPER_PART2 = 4, + IWL_STATS_NTFY_TYPE_ID_OPER_PART3 = 8, + IWL_STATS_NTFY_TYPE_ID_OPER_PART4 = 16, +}; + +struct iwl_system_statistics_cmd { + __le32 cfg_mask; + __le32 config_time_sec; + __le32 type_id_mask; +}; + +struct iwl_cmd_response { + __le32 status; +}; + +struct iwl_error_resp { + __le32 error_type; + u8 cmd_id; + u8 reserved1; + __le16 bad_cmd_seq_num; + __le32 error_service; + __le64 timestamp; +} __attribute__((packed)); + +struct iwl_statistics_cmd { + __le32 flags; +}; + +struct iwl_mvm_diversity_iter_data { + struct iwl_mvm_phy_ctxt *ctxt; + bool result; +}; + +struct iwl_mac_low_latency_cmd { + __le32 mac_id; + u8 low_latency_rx; + u8 low_latency_tx; + __le16 reserved; +}; + +struct iwl_mvm_low_latency_iter { + bool result; + bool result_per_band[6]; +}; + +struct iwl_bss_iter_data { + struct ieee80211_vif *vif; + bool error; +}; + +struct iwl_bss_find_iter_data { + struct ieee80211_vif *vif; + u32 macid; +}; + +struct iwl_sta_iter_data { + bool assoc; +}; + +struct iwl_fw_dbg_trigger_txq_timer { + __le32 command_queue; + __le32 bss; + __le32 softap; + __le32 p2p_go; + __le32 p2p_client; + __le32 p2p_device; + __le32 ibss; + __le32 tdls; + __le32 reserved[4]; +}; + +struct swoc_info { + __u8 rev; + __u8 reserved[8]; + __u16 LinuxSKU; + __u16 LinuxVer; + __u8 reserved2[47]; +} __attribute__((packed)); + +enum dm_uevent_type { + DM_UEVENT_PATH_FAILED = 0, + DM_UEVENT_PATH_REINSTATED = 1, +}; + +struct dm_uevent { + struct mapped_device *md; + enum kobject_action action; + struct kobj_uevent_env ku_env; + struct list_head elist; + char name[128]; + char uuid[129]; +}; + +enum { + ETHTOOL_A_DEBUG_UNSPEC = 0, + ETHTOOL_A_DEBUG_HEADER = 1, + ETHTOOL_A_DEBUG_MSGMASK = 2, + __ETHTOOL_A_DEBUG_CNT = 3, + ETHTOOL_A_DEBUG_MAX = 2, +}; + +struct debug_reply_data { + struct ethnl_reply_data base; + u32 msg_mask; +}; + +enum nft_byteorder_ops { + NFT_BYTEORDER_NTOH = 0, + NFT_BYTEORDER_HTON = 1, +}; + +enum nft_byteorder_attributes { + NFTA_BYTEORDER_UNSPEC = 0, + NFTA_BYTEORDER_SREG = 1, + NFTA_BYTEORDER_DREG = 2, + NFTA_BYTEORDER_OP = 3, + NFTA_BYTEORDER_LEN = 4, + NFTA_BYTEORDER_SIZE = 5, + __NFTA_BYTEORDER_MAX = 6, +}; + +struct nft_byteorder { + u8 sreg; + u8 dreg; + enum nft_byteorder_ops op: 8; + u8 len; + u8 size; +}; + +struct frag_queue { + struct inet_frag_queue q; + int iif; + __u16 nhoffset; + u8 ecn; +}; + +enum kernel_gp_hint { + GP_NO_HINT = 0, + GP_NON_CANONICAL = 1, + GP_CANONICAL = 2, +}; + +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, +}; + enum cpu_idle_type { CPU_IDLE = 0, CPU_NOT_IDLE = 1, @@ -138202,121 +121932,66 @@ struct sd_lb_stats { struct sg_lb_stats local_stat; }; -enum { - TRACE_NOP_OPT_ACCEPT = 1, - TRACE_NOP_OPT_REFUSE = 2, +struct eprobe_trace_entry_head { + struct trace_entry ent; }; -enum { - BPF_MAX_TRAMP_LINKS = 38, +struct trace_eprobe { + const char *event_system; + const char *event_name; + char *filter_str; + struct trace_event_call *event; + struct dyn_event devent; + struct trace_probe tp; }; -enum legacy_fs_param { - LEGACY_FS_UNSET_PARAMS = 0, - LEGACY_FS_MONOLITHIC_PARAMS = 1, - LEGACY_FS_INDIVIDUAL_PARAMS = 2, +struct eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; }; -struct legacy_fs_context { - char *legacy_data; - size_t data_size; - enum legacy_fs_param param_type; +struct mpage_readpage_args { + struct bio *bio; + struct folio *folio; + unsigned int nr_pages; + bool is_readahead; + sector_t last_block_in_bio; + struct buffer_head map_bh; + unsigned long first_logical_block; + get_block_t *get_block; }; -struct ext4_getfsmap_info { - struct ext4_fsmap_head *gfi_head; - ext4_fsmap_format_t gfi_formatter; - void *gfi_format_arg; - ext4_fsblk_t gfi_next_fsblk; - u32 gfi_dev; - ext4_group_t gfi_agno; - struct ext4_fsmap gfi_low; - struct ext4_fsmap gfi_high; - struct ext4_fsmap gfi_lastfree; - struct list_head gfi_meta_list; - bool gfi_last; +struct mpage_data { + struct bio *bio; + sector_t last_block_in_bio; + get_block_t *get_block; }; -struct ext4_getfsmap_dev { - int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); - u32 gfd_dev; +enum proc_param { + Opt_gid___7 = 0, + Opt_hidepid = 1, + Opt_subset = 2, }; -enum { - EXT4_FC_STATUS_OK = 0, - EXT4_FC_STATUS_INELIGIBLE = 1, - EXT4_FC_STATUS_SKIPPED = 2, - EXT4_FC_STATUS_FAILED = 3, +struct proc_fs_context { + struct pid_namespace *pid_ns; + unsigned int mask; + enum proc_hidepid hidepid; + int gid; + enum proc_pidonly pidonly; }; -struct ext4_fc_dentry_update { - int fcd_op; - int fcd_parent; - int fcd_ino; - struct qstr fcd_name; - unsigned char fcd_iname[40]; - struct list_head fcd_list; - struct list_head fcd_dilist; +struct fatent_ra { + sector_t cur; + sector_t limit; + unsigned int ra_blocks; + sector_t ra_advance; + sector_t ra_next; + sector_t ra_limit; }; -struct __track_dentry_update_args { - struct dentry *dentry; - int op; -}; - -struct __track_range_args { - ext4_lblk_t start; - ext4_lblk_t end; -}; - -struct ext4_fc_tl { - __le16 fc_tag; - __le16 fc_len; -}; - -struct ext4_fc_head { - __le32 fc_features; - __le32 fc_tid; -}; - -struct ext4_fc_dentry_info { - __le32 fc_parent_ino; - __le32 fc_ino; - __u8 fc_dname[0]; -}; - -struct ext4_fc_tail { - __le32 fc_tid; - __le32 fc_crc; -}; - -struct ext4_fc_add_range { - __le32 fc_ino; - __u8 fc_ex[12]; -}; - -struct ext4_fc_tl_mem { - u16 fc_tag; - u16 fc_len; -}; - -struct dentry_info_args { - int parent_ino; - int dname_len; - int ino; - int inode_len; - char *dname; -}; - -struct ext4_fc_del_range { - __le32 fc_ino; - __le32 fc_lblk; - __le32 fc_len; -}; - -struct ext4_fc_inode { - __le32 fc_ino; - __u8 fc_raw_inode[0]; +struct msg_msgseg { + struct msg_msgseg *next; }; enum blake2b_lengths { @@ -138356,239 +122031,9497 @@ struct blake2b_tfm_ctx { unsigned int keylen; }; -enum prep_dispatch { - PREP_DISPATCH_OK = 0, - PREP_DISPATCH_NO_TAG = 1, - PREP_DISPATCH_NO_BUDGET = 2, -}; - -struct blk_mq_qe_pair { - struct list_head node; - struct request_queue *q; - struct elevator_type *type; -}; - -struct flush_busy_ctx_data { +struct show_busy_params { + struct seq_file *m; struct blk_mq_hw_ctx *hctx; - struct list_head *list; }; -struct dispatch_rq_data { - struct blk_mq_hw_ctx *hctx; - struct request *rq; +enum { + IO_WQ_BIT_EXIT = 0, }; -struct blk_expired_data { - bool has_timedout_rq; - unsigned long next; - unsigned long timeout_start; +enum { + IO_WORKER_F_UP = 1, + IO_WORKER_F_RUNNING = 2, + IO_WORKER_F_FREE = 4, + IO_WORKER_F_BOUND = 8, }; -struct rq_iter_data { - struct blk_mq_hw_ctx *hctx; - bool has_rq; +enum { + IO_WQ_WORK_CANCEL = 1, + IO_WQ_WORK_HASHED = 2, + IO_WQ_WORK_UNBOUND = 4, + IO_WQ_WORK_CONCURRENT = 16, + IO_WQ_HASH_SHIFT = 24, }; -struct mq_inflight { - struct block_device *part; - unsigned int inflight[2]; +enum { + IO_ACCT_STALLED_BIT = 0, }; -struct blk_rq_wait { +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, +}; + +struct io_wq_acct { + unsigned int nr_workers; + unsigned int max_workers; + int index; + atomic_t nr_running; + raw_spinlock_t lock; + struct io_wq_work_list work_list; + unsigned long flags; +}; + +struct io_wq { + unsigned long state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wq_acct acct[2]; + raw_spinlock_t lock; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq_work *hash_tail[64]; + cpumask_var_t cpu_mask; +}; + +struct io_worker { + refcount_t ref; + unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wq *wq; + struct io_wq_work *cur_work; + struct io_wq_work *next_work; + raw_spinlock_t lock; + struct completion ref_done; + unsigned long create_state; + struct callback_head create_work; + int create_index; + union { + struct callback_head rcu; + struct work_struct work; + }; +}; + +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; +}; + +struct online_data { + unsigned int cpu; + bool online; +}; + +struct acpi_pcc_info { + u8 subspace_id; + u16 length; + u8 *internal_buffer; +}; + +struct pcc_mbox_chan; + +struct pcc_data { + struct pcc_mbox_chan *pcc_chan; + void *pcc_comm_addr; struct completion done; - blk_status_t ret; + struct mbox_client cl; + struct acpi_pcc_info ctx; }; -struct acpi_processor_errata { - u8 smp; +struct pcc_mbox_chan { + struct mbox_chan *mchan; + u64 shmem_base_addr; + u64 shmem_size; + u32 latency; + u32 max_access_rate; + u16 min_turnaround_time; +}; + +struct acpipnp_parse_option_s { + struct pnp_dev *dev; + unsigned int option_flags; +}; + +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; +}; + +enum { + NVME_HOST_MEM_ENABLE = 1, + NVME_HOST_MEM_RETURN = 2, +}; + +enum { + NVME_CMBMSC_CRE = 1, + NVME_CMBMSC_CMSE = 2, +}; + +enum { + NVME_CMBSZ_SQS = 1, + NVME_CMBSZ_CQS = 2, + NVME_CMBSZ_LISTS = 4, + NVME_CMBSZ_RDS = 8, + NVME_CMBSZ_WDS = 16, + NVME_CMBSZ_SZ_SHIFT = 12, + NVME_CMBSZ_SZ_MASK = 1048575, + NVME_CMBSZ_SZU_SHIFT = 8, + NVME_CMBSZ_SZU_MASK = 15, +}; + +enum { + NVME_SGL_FMT_DATA_DESC = 0, + NVME_SGL_FMT_SEG_DESC = 2, + NVME_SGL_FMT_LAST_SEG_DESC = 3, + NVME_KEY_SGL_FMT_DATA_DESC = 4, + NVME_TRANSPORT_SGL_DATA_DESC = 5, +}; + +struct nvme_queue; + +struct nvme_host_mem_buf_desc; + +struct nvme_dev { + struct nvme_queue *queues; + struct blk_mq_tag_set tagset; + struct blk_mq_tag_set admin_tagset; + u32 *dbs; + struct device *dev; + struct dma_pool *prp_page_pool; + struct dma_pool *prp_small_pool; + unsigned int online_queues; + unsigned int max_qid; + unsigned int io_queues[3]; + unsigned int num_vecs; + u32 q_depth; + int io_sqes; + u32 db_stride; + void *bar; + unsigned long bar_mapped_size; + struct mutex shutdown_lock; + bool subsystem; + u64 cmb_size; + bool cmb_use_sqes; + u32 cmbsz; + u32 cmbloc; + struct nvme_ctrl ctrl; + u32 last_ps; + bool hmb; + mempool_t *iod_mempool; + __le32 *dbbuf_dbs; + dma_addr_t dbbuf_dbs_dma_addr; + __le32 *dbbuf_eis; + dma_addr_t dbbuf_eis_dma_addr; + u64 host_mem_size; + u32 nr_host_mem_descs; + dma_addr_t host_mem_descs_dma; + struct nvme_host_mem_buf_desc *host_mem_descs; + void **host_mem_desc_bufs; + unsigned int nr_allocated_queues; + unsigned int nr_write_queues; + unsigned int nr_poll_queues; +}; + +struct nvme_completion; + +struct nvme_queue { + struct nvme_dev *dev; + spinlock_t sq_lock; + void *sq_cmds; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t cq_poll_lock; + struct nvme_completion *cqes; + dma_addr_t sq_dma_addr; + dma_addr_t cq_dma_addr; + u32 *q_db; + u32 q_depth; + u16 cq_vector; + u16 sq_tail; + u16 last_sq_tail; + u16 cq_head; + u16 qid; + u8 cq_phase; + u8 sqes; + unsigned long flags; + __le32 *dbbuf_sq_db; + __le32 *dbbuf_cq_db; + __le32 *dbbuf_sq_ei; + __le32 *dbbuf_cq_ei; + struct completion delete_done; + long: 64; + long: 64; +}; + +struct nvme_completion { + union nvme_result result; + __le16 sq_head; + __le16 sq_id; + __u16 command_id; + __le16 status; +}; + +struct nvme_host_mem_buf_desc { + __le64 addr; + __le32 size; + __u32 rsvd; +}; + +union nvme_descriptor { + struct nvme_sgl_desc *sg_list; + __le64 *prp_list; +}; + +struct nvme_iod { + struct nvme_request req; + struct nvme_command cmd; + bool aborted; + s8 nr_allocations; + unsigned int dma_len; + dma_addr_t first_dma; + dma_addr_t meta_dma; + struct sg_table sgt; + union nvme_descriptor list[5]; +}; + +enum bt_coex_prio_table_events { + BT_COEX_PRIO_TBL_EVT_INIT_CALIB1 = 0, + BT_COEX_PRIO_TBL_EVT_INIT_CALIB2 = 1, + BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW1 = 2, + BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW2 = 3, + BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH1 = 4, + BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH2 = 5, + BT_COEX_PRIO_TBL_EVT_DTIM = 6, + BT_COEX_PRIO_TBL_EVT_SCAN52 = 7, + BT_COEX_PRIO_TBL_EVT_SCAN24 = 8, + BT_COEX_PRIO_TBL_EVT_RESERVED0 = 9, + BT_COEX_PRIO_TBL_EVT_RESERVED1 = 10, + BT_COEX_PRIO_TBL_EVT_RESERVED2 = 11, + BT_COEX_PRIO_TBL_EVT_RESERVED3 = 12, + BT_COEX_PRIO_TBL_EVT_RESERVED4 = 13, + BT_COEX_PRIO_TBL_EVT_RESERVED5 = 14, + BT_COEX_PRIO_TBL_EVT_RESERVED6 = 15, + BT_COEX_PRIO_TBL_EVT_MAX = 16, +}; + +enum iwl_ucode_calib_cfg { + IWL_CALIB_CFG_RX_BB_IDX = 1, + IWL_CALIB_CFG_DC_IDX = 2, + IWL_CALIB_CFG_LO_IDX = 4, + IWL_CALIB_CFG_TX_IQ_IDX = 8, + IWL_CALIB_CFG_RX_IQ_IDX = 16, + IWL_CALIB_CFG_NOISE_IDX = 32, + IWL_CALIB_CFG_CRYSTAL_IDX = 64, + IWL_CALIB_CFG_TEMPERATURE_IDX = 128, + IWL_CALIB_CFG_PAPD_IDX = 256, + IWL_CALIB_CFG_SENSITIVITY_IDX = 512, + IWL_CALIB_CFG_TX_PWR_IDX = 1024, +}; + +enum { + IWL_PHY_CALIBRATE_DC_CMD = 8, + IWL_PHY_CALIBRATE_LO_CMD = 9, + IWL_PHY_CALIBRATE_TX_IQ_CMD = 11, + IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD = 15, + IWL_PHY_CALIBRATE_BASE_BAND_CMD = 16, + IWL_PHY_CALIBRATE_TX_IQ_PERD_CMD = 17, + IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD = 18, +}; + +struct iwl_bt_coex_prot_env_cmd { + u8 action; + u8 type; + u8 reserved[2]; +}; + +struct iwl_calib_cfg_elmnt_s { + __le32 is_enable; + __le32 start; + __le32 send_res; + __le32 apply_res; + __le32 reserved; +}; + +struct iwl_calib_cfg_status_s { + struct iwl_calib_cfg_elmnt_s once; + struct iwl_calib_cfg_elmnt_s perd; + __le32 flags; +}; + +struct iwl_calib_cfg_cmd { + struct iwl_calib_cfg_status_s ucd_calib_cfg; + struct iwl_calib_cfg_status_s drv_calib_cfg; + __le32 reserved1; +}; + +struct iwl_calib_temperature_offset_v2_cmd { + struct iwl_calib_hdr hdr; + __le16 radio_sensor_offset_high; + __le16 radio_sensor_offset_low; + __le16 burntVoltageRef; + __le16 reserved; +}; + +struct iwl_calib_temperature_offset_cmd { + struct iwl_calib_hdr hdr; + __le16 radio_sensor_offset; + __le16 reserved; +}; + +struct iwl_wimax_coex_event_entry { + u8 request_prio; + u8 win_medium_prio; + u8 reserved; + u8 flags; +}; + +struct iwl_wimax_coex_cmd { + u8 flags; + u8 reserved[3]; + struct iwl_wimax_coex_event_entry sta_prio[16]; +}; + +struct iwl_calib_xtal_freq_cmd { + struct iwl_calib_hdr hdr; + u8 cap_pin1; + u8 cap_pin2; + u8 pad[2]; +}; + +struct iwl_bt_coex_prio_table_cmd { + u8 prio_tbl[16]; +}; + +struct iwl_alive_data { + bool valid; + u8 subtype; +}; + +struct iwl_alive_resp { + u8 ucode_minor; + u8 ucode_major; + __le16 reserved1; + u8 sw_rev[8]; + u8 ver_type; + u8 ver_subtype; + __le16 reserved2; + __le32 log_event_table_ptr; + __le32 error_event_table_ptr; + __le32 timestamp; + __le32 is_valid; +}; + +enum rtw_fw_fifo_sel { + RTW_FW_FIFO_SEL_TX = 0, + RTW_FW_FIFO_SEL_RX = 1, + RTW_FW_FIFO_SEL_RSVD_PAGE = 2, + RTW_FW_FIFO_SEL_REPORT = 3, + RTW_FW_FIFO_SEL_LLT = 4, + RTW_FW_FIFO_SEL_RXBUF_FW = 5, + RTW_FW_FIFO_MAX = 6, +}; + +enum rtw_vif_port_set { + PORT_SET_MAC_ADDR = 1, + PORT_SET_BSSID = 2, + PORT_SET_NET_TYPE = 4, + PORT_SET_AID = 8, + PORT_SET_BCN_CTRL = 16, +}; + +enum rtw_wireless_set { + WIRELESS_CCK = 1, + WIRELESS_OFDM = 2, + WIRELESS_HT = 4, + WIRELESS_VHT = 8, +}; + +enum rtw_port { + RTW_PORT_0 = 0, + RTW_PORT_1 = 1, + RTW_PORT_2 = 2, + RTW_PORT_3 = 3, + RTW_PORT_4 = 4, + RTW_PORT_NUM = 5, +}; + +enum rtw_evm { + RTW_EVM_OFDM = 0, + RTW_EVM_1SS = 1, + RTW_EVM_2SS_A = 2, + RTW_EVM_2SS_B = 3, + RTW_EVM_NUM = 4, +}; + +enum rtw_snr { + RTW_SNR_OFDM_A = 0, + RTW_SNR_OFDM_B = 1, + RTW_SNR_OFDM_C = 2, + RTW_SNR_OFDM_D = 3, + RTW_SNR_1SS_A = 4, + RTW_SNR_1SS_B = 5, + RTW_SNR_1SS_C = 6, + RTW_SNR_1SS_D = 7, + RTW_SNR_2SS_A = 8, + RTW_SNR_2SS_B = 9, + RTW_SNR_2SS_C = 10, + RTW_SNR_2SS_D = 11, + RTW_SNR_NUM = 12, +}; + +enum rtw_fw_feature_ext { + FW_FEATURE_EXT_OLD_PAGE_NUM = 1, +}; + +struct rtw_fwcd_hdr { + u32 item; + u32 size; + u32 padding1; + u32 padding2; +}; + +struct rtw_fw_hdr_legacy { + __le16 signature; + u8 category; + u8 function; + __le16 version; + u8 subversion1; + u8 subversion2; + u8 month; + u8 day; + u8 hour; + u8 minute; + __le16 size; + __le16 rsvd2; + __le32 idx; + __le32 rsvd3; + __le32 rsvd4; + __le32 rsvd5; +}; + +struct rtw_channel_params { + u8 center_chan; + u8 primary_chan; + u8 bandwidth; +}; + +struct rtw_watch_dog_iter_data { + struct rtw_dev *rtwdev; + struct rtw_vif *rtwvif; +}; + +struct rtw_txq_ba_iter_data {}; + +struct rtw_iter_port_switch_data { + struct rtw_dev *rtwdev; + struct rtw_vif *rtwvif_ap; +}; + +struct efivar_operations; + +struct efivars { + struct kset *kset; + const struct efivar_operations *ops; +}; + +typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); + +typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); + +typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); + +typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); + +typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); + +struct efivar_operations { + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_store_t *query_variable_store; + efi_query_variable_info_t *query_variable_info; +}; + +enum { + NETDEV_A_DEV_IFINDEX = 1, + NETDEV_A_DEV_PAD = 2, + NETDEV_A_DEV_XDP_FEATURES = 3, + NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, + NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, + NETDEV_A_DEV_XSK_FEATURES = 6, + __NETDEV_A_DEV_MAX = 7, + NETDEV_A_DEV_MAX = 6, +}; + +enum { + NETDEV_A_NAPI_IFINDEX = 1, + NETDEV_A_NAPI_ID = 2, + NETDEV_A_NAPI_IRQ = 3, + NETDEV_A_NAPI_PID = 4, + __NETDEV_A_NAPI_MAX = 5, + NETDEV_A_NAPI_MAX = 4, +}; + +enum { + NETDEV_A_QUEUE_ID = 1, + NETDEV_A_QUEUE_IFINDEX = 2, + NETDEV_A_QUEUE_TYPE = 3, + NETDEV_A_QUEUE_NAPI_ID = 4, + __NETDEV_A_QUEUE_MAX = 5, + NETDEV_A_QUEUE_MAX = 4, +}; + +enum { + NETDEV_A_QSTATS_IFINDEX = 1, + NETDEV_A_QSTATS_QUEUE_TYPE = 2, + NETDEV_A_QSTATS_QUEUE_ID = 3, + NETDEV_A_QSTATS_SCOPE = 4, + NETDEV_A_QSTATS_RX_PACKETS = 8, + NETDEV_A_QSTATS_RX_BYTES = 9, + NETDEV_A_QSTATS_TX_PACKETS = 10, + NETDEV_A_QSTATS_TX_BYTES = 11, + NETDEV_A_QSTATS_RX_ALLOC_FAIL = 12, + __NETDEV_A_QSTATS_MAX = 13, + NETDEV_A_QSTATS_MAX = 12, +}; + +enum netdev_qstats_scope { + NETDEV_QSTATS_SCOPE_QUEUE = 1, +}; + +enum netdev_xdp_rx_metadata { + NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, + NETDEV_XDP_RX_METADATA_HASH = 2, + NETDEV_XDP_RX_METADATA_VLAN_TAG = 4, +}; + +enum netdev_xsk_flags { + NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1, + NETDEV_XSK_FLAGS_TX_CHECKSUM = 2, +}; + +enum netdev_queue_type { + NETDEV_QUEUE_TYPE_RX = 0, + NETDEV_QUEUE_TYPE_TX = 1, +}; + +enum { + NETDEV_CMD_DEV_GET = 1, + NETDEV_CMD_DEV_ADD_NTF = 2, + NETDEV_CMD_DEV_DEL_NTF = 3, + NETDEV_CMD_DEV_CHANGE_NTF = 4, + NETDEV_CMD_PAGE_POOL_GET = 5, + NETDEV_CMD_PAGE_POOL_ADD_NTF = 6, + NETDEV_CMD_PAGE_POOL_DEL_NTF = 7, + NETDEV_CMD_PAGE_POOL_CHANGE_NTF = 8, + NETDEV_CMD_PAGE_POOL_STATS_GET = 9, + NETDEV_CMD_QUEUE_GET = 10, + NETDEV_CMD_NAPI_GET = 11, + NETDEV_CMD_QSTATS_GET = 12, + __NETDEV_CMD_MAX = 13, + NETDEV_CMD_MAX = 12, +}; + +enum { + NETDEV_NLGRP_MGMT = 0, + NETDEV_NLGRP_PAGE_POOL = 1, +}; + +struct netdev_nl_dump_ctx { + unsigned long ifindex; + unsigned int rxq_idx; + unsigned int txq_idx; + unsigned int napi_id; +}; + +enum { + ETHTOOL_A_PLCA_UNSPEC = 0, + ETHTOOL_A_PLCA_HEADER = 1, + ETHTOOL_A_PLCA_VERSION = 2, + ETHTOOL_A_PLCA_ENABLED = 3, + ETHTOOL_A_PLCA_STATUS = 4, + ETHTOOL_A_PLCA_NODE_CNT = 5, + ETHTOOL_A_PLCA_NODE_ID = 6, + ETHTOOL_A_PLCA_TO_TMR = 7, + ETHTOOL_A_PLCA_BURST_CNT = 8, + ETHTOOL_A_PLCA_BURST_TMR = 9, + __ETHTOOL_A_PLCA_CNT = 10, + ETHTOOL_A_PLCA_MAX = 9, +}; + +struct plca_reply_data { + struct ethnl_reply_data base; + struct phy_plca_cfg plca_cfg; + struct phy_plca_status plca_st; +}; + +struct xt_tcp { + __u16 spts[2]; + __u16 dpts[2]; + __u8 option; + __u8 flg_mask; + __u8 flg_cmp; + __u8 invflags; +}; + +struct xt_udp { + __u16 spts[2]; + __u16 dpts[2]; + __u8 invflags; +}; + +struct ipt_icmp { + __u8 type; + __u8 code[2]; + __u8 invflags; +}; + +struct ip6t_icmp { + __u8 type; + __u8 code[2]; + __u8 invflags; +}; + +struct devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[34]; +}; + +enum { + IFLA_INET_UNSPEC = 0, + IFLA_INET_CONF = 1, + __IFLA_INET_MAX = 2, +}; + +struct inet_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; +}; + +struct in_validator_info { + __be32 ivi_addr; + struct in_device *ivi_dev; + struct netlink_ext_ack *extack; +}; + +struct ipv6_rpl_sr_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; + __u32 cmpre: 4; + __u32 cmpri: 4; + __u32 reserved: 4; + __u32 pad: 4; + __u32 reserved1: 16; + union { + struct { + struct {} __empty_addr; + struct in6_addr addr[0]; + }; + struct { + struct {} __empty_data; + __u8 data[0]; + }; + } segments; +}; + +struct ida_bitmap { + unsigned long bitmap[16]; +}; + +struct efi_runtime_map_entry { + efi_memory_desc_t md; + struct kobject kobj; +}; + +struct map_attribute { + struct attribute attr; + ssize_t (*show)(struct efi_runtime_map_entry *, char *); +}; + +typedef void (*btf_trace_timer_init)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long); + +typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long); + +typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); + +typedef void (*btf_trace_timer_base_idle)(void *, bool, unsigned int); + +typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); + +typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); + +typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); + +typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); + +typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); + +typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); + +typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); + +typedef void (*btf_trace_tick_stop)(void *, int, int); + +struct timer_base { + raw_spinlock_t lock; + struct timer_list *running_timer; + unsigned long clk; + unsigned long next_expiry; + unsigned int cpu; + bool next_expiry_recalc; + bool is_idle; + bool timers_pending; + unsigned long pending_map[9]; + struct hlist_head vectors[576]; + long: 64; + long: 64; + long: 64; +}; + +struct trace_event_raw_timer_class { + struct trace_entry ent; + void *timer; + char __data[0]; +}; + +struct trace_event_raw_timer_start { + struct trace_entry ent; + void *timer; + void *function; + unsigned long expires; + unsigned long bucket_expiry; + unsigned long now; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_timer_expire_entry { + struct trace_entry ent; + void *timer; + unsigned long now; + void *function; + unsigned long baseclk; + char __data[0]; +}; + +struct trace_event_raw_timer_base_idle { + struct trace_entry ent; + bool is_idle; + unsigned int cpu; + char __data[0]; +}; + +struct trace_event_raw_hrtimer_init { + struct trace_entry ent; + void *hrtimer; + clockid_t clockid; + enum hrtimer_mode mode; + char __data[0]; +}; + +struct trace_event_raw_hrtimer_start { + struct trace_entry ent; + void *hrtimer; + void *function; + s64 expires; + s64 softexpires; + enum hrtimer_mode mode; + char __data[0]; +}; + +struct trace_event_raw_hrtimer_expire_entry { + struct trace_entry ent; + void *hrtimer; + s64 now; + void *function; + char __data[0]; +}; + +struct trace_event_raw_hrtimer_class { + struct trace_entry ent; + void *hrtimer; + char __data[0]; +}; + +struct trace_event_raw_itimer_state { + struct trace_entry ent; + int which; + unsigned long long expires; + long value_sec; + long value_nsec; + long interval_sec; + long interval_nsec; + char __data[0]; +}; + +struct trace_event_raw_itimer_expire { + struct trace_entry ent; + int which; + pid_t pid; + unsigned long long now; + char __data[0]; +}; + +struct trace_event_raw_tick_stop { + struct trace_entry ent; + int success; + int dependency; + char __data[0]; +}; + +struct process_timer { + struct timer_list timer; + struct task_struct *task; +}; + +struct trace_event_data_offsets_timer_class {}; + +struct trace_event_data_offsets_timer_start {}; + +struct trace_event_data_offsets_timer_expire_entry {}; + +struct trace_event_data_offsets_timer_base_idle {}; + +struct trace_event_data_offsets_hrtimer_init {}; + +struct trace_event_data_offsets_hrtimer_start {}; + +struct trace_event_data_offsets_hrtimer_expire_entry {}; + +struct trace_event_data_offsets_hrtimer_class {}; + +struct trace_event_data_offsets_itimer_state {}; + +struct trace_event_data_offsets_itimer_expire {}; + +struct trace_event_data_offsets_tick_stop {}; + +struct lpm_trie_node; + +struct lpm_trie { + struct bpf_map map; + struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *root; + size_t n_entries; + size_t max_prefixlen; + size_t data_size; + spinlock_t lock; +}; + +struct lpm_trie_node { + struct callback_head rcu; + struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *child[2]; + u32 prefixlen; + u32 flags; + u8 data[0]; +}; + +struct bpf_lpm_trie_key_hdr { + __u32 prefixlen; +}; + +struct bpf_lpm_trie_key_u8 { + union { + struct bpf_lpm_trie_key_hdr hdr; + __u32 prefixlen; + }; + __u8 data[0]; +}; + +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); + +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); + +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); + +struct memcg_path { + local_lock_t lock; + char __attribute__((btf_type_tag("rcu"))) *buf; + local_t buf_idx; +}; + +struct trace_event_raw_mmap_lock { + struct trace_entry ent; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + char __data[0]; +}; + +struct trace_event_raw_mmap_lock_acquire_returned { + struct trace_entry ent; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + bool success; + char __data[0]; +}; + +struct trace_event_data_offsets_mmap_lock { + u32 memcg_path; + const void *memcg_path_ptr_; +}; + +struct trace_event_data_offsets_mmap_lock_acquire_returned { + u32 memcg_path; + const void *memcg_path_ptr_; +}; + +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, + FSCONFIG_CMD_CREATE_EXCL = 8, +}; + +struct zstd_workspace_manager { + const struct btrfs_compress_op *ops; + spinlock_t lock; + struct list_head lru_list; + struct list_head idle_ws[15]; + unsigned long active_map; + wait_queue_head_t wait; + struct timer_list timer; +}; + +struct workspace___2 { + void *mem; + size_t size; + char *buf; + unsigned int level; + unsigned int req_level; + unsigned long last_used; + struct list_head list; + struct list_head lru_list; + zstd_in_buffer in_buf; + zstd_out_buffer out_buf; +}; + +struct chksum_ctx { + u32 key; +}; + +struct chksum_desc_ctx { + u32 crc; +}; + +struct bio_map_data { + bool is_our_pages: 1; + bool is_null_mapped: 1; + struct iov_iter iter; + struct iovec iov[0]; +}; + +struct rnd_state { + __u32 s1; + __u32 s2; + __u32 s3; + __u32 s4; +}; + +union nested_table { + union nested_table __attribute__((btf_type_tag("rcu"))) *table; + struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; +}; + +struct acpi_get_devices_info { + acpi_walk_callback user_function; + void *context; + const char *hid; +}; + +enum E1000_INVM_STRUCTURE_TYPE { + E1000_INVM_UNINITIALIZED_STRUCTURE = 0, + E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1, + E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2, + E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3, + E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4, + E1000_INVM_INVALIDATED_STRUCTURE = 15, +}; + +enum iwl_mac_qos_flags { + MAC_QOS_FLG_UPDATE_EDCA = 1, + MAC_QOS_FLG_TGN = 2, + MAC_QOS_FLG_TXOP_TYPE = 16, +}; + +enum iwl_mac_types { + FW_MAC_TYPE_FIRST = 1, + FW_MAC_TYPE_AUX = 1, + FW_MAC_TYPE_LISTENER = 2, + FW_MAC_TYPE_PIBSS = 3, + FW_MAC_TYPE_IBSS = 4, + FW_MAC_TYPE_BSS_STA = 5, + FW_MAC_TYPE_P2P_DEVICE = 6, + FW_MAC_TYPE_P2P_STA = 7, + FW_MAC_TYPE_GO = 8, + FW_MAC_TYPE_TEST = 9, + FW_MAC_TYPE_MAX = 9, +}; + +enum iwl_mac_beacon_flags { + IWL_MAC_BEACON_CCK = 32, + IWL_MAC_BEACON_ANT_A = 64, + IWL_MAC_BEACON_ANT_B = 128, + IWL_MAC_BEACON_FILS = 256, +}; + +enum iwl_mac_beacon_flags_v1 { + IWL_MAC_BEACON_CCK_V1 = 256, + IWL_MAC_BEACON_ANT_A_V1 = 512, + IWL_MAC_BEACON_ANT_B_V1 = 1024, + IWL_MAC_BEACON_FILS_V1 = 4096, +}; + +enum iwl_rx_phy_flags { + RX_RES_PHY_FLAGS_BAND_24 = 1, + RX_RES_PHY_FLAGS_MOD_CCK = 2, + RX_RES_PHY_FLAGS_SHORT_PREAMBLE = 4, + RX_RES_PHY_FLAGS_NARROW_BAND = 8, + RX_RES_PHY_FLAGS_ANTENNA = 112, + RX_RES_PHY_FLAGS_ANTENNA_POS = 4, + RX_RES_PHY_FLAGS_AGG = 128, + RX_RES_PHY_FLAGS_OFDM_HT = 256, + RX_RES_PHY_FLAGS_OFDM_GF = 512, + RX_RES_PHY_FLAGS_OFDM_VHT = 1024, +}; + +enum iwl_mac_filter_flags { + MAC_FILTER_IN_PROMISC = 1, + MAC_FILTER_IN_CONTROL_AND_MGMT = 2, + MAC_FILTER_ACCEPT_GRP = 4, + MAC_FILTER_DIS_DECRYPT = 8, + MAC_FILTER_DIS_GRP_DECRYPT = 16, + MAC_FILTER_IN_BEACON = 64, + MAC_FILTER_OUT_BCAST = 256, + MAC_FILTER_IN_CRC32 = 2048, + MAC_FILTER_IN_PROBE_REQUEST = 4096, + MAC_FILTER_IN_11AX = 16384, +}; + +enum iwl_mac_protection_flags { + MAC_PROT_FLG_TGG_PROTECT = 8, + MAC_PROT_FLG_HT_PROT = 8388608, + MAC_PROT_FLG_FAT_PROT = 16777216, + MAC_PROT_FLG_SELF_CTS_EN = 1073741824, +}; + +struct iwl_mac_beacon_cmd_v6 { + struct iwl_tx_cmd tx; + __le32 template_id; + __le32 tim_idx; + __le32 tim_size; + struct ieee80211_hdr frame[0]; +}; + +struct iwl_mac_beacon_cmd_v7 { + struct iwl_tx_cmd tx; + __le32 template_id; + __le32 tim_idx; + __le32 tim_size; + __le32 ecsa_offset; + __le32 csa_offset; + struct ieee80211_hdr frame[0]; +}; + +struct iwl_mac_beacon_cmd { + __le16 byte_cnt; + __le16 flags; + __le32 short_ssid; + __le32 reserved; + __le32 link_id; + __le32 tim_idx; + __le32 tim_size; + __le32 ecsa_offset; + __le32 csa_offset; + struct ieee80211_hdr frame[0]; +}; + +struct iwl_mac_data_ap { + __le32 beacon_time; + __le64 beacon_tsf; + __le32 bi; + __le32 reserved1; + __le32 dtim_interval; + __le32 reserved2; + __le32 mcast_qid; + __le32 beacon_template; +} __attribute__((packed)); + +struct iwl_mac_data_go { + struct iwl_mac_data_ap ap; + __le32 ctwin; + __le32 opp_ps_enabled; +}; + +struct iwl_mac_data_sta { + __le32 is_assoc; + __le32 dtim_time; + __le64 dtim_tsf; + __le32 bi; + __le32 reserved1; + __le32 dtim_interval; + __le32 data_policy; + __le32 listen_interval; + __le32 assoc_id; + __le32 assoc_beacon_arrive_time; +} __attribute__((packed)); + +struct iwl_mac_data_p2p_sta { + struct iwl_mac_data_sta sta; + __le32 ctwin; +}; + +struct iwl_mac_data_p2p_dev { + __le32 is_disc_extended; +}; + +struct iwl_mac_data_pibss { + __le32 stats_interval; +}; + +struct iwl_mac_data_ibss { + __le32 beacon_time; + __le64 beacon_tsf; + __le32 bi; + __le32 reserved; + __le32 beacon_template; +} __attribute__((packed)); + +struct iwl_ac_qos___2 { + __le16 cw_min; + __le16 cw_max; + u8 aifsn; + u8 fifos_mask; + __le16 edca_txop; +}; + +struct iwl_mac_ctx_cmd { + __le32 id_and_color; + __le32 action; + __le32 mac_type; + __le32 tsf_id; + u8 node_addr[6]; + __le16 reserved_for_node_addr; + u8 bssid_addr[6]; + __le16 reserved_for_bssid_addr; + __le32 cck_rates; + __le32 ofdm_rates; + __le32 protection_flags; + __le32 cck_short_preamble; + __le32 short_slot; + __le32 filter_flags; + __le32 qos_flags; + struct iwl_ac_qos___2 ac[5]; + union { + struct iwl_mac_data_ap ap; + struct iwl_mac_data_go go; + struct iwl_mac_data_sta sta; + struct iwl_mac_data_p2p_sta p2p_sta; + struct iwl_mac_data_p2p_dev p2p_dev; + struct iwl_mac_data_pibss pibss; + struct iwl_mac_data_ibss ibss; + }; +}; + +struct iwl_mvm_go_iterator_data { + bool go_active; +}; + +struct iwl_mvm_mac_iface_iterator_data { + struct iwl_mvm *mvm; + struct ieee80211_vif *vif; + unsigned long available_mac_ids[1]; + unsigned long available_tsf_ids[1]; + enum iwl_tsf_id preferred_tsf; + bool found_vif; +}; + +struct iwl_extended_beacon_notif { + __le32 status; + __le64 tsf; + __le32 ibss_mgr_status; + __le32 gp2; +} __attribute__((packed)); + +struct iwl_extended_beacon_notif_v5 { + struct iwl_mvm_tx_resp beacon_notify_hdr; + __le64 tsf; + __le32 ibss_mgr_status; + __le32 gp2; +} __attribute__((packed)); + +struct iwl_missed_beacons_notif { + __le32 link_id; + __le32 consec_missed_beacons_since_last_rx; + __le32 consec_missed_beacons; + __le32 num_expected_beacons; + __le32 num_recvd_beacons; +}; + +struct iwl_fw_dbg_trigger_missed_bcon { + __le32 stop_consec_missed_bcon; + __le32 stop_consec_missed_bcon_since_rx; + __le32 reserved2[2]; + __le32 start_consec_missed_bcon; + __le32 start_consec_missed_bcon_since_rx; + __le32 reserved1[2]; +}; + +struct iwl_stored_beacon_notif_common { + __le32 system_time; + __le64 tsf; + __le32 beacon_timestamp; + __le16 band; + __le16 channel; + __le32 rates; + __le32 byte_count; +} __attribute__((packed)); + +struct iwl_stored_beacon_notif_v2 { + struct iwl_stored_beacon_notif_common common; + u8 data[600]; +}; + +struct iwl_stored_beacon_notif_v3 { + struct iwl_stored_beacon_notif_common common; + u8 sta_id; + u8 reserved[3]; + u8 data[600]; +}; + +struct iwl_channel_switch_start_notif_v1 { + __le32 id_and_color; +}; + +struct iwl_channel_switch_start_notif { + __le32 link_id; +}; + +struct iwl_channel_switch_error_notif { + __le32 link_id; + __le32 csa_err_mask; +}; + +struct iwl_missed_vap_notif { + __le32 mac_id; + u8 num_beacon_intervals_elapsed; + u8 profile_periodicity; + u8 reserved[2]; +}; + +struct iwl_mvm_mac_ap_iterator_data { + struct iwl_mvm *mvm; + struct ieee80211_vif *vif; + u32 beacon_device_ts; + u16 beacon_int; +}; + +struct usb_class_driver { + char *name; + char * (*devnode)(const struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; +}; + +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); + +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); + +struct dbc_request; + +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); + +struct xhci_dbc; + +struct dbc_request { + void *buf; + unsigned int length; + dma_addr_t dma; + void (*complete)(struct xhci_dbc *, struct dbc_request *); + struct list_head list_pool; + int status; + unsigned int actual; + struct xhci_dbc *dbc; + struct list_head list_pending; + dma_addr_t trb_dma; + union xhci_trb *trb; + unsigned int direction: 1; +}; + +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_STALLED = 5, + DS_MAX = 6, +}; + +struct dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; +}; + +struct dbc_regs; + +struct dbc_str_descs; + +struct dbc_driver; + +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 bInterfaceProtocol; + enum dbc_state state; + struct delayed_work event_work; + unsigned int poll_interval; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; +}; + +struct dbc_regs { + __le32 capability; + __le32 doorbell; + __le32 ersts; + __le32 __reserved_0; + __le64 erstba; + __le64 erdp; + __le32 control; + __le32 status; + __le32 portsc; + __le32 __reserved_1; + __le64 dccp; + __le32 devinfo1; + __le32 devinfo2; +}; + +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; +}; + +struct dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); +}; + +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); + +struct trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + u32 __data_loc_ctx_data; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_free_virt_dev { + struct trace_entry ent; + void *vdev; + unsigned long long out_ctx; + unsigned long long in_ctx; + int hcd_portnum; + int hw_portnum; + u16 current_mel; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_virt_dev { + struct trace_entry ent; + void *vdev; + unsigned long long out_ctx; + unsigned long long in_ctx; + int devnum; + int state; + int speed; + u8 portnum; + u8 level; + int slot_id; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_urb { + struct trace_entry ent; + void *urb; + unsigned int pipe; + unsigned int stream; + int status; + unsigned int flags; + int num_mapped_sgs; + int num_sgs; + int length; + int actual; + int epnum; + int dir_in; + int type; + int slot_id; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ep_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u64 deq; + u32 tx_info; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + dma_addr_t enq_seg; + dma_addr_t deq_seg; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int bounce_buf_len; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 busnum; + u32 portnum; + u32 portsc; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + char __data[0]; +}; + +struct trace_event_raw_xhci_dbc_log_request { + struct trace_entry ent; + struct dbc_request *req; + bool dir; + unsigned int actual; + unsigned int length; + int status; + char __data[0]; +}; + +struct trace_event_data_offsets_xhci_log_msg { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; + const void *ctx_data_ptr_; +}; + +struct trace_event_data_offsets_xhci_log_trb {}; + +struct trace_event_data_offsets_xhci_log_free_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_urb {}; + +struct trace_event_data_offsets_xhci_log_ep_ctx {}; + +struct trace_event_data_offsets_xhci_log_slot_ctx {}; + +struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; + +struct trace_event_data_offsets_xhci_log_ring {}; + +struct trace_event_data_offsets_xhci_log_portsc {}; + +struct trace_event_data_offsets_xhci_log_doorbell {}; + +struct trace_event_data_offsets_xhci_dbc_log_request {}; + +struct page_frag_1k { + void *va; + u16 offset; + bool pfmemalloc; +}; + +struct napi_alloc_cache { + struct page_frag_cache page; + struct page_frag_1k page_small; + unsigned int skb_count; + void *skb_cache[64]; +}; + +enum { + SCM_TSTAMP_SND = 0, + SCM_TSTAMP_SCHED = 1, + SCM_TSTAMP_ACK = 2, +}; + +struct skb_seq_state { + __u32 lower_offset; + __u32 upper_offset; + __u32 frag_idx; + __u32 stepped_offset; + struct sk_buff *root_skb; + struct sk_buff *cur_skb; + __u8 *frag_data; + __u32 frag_off; +}; + +struct ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; + __be16 reserved; + __be32 spi; + __be32 seq_no; + __u8 auth_data[0]; +}; + +struct mpls_shim_hdr { + __be32 label_stack_entry; +}; + +struct skb_free_array { + unsigned int skb_count; + void *skb_array[16]; +}; + +typedef int (*sendmsg_func)(struct sock *, struct msghdr *); + +struct ts_ops; + +struct ts_state; + +struct ts_config { + struct ts_ops *ops; + int flags; + unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *); + void (*finish)(struct ts_config *, struct ts_state *); +}; + +struct ts_ops { + const char *name; + struct ts_config * (*init)(const void *, unsigned int, gfp_t, int); + unsigned int (*find)(struct ts_config *, struct ts_state *); + void (*destroy)(struct ts_config *); + void * (*get_pattern)(struct ts_config *); + unsigned int (*get_pattern_len)(struct ts_config *); + struct module *owner; + struct list_head list; +}; + +struct ts_state { + unsigned int offset; + char cb[48]; +}; + +struct nft_bitmap_elem { + struct nft_elem_priv priv; + struct list_head head; + struct nft_set_ext ext; +}; + +struct nft_bitmap { + struct list_head list; + u16 bitmap_size; + u8 bitmap[0]; +}; + +typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); + +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); + +typedef void (*btf_trace_local_timer_entry)(void *, int); + +typedef void (*btf_trace_local_timer_exit)(void *, int); + +typedef void (*btf_trace_spurious_apic_entry)(void *, int); + +typedef void (*btf_trace_spurious_apic_exit)(void *, int); + +typedef void (*btf_trace_error_apic_entry)(void *, int); + +typedef void (*btf_trace_error_apic_exit)(void *, int); + +typedef void (*btf_trace_x86_platform_ipi_entry)(void *, int); + +typedef void (*btf_trace_x86_platform_ipi_exit)(void *, int); + +typedef void (*btf_trace_irq_work_entry)(void *, int); + +typedef void (*btf_trace_irq_work_exit)(void *, int); + +typedef void (*btf_trace_reschedule_entry)(void *, int); + +typedef void (*btf_trace_reschedule_exit)(void *, int); + +typedef void (*btf_trace_call_function_entry)(void *, int); + +typedef void (*btf_trace_call_function_exit)(void *, int); + +typedef void (*btf_trace_call_function_single_entry)(void *, int); + +typedef void (*btf_trace_call_function_single_exit)(void *, int); + +typedef void (*btf_trace_thermal_apic_entry)(void *, int); + +typedef void (*btf_trace_thermal_apic_exit)(void *, int); + +typedef void (*btf_trace_vector_config)(void *, unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_vector_update)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_vector_clear)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_vector_reserve_managed)(void *, unsigned int, int); + +typedef void (*btf_trace_vector_reserve)(void *, unsigned int, int); + +typedef void (*btf_trace_vector_alloc)(void *, unsigned int, unsigned int, bool, int); + +typedef void (*btf_trace_vector_alloc_managed)(void *, unsigned int, unsigned int, int); + +typedef void (*btf_trace_vector_activate)(void *, unsigned int, bool, bool, bool); + +typedef void (*btf_trace_vector_deactivate)(void *, unsigned int, bool, bool, bool); + +typedef void (*btf_trace_vector_teardown)(void *, unsigned int, bool, bool); + +typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int); + +typedef void (*btf_trace_vector_free_moved)(void *, unsigned int, unsigned int, unsigned int, bool); + +typedef struct { + unsigned int __nmi_count; + unsigned int apic_timer_irqs; + unsigned int irq_spurious_count; + unsigned int icr_read_retry_count; + unsigned int x86_platform_ipis; + unsigned int apic_perf_irqs; + unsigned int apic_irq_work_irqs; + unsigned int irq_resched_count; + unsigned int irq_call_count; + unsigned int irq_tlb_count; + unsigned int irq_thermal_count; + long: 64; + long: 64; +} irq_cpustat_t; + +struct trace_event_raw_x86_irq_vector { + struct trace_entry ent; + int vector; + char __data[0]; +}; + +struct trace_event_raw_vector_config { + struct trace_entry ent; + unsigned int irq; + unsigned int vector; + unsigned int cpu; + unsigned int apicdest; + char __data[0]; +}; + +struct trace_event_raw_vector_mod { + struct trace_entry ent; + unsigned int irq; + unsigned int vector; + unsigned int cpu; + unsigned int prev_vector; + unsigned int prev_cpu; + char __data[0]; +}; + +struct trace_event_raw_vector_reserve { + struct trace_entry ent; + unsigned int irq; + int ret; + char __data[0]; +}; + +struct trace_event_raw_vector_alloc { + struct trace_entry ent; + unsigned int irq; + unsigned int vector; + bool reserved; + int ret; + char __data[0]; +}; + +struct trace_event_raw_vector_alloc_managed { + struct trace_entry ent; + unsigned int irq; + unsigned int vector; + int ret; + char __data[0]; +}; + +struct trace_event_raw_vector_activate { + struct trace_entry ent; + unsigned int irq; + bool is_managed; + bool can_reserve; + bool reserve; + char __data[0]; +}; + +struct trace_event_raw_vector_teardown { + struct trace_entry ent; + unsigned int irq; + bool is_managed; + bool has_reserved; + char __data[0]; +}; + +struct trace_event_raw_vector_setup { + struct trace_entry ent; + unsigned int irq; + bool is_legacy; + int ret; + char __data[0]; +}; + +struct trace_event_raw_vector_free_moved { + struct trace_entry ent; + unsigned int irq; + unsigned int cpu; + unsigned int vector; + bool is_managed; + char __data[0]; +}; + +struct trace_event_data_offsets_x86_irq_vector {}; + +struct trace_event_data_offsets_vector_config {}; + +struct trace_event_data_offsets_vector_mod {}; + +struct trace_event_data_offsets_vector_reserve {}; + +struct trace_event_data_offsets_vector_alloc {}; + +struct trace_event_data_offsets_vector_alloc_managed {}; + +struct trace_event_data_offsets_vector_activate {}; + +struct trace_event_data_offsets_vector_teardown {}; + +struct trace_event_data_offsets_vector_setup {}; + +struct trace_event_data_offsets_vector_free_moved {}; + +struct tk_read_base { + struct clocksource *clock; + u64 mask; + u64 cycle_last; + u32 mult; + u32 shift; + u64 xtime_nsec; + ktime_t base; + u64 base_real; +}; + +struct tk_fast { + seqcount_latch_t seq; + struct tk_read_base base[2]; +}; + +struct timekeeper { + struct tk_read_base tkr_mono; + struct tk_read_base tkr_raw; + u64 xtime_sec; + unsigned long ktime_sec; + struct timespec64 wall_to_monotonic; + ktime_t offs_real; + ktime_t offs_boot; + ktime_t offs_tai; + s32 tai_offset; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; + ktime_t next_leap_ktime; + u64 raw_sec; + struct timespec64 monotonic_to_boot; + u64 cycle_interval; + u64 xtime_interval; + s64 xtime_remainder; + u64 raw_interval; + u64 ntp_tick; + s64 ntp_error; + u32 ntp_error_shift; + u32 ntp_err_mult; + u32 skip_second_overflow; +}; + +enum timekeeping_adv_mode { + TK_ADV_TICK = 0, + TK_ADV_FREQ = 1, +}; + +struct audit_ntp_data {}; + +struct ktime_timestamps { + u64 mono; + u64 boot; + u64 real; +}; + +struct boot_triggers { + const char *event; + char *trigger; +}; + +enum { + TRACE_PIDS = 1, + TRACE_NO_PIDS = 2, +}; + +enum { + FORMAT_HEADER = 1, + FORMAT_FIELD_SEPERATOR = 2, + FORMAT_PRINTFMT = 3, +}; + +struct module_string { + struct list_head next; + struct module *module; + char *str; +}; + +struct event_probe_data { + struct trace_event_file *file; + unsigned long count; + int ref; + bool enable; +}; + +typedef void (*btf_trace_percpu_alloc_percpu)(void *, unsigned long, bool, bool, size_t, size_t, void *, int, void __attribute__((btf_type_tag("percpu"))) *, size_t, gfp_t); + +typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); + +typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); + +typedef void (*btf_trace_percpu_create_chunk)(void *, void *); + +typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); + +struct pcpu_block_md { + int scan_hint; + int scan_hint_start; + int contig_hint; + int contig_hint_start; + int left_free; + int right_free; + int first_free; + int nr_bits; +}; + +struct pcpu_chunk { + struct list_head list; + int free_bytes; + struct pcpu_block_md chunk_md; + unsigned long *bound_map; + void *base_addr; + unsigned long *alloc_map; + struct pcpu_block_md *md_blocks; + void *data; + bool immutable; + bool isolated; + int start_offset; + int end_offset; + struct obj_cgroup **obj_cgroups; + int nr_pages; + int nr_populated; + int nr_empty_pop_pages; + unsigned long populated[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct trace_event_raw_percpu_alloc_percpu { + struct trace_entry ent; + unsigned long call_site; + bool reserved; + bool is_atomic; + size_t size; + size_t align; + void *base_addr; + int off; + void __attribute__((btf_type_tag("percpu"))) *ptr; + size_t bytes_alloc; + unsigned long gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_percpu_free_percpu { + struct trace_entry ent; + void *base_addr; + int off; + void __attribute__((btf_type_tag("percpu"))) *ptr; + char __data[0]; +}; + +struct trace_event_raw_percpu_alloc_percpu_fail { + struct trace_entry ent; + bool reserved; + bool is_atomic; + size_t size; + size_t align; + char __data[0]; +}; + +struct trace_event_raw_percpu_create_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; +}; + +struct trace_event_raw_percpu_destroy_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; +}; + +struct pcpu_group_info { + int nr_units; + unsigned long base_offset; + unsigned int *cpu_map; +}; + +struct pcpu_alloc_info { + size_t static_size; + size_t reserved_size; + size_t dyn_size; + size_t unit_size; + size_t atom_size; + size_t alloc_size; + size_t __ai_size; + int nr_groups; + struct pcpu_group_info groups[0]; +}; + +struct trace_event_data_offsets_percpu_alloc_percpu {}; + +struct trace_event_data_offsets_percpu_free_percpu {}; + +struct trace_event_data_offsets_percpu_alloc_percpu_fail {}; + +struct trace_event_data_offsets_percpu_create_chunk {}; + +struct trace_event_data_offsets_percpu_destroy_chunk {}; + +enum legacy_fs_param { + LEGACY_FS_UNSET_PARAMS = 0, + LEGACY_FS_MONOLITHIC_PARAMS = 1, + LEGACY_FS_INDIVIDUAL_PARAMS = 2, +}; + +struct legacy_fs_context { + char *legacy_data; + size_t data_size; + enum legacy_fs_param param_type; +}; + +typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); + +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); + +typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); + +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); + +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); + +typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); + +typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); + +typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); + +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); + +typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); + +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); + +typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int); + +typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); + +typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); + +typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); + +typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); + +typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); + +typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); + +typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); + +typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); + +typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); + +typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); + +typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); + +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); + +typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); + +typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); + +typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); + +typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); + +typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); + +typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); + +typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); + +typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); + +typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); + +typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); + +typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); + +typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); + +typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); + +typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); + +typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); + +typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); + +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); + +typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); + +typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); + +typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); + +typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); + +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); + +typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); + +typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); + +typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); + +typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); + +typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); + +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); + +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); + +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); + +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); + +typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); + +typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); + +typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); + +typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); + +typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); + +typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); + +typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); + +struct ext4_lazy_init { + unsigned long li_state; + struct list_head li_request_list; + struct mutex li_list_mtx; +}; + +struct ext4_err_translation { + int code; + int errno; +}; + +struct mount_opts { + int token; + int mount_opt; + int flags; +}; + +enum { + Opt_bsd_df = 0, + Opt_minix_df = 1, + Opt_grpid = 2, + Opt_nogrpid = 3, + Opt_resgid = 4, + Opt_resuid = 5, + Opt_sb___2 = 6, + Opt_nouid32 = 7, + Opt_debug = 8, + Opt_removed = 9, + Opt_user_xattr = 10, + Opt_acl___2 = 11, + Opt_auto_da_alloc = 12, + Opt_noauto_da_alloc = 13, + Opt_noload = 14, + Opt_commit = 15, + Opt_min_batch_time = 16, + Opt_max_batch_time = 17, + Opt_journal_dev = 18, + Opt_journal_path = 19, + Opt_journal_checksum = 20, + Opt_journal_async_commit = 21, + Opt_abort = 22, + Opt_data_journal = 23, + Opt_data_ordered = 24, + Opt_data_writeback = 25, + Opt_data_err_abort = 26, + Opt_data_err_ignore = 27, + Opt_test_dummy_encryption = 28, + Opt_inlinecrypt = 29, + Opt_usrjquota = 30, + Opt_grpjquota = 31, + Opt_quota___2 = 32, + Opt_noquota = 33, + Opt_barrier___2 = 34, + Opt_nobarrier = 35, + Opt_err___5 = 36, + Opt_usrquota___2 = 37, + Opt_grpquota___2 = 38, + Opt_prjquota = 39, + Opt_dax = 40, + Opt_dax_always = 41, + Opt_dax_inode = 42, + Opt_dax_never = 43, + Opt_stripe = 44, + Opt_delalloc = 45, + Opt_nodelalloc = 46, + Opt_warn_on_error = 47, + Opt_nowarn_on_error = 48, + Opt_mblk_io_submit = 49, + Opt_debug_want_extra_isize = 50, + Opt_nomblk_io_submit = 51, + Opt_block_validity = 52, + Opt_noblock_validity = 53, + Opt_inode_readahead_blks = 54, + Opt_journal_ioprio = 55, + Opt_dioread_nolock = 56, + Opt_dioread_lock = 57, + Opt_discard___2 = 58, + Opt_nodiscard = 59, + Opt_init_itable = 60, + Opt_noinit_itable = 61, + Opt_max_dir_size_kb = 62, + Opt_nojournal_checksum = 63, + Opt_nombcache = 64, + Opt_no_prefetch_block_bitmaps = 65, + Opt_mb_optimize_scan = 66, + Opt_errors = 67, + Opt_data = 68, + Opt_data_err = 69, + Opt_jqfmt = 70, + Opt_dax_type = 71, +}; + +struct trace_event_raw_ext4_other_inode_update_time { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t orig_ino; + uid_t uid; + gid_t gid; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_free_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + uid_t uid; + gid_t gid; + __u64 blocks; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_request_inode { + struct trace_entry ent; + dev_t dev; + ino_t dir; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_allocate_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t dir; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_evict_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int nlink; + char __data[0]; +}; + +struct trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + char __data[0]; +}; + +struct trace_event_raw_ext4_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +struct trace_event_raw_ext4_mark_inode_dirty { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long ip; + char __data[0]; +}; + +struct trace_event_raw_ext4_begin_ordered_truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t new_size; + char __data[0]; +}; + +struct trace_event_raw_ext4__write_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t pos; + unsigned int len; + char __data[0]; +}; + +struct trace_event_raw_ext4__write_end { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t pos; + unsigned int len; + unsigned int copied; + char __data[0]; +}; + +struct trace_event_raw_ext4_writepages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long nr_to_write; + long pages_skipped; + loff_t range_start; + loff_t range_end; + unsigned long writeback_index; + int sync_mode; + char for_kupdate; + char range_cyclic; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_write_pages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long first_page; + long nr_to_write; + int sync_mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_write_pages_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 lblk; + __u32 len; + __u32 flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_writepages_result { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + int pages_written; + long pages_skipped; + unsigned long writeback_index; + int sync_mode; + char __data[0]; +}; + +struct trace_event_raw_ext4__folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long index; + char __data[0]; +}; + +struct trace_event_raw_ext4_invalidate_folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long index; + size_t offset; + size_t length; + char __data[0]; +}; + +struct trace_event_raw_ext4_discard_blocks { + struct trace_entry ent; + dev_t dev; + __u64 blk; + __u64 count; + char __data[0]; +}; + +struct trace_event_raw_ext4__mb_new_pa { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 pa_pstart; + __u64 pa_lstart; + __u32 pa_len; + char __data[0]; +}; + +struct trace_event_raw_ext4_mb_release_inode_pa { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + __u32 count; + char __data[0]; +}; + +struct trace_event_raw_ext4_mb_release_group_pa { + struct trace_entry ent; + dev_t dev; + __u64 pa_pstart; + __u32 pa_len; + char __data[0]; +}; + +struct trace_event_raw_ext4_discard_preallocations { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int len; + char __data[0]; +}; + +struct trace_event_raw_ext4_mb_discard_preallocations { + struct trace_entry ent; + dev_t dev; + int needed; + char __data[0]; +}; + +struct trace_event_raw_ext4_request_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int len; + __u32 logical; + __u32 lleft; + __u32 lright; + __u64 goal; + __u64 pleft; + __u64 pright; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_allocate_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + unsigned int len; + __u32 logical; + __u32 lleft; + __u32 lright; + __u64 goal; + __u64 pleft; + __u64 pright; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_free_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + unsigned long count; + int flags; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_sync_file_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t parent; + int datasync; + char __data[0]; +}; + +struct trace_event_raw_ext4_sync_file_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_sync_fs { + struct trace_entry ent; + dev_t dev; + int wait; + char __data[0]; +}; + +struct trace_event_raw_ext4_alloc_da_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int data_blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4_mballoc_alloc { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u32 orig_logical; + int orig_start; + __u32 orig_group; + int orig_len; + __u32 goal_logical; + int goal_start; + __u32 goal_group; + int goal_len; + __u32 result_logical; + int result_start; + __u32 result_group; + int result_len; + __u16 found; + __u16 groups; + __u16 buddy; + __u16 flags; + __u16 tail; + __u8 cr; + char __data[0]; +}; + +struct trace_event_raw_ext4_mballoc_prealloc { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u32 orig_logical; + int orig_start; + __u32 orig_group; + int orig_len; + __u32 result_logical; + int result_start; + __u32 result_group; + int result_len; + char __data[0]; +}; + +struct trace_event_raw_ext4__mballoc { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int result_start; + __u32 result_group; + int result_len; + char __data[0]; +}; + +struct trace_event_raw_ext4_forget { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + int is_metadata; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_update_reserve_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int used_blocks; + int reserved_data_blocks; + int quota_claim; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_reserve_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int reserved_data_blocks; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_release_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int freed_blocks; + int reserved_data_blocks; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; +}; + +struct trace_event_raw_ext4_read_block_bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + bool prefetch; + char __data[0]; +}; + +struct trace_event_raw_ext4__fallocate_mode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t offset; + loff_t len; + int mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_fallocate_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t pos; + unsigned int blocks; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_unlink_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t parent; + loff_t size; + char __data[0]; +}; + +struct trace_event_raw_ext4_unlink_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_convert_to_initialized_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t m_lblk; + unsigned int m_len; + ext4_lblk_t u_lblk; + unsigned int u_len; + ext4_fsblk_t u_pblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_convert_to_initialized_fastpath { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t m_lblk; + unsigned int m_len; + ext4_lblk_t u_lblk; + unsigned int u_len; + ext4_fsblk_t u_pblk; + ext4_lblk_t i_lblk; + unsigned int i_len; + ext4_fsblk_t i_pblk; + char __data[0]; +}; + +struct trace_event_raw_ext4__map_blocks_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + unsigned int len; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4__map_blocks_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int flags; + ext4_fsblk_t pblk; + ext4_lblk_t lblk; + unsigned int len; + unsigned int mflags; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_load_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_fsblk_t pblk; + ext4_lblk_t lblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_load_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_sb { + struct trace_entry ent; + dev_t dev; + unsigned long ip; + int blocks; + int rsv_blocks; + int revoke_creds; + int type; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_inode { + struct trace_entry ent; + unsigned long ino; + dev_t dev; + unsigned long ip; + int blocks; + int rsv_blocks; + int revoke_creds; + int type; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_reserved { + struct trace_entry ent; + dev_t dev; + unsigned long ip; + int blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4__trim { + struct trace_entry ent; + int dev_major; + int dev_minor; + __u32 group; + int start; + int len; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_handle_unwritten_extents { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int flags; + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + unsigned int len; + unsigned int allocated; + ext4_fsblk_t newblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_get_implied_cluster_alloc_exit { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + unsigned int len; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_show_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_fsblk_t pblk; + ext4_lblk_t lblk; + unsigned short len; + char __data[0]; +}; + +struct trace_event_raw_ext4_remove_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t from; + ext4_lblk_t to; + ext4_fsblk_t ee_pblk; + ext4_lblk_t ee_lblk; + unsigned short ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_rm_leaf { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t start; + ext4_lblk_t ee_lblk; + ext4_fsblk_t ee_pblk; + short ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_rm_idx { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_fsblk_t pblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_remove_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t start; + ext4_lblk_t end; + int depth; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_remove_space_done { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t start; + ext4_lblk_t end; + int depth; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + unsigned short eh_entries; + char __data[0]; +}; + +struct trace_event_raw_ext4__es_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_remove_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t lblk; + loff_t len; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_find_extent_range_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_find_extent_range_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_lookup_extent_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_lookup_extent_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + int found; + char __data[0]; +}; + +struct trace_event_raw_ext4__es_shrink_enter { + struct trace_entry ent; + dev_t dev; + int nr_to_scan; + int cache_cnt; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_shrink_scan_exit { + struct trace_entry ent; + dev_t dev; + int nr_shrunk; + int cache_cnt; + char __data[0]; +}; + +struct trace_event_raw_ext4_collapse_range { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t offset; + loff_t len; + char __data[0]; +}; + +struct trace_event_raw_ext4_insert_range { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t offset; + loff_t len; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_shrink { + struct trace_entry ent; + dev_t dev; + int nr_shrunk; + unsigned long long scan_time; + int nr_skipped; + int retried; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_insert_delayed_block { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + bool allocated; + char __data[0]; +}; + +struct trace_event_raw_ext4_fsmap_class { + struct trace_entry ent; + dev_t dev; + dev_t keydev; + u32 agno; + u64 bno; + u64 len; + u64 owner; + char __data[0]; +}; + +struct trace_event_raw_ext4_getfsmap_class { + struct trace_entry ent; + dev_t dev; + dev_t keydev; + u64 block; + u64 len; + u64 owner; + u64 flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_shutdown { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_error { + struct trace_entry ent; + dev_t dev; + const char *function; + unsigned int line; + char __data[0]; +}; + +struct trace_event_raw_ext4_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + char __data[0]; +}; + +struct trace_event_raw_ext4_lazy_itable_init { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_replay { + struct trace_entry ent; + dev_t dev; + int tag; + int ino; + int priv1; + int priv2; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_commit_start { + struct trace_entry ent; + dev_t dev; + tid_t tid; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_commit_stop { + struct trace_entry ent; + dev_t dev; + int nblks; + int reason; + int num_fc; + int num_fc_ineligible; + int nblks_agg; + tid_t tid; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_stats { + struct trace_entry ent; + dev_t dev; + unsigned int fc_ineligible_rc[10]; + unsigned long fc_commits; + unsigned long fc_ineligible_commits; + unsigned long fc_numblks; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_dentry { + struct trace_entry ent; + dev_t dev; + tid_t t_tid; + ino_t i_ino; + tid_t i_sync_tid; + int error; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_inode { + struct trace_entry ent; + dev_t dev; + tid_t t_tid; + ino_t i_ino; + tid_t i_sync_tid; + int error; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_range { + struct trace_entry ent; + dev_t dev; + tid_t t_tid; + ino_t i_ino; + tid_t i_sync_tid; + long start; + long end; + int error; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_cleanup { + struct trace_entry ent; + dev_t dev; + int j_fc_off; + int full; + tid_t tid; + char __data[0]; +}; + +struct trace_event_raw_ext4_update_sb { + struct trace_entry ent; + dev_t dev; + ext4_fsblk_t fsblk; + unsigned int flags; + char __data[0]; +}; + +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +}; + +struct ext4_fs_context { + char *s_qf_names[3]; + struct fscrypt_dummy_policy dummy_enc_policy; + int s_jquota_fmt; + unsigned short qname_spec; + unsigned long vals_s_flags; + unsigned long mask_s_flags; + unsigned long journal_devnum; + unsigned long s_commit_interval; + unsigned long s_stripe; + unsigned int s_inode_readahead_blks; + unsigned int s_want_extra_isize; + unsigned int s_li_wait_mult; + unsigned int s_max_dir_size_kb; + unsigned int journal_ioprio; + unsigned int vals_s_mount_opt; + unsigned int mask_s_mount_opt; + unsigned int vals_s_mount_opt2; + unsigned int mask_s_mount_opt2; + unsigned int opt_flags; + unsigned int spec; + u32 s_max_batch_time; + u32 s_min_batch_time; + kuid_t s_resuid; + kgid_t s_resgid; + ext4_fsblk_t s_sb_block; +}; + +struct ext4_mount_options { + unsigned long s_mount_opt; + unsigned long s_mount_opt2; + kuid_t s_resuid; + kgid_t s_resgid; + unsigned long s_commit_interval; + u32 s_min_batch_time; + u32 s_max_batch_time; +}; + +struct trace_event_data_offsets_ext4_other_inode_update_time {}; + +struct trace_event_data_offsets_ext4_free_inode {}; + +struct trace_event_data_offsets_ext4_request_inode {}; + +struct trace_event_data_offsets_ext4_allocate_inode {}; + +struct trace_event_data_offsets_ext4_evict_inode {}; + +struct trace_event_data_offsets_ext4_drop_inode {}; + +struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; + +struct trace_event_data_offsets_ext4_mark_inode_dirty {}; + +struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; + +struct trace_event_data_offsets_ext4__write_begin {}; + +struct trace_event_data_offsets_ext4__write_end {}; + +struct trace_event_data_offsets_ext4_writepages {}; + +struct trace_event_data_offsets_ext4_da_write_pages {}; + +struct trace_event_data_offsets_ext4_da_write_pages_extent {}; + +struct trace_event_data_offsets_ext4_writepages_result {}; + +struct trace_event_data_offsets_ext4__folio_op {}; + +struct trace_event_data_offsets_ext4_invalidate_folio_op {}; + +struct trace_event_data_offsets_ext4_discard_blocks {}; + +struct trace_event_data_offsets_ext4__mb_new_pa {}; + +struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; + +struct trace_event_data_offsets_ext4_mb_release_group_pa {}; + +struct trace_event_data_offsets_ext4_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_request_blocks {}; + +struct trace_event_data_offsets_ext4_allocate_blocks {}; + +struct trace_event_data_offsets_ext4_free_blocks {}; + +struct trace_event_data_offsets_ext4_sync_file_enter {}; + +struct trace_event_data_offsets_ext4_sync_file_exit {}; + +struct trace_event_data_offsets_ext4_sync_fs {}; + +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; + +struct trace_event_data_offsets_ext4_mballoc_alloc {}; + +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; + +struct trace_event_data_offsets_ext4__mballoc {}; + +struct trace_event_data_offsets_ext4_forget {}; + +struct trace_event_data_offsets_ext4_da_update_reserve_space {}; + +struct trace_event_data_offsets_ext4_da_reserve_space {}; + +struct trace_event_data_offsets_ext4_da_release_space {}; + +struct trace_event_data_offsets_ext4__bitmap_load {}; + +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; + +struct trace_event_data_offsets_ext4__fallocate_mode {}; + +struct trace_event_data_offsets_ext4_fallocate_exit {}; + +struct trace_event_data_offsets_ext4_unlink_enter {}; + +struct trace_event_data_offsets_ext4_unlink_exit {}; + +struct trace_event_data_offsets_ext4__truncate {}; + +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; + +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; + +struct trace_event_data_offsets_ext4__map_blocks_enter {}; + +struct trace_event_data_offsets_ext4__map_blocks_exit {}; + +struct trace_event_data_offsets_ext4_ext_load_extent {}; + +struct trace_event_data_offsets_ext4_load_inode {}; + +struct trace_event_data_offsets_ext4_journal_start_sb {}; + +struct trace_event_data_offsets_ext4_journal_start_inode {}; + +struct trace_event_data_offsets_ext4_journal_start_reserved {}; + +struct trace_event_data_offsets_ext4__trim {}; + +struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; + +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; + +struct trace_event_data_offsets_ext4_ext_show_extent {}; + +struct trace_event_data_offsets_ext4_remove_blocks {}; + +struct trace_event_data_offsets_ext4_ext_rm_leaf {}; + +struct trace_event_data_offsets_ext4_ext_rm_idx {}; + +struct trace_event_data_offsets_ext4_ext_remove_space {}; + +struct trace_event_data_offsets_ext4_ext_remove_space_done {}; + +struct trace_event_data_offsets_ext4__es_extent {}; + +struct trace_event_data_offsets_ext4_es_remove_extent {}; + +struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; + +struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; + +struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; + +struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; + +struct trace_event_data_offsets_ext4__es_shrink_enter {}; + +struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; + +struct trace_event_data_offsets_ext4_collapse_range {}; + +struct trace_event_data_offsets_ext4_insert_range {}; + +struct trace_event_data_offsets_ext4_es_shrink {}; + +struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; + +struct trace_event_data_offsets_ext4_fsmap_class {}; + +struct trace_event_data_offsets_ext4_getfsmap_class {}; + +struct trace_event_data_offsets_ext4_shutdown {}; + +struct trace_event_data_offsets_ext4_error {}; + +struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; + +struct trace_event_data_offsets_ext4_lazy_itable_init {}; + +struct trace_event_data_offsets_ext4_fc_replay_scan {}; + +struct trace_event_data_offsets_ext4_fc_replay {}; + +struct trace_event_data_offsets_ext4_fc_commit_start {}; + +struct trace_event_data_offsets_ext4_fc_commit_stop {}; + +struct trace_event_data_offsets_ext4_fc_stats {}; + +struct trace_event_data_offsets_ext4_fc_track_dentry {}; + +struct trace_event_data_offsets_ext4_fc_track_inode {}; + +struct trace_event_data_offsets_ext4_fc_track_range {}; + +struct trace_event_data_offsets_ext4_fc_cleanup {}; + +struct trace_event_data_offsets_ext4_update_sb {}; + +struct genradix_node { + union { + struct genradix_node *children[64]; + u8 data[512]; + }; +}; + +struct genradix_iter { + size_t offset; + size_t pos; +}; + +struct region { + unsigned int start; + unsigned int off; + unsigned int group_len; + unsigned int end; + unsigned int nbits; +}; + +struct pci_devres { + unsigned int enabled: 1; + unsigned int pinned: 1; + unsigned int orig_intx: 1; + unsigned int restore_intx: 1; + unsigned int mwi: 1; + u32 region_mask; +}; + +struct pcim_iomap_devres { + void *table[6]; +}; + +struct acpi_probe_entry; + +typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *); + +struct acpi_probe_entry { + __u8 id[5]; + __u8 type; + acpi_probe_entry_validate_subtbl subtable_valid; + union { + acpi_tbl_table_handler probe_table; + acpi_tbl_entry_handler probe_subtbl; + }; + kernel_ulong_t driver_data; +}; + +enum acpi_madt_type { + ACPI_MADT_TYPE_LOCAL_APIC = 0, + ACPI_MADT_TYPE_IO_APIC = 1, + ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, + ACPI_MADT_TYPE_NMI_SOURCE = 3, + ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, + ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, + ACPI_MADT_TYPE_IO_SAPIC = 6, + ACPI_MADT_TYPE_LOCAL_SAPIC = 7, + ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, + ACPI_MADT_TYPE_LOCAL_X2APIC = 9, + ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, + ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, + ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, + ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_CORE_PIC = 17, + ACPI_MADT_TYPE_LIO_PIC = 18, + ACPI_MADT_TYPE_HT_PIC = 19, + ACPI_MADT_TYPE_EIO_PIC = 20, + ACPI_MADT_TYPE_MSI_PIC = 21, + ACPI_MADT_TYPE_BIO_PIC = 22, + ACPI_MADT_TYPE_LPC_PIC = 23, + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_IMSIC = 25, + ACPI_MADT_TYPE_APLIC = 26, + ACPI_MADT_TYPE_PLIC = 27, + ACPI_MADT_TYPE_RESERVED = 28, + ACPI_MADT_TYPE_OEM_RESERVED = 128, +}; + +struct acpi_dep_data { + struct list_head node; + acpi_handle supplier; + acpi_handle consumer; + bool honor_dep; + bool met; + bool free_when_met; +}; + +struct acpi_scan_clear_dep_work { + struct work_struct work; + struct acpi_device *adev; +}; + +struct iommu_ops {}; + +struct acpi_table_stao { + struct acpi_table_header header; + u8 ignore_uart; +} __attribute__((packed)); + +struct acpi_table_spcr { + struct acpi_table_header header; + u8 interface_type; + u8 reserved[3]; + struct acpi_generic_address serial_port; + u8 interrupt_type; + u8 pc_interrupt; + u32 interrupt; + u8 baud_rate; + u8 parity; + u8 stop_bits; + u8 flow_control; + u8 terminal_type; + u8 reserved1; + u16 pci_device_id; + u16 pci_vendor_id; + u8 pci_bus; + u8 pci_device; + u8 pci_function; + u32 pci_flags; + u8 pci_segment; + u32 reserved2; +} __attribute__((packed)); + +enum pce_status { + PCE_STATUS_NONE = 0, + PCE_STATUS_ACQUIRED = 1, + PCE_STATUS_PREPARED = 2, + PCE_STATUS_ENABLED = 3, + PCE_STATUS_ERROR = 4, +}; + +struct pm_clock_entry { + struct list_head node; + char *con_id; + struct clk *clk; + enum pce_status status; + bool enabled_when_prepared; +}; + +struct pm_clk_notifier_block { + struct notifier_block nb; + struct dev_pm_domain *pm_domain; + char *con_ids[0]; +}; + +struct reg { + u32 addr; + bool is64; +}; + +enum ftm_responder_stats_flags { + FTM_RESP_STAT_NON_ASAP_STARTED = 1, + FTM_RESP_STAT_NON_ASAP_IN_WIN = 2, + FTM_RESP_STAT_NON_ASAP_OUT_WIN = 4, + FTM_RESP_STAT_TRIGGER_DUP = 8, + FTM_RESP_STAT_DUP = 16, + FTM_RESP_STAT_DUP_IN_WIN = 32, + FTM_RESP_STAT_DUP_OUT_WIN = 64, + FTM_RESP_STAT_SCHED_SUCCESS = 128, + FTM_RESP_STAT_ASAP_REQ = 256, + FTM_RESP_STAT_NON_ASAP_REQ = 512, + FTM_RESP_STAT_ASAP_RESP = 1024, + FTM_RESP_STAT_NON_ASAP_RESP = 2048, + FTM_RESP_STAT_FAIL_INITIATOR_INACTIVE = 4096, + FTM_RESP_STAT_FAIL_INITIATOR_OUT_WIN = 8192, + FTM_RESP_STAT_FAIL_INITIATOR_RETRY_LIM = 16384, + FTM_RESP_STAT_FAIL_NEXT_SERVED = 32768, + FTM_RESP_STAT_FAIL_TRIGGER_ERR = 65536, + FTM_RESP_STAT_FAIL_GC = 131072, + FTM_RESP_STAT_SUCCESS = 262144, + FTM_RESP_STAT_INTEL_IE = 524288, + FTM_RESP_STAT_INITIATOR_ACTIVE = 1048576, + FTM_RESP_STAT_MEASUREMENTS_AVAILABLE = 2097152, + FTM_RESP_STAT_TRIGGER_UNKNOWN = 4194304, + FTM_RESP_STAT_PROCESS_FAIL = 8388608, + FTM_RESP_STAT_ACK = 16777216, + FTM_RESP_STAT_NACK = 33554432, + FTM_RESP_STAT_INVALID_INITIATOR_ID = 67108864, + FTM_RESP_STAT_TIMER_MIN_DELTA = 134217728, + FTM_RESP_STAT_INITIATOR_REMOVED = 268435456, + FTM_RESP_STAT_INITIATOR_ADDED = 536870912, + FTM_RESP_STAT_ERR_LIST_FULL = 1073741824, + FTM_RESP_STAT_INITIATOR_SCHED_NOW = 2147483648, +}; + +enum iwl_responder_dyn_cfg_valid_flags { + IWL_RESPONDER_DYN_CFG_VALID_LCI = 1, + IWL_RESPONDER_DYN_CFG_VALID_CIVIC = 2, + IWL_RESPONDER_DYN_CFG_VALID_PASN_STA = 4, +}; + +enum iwl_tof_responder_cmd_valid_field { + IWL_TOF_RESPONDER_CMD_VALID_CHAN_INFO = 1, + IWL_TOF_RESPONDER_CMD_VALID_TOA_OFFSET = 2, + IWL_TOF_RESPONDER_CMD_VALID_COMMON_CALIB = 4, + IWL_TOF_RESPONDER_CMD_VALID_SPECIFIC_CALIB = 8, + IWL_TOF_RESPONDER_CMD_VALID_BSSID = 16, + IWL_TOF_RESPONDER_CMD_VALID_TX_ANT = 32, + IWL_TOF_RESPONDER_CMD_VALID_ALGO_TYPE = 64, + IWL_TOF_RESPONDER_CMD_VALID_NON_ASAP_SUPPORT = 128, + IWL_TOF_RESPONDER_CMD_VALID_STATISTICS_REPORT_SUPPORT = 256, + IWL_TOF_RESPONDER_CMD_VALID_MCSI_NOTIF_SUPPORT = 512, + IWL_TOF_RESPONDER_CMD_VALID_FAST_ALGO_SUPPORT = 1024, + IWL_TOF_RESPONDER_CMD_VALID_RETRY_ON_ALGO_FAIL = 2048, + IWL_TOF_RESPONDER_CMD_VALID_STA_ID = 4096, + IWL_TOF_RESPONDER_CMD_VALID_NDP_SUPPORT = 4194304, + IWL_TOF_RESPONDER_CMD_VALID_NDP_PARAMS = 8388608, + IWL_TOF_RESPONDER_CMD_VALID_LMR_FEEDBACK = 16777216, + IWL_TOF_RESPONDER_CMD_VALID_SESSION_ID = 33554432, + IWL_TOF_RESPONDER_CMD_VALID_BSS_COLOR = 67108864, + IWL_TOF_RESPONDER_CMD_VALID_MIN_MAX_TIME_BETWEEN_MSR = 134217728, +}; + +struct iwl_mvm_pasn_sta { + struct list_head list; + struct iwl_mvm_int_sta int_sta; + u8 addr[6]; + struct ieee80211_key_conf keyconf; +}; + +struct iwl_tof_responder_config_cmd_v9 { + __le32 cmd_valid_fields; + __le32 responder_cfg_flags; + u8 format_bw; + u8 bss_color; + u8 channel_num; + u8 ctrl_ch_position; + u8 sta_id; + u8 reserved1; + __le16 toa_offset; + __le16 common_calib; + __le16 specific_calib; + u8 bssid[6]; + u8 r2i_ndp_params; + u8 i2r_ndp_params; + __le16 min_time_between_msr; + __le16 max_time_between_msr; +}; + +struct iwl_tof_responder_dyn_config_cmd_v2 { + __le32 lci_len; + __le32 civic_len; + u8 lci_civic[0]; +}; + +struct iwl_mvm_pasn_hltk_data { + u8 *addr; + u8 cipher; + u8 *hltk; +}; + +struct iwl_tof_responder_dyn_config_cmd { + u8 cipher; + u8 valid_flags; + u8 lci_len; + u8 civic_len; + u8 lci_buf[160]; + u8 civic_buf[160]; + u8 hltk_buf[32]; + u8 addr[6]; + u8 reserved[2]; +}; + +struct iwl_ftm_responder_stats { + u8 addr[6]; + u8 success_ftm; + u8 ftm_per_burst; + __le32 flags; + __le32 duration; + __le32 allocated_duration; + u8 bw; + u8 rate; + __le16 reserved; +}; + +struct usb_phy_roothub { + struct phy *phy; + struct list_head list; +}; + +typedef struct { + u32 version; + u32 num_entries; + u32 desc_size; + u32 flags; + efi_memory_desc_t entry[0]; +} efi_memory_attributes_table_t; + +typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); + +struct bpf_xdp_link { + struct bpf_link link; + struct net_device *dev; + int flags; +}; + +enum { + NAPIF_STATE_SCHED = 1, + NAPIF_STATE_MISSED = 2, + NAPIF_STATE_DISABLE = 4, + NAPIF_STATE_NPSVC = 8, + NAPIF_STATE_LISTED = 16, + NAPIF_STATE_NO_BUSY_POLL = 32, + NAPIF_STATE_IN_BUSY_POLL = 64, + NAPIF_STATE_PREFER_BUSY_POLL = 128, + NAPIF_STATE_THREADED = 256, + NAPIF_STATE_SCHED_THREADED = 512, +}; + +enum { + NAPI_F_PREFER_BUSY_POLL = 1, + NAPI_F_END_ON_RESCHED = 2, +}; + +enum tcx_action_base { + TCX_NEXT = -1, + TCX_PASS = 0, + TCX_DROP = 2, + TCX_REDIRECT = 7, +}; + +enum { + NESTED_SYNC_IMM_BIT = 0, + NESTED_SYNC_TODO_BIT = 1, +}; + +struct netdev_adjacent { + struct net_device *dev; + netdevice_tracker dev_tracker; + bool master; + bool ignore; + u16 ref_nr; + void *private; + struct list_head list; + struct callback_head rcu; +}; + +struct dev_kfree_skb_cb { + enum skb_drop_reason reason; +}; + +struct tcx_entry { + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq; + struct bpf_mprog_bundle bundle; + bool miniq_active; + struct callback_head rcu; +}; + +struct netdev_net_notifier { + struct list_head list; + struct notifier_block *nb; +}; + +struct net_device_path_stack { + int num_paths; + struct net_device_path path[5]; +}; + +struct netdev_nested_priv { + unsigned char flags; + void *data; +}; + +struct netdev_notifier_offload_xstats_rd; + +struct netdev_notifier_offload_xstats_ru; + +struct netdev_notifier_offload_xstats_info { + struct netdev_notifier_info info; + enum netdev_offload_xstats_type type; + union { + struct netdev_notifier_offload_xstats_rd *report_delta; + struct netdev_notifier_offload_xstats_ru *report_used; + }; +}; + +struct netdev_notifier_offload_xstats_rd { + struct rtnl_hw_stats64 stats; + bool used; +}; + +struct netdev_notifier_offload_xstats_ru { + bool used; +}; + +typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); + +struct ifslave { + __s32 slave_id; + char slave_name[16]; + __s8 link; + __s8 state; + __u32 link_failure_count; +}; + +typedef struct ifslave ifslave; + +struct ifbond { + __s32 bond_mode; + __s32 num_slaves; + __s32 miimon; +}; + +typedef struct ifbond ifbond; + +struct netdev_bonding_info { + ifslave slave; + ifbond master; +}; + +struct netdev_notifier_bonding_info { + struct netdev_notifier_info info; + struct netdev_bonding_info bonding_info; +}; + +struct netdev_notifier_changelowerstate_info { + struct netdev_notifier_info info; + void *lower_state_info; +}; + +struct arphdr { + __be16 ar_hrd; + __be16 ar_pro; + unsigned char ar_hln; + unsigned char ar_pln; + __be16 ar_op; +}; + +enum pci_bf_sort_state { + pci_bf_sort_default = 0, + pci_force_nobf = 1, + pci_force_bf = 2, + pci_dmi_bf = 3, +}; + +enum { + PCI_REASSIGN_ALL_RSRC = 1, + PCI_REASSIGN_ALL_BUS = 2, + PCI_PROBE_ONLY = 4, + PCI_CAN_SKIP_ISA_ALIGN = 8, + PCI_ENABLE_PROC_DOMAINS = 16, + PCI_COMPAT_DOMAIN_0 = 32, + PCI_SCAN_ALL_PCIE_DEVS = 64, +}; + +struct setup_data { + __u64 next; + __u32 type; + __u32 len; + __u8 data[0]; +}; + +struct pci_setup_rom { + struct setup_data data; + uint16_t vendor; + uint16_t devid; + uint64_t pcilen; + unsigned long segment; + unsigned long bus; + unsigned long device; + unsigned long function; + uint8_t romdata[0]; +}; + +struct irq_stack { + char stack[16384]; +}; + +enum { + GP_IDLE = 0, + GP_ENTER = 1, + GP_PASSED = 2, + GP_EXIT = 3, + GP_REPLAY = 4, +}; + +struct rcu_exp_work { + unsigned long rew_s; + struct kthread_work rew_work; +}; + +struct rcu_node { + raw_spinlock_t lock; + unsigned long gp_seq; + unsigned long gp_seq_needed; + unsigned long completedqs; + unsigned long qsmask; + unsigned long rcu_gp_init_mask; + unsigned long qsmaskinit; + unsigned long qsmaskinitnext; + unsigned long expmask; + unsigned long expmaskinit; + unsigned long expmaskinitnext; + struct kthread_worker *exp_kworker; + unsigned long cbovldmask; + unsigned long ffmask; + unsigned long grpmask; + int grplo; + int grphi; + u8 grpnum; + u8 level; + bool wait_blkd_tasks; + struct rcu_node *parent; + struct list_head blkd_tasks; + struct list_head *gp_tasks; + struct list_head *exp_tasks; + struct list_head *boost_tasks; + struct rt_mutex boost_mtx; + unsigned long boost_time; + struct mutex kthread_mutex; + struct task_struct *boost_kthread_task; + unsigned int boost_kthread_status; + unsigned long n_boosts; + struct swait_queue_head nocb_gp_wq[2]; + raw_spinlock_t fqslock; + spinlock_t exp_lock; + unsigned long exp_seq_rq; + wait_queue_head_t exp_wq[4]; + struct rcu_exp_work rew; + bool exp_need_flush; + raw_spinlock_t exp_poll_lock; + unsigned long exp_seq_poll_rq; + struct work_struct exp_poll_wq; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +union rcu_noqs { struct { - u8 throttle: 1; - u8 fdma: 1; - u8 reserved: 6; - u32 bmisx; - } piix4; + u8 norm; + u8 exp; + } b; + u16 s; }; -struct acpi_pci_device { - acpi_handle device; - struct acpi_pci_device *next; +struct rcu_snap_record { + unsigned long gp_seq; + u64 cputime_irq; + u64 cputime_softirq; + u64 cputime_system; + unsigned long nr_hardirqs; + unsigned int nr_softirqs; + unsigned long long nr_csw; + unsigned long jiffies; }; -struct acpi_pkg_info { - u8 *free_space; +struct rcu_data { + unsigned long gp_seq; + unsigned long gp_seq_needed; + union rcu_noqs cpu_no_qs; + bool core_needs_qs; + bool beenonline; + bool gpwrap; + bool cpu_started; + struct rcu_node *mynode; + unsigned long grpmask; + unsigned long ticks_this_gp; + struct irq_work defer_qs_iw; + bool defer_qs_iw_pending; + struct work_struct strict_work; + struct rcu_segcblist cblist; + long qlen_last_fqs_check; + unsigned long n_cbs_invoked; + unsigned long n_force_qs_snap; + long blimit; + int dynticks_snap; + bool rcu_need_heavy_qs; + bool rcu_urgent_qs; + bool rcu_forced_tick; + bool rcu_forced_tick_exp; + unsigned long barrier_seq_snap; + struct callback_head barrier_head; + int exp_dynticks_snap; + struct swait_queue_head nocb_cb_wq; + struct swait_queue_head nocb_state_wq; + struct task_struct *nocb_gp_kthread; + raw_spinlock_t nocb_lock; + atomic_t nocb_lock_contended; + int nocb_defer_wakeup; + struct timer_list nocb_timer; + unsigned long nocb_gp_adv_time; + struct mutex nocb_gp_kthread_mutex; + long: 64; + raw_spinlock_t nocb_bypass_lock; + struct rcu_cblist nocb_bypass; + unsigned long nocb_bypass_first; + unsigned long nocb_nobypass_last; + int nocb_nobypass_count; + long: 64; + long: 64; + raw_spinlock_t nocb_gp_lock; + u8 nocb_gp_sleep; + u8 nocb_gp_bypass; + u8 nocb_gp_gp; + unsigned long nocb_gp_seq; + unsigned long nocb_gp_loops; + struct swait_queue_head nocb_gp_wq; + bool nocb_cb_sleep; + struct task_struct *nocb_cb_kthread; + struct list_head nocb_head_rdp; + struct list_head nocb_entry_rdp; + struct rcu_data *nocb_toggling_rdp; + long: 64; + long: 64; + long: 64; + long: 64; + struct rcu_data *nocb_gp_rdp; + struct task_struct *rcu_cpu_kthread_task; + unsigned int rcu_cpu_kthread_status; + char rcu_cpu_has_work; + unsigned long rcuc_activity; + unsigned int softirq_snap; + struct irq_work rcu_iw; + bool rcu_iw_pending; + unsigned long rcu_iw_gp_seq; + unsigned long rcu_ofl_gp_seq; + short rcu_ofl_gp_flags; + unsigned long rcu_onl_gp_seq; + short rcu_onl_gp_flags; + unsigned long last_fqs_resched; + unsigned long last_sched_clock; + struct rcu_snap_record snap_record; + long lazy_len; + int cpu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rcu_state { + struct rcu_node node[521]; + struct rcu_node *level[4]; + int ncpus; + int n_online_cpus; + long: 64; + long: 64; + long: 64; + unsigned long gp_seq; + unsigned long gp_max; + struct task_struct *gp_kthread; + struct swait_queue_head gp_wq; + short gp_flags; + short gp_state; + unsigned long gp_wake_time; + unsigned long gp_wake_seq; + unsigned long gp_seq_polled; + unsigned long gp_seq_polled_snap; + unsigned long gp_seq_polled_exp_snap; + struct mutex barrier_mutex; + atomic_t barrier_cpu_count; + struct completion barrier_completion; + unsigned long barrier_sequence; + raw_spinlock_t barrier_lock; + struct mutex exp_mutex; + struct mutex exp_wake_mutex; + unsigned long expedited_sequence; + atomic_t expedited_need_qs; + struct swait_queue_head expedited_wq; + int ncpus_snap; + u8 cbovld; + u8 cbovldnext; + unsigned long jiffies_force_qs; + unsigned long jiffies_kick_kthreads; + unsigned long n_force_qs; + unsigned long gp_start; + unsigned long gp_end; + unsigned long gp_activity; + unsigned long gp_req_activity; + unsigned long jiffies_stall; + int nr_fqs_jiffies_stall; + unsigned long jiffies_resched; + unsigned long n_force_qs_gpstart; + const char *name; + char abbr; + long: 0; + arch_spinlock_t ofl_lock; + int nocb_is_setup; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct rcu_gp_oldstate { + unsigned long rgos_norm; + unsigned long rgos_exp; +}; + +struct kfree_rcu_cpu; + +struct kfree_rcu_cpu_work { + struct rcu_work rcu_work; + struct callback_head *head_free; + struct rcu_gp_oldstate head_free_gp_snap; + struct list_head bulk_head_free[2]; + struct kfree_rcu_cpu *krcp; +}; + +struct kfree_rcu_cpu { + struct callback_head *head; + unsigned long head_gp_snap; + atomic_t head_count; + struct list_head bulk_head[2]; + atomic_t bulk_count[2]; + struct kfree_rcu_cpu_work krw_arr[2]; + raw_spinlock_t lock; + struct delayed_work monitor_work; + bool initialized; + struct delayed_work page_cache_work; + atomic_t backoff_page_cache_fill; + atomic_t work_in_progress; + struct hrtimer hrtimer; + struct llist_head bkvcache; + int nr_bkv_objs; +}; + +struct kvfree_rcu_bulk_data { + struct list_head list; + struct rcu_gp_oldstate gp_snap; + unsigned long nr_records; + void *records[0]; +}; + +struct rcu_stall_chk_rdr { + int nesting; + union rcu_special rs; + bool on_blkd_list; +}; + +enum { + SWP_USED = 1, + SWP_WRITEOK = 2, + SWP_DISCARDABLE = 4, + SWP_DISCARDING = 8, + SWP_SOLIDSTATE = 16, + SWP_CONTINUED = 32, + SWP_BLKDEV = 64, + SWP_ACTIVATED = 128, + SWP_FS_OPS = 256, + SWP_AREA_DISCARD = 512, + SWP_PAGE_DISCARD = 1024, + SWP_STABLE_WRITES = 2048, + SWP_SYNCHRONOUS_IO = 4096, + SWP_SCANNING = 16384, +}; + +struct swap_extent { + struct rb_node rb_node; + unsigned long start_page; + unsigned long nr_pages; + sector_t start_block; +}; + +union swap_header { + struct { + char reserved[4086]; + char magic[10]; + } magic; + struct { + char bootbits[1024]; + __u32 version; + __u32 last_page; + __u32 nr_badpages; + unsigned char sws_uuid[16]; + unsigned char sws_volume[16]; + __u32 padding[117]; + __u32 badpages[1]; + } info; +}; + +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; +}; + +struct btrfs_async_delayed_work { + struct btrfs_delayed_root *delayed_root; + int nr; + struct btrfs_work work; +}; + +struct sha3_state { + u64 st[25]; + unsigned int rsiz; + unsigned int rsizw; + unsigned int partial; + u8 buf[144]; +}; + +struct virtio_admin_cmd_status { + __le16 status; + __le16 status_qualifier; + __u8 reserved2[4]; +}; + +struct virtio_admin_cmd_hdr { + __le16 opcode; + __le16 group_type; + __u8 reserved1[12]; + __le64 group_member_id; +}; + +struct mdio_board_info { + const char *bus_id; + char modalias[32]; + int mdio_addr; + const void *platform_data; +}; + +struct mdio_board_entry { + struct list_head list; + struct mdio_board_info board_info; +}; + +struct iwl_rx_transfer_desc { + __le16 rbid; + __le16 reserved[3]; + __le64 addr; +}; + +struct iwl_rx_completion_desc_bz { + __le16 rbid; + u8 flags; + u8 reserved[1]; +}; + +struct iwl_rx_completion_desc { + __le32 reserved1; + __le16 rbid; + u8 flags; + u8 reserved2[25]; +}; + +enum rt2x00_delayed_flags { + DELAYED_UPDATE_BEACON = 0, +}; + +enum rfkill_hard_block_reasons { + RFKILL_HARD_BLOCK_SIGNAL = 1, + RFKILL_HARD_BLOCK_NOT_OWNER = 2, +}; + +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); + +enum rc6_state { + STATE_INACTIVE___7 = 0, + STATE_PREFIX_SPACE = 1, + STATE_HEADER_BIT_START___2 = 2, + STATE_HEADER_BIT_END___2 = 3, + STATE_TOGGLE_START = 4, + STATE_TOGGLE_END = 5, + STATE_BODY_BIT_START___2 = 6, + STATE_BODY_BIT_END___2 = 7, + STATE_FINISHED___4 = 8, +}; + +enum rc6_mode { + RC6_MODE_0 = 0, + RC6_MODE_6A = 1, + RC6_MODE_UNKNOWN = 2, +}; + +typedef void (*btf_trace_amd_pstate_perf)(void *, unsigned long, unsigned long, unsigned long, u64, u64, u64, u64, unsigned int, bool, bool); + +struct trace_event_raw_amd_pstate_perf { + struct trace_entry ent; + unsigned long min_perf; + unsigned long target_perf; + unsigned long capacity; + unsigned long long freq; + unsigned long long mperf; + unsigned long long aperf; + unsigned long long tsc; + unsigned int cpu_id; + bool changed; + bool fast_switch; + char __data[0]; +}; + +struct trace_event_data_offsets_amd_pstate_perf {}; + +struct nf_hook_entries_rcu_head { + struct callback_head head; + void *allocation; +}; + +struct xt_log_info { + unsigned char level; + unsigned char logflags; + char prefix[30]; +}; + +struct arpreq { + struct sockaddr arp_pa; + struct sockaddr arp_ha; + int arp_flags; + struct sockaddr arp_netmask; + char arp_dev[16]; +}; + +struct neigh_seq_state { + struct seq_net_private p; + struct neigh_table *tbl; + struct neigh_hash_table *nht; + void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *); + unsigned int bucket; + unsigned int flags; +}; + +enum ioam6_event_type { + IOAM6_EVENT_UNSPEC = 0, + IOAM6_EVENT_TRACE = 1, +}; + +enum ioam6_event_attr { + IOAM6_EVENT_ATTR_UNSPEC = 0, + IOAM6_EVENT_ATTR_TRACE_NAMESPACE = 1, + IOAM6_EVENT_ATTR_TRACE_NODELEN = 2, + IOAM6_EVENT_ATTR_TRACE_TYPE = 3, + IOAM6_EVENT_ATTR_TRACE_DATA = 4, + __IOAM6_EVENT_ATTR_MAX = 5, +}; + +enum { + IOAM6_ATTR_UNSPEC = 0, + IOAM6_ATTR_NS_ID = 1, + IOAM6_ATTR_NS_DATA = 2, + IOAM6_ATTR_NS_DATA_WIDE = 3, + IOAM6_ATTR_SC_ID = 4, + IOAM6_ATTR_SC_DATA = 5, + IOAM6_ATTR_SC_NONE = 6, + IOAM6_ATTR_PAD = 7, + __IOAM6_ATTR_MAX = 8, +}; + +enum { + IOAM6_CMD_UNSPEC = 0, + IOAM6_CMD_ADD_NAMESPACE = 1, + IOAM6_CMD_DEL_NAMESPACE = 2, + IOAM6_CMD_DUMP_NAMESPACES = 3, + IOAM6_CMD_ADD_SCHEMA = 4, + IOAM6_CMD_DEL_SCHEMA = 5, + IOAM6_CMD_DUMP_SCHEMAS = 6, + IOAM6_CMD_NS_SET_SCHEMA = 7, + __IOAM6_CMD_MAX = 8, +}; + +struct ioam6_trace_hdr { + __be16 namespace_id; + char: 2; + __u8 overflow: 1; + __u8 nodelen: 5; + __u8 remlen: 7; + union { + __be32 type_be32; + struct { + __u32 bit7: 1; + __u32 bit6: 1; + __u32 bit5: 1; + __u32 bit4: 1; + __u32 bit3: 1; + __u32 bit2: 1; + __u32 bit1: 1; + __u32 bit0: 1; + __u32 bit15: 1; + __u32 bit14: 1; + __u32 bit13: 1; + __u32 bit12: 1; + __u32 bit11: 1; + __u32 bit10: 1; + __u32 bit9: 1; + __u32 bit8: 1; + __u32 bit23: 1; + __u32 bit22: 1; + __u32 bit21: 1; + __u32 bit20: 1; + __u32 bit19: 1; + __u32 bit18: 1; + __u32 bit17: 1; + __u32 bit16: 1; + } type; + }; + __u8 data[0]; +}; + +struct ioam6_namespace; + +struct ioam6_schema { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_namespace __attribute__((btf_type_tag("rcu"))) *ns; + u32 id; + int len; + __be32 hdr; + u8 data[0]; +}; + +struct ioam6_namespace { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_schema __attribute__((btf_type_tag("rcu"))) *schema; + __be16 id; + __be32 data; + __be64 data_wide; +}; + +struct estack_pages { + u32 offs; + u16 size; + u16 type; +}; + +struct swsusp_header { + char reserved[4056]; + u32 hw_sig; + u32 crc32; + sector_t image; + unsigned int flags; + char orig_sig[10]; + char sig[10]; +}; + +struct swsusp_extent { + struct rb_node node; + unsigned long start; + unsigned long end; +}; + +struct swap_map_page { + sector_t entries[511]; + sector_t next_swap; +}; + +struct crypto_comp { + struct crypto_tfm base; +}; + +struct swap_map_page_list; + +struct swap_map_handle { + struct swap_map_page *cur; + struct swap_map_page_list *maps; + sector_t cur_swap; + sector_t first_sector; + unsigned int k; + unsigned long reqd_free_pages; + u32 crc32; +}; + +struct swap_map_page_list { + struct swap_map_page *map; + struct swap_map_page_list *next; +}; + +struct hib_bio_batch { + atomic_t count; + wait_queue_head_t wait; + blk_status_t error; + struct blk_plug plug; +}; + +struct cmp_data { + struct task_struct *thr; + struct crypto_comp *cc; + atomic_t ready; + atomic_t stop; + int ret; + wait_queue_head_t go; + wait_queue_head_t done; + size_t unc_len; + size_t cmp_len; + unsigned char unc[131072]; + unsigned char cmp[143360]; +}; + +struct crc_data { + struct task_struct *thr; + atomic_t ready; + atomic_t stop; + unsigned int run_threads; + wait_queue_head_t go; + wait_queue_head_t done; + u32 *crc32; + size_t *unc_len[3]; + unsigned char *unc[3]; +}; + +struct dec_data { + struct task_struct *thr; + struct crypto_comp *cc; + atomic_t ready; + atomic_t stop; + int ret; + wait_queue_head_t go; + wait_queue_head_t done; + size_t unc_len; + size_t cmp_len; + unsigned char unc[131072]; + unsigned char cmp[143360]; +}; + +struct stacktrace_cookie { + unsigned long *store; + unsigned int size; + unsigned int skip; + unsigned int len; +}; + +struct action_cache { + unsigned long allow_native[8]; +}; + +struct notification; + +struct seccomp_filter { + refcount_t refs; + refcount_t users; + bool log; + bool wait_killable_recv; + struct action_cache cache; + struct seccomp_filter *prev; + struct bpf_prog *prog; + struct notification *notif; + struct mutex notify_lock; + wait_queue_head_t wqh; +}; + +struct notification { + atomic_t requests; + u32 flags; + u64 next_id; + struct list_head notifications; +}; + +struct seccomp_log_name { + u32 log; + const char *name; +}; + +enum notify_state { + SECCOMP_NOTIFY_INIT = 0, + SECCOMP_NOTIFY_SENT = 1, + SECCOMP_NOTIFY_REPLIED = 2, +}; + +struct seccomp_kaddfd { + struct file *file; + int fd; + unsigned int flags; + __u32 ioctl_flags; + union { + bool setfd; + int ret; + }; + struct completion completion; + struct list_head list; +}; + +struct seccomp_knotif { + struct task_struct *task; + u64 id; + const struct seccomp_data *data; + enum notify_state state; + int error; + long val; + u32 flags; + struct completion ready; + struct list_head list; + struct list_head addfd; +}; + +struct seccomp_notif_sizes { + __u16 seccomp_notif; + __u16 seccomp_notif_resp; + __u16 seccomp_data; +}; + +struct seccomp_notif { + __u64 id; + __u32 pid; + __u32 flags; + struct seccomp_data data; +}; + +struct seccomp_notif_resp { + __u64 id; + __s64 val; + __s32 error; + __u32 flags; +}; + +struct seccomp_notif_addfd { + __u64 id; + __u32 flags; + __u32 srcfd; + __u32 newfd; + __u32 newfd_flags; +}; + +enum { + BPF_F_SYSCTL_BASE_NAME = 1, +}; + +typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_retval)(); + +typedef u64 (*btf_bpf_set_retval)(int); + +typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); + +typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); + +typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); + +struct bpf_cgroup_link; + +struct bpf_prog_list { + struct hlist_node node; + struct bpf_prog *prog; + struct bpf_cgroup_link *link; + struct bpf_cgroup_storage *storage[2]; +}; + +struct bpf_cgroup_link { + struct bpf_link link; + struct cgroup *cgroup; + enum bpf_attach_type type; +}; + +struct bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; + int retval; +}; + +struct bpf_sockopt_buf { + u8 data[32]; +}; + +enum poll_time_type { + PT_TIMEVAL = 0, + PT_OLD_TIMEVAL = 1, + PT_TIMESPEC = 2, + PT_OLD_TIMESPEC = 3, +}; + +struct poll_table_entry { + struct file *filp; + __poll_t key; + wait_queue_entry_t wait; + wait_queue_head_t *wait_address; +}; + +struct poll_table_page; + +struct poll_wqueues { + poll_table pt; + struct poll_table_page *table; + struct task_struct *polling_task; + int triggered; + int error; + int inline_index; + struct poll_table_entry inline_entries[9]; +}; + +struct poll_table_page { + struct poll_table_page *next; + struct poll_table_entry *entry; + struct poll_table_entry entries[0]; +}; + +typedef struct { + unsigned long fds_bits[16]; +} __kernel_fd_set; + +typedef __kernel_fd_set fd_set; + +struct poll_list { + struct poll_list *next; + unsigned int len; + struct pollfd entries[0]; +}; + +typedef struct { + unsigned long *in; + unsigned long *out; + unsigned long *ex; + unsigned long *res_in; + unsigned long *res_out; + unsigned long *res_ex; +} fd_set_bits; + +struct sigset_argpack { + sigset_t __attribute__((btf_type_tag("user"))) *p; + size_t size; +}; + +enum btrfs_send_cmd { + BTRFS_SEND_C_UNSPEC = 0, + BTRFS_SEND_C_SUBVOL = 1, + BTRFS_SEND_C_SNAPSHOT = 2, + BTRFS_SEND_C_MKFILE = 3, + BTRFS_SEND_C_MKDIR = 4, + BTRFS_SEND_C_MKNOD = 5, + BTRFS_SEND_C_MKFIFO = 6, + BTRFS_SEND_C_MKSOCK = 7, + BTRFS_SEND_C_SYMLINK = 8, + BTRFS_SEND_C_RENAME = 9, + BTRFS_SEND_C_LINK = 10, + BTRFS_SEND_C_UNLINK = 11, + BTRFS_SEND_C_RMDIR = 12, + BTRFS_SEND_C_SET_XATTR = 13, + BTRFS_SEND_C_REMOVE_XATTR = 14, + BTRFS_SEND_C_WRITE = 15, + BTRFS_SEND_C_CLONE = 16, + BTRFS_SEND_C_TRUNCATE = 17, + BTRFS_SEND_C_CHMOD = 18, + BTRFS_SEND_C_CHOWN = 19, + BTRFS_SEND_C_UTIMES = 20, + BTRFS_SEND_C_END = 21, + BTRFS_SEND_C_UPDATE_EXTENT = 22, + BTRFS_SEND_C_MAX_V1 = 22, + BTRFS_SEND_C_FALLOCATE = 23, + BTRFS_SEND_C_FILEATTR = 24, + BTRFS_SEND_C_ENCODED_WRITE = 25, + BTRFS_SEND_C_MAX_V2 = 25, + BTRFS_SEND_C_ENABLE_VERITY = 26, + BTRFS_SEND_C_MAX_V3 = 26, + BTRFS_SEND_C_MAX = 26, +}; + +enum { + BTRFS_SEND_A_UNSPEC = 0, + BTRFS_SEND_A_UUID = 1, + BTRFS_SEND_A_CTRANSID = 2, + BTRFS_SEND_A_INO = 3, + BTRFS_SEND_A_SIZE = 4, + BTRFS_SEND_A_MODE = 5, + BTRFS_SEND_A_UID = 6, + BTRFS_SEND_A_GID = 7, + BTRFS_SEND_A_RDEV = 8, + BTRFS_SEND_A_CTIME = 9, + BTRFS_SEND_A_MTIME = 10, + BTRFS_SEND_A_ATIME = 11, + BTRFS_SEND_A_OTIME = 12, + BTRFS_SEND_A_XATTR_NAME = 13, + BTRFS_SEND_A_XATTR_DATA = 14, + BTRFS_SEND_A_PATH = 15, + BTRFS_SEND_A_PATH_TO = 16, + BTRFS_SEND_A_PATH_LINK = 17, + BTRFS_SEND_A_FILE_OFFSET = 18, + BTRFS_SEND_A_DATA = 19, + BTRFS_SEND_A_CLONE_UUID = 20, + BTRFS_SEND_A_CLONE_CTRANSID = 21, + BTRFS_SEND_A_CLONE_PATH = 22, + BTRFS_SEND_A_CLONE_OFFSET = 23, + BTRFS_SEND_A_CLONE_LEN = 24, + BTRFS_SEND_A_MAX_V1 = 24, + BTRFS_SEND_A_FALLOCATE_MODE = 25, + BTRFS_SEND_A_FILEATTR = 26, + BTRFS_SEND_A_UNENCODED_FILE_LEN = 27, + BTRFS_SEND_A_UNENCODED_LEN = 28, + BTRFS_SEND_A_UNENCODED_OFFSET = 29, + BTRFS_SEND_A_COMPRESSION = 30, + BTRFS_SEND_A_ENCRYPTION = 31, + BTRFS_SEND_A_MAX_V2 = 31, + BTRFS_SEND_A_VERITY_ALGORITHM = 32, + BTRFS_SEND_A_VERITY_BLOCK_SIZE = 33, + BTRFS_SEND_A_VERITY_SALT_DATA = 34, + BTRFS_SEND_A_VERITY_SIG_DATA = 35, + BTRFS_SEND_A_MAX_V3 = 35, + __BTRFS_SEND_A_MAX = 35, +}; + +enum btrfs_compare_tree_result { + BTRFS_COMPARE_TREE_NEW = 0, + BTRFS_COMPARE_TREE_DELETED = 1, + BTRFS_COMPARE_TREE_CHANGED = 2, + BTRFS_COMPARE_TREE_SAME = 3, +}; + +enum inode_state { + inode_state_no_change = 0, + inode_state_will_create = 1, + inode_state_did_create = 2, + inode_state_will_delete = 3, + inode_state_did_delete = 4, +}; + +struct pending_dir_move { + struct rb_node node; + struct list_head list; + u64 parent_ino; + u64 ino; + u64 gen; + struct list_head update_refs; +}; + +struct waiting_dir_move { + struct rb_node node; + u64 ino; + u64 rmdir_ino; + u64 rmdir_gen; + bool orphanized; +}; + +struct orphan_dir_info { + struct rb_node node; + u64 ino; + u64 gen; + u64 last_dir_index_offset; + u64 dir_high_seq_ino; +}; + +struct btrfs_tlv_header { + __le16 tlv_type; + __le16 tlv_len; +}; + +struct name_cache_entry { + struct btrfs_lru_cache_entry entry; + u64 parent_ino; + u64 parent_gen; + int ret; + int need_later_update; + int name_len; + char name[0]; +}; + +struct fs_path; + +struct recorded_ref { + struct list_head list; + char *name; + struct fs_path *full_path; + u64 dir; + u64 dir_gen; + int name_len; + struct rb_node node; + struct rb_root *root; +}; + +struct fs_path { + union { + struct { + char *start; + char *end; + char *buf; + unsigned short buf_len: 15; + unsigned short reversed: 1; + char inline_buf[0]; + }; + char pad[256]; + }; +}; + +struct backref_cache_entry { + struct btrfs_lru_cache_entry entry; + u64 root_ids[17]; + int num_roots; +}; + +struct btrfs_cmd_header { + __le32 len; + __le16 cmd; + __le32 crc; +} __attribute__((packed)); + +struct clone_root; + +struct send_ctx { + struct file *send_filp; + loff_t send_off; + char *send_buf; + u32 send_size; + u32 send_max_size; + bool put_data; + struct page **send_buf_pages; + u64 flags; + u32 proto; + struct btrfs_root *send_root; + struct btrfs_root *parent_root; + struct clone_root *clone_roots; + int clone_roots_cnt; + struct btrfs_path *left_path; + struct btrfs_path *right_path; + struct btrfs_key *cmp_key; + u64 last_reloc_trans; + u64 cur_ino; + u64 cur_inode_gen; + u64 cur_inode_size; + u64 cur_inode_mode; + u64 cur_inode_rdev; + u64 cur_inode_last_extent; + u64 cur_inode_next_write_offset; + bool cur_inode_new; + bool cur_inode_new_gen; + bool cur_inode_deleted; + bool ignore_cur_inode; + bool cur_inode_needs_verity; + void *verity_descriptor; + u64 send_progress; + struct list_head new_refs; + struct list_head deleted_refs; + struct btrfs_lru_cache name_cache; + struct inode *cur_inode; + struct file_ra_state ra; + u64 page_cache_clear_start; + bool clean_page_cache; + struct rb_root pending_dir_moves; + struct rb_root waiting_dir_moves; + struct rb_root orphan_dirs; + struct rb_root rbtree_new_refs; + struct rb_root rbtree_deleted_refs; + struct btrfs_lru_cache backref_cache; + u64 backref_cache_last_reloc_trans; + struct btrfs_lru_cache dir_created_cache; + struct btrfs_lru_cache dir_utimes_cache; +}; + +struct clone_root { + struct btrfs_root *root; + u64 ino; + u64 offset; + u64 num_bytes; + bool found_ref; +}; + +struct btrfs_stream_header { + char magic[13]; + __le32 version; +} __attribute__((packed)); + +struct btrfs_inode_info { + u64 size; + u64 gen; + u64 mode; + u64 uid; + u64 gid; + u64 rdev; + u64 fileattr; + u64 nlink; +}; + +typedef int (*iterate_dir_item_t)(int, struct btrfs_key *, const char *, int, const char *, int, void *); + +struct backref_ctx { + struct send_ctx *sctx; + u64 found; + u64 cur_objectid; + u64 cur_offset; + u64 extent_len; + u64 bytenr; + u64 backref_owner; + u64 backref_offset; +}; + +typedef int (*iterate_inode_ref_t)(int, u64, int, struct fs_path *, void *); + +struct find_xattr_ctx { + const char *name; + int name_len; + int found_idx; + char *found_data; + int found_data_len; +}; + +struct _gpt_header { + __le64 signature; + __le32 revision; + __le32 header_size; + __le32 header_crc32; + __le32 reserved1; + __le64 my_lba; + __le64 alternate_lba; + __le64 first_usable_lba; + __le64 last_usable_lba; + efi_guid_t disk_guid; + __le64 partition_entry_lba; + __le32 num_partition_entries; + __le32 sizeof_partition_entry; + __le32 partition_entry_array_crc32; +} __attribute__((packed)); + +typedef struct _gpt_header gpt_header; + +struct _gpt_entry_attributes { + u64 required_to_function: 1; + u64 reserved: 47; + u64 type_guid_specific: 16; +}; + +typedef struct _gpt_entry_attributes gpt_entry_attributes; + +struct _gpt_entry { + efi_guid_t partition_type_guid; + efi_guid_t unique_partition_guid; + __le64 starting_lba; + __le64 ending_lba; + gpt_entry_attributes attributes; + __le16 partition_name[36]; +}; + +typedef struct _gpt_entry gpt_entry; + +struct _gpt_mbr_record { + u8 boot_indicator; + u8 start_head; + u8 start_sector; + u8 start_track; + u8 os_type; + u8 end_head; + u8 end_sector; + u8 end_track; + __le32 starting_lba; + __le32 size_in_lba; +}; + +typedef struct _gpt_mbr_record gpt_mbr_record; + +struct _legacy_mbr { + u8 boot_code[440]; + __le32 unique_mbr_signature; + __le16 unknown; + gpt_mbr_record partition_record[4]; + __le16 signature; +} __attribute__((packed)); + +typedef struct _legacy_mbr legacy_mbr; + +enum assoc_array_walk_status { + assoc_array_walk_tree_empty = 0, + assoc_array_walk_found_terminal_node = 1, + assoc_array_walk_found_wrong_shortcut = 2, +}; + +struct assoc_array_shortcut { + struct assoc_array_ptr *back_pointer; + int parent_slot; + int skip_to_level; + struct assoc_array_ptr *next_node; + unsigned long index_key[0]; +}; + +struct assoc_array_node { + struct assoc_array_ptr *back_pointer; + u8 parent_slot; + struct assoc_array_ptr *slots[16]; + unsigned long nr_leaves_on_branch; +}; + +struct assoc_array_ops; + +struct assoc_array_edit { + struct callback_head rcu; + struct assoc_array *array; + const struct assoc_array_ops *ops; + const struct assoc_array_ops *ops_for_excised_subtree; + struct assoc_array_ptr *leaf; + struct assoc_array_ptr **leaf_p; + struct assoc_array_ptr *dead_leaf; + struct assoc_array_ptr *new_meta[3]; + struct assoc_array_ptr *excised_meta[1]; + struct assoc_array_ptr *excised_subtree; + struct assoc_array_ptr **set_backpointers[16]; + struct assoc_array_ptr *set_backpointers_to; + struct assoc_array_node *adjust_count_on; + long adjust_count_by; + struct { + struct assoc_array_ptr **ptr; + struct assoc_array_ptr *to; + } set[2]; + struct { + u8 *p; + u8 to; + } set_parent_slot[1]; + u8 segment_cache[17]; +}; + +struct assoc_array_ops { + unsigned long (*get_key_chunk)(const void *, int); + unsigned long (*get_object_key_chunk)(const void *, int); + bool (*compare_object)(const void *, const void *); + int (*diff_objects)(const void *, const void *); + void (*free_object)(void *); +}; + +struct assoc_array_walk_result { + struct { + struct assoc_array_node *node; + int level; + int slot; + } terminal_node; + struct { + struct assoc_array_shortcut *shortcut; + int level; + int sc_level; + unsigned long sc_segments; + unsigned long dissimilarity; + } wrong_shortcut; +}; + +struct assoc_array_delete_collapse_context { + struct assoc_array_node *node; + const void *skip_leaf; + int slot; +}; + +typedef enum { + trustInput = 0, + checkMaxSymbolValue = 1, +} HIST_checkInput_e; + +typedef struct { + FSE_CTable CTable[59]; + U32 scratchBuffer[41]; + unsigned int count[13]; + S16 norm[13]; +} HUF_CompressWeightsWksp; + +typedef struct { + HUF_CompressWeightsWksp wksp; + BYTE bitsToWeight[13]; + BYTE huffWeight[255]; +} HUF_WriteCTableWksp; + +struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; +}; + +typedef struct nodeElt_s nodeElt; + +typedef nodeElt huffNodeTable[512]; + +typedef struct { + U16 base; + U16 curr; +} rankPos; + +typedef struct { + huffNodeTable huffNodeTbl; + rankPos rankPosition[192]; +} HUF_buildCTable_wksp_tables; + +typedef struct { + unsigned int count[256]; + HUF_CElt CTable[257]; + union { + HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_WriteCTableWksp writeCTable_wksp; + U32 hist_wksp[1024]; + } wksps; +} HUF_compress_tables_t; + +typedef struct { + size_t bitContainer[2]; + size_t bitPos[2]; + BYTE *startPtr; + BYTE *ptr; + BYTE *endPtr; +} HUF_CStream_t; + +typedef enum { + HUF_singleStream = 0, + HUF_fourStreams = 1, +} HUF_nbStreams_e; + +enum pcie_bus_config_types { + PCIE_BUS_TUNE_OFF = 0, + PCIE_BUS_DEFAULT = 1, + PCIE_BUS_SAFE = 2, + PCIE_BUS_PERFORMANCE = 3, + PCIE_BUS_PEER2PEER = 4, +}; + +typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); + +struct hotplug_slot_ops; + +struct hotplug_slot { + const struct hotplug_slot_ops *ops; + struct list_head slot_list; + struct pci_slot *pci_slot; + struct module *owner; + const char *mod_name; +}; + +struct hotplug_slot_ops { + int (*enable_slot)(struct hotplug_slot *); + int (*disable_slot)(struct hotplug_slot *); + int (*set_attention_status)(struct hotplug_slot *, u8); + int (*hardware_test)(struct hotplug_slot *, u32); + int (*get_power_status)(struct hotplug_slot *, u8 *); + int (*get_attention_status)(struct hotplug_slot *, u8 *); + int (*get_latch_status)(struct hotplug_slot *, u8 *); + int (*get_adapter_status)(struct hotplug_slot *, u8 *); + int (*reset_slot)(struct hotplug_slot *, bool); +}; + +struct pci_reset_fn_method { + int (*reset_fn)(struct pci_dev *, bool); + char *name; +}; + +enum pcie_reset_state { + pcie_deassert_reset = 1, + pcie_warm_reset = 2, + pcie_hot_reset = 3, +}; + +enum pci_fixup_pass { + pci_fixup_early = 0, + pci_fixup_header = 1, + pci_fixup_final = 2, + pci_fixup_enable = 3, + pci_fixup_resume = 4, + pci_fixup_suspend = 5, + pci_fixup_resume_early = 6, + pci_fixup_suspend_late = 7, +}; + +struct pci_pme_device { + struct list_head list; + struct pci_dev *dev; +}; + +struct pci_saved_state { + u32 config_space[16]; + struct pci_cap_saved_data cap[0]; +}; + +struct pcie_tlp_log { + u32 dw[4]; +}; + +struct acpi_data_table_mapping { + void *pointer; +}; + +struct acpi_mem_mapping; + +struct acpi_mem_space_context { + u32 length; + acpi_physical_address address; + struct acpi_mem_mapping *cur_mm; + struct acpi_mem_mapping *first_mm; +}; + +struct acpi_mem_mapping { + acpi_physical_address physical_address; + u8 *logical_address; acpi_size length; - u32 object_space; - u32 num_packages; + struct acpi_mem_mapping *next_mm; }; -struct clk_mux { +struct acpi_port_info { + char *name; + u16 start; + u16 end; + u8 osi_dependency; +}; + +struct acpi_lpi_states_array { + unsigned int size; + unsigned int composite_states_size; + struct acpi_lpi_state *entries; + struct acpi_lpi_state *composite_states[8]; +}; + +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const unsigned int *timeouts; +}; + +enum { + ATA_EH_SPDN_NCQ_OFF = 1, + ATA_EH_SPDN_SPEED_DOWN = 2, + ATA_EH_SPDN_FALLBACK_TO_PIO = 4, + ATA_EH_SPDN_KEEP_ERRORS = 8, + ATA_EFLAG_IS_IO = 1, + ATA_EFLAG_DUBIOUS_XFER = 2, + ATA_EFLAG_OLD_ER = -2147483648, + ATA_ECAT_NONE = 0, + ATA_ECAT_ATA_BUS = 1, + ATA_ECAT_TOUT_HSM = 2, + ATA_ECAT_UNK_DEV = 3, + ATA_ECAT_DUBIOUS_NONE = 4, + ATA_ECAT_DUBIOUS_ATA_BUS = 5, + ATA_ECAT_DUBIOUS_TOUT_HSM = 6, + ATA_ECAT_DUBIOUS_UNK_DEV = 7, + ATA_ECAT_NR = 8, + ATA_EH_CMD_DFL_TIMEOUT = 5000, + ATA_EH_RESET_COOL_DOWN = 5000, + ATA_EH_PRERESET_TIMEOUT = 10000, + ATA_EH_FASTDRAIN_INTERVAL = 3000, + ATA_EH_UA_TRIES = 5, + ATA_EH_PROBE_TRIAL_INTERVAL = 60000, + ATA_EH_PROBE_TRIALS = 2, +}; + +struct speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; +}; + +struct iwl_tx_beacon_cmd { + struct iwl_tx_cmd___2 tx; + __le16 tim_idx; + u8 tim_size; + u8 reserved1; + struct ieee80211_hdr frame[0]; +}; + +struct iwl_bt_cmd { + u8 flags; + u8 lead_time; + u8 max_kill; + u8 reserved; + __le32 kill_ack_mask; + __le32 kill_cts_mask; +}; + +struct iwl_tx_ant_config_cmd { + __le32 valid; +}; + +struct iwl_ct_kill_config { + __le32 reserved; + __le32 critical_temperature_M; + __le32 critical_temperature_R; +}; + +struct iwl_ct_kill_throttling_config { + __le32 critical_temperature_exit; + __le32 reserved; + __le32 critical_temperature_enter; +}; + +struct iwl_error_event_table___2 { + u32 valid; + u32 error_id; + u32 pc; + u32 blink1; + u32 blink2; + u32 ilink1; + u32 ilink2; + u32 data1; + u32 data2; + u32 line; + u32 bcon_time; + u32 tsf_low; + u32 tsf_hi; + u32 gp1; + u32 gp2; + u32 gp3; + u32 ucode_ver; + u32 hw_ver; + u32 brd_ver; + u32 log_pc; + u32 frame_ptr; + u32 stack_ptr; + u32 hcmd; + u32 isr0; + u32 isr1; + u32 isr2; + u32 isr3; + u32 isr4; + u32 isr_pref; + u32 wait_event; + u32 l2p_control; + u32 l2p_duration; + u32 l2p_mhvalid; + u32 l2p_addr_match; + u32 lmpm_pmg_sel; + u32 u_timestamp; + u32 flow_handler; +}; + +struct iwl_statistics_cmd___2 { + __le32 configuration_flags; +}; + +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; +}; + +struct input_mt_pos { + s16 x; + s16 y; +}; + +struct cpuidle_state_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_state *, struct cpuidle_state_usage *, char *); + ssize_t (*store)(struct cpuidle_state *, struct cpuidle_state_usage *, const char *, size_t); +}; + +struct cpuidle_state_kobj { + struct cpuidle_state *state; + struct cpuidle_state_usage *state_usage; + struct completion kobj_unregister; + struct kobject kobj; + struct cpuidle_device *device; +}; + +struct cpuidle_device_kobj { + struct cpuidle_device *dev; + struct completion kobj_unregister; + struct kobject kobj; +}; + +struct cpuidle_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_device *, char *); + ssize_t (*store)(struct cpuidle_device *, const char *, size_t); +}; + +enum { + ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0, + ETHTOOL_A_TUNNEL_INFO_HEADER = 1, + ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 2, + __ETHTOOL_A_TUNNEL_INFO_CNT = 3, + ETHTOOL_A_TUNNEL_INFO_MAX = 2, +}; + +enum udp_tunnel_nic_info_flags { + UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1, + UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2, + UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4, + UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8, +}; + +enum { + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0, + ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 1, + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 2, + __ETHTOOL_UDP_TUNNEL_TYPE_CNT = 3, +}; + +enum { + ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0, + ETHTOOL_A_TUNNEL_UDP_TABLE = 1, + __ETHTOOL_A_TUNNEL_UDP_CNT = 2, + ETHTOOL_A_TUNNEL_UDP_MAX = 1, +}; + +enum { + ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0, + ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 1, + ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 2, + ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 3, + __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT = 4, + ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 3, +}; + +enum { + ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0, + ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 1, + ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 2, + __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT = 3, + ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 2, +}; + +struct ethnl_tunnel_info_dump_ctx { + struct ethnl_req_info req_info; + unsigned long ifindex; +}; + +enum fib6_walk_state { + FWS_L = 0, + FWS_R = 1, + FWS_C = 2, + FWS_U = 3, +}; + +enum { + FIB6_NO_SERNUM_CHANGE = 0, +}; + +struct fib6_walker { + struct list_head lh; + struct fib6_node *root; + struct fib6_node *node; + struct fib6_info *leaf; + enum fib6_walk_state state; + unsigned int skip; + unsigned int count; + unsigned int skip_in_node; + int (*func)(struct fib6_walker *); + void *args; +}; + +struct fib6_cleaner { + struct fib6_walker w; + struct net *net; + int (*func)(struct fib6_info *, void *); + int sernum; + void *arg; + bool skip_notify; +}; + +struct fib6_dump_arg { + struct net *net; + struct notifier_block *nb; + struct netlink_ext_ack *extack; +}; + +struct fib6_entry_notifier_info { + struct fib_notifier_info info; + struct fib6_info *rt; + unsigned int nsiblings; +}; + +struct lookup_args { + int offset; + const struct in6_addr *addr; +}; + +struct ipv6_route_iter { + struct seq_net_private p; + struct fib6_walker w; + loff_t skip; + struct fib6_table *tbl; + int sernum; +}; + +struct bpf_iter__ipv6_route { + union { + struct bpf_iter_meta *meta; + }; + union { + struct fib6_info *rt; + }; +}; + +struct fib6_nh_pcpu_arg { + struct fib6_info *from; + const struct fib6_table *table; +}; + +struct set_mtrr_data { + unsigned long smp_base; + unsigned long smp_size; + unsigned int smp_reg; + mtrr_type smp_type; +}; + +struct acpi_madt_multiproc_wakeup_mailbox { + u16 command; + u16 reserved; + u32 apic_id; + u64 wakeup_vector; + u8 reserved_os[2032]; + u8 reserved_firmware[2048]; +}; + +struct acpi_table_boot { + struct acpi_table_header header; + u8 cmos_index; + u8 reserved[3]; +}; + +struct acpi_table_madt { + struct acpi_table_header header; + u32 address; + u32 flags; +}; + +struct acpi_madt_local_apic_override { + struct acpi_subtable_header header; + u16 reserved; + u64 address; +} __attribute__((packed)); + +struct acpi_madt_local_sapic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u8 eid; + u8 reserved[3]; + u32 lapic_flags; + u32 uid; + char uid_string[0]; +}; + +struct acpi_madt_local_apic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u32 lapic_flags; +}; + +struct acpi_madt_local_x2apic { + struct acpi_subtable_header header; + u16 reserved; + u32 local_apic_id; + u32 lapic_flags; + u32 uid; +}; + +struct acpi_madt_local_x2apic_nmi { + struct acpi_subtable_header header; + u16 inti_flags; + u32 uid; + u8 lint; + u8 reserved[3]; +}; + +struct acpi_madt_local_apic_nmi { + struct acpi_subtable_header header; + u8 processor_id; + u16 inti_flags; + u8 lint; +} __attribute__((packed)); + +struct acpi_madt_io_apic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 address; + u32 global_irq_base; +}; + +struct acpi_madt_interrupt_override { + struct acpi_subtable_header header; + u8 bus; + u8 source_irq; + u32 global_irq; + u16 inti_flags; +} __attribute__((packed)); + +struct acpi_madt_nmi_source { + struct acpi_subtable_header header; + u16 inti_flags; + u32 global_irq; +}; + +struct acpi_madt_multiproc_wakeup { + struct acpi_subtable_header header; + u16 mailbox_version; + u32 reserved; + u64 base_address; +}; + +struct acpi_table_hpet { + struct acpi_table_header header; + u32 id; + struct acpi_generic_address address; + u8 sequence; + u16 minimum_tick; + u8 flags; +} __attribute__((packed)); + +union efi_simple_text_input_protocol; + +typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; + +union efi_simple_text_output_protocol; + +typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; + +union efi_boot_services; + +typedef union efi_boot_services efi_boot_services_t; + +typedef union { + struct { + efi_table_hdr_t hdr; + unsigned long fw_vendor; + u32 fw_revision; + unsigned long con_in_handle; + efi_simple_text_input_protocol_t *con_in; + unsigned long con_out_handle; + efi_simple_text_output_protocol_t *con_out; + unsigned long stderr_handle; + unsigned long stderr; + efi_runtime_services_t *runtime; + efi_boot_services_t *boottime; + unsigned long nr_tables; + unsigned long tables; + }; + efi_system_table_32_t mixed_mode; +} efi_system_table_t; + +struct kallsym_iter { + loff_t pos; + loff_t pos_mod_end; + loff_t pos_ftrace_mod_end; + loff_t pos_bpf_end; + unsigned long value; + unsigned int nameoff; + char type; + char name[512]; + char module_name[56]; + int exported; + int show_value; +}; + +struct bpf_iter__ksym { + union { + struct bpf_iter_meta *meta; + }; + union { + struct kallsym_iter *ksym; + }; +}; + +struct bpf_prog_offload_ops; + +struct bpf_offload_dev { + const struct bpf_prog_offload_ops *ops; + struct list_head netdevs; + void *priv; +}; + +struct bpf_prog_offload_ops { + int (*insn_hook)(struct bpf_verifier_env *, int, int); + int (*finalize)(struct bpf_verifier_env *); + int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *); + int (*remove_insns)(struct bpf_verifier_env *, u32, u32); + int (*prepare)(struct bpf_prog *); + int (*translate)(struct bpf_prog *); + void (*destroy)(struct bpf_prog *); +}; + +enum xdp_rx_metadata { + XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, + XDP_METADATA_KFUNC_RX_HASH = 1, + XDP_METADATA_KFUNC_RX_VLAN_TAG = 2, + MAX_XDP_METADATA_KFUNC = 3, +}; + +struct bpf_offload_netdev { + struct rhash_head l; + struct net_device *netdev; + struct bpf_offload_dev *offdev; + struct list_head progs; + struct list_head maps; + struct list_head offdev_netdevs; +}; + +struct ns_get_path_bpf_prog_args { + struct bpf_prog *prog; + struct bpf_prog_info *info; +}; + +struct ns_get_path_bpf_map_args { + struct bpf_offloaded_map *offmap; + struct bpf_map_info *info; +}; + +struct kioctx_cpu; + +struct ctx_rq_wait; + +struct kioctx { + struct percpu_ref users; + atomic_t dead; + struct percpu_ref reqs; + unsigned long user_id; + struct kioctx_cpu *cpu; + unsigned int req_batch; + unsigned int max_reqs; + unsigned int nr_events; + unsigned long mmap_base; + unsigned long mmap_size; + struct page **ring_pages; + long nr_pages; + struct rcu_work free_rwork; + struct ctx_rq_wait *rq_wait; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct { + atomic_t reqs_available; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + spinlock_t ctx_lock; + struct list_head active_reqs; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + struct mutex ring_lock; + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + unsigned int tail; + unsigned int completed_events; + spinlock_t completion_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct page *internal_pages[8]; + struct file *aio_ring_file; + unsigned int id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct kioctx_cpu { + unsigned int reqs_available; +}; + +struct ctx_rq_wait { + struct completion comp; + atomic_t count; +}; + +enum { + IOCB_CMD_PREAD = 0, + IOCB_CMD_PWRITE = 1, + IOCB_CMD_FSYNC = 2, + IOCB_CMD_FDSYNC = 3, + IOCB_CMD_POLL = 5, + IOCB_CMD_NOOP = 6, + IOCB_CMD_PREADV = 7, + IOCB_CMD_PWRITEV = 8, +}; + +struct fsync_iocb { + struct file *file; + struct work_struct work; + bool datasync; + struct cred *creds; +}; + +struct poll_iocb { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + bool cancelled; + bool work_scheduled; + bool work_need_resched; + struct wait_queue_entry wait; + struct work_struct work; +}; + +typedef int kiocb_cancel_fn(struct kiocb *); + +struct io_event { + __u64 data; + __u64 obj; + __s64 res; + __s64 res2; +}; + +struct aio_kiocb { + union { + struct file *ki_filp; + struct kiocb rw; + struct fsync_iocb fsync; + struct poll_iocb poll; + }; + struct kioctx *ki_ctx; + kiocb_cancel_fn *ki_cancel; + struct io_event ki_res; + struct list_head ki_list; + refcount_t ki_refcnt; + struct eventfd_ctx *ki_eventfd; +}; + +typedef __kernel_ulong_t aio_context_t; + +struct iocb { + __u64 aio_data; + __u32 aio_key; + __kernel_rwf_t aio_rw_flags; + __u16 aio_lio_opcode; + __s16 aio_reqprio; + __u32 aio_fildes; + __u64 aio_buf; + __u64 aio_nbytes; + __s64 aio_offset; + __u64 aio_reserved2; + __u32 aio_flags; + __u32 aio_resfd; +}; + +struct aio_poll_table { + struct poll_table_struct pt; + struct aio_kiocb *iocb; + bool queued; + int error; +}; + +struct aio_waiter { + struct wait_queue_entry w; + size_t min_nr; +}; + +struct __aio_sigset { + const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; + size_t sigsetsize; +}; + +struct aio_ring { + unsigned int id; + unsigned int nr; + unsigned int head; + unsigned int tail; + unsigned int magic; + unsigned int compat_features; + unsigned int incompat_features; + unsigned int header_length; + struct io_event io_events[0]; +}; + +struct autofs_packet_missing { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; +}; + +struct autofs_packet_expire_multi { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; +}; + +union autofs_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_packet_missing missing; + struct autofs_packet_expire expire; + struct autofs_packet_expire_multi expire_multi; +}; + +struct autofs_v5_packet { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + __u32 dev; + __u64 ino; + __u32 uid; + __u32 gid; + __u32 pid; + __u32 tgid; + __u32 len; + char name[256]; +}; + +typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; + +typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; + +typedef struct autofs_v5_packet autofs_packet_missing_direct_t; + +typedef struct autofs_v5_packet autofs_packet_expire_direct_t; + +union autofs_v5_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_v5_packet v5_packet; + autofs_packet_missing_indirect_t missing_indirect; + autofs_packet_expire_indirect_t expire_indirect; + autofs_packet_missing_direct_t missing_direct; + autofs_packet_expire_direct_t expire_direct; +}; + +struct rsa_mpi_key { + MPI n; + MPI e; + MPI d; + MPI p; + MPI q; + MPI dp; + MPI dq; + MPI qinv; +}; + +struct rsa_key { + const u8 *n; + const u8 *e; + const u8 *d; + const u8 *p; + const u8 *q; + const u8 *dp; + const u8 *dq; + const u8 *qinv; + size_t n_sz; + size_t e_sz; + size_t d_sz; + size_t p_sz; + size_t q_sz; + size_t dp_sz; + size_t dq_sz; + size_t qinv_sz; +}; + +struct xor_block_template { + struct xor_block_template *next; + const char *name; + int speed; + void (*do_2)(unsigned long, unsigned long * restrict, const unsigned long * restrict); + void (*do_3)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict); + void (*do_4)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict); + void (*do_5)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict); +}; + +enum { + IOU_POLL_DONE = 0, + IOU_POLL_NO_ACTION = 1, + IOU_POLL_REMOVE_POLL_USE_RES = 2, + IOU_POLL_REISSUE = 3, + IOU_POLL_REQUEUE = 4, +}; + +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, +}; + +struct io_poll_update { + struct file *file; + u64 old_user_data; + u64 new_user_data; + __poll_t events; + bool update_events; + bool update_user_data; +}; + +struct io_poll_table { + struct poll_table_struct pt; + struct io_kiocb *req; + int nr_entries; + int error; + bool owning; + __poll_t result_mask; +}; + +struct io_issue_def { + unsigned int needs_file: 1; + unsigned int plug: 1; + unsigned int hash_reg_file: 1; + unsigned int unbound_nonreg_file: 1; + unsigned int pollin: 1; + unsigned int pollout: 1; + unsigned int poll_exclusive: 1; + unsigned int buffer_select: 1; + unsigned int not_supported: 1; + unsigned int audit_skip: 1; + unsigned int ioprio: 1; + unsigned int iopoll: 1; + unsigned int iopoll_queue: 1; + unsigned int manual_alloc: 1; + unsigned int vectored: 1; + int (*issue)(struct io_kiocb *, unsigned int); + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); +}; + +struct ldsem_waiter { + struct list_head list; + struct task_struct *task; +}; + +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); +}; + +enum iwl_ppag_flags { + IWL_PPAG_ETSI_MASK = 1, + IWL_PPAG_CHINA_MASK = 2, + IWL_PPAG_ETSI_LPI_UHB_MASK = 4, + IWL_PPAG_ETSI_VLP_UHB_MASK = 8, + IWL_PPAG_ETSI_SP_UHB_MASK = 16, + IWL_PPAG_USA_LPI_UHB_MASK = 32, + IWL_PPAG_USA_VLP_UHB_MASK = 64, + IWL_PPAG_USA_SP_UHB_MASK = 128, + IWL_PPAG_CANADA_LPI_UHB_MASK = 256, + IWL_PPAG_CANADA_VLP_UHB_MASK = 512, + IWL_PPAG_CANADA_SP_UHB_MASK = 1024, +}; + +enum iwl_dsm_values_indonesia { + DSM_VALUE_INDONESIA_DISABLE = 0, + DSM_VALUE_INDONESIA_ENABLE = 1, + DSM_VALUE_INDONESIA_RESERVED = 2, + DSM_VALUE_INDONESIA_MAX = 3, +}; + +enum iwl_lari_config_masks { + LARI_CONFIG_DISABLE_11AC_UKRAINE_MSK = 1, + LARI_CONFIG_CHANGE_ETSI_TO_PASSIVE_MSK = 2, + LARI_CONFIG_CHANGE_ETSI_TO_DISABLED_MSK = 4, + LARI_CONFIG_ENABLE_5G2_IN_INDONESIA_MSK = 8, + LARI_CONFIG_ENABLE_CHINA_22_REG_SUPPORT_MSK = 128, +}; + +enum iwl_dsm_values_srd { + DSM_VALUE_SRD_ACTIVE = 0, + DSM_VALUE_SRD_PASSIVE = 1, + DSM_VALUE_SRD_DISABLE = 2, + DSM_VALUE_SRD_MAX = 3, +}; + +enum iwl_dsm_masks_reg { + DSM_MASK_CHINA_22_REG = 4, +}; + +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, +}; + +struct efifb_dmi_info { + char *optname; + unsigned long base; + int stride; + int width; + int height; + int flags; +}; + +enum { + M_I17 = 0, + M_I20 = 1, + M_I20_SR = 2, + M_I24 = 3, + M_I24_8_1 = 4, + M_I24_10_1 = 5, + M_I27_11_1 = 6, + M_MINI = 7, + M_MINI_3_1 = 8, + M_MINI_4_1 = 9, + M_MB = 10, + M_MB_2 = 11, + M_MB_3 = 12, + M_MB_5_1 = 13, + M_MB_6_1 = 14, + M_MB_7_1 = 15, + M_MB_SR = 16, + M_MBA = 17, + M_MBA_3 = 18, + M_MBP = 19, + M_MBP_2 = 20, + M_MBP_2_2 = 21, + M_MBP_SR = 22, + M_MBP_4 = 23, + M_MBP_5_1 = 24, + M_MBP_5_2 = 25, + M_MBP_5_3 = 26, + M_MBP_6_1 = 27, + M_MBP_6_2 = 28, + M_MBP_7_1 = 29, + M_MBP_8_2 = 30, + M_UNKNOWN = 31, +}; + +enum { + OVERRIDE_NONE = 0, + OVERRIDE_BASE = 1, + OVERRIDE_STRIDE = 2, + OVERRIDE_HEIGHT = 4, + OVERRIDE_WIDTH = 8, +}; + +enum netdev_lag_tx_type { + NETDEV_LAG_TX_TYPE_UNKNOWN = 0, + NETDEV_LAG_TX_TYPE_RANDOM = 1, + NETDEV_LAG_TX_TYPE_BROADCAST = 2, + NETDEV_LAG_TX_TYPE_ROUNDROBIN = 3, + NETDEV_LAG_TX_TYPE_ACTIVEBACKUP = 4, + NETDEV_LAG_TX_TYPE_HASH = 5, +}; + +enum netdev_lag_hash { + NETDEV_LAG_HASH_NONE = 0, + NETDEV_LAG_HASH_L2 = 1, + NETDEV_LAG_HASH_L34 = 2, + NETDEV_LAG_HASH_L23 = 3, + NETDEV_LAG_HASH_E23 = 4, + NETDEV_LAG_HASH_E34 = 5, + NETDEV_LAG_HASH_VLAN_SRCMAC = 6, + NETDEV_LAG_HASH_UNKNOWN = 7, +}; + +struct netdev_lag_upper_info { + enum netdev_lag_tx_type tx_type; + enum netdev_lag_hash hash_type; +}; + +enum { + ETHTOOL_A_CHANNELS_UNSPEC = 0, + ETHTOOL_A_CHANNELS_HEADER = 1, + ETHTOOL_A_CHANNELS_RX_MAX = 2, + ETHTOOL_A_CHANNELS_TX_MAX = 3, + ETHTOOL_A_CHANNELS_OTHER_MAX = 4, + ETHTOOL_A_CHANNELS_COMBINED_MAX = 5, + ETHTOOL_A_CHANNELS_RX_COUNT = 6, + ETHTOOL_A_CHANNELS_TX_COUNT = 7, + ETHTOOL_A_CHANNELS_OTHER_COUNT = 8, + ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9, + __ETHTOOL_A_CHANNELS_CNT = 10, + ETHTOOL_A_CHANNELS_MAX = 9, +}; + +struct channels_reply_data { + struct ethnl_reply_data base; + struct ethtool_channels channels; +}; + +struct nf_nat_range { + unsigned int flags; + union nf_inet_addr min_addr; + union nf_inet_addr max_addr; + union nf_conntrack_man_proto min_proto; + union nf_conntrack_man_proto max_proto; +}; + +enum nexthop_event_type { + NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, + NEXTHOP_EVENT_HW_STATS_REPORT_DELTA = 4, +}; + +enum nh_notifier_info_type { + NH_NOTIFIER_INFO_TYPE_SINGLE = 0, + NH_NOTIFIER_INFO_TYPE_GRP = 1, + NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2, + NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3, + NH_NOTIFIER_INFO_TYPE_GRP_HW_STATS = 4, +}; + +enum { + NHA_UNSPEC = 0, + NHA_ID = 1, + NHA_GROUP = 2, + NHA_GROUP_TYPE = 3, + NHA_BLACKHOLE = 4, + NHA_OIF = 5, + NHA_GATEWAY = 6, + NHA_ENCAP_TYPE = 7, + NHA_ENCAP = 8, + NHA_GROUPS = 9, + NHA_MASTER = 10, + NHA_FDB = 11, + NHA_RES_GROUP = 12, + NHA_RES_BUCKET = 13, + NHA_OP_FLAGS = 14, + NHA_GROUP_STATS = 15, + NHA_HW_STATS_ENABLE = 16, + NHA_HW_STATS_USED = 17, + __NHA_MAX = 18, +}; + +enum { + NEXTHOP_GRP_TYPE_MPATH = 0, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, +}; + +enum { + NHA_RES_GROUP_UNSPEC = 0, + NHA_RES_GROUP_PAD = 0, + NHA_RES_GROUP_BUCKETS = 1, + NHA_RES_GROUP_IDLE_TIMER = 2, + NHA_RES_GROUP_UNBALANCED_TIMER = 3, + NHA_RES_GROUP_UNBALANCED_TIME = 4, + __NHA_RES_GROUP_MAX = 5, +}; + +enum { + NHA_GROUP_STATS_UNSPEC = 0, + NHA_GROUP_STATS_ENTRY = 1, + __NHA_GROUP_STATS_MAX = 2, +}; + +enum { + NHA_GROUP_STATS_ENTRY_UNSPEC = 0, + NHA_GROUP_STATS_ENTRY_ID = 1, + NHA_GROUP_STATS_ENTRY_PACKETS = 2, + NHA_GROUP_STATS_ENTRY_PACKETS_HW = 3, + __NHA_GROUP_STATS_ENTRY_MAX = 4, +}; + +enum { + NHA_RES_BUCKET_UNSPEC = 0, + NHA_RES_BUCKET_PAD = 0, + NHA_RES_BUCKET_INDEX = 1, + NHA_RES_BUCKET_IDLE_TIME = 2, + NHA_RES_BUCKET_NH_ID = 3, + __NHA_RES_BUCKET_MAX = 4, +}; + +struct nh_notifier_single_info; + +struct nh_notifier_grp_info; + +struct nh_notifier_res_table_info; + +struct nh_notifier_res_bucket_info; + +struct nh_notifier_grp_hw_stats_info; + +struct nh_notifier_info { + struct net *net; + struct netlink_ext_ack *extack; + u32 id; + enum nh_notifier_info_type type; + union { + struct nh_notifier_single_info *nh; + struct nh_notifier_grp_info *nh_grp; + struct nh_notifier_res_table_info *nh_res_table; + struct nh_notifier_res_bucket_info *nh_res_bucket; + struct nh_notifier_grp_hw_stats_info *nh_grp_hw_stats; + }; +}; + +struct nh_notifier_single_info { + struct net_device *dev; + u8 gw_family; + union { + __be32 ipv4; + struct in6_addr ipv6; + }; + u32 id; + u8 is_reject: 1; + u8 is_fdb: 1; + u8 has_encap: 1; +}; + +struct nh_notifier_grp_entry_info { + u8 weight; + struct nh_notifier_single_info nh; +}; + +struct nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + bool hw_stats; + struct nh_notifier_grp_entry_info nh_entries[0]; +}; + +struct nh_notifier_res_table_info { + u16 num_nh_buckets; + bool hw_stats; + struct nh_notifier_single_info nhs[0]; +}; + +struct nh_notifier_res_bucket_info { + u16 bucket_index; + unsigned int idle_timer_ms; + bool force; + struct nh_notifier_single_info old_nh; + struct nh_notifier_single_info new_nh; +}; + +struct nh_notifier_grp_hw_stats_entry_info { + u32 id; + u64 packets; +}; + +struct nh_notifier_grp_hw_stats_info { + u16 num_nh; + bool hw_stats_used; + struct nh_notifier_grp_hw_stats_entry_info stats[0]; +}; + +struct nh_config { + u32 nh_id; + u8 nh_family; + u8 nh_protocol; + u8 nh_blackhole; + u8 nh_fdb; + u32 nh_flags; + int nh_ifindex; + struct net_device *dev; + union { + __be32 ipv4; + struct in6_addr ipv6; + } gw; + struct nlattr *nh_grp; + u16 nh_grp_type; + u16 nh_grp_res_num_buckets; + unsigned long nh_grp_res_idle_timer; + unsigned long nh_grp_res_unbalanced_timer; + bool nh_grp_res_has_num_buckets; + bool nh_grp_res_has_idle_timer; + bool nh_grp_res_has_unbalanced_timer; + bool nh_hw_stats; + struct nlattr *nh_encap; + u16 nh_encap_type; + u32 nlflags; + struct nl_info nlinfo; +}; + +struct nhmsg { + unsigned char nh_family; + unsigned char nh_scope; + unsigned char nh_protocol; + unsigned char resvd; + unsigned int nh_flags; +}; + +struct nexthop_grp { + __u32 id; + __u8 weight; + __u8 resvd1; + __u16 resvd2; +}; + +struct nh_dump_filter { + u32 nh_id; + int dev_idx; + int master_idx; + bool group_filter; + bool fdb_filter; + u32 res_bucket_nh_id; + u32 op_flags; +}; + +struct rtm_dump_nh_ctx { + u32 idx; +}; + +struct rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; +}; + +struct rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; +}; + +enum s2idle_states { + S2IDLE_STATE_NONE = 0, + S2IDLE_STATE_ENTER = 1, + S2IDLE_STATE_WAKE = 2, +}; + +enum { + TEST_NONE = 0, + TEST_CORE = 1, + TEST_CPUS = 2, + TEST_PLATFORM = 3, + TEST_DEVICES = 4, + TEST_FREEZER = 5, + __TEST_AFTER_LAST = 6, +}; + +typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); + +typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int); + +typedef void (*btf_trace_rpm_status)(void *, struct device *, enum rpm_status); + +struct trace_event_raw_rpm_internal { + struct trace_entry ent; + u32 __data_loc_name; + int flags; + int usage_count; + int disable_depth; + int runtime_auto; + int request_pending; + int irq_safe; + int child_count; + char __data[0]; +}; + +struct trace_event_raw_rpm_return_int { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long ip; + int ret; + char __data[0]; +}; + +struct trace_event_raw_rpm_status { + struct trace_entry ent; + u32 __data_loc_name; + int status; + char __data[0]; +}; + +struct trace_event_data_offsets_rpm_internal { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_return_int { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_rpm_status { + u32 name; + const void *name_ptr_; +}; + +struct xol_area { + wait_queue_head_t wq; + atomic_t slot_count; + unsigned long *bitmap; + struct vm_special_mapping xol_mapping; + struct page *pages[2]; + unsigned long vaddr; +}; + +struct uprobe { + struct rb_node rb_node; + refcount_t ref; + struct rw_semaphore register_rwsem; + struct rw_semaphore consumer_rwsem; + struct list_head pending_list; + struct uprobe_consumer *consumers; + struct inode *inode; + loff_t offset; + loff_t ref_ctr_offset; + unsigned long flags; + struct arch_uprobe arch; +}; + +typedef u8 uprobe_opcode_t; + +struct delayed_uprobe { + struct list_head list; + struct uprobe *uprobe; + struct mm_struct *mm; +}; + +struct __uprobe_key { + struct inode *inode; + loff_t offset; +}; + +struct map_info___2 { + struct map_info___2 *next; + struct mm_struct *mm; + unsigned long vaddr; +}; + +typedef void (*btf_trace_hugepage_set_pmd)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_hugepage_set_pud)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_hugepage_update_pmd)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_hugepage_update_pud)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_set_migration_pmd)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_remove_migration_pmd)(void *, unsigned long, unsigned long); + +enum rmap_level { + RMAP_LEVEL_PTE = 0, + RMAP_LEVEL_PMD = 1, +}; + +struct trace_event_raw_hugepage_set { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + char __data[0]; +}; + +struct trace_event_raw_hugepage_update { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + unsigned long clr; + unsigned long set; + char __data[0]; +}; + +struct trace_event_raw_migration_pmd { + struct trace_entry ent; + unsigned long addr; + unsigned long pmd; + char __data[0]; +}; + +struct thpsize { + struct kobject kobj; + struct list_head node; + int order; +}; + +struct trace_event_data_offsets_hugepage_set {}; + +struct trace_event_data_offsets_hugepage_update {}; + +struct trace_event_data_offsets_migration_pmd {}; + +struct ext4_attr { + struct attribute attr; + short attr_id; + short attr_ptr; + unsigned short attr_size; + union { + int offset; + void *explicit_ptr; + } u; +}; + +enum { + attr_noop = 0, + attr_delayed_allocation_blocks = 1, + attr_session_write_kbytes = 2, + attr_lifetime_write_kbytes = 3, + attr_reserved_clusters = 4, + attr_sra_exceeded_retry_limit = 5, + attr_inode_readahead = 6, + attr_trigger_test_error = 7, + attr_first_error_time = 8, + attr_last_error_time = 9, + attr_feature = 10, + attr_pointer_ui = 11, + attr_pointer_ul = 12, + attr_pointer_u64 = 13, + attr_pointer_u8 = 14, + attr_pointer_string = 15, + attr_pointer_atomic = 16, + attr_journal_task = 17, +}; + +enum { + ptr_explicit = 0, + ptr_ext4_sb_info_offset = 1, + ptr_ext4_super_block_offset = 2, +}; + +struct bd_holder_disk { + struct list_head list; + struct kobject *holder_dir; + int refcnt; +}; + +enum { + IOU_PBUF_RING_MMAP = 1, +}; + +struct io_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u32 nbufs; + __u16 bid; +}; + +struct io_buf_free { + struct hlist_node list; + void *mem; + size_t size; + int inuse; +}; + +struct io_uring_buf_reg { + __u64 ring_addr; + __u32 ring_entries; + __u16 bgid; + __u16 flags; + __u64 resv[3]; +}; + +struct io_uring_buf_status { + __u32 buf_group; + __u32 head; + __u32 resv[8]; +}; + +struct acpi_lpat { + int temp; + int raw; +}; + +struct acpi_lpat_conversion_table { + struct acpi_lpat *lpat; + int lpat_count; +}; + +typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); + +struct clk_gate { struct clk_hw hw; void *reg; - const u32 *table; - u32 mask; - u8 shift; + u8 bit_idx; u8 flags; spinlock_t *lock; }; -typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); - -struct ata_scsi_args { - struct ata_device *dev; - u16 *id; - struct scsi_cmnd *cmd; +struct timer_rand_state { + unsigned long last_time; + long last_delta; + long last_delta2; }; -struct iwl_fw_paging_cmd { - __le32 flags; - __le32 block_size; - __le32 block_num; - __le32 device_phy_addr[33]; +enum { + CRNG_EMPTY = 0, + CRNG_EARLY = 1, + CRNG_READY = 2, }; -struct gnet_estimator { - signed char interval; - unsigned char ewma_log; +struct batch_u8 { + u8 entropy[96]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -enum offload_act_command { - FLOW_ACT_REPLACE = 0, - FLOW_ACT_DESTROY = 1, - FLOW_ACT_STATS = 2, +struct batch_u16 { + u16 entropy[48]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *)); - -struct flow_indr_dev { - struct list_head list; - flow_indr_block_bind_cb_t *cb; - void *cb_priv; - refcount_t refcnt; +struct batch_u32 { + u32 entropy[24]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -struct flow_indir_dev_info { - void *data; - struct net_device *dev; - struct Qdisc *sch; - enum tc_setup_type type; - void (*cleanup)(struct flow_block_cb *); - struct list_head list; - enum flow_block_command command; - enum flow_block_binder_type binder_type; - struct list_head *cb_list; +struct batch_u64 { + u64 entropy[12]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -struct flow_offload_action { - struct netlink_ext_ack *extack; - enum offload_act_command command; - enum flow_action_id id; - u32 index; - unsigned long cookie; - struct flow_stats stats; - struct flow_action action; +struct crng { + u8 key[32]; + unsigned long generation; + local_lock_t lock; }; -struct flow_match_meta { - struct flow_dissector_key_meta *key; - struct flow_dissector_key_meta *mask; +struct fast_pool { + unsigned long pool[4]; + unsigned long last; + unsigned int count; + struct timer_list mix; }; -struct flow_match_control { - struct flow_dissector_key_control *key; - struct flow_dissector_key_control *mask; +enum { + NUM_TRIAL_SAMPLES = 8192, + MAX_SAMPLES_PER_BIT = 66, }; -struct flow_match_arp { - struct flow_dissector_key_arp *key; - struct flow_dissector_key_arp *mask; +enum { + MIX_INFLIGHT = 2147483648, }; -struct flow_match_ipv4_addrs { - struct flow_dissector_key_ipv4_addrs *key; - struct flow_dissector_key_ipv4_addrs *mask; +enum chacha_constants { + CHACHA_CONSTANT_EXPA = 1634760805, + CHACHA_CONSTANT_ND_3 = 857760878, + CHACHA_CONSTANT_2_BY = 2036477234, + CHACHA_CONSTANT_TE_K = 1797285236, }; -struct flow_match_ipv6_addrs { - struct flow_dissector_key_ipv6_addrs *key; - struct flow_dissector_key_ipv6_addrs *mask; +enum { + POOL_BITS = 256, + POOL_READY_BITS = 256, + POOL_EARLY_BITS = 128, }; -struct flow_match_ip { - struct flow_dissector_key_ip *key; - struct flow_dissector_key_ip *mask; +enum { + CRNG_RESEED_START_INTERVAL = 1000, + CRNG_RESEED_INTERVAL = 60000, }; -struct flow_match_ports { - struct flow_dissector_key_ports *key; - struct flow_dissector_key_ports *mask; +struct entropy_timer_state { + unsigned long entropy; + struct timer_list timer; + atomic_t samples; + unsigned int samples_per_bit; }; -struct flow_dissector_key_ports_range; +struct led_trigger {}; -struct flow_match_ports_range { - struct flow_dissector_key_ports_range *key; - struct flow_dissector_key_ports_range *mask; +enum rc_filter_type { + RC_FILTER_NORMAL = 0, + RC_FILTER_WAKEUP = 1, + RC_FILTER_MAX = 2, }; -struct flow_dissector_key_ports_range { +struct rc_filter_attribute { + struct device_attribute attr; + enum rc_filter_type type; + bool mask; +}; + +struct pppoe_tag { + __be16 tag_type; + __be16 tag_len; + char tag_data[0]; +}; + +struct pppoe_hdr { + __u8 type: 4; + __u8 ver: 4; + __u8 code; + __be16 sid; + __be16 length; + struct pppoe_tag tag[0]; +}; + +struct flow_dissector_key { + enum flow_dissector_key_id key_id; + size_t offset; +}; + +enum { + TCA_FLOWER_KEY_CT_FLAGS_NEW = 1, + TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 2, + TCA_FLOWER_KEY_CT_FLAGS_RELATED = 4, + TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 8, + TCA_FLOWER_KEY_CT_FLAGS_INVALID = 16, + TCA_FLOWER_KEY_CT_FLAGS_REPLY = 32, + __TCA_FLOWER_KEY_CT_FLAGS_MAX = 33, +}; + +enum flow_dissect_ret { + FLOW_DISSECT_RET_OUT_GOOD = 0, + FLOW_DISSECT_RET_OUT_BAD = 1, + FLOW_DISSECT_RET_PROTO_AGAIN = 2, + FLOW_DISSECT_RET_IPPROTO_AGAIN = 3, + FLOW_DISSECT_RET_CONTINUE = 4, +}; + +enum bpf_ret_code { + BPF_OK = 0, + BPF_DROP = 2, + BPF_REDIRECT = 7, + BPF_LWT_REROUTE = 128, + BPF_FLOW_DISSECTOR_CONTINUE = 129, +}; + +enum batadv_packettype { + BATADV_IV_OGM = 0, + BATADV_BCAST = 1, + BATADV_CODED = 2, + BATADV_ELP = 3, + BATADV_OGM2 = 4, + BATADV_MCAST = 5, + BATADV_UNICAST = 64, + BATADV_UNICAST_FRAG = 65, + BATADV_UNICAST_4ADDR = 66, + BATADV_ICMP = 67, + BATADV_UNICAST_TVLV = 68, +}; + +struct _flow_keys_digest_data { + __be16 n_proto; + u8 ip_proto; + u8 padding; + __be32 ports; + __be32 src; + __be32 dst; +}; + +struct batadv_unicast_packet { + __u8 packet_type; + __u8 version; + __u8 ttl; + __u8 ttvn; + __u8 dest[6]; +}; + +struct tipc_basic_hdr { + __be32 w[4]; +}; + +struct flow_dissector_key_cfm { + u8 mdl_ver; + u8 opcode; +}; + +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; + __u8 enc_data[0]; +}; + +struct nf_conn_labels { + unsigned long bits[2]; +}; + +struct flow_dissector_key_hash { + u32 hash; +}; + +struct hsr_tag { + __be16 path_and_LSDU_size; + __be16 sequence_nr; + __be16 encap_proto; +}; + +struct flow_dissector_key_num_of_vlans { + u8 num_of_vlans; +}; + +struct flow_keys_digest { + u8 data[16]; +}; + +enum nf_ct_sysctl_index { + NF_SYSCTL_CT_MAX = 0, + NF_SYSCTL_CT_COUNT = 1, + NF_SYSCTL_CT_BUCKETS = 2, + NF_SYSCTL_CT_CHECKSUM = 3, + NF_SYSCTL_CT_LOG_INVALID = 4, + NF_SYSCTL_CT_EXPECT_MAX = 5, + NF_SYSCTL_CT_ACCT = 6, + NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 7, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 8, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 9, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 10, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 11, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 12, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 13, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 14, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 15, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 16, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 17, + NF_SYSCTL_CT_PROTO_TCP_LOOSE = 18, + NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 19, + NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 20, + NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 21, + NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 22, + NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 23, + NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 24, + NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 25, + __NF_SYSCTL_CT_LAST_SYSCTL = 26, +}; + +enum udp_conntrack { + UDP_CT_UNREPLIED = 0, + UDP_CT_REPLIED = 1, + UDP_CT_MAX = 2, +}; + +struct ct_iter_state { + struct seq_net_private p; + struct hlist_nulls_head *hash; + unsigned int htable_size; + unsigned int bucket; + u_int64_t time_now; +}; + +struct tcp_seq_afinfo { + sa_family_t family; +}; + +enum tcp_tw_status { + TCP_TW_SUCCESS = 0, + TCP_TW_RST = 1, + TCP_TW_ACK = 2, + TCP_TW_SYN = 3, +}; + +enum tcp_seq_states { + TCP_SEQ_STATE_LISTENING = 0, + TCP_SEQ_STATE_ESTABLISHED = 1, +}; + +struct tcp_ao_hdr { + u8 kind; + u8 length; + u8 keyid; + u8 rnext_keyid; +}; + +struct tcp_iter_state { + struct seq_net_private p; + enum tcp_seq_states state; + struct sock *syn_wait_sk; + int bucket; + int offset; + int sbucket; + int num; + loff_t last_pos; +}; + +struct bpf_iter__tcp { union { - struct flow_dissector_key_ports tp; + struct bpf_iter_meta *meta; + }; + union { + struct sock_common *sk_common; + }; + uid_t uid; +}; + +struct bpf_tcp_iter_state { + struct tcp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + struct sock **batch; + bool st_bucket_done; +}; + +enum { + HP_THREAD_NONE = 0, + HP_THREAD_ACTIVE = 1, + HP_THREAD_PARKED = 2, +}; + +struct smpboot_thread_data { + unsigned int cpu; + unsigned int status; + struct smp_hotplug_thread *ht; +}; + +enum freezer_state_flags { + CGROUP_FREEZER_ONLINE = 1, + CGROUP_FREEZING_SELF = 2, + CGROUP_FREEZING_PARENT = 4, + CGROUP_FROZEN = 8, + CGROUP_FREEZING = 6, +}; + +struct freezer { + struct cgroup_subsys_state css; + unsigned int state; +}; + +typedef int fpb_t; + +typedef unsigned int pgtbl_mod_mask; + +struct copy_subpage_arg { + struct page *dst; + struct page *src; + struct vm_area_struct *vma; +}; + +typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, u64, unsigned int, struct iomap *); + +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); + +typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); + +typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); + +struct trace_event_raw_iomap_readpage_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + int nr_pages; + char __data[0]; +}; + +struct trace_event_raw_iomap_range_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + loff_t size; + loff_t offset; + u64 length; + char __data[0]; +}; + +struct trace_event_raw_iomap_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + u64 addr; + loff_t offset; + u64 length; + u16 type; + u16 flags; + dev_t bdev; + char __data[0]; +}; + +struct trace_event_raw_iomap_writepage_map { + struct trace_entry ent; + dev_t dev; + u64 ino; + u64 pos; + u64 dirty_len; + u64 addr; + loff_t offset; + u64 length; + u16 type; + u16 flags; + dev_t bdev; + char __data[0]; +}; + +struct trace_event_raw_iomap_iter { + struct trace_entry ent; + dev_t dev; + u64 ino; + loff_t pos; + u64 length; + s64 processed; + unsigned int flags; + const void *ops; + unsigned long caller; + char __data[0]; +}; + +struct trace_event_raw_iomap_dio_rw_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + size_t done_before; + int ki_flags; + unsigned int dio_flags; + bool aio; + char __data[0]; +}; + +struct trace_event_raw_iomap_dio_complete { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + int ki_flags; + bool aio; + int error; + ssize_t ret; + char __data[0]; +}; + +struct trace_event_data_offsets_iomap_readpage_class {}; + +struct trace_event_data_offsets_iomap_range_class {}; + +struct trace_event_data_offsets_iomap_class {}; + +struct trace_event_data_offsets_iomap_writepage_map {}; + +struct trace_event_data_offsets_iomap_iter {}; + +struct trace_event_data_offsets_iomap_dio_rw_begin {}; + +struct trace_event_data_offsets_iomap_dio_complete {}; + +enum { + RANGE_BOUNDARY_WRITTEN_EXTENT = 0, + RANGE_BOUNDARY_PREALLOC_EXTENT = 1, + RANGE_BOUNDARY_HOLE = 2, +}; + +struct falloc_range { + struct list_head list; + u64 start; + u64 len; +}; + +enum bio_merge_status { + BIO_MERGE_OK = 0, + BIO_MERGE_NONE = 1, + BIO_MERGE_FAILED = 2, +}; + +struct io_madvise { + struct file *file; + u64 addr; + u32 len; + u32 advice; +}; + +struct io_fadvise { + struct file *file; + u64 offset; + u32 len; + u32 advice; +}; + +struct lwq { + spinlock_t lock; + struct llist_node *ready; + struct llist_head new; +}; + +struct once_work { + struct work_struct work; + struct static_key_true *key; + struct module *module; +}; + +struct acpi_gpe_walk_info { + struct acpi_namespace_node *gpe_device; + struct acpi_gpe_block_info *gpe_block; + u16 count; + acpi_owner_id owner_id; + u8 execute_by_owner_id; +}; + +typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); + +struct clk_parent_map; + +struct clk_core { + const char *name; + const struct clk_ops *ops; + struct clk_hw *hw; + struct module *owner; + struct device *dev; + struct device_node *of_node; + struct clk_core *parent; + struct clk_parent_map *parents; + u8 num_parents; + u8 new_parent_index; + unsigned long rate; + unsigned long req_rate; + unsigned long new_rate; + struct clk_core *new_parent; + struct clk_core *new_child; + unsigned long flags; + bool orphan; + bool rpm_enabled; + unsigned int enable_count; + unsigned int prepare_count; + unsigned int protect_count; + unsigned long min_rate; + unsigned long max_rate; + unsigned long accuracy; + int phase; + struct clk_duty duty; + struct hlist_head children; + struct hlist_node child_node; + struct hlist_head clks; + unsigned int notifier_count; + struct dentry *dentry; + struct hlist_node debug_node; + struct kref ref; +}; + +struct clk_parent_map { + const struct clk_hw *hw; + struct clk_core *core; + const char *fw_name; + const char *name; + int index; +}; + +typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); + +typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); + +typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); + +struct clk_notifier { + struct clk *clk; + struct srcu_notifier_head notifier_head; + struct list_head node; +}; + +struct trace_event_raw_clk { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_clk_rate { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long rate; + char __data[0]; +}; + +struct trace_event_raw_clk_rate_range { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long min; + unsigned long max; + char __data[0]; +}; + +struct trace_event_raw_clk_parent { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + char __data[0]; +}; + +struct trace_event_raw_clk_phase { + struct trace_entry ent; + u32 __data_loc_name; + int phase; + char __data[0]; +}; + +struct trace_event_raw_clk_duty_cycle { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int num; + unsigned int den; + char __data[0]; +}; + +struct trace_event_raw_clk_rate_request { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + unsigned long min; + unsigned long max; + unsigned long prate; + char __data[0]; +}; + +struct trace_event_data_offsets_clk { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate_range { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_parent { + u32 name; + const void *name_ptr_; + u32 pname; + const void *pname_ptr_; +}; + +struct trace_event_data_offsets_clk_phase { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_duty_cycle { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_clk_rate_request { + u32 name; + const void *name_ptr_; + u32 pname; + const void *pname_ptr_; +}; + +struct clk_notifier_data { + struct clk *clk; + unsigned long old_rate; + unsigned long new_rate; +}; + +struct clk_notifier_devres { + struct clk *clk; + struct notifier_block *nb; +}; + +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); + +enum mdio_mutex_lock_class { + MDIO_MUTEX_NORMAL = 0, + MDIO_MUTEX_MUX = 1, + MDIO_MUTEX_NESTED = 2, +}; + +struct trace_event_raw_mdio_access { + struct trace_entry ent; + char busid[61]; + char read; + u8 addr; + u16 val; + unsigned int regnum; + char __data[0]; +}; + +struct trace_event_data_offsets_mdio_access {}; + +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; +}; + +struct error_table_start___2 { + u32 valid; + u32 error_id; +}; + +enum { + NONE___2 = 0, + ADD = 1, + REMOVE = 2, + HT_RATE_INIT = 3, + ADD_RATE_INIT = 4, +}; + +enum iwl_ibss_manager { + IWL_NOT_IBSS_MANAGER = 0, + IWL_IBSS_MANAGER = 1, +}; + +struct iwlagn_wowlan_status { + __le64 replay_ctr; + __le32 rekey_status; + __le32 wakeup_reason; + u8 pattern_number; + u8 reserved1; + __le16 qos_seq_ctr[8]; + __le16 non_qos_seq_ctr; + __le16 reserved2; + union iwlagn_all_tsc_rsc tsc_rsc; + __le16 reserved3; +} __attribute__((packed)); + +struct iwl_resume_data { + struct iwl_priv *priv; + struct iwlagn_wowlan_status *cmd; + bool valid; +}; + +struct hwmon_type_attr_list { + const u32 *attrs; + size_t n_attrs; +}; + +struct power_supply_hwmon { + struct power_supply *psy; + unsigned long *props; +}; + +struct pstate_data { + int current_pstate; + int min_pstate; + int max_pstate; + int max_pstate_physical; + int perf_ctl_scaling; + int scaling; + int turbo_pstate; + unsigned int min_freq; + unsigned int max_freq; + unsigned int turbo_freq; +}; + +struct vid_data { + int min; + int max; + int turbo; + int32_t ratio; +}; + +struct sample { + int32_t core_avg_perf; + int32_t busy_scaled; + u64 aperf; + u64 mperf; + u64 tsc; + u64 time; +}; + +struct cpudata { + int cpu; + unsigned int policy; + struct update_util_data update_util; + bool update_util_set; + struct pstate_data pstate; + struct vid_data vid; + u64 last_update; + u64 last_sample_time; + u64 aperf_mperf_shift; + u64 prev_aperf; + u64 prev_mperf; + u64 prev_tsc; + struct sample sample; + int32_t min_perf_ratio; + int32_t max_perf_ratio; + struct acpi_processor_performance acpi_perf_data; + bool valid_pss_table; + unsigned int iowait_boost; + s16 epp_powersave; + s16 epp_policy; + s16 epp_default; + s16 epp_cached; + u64 hwp_req_cached; + u64 hwp_cap_cached; + u64 last_io_update; + unsigned int sched_flags; + u32 hwp_boost_min; + bool suspended; + struct delayed_work hwp_notify_work; +}; + +struct pstate_funcs { + int (*get_max)(int); + int (*get_max_physical)(int); + int (*get_min)(int); + int (*get_turbo)(int); + int (*get_scaling)(); + int (*get_cpu_scaling)(int); + int (*get_aperf_mperf_shift)(); + u64 (*get_val)(struct cpudata *, int); + void (*get_vid)(struct cpudata *); +}; + +struct global_params { + bool no_turbo; + bool turbo_disabled; + bool turbo_disabled_mf; + int max_perf_pct; + int min_perf_pct; +}; + +enum energy_perf_value_index___2 { + EPP_INDEX_DEFAULT = 0, + EPP_INDEX_PERFORMANCE = 1, + EPP_INDEX_BALANCE_PERFORMANCE = 2, + EPP_INDEX_BALANCE_POWERSAVE = 3, + EPP_INDEX_POWERSAVE = 4, +}; + +enum acpi_preferred_pm_profiles { + PM_UNSPECIFIED = 0, + PM_DESKTOP = 1, + PM_MOBILE = 2, + PM_WORKSTATION = 3, + PM_ENTERPRISE_SERVER = 4, + PM_SOHO_SERVER = 5, + PM_APPLIANCE_PC = 6, + PM_PERFORMANCE_SERVER = 7, + PM_TABLET = 8, + NR_PM_PROFILES = 9, +}; + +enum { + PSS = 0, + PPC = 1, +}; + +enum nfulnl_attr_config { + NFULA_CFG_UNSPEC = 0, + NFULA_CFG_CMD = 1, + NFULA_CFG_MODE = 2, + NFULA_CFG_NLBUFSIZ = 3, + NFULA_CFG_TIMEOUT = 4, + NFULA_CFG_QTHRESH = 5, + NFULA_CFG_FLAGS = 6, + __NFULA_CFG_MAX = 7, +}; + +enum nfulnl_msg_config_cmds { + NFULNL_CFG_CMD_NONE = 0, + NFULNL_CFG_CMD_BIND = 1, + NFULNL_CFG_CMD_UNBIND = 2, + NFULNL_CFG_CMD_PF_BIND = 3, + NFULNL_CFG_CMD_PF_UNBIND = 4, +}; + +enum nfulnl_msg_types { + NFULNL_MSG_PACKET = 0, + NFULNL_MSG_CONFIG = 1, + NFULNL_MSG_MAX = 2, +}; + +enum nfulnl_attr_type { + NFULA_UNSPEC = 0, + NFULA_PACKET_HDR = 1, + NFULA_MARK = 2, + NFULA_TIMESTAMP = 3, + NFULA_IFINDEX_INDEV = 4, + NFULA_IFINDEX_OUTDEV = 5, + NFULA_IFINDEX_PHYSINDEV = 6, + NFULA_IFINDEX_PHYSOUTDEV = 7, + NFULA_HWADDR = 8, + NFULA_PAYLOAD = 9, + NFULA_PREFIX = 10, + NFULA_UID = 11, + NFULA_SEQ = 12, + NFULA_SEQ_GLOBAL = 13, + NFULA_GID = 14, + NFULA_HWTYPE = 15, + NFULA_HWHEADER = 16, + NFULA_HWLEN = 17, + NFULA_CT = 18, + NFULA_CT_INFO = 19, + NFULA_VLAN = 20, + NFULA_L2HDR = 21, + __NFULA_MAX = 22, +}; + +enum nfulnl_vlan_attr { + NFULA_VLAN_UNSPEC = 0, + NFULA_VLAN_PROTO = 1, + NFULA_VLAN_TCI = 2, + __NFULA_VLAN_MAX = 3, +}; + +struct nfulnl_instance { + struct hlist_node hlist; + spinlock_t lock; + refcount_t use; + unsigned int qlen; + struct sk_buff *skb; + struct timer_list timer; + struct net *net; + netns_tracker ns_tracker; + struct user_namespace *peer_user_ns; + u32 peer_portid; + unsigned int flushtimeout; + unsigned int nlbufsiz; + unsigned int qthreshold; + u_int32_t copy_range; + u_int32_t seq; + u_int16_t group_num; + u_int16_t flags; + u_int8_t copy_mode; + struct callback_head rcu; +}; + +struct nfnl_log_net { + spinlock_t instances_lock; + struct hlist_head instance_table[16]; + atomic_t global_seq; +}; + +struct nfulnl_msg_packet_hdr { + __be16 hw_protocol; + __u8 hook; + __u8 _pad; +}; + +struct nfulnl_msg_packet_hw { + __be16 hw_addrlen; + __u16 _pad; + __u8 hw_addr[8]; +}; + +struct nfulnl_msg_packet_timestamp { + __be64 sec; + __be64 usec; +}; + +struct nfulnl_msg_config_cmd { + __u8 command; +}; + +struct nfulnl_msg_config_mode { + __be32 copy_range; + __u8 copy_mode; + __u8 _pad; +} __attribute__((packed)); + +struct icmp_filter { + __u32 data; +}; + +struct raw_sock { + struct inet_sock inet; + struct icmp_filter filter; + u32 ipmr_table; +}; + +struct raw_frag_vec { + struct msghdr *msg; + union { + struct icmphdr icmph; + char c[1]; + } hdr; + int hlen; +}; + +struct raw_iter_state { + struct seq_net_private p; + int bucket; +}; + +struct cfg80211_mgmt_registration { + struct list_head list; + struct wireless_dev *wdev; + u32 nlportid; + int match_len; + __le16 frame_type; + bool multicast_rx; + u8 match[0]; +}; + +struct intel_uncore_discovery_type { + struct rb_node node; + enum uncore_access_type access_type; + u64 box_ctrl; + u64 *box_ctrl_die; + u16 type; + u8 num_counters; + u8 counter_width; + u8 ctl_offset; + u8 ctr_offset; + u16 num_boxes; + unsigned int *ids; + u64 *box_offset; +}; + +struct uncore_global_discovery { + union { + u64 table1; struct { - struct flow_dissector_key_ports tp_min; - struct flow_dissector_key_ports tp_max; + u64 type: 8; + u64 stride: 8; + u64 max_units: 10; + u64 __reserved_1: 36; + u64 access_type: 2; + }; + }; + u64 ctl; + union { + u64 table3; + struct { + u64 status_offset: 8; + u64 num_status: 16; + u64 __reserved_2: 40; }; }; }; -struct flow_match_tcp { - struct flow_dissector_key_tcp *key; - struct flow_dissector_key_tcp *mask; +struct uncore_unit_discovery { + union { + u64 table1; + struct { + u64 num_regs: 8; + u64 ctl_offset: 8; + u64 bit_width: 8; + u64 ctr_offset: 8; + u64 status_offset: 8; + u64 __reserved_1: 22; + u64 access_type: 2; + }; + }; + u64 ctl; + union { + u64 table3; + struct { + u64 box_type: 16; + u64 box_id: 16; + u64 __reserved_2: 32; + }; + }; }; -struct flow_match_ipsec { - struct flow_dissector_key_ipsec *key; - struct flow_dissector_key_ipsec *mask; +struct tlb_state_shared { + bool is_lazy; }; -struct flow_match_icmp { - struct flow_dissector_key_icmp *key; - struct flow_dissector_key_icmp *mask; +struct flush_tlb_info { + struct mm_struct *mm; + unsigned long start; + unsigned long end; + u64 new_tlb_gen; + unsigned int initiating_cpu; + u8 stride_shift; + u8 freed_tables; }; -struct flow_match_mpls { - struct flow_dissector_key_mpls *key; - struct flow_dissector_key_mpls *mask; +enum tlb_flush_reason { + TLB_FLUSH_ON_TASK_SWITCH = 0, + TLB_REMOTE_SHOOTDOWN = 1, + TLB_LOCAL_SHOOTDOWN = 2, + TLB_LOCAL_MM_SHOOTDOWN = 3, + TLB_REMOTE_SEND_IPI = 4, + NR_TLB_FLUSH_REASONS = 5, }; -struct flow_match_enc_keyid { - struct flow_dissector_key_keyid *key; - struct flow_dissector_key_keyid *mask; +typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); + +typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); + +typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); + +struct cpuhp_cpu_state { + enum cpuhp_state state; + enum cpuhp_state target; + enum cpuhp_state fail; + struct task_struct *thread; + bool should_run; + bool rollback; + bool single; + bool bringup; + struct hlist_node *node; + struct hlist_node *last; + enum cpuhp_state cb_state; + int result; + atomic_t ap_sync_state; + struct completion done_up; + struct completion done_down; }; -struct flow_match_enc_opts { - struct flow_dissector_key_enc_opts *key; - struct flow_dissector_key_enc_opts *mask; +struct cpuhp_step { + const char *name; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } startup; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } teardown; + struct hlist_head list; + bool cant_stop; + bool multi_instance; }; -struct flow_match_ct { - struct flow_dissector_key_ct *key; - struct flow_dissector_key_ct *mask; +enum cpu_mitigations { + CPU_MITIGATIONS_OFF = 0, + CPU_MITIGATIONS_AUTO = 1, + CPU_MITIGATIONS_AUTO_NOSMT = 2, }; -struct flow_match_pppoe { - struct flow_dissector_key_pppoe *key; - struct flow_dissector_key_pppoe *mask; +enum cpuhp_sync_state { + SYNC_STATE_DEAD = 0, + SYNC_STATE_KICKED = 1, + SYNC_STATE_SHOULD_DIE = 2, + SYNC_STATE_ALIVE = 3, + SYNC_STATE_SHOULD_ONLINE = 4, + SYNC_STATE_ONLINE = 5, }; -struct flow_match_l2tpv3 { - struct flow_dissector_key_l2tpv3 *key; - struct flow_dissector_key_l2tpv3 *mask; +struct trace_event_raw_cpuhp_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; }; -struct nf_conntrack_nat_helper { +struct trace_event_raw_cpuhp_multi_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; +}; + +struct trace_event_raw_cpuhp_exit { + struct trace_entry ent; + unsigned int cpu; + int state; + int idx; + int ret; + char __data[0]; +}; + +struct cpu_down_work { + unsigned int cpu; + enum cpuhp_state target; +}; + +struct trace_event_data_offsets_cpuhp_enter {}; + +struct trace_event_data_offsets_cpuhp_multi_enter {}; + +struct trace_event_data_offsets_cpuhp_exit {}; + +struct ftrace_page; + +struct ftrace_rec_iter { + struct ftrace_page *pg; + int index; +}; + +struct ftrace_page { + struct ftrace_page *next; + struct dyn_ftrace *records; + int index; + int order; +}; + +enum ftrace_bug_type { + FTRACE_BUG_UNKNOWN = 0, + FTRACE_BUG_INIT = 1, + FTRACE_BUG_NOP = 2, + FTRACE_BUG_CALL = 3, + FTRACE_BUG_UPDATE = 4, +}; + +enum { + FTRACE_MODIFY_ENABLE_FL = 1, + FTRACE_MODIFY_MAY_SLEEP_FL = 2, +}; + +enum { + FTRACE_ITER_FILTER = 1, + FTRACE_ITER_NOTRACE = 2, + FTRACE_ITER_PRINTALL = 4, + FTRACE_ITER_DO_PROBES = 8, + FTRACE_ITER_PROBE = 16, + FTRACE_ITER_MOD = 32, + FTRACE_ITER_ENABLED = 64, + FTRACE_ITER_TOUCHED = 128, + FTRACE_ITER_ADDRS = 256, +}; + +enum graph_filter_type { + GRAPH_FILTER_NOTRACE = 0, + GRAPH_FILTER_FUNCTION = 1, +}; + +struct ftrace_func_mapper { + struct ftrace_hash hash; +}; + +struct ftrace_func_map { + struct ftrace_func_entry entry; + void *data; +}; + +struct ftrace_func_probe { + struct ftrace_probe_ops *probe_ops; + struct ftrace_ops ops; + struct trace_array *tr; struct list_head list; - char mod_name[16]; + void *data; + int ref; +}; + +struct ftrace_mod_map { + struct callback_head rcu; + struct list_head list; + struct module *mod; + unsigned long start_addr; + unsigned long end_addr; + struct list_head funcs; + unsigned int num_funcs; +}; + +struct ftrace_mod_func { + struct list_head list; + char *name; + unsigned long ip; + unsigned int size; +}; + +struct ftrace_init_func { + struct list_head list; + unsigned long ip; +}; + +struct ftrace_mod_load { + struct list_head list; + char *func; + char *module; + int enable; +}; + +struct ftrace_iterator { + loff_t pos; + loff_t func_pos; + loff_t mod_pos; + struct ftrace_page *pg; + struct dyn_ftrace *func; + struct ftrace_func_probe *probe; + struct ftrace_func_entry *probe_entry; + struct trace_parser parser; + struct ftrace_hash *hash; + struct ftrace_ops *ops; + struct trace_array *tr; + struct list_head *mod_list; + int pidx; + int idx; + unsigned int flags; +}; + +struct ftrace_glob { + char *search; + unsigned int len; + int type; +}; + +struct ftrace_graph_data { + struct ftrace_hash *hash; + struct ftrace_func_entry *entry; + int idx; + enum graph_filter_type type; + struct ftrace_hash *new_hash; + const struct seq_operations *seq_ops; + struct trace_parser parser; +}; + +struct kallsyms_data { + unsigned long *addrs; + const char **syms; + size_t cnt; + size_t found; +}; + +enum hugetlb_memory_event { + HUGETLB_MAX = 0, + HUGETLB_NR_MEMORY_EVENTS = 1, +}; + +enum { + RES_USAGE___2 = 0, + RES_RSVD_USAGE = 1, + RES_LIMIT___2 = 2, + RES_RSVD_LIMIT = 3, + RES_MAX_USAGE___2 = 4, + RES_RSVD_MAX_USAGE = 5, + RES_FAILCNT___2 = 6, + RES_RSVD_FAILCNT = 7, +}; + +enum { + CFTYPE_ONLY_ON_ROOT = 1, + CFTYPE_NOT_ON_ROOT = 2, + CFTYPE_NS_DELEGATABLE = 4, + CFTYPE_NO_PREFIX = 8, + CFTYPE_WORLD_WRITABLE = 16, + CFTYPE_DEBUG = 32, + CFTYPE_HIDDEN = 64, + __CFTYPE_ONLY_ON_DFL = 65536, + __CFTYPE_NOT_ON_DFL = 131072, + __CFTYPE_ADDED = 262144, +}; + +struct ext4_getfsmap_info { + struct ext4_fsmap_head *gfi_head; + ext4_fsmap_format_t gfi_formatter; + void *gfi_format_arg; + ext4_fsblk_t gfi_next_fsblk; + u32 gfi_dev; + ext4_group_t gfi_agno; + struct ext4_fsmap gfi_low; + struct ext4_fsmap gfi_high; + struct ext4_fsmap gfi_lastfree; + struct list_head gfi_meta_list; + bool gfi_last; +}; + +struct ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; +}; + +struct ghash_ctx { + struct gf128mul_4k *gf128; +}; + +struct ghash_desc_ctx { + u8 buffer[16]; + u32 bytes; +}; + +typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); + +typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); + +enum { + KYBER_READ = 0, + KYBER_WRITE = 1, + KYBER_DISCARD = 2, + KYBER_OTHER = 3, + KYBER_NUM_DOMAINS = 4, +}; + +enum { + KYBER_TOTAL_LATENCY = 0, + KYBER_IO_LATENCY = 1, +}; + +enum { + KYBER_LATENCY_SHIFT = 2, + KYBER_GOOD_BUCKETS = 4, + KYBER_LATENCY_BUCKETS = 8, +}; + +enum { + KYBER_ASYNC_PERCENT = 75, +}; + +struct trace_event_raw_kyber_latency { + struct trace_entry ent; + dev_t dev; + char domain[16]; + char type[8]; + u8 percentile; + u8 numerator; + u8 denominator; + unsigned int samples; + char __data[0]; +}; + +struct trace_event_raw_kyber_adjust { + struct trace_entry ent; + dev_t dev; + char domain[16]; + unsigned int depth; + char __data[0]; +}; + +struct trace_event_raw_kyber_throttled { + struct trace_entry ent; + dev_t dev; + char domain[16]; + char __data[0]; +}; + +struct kyber_cpu_latency { + atomic_t buckets[48]; +}; + +struct kyber_queue_data { + struct request_queue *q; + dev_t dev; + struct sbitmap_queue domain_tokens[4]; + unsigned int async_depth; + struct kyber_cpu_latency __attribute__((btf_type_tag("percpu"))) *cpu_latency; + struct timer_list timer; + unsigned int latency_buckets[48]; + unsigned long latency_timeout[3]; + int domain_p99[3]; + u64 latency_targets[3]; +}; + +struct kyber_ctx_queue { + spinlock_t lock; + struct list_head rq_list[4]; +}; + +struct kyber_hctx_data { + spinlock_t lock; + struct list_head rqs[4]; + unsigned int cur_domain; + unsigned int batching; + struct kyber_ctx_queue *kcqs; + struct sbitmap kcq_map[4]; + struct sbq_wait domain_wait[4]; + struct sbq_wait_state *domain_ws[4]; + atomic_t wait_index[4]; +}; + +struct flush_kcq_data { + struct kyber_hctx_data *khd; + unsigned int sched_domain; + struct list_head *list; +}; + +struct trace_event_data_offsets_kyber_latency {}; + +struct trace_event_data_offsets_kyber_adjust {}; + +struct trace_event_data_offsets_kyber_throttled {}; + +typedef struct { + U32 litLength; + U32 matchLength; +} ZSTD_sequenceLength; + +struct pci_dynid { + struct list_head node; + struct pci_device_id id; +}; + +struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; + const struct pci_device_id *id; +}; + +struct cppc_pcc_data { + struct pcc_mbox_chan *pcc_channel; + void *pcc_comm_addr; + bool pcc_channel_acquired; + unsigned int deadline_us; + unsigned int pcc_mpar; + unsigned int pcc_mrtt; + unsigned int pcc_nominal; + bool pending_pcc_write_cmd; + bool platform_owns_pcc; + unsigned int pcc_write_cnt; + struct rw_semaphore pcc_lock; + wait_queue_head_t pcc_write_wait_q; + ktime_t last_cmd_cmpl_time; + ktime_t last_mpar_reset; + int mpar_count; + int refcount; +}; + +struct cpc_register_resource { + acpi_object_type type; + u64 *sys_mem_vaddr; + union { + struct cpc_reg reg; + u64 int_value; + } cpc_entry; +}; + +struct cpc_desc { + int num_entries; + int version; + int cpu_id; + int write_cmd_status; + int write_cmd_id; + struct cpc_register_resource cpc_regs[21]; + struct acpi_psd_package domain_info; + struct kobject kobj; +}; + +enum cppc_regs { + HIGHEST_PERF = 0, + NOMINAL_PERF = 1, + LOW_NON_LINEAR_PERF = 2, + LOWEST_PERF = 3, + GUARANTEED_PERF = 4, + DESIRED_PERF = 5, + MIN_PERF = 6, + MAX_PERF = 7, + PERF_REDUC_TOLERANCE = 8, + TIME_WINDOW = 9, + CTR_WRAP_TIME = 10, + REFERENCE_CTR = 11, + DELIVERED_CTR = 12, + PERF_LIMITED = 13, + ENABLE = 14, + AUTO_SEL_ENABLE = 15, + AUTO_ACT_WINDOW = 16, + ENERGY_PERF = 17, + REFERENCE_PERF = 18, + LOWEST_FREQ = 19, + NOMINAL_FREQ = 20, +}; + +struct cppc_perf_ctrls { + u32 max_perf; + u32 min_perf; + u32 desired_perf; + u32 energy_perf; +}; + +struct cppc_perf_fb_ctrs { + u64 reference; + u64 delivered; + u64 reference_perf; + u64 wraparound_time; +}; + +struct cppc_cpudata { + struct list_head node; + struct cppc_perf_caps perf_caps; + struct cppc_perf_ctrls perf_ctrls; + struct cppc_perf_fb_ctrs perf_fb_ctrs; + unsigned int shared_type; + cpumask_var_t shared_cpu_map; +}; + +struct acpi_pcct_shared_memory { + u32 signature; + u16 command; + u16 status; +}; + +struct ich8_hsflctl { + u16 flcgo: 1; + u16 flcycle: 2; + u16 reserved: 5; + u16 fldbcount: 2; + u16 flockdn: 6; +}; + +union ich8_hws_flash_ctrl { + struct ich8_hsflctl hsf_ctrl; + u16 regval; +}; + +struct ich8_hsfsts { + u16 flcdone: 1; + u16 flcerr: 1; + u16 dael: 1; + u16 berasesz: 2; + u16 flcinprog: 1; + u16 reserved1: 2; + u16 reserved2: 6; + u16 fldesvalid: 1; + u16 flockdn: 1; +}; + +union ich8_hws_flash_status { + struct ich8_hsfsts hsf_status; + u16 regval; +}; + +struct ich8_pr { + u32 base: 13; + u32 reserved1: 2; + u32 rpe: 1; + u32 limit: 13; + u32 reserved2: 2; + u32 wpe: 1; +}; + +union ich8_flash_protected_range { + struct ich8_pr range; + u32 regval; +}; + +struct iwl_rxon_assoc_cmd { + __le32 flags; + __le32 filter_flags; + u8 ofdm_basic_rates; + u8 cck_basic_rates; + __le16 reserved1; + u8 ofdm_ht_single_stream_basic_rates; + u8 ofdm_ht_dual_stream_basic_rates; + u8 ofdm_ht_triple_stream_basic_rates; + u8 reserved2; + __le16 rx_chain_select_flags; + __le16 acquisition_data; + __le32 reserved3; +}; + +struct iwl_calib_chain_noise_reset_cmd { + struct iwl_calib_hdr hdr; + u8 data[0]; +}; + +struct iwl_wipan_slot { + __le16 width; + u8 type; + u8 reserved; +}; + +struct iwl_wipan_params_cmd { + __le16 flags; + u8 reserved; + u8 num_slots; + struct iwl_wipan_slot slots[10]; +}; + +struct class_info { + int class; + char *class_name; +}; + +struct cmos_rtc { + struct rtc_device *rtc; + struct device *dev; + int irq; + struct resource *iomem; + time64_t alarm_expires; + void (*wake_on)(struct device *); + void (*wake_off)(struct device *); + u8 enabled_wake; + u8 suspend_ctrl; + u8 day_alrm; + u8 mon_alrm; + u8 century; + struct rtc_wkalrm saved_wkalrm; +}; + +struct cmos_read_alarm_callback_param { + struct cmos_rtc *cmos; + struct rtc_time *time; + unsigned char rtc_control; +}; + +struct cmos_set_alarm_callback_param { + struct cmos_rtc *cmos; + unsigned char mon; + unsigned char mday; + unsigned char hrs; + unsigned char min; + unsigned char sec; + struct rtc_wkalrm *t; +}; + +struct cmos_rtc_board_info { + void (*wake_on)(struct device *); + void (*wake_off)(struct device *); + u32 flags; + int address_space; + u8 rtc_day_alarm; + u8 rtc_mon_alarm; + u8 rtc_century; +}; + +struct hidraw_report { + __u8 *value; + int len; +}; + +struct hidraw_list { + struct hidraw_report buffer[64]; + int head; + int tail; + struct fasync_struct *fasync; + struct hidraw *hidraw; + struct list_head node; + struct mutex read_mutex; +}; + +struct hidraw_devinfo { + __u32 bustype; + __s16 vendor; + __s16 product; +}; + +struct strset_info { + bool per_dev; + bool free_strings; + unsigned int count; + const char (*strings)[32]; +}; + +enum { + ETHTOOL_A_STRSET_UNSPEC = 0, + ETHTOOL_A_STRSET_HEADER = 1, + ETHTOOL_A_STRSET_STRINGSETS = 2, + ETHTOOL_A_STRSET_COUNTS_ONLY = 3, + __ETHTOOL_A_STRSET_CNT = 4, + ETHTOOL_A_STRSET_MAX = 3, +}; + +enum { + ETHTOOL_A_STRINGSETS_UNSPEC = 0, + ETHTOOL_A_STRINGSETS_STRINGSET = 1, + __ETHTOOL_A_STRINGSETS_CNT = 2, + ETHTOOL_A_STRINGSETS_MAX = 1, +}; + +enum { + ETHTOOL_A_STRINGSET_UNSPEC = 0, + ETHTOOL_A_STRINGSET_ID = 1, + ETHTOOL_A_STRINGSET_COUNT = 2, + ETHTOOL_A_STRINGSET_STRINGS = 3, + __ETHTOOL_A_STRINGSET_CNT = 4, + ETHTOOL_A_STRINGSET_MAX = 3, +}; + +enum { + ETHTOOL_A_STRINGS_UNSPEC = 0, + ETHTOOL_A_STRINGS_STRING = 1, + __ETHTOOL_A_STRINGS_CNT = 2, + ETHTOOL_A_STRINGS_MAX = 1, +}; + +enum { + ETHTOOL_A_STRING_UNSPEC = 0, + ETHTOOL_A_STRING_INDEX = 1, + ETHTOOL_A_STRING_VALUE = 2, + __ETHTOOL_A_STRING_CNT = 3, + ETHTOOL_A_STRING_MAX = 2, +}; + +struct strset_req_info { + struct ethnl_req_info base; + u32 req_ids; + bool counts_only; +}; + +struct strset_reply_data { + struct ethnl_reply_data base; + struct strset_info sets[21]; +}; + +enum nft_dynset_ops { + NFT_DYNSET_OP_ADD = 0, + NFT_DYNSET_OP_UPDATE = 1, + NFT_DYNSET_OP_DELETE = 2, +}; + +enum nft_dynset_attributes { + NFTA_DYNSET_UNSPEC = 0, + NFTA_DYNSET_SET_NAME = 1, + NFTA_DYNSET_SET_ID = 2, + NFTA_DYNSET_OP = 3, + NFTA_DYNSET_SREG_KEY = 4, + NFTA_DYNSET_SREG_DATA = 5, + NFTA_DYNSET_TIMEOUT = 6, + NFTA_DYNSET_EXPR = 7, + NFTA_DYNSET_PAD = 8, + NFTA_DYNSET_FLAGS = 9, + NFTA_DYNSET_EXPRESSIONS = 10, + __NFTA_DYNSET_MAX = 11, +}; + +enum nft_dynset_flags { + NFT_DYNSET_F_INV = 1, + NFT_DYNSET_F_EXPR = 2, +}; + +struct nft_dynset { + struct nft_set *set; + struct nft_set_ext_tmpl tmpl; + enum nft_dynset_ops op: 8; + u8 sreg_key; + u8 sreg_data; + bool invert; + bool expr; + u8 num_exprs; + u64 timeout; + struct nft_expr *expr_array[2]; + struct nft_set_binding binding; +}; + +struct rt0_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr[0]; +}; + +struct ioam6_hdr { + __u8 opt_type; + __u8 opt_len; + char: 8; + __u8 type; +}; + +typedef struct ldttss_desc ldt_desc; + +struct snapshot_data { + struct snapshot_handle handle; + int swap; + int mode; + bool frozen; + bool ready; + bool platform_support; + bool free_bitmaps; + dev_t dev; +}; + +struct resume_swap_area { + __kernel_loff_t offset; + __u32 dev; +} __attribute__((packed)); + +typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); + +typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); + +struct call_function_data { + call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; + cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; +}; + +struct trace_event_raw_csd_queue_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *func; + void *csd; + char __data[0]; +}; + +struct trace_event_raw_csd_function { + struct trace_entry ent; + void *func; + void *csd; + char __data[0]; +}; + +struct smp_call_on_cpu_struct { + struct work_struct work; + struct completion done; + int (*func)(void *); + void *data; + int ret; + int cpu; +}; + +struct trace_event_data_offsets_csd_queue_cpu {}; + +struct trace_event_data_offsets_csd_function {}; + +enum { + IDX_MODULE_ID = 0, + IDX_ST_OPS_COMMON_VALUE_ID = 1, +}; + +struct bpf_struct_ops_value { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + char data[0]; +}; + +struct bpf_struct_ops_map { + struct bpf_map map; + struct callback_head rcu; + const struct bpf_struct_ops_desc *st_ops_desc; + struct mutex lock; + struct bpf_link **links; + u32 links_cnt; + u32 image_pages_cnt; + void *image_pages[8]; + struct btf *btf; + struct bpf_struct_ops_value *uvalue; + struct bpf_struct_ops_value kvalue; +}; + +struct bpf_struct_ops_link { + struct bpf_link link; + struct bpf_map __attribute__((btf_type_tag("rcu"))) *map; +}; + +enum key_notification_subtype { + NOTIFY_KEY_INSTANTIATED = 0, + NOTIFY_KEY_UPDATED = 1, + NOTIFY_KEY_LINKED = 2, + NOTIFY_KEY_UNLINKED = 3, + NOTIFY_KEY_CLEARED = 4, + NOTIFY_KEY_REVOKED = 5, + NOTIFY_KEY_INVALIDATED = 6, + NOTIFY_KEY_SETATTR = 7, +}; + +struct keyring_read_iterator_context { + size_t buflen; + size_t count; + key_serial_t *buffer; +}; + +typedef void (*btf_trace_wbt_stat)(void *, struct backing_dev_info *, struct blk_rq_stat *); + +typedef void (*btf_trace_wbt_lat)(void *, struct backing_dev_info *, unsigned long); + +typedef void (*btf_trace_wbt_step)(void *, struct backing_dev_info *, const char *, int, unsigned long, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_wbt_timer)(void *, struct backing_dev_info *, unsigned int, int, unsigned int); + +enum { + WBT_STATE_ON_DEFAULT = 1, + WBT_STATE_ON_MANUAL = 2, + WBT_STATE_OFF_DEFAULT = 3, + WBT_STATE_OFF_MANUAL = 4, +}; + +enum { + WBT_RWQ_BG = 0, + WBT_RWQ_KSWAPD = 1, + WBT_RWQ_DISCARD = 2, + WBT_NUM_RWQ = 3, +}; + +enum { + RWB_DEF_DEPTH = 16, + RWB_WINDOW_NSEC = 100000000, + RWB_MIN_WRITE_SAMPLES = 3, + RWB_UNKNOWN_BUMP = 5, +}; + +enum { + LAT_OK = 1, + LAT_UNKNOWN = 2, + LAT_UNKNOWN_WRITES = 3, + LAT_EXCEEDED = 4, +}; + +enum wbt_flags { + WBT_TRACKED = 1, + WBT_READ = 2, + WBT_KSWAPD = 4, + WBT_DISCARD = 8, + WBT_NR_BITS = 4, +}; + +struct trace_event_raw_wbt_stat { + struct trace_entry ent; + char name[32]; + s64 rmean; + u64 rmin; + u64 rmax; + s64 rnr_samples; + s64 rtime; + s64 wmean; + u64 wmin; + u64 wmax; + s64 wnr_samples; + s64 wtime; + char __data[0]; +}; + +struct trace_event_raw_wbt_lat { + struct trace_entry ent; + char name[32]; + unsigned long lat; + char __data[0]; +}; + +struct trace_event_raw_wbt_step { + struct trace_entry ent; + char name[32]; + const char *msg; + int step; + unsigned long window; + unsigned int bg; + unsigned int normal; + unsigned int max; + char __data[0]; +}; + +struct trace_event_raw_wbt_timer { + struct trace_entry ent; + char name[32]; + unsigned int status; + int step; + unsigned int inflight; + char __data[0]; +}; + +struct rq_wb { + unsigned int wb_background; + unsigned int wb_normal; + short enable_state; + unsigned int unknown_cnt; + u64 win_nsec; + u64 cur_win_nsec; + struct blk_stat_callback *cb; + u64 sync_issue; + void *sync_cookie; + unsigned long last_issue; + unsigned long last_comp; + unsigned long min_lat_nsec; + struct rq_qos rqos; + struct rq_wait rq_wait[3]; + struct rq_depth rq_depth; +}; + +struct wbt_wait_data { + struct rq_wb *rwb; + enum wbt_flags wb_acct; + blk_opf_t opf; +}; + +struct trace_event_data_offsets_wbt_stat {}; + +struct trace_event_data_offsets_wbt_lat {}; + +struct trace_event_data_offsets_wbt_step {}; + +struct trace_event_data_offsets_wbt_timer {}; + +struct clk_multiplier { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + spinlock_t *lock; +}; + +struct firmware_cache { + spinlock_t lock; + struct list_head head; + int state; + spinlock_t name_lock; + struct list_head fw_names; + struct delayed_work work; + struct notifier_block pm_notify; +}; + +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, +}; + +enum fw_opt { + FW_OPT_UEVENT = 1, + FW_OPT_NOWAIT = 2, + FW_OPT_USERHELPER = 4, + FW_OPT_NO_WARN = 8, + FW_OPT_NOCACHE = 16, + FW_OPT_NOFALLBACK_SYSFS = 32, + FW_OPT_FALLBACK_PLATFORM = 64, + FW_OPT_PARTIAL = 128, +}; + +struct fw_state { + struct completion completion; + enum fw_status status; +}; + +struct fw_priv { + struct kref ref; + struct list_head list; + struct firmware_cache *fwc; + struct fw_state fw_st; + void *data; + size_t size; + size_t allocated_size; + size_t offset; + u32 opt_flags; + const char *fw_name; +}; + +struct firmware_work { + struct work_struct work; struct module *module; + const char *name; + struct device *device; + void *context; + void (*cont)(const struct firmware *, void *); + u32 opt_flags; +}; + +struct fw_cache_entry { + struct list_head list; + const char *name; +}; + +struct fw_name_devm { + unsigned long magic; + const char *name; +}; + +struct phylib_stubs { + int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); + int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +}; + +struct phy_fixup { + struct list_head list; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); +}; + +struct sfp_eeprom_id; + +struct sfp_upstream_ops { + void (*attach)(void *, struct sfp_bus *); + void (*detach)(void *, struct sfp_bus *); + int (*module_insert)(void *, const struct sfp_eeprom_id *); + void (*module_remove)(void *); + int (*module_start)(void *); + void (*module_stop)(void *); + void (*link_down)(void *); + void (*link_up)(void *); + int (*connect_phy)(void *, struct phy_device *); + void (*disconnect_phy)(void *); +}; + +struct sfp_eeprom_base { + u8 phys_id; + u8 phys_ext_id; + u8 connector; + u8 if_1x_copper_passive: 1; + u8 if_1x_copper_active: 1; + u8 if_1x_lx: 1; + u8 if_1x_sx: 1; + u8 e10g_base_sr: 1; + u8 e10g_base_lr: 1; + u8 e10g_base_lrm: 1; + u8 e10g_base_er: 1; + u8 sonet_oc3_short_reach: 1; + u8 sonet_oc3_smf_intermediate_reach: 1; + u8 sonet_oc3_smf_long_reach: 1; + u8 unallocated_5_3: 1; + u8 sonet_oc12_short_reach: 1; + u8 sonet_oc12_smf_intermediate_reach: 1; + u8 sonet_oc12_smf_long_reach: 1; + u8 unallocated_5_7: 1; + u8 sonet_oc48_short_reach: 1; + u8 sonet_oc48_intermediate_reach: 1; + u8 sonet_oc48_long_reach: 1; + u8 sonet_reach_bit2: 1; + u8 sonet_reach_bit1: 1; + u8 sonet_oc192_short_reach: 1; + u8 escon_smf_1310_laser: 1; + u8 escon_mmf_1310_led: 1; + u8 e1000_base_sx: 1; + u8 e1000_base_lx: 1; + u8 e1000_base_cx: 1; + u8 e1000_base_t: 1; + u8 e100_base_lx: 1; + u8 e100_base_fx: 1; + u8 e_base_bx10: 1; + u8 e_base_px: 1; + u8 fc_tech_electrical_inter_enclosure: 1; + u8 fc_tech_lc: 1; + u8 fc_tech_sa: 1; + u8 fc_ll_m: 1; + u8 fc_ll_l: 1; + u8 fc_ll_i: 1; + u8 fc_ll_s: 1; + u8 fc_ll_v: 1; + u8 unallocated_8_0: 1; + u8 unallocated_8_1: 1; + u8 sfp_ct_passive: 1; + u8 sfp_ct_active: 1; + u8 fc_tech_ll: 1; + u8 fc_tech_sl: 1; + u8 fc_tech_sn: 1; + u8 fc_tech_electrical_intra_enclosure: 1; + u8 fc_media_sm: 1; + u8 unallocated_9_1: 1; + u8 fc_media_m5: 1; + u8 fc_media_m6: 1; + u8 fc_media_tv: 1; + u8 fc_media_mi: 1; + u8 fc_media_tp: 1; + u8 fc_media_tw: 1; + u8 fc_speed_100: 1; + u8 unallocated_10_1: 1; + u8 fc_speed_200: 1; + u8 fc_speed_3200: 1; + u8 fc_speed_400: 1; + u8 fc_speed_1600: 1; + u8 fc_speed_800: 1; + u8 fc_speed_1200: 1; + u8 encoding; + u8 br_nominal; + u8 rate_id; + u8 link_len[6]; + char vendor_name[16]; + u8 extended_cc; + char vendor_oui[3]; + char vendor_pn[16]; + char vendor_rev[4]; + union { + __be16 optical_wavelength; + __be16 cable_compliance; + struct { + u8 sff8431_app_e: 1; + u8 fc_pi_4_app_h: 1; + u8 reserved60_2: 6; + u8 reserved61: 8; + } passive; + struct { + u8 sff8431_app_e: 1; + u8 fc_pi_4_app_h: 1; + u8 sff8431_lim: 1; + u8 fc_pi_4_lim: 1; + u8 reserved60_4: 4; + u8 reserved61: 8; + } active; + }; + u8 reserved62; + u8 cc_base; +}; + +struct sfp_eeprom_ext { + __be16 options; + u8 br_max; + u8 br_min; + char vendor_sn[16]; + char datecode[8]; + u8 diagmon; + u8 enhopts; + u8 sff8472_compliance; + u8 cc_ext; +}; + +struct sfp_eeprom_id { + struct sfp_eeprom_base base; + struct sfp_eeprom_ext ext; +}; + +struct iwl_mvm_mod_params { + bool init_dbg; + int power_scheme; +}; + +struct iwl_mei_ops { + void (*me_conn_status)(void *, const struct iwl_mei_conn_info *); + void (*rfkill)(void *, bool, bool); + void (*roaming_forbidden)(void *, bool); + void (*sap_connected)(void *); + void (*nic_stolen)(void *); +}; + +enum iwl_rx_handler_context { + RX_HANDLER_SYNC = 0, + RX_HANDLER_ASYNC_LOCKED = 1, + RX_HANDLER_ASYNC_UNLOCKED = 2, + RX_HANDLER_ASYNC_LOCKED_WIPHY = 3, +}; + +struct iwl_rx_handlers { + u16 cmd_id; + u16 min_size; + enum iwl_rx_handler_context context; + void (*fn)(struct iwl_mvm *, struct iwl_rx_cmd_buffer *); +}; + +enum iwl_datapath_monitor_notif_type { + IWL_DP_MON_NOTIF_TYPE_EXT_CCA = 0, +}; + +enum iwl_thermal_dual_chain_req_events { + THERMAL_DUAL_CHAIN_REQ_ENABLE = 0, + THERMAL_DUAL_CHAIN_REQ_DISABLE = 1, +}; + +struct iwl_async_handler_entry { + struct list_head list; + struct iwl_rx_cmd_buffer rxb; + enum iwl_rx_handler_context context; + void (*fn)(struct iwl_mvm *, struct iwl_rx_cmd_buffer *); +}; + +struct iwl_mvm_reprobe { + struct device *dev; + struct work_struct work; +}; + +struct cmd { + u8 cmd_id; + u8 group_id; +}; + +struct iwl_fw_dbg_trigger_cmd { + struct cmd cmds[16]; +}; + +struct iwl_mvm_frob_txf_data { + u8 *buf; + size_t buflen; +}; + +struct iwl_datapath_monitor_notif { + __le32 type; + u8 mac_id; + u8 reserved[3]; +}; + +struct iwl_thermal_dual_chain_request { + __le32 event; +}; + +struct pcc_chan_reg { + void *vaddr; + struct acpi_generic_address *gas; + u64 preserve_mask; + u64 set_mask; + u64 status_mask; +}; + +struct pcc_chan_info { + struct pcc_mbox_chan chan; + struct pcc_chan_reg db; + struct pcc_chan_reg plat_irq_ack; + struct pcc_chan_reg cmd_complete; + struct pcc_chan_reg cmd_update; + struct pcc_chan_reg error; + int plat_irq; + u8 type; + unsigned int plat_irq_flags; + bool chan_in_use; +}; + +enum acpi_pcct_type { + ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0, + ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1, + ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, + ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3, + ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4, + ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5, + ACPI_PCCT_TYPE_RESERVED = 6, +}; + +struct acpi_pcct_subspace { + struct acpi_subtable_header header; + u8 reserved[6]; + u64 base_address; + u64 length; + struct acpi_generic_address doorbell_register; + u64 preserve_mask; + u64 write_mask; + u32 latency; + u32 max_access_rate; + u16 min_turnaround_time; +} __attribute__((packed)); + +struct acpi_table_pcct { + struct acpi_table_header header; + u32 flags; + u64 reserved; +}; + +struct acpi_pcct_hw_reduced { + struct acpi_subtable_header header; + u32 platform_interrupt; + u8 flags; + u8 reserved; + u64 base_address; + u64 length; + struct acpi_generic_address doorbell_register; + u64 preserve_mask; + u64 write_mask; + u32 latency; + u32 max_access_rate; + u16 min_turnaround_time; +} __attribute__((packed)); + +struct acpi_pcct_ext_pcc_master { + struct acpi_subtable_header header; + u32 platform_interrupt; + u8 flags; + u8 reserved1; + u64 base_address; + u32 length; + struct acpi_generic_address doorbell_register; + u64 preserve_mask; + u64 write_mask; + u32 latency; + u32 max_access_rate; + u32 min_turnaround_time; + struct acpi_generic_address platform_ack_register; + u64 ack_preserve_mask; + u64 ack_set_mask; + u64 reserved2; + struct acpi_generic_address cmd_complete_register; + u64 cmd_complete_mask; + struct acpi_generic_address cmd_update_register; + u64 cmd_update_preserve_mask; + u64 cmd_update_set_mask; + struct acpi_generic_address error_status_register; + u64 error_status_mask; +} __attribute__((packed)); + +struct acpi_pcct_hw_reduced_type2 { + struct acpi_subtable_header header; + u32 platform_interrupt; + u8 flags; + u8 reserved; + u64 base_address; + u64 length; + struct acpi_generic_address doorbell_register; + u64 preserve_mask; + u64 write_mask; + u32 latency; + u32 max_access_rate; + u16 min_turnaround_time; + struct acpi_generic_address platform_ack_register; + u64 ack_preserve_mask; + u64 ack_write_mask; +} __attribute__((packed)); + +struct update_classid_context { + u32 classid; + unsigned int batch; }; enum { @@ -138718,280 +131651,533 @@ struct nft_xt_match_priv { void *info; }; -enum { - UDP_MIB_NUM = 0, - UDP_MIB_INDATAGRAMS = 1, - UDP_MIB_NOPORTS = 2, - UDP_MIB_INERRORS = 3, - UDP_MIB_OUTDATAGRAMS = 4, - UDP_MIB_RCVBUFERRORS = 5, - UDP_MIB_SNDBUFERRORS = 6, - UDP_MIB_CSUMERRORS = 7, - UDP_MIB_IGNOREDMULTI = 8, - UDP_MIB_MEMERRORS = 9, - __UDP_MIB_MAX = 10, +struct scm_stat { + atomic_t nr_fds; }; -struct udp_iter_state { - struct seq_net_private p; - int bucket; +struct unix_address; + +struct unix_sock { + struct sock sk; + struct unix_address *addr; + struct path path; + struct mutex iolock; + struct mutex bindlock; + struct sock *peer; + struct list_head link; + unsigned long inflight; + spinlock_t lock; + unsigned long gc_flags; + long: 64; + struct socket_wq peer_wq; + wait_queue_entry_t peer_wake; + struct scm_stat scm_stat; + struct sk_buff *oob_skb; + long: 64; }; -struct udp_dev_scratch { - u32 _tsize_state; - u16 len; - bool is_linear; - bool csum_unnecessary; +struct unix_address { + refcount_t refcnt; + int len; + struct sockaddr_un name[0]; }; -struct scx_cpu_acquire_args; +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + u32 consumed; +}; -struct scx_cpu_release_args; +struct ieee80211_color_change_settings { + u16 counter_offset_beacon; + u16 counter_offset_presp; + u8 count; +}; -struct scx_init_task_args; +struct ieee80211_csa_settings { + const u16 *counter_offsets_beacon; + const u16 *counter_offsets_presp; + int n_counter_offsets_beacon; + int n_counter_offsets_presp; + u8 count; +}; -struct scx_exit_task_args; +struct setup_indirect { + __u32 type; + __u32 reserved; + __u64 len; + __u64 addr; +}; -struct scx_cgroup_init_args; +struct amd_nb_bus_dev_range { + u8 bus; + u8 dev_base; + u8 dev_limit; +}; -struct scx_exit_info; - -struct sched_ext_ops { - s32 (*select_cpu)(struct task_struct *, s32, u64); - void (*enqueue)(struct task_struct *, u64); - void (*dequeue)(struct task_struct *, u64); - void (*dispatch)(s32, struct task_struct *); - void (*runnable)(struct task_struct *, u64); - void (*running)(struct task_struct *); - void (*stopping)(struct task_struct *, bool); - void (*quiescent)(struct task_struct *, u64); - bool (*yield)(struct task_struct *, struct task_struct *); - bool (*core_sched_before)(struct task_struct *, struct task_struct *); - void (*set_weight)(struct task_struct *, u32); - void (*set_cpumask)(struct task_struct *, const struct cpumask *); - void (*update_idle)(s32, bool); - void (*cpu_acquire)(s32, struct scx_cpu_acquire_args *); - void (*cpu_release)(s32, struct scx_cpu_release_args *); - s32 (*init_task)(struct task_struct *, struct scx_init_task_args *); - void (*exit_task)(struct task_struct *, struct scx_exit_task_args *); - void (*enable)(struct task_struct *); - void (*disable)(struct task_struct *); - s32 (*cgroup_init)(struct cgroup *, struct scx_cgroup_init_args *); - void (*cgroup_exit)(struct cgroup *); - s32 (*cgroup_prep_move)(struct task_struct *, struct cgroup *, struct cgroup *); - void (*cgroup_move)(struct task_struct *, struct cgroup *, struct cgroup *); - void (*cgroup_cancel_move)(struct task_struct *, struct cgroup *, struct cgroup *); - void (*cgroup_set_weight)(struct cgroup *, u32); - void (*cpu_online)(s32); - void (*cpu_offline)(s32); - s32 (*init)(); - void (*exit)(struct scx_exit_info *); - u32 dispatch_max_batch; +struct amd_northbridge_info { + u16 num; u64 flags; - u32 timeout_ms; - u32 exit_dump_len; - char name[128]; + struct amd_northbridge *nb; }; -struct scx_cpu_acquire_args {}; - -enum scx_cpu_preempt_reason { - SCX_CPU_PREEMPT_RT = 0, - SCX_CPU_PREEMPT_DL = 1, - SCX_CPU_PREEMPT_STOP = 2, - SCX_CPU_PREEMPT_UNKNOWN = 3, +struct kcore_list { + struct list_head list; + unsigned long addr; + size_t size; + int type; }; -struct scx_cpu_release_args { - enum scx_cpu_preempt_reason reason; - struct task_struct *task; +enum kcore_type { + KCORE_TEXT = 0, + KCORE_VMALLOC = 1, + KCORE_RAM = 2, + KCORE_VMEMMAP = 3, + KCORE_USER = 4, }; -struct scx_init_task_args { - bool fork; - struct cgroup *cgroup; +struct irq_devres { + unsigned int irq; + void *dev_id; }; -struct scx_exit_task_args { - bool cancelled; +struct irq_desc_devres { + unsigned int from; + unsigned int cnt; }; -struct scx_cgroup_init_args { - u32 weight; +struct tracing_map; + +struct tracing_map_field; + +struct tracing_map_elt { + struct tracing_map *map; + struct tracing_map_field *fields; + atomic64_t *vars; + bool *var_set; + void *key; + void *private_data; }; -struct scx_exit_info { - enum scx_exit_kind kind; - s64 exit_code; - const char *reason; - unsigned long *bt; - u32 bt_len; - char *msg; - char *dump; +typedef int (*tracing_map_cmp_fn_t)(void *, void *); + +struct tracing_map_field { + tracing_map_cmp_fn_t cmp_fn; + union { + atomic64_t sum; + unsigned int offset; + }; }; -struct scx_dsp_ctx { - struct rq *rq; - struct rq_flags *rf; - u32 buf_cursor; - u32 nr_tasks; +struct tracing_map_sort_key { + unsigned int field_idx; + bool descending; }; -struct scx_dsp_buf_ent { - struct task_struct *task; - unsigned long qseq; - u64 dsq_id; - u64 enq_flags; +struct tracing_map_array; + +struct tracing_map_ops; + +struct tracing_map { + unsigned int key_size; + unsigned int map_bits; + unsigned int map_size; + unsigned int max_elts; + atomic_t next_elt; + struct tracing_map_array *elts; + struct tracing_map_array *map; + const struct tracing_map_ops *ops; + void *private_data; + struct tracing_map_field fields[6]; + unsigned int n_fields; + int key_idx[3]; + unsigned int n_keys; + struct tracing_map_sort_key sort_key; + unsigned int n_vars; + atomic64_t hits; + atomic64_t drops; }; -struct scx_bpf_error_bstr_bufs { - u64 data[12]; - char msg[1024]; +struct tracing_map_array { + unsigned int entries_per_page; + unsigned int entry_size_shift; + unsigned int entry_shift; + unsigned int entry_mask; + unsigned int n_pages; + void **pages; }; -enum dl_bw_request { - dl_bw_req_check_overflow = 0, - dl_bw_req_alloc = 1, - dl_bw_req_free = 2, +struct tracing_map_ops { + int (*elt_alloc)(struct tracing_map_elt *); + void (*elt_free)(struct tracing_map_elt *); + void (*elt_clear)(struct tracing_map_elt *); + void (*elt_init)(struct tracing_map_elt *); }; -enum scx_kf_mask { - SCX_KF_UNLOCKED = 0, - SCX_KF_SLEEPABLE = 1, - SCX_KF_CPU_RELEASE = 2, - SCX_KF_DISPATCH = 4, - SCX_KF_ENQUEUE = 8, - SCX_KF_SELECT_CPU = 16, - SCX_KF_REST = 32, - __SCX_KF_RQ_LOCKED = 62, - __SCX_KF_TERMINAL = 56, +struct tracing_map_entry { + u32 key; + struct tracing_map_elt *val; }; -enum scx_task_state { - SCX_TASK_NONE = 0, - SCX_TASK_INIT = 1, - SCX_TASK_READY = 2, - SCX_TASK_ENABLED = 3, - SCX_TASK_NR_STATES = 4, +struct tracing_map_sort_entry { + void *key; + struct tracing_map_elt *elt; + bool elt_copied; + bool dup; }; -enum scx_rq_flags { - SCX_RQ_BALANCING = 1, - SCX_RQ_CAN_STOP_TICK = 2, +typedef void (*btf_trace_irq_disable)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_irq_enable)(void *, unsigned long, unsigned long); + +struct trace_event_raw_preemptirq_template { + struct trace_entry ent; + s32 caller_offs; + s32 parent_offs; + char __data[0]; }; -enum scx_tg_flags { - SCX_TG_ONLINE = 1, - SCX_TG_INITED = 2, +struct trace_event_data_offsets_preemptirq_template {}; + +struct inotify_event { + __s32 wd; + __u32 mask; + __u32 cookie; + __u32 len; + char name[0]; }; -enum scx_ops_enable_state { - SCX_OPS_PREPPING = 0, - SCX_OPS_ENABLING = 1, - SCX_OPS_ENABLED = 2, - SCX_OPS_DISABLING = 3, - SCX_OPS_DISABLED = 4, +struct extent_inode_elem { + u64 inum; + u64 offset; + u64 num_bytes; + struct extent_inode_elem *next; }; -enum scx_internal_consts { - SCX_OPI_BEGIN = 0, - SCX_OPI_NORMAL_BEGIN = 0, - SCX_OPI_NORMAL_END = 25, - SCX_OPI_CPU_HOTPLUG_BEGIN = 25, - SCX_OPI_CPU_HOTPLUG_END = 27, - SCX_OPI_END = 27, - SCX_DSP_DFL_MAX_BATCH = 32, - SCX_DSP_MAX_LOOPS = 32, - SCX_WATCHDOG_MAX_TIMEOUT = 30000, - SCX_EXIT_BT_LEN = 64, - SCX_EXIT_MSG_LEN = 1024, - SCX_EXIT_DUMP_DFL_LEN = 32768, +struct preftree { + struct rb_root_cached root; + unsigned int count; }; -enum scx_enq_flags { - SCX_ENQ_WAKEUP = 1ULL, - SCX_ENQ_HEAD = 16ULL, - SCX_ENQ_PREEMPT = 4294967296ULL, - SCX_ENQ_REENQ = 1099511627776ULL, - SCX_ENQ_LAST = 2199023255552ULL, - __SCX_ENQ_INTERNAL_MASK = 18374686479671623680ULL, - SCX_ENQ_CLEAR_OPSS = 72057594037927936ULL, - SCX_ENQ_DSQ_PRIQ = 144115188075855872ULL, +struct preftrees { + struct preftree direct; + struct preftree indirect; + struct preftree indirect_missing_keys; }; -enum scx_deq_flags { - SCX_DEQ_SLEEP = 1ULL, - SCX_DEQ_CORE_SCHED_EXEC = 4294967296ULL, +struct share_check { + struct btrfs_backref_share_check_ctx *ctx; + struct btrfs_root *root; + u64 inum; + u64 data_bytenr; + u64 data_extent_gen; + int share_count; + int self_ref_count; + bool have_delayed_delete_refs; }; -enum scx_kick_flags { - SCX_KICK_IDLE = 1, - SCX_KICK_PREEMPT = 2, - SCX_KICK_WAIT = 4, +struct crypto_istat_hash { + atomic64_t hash_cnt; + atomic64_t hash_tlen; + atomic64_t err_cnt; }; -enum scx_ops_state { - SCX_OPSS_NONE = 0, - SCX_OPSS_QUEUEING = 1, - SCX_OPSS_QUEUED = 2, - SCX_OPSS_DISPATCHING = 3, - SCX_OPSS_QSEQ_SHIFT = 2, +struct uuidcmp { + const char *uuid; + int len; }; -enum scx_ent_flags { - SCX_TASK_QUEUED = 1, - SCX_TASK_BAL_KEEP = 2, - SCX_TASK_RESET_RUNNABLE_AT = 4, - SCX_TASK_DEQD_FOR_SLEEP = 8, - SCX_TASK_STATE_SHIFT = 8, - SCX_TASK_STATE_BITS = 2, - SCX_TASK_STATE_MASK = 768, - SCX_TASK_CURSOR = -2147483648, +struct io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; }; -enum scx_wake_flags { - SCX_WAKE_FORK = 4, - SCX_WAKE_TTWU = 8, - SCX_WAKE_SYNC = 16, +struct io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; }; -enum scx_pick_idle_cpu_flags { - SCX_PICK_IDLE_CORE = 1, +struct io_uring_rsrc_register { + __u32 nr; + __u32 flags; + __u64 resv2; + __u64 data; + __u64 tags; }; -enum scx_ent_dsq_flags { - SCX_TASK_DSQ_ON_PRIQ = 1, +struct msr_info_completion { + struct msr_info msr; + struct completion done; }; -enum cpu_cftype_id { - CPU_CFTYPE_WEIGHT = 0, - CPU_CFTYPE_WEIGHT_NICE = 1, - CPU_CFTYPE_IDLE = 2, - CPU_CFTYPE_CNT = 3, +struct msr_regs_info { + u32 *regs; + int err; }; -enum scx_ops_flags { - SCX_OPS_KEEP_BUILTIN_IDLE = 1, - SCX_OPS_ENQ_LAST = 2, - SCX_OPS_ENQ_EXITING = 4, - SCX_OPS_SWITCH_PARTIAL = 8, - SCX_OPS_CGROUP_KNOB_WEIGHT = 65536, - SCX_OPS_ALL_FLAGS = 65551, +struct hpx_type0 { + u32 revision; + u8 cache_line_size; + u8 latency_timer; + u8 enable_serr; + u8 enable_perr; }; -enum dispatch_to_local_dsq_ret { - DTL_DISPATCHED = 0, - DTL_LOST = 1, - DTL_NOT_LOCAL = 2, - DTL_INVALID = 3, +enum hpx_type3_cfg_loc { + HPX_CFG_PCICFG = 0, + HPX_CFG_PCIE_CAP = 1, + HPX_CFG_PCIE_CAP_EXT = 2, + HPX_CFG_VEND_CAP = 3, + HPX_CFG_DVSEC = 4, + HPX_CFG_MAX = 5, }; -struct idle_timer { - struct hrtimer timer; - int done; +enum hpx_type3_fn_type { + HPX_FN_NORMAL = 1, + HPX_FN_SRIOV_PHYS = 2, + HPX_FN_SRIOV_VIRT = 4, }; -struct bpf_struct_ops_sched_ext_ops { +struct hpx_type2 { + u32 revision; + u32 unc_err_mask_and; + u32 unc_err_mask_or; + u32 unc_err_sever_and; + u32 unc_err_sever_or; + u32 cor_err_mask_and; + u32 cor_err_mask_or; + u32 adv_err_cap_and; + u32 adv_err_cap_or; + u16 pci_exp_devctl_and; + u16 pci_exp_devctl_or; + u16 pci_exp_lnkctl_and; + u16 pci_exp_lnkctl_or; + u32 sec_unc_err_sever_and; + u32 sec_unc_err_sever_or; + u32 sec_unc_err_mask_and; + u32 sec_unc_err_mask_or; +}; + +struct hpx_type1 { + u32 revision; + u8 max_mem_read; + u8 avg_max_split; + u16 tot_max_split; +}; + +struct hpx_type3 { + u16 device_type; + u16 function_type; + u16 config_space_location; + u16 pci_exp_cap_id; + u16 pci_exp_cap_ver; + u16 pci_exp_vendor_id; + u16 dvsec_id; + u16 dvsec_rev; + u16 match_offset; + u32 match_mask_and; + u32 match_value; + u16 reg_offset; + u32 reg_mask_and; + u32 reg_mask_or; +}; + +struct acpi_reg_walk_info { + u32 function; + u32 reg_run_count; + acpi_adr_space_type space_id; +}; + +struct acpi_connection_info { + u8 *connection; + u16 length; + u8 access_length; +}; + +struct acpi_ffh_info { + u64 offset; + u64 length; +}; + +struct acpi_signal_fatal_info { + u32 type; + u32 code; + u32 argument; +}; + +struct transport_class { + struct class class; + int (*setup)(struct transport_container *, struct device *, struct device *); + int (*configure)(struct transport_container *, struct device *, struct device *); + int (*remove)(struct transport_container *, struct device *, struct device *); +}; + +struct anon_transport_class { + struct transport_class tclass; + struct attribute_container container; +}; + +enum dma_resv_usage { + DMA_RESV_USAGE_KERNEL = 0, + DMA_RESV_USAGE_WRITE = 1, + DMA_RESV_USAGE_READ = 2, + DMA_RESV_USAGE_BOOKKEEP = 3, +}; + +struct dma_resv_list { + struct callback_head rcu; + u32 num_fences; + u32 max_fences; + struct dma_fence __attribute__((btf_type_tag("rcu"))) *table[0]; +}; + +struct dma_resv { + struct ww_mutex lock; + struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; +}; + +struct dma_resv_iter { + struct dma_resv *obj; + enum dma_resv_usage usage; + struct dma_fence *fence; + enum dma_resv_usage fence_usage; + unsigned int index; + struct dma_resv_list *fences; + unsigned int num_fences; + bool is_restarted; +}; + +struct igb_reg_info { + u32 ofs; + char *name; +}; + +enum e1000_ring_flags_t { + IGB_RING_FLAG_RX_3K_BUFFER = 0, + IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1, + IGB_RING_FLAG_RX_SCTP_CSUM = 2, + IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3, + IGB_RING_FLAG_TX_CTX_IDX = 4, + IGB_RING_FLAG_TX_DETECT_HANG = 5, +}; + +enum igb_tx_flags { + IGB_TX_FLAGS_VLAN = 1, + IGB_TX_FLAGS_TSO = 2, + IGB_TX_FLAGS_TSTAMP = 4, + IGB_TX_FLAGS_IPV4 = 16, + IGB_TX_FLAGS_CSUM = 32, +}; + +enum tx_queue_prio { + TX_QUEUE_PRIO_HIGH = 0, + TX_QUEUE_PRIO_LOW = 1, +}; + +enum queue_mode { + QUEUE_MODE_STRICT_PRIORITY = 0, + QUEUE_MODE_STREAM_RESERVATION = 1, +}; + +enum latency_range { + lowest_latency = 0, + low_latency = 1, + bulk_latency = 2, + latency_invalid = 255, +}; + +struct my_u0 { + __le64 a; + __le64 b; +}; + +struct e1000_adv_tx_context_desc { + __le32 vlan_macip_lens; + __le32 seqnum_seed; + __le32 type_tucmd_mlhl; + __le32 mss_l4len_idx; +}; + +struct tc_query_caps_base { + enum tc_setup_type type; + void *caps; +}; + +struct tc_taprio_caps { + bool supports_queue_max_sdu: 1; + bool gate_mask_per_txq: 1; + bool broken_mqprio: 1; +}; + +struct tc_cbs_qopt_offload { + u8 enable; + s32 queue; + s32 hicredit; + s32 locredit; + s32 idleslope; + s32 sendslope; +}; + +struct tc_etf_qopt_offload { + u8 enable; + s32 queue; +}; + +enum rtw_wow_flags { + RTW_WOW_FLAG_EN_MAGIC_PKT = 0, + RTW_WOW_FLAG_EN_REKEY_PKT = 1, + RTW_WOW_FLAG_EN_DISCONNECT = 2, + RTW_WOW_FLAG_MAX = 3, +}; + +enum rtw_wow_pattern_type { + RTW_PATTERN_BROADCAST = 0, + RTW_PATTERN_MULTICAST = 1, + RTW_PATTERN_UNICAST = 2, + RTW_PATTERN_VALID = 3, + RTW_PATTERN_INVALID = 4, +}; + +enum rtw_hw_key_type { + RTW_CAM_NONE = 0, + RTW_CAM_WEP40 = 1, + RTW_CAM_TKIP = 2, + RTW_CAM_AES = 4, + RTW_CAM_WEP104 = 5, +}; + +enum rtw_wake_reason { + RTW_WOW_RSN_RX_PTK_REKEY = 1, + RTW_WOW_RSN_RX_GTK_REKEY = 2, + RTW_WOW_RSN_RX_DEAUTH = 8, + RTW_WOW_RSN_DISCONNECT = 16, + RTW_WOW_RSN_RX_MAGIC_PKT = 33, + RTW_WOW_RSN_RX_PATTERN_MATCH = 35, + RTW_WOW_RSN_RX_NLO = 85, +}; + +struct rtw_fw_media_status_iter_data { + struct rtw_dev *rtwdev; + u8 connect; +}; + +struct rtw_fw_key_type_iter_data { + struct rtw_dev *rtwdev; + u8 group_key_type; + u8 pairwise_key_type; +}; + +typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32); + +struct bpf_struct_ops_tcp_congestion_ops { struct bpf_struct_ops_common_value common; long: 64; long: 64; @@ -139000,1296 +132186,7 @@ struct bpf_struct_ops_sched_ext_ops { long: 64; long: 64; long: 64; - struct sched_ext_ops data; -}; - -typedef struct rt_rq *rt_rq_iter_t; - -struct scx_task_iter { - struct sched_ext_entity cursor; - struct task_struct *locked; - struct rq *rq; - struct rq_flags rf; -}; - -struct bpf_preload_info; - -struct bpf_preload_ops { - int (*preload)(struct bpf_preload_info *); - struct module *owner; -}; - -struct bpf_preload_info { - char link_name[16]; - struct bpf_link *link; -}; - -enum bpf_type { - BPF_TYPE_UNSPEC = 0, - BPF_TYPE_PROG = 1, - BPF_TYPE_MAP = 2, - BPF_TYPE_LINK = 3, -}; - -enum { - OPT_UID = 0, - OPT_GID = 1, - OPT_MODE = 2, - OPT_DELEGATE_CMDS = 3, - OPT_DELEGATE_MAPS = 4, - OPT_DELEGATE_PROGS = 5, - OPT_DELEGATE_ATTACHS = 6, -}; - -struct map_iter { - void *key; - bool done; -}; - -struct bpffs_btf_enums { - const struct btf *btf; - const struct btf_type *cmd_t; - const struct btf_type *map_t; - const struct btf_type *prog_t; - const struct btf_type *attach_t; -}; - -struct node_hstate { - struct kobject *hugepages_kobj; - struct kobject *hstate_kobjs[2]; -}; - -enum vma_resv_mode { - VMA_NEEDS_RESV = 0, - VMA_COMMIT_RESV = 1, - VMA_END_RESV = 2, - VMA_ADD_RESV = 3, - VMA_DEL_RESV = 4, -}; - -struct huge_bootmem_page { - struct list_head list; - struct hstate *hstate; -}; - -typedef unsigned long pte_marker; - -struct zstd_workspace_manager { - const struct btrfs_compress_op *ops; - spinlock_t lock; - struct list_head lru_list; - struct list_head idle_ws[15]; - unsigned long active_map; - wait_queue_head_t wait; - struct timer_list timer; -}; - -struct workspace___3 { - void *mem; - size_t size; - char *buf; - unsigned int level; - unsigned int req_level; - unsigned long last_used; - struct list_head list; - struct list_head lru_list; - zstd_in_buffer in_buf; - zstd_out_buffer out_buf; -}; - -enum { - Opt_uid___8 = 0, - Opt_gid___9 = 1, -}; - -enum dim_tune_state { - DIM_PARKING_ON_TOP = 0, - DIM_PARKING_TIRED = 1, - DIM_GOING_RIGHT = 2, - DIM_GOING_LEFT = 3, -}; - -enum dim_stats_state { - DIM_STATS_WORSE = 0, - DIM_STATS_SAME = 1, - DIM_STATS_BETTER = 2, -}; - -enum dim_step_result { - DIM_STEPPED = 0, - DIM_TOO_TIRED = 1, - DIM_ON_EDGE = 2, -}; - -struct pci_bus_resource { - struct list_head list; - struct resource *res; - unsigned int flags; -}; - -struct irq_override_cmp { - const struct dmi_system_id *system; - unsigned char irq; - unsigned char triggering; - unsigned char polarity; - unsigned char shareable; - bool override; -}; - -struct res_proc_context { - struct list_head *list; - int (*preproc)(struct acpi_resource *, void *); - void *preproc_data; - int count; - int error; -}; - -enum { - AML_FIELD_UPDATE_PRESERVE = 0, - AML_FIELD_UPDATE_WRITE_AS_ONES = 32, - AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, -}; - -struct acpi_lpi_states_array { - unsigned int size; - unsigned int composite_states_size; - struct acpi_lpi_state *entries; - struct acpi_lpi_state *composite_states[8]; -}; - -struct iwl_mod_params { - int swcrypto; - unsigned int disable_11n; - int amsdu_size; - bool fw_restart; - bool bt_coex_active; - int led_mode; - bool power_save; - int power_level; - char *nvm_file; - u32 uapsd_disable; - bool disable_11ac; - bool disable_11ax; - bool remove_when_gone; - u32 enable_ini; - bool disable_11be; -}; - -struct iwlwifi_opmode_table { - const char *name; - const struct iwl_op_mode_ops *ops; - struct list_head drv; -}; - -struct iwl_drv { - struct list_head list; - struct iwl_fw fw; - struct iwl_op_mode *op_mode; - struct iwl_trans *trans; - struct device *dev; - int fw_index; - char firmware_name[64]; - struct completion request_firmware_complete; -}; - -enum { - DVM_OP_MODE = 0, - MVM_OP_MODE = 1, -}; - -enum iwl_fw_dbg_monitor_mode { - SMEM_MODE = 0, - EXTERNAL_MODE = 1, - MARBH_MODE = 2, - MIPI_MODE = 3, -}; - -struct iwl_ucode_header { - __le32 ver; - union { - struct { - __le32 inst_size; - __le32 data_size; - __le32 init_size; - __le32 init_data_size; - __le32 boot_size; - u8 data[0]; - } v1; - struct { - __le32 build; - __le32 inst_size; - __le32 data_size; - __le32 init_size; - __le32 init_data_size; - __le32 boot_size; - u8 data[0]; - } v2; - } u; -}; - -struct fw_sec_parsing { - __le32 offset; - const u8 data[0]; -}; - -struct iwl_tlv_calib_data { - __le32 ucode_type; - struct iwl_tlv_calib_ctrl calib; -}; - -struct fw_sec; - -struct fw_img_parsing { - struct fw_sec *sec; - int sec_counter; -}; - -struct iwl_fw_dbg_dest_tlv; - -struct iwl_firmware_pieces { - struct fw_img_parsing img[4]; - u32 init_evtlog_ptr; - u32 init_evtlog_size; - u32 init_errlog_ptr; - u32 inst_evtlog_ptr; - u32 inst_evtlog_size; - u32 inst_errlog_ptr; - bool dbg_dest_tlv_init; - const u8 *dbg_dest_ver; - union { - const struct iwl_fw_dbg_dest_tlv *dbg_dest_tlv; - const struct iwl_fw_dbg_dest_tlv_v1 *dbg_dest_tlv_v1; - }; - const struct iwl_fw_dbg_conf_tlv *dbg_conf_tlv[32]; - size_t dbg_conf_tlv_len[32]; - const struct iwl_fw_dbg_trigger_tlv *dbg_trigger_tlv[17]; - size_t dbg_trigger_tlv_len[17]; - struct iwl_fw_dbg_mem_seg_tlv *dbg_mem_tlv; - size_t n_mem_tlv; -}; - -struct fw_sec { - const void *data; - size_t size; - u32 offset; -}; - -struct iwl_fw_dbg_dest_tlv { - u8 version; - u8 monitor_mode; - u8 size_power; - u8 reserved; - __le32 cfg_reg; - __le32 write_ptr_reg; - __le32 wrap_count; - u8 base_shift; - u8 size_shift; - struct iwl_fw_dbg_reg_op reg_ops[0]; -} __attribute__((packed)); - -struct iwl_tlv_ucode_header { - __le32 zero; - __le32 magic; - u8 human_readable[64]; - __le32 ver; - __le32 build; - __le64 ignore; - u8 data[0]; -}; - -struct iwl_fw_dump_exclude { - __le32 addr; - __le32 size; -}; - -struct iwl_ucode_api { - __le32 api_index; - __le32 api_flags; -}; - -struct iwl_ucode_capa { - __le32 api_index; - __le32 api_capa; -}; - -enum iwl_device_power_flags { - DEVICE_POWER_FLAGS_POWER_SAVE_ENA_MSK = 1, - DEVICE_POWER_FLAGS_ALLOW_MEM_RETENTION_MSK = 2, - DEVICE_POWER_FLAGS_NO_SLEEP_TILL_D3_MSK = 128, - DEVICE_POWER_FLAGS_32K_CLK_VALID_MSK = 4096, -}; - -enum iwl_power_flags { - POWER_FLAGS_POWER_SAVE_ENA_MSK = 1, - POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK = 2, - POWER_FLAGS_SKIP_OVER_DTIM_MSK = 4, - POWER_FLAGS_SNOOZE_ENA_MSK = 32, - POWER_FLAGS_BT_SCO_ENA = 256, - POWER_FLAGS_ADVANCE_PM_ENA_MSK = 512, - POWER_FLAGS_LPRX_ENA_MSK = 2048, - POWER_FLAGS_UAPSD_MISBEHAVING_ENA_MSK = 4096, -}; - -struct iwl_beacon_filter_cmd { - __le32 bf_energy_delta; - __le32 bf_roaming_energy_delta; - __le32 bf_roaming_state; - __le32 bf_temp_threshold; - __le32 bf_temp_fast_filter; - __le32 bf_temp_slow_filter; - __le32 bf_enable_beacon_filter; - __le32 bf_debug_flag; - __le32 bf_escape_timer; - __le32 ba_escape_timer; - __le32 ba_enable_beacon_abort; - __le32 bf_threshold_absolute_low[2]; - __le32 bf_threshold_absolute_high[2]; -}; - -struct iwl_power_vifs { - struct iwl_mvm *mvm; - struct ieee80211_vif *bss_vif; - struct ieee80211_vif *p2p_vif; - struct ieee80211_vif *ap_vif; - struct ieee80211_vif *monitor_vif; - bool p2p_active; - bool bss_active; - bool ap_active; - bool monitor_active; -}; - -struct iwl_mac_power_cmd { - __le32 id_and_color; - __le16 flags; - __le16 keep_alive_seconds; - __le32 rx_data_timeout; - __le32 tx_data_timeout; - __le32 rx_data_timeout_uapsd; - __le32 tx_data_timeout_uapsd; - u8 lprx_rssi_threshold; - u8 skip_dtim_periods; - __le16 snooze_interval; - __le16 snooze_window; - u8 snooze_step; - u8 qndp_tid; - u8 uapsd_ac_flags; - u8 uapsd_max_sp; - u8 heavy_tx_thld_packets; - u8 heavy_rx_thld_packets; - u8 heavy_tx_thld_percentage; - u8 heavy_rx_thld_percentage; - u8 limited_ps_threshold; - u8 reserved; -}; - -struct iwl_device_power_cmd { - __le16 flags; - __le16 reserved; -}; - -struct iwl_uapsd_misbehaving_ap_notif { - __le32 sta_id; - u8 mac_id; - u8 reserved[3]; -}; - -struct _thermal_state { - u64 next_check; - u64 last_interrupt_time; - struct delayed_work therm_work; - unsigned long count; - unsigned long last_count; - unsigned long max_time_ms; - unsigned long total_time_ms; - bool rate_control_active; - bool new_event; - u8 level; - u8 sample_index; - u8 sample_count; - u8 average; - u8 baseline_temp; - u8 temp_samples[3]; -}; - -struct thermal_state { - struct _thermal_state core_throttle; - struct _thermal_state core_power_limit; - struct _thermal_state package_throttle; - struct _thermal_state package_power_limit; - struct _thermal_state core_thresh0; - struct _thermal_state core_thresh1; - struct _thermal_state pkg_thresh0; - struct _thermal_state pkg_thresh1; -}; - -struct netdev_queue_attribute { - struct attribute attr; - ssize_t (*show)(struct netdev_queue *, char *); - ssize_t (*store)(struct netdev_queue *, const char *, size_t); -}; - -struct change_member { - struct e820_entry *entry; - unsigned long long addr; -}; - -enum { - PER_LINUX = 0, - PER_LINUX_32BIT = 8388608, - PER_LINUX_FDPIC = 524288, - PER_SVR4 = 68157441, - PER_SVR3 = 83886082, - PER_SCOSVR3 = 117440515, - PER_OSR5 = 100663299, - PER_WYSEV386 = 83886084, - PER_ISCR4 = 67108869, - PER_BSD = 6, - PER_SUNOS = 67108870, - PER_XENIX = 83886087, - PER_LINUX32 = 8, - PER_LINUX32_3GB = 134217736, - PER_IRIX32 = 67108873, - PER_IRIXN32 = 67108874, - PER_IRIX64 = 67108875, - PER_RISCOS = 12, - PER_SOLARIS = 67108877, - PER_UW7 = 68157454, - PER_OSF4 = 15, - PER_HPUX = 16, - PER_MASK = 255, -}; - -struct tms { - __kernel_clock_t tms_utime; - __kernel_clock_t tms_stime; - __kernel_clock_t tms_cutime; - __kernel_clock_t tms_cstime; -}; - -struct old_utsname { - char sysname[65]; - char nodename[65]; - char release[65]; - char version[65]; - char machine[65]; -}; - -struct oldold_utsname { - char sysname[9]; - char nodename[9]; - char release[9]; - char version[9]; - char machine[9]; -}; - -struct rlimit64 { - __u64 rlim_cur; - __u64 rlim_max; -}; - -struct getcpu_cache { - unsigned long blob[16]; -}; - -struct prctl_mm_map { - __u64 start_code; - __u64 end_code; - __u64 start_data; - __u64 end_data; - __u64 start_brk; - __u64 brk; - __u64 start_stack; - __u64 arg_start; - __u64 arg_end; - __u64 env_start; - __u64 env_end; - __u64 *auxv; - __u32 auxv_size; - __u32 exe_fd; -}; - -struct bpf_netns_link { - struct bpf_link link; - enum bpf_attach_type type; - enum netns_bpf_attach_type netns_type; - struct net *net; - struct list_head node; -}; - -struct mlock_fbatch { - local_lock_t lock; - struct folio_batch fbatch; -}; - -typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); - -typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); - -typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); - -typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); - -typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); - -typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); - -typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); - -typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); - -typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); - -typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); - -typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); - -struct wb_writeback_work; - -typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); - -struct wb_writeback_work { - long nr_pages; - struct super_block *sb; - enum writeback_sync_modes sync_mode; - unsigned int tagged_writepages: 1; - unsigned int for_kupdate: 1; - unsigned int range_cyclic: 1; - unsigned int for_background: 1; - unsigned int for_sync: 1; - unsigned int auto_free: 1; - enum wb_reason reason; - struct list_head list; - struct wb_completion *done; -}; - -typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); - -typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); - -typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); - -typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); - -typedef void (*btf_trace_writeback_pages_written)(void *, long); - -typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); - -typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); - -typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); - -typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); - -typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); - -typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long); - -typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); - -typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); - -typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); - -typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); - -typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); - -typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); - -typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); - -typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); - -struct trace_event_raw_writeback_folio_template { - struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long index; - char __data[0]; -}; - -struct trace_event_raw_writeback_dirty_inode_template { - struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long state; - unsigned long flags; - char __data[0]; -}; - -struct trace_event_raw_inode_foreign_history { - struct trace_entry ent; - char name[32]; - ino_t ino; - ino_t cgroup_ino; - unsigned int history; - char __data[0]; -}; - -struct trace_event_raw_inode_switch_wbs { - struct trace_entry ent; - char name[32]; - ino_t ino; - ino_t old_cgroup_ino; - ino_t new_cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_track_foreign_dirty { - struct trace_entry ent; - char name[32]; - u64 bdi_id; - ino_t ino; - unsigned int memcg_id; - ino_t cgroup_ino; - ino_t page_cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_flush_foreign { - struct trace_entry ent; - char name[32]; - ino_t cgroup_ino; - unsigned int frn_bdi_id; - unsigned int frn_memcg_id; - char __data[0]; -}; - -struct trace_event_raw_writeback_write_inode_template { - struct trace_entry ent; - char name[32]; - ino_t ino; - int sync_mode; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_writeback_work_class { - struct trace_entry ent; - char name[32]; - long nr_pages; - dev_t sb_dev; - int sync_mode; - int for_kupdate; - int range_cyclic; - int for_background; - int reason; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_writeback_pages_written { - struct trace_entry ent; - long pages; - char __data[0]; -}; - -struct trace_event_raw_writeback_class { - struct trace_entry ent; - char name[32]; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_writeback_bdi_register { - struct trace_entry ent; - char name[32]; - char __data[0]; -}; - -struct trace_event_raw_wbc_class { - struct trace_entry ent; - char name[32]; - long nr_to_write; - long pages_skipped; - int sync_mode; - int for_kupdate; - int for_background; - int for_reclaim; - int range_cyclic; - long range_start; - long range_end; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_writeback_queue_io { - struct trace_entry ent; - char name[32]; - unsigned long older; - long age; - int moved; - int reason; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_global_dirty_state { - struct trace_entry ent; - unsigned long nr_dirty; - unsigned long nr_writeback; - unsigned long background_thresh; - unsigned long dirty_thresh; - unsigned long dirty_limit; - unsigned long nr_dirtied; - unsigned long nr_written; - char __data[0]; -}; - -struct trace_event_raw_bdi_dirty_ratelimit { - struct trace_entry ent; - char bdi[32]; - unsigned long write_bw; - unsigned long avg_write_bw; - unsigned long dirty_rate; - unsigned long dirty_ratelimit; - unsigned long task_ratelimit; - unsigned long balanced_dirty_ratelimit; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_balance_dirty_pages { - struct trace_entry ent; - char bdi[32]; - unsigned long limit; - unsigned long setpoint; - unsigned long dirty; - unsigned long bdi_setpoint; - unsigned long bdi_dirty; - unsigned long dirty_ratelimit; - unsigned long task_ratelimit; - unsigned int dirtied; - unsigned int dirtied_pause; - unsigned long paused; - long pause; - unsigned long period; - long think; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_writeback_sb_inodes_requeue { - struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long state; - unsigned long dirtied_when; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_writeback_single_inode_template { - struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long state; - unsigned long dirtied_when; - unsigned long writeback_index; - long nr_to_write; - unsigned long wrote; - ino_t cgroup_ino; - char __data[0]; -}; - -struct trace_event_raw_writeback_inode_template { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long state; - __u16 mode; - unsigned long dirtied_when; - char __data[0]; -}; - -struct inode_switch_wbs_context { - struct rcu_work work; - struct bdi_writeback *new_wb; - struct inode *inodes[0]; -}; - -struct trace_event_data_offsets_writeback_folio_template {}; - -struct trace_event_data_offsets_writeback_dirty_inode_template {}; - -struct trace_event_data_offsets_inode_foreign_history {}; - -struct trace_event_data_offsets_inode_switch_wbs {}; - -struct trace_event_data_offsets_track_foreign_dirty {}; - -struct trace_event_data_offsets_flush_foreign {}; - -struct trace_event_data_offsets_writeback_write_inode_template {}; - -struct trace_event_data_offsets_writeback_work_class {}; - -struct trace_event_data_offsets_writeback_pages_written {}; - -struct trace_event_data_offsets_writeback_class {}; - -struct trace_event_data_offsets_writeback_bdi_register {}; - -struct trace_event_data_offsets_wbc_class {}; - -struct trace_event_data_offsets_writeback_queue_io {}; - -struct trace_event_data_offsets_global_dirty_state {}; - -struct trace_event_data_offsets_bdi_dirty_ratelimit {}; - -struct trace_event_data_offsets_balance_dirty_pages {}; - -struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; - -struct trace_event_data_offsets_writeback_single_inode_template {}; - -struct trace_event_data_offsets_writeback_inode_template {}; - -enum fuse_req_flag { - FR_ISREPLY = 0, - FR_FORCE = 1, - FR_BACKGROUND = 2, - FR_WAITING = 3, - FR_ABORTED = 4, - FR_INTERRUPTED = 5, - FR_LOCKED = 6, - FR_PENDING = 7, - FR_SENT = 8, - FR_FINISHED = 9, - FR_PRIVATE = 10, - FR_ASYNC = 11, -}; - -enum fuse_notify_code { - FUSE_NOTIFY_POLL = 1, - FUSE_NOTIFY_INVAL_INODE = 2, - FUSE_NOTIFY_INVAL_ENTRY = 3, - FUSE_NOTIFY_STORE = 4, - FUSE_NOTIFY_RETRIEVE = 5, - FUSE_NOTIFY_DELETE = 6, - FUSE_NOTIFY_RESEND = 7, - FUSE_NOTIFY_CODE_MAX = 8, -}; - -struct fuse_in_header { - uint32_t len; - uint32_t opcode; - uint64_t unique; - uint64_t nodeid; - uint32_t uid; - uint32_t gid; - uint32_t pid; - uint16_t total_extlen; - uint16_t padding; -}; - -struct fuse_out_header { - uint32_t len; - int32_t error; - uint64_t unique; -}; - -struct fuse_req { - struct list_head list; - struct list_head intr_entry; - struct fuse_args *args; - refcount_t count; - unsigned long flags; - struct { - struct fuse_in_header h; - } in; - struct { - struct fuse_out_header h; - } out; - wait_queue_head_t waitq; - struct fuse_mount *fm; -}; - -struct fuse_notify_retrieve_in { - uint64_t dummy1; - uint64_t offset; - uint32_t size; - uint32_t dummy2; - uint64_t dummy3; - uint64_t dummy4; -}; - -struct fuse_retrieve_args { - struct fuse_args_pages ap; - struct fuse_notify_retrieve_in inarg; -}; - -struct fuse_copy_state { - int write; - struct fuse_req *req; - struct iov_iter *iter; - struct pipe_buffer *pipebufs; - struct pipe_buffer *currbuf; - struct pipe_inode_info *pipe; - unsigned long nr_segs; - struct page *pg; - unsigned int len; - unsigned int offset; - unsigned int move_pages: 1; -}; - -struct fuse_batch_forget_in { - uint32_t count; - uint32_t dummy; -}; - -struct fuse_notify_retrieve_out { - uint64_t notify_unique; - uint64_t nodeid; - uint64_t offset; - uint32_t size; - uint32_t padding; -}; - -struct fuse_notify_inval_entry_out { - uint64_t parent; - uint32_t namelen; - uint32_t flags; -}; - -struct fuse_notify_store_out { - uint64_t nodeid; - uint64_t offset; - uint32_t size; - uint32_t padding; -}; - -struct fuse_notify_inval_inode_out { - uint64_t ino; - int64_t off; - int64_t len; -}; - -struct fuse_notify_delete_out { - uint64_t parent; - uint64_t child; - uint32_t namelen; - uint32_t padding; -}; - -struct fuse_interrupt_in { - uint64_t unique; -}; - -enum { - LOG_INODE_ALL = 0, - LOG_INODE_EXISTS = 1, -}; - -enum { - LOG_WALK_PIN_ONLY = 0, - LOG_WALK_REPLAY_INODES = 1, - LOG_WALK_REPLAY_DIR_INDEX = 2, - LOG_WALK_REPLAY_ALL = 3, -}; - -struct btrfs_ino_list { - u64 ino; - u64 parent; - struct list_head list; -}; - -struct btrfs_dir_list { - u64 ino; - struct list_head list; -}; - -struct btrfs_dir_log_item { - __le64 end; -}; - -struct walk_control___2 { - int free; - int pin; - int stage; - bool ignore_cur_inode; - struct btrfs_root *replay_dest; - struct btrfs_trans_handle *trans; - int (*process_func)(struct btrfs_root *, struct extent_buffer *, struct walk_control___2 *, u64, int); -}; - -enum { - BLK_MQ_UNIQUE_TAG_BITS = 16, - BLK_MQ_UNIQUE_TAG_MASK = 65535, -}; - -struct bt_iter_data { - struct blk_mq_hw_ctx *hctx; - struct request_queue *q; - busy_tag_iter_fn *fn; - void *data; - bool reserved; -}; - -struct bt_tags_iter_data { - struct blk_mq_tags *tags; - busy_tag_iter_fn *fn; - void *data; - unsigned int flags; -}; - -struct bd_holder_disk { - struct list_head list; - struct kobject *holder_dir; - int refcnt; -}; - -enum enable_type { - undefined = -1, - user_disabled = 0, - auto_disabled = 1, - user_enabled = 2, - auto_enabled = 3, -}; - -enum release_type { - leaf_only = 0, - whole_subtree = 1, -}; - -struct pci_dev_resource { - struct list_head list; - struct resource *res; - struct pci_dev *dev; - resource_size_t start; - resource_size_t end; - resource_size_t add_size; - resource_size_t min_align; - unsigned long flags; -}; - -struct acpi_vendor_walk_info { - struct acpi_vendor_uuid *uuid; - struct acpi_buffer *buffer; - acpi_status status; -}; - -enum { - K2_FLAG_SATA_8_PORTS = 16777216, - K2_FLAG_NO_ATAPI_DMA = 33554432, - K2_FLAG_BAR_POS_3 = 67108864, - K2_SATA_TF_CMD_OFFSET = 0, - K2_SATA_TF_DATA_OFFSET = 0, - K2_SATA_TF_ERROR_OFFSET = 4, - K2_SATA_TF_NSECT_OFFSET = 8, - K2_SATA_TF_LBAL_OFFSET = 12, - K2_SATA_TF_LBAM_OFFSET = 16, - K2_SATA_TF_LBAH_OFFSET = 20, - K2_SATA_TF_DEVICE_OFFSET = 24, - K2_SATA_TF_CMDSTAT_OFFSET = 28, - K2_SATA_TF_CTL_OFFSET = 32, - K2_SATA_DMA_CMD_OFFSET = 48, - K2_SATA_SCR_STATUS_OFFSET = 64, - K2_SATA_SCR_ERROR_OFFSET = 68, - K2_SATA_SCR_CONTROL_OFFSET = 72, - K2_SATA_SICR1_OFFSET = 128, - K2_SATA_SICR2_OFFSET = 132, - K2_SATA_SIM_OFFSET = 136, - K2_SATA_PORT_OFFSET = 256, - chip_svw4 = 0, - chip_svw8 = 1, - chip_svw42 = 2, - chip_svw43 = 3, -}; - -struct iwl_causes_list { - u16 mask_reg; - u8 bit; - u8 addr; -}; - -enum iwl_fw_dbg_reg_operator { - CSR_ASSIGN = 0, - CSR_SETBIT = 1, - CSR_CLEARBIT = 2, - PRPH_ASSIGN = 3, - PRPH_SETBIT = 4, - PRPH_CLEARBIT = 5, - INDIRECT_ASSIGN = 6, - INDIRECT_SETBIT = 7, - INDIRECT_CLEARBIT = 8, - PRPH_BLOCKBIT = 9, -}; - -enum { - LMPM_CHICK_EXTENDED_ADDR_SPACE = 1, -}; - -struct iwl_trans_pcie_removal { - struct pci_dev *pdev; - struct work_struct work; - bool rescan; -}; - -struct iwl_fw_error_dump_rb { - __le32 index; - __le32 rxq; - __le32 reserved; - u8 data[0]; -}; - -struct iwl_fw_error_dump_fw_mon { - __le32 fw_mon_wr_ptr; - __le32 fw_mon_base_ptr; - __le32 fw_mon_cycle_cnt; - __le32 fw_mon_base_high_ptr; - __le32 reserved[2]; - u8 data[0]; -}; - -struct iwl_fw_error_dump_txcmd { - __le32 cmdlen; - __le32 caplen; - u8 data[0]; -}; - -struct hwmon_type_attr_list { - const u32 *attrs; - size_t n_attrs; -}; - -struct power_supply_hwmon { - struct power_supply *psy; - unsigned long *props; -}; - -struct pstate_data { - int current_pstate; - int min_pstate; - int max_pstate; - int max_pstate_physical; - int perf_ctl_scaling; - int scaling; - int turbo_pstate; - unsigned int min_freq; - unsigned int max_freq; - unsigned int turbo_freq; -}; - -struct vid_data { - int min; - int max; - int turbo; - int32_t ratio; -}; - -struct sample { - int32_t core_avg_perf; - int32_t busy_scaled; - u64 aperf; - u64 mperf; - u64 tsc; - u64 time; -}; - -struct cpudata { - int cpu; - unsigned int policy; - struct update_util_data update_util; - bool update_util_set; - struct pstate_data pstate; - struct vid_data vid; - u64 last_update; - u64 last_sample_time; - u64 aperf_mperf_shift; - u64 prev_aperf; - u64 prev_mperf; - u64 prev_tsc; - struct sample sample; - int32_t min_perf_ratio; - int32_t max_perf_ratio; - struct acpi_processor_performance acpi_perf_data; - bool valid_pss_table; - unsigned int iowait_boost; - s16 epp_powersave; - s16 epp_policy; - s16 epp_default; - s16 epp_cached; - u64 hwp_req_cached; - u64 hwp_cap_cached; - u64 last_io_update; - unsigned int sched_flags; - u32 hwp_boost_min; - bool suspended; - struct delayed_work hwp_notify_work; -}; - -struct pstate_funcs { - int (*get_max)(int); - int (*get_max_physical)(int); - int (*get_min)(int); - int (*get_turbo)(int); - int (*get_scaling)(); - int (*get_cpu_scaling)(int); - int (*get_aperf_mperf_shift)(); - u64 (*get_val)(struct cpudata *, int); - void (*get_vid)(struct cpudata *); -}; - -struct global_params { - bool no_turbo; - bool turbo_disabled; - bool turbo_disabled_mf; - int max_perf_pct; - int min_perf_pct; -}; - -enum { - PSS = 0, - PPC = 1, -}; - -enum { - ETHTOOL_A_LINKSTATE_UNSPEC = 0, - ETHTOOL_A_LINKSTATE_HEADER = 1, - ETHTOOL_A_LINKSTATE_LINK = 2, - ETHTOOL_A_LINKSTATE_SQI = 3, - ETHTOOL_A_LINKSTATE_SQI_MAX = 4, - ETHTOOL_A_LINKSTATE_EXT_STATE = 5, - ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 6, - ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 7, - __ETHTOOL_A_LINKSTATE_CNT = 8, - ETHTOOL_A_LINKSTATE_MAX = 7, -}; - -struct linkstate_reply_data { - struct ethnl_reply_data base; - int link; - int sqi; - int sqi_max; - struct ethtool_link_ext_stats link_stats; - bool link_ext_state_provided; - struct ethtool_link_ext_state_info ethtool_link_ext_state_info; -}; - -struct bpf_iter__udp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct udp_sock *udp_sk; - }; - uid_t uid; - long: 0; - int bucket; -}; - -struct bpf_udp_iter_state { - struct udp_iter_state state; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - int offset; - struct sock **batch; - bool st_bucket_done; + struct tcp_congestion_ops data; }; struct brport_attribute { @@ -140299,340 +132196,1549 @@ struct brport_attribute { int (*store_raw)(struct net_bridge_port *, char *); }; -enum { - BPF_TASK_ITER_ALL_PROCS = 0, - BPF_TASK_ITER_ALL_THREADS = 1, - BPF_TASK_ITER_PROC_THREADS = 2, +enum ocb_deferred_task_flags { + OCB_WORK_HOUSEKEEPING = 0, }; -enum bpf_task_vma_iter_find_op { - task_vma_iter_first_vma = 0, - task_vma_iter_next_vma = 1, - task_vma_iter_find_vma = 2, -}; - -typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); - -struct bpf_iter__task { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; -}; - -struct bpf_iter_seq_task_common { +struct bsd_acct_struct { + struct fs_pin pin; + atomic_long_t count; + struct callback_head rcu; + struct mutex lock; + int active; + unsigned long needcheck; + struct file *file; struct pid_namespace *ns; - enum bpf_iter_task_type type; - u32 pid; - u32 pid_visiting; + struct work_struct work; + struct completion done; }; -struct bpf_iter__task_file { +typedef __u16 comp_t; + +struct acct { + char ac_flag; + char ac_version; + __u16 ac_uid16; + __u16 ac_gid16; + __u16 ac_tty; + __u32 ac_btime; + comp_t ac_utime; + comp_t ac_stime; + comp_t ac_etime; + comp_t ac_mem; + comp_t ac_io; + comp_t ac_rw; + comp_t ac_minflt; + comp_t ac_majflt; + comp_t ac_swaps; + __u16 ac_ahz; + __u32 ac_exitcode; + char ac_comm[17]; + __u8 ac_etime_hi; + __u16 ac_etime_lo; + __u32 ac_uid; + __u32 ac_gid; +}; + +typedef struct acct acct_t; + +typedef __u32 comp2_t; + +struct tcx_link { + struct bpf_link link; + struct net_device *dev; + u32 location; +}; + +typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); + +typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); + +typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); + +typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); + +typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); + +struct trace_event_raw_tlb_flush { + struct trace_entry ent; + int reason; + unsigned long pages; + char __data[0]; +}; + +struct trace_event_raw_mm_migrate_pages { + struct trace_entry ent; + unsigned long succeeded; + unsigned long failed; + unsigned long thp_succeeded; + unsigned long thp_failed; + unsigned long thp_split; + unsigned long large_folio_split; + enum migrate_mode mode; + int reason; + char __data[0]; +}; + +struct trace_event_raw_mm_migrate_pages_start { + struct trace_entry ent; + enum migrate_mode mode; + int reason; + char __data[0]; +}; + +struct trace_event_raw_migration_pte { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + int order; + char __data[0]; +}; + +struct trace_event_data_offsets_tlb_flush {}; + +struct trace_event_data_offsets_mm_migrate_pages {}; + +struct trace_event_data_offsets_mm_migrate_pages_start {}; + +struct trace_event_data_offsets_migration_pte {}; + +struct folio_referenced_arg { + int mapcount; + int referenced; + unsigned long vm_flags; + struct mem_cgroup *memcg; +}; + +enum { + Opt_uid___7 = 0, + Opt_gid___8 = 1, + Opt_mode___6 = 2, + Opt_ptmxmode = 3, + Opt_newinstance = 4, + Opt_max = 5, + Opt_err___6 = 6, +}; + +struct pts_mount_opts { + int setuid; + int setgid; + kuid_t uid; + kgid_t gid; + umode_t mode; + umode_t ptmxmode; + int reserve; + int max; +}; + +struct pts_fs_info { + struct ida allocated_ptys; + struct pts_mount_opts mount_opts; + struct super_block *sb; + struct dentry *ptmx_dentry; +}; + +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; +}; + +struct jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + unsigned long long blocknr; +}; + +struct crypto_rfc4543_instance_ctx { + struct crypto_aead_spawn aead; +}; + +struct gcm_instance_ctx { + struct crypto_skcipher_spawn ctr; + struct crypto_ahash_spawn ghash; +}; + +struct crypto_gcm_ghash_ctx { + unsigned int cryptlen; + struct scatterlist *src; + int (*complete)(struct aead_request *, u32); +}; + +struct crypto_gcm_req_priv_ctx { + u8 iv[16]; + u8 auth_tag[16]; + u8 iauth_tag[16]; + struct scatterlist src[3]; + struct scatterlist dst[3]; + struct scatterlist sg; + struct crypto_gcm_ghash_ctx ghash_ctx; union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - u32 fd; - union { - struct file *file; - }; + struct ahash_request ahreq; + struct skcipher_request skreq; + } u; }; -struct bpf_iter_seq_task_file_info { - struct bpf_iter_seq_task_common common; - struct task_struct *task; - u32 tid; - u32 fd; +struct crypto_gcm_ctx { + struct crypto_skcipher *ctr; + struct crypto_ahash *ghash; }; -struct bpf_iter__task_vma { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - union { - struct vm_area_struct *vma; - }; +struct crypto_rfc4543_ctx { + struct crypto_aead *child; + struct crypto_sync_skcipher *null; + u8 nonce[4]; }; -struct bpf_iter_seq_task_vma_info { - struct bpf_iter_seq_task_common common; - struct task_struct *task; - struct mm_struct *mm; - struct vm_area_struct *vma; - u32 tid; - unsigned long prev_vm_start; - unsigned long prev_vm_end; +struct crypto_rfc4106_ctx { + struct crypto_aead *child; + u8 nonce[4]; }; -struct bpf_iter_task_vma { - __u64 __opaque[1]; +struct crypto_rfc4106_req_ctx { + struct scatterlist src[3]; + struct scatterlist dst[3]; + struct aead_request subreq; }; -struct bpf_iter_task_vma_kern_data; - -struct bpf_iter_task_vma_kern { - struct bpf_iter_task_vma_kern_data *data; +struct crypto_rfc4543_req_ctx { + struct aead_request subreq; }; -struct bpf_iter_task_vma_kern_data { - struct task_struct *task; - struct mm_struct *mm; - struct mmap_unlock_irq_work *work; - struct vma_iterator vmi; +struct io_ftrunc { + struct file *file; + loff_t len; }; -struct bpf_iter_css_task { - __u64 __opaque[1]; +enum depot_counter_id { + DEPOT_COUNTER_REFD_ALLOCS = 0, + DEPOT_COUNTER_REFD_FREES = 1, + DEPOT_COUNTER_REFD_INUSE = 2, + DEPOT_COUNTER_FREELIST_SIZE = 3, + DEPOT_COUNTER_PERSIST_COUNT = 4, + DEPOT_COUNTER_PERSIST_BYTES = 5, + DEPOT_COUNTER_COUNT = 6, }; -struct bpf_iter_css_task_kern { - struct css_task_iter *css_it; -}; +typedef u32 depot_flags_t; -struct bpf_iter_task { - __u64 __opaque[3]; -}; - -struct bpf_iter_task_kern { - struct task_struct *task; - struct task_struct *pos; - unsigned int flags; -}; - -struct bpf_iter_seq_task_info { - struct bpf_iter_seq_task_common common; - u32 tid; -}; - -typedef int fpb_t; - -struct copy_subpage_arg { - struct page *dst; - struct page *src; - struct vm_area_struct *vma; -}; - -struct iomap_dio { - struct kiocb *iocb; - const struct iomap_dio_ops *dops; - loff_t i_size; - loff_t size; - atomic_t ref; - unsigned int flags; - int error; - size_t done_before; - bool wait_for_completion; - union { - struct { - struct iov_iter *iter; - struct task_struct *waiter; - } submit; - struct { - struct work_struct work; - } aio; - }; -}; - -struct getdents_callback___2 { - struct dir_context ctx; - char *name; - u64 ino; - int found; - int sequence; -}; - -enum prio_policy { - POLICY_NO_CHANGE = 0, - POLICY_PROMOTE_TO_RT = 1, - POLICY_RESTRICT_TO_BE = 2, - POLICY_ALL_TO_IDLE = 3, - POLICY_NONE_TO_RT = 4, -}; - -struct ioprio_blkcg { - struct blkcg_policy_data cpd; - enum prio_policy prio_policy; -}; - -struct ioprio_blkg { - struct blkg_policy_data pd; -}; - -struct strarray { - char **array; - size_t n; -}; - -struct override_status_id { - struct acpi_device_id hid[2]; - struct x86_cpu_id cpu_ids[2]; - struct dmi_system_id dmi_ids[2]; - const char *uid; - const char *path; - unsigned long long status; -}; - -struct acpi_port_info { - char *name; - u16 start; - u16 end; - u8 osi_dependency; -}; - -struct vring_desc; - -typedef struct vring_desc vring_desc_t; - -struct vring_avail; - -typedef struct vring_avail vring_avail_t; - -struct vring_used; - -typedef struct vring_used vring_used_t; - -struct vring { - unsigned int num; - vring_desc_t *desc; - vring_avail_t *avail; - vring_used_t *used; -}; - -struct vring_desc_state_split; - -struct vring_desc_extra; - -struct vring_virtqueue_split { - struct vring vring; - u16 avail_flags_shadow; - u16 avail_idx_shadow; - struct vring_desc_state_split *desc_state; - struct vring_desc_extra *desc_extra; - dma_addr_t queue_dma_addr; - size_t queue_size_in_bytes; - u32 vring_align; - bool may_reduce_num; -}; - -struct vring_packed_desc; - -struct vring_packed_desc_event; - -struct vring_desc_state_packed; - -struct vring_virtqueue_packed { +union handle_parts { + depot_stack_handle_t handle; struct { - unsigned int num; - struct vring_packed_desc *desc; - struct vring_packed_desc_event *driver; - struct vring_packed_desc_event *device; - } vring; - bool avail_wrap_counter; - u16 avail_used_flags; - u16 next_avail_idx; - u16 event_flags_shadow; - struct vring_desc_state_packed *desc_state; - struct vring_desc_extra *desc_extra; - dma_addr_t ring_dma_addr; - dma_addr_t driver_event_dma_addr; - dma_addr_t device_event_dma_addr; - size_t ring_size_in_bytes; - size_t event_size_in_bytes; -}; - -struct vring_virtqueue { - struct virtqueue vq; - bool packed_ring; - bool use_dma_api; - bool weak_barriers; - bool broken; - bool indirect; - bool event; - bool premapped; - bool do_unmap; - unsigned int free_head; - unsigned int num_added; - u16 last_used_idx; - bool event_triggered; - union { - struct vring_virtqueue_split split; - struct vring_virtqueue_packed packed; + u32 pool_index: 17; + u32 offset: 10; + u32 extra: 5; }; - bool (*notify)(struct virtqueue *); - bool we_own_ring; - struct device *dma_dev; }; -struct vring_desc { - __virtio64 addr; - __virtio32 len; - __virtio16 flags; - __virtio16 next; +struct stack_record { + struct list_head hash_list; + u32 hash; + u32 size; + union handle_parts handle; + refcount_t count; + union { + unsigned long entries[64]; + struct { + struct list_head free_list; + unsigned long rcu_state; + }; + }; }; -struct vring_avail { - __virtio16 flags; - __virtio16 idx; - __virtio16 ring[0]; +struct acpi_madt_io_sapic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 global_irq_base; + u64 address; }; -struct vring_used_elem { - __virtio32 id; - __virtio32 len; +struct acpi_madt_interrupt_source { + struct acpi_subtable_header header; + u16 inti_flags; + u8 type; + u8 id; + u8 eid; + u8 io_sapic_vector; + u32 global_irq; + u32 flags; }; -typedef struct vring_used_elem vring_used_elem_t; +struct acpi_madt_generic_interrupt { + struct acpi_subtable_header header; + u16 reserved; + u32 cpu_interface_number; + u32 uid; + u32 flags; + u32 parking_version; + u32 performance_interrupt; + u64 parked_address; + u64 base_address; + u64 gicv_base_address; + u64 gich_base_address; + u32 vgic_interrupt; + u64 gicr_base_address; + u64 arm_mpidr; + u8 efficiency_class; + u8 reserved2[1]; + u16 spe_interrupt; + u16 trbe_interrupt; +} __attribute__((packed)); -struct vring_used { - __virtio16 flags; - __virtio16 idx; - vring_used_elem_t ring[0]; +struct acpi_madt_generic_distributor { + struct acpi_subtable_header header; + u16 reserved; + u32 gic_id; + u64 base_address; + u32 global_irq_base; + u8 version; + u8 reserved2[3]; }; -struct vring_desc_state_split { - void *data; - struct vring_desc *indir_desc; +struct acpi_madt_core_pic { + struct acpi_subtable_header header; + u8 version; + u32 processor_id; + u32 core_id; + u32 flags; +} __attribute__((packed)); + +struct acpi_madt_rintc { + struct acpi_subtable_header header; + u8 version; + u8 reserved; + u32 flags; + u64 hart_id; + u32 uid; + u32 ext_intc_id; + u64 imsic_addr; + u32 imsic_size; +} __attribute__((packed)); + +union fw_table_header { + struct acpi_table_header acpi; + struct acpi_table_cdat cdat; }; -struct vring_desc_extra { - dma_addr_t addr; - u32 len; - u16 flags; - u16 next; +struct find_child_walk_data { + struct acpi_device *adev; + u64 address; + int score; + bool check_sta; + bool check_children; }; -struct vring_packed_desc { - __le64 addr; - __le32 len; - __le16 id; +struct acpi_exception_info { + char *name; +}; + +struct dma_buf_list { + struct list_head head; + struct mutex lock; +}; + +struct dma_buf; + +struct dma_buf_attach_ops; + +struct dma_buf_attachment { + struct dma_buf *dmabuf; + struct device *dev; + struct list_head node; + struct sg_table *sgt; + enum dma_data_direction dir; + bool peer2peer; + const struct dma_buf_attach_ops *importer_ops; + void *importer_priv; + void *priv; +}; + +struct iosys_map { + union { + void *vaddr_iomem; + void *vaddr; + }; + bool is_iomem; +}; + +struct dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; +}; + +struct dma_buf_ops; + +struct dma_buf { + size_t size; + struct file *file; + struct list_head attachments; + const struct dma_buf_ops *ops; + unsigned int vmapping_counter; + struct iosys_map vmap_ptr; + const char *exp_name; + const char *name; + spinlock_t name_lock; + struct module *owner; + struct list_head list_node; + void *priv; + struct dma_resv *resv; + wait_queue_head_t poll; + struct dma_buf_poll_cb_t cb_in; + struct dma_buf_poll_cb_t cb_out; +}; + +struct dma_buf_ops { + bool cache_sgt_mapping; + int (*attach)(struct dma_buf *, struct dma_buf_attachment *); + void (*detach)(struct dma_buf *, struct dma_buf_attachment *); + int (*pin)(struct dma_buf_attachment *); + void (*unpin)(struct dma_buf_attachment *); + struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction); + void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction); + void (*release)(struct dma_buf *); + int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction); + int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction); + int (*mmap)(struct dma_buf *, struct vm_area_struct *); + int (*vmap)(struct dma_buf *, struct iosys_map *); + void (*vunmap)(struct dma_buf *, struct iosys_map *); +}; + +struct dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); +}; + +struct dma_buf_import_sync_file { + __u32 flags; + __s32 fd; +}; + +struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; +}; + +struct dma_buf_export_info { + const char *exp_name; + struct module *owner; + const struct dma_buf_ops *ops; + size_t size; + int flags; + struct dma_resv *resv; + void *priv; +}; + +struct dma_buf_sync { + __u64 flags; +}; + +struct iwl_mvm_scan_timing_params { + u32 suspend_time; + u32 max_out_time; +}; + +struct iwl_mvm_scan_params; + +struct iwl_scan_umac_handler { + u8 version; + int (*handler)(struct iwl_mvm *, struct ieee80211_vif *, struct iwl_mvm_scan_params *, int, int); +}; + +struct iwl_scan_probe_segment { + __le16 offset; + __le16 len; +}; + +struct iwl_scan_probe_req { + struct iwl_scan_probe_segment mac_header; + struct iwl_scan_probe_segment band_data[3]; + struct iwl_scan_probe_segment common_data; + u8 buf[512]; +}; + +struct iwl_mvm_scan_params { + enum iwl_mvm_scan_type type; + enum iwl_mvm_scan_type hb_type; + u32 n_channels; + u16 delay; + int n_ssids; + struct cfg80211_ssid *ssids; + struct ieee80211_channel **channels; + u32 flags; + u8 *mac_addr; + u8 *mac_addr_mask; + bool no_cck; + bool pass_all; + int n_match_sets; + struct iwl_scan_probe_req preq; + struct cfg80211_match_set *match_sets; + int n_scan_plans; + struct cfg80211_sched_scan_plan *scan_plans; + bool iter_notif; + struct cfg80211_scan_6ghz_params *scan_6ghz_params; + u32 n_6ghz_params; + bool scan_6ghz; + bool enable_6ghz_passive; + bool respect_p2p_go; + bool respect_p2p_go_hb; + s8 tsf_report_link_id; + short: 0; + u8 bssid[6]; +}; + +struct iwl_mvm_scan_channel_segment { + u8 start_idx; + u8 end_idx; + u8 first_channel_id; + u8 last_channel_id; + u8 channel_spacing_shift; + u8 band; +}; + +enum iwl_scan_offload_complete_status { + IWL_SCAN_OFFLOAD_COMPLETED = 1, + IWL_SCAN_OFFLOAD_ABORTED = 2, +}; + +enum iwl_scan_ebs_status { + IWL_SCAN_EBS_SUCCESS = 0, + IWL_SCAN_EBS_FAILED = 1, + IWL_SCAN_EBS_CHAN_NOT_FOUND = 2, + IWL_SCAN_EBS_INACTIVE = 3, +}; + +enum scan_config_flags { + SCAN_CONFIG_FLAG_ACTIVATE = 1, + SCAN_CONFIG_FLAG_DEACTIVATE = 2, + SCAN_CONFIG_FLAG_FORBID_CHUB_REQS = 4, + SCAN_CONFIG_FLAG_ALLOW_CHUB_REQS = 8, + SCAN_CONFIG_FLAG_SET_TX_CHAINS = 256, + SCAN_CONFIG_FLAG_SET_RX_CHAINS = 512, + SCAN_CONFIG_FLAG_SET_AUX_STA_ID = 1024, + SCAN_CONFIG_FLAG_SET_ALL_TIMES = 2048, + SCAN_CONFIG_FLAG_SET_EFFECTIVE_TIMES = 4096, + SCAN_CONFIG_FLAG_SET_CHANNEL_FLAGS = 8192, + SCAN_CONFIG_FLAG_SET_LEGACY_RATES = 16384, + SCAN_CONFIG_FLAG_SET_MAC_ADDR = 32768, + SCAN_CONFIG_FLAG_SET_FRAGMENTED = 65536, + SCAN_CONFIG_FLAG_CLEAR_FRAGMENTED = 131072, + SCAN_CONFIG_FLAG_SET_CAM_MODE = 262144, + SCAN_CONFIG_FLAG_CLEAR_CAM_MODE = 524288, + SCAN_CONFIG_FLAG_SET_PROMISC_MODE = 1048576, + SCAN_CONFIG_FLAG_CLEAR_PROMISC_MODE = 2097152, + SCAN_CONFIG_FLAG_SET_LMAC2_FRAGMENTED = 4194304, + SCAN_CONFIG_FLAG_CLEAR_LMAC2_FRAGMENTED = 8388608, +}; + +enum iwl_channel_flags { + IWL_CHANNEL_FLAG_EBS = 1, + IWL_CHANNEL_FLAG_ACCURATE_EBS = 2, + IWL_CHANNEL_FLAG_EBS_ADD = 4, + IWL_CHANNEL_FLAG_PRE_SCAN_PASSIVE2ACTIVE = 8, +}; + +enum iwl_scan_channel_flags { + IWL_SCAN_CHANNEL_FLAG_EBS = 1, + IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE = 2, + IWL_SCAN_CHANNEL_FLAG_CACHE_ADD = 4, + IWL_SCAN_CHANNEL_FLAG_EBS_FRAG = 8, + IWL_SCAN_CHANNEL_FLAG_FORCE_EBS = 16, + IWL_SCAN_CHANNEL_FLAG_ENABLE_CHAN_ORDER = 32, + IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER = 64, +}; + +enum iwl_scan_priority_ext { + IWL_SCAN_PRIORITY_EXT_0_LOWEST = 0, + IWL_SCAN_PRIORITY_EXT_1 = 1, + IWL_SCAN_PRIORITY_EXT_2 = 2, + IWL_SCAN_PRIORITY_EXT_3 = 3, + IWL_SCAN_PRIORITY_EXT_4 = 4, + IWL_SCAN_PRIORITY_EXT_5 = 5, + IWL_SCAN_PRIORITY_EXT_6 = 6, + IWL_SCAN_PRIORITY_EXT_7_HIGHEST = 7, +}; + +enum iwl_mvm_lmac_scan_flags { + IWL_MVM_LMAC_SCAN_FLAG_PASS_ALL = 1, + IWL_MVM_LMAC_SCAN_FLAG_PASSIVE = 2, + IWL_MVM_LMAC_SCAN_FLAG_PRE_CONNECTION = 4, + IWL_MVM_LMAC_SCAN_FLAG_ITER_COMPLETE = 8, + IWL_MVM_LMAC_SCAN_FLAG_MULTIPLE_SSIDS = 16, + IWL_MVM_LMAC_SCAN_FLAG_FRAGMENTED = 32, + IWL_MVM_LMAC_SCAN_FLAGS_RRM_ENABLED = 64, + IWL_MVM_LMAC_SCAN_FLAG_EXTENDED_DWELL = 128, + IWL_MVM_LMAC_SCAN_FLAG_MATCH = 512, +}; + +enum { + IWL_RATE_6M_PLCP___2 = 13, + IWL_RATE_9M_PLCP___2 = 15, + IWL_RATE_12M_PLCP___2 = 5, + IWL_RATE_18M_PLCP___2 = 7, + IWL_RATE_24M_PLCP___2 = 9, + IWL_RATE_36M_PLCP___2 = 11, + IWL_RATE_48M_PLCP___2 = 1, + IWL_RATE_54M_PLCP___2 = 3, + IWL_RATE_1M_PLCP___2 = 10, + IWL_RATE_2M_PLCP___2 = 20, + IWL_RATE_5M_PLCP___2 = 55, + IWL_RATE_11M_PLCP___2 = 110, + IWL_RATE_INVM_PLCP = -1, +}; + +enum iwl_scan_channel_flags_lmac { + IWL_UNIFIED_SCAN_CHANNEL_FULL = 134217728, + IWL_UNIFIED_SCAN_CHANNEL_PARTIAL = 268435456, +}; + +enum iwl_umac_scan_general_flags_v2 { + IWL_UMAC_SCAN_GEN_FLAGS_V2_PERIODIC = 1, + IWL_UMAC_SCAN_GEN_FLAGS_V2_PASS_ALL = 2, + IWL_UMAC_SCAN_GEN_FLAGS_V2_NTFY_ITER_COMPLETE = 4, + IWL_UMAC_SCAN_GEN_FLAGS_V2_FRAGMENTED_LMAC1 = 8, + IWL_UMAC_SCAN_GEN_FLAGS_V2_FRAGMENTED_LMAC2 = 16, + IWL_UMAC_SCAN_GEN_FLAGS_V2_MATCH = 32, + IWL_UMAC_SCAN_GEN_FLAGS_V2_USE_ALL_RX_CHAINS = 64, + IWL_UMAC_SCAN_GEN_FLAGS_V2_ADAPTIVE_DWELL = 128, + IWL_UMAC_SCAN_GEN_FLAGS_V2_PREEMPTIVE = 256, + IWL_UMAC_SCAN_GEN_FLAGS_V2_NTF_START = 512, + IWL_UMAC_SCAN_GEN_FLAGS_V2_MULTI_SSID = 1024, + IWL_UMAC_SCAN_GEN_FLAGS_V2_FORCE_PASSIVE = 2048, + IWL_UMAC_SCAN_GEN_FLAGS_V2_TRIGGER_UHB_SCAN = 4096, + IWL_UMAC_SCAN_GEN_FLAGS_V2_6GHZ_PASSIVE_SCAN = 8192, + IWL_UMAC_SCAN_GEN_FLAGS_V2_6GHZ_PASSIVE_SCAN_FILTER_IN = 16384, + IWL_UMAC_SCAN_GEN_FLAGS_V2_OCE = 32768, +}; + +enum iwl_umac_scan_general_params_flags2 { + IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_RESPECT_P2P_GO_LB = 1, + IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_RESPECT_P2P_GO_HB = 2, + IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_DONT_TOGGLE_ANT = 4, +}; + +enum iwl_uhb_chan_cfg_flags { + IWL_UHB_CHAN_CFG_FLAG_UNSOLICITED_PROBE_RES = 16777216, + IWL_UHB_CHAN_CFG_FLAG_PSC_CHAN_NO_LISTEN = 33554432, + IWL_UHB_CHAN_CFG_FLAG_FORCE_PASSIVE = 67108864, +}; + +enum iwl_umac_scan_general_flags { + IWL_UMAC_SCAN_GEN_FLAGS_PERIODIC = 1, + IWL_UMAC_SCAN_GEN_FLAGS_OVER_BT = 2, + IWL_UMAC_SCAN_GEN_FLAGS_PASS_ALL = 4, + IWL_UMAC_SCAN_GEN_FLAGS_PASSIVE = 8, + IWL_UMAC_SCAN_GEN_FLAGS_PRE_CONNECT = 16, + IWL_UMAC_SCAN_GEN_FLAGS_ITER_COMPLETE = 32, + IWL_UMAC_SCAN_GEN_FLAGS_MULTIPLE_SSID = 64, + IWL_UMAC_SCAN_GEN_FLAGS_FRAGMENTED = 128, + IWL_UMAC_SCAN_GEN_FLAGS_RRM_ENABLED = 256, + IWL_UMAC_SCAN_GEN_FLAGS_MATCH = 512, + IWL_UMAC_SCAN_GEN_FLAGS_EXTENDED_DWELL = 1024, + IWL_UMAC_SCAN_GEN_FLAGS_PROB_REQ_DEFER_SUPP = 1024, + IWL_UMAC_SCAN_GEN_FLAGS_LMAC2_FRAGMENTED = 2048, + IWL_UMAC_SCAN_GEN_FLAGS_ADAPTIVE_DWELL = 8192, + IWL_UMAC_SCAN_GEN_FLAGS_MAX_CHNL_TIME = 16384, + IWL_UMAC_SCAN_GEN_FLAGS_PROB_REQ_HIGH_TX_RATE = 32768, +}; + +enum iwl_umac_scan_general_flags2 { + IWL_UMAC_SCAN_GEN_FLAGS2_NOTIF_PER_CHNL = 1, + IWL_UMAC_SCAN_GEN_FLAGS2_ALLOW_CHNL_REORDER = 2, +}; + +enum iwl_umac_scan_flags { + IWL_UMAC_SCAN_FLAG_PREEMPTIVE = 1, + IWL_UMAC_SCAN_FLAG_START_NOTIF = 2, +}; + +enum scan_framework_client { + SCAN_CLIENT_SCHED_SCAN = 1, + SCAN_CLIENT_NETDETECT = 2, + SCAN_CLIENT_ASSET_TRACKING = 4, +}; + +enum iwl_scan_offload_auth_alg { + IWL_AUTH_ALGO_UNSUPPORTED = 0, + IWL_AUTH_ALGO_NONE = 1, + IWL_AUTH_ALGO_PSK = 2, + IWL_AUTH_ALGO_8021X = 4, + IWL_AUTH_ALGO_SAE = 8, + IWL_AUTH_ALGO_8021X_SHA384 = 16, + IWL_AUTH_ALGO_OWE = 32, +}; + +enum iwl_scan_offload_network_type { + IWL_NETWORK_TYPE_BSS = 1, + IWL_NETWORK_TYPE_IBSS = 2, + IWL_NETWORK_TYPE_ANY = 3, +}; + +enum iwl_scan_offload_band_selection { + IWL_SCAN_OFFLOAD_SELECT_2_4 = 4, + IWL_SCAN_OFFLOAD_SELECT_5_2 = 8, + IWL_SCAN_OFFLOAD_SELECT_ANY = 12, +}; + +struct iwl_scan_umac_schedule { + __le16 interval; + u8 iter_count; + u8 reserved; +}; + +struct iwl_scan_req_umac_tail_v2 { + struct iwl_scan_umac_schedule schedule[2]; + __le16 delay; + __le16 reserved; + struct iwl_scan_probe_req preq; + struct iwl_ssid_ie direct_scan[20]; +}; + +struct iwl_scan_probe_req_v1 { + struct iwl_scan_probe_segment mac_header; + struct iwl_scan_probe_segment band_data[2]; + struct iwl_scan_probe_segment common_data; + u8 buf[512]; +}; + +struct iwl_scan_req_umac_tail_v1 { + struct iwl_scan_umac_schedule schedule[2]; + __le16 delay; + __le16 reserved; + struct iwl_scan_probe_req_v1 preq; + struct iwl_ssid_ie direct_scan[20]; +}; + +struct iwl_scan_offload_profile { + u8 ssid_index; + u8 unicast_cipher; + u8 auth_alg; + u8 network_type; + u8 band_selection; + u8 client_bitmap; + u8 reserved[2]; +}; + +struct iwl_scan_offload_profile_cfg_data { + u8 blocklist_len; + u8 num_profiles; + u8 match_notify; + u8 pass_match; + u8 active_clients; + u8 any_beacon_notify; + u8 reserved[2]; +}; + +struct iwl_scan_offload_profile_cfg { + struct iwl_scan_offload_profile profiles[8]; + struct iwl_scan_offload_profile_cfg_data data; +}; + +struct iwl_mvm_scan_iter_data { + u32 global_cnt; + struct ieee80211_vif *current_vif; + bool is_dcm_with_p2p_go; +}; + +struct iwl_scan_dwell { + u8 active; + u8 passive; + u8 fragmented; + u8 extended; +}; + +struct iwl_scan_config_v2 { + __le32 flags; + __le32 tx_chains; + __le32 rx_chains; + __le32 legacy_rates; + __le32 out_of_channel_time[2]; + __le32 suspend_time[2]; + struct iwl_scan_dwell dwell; + u8 mac_addr[6]; + u8 bcast_sta_id; + u8 channel_flags; + u8 channel_array[0]; +}; + +struct iwl_scan_config_v1 { + __le32 flags; + __le32 tx_chains; + __le32 rx_chains; + __le32 legacy_rates; + __le32 out_of_channel_time; + __le32 suspend_time; + struct iwl_scan_dwell dwell; + u8 mac_addr[6]; + u8 bcast_sta_id; + u8 channel_flags; + u8 channel_array[0]; +}; + +struct iwl_mvm_scan_respect_p2p_go_iter_data { + struct ieee80211_vif *current_vif; + bool p2p_go; + enum nl80211_band band; +}; + +struct iwl_scan_req_tx_cmd { + __le32 tx_flags; + __le32 rate_n_flags; + u8 sta_id; + u8 reserved[3]; +}; + +struct iwl_scan_schedule_lmac { + __le16 delay; + u8 iterations; + u8 full_scan_mul; +}; + +struct iwl_scan_channel_opt { __le16 flags; + __le16 non_ebs_ratio; }; -struct vring_packed_desc_event { - __le16 off_wrap; +struct iwl_scan_req_lmac { + __le32 reserved1; + u8 n_channels; + u8 active_dwell; + u8 passive_dwell; + u8 fragmented_dwell; + u8 extended_dwell; + u8 reserved2; + __le16 rx_chain_select; + __le32 scan_flags; + __le32 max_out_time; + __le32 suspend_time; + __le32 flags; + __le32 filter_flags; + struct iwl_scan_req_tx_cmd tx_cmd[2]; + struct iwl_ssid_ie direct_scan[20]; + __le32 scan_prio; + __le32 iter_num; + __le32 delay; + struct iwl_scan_schedule_lmac schedule[2]; + struct iwl_scan_channel_opt channel_opt[2]; + u8 data[0]; +}; + +struct iwl_scan_umac_chan_param { + u8 flags; + u8 count; + __le16 reserved; +}; + +struct iwl_scan_req_umac { + __le32 flags; + __le32 uid; + __le32 ooc_priority; + __le16 general_flags; + u8 reserved; + u8 scan_start_mac_id; + union { + struct { + u8 extended_dwell; + u8 active_dwell; + u8 passive_dwell; + u8 fragmented_dwell; + __le32 max_out_time; + __le32 suspend_time; + __le32 scan_priority; + struct iwl_scan_umac_chan_param channel; + u8 data[0]; + } v1; + struct { + u8 extended_dwell; + u8 active_dwell; + u8 passive_dwell; + u8 fragmented_dwell; + __le32 max_out_time[2]; + __le32 suspend_time[2]; + __le32 scan_priority; + struct iwl_scan_umac_chan_param channel; + u8 data[0]; + } v6; + struct { + u8 active_dwell; + u8 passive_dwell; + u8 fragmented_dwell; + u8 adwell_default_n_aps; + u8 adwell_default_n_aps_social; + u8 reserved3; + __le16 adwell_max_budget; + __le32 max_out_time[2]; + __le32 suspend_time[2]; + __le32 scan_priority; + struct iwl_scan_umac_chan_param channel; + u8 data[0]; + } v7; + struct { + u8 active_dwell[2]; + u8 reserved2; + u8 adwell_default_n_aps; + u8 adwell_default_n_aps_social; + u8 general_flags2; + __le16 adwell_max_budget; + __le32 max_out_time[2]; + __le32 suspend_time[2]; + __le32 scan_priority; + u8 passive_dwell[2]; + u8 num_of_fragments[2]; + struct iwl_scan_umac_chan_param channel; + u8 data[0]; + } v8; + struct { + u8 active_dwell[2]; + u8 adwell_default_hb_n_aps; + u8 adwell_default_lb_n_aps; + u8 adwell_default_n_aps_social; + u8 general_flags2; + __le16 adwell_max_budget; + __le32 max_out_time[2]; + __le32 suspend_time[2]; + __le32 scan_priority; + u8 passive_dwell[2]; + u8 num_of_fragments[2]; + struct iwl_scan_umac_chan_param channel; + u8 data[0]; + } v9; + }; +}; + +struct iwl_scan_channel_cfg_lmac { + __le32 flags; + __le16 channel_num; + __le16 iter_count; + __le32 iter_interval; +}; + +struct iwl_scan_channel_cfg_umac { + __le32 flags; + union { + struct { + u8 channel_num; + u8 iter_count; + __le16 iter_interval; + } v1; + struct { + u8 channel_num; + u8 band; + u8 iter_count; + u8 iter_interval; + } v2; + struct { + u8 channel_num; + u8 psd_20; + u8 iter_count; + u8 iter_interval; + } v5; + }; +}; + +struct iwl_scan_offload_blocklist { + u8 ssid[6]; + u8 reported_rssi; + u8 client_bitmap; +}; + +struct iwl_scan_offload_profile_cfg_v1 { + struct iwl_scan_offload_profile profiles[11]; + struct iwl_scan_offload_profile_cfg_data data; +}; + +struct iwl_umac_scan_abort { + __le32 uid; + __le32 flags; +}; + +struct iwl_scan_general_params_v11 { __le16 flags; + u8 reserved; + u8 scan_start_mac_or_link_id; + u8 active_dwell[2]; + u8 adwell_default_2g; + u8 adwell_default_5g; + u8 adwell_default_social_chn; + u8 flags2; + __le16 adwell_max_budget; + __le32 max_out_of_time[2]; + __le32 suspend_time[2]; + __le32 scan_priority; + u8 passive_dwell[2]; + u8 num_of_fragments[2]; }; -struct vring_desc_state_packed { - void *data; - struct vring_packed_desc *indir_desc; - u16 num; - u16 last; +struct iwl_scan_probe_params_v3 { + struct iwl_scan_probe_req preq; + u8 ssid_num; + u8 short_ssid_num; + u8 bssid_num; + u8 reserved; + struct iwl_ssid_ie direct_scan[20]; + __le32 short_ssid[8]; + u8 bssid_array[96]; }; -struct scsi_varlen_cdb_hdr { - __u8 opcode; - __u8 control; - __u8 misc[5]; - __u8 additional_cdb_length; - __be16 service_action; +struct iwl_scan_channel_params_v4 { + u8 flags; + u8 count; + u8 num_of_aps_override; + u8 reserved; + struct iwl_scan_channel_cfg_umac channel_config[67]; + u8 adwell_ch_override_bitmap[16]; +}; + +struct iwl_scan_probe_params_v4 { + struct iwl_scan_probe_req preq; + u8 short_ssid_num; + u8 bssid_num; + __le16 reserved; + struct iwl_ssid_ie direct_scan[20]; + __le32 short_ssid[8]; + u8 bssid_array[96]; +}; + +struct iwl_scan_channel_params_v7 { + u8 flags; + u8 count; + u8 n_aps_override[2]; + struct iwl_scan_channel_cfg_umac channel_config[67]; +}; + +struct iwl_scan_results_notif { + u8 channel; + u8 band; + u8 probe_status; + u8 num_probe_not_sent; + __le32 duration; +}; + +struct iwl_lmac_scan_complete_notif { + u8 scanned_channels; + u8 status; + u8 bt_status; + u8 last_channel; + __le32 tsf_low; + __le32 tsf_high; + struct iwl_scan_results_notif results[0]; +}; + +struct iwl_periodic_scan_complete { + u8 last_schedule_line; + u8 last_schedule_iteration; + u8 status; + u8 ebs_status; + __le32 time_after_last_iter; + __le32 reserved; +}; + +struct iwl_scan_config { + u8 enable_cam_mode; + u8 enable_promiscouos_mode; + u8 bcast_sta_id; + u8 reserved; + __le32 tx_chains; + __le32 rx_chains; +}; + +struct iwl_umac_scan_complete { + __le32 uid; + u8 last_schedule; + u8 last_iter; + u8 status; + u8 ebs_status; + __le32 time_from_last_iter; + __le32 reserved; +}; + +struct iwl_umac_scan_iter_complete_notif { + __le32 uid; + u8 scanned_channels; + u8 status; + u8 bt_status; + u8 last_channel; + __le64 start_tsf; + struct iwl_scan_results_notif results[0]; +}; + +struct iwl_scan_periodic_parms_v1 { + struct iwl_scan_umac_schedule schedule[2]; + __le16 delay; + __le16 reserved; +}; + +struct iwl_scan_req_params_v12 { + struct iwl_scan_general_params_v11 general_params; + struct iwl_scan_channel_params_v4 channel_params; + struct iwl_scan_periodic_parms_v1 periodic_params; + struct iwl_scan_probe_params_v3 probe_params; +}; + +struct iwl_scan_req_umac_v12 { + __le32 uid; + __le32 ooc_priority; + struct iwl_scan_req_params_v12 scan_params; +}; + +struct iwl_scan_req_params_v17 { + struct iwl_scan_general_params_v11 general_params; + struct iwl_scan_channel_params_v7 channel_params; + struct iwl_scan_periodic_parms_v1 periodic_params; + struct iwl_scan_probe_params_v4 probe_params; +}; + +struct iwl_scan_req_umac_v17 { + __le32 uid; + __le32 ooc_priority; + struct iwl_scan_req_params_v17 scan_params; +}; + +struct ehci_tt { + u16 bandwidth[8]; + struct list_head tt_list; + struct list_head ps_list; + struct usb_tt *usb_tt; + int tt_port; +}; + +struct ehci_iso_packet { + u64 bufp; + __le32 transaction; + u8 cross; + u32 buf1; +}; + +struct ehci_iso_sched { + struct list_head td_list; + unsigned int span; + unsigned int first_packet; + struct ehci_iso_packet packet[0]; +}; + +struct debug_buffer { + ssize_t (*fill_func)(struct debug_buffer *); + struct usb_bus *bus; + struct mutex mutex; + size_t count; + char *output_buf; + size_t alloc_size; +}; + +enum { + UNDEFINED_CAPABLE = 0, + SYSTEM_INTEL_MSR_CAPABLE = 1, + SYSTEM_AMD_MSR_CAPABLE = 2, + SYSTEM_IO_CAPABLE = 3, +}; + +struct acpi_cpufreq_data { + unsigned int resume; + unsigned int cpu_feature; + unsigned int acpi_perf_cpu; + cpumask_var_t freqdomain_cpus; + void (*cpu_freq_write)(struct acpi_pct_register *, u32); + u32 (*cpu_freq_read)(struct acpi_pct_register *); +}; + +struct drv_cmd { + struct acpi_pct_register *reg; + u32 val; + union { + void (*write)(struct acpi_pct_register *, u32); + u32 (*read)(struct acpi_pct_register *); + } func; +}; + +struct tcp_sack_block_wire { + __be32 start_seq; + __be32 end_seq; +}; + +struct icmp6_err { + int err; + int fatal; +}; + +struct icmpv6_msg { + struct sk_buff *skb; + int offset; + uint8_t type; +}; + +struct legacy_pic { + int nr_legacy_irqs; + struct irq_chip *chip; + void (*mask)(unsigned int); + void (*unmask)(unsigned int); + void (*mask_all)(); + void (*restore_mask)(); + void (*init)(int); + int (*probe)(); + int (*irq_pending)(unsigned int); + void (*make_irq)(unsigned int); +}; + +typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); + +typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); + +struct trace_event_raw_task_newtask { + struct trace_entry ent; + pid_t pid; + char comm[16]; + unsigned long clone_flags; + short oom_score_adj; + char __data[0]; +}; + +struct trace_event_raw_task_rename { + struct trace_entry ent; + pid_t pid; + char oldcomm[16]; + char newcomm[16]; + short oom_score_adj; + char __data[0]; +}; + +struct vm_stack { + struct callback_head rcu; + struct vm_struct *stack_vm_area; +}; + +struct clone_args { + __u64 flags; + __u64 pidfd; + __u64 child_tid; + __u64 parent_tid; + __u64 exit_signal; + __u64 stack; + __u64 stack_size; + __u64 tls; + __u64 set_tid; + __u64 set_tid_size; + __u64 cgroup; +}; + +struct trace_event_data_offsets_task_newtask {}; + +struct trace_event_data_offsets_task_rename {}; + +enum audit_ntp_type { + AUDIT_NTP_OFFSET = 0, + AUDIT_NTP_FREQ = 1, + AUDIT_NTP_STATUS = 2, + AUDIT_NTP_TAI = 3, + AUDIT_NTP_TICK = 4, + AUDIT_NTP_ADJUST = 5, + AUDIT_NTP_NVALS = 6, +}; + +struct bpf_empty_prog_array { + struct bpf_prog_array hdr; + struct bpf_prog *null_prog; +}; + +typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); + +typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); + +typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); + +typedef void (*btf_trace_xdp_redirect_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); + +typedef void (*btf_trace_xdp_redirect_map)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); + +typedef void (*btf_trace_xdp_redirect_map_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); + +typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); + +typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); + +typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); + +typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); + +typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); + +typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); + +typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *); + +struct latch_tree_ops { + bool (*less)(struct latch_tree_node *, struct latch_tree_node *); + int (*comp)(void *, struct latch_tree_node *); +}; + +struct bpf_prog_dummy { + struct bpf_prog prog; +}; + +enum page_size_enum { + __PAGE_SIZE = 4096, +}; + +struct bpf_prog_pack { + struct list_head list; + void *ptr; + unsigned long bitmap[0]; +}; + +typedef u64 (*btf_bpf_user_rnd_u32)(); + +typedef u64 (*btf_bpf_get_raw_cpu_id)(); + +struct trace_event_raw_xdp_exception { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + char __data[0]; +}; + +struct trace_event_raw_xdp_bulk_tx { + struct trace_entry ent; + int ifindex; + u32 act; + int drops; + int sent; + int err; + char __data[0]; +}; + +struct _bpf_dtab_netdev { + struct net_device *dev; +}; + +struct trace_event_raw_xdp_redirect_template { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + int err; + int to_ifindex; + u32 map_id; + int map_index; + char __data[0]; +}; + +struct trace_event_raw_xdp_cpumap_kthread { + struct trace_entry ent; + int map_id; + u32 act; + int cpu; + unsigned int drops; + unsigned int processed; + int sched; + unsigned int xdp_pass; + unsigned int xdp_drop; + unsigned int xdp_redirect; + char __data[0]; +}; + +struct trace_event_raw_xdp_cpumap_enqueue { + struct trace_entry ent; + int map_id; + u32 act; + int cpu; + unsigned int drops; + unsigned int processed; + int to_cpu; + char __data[0]; +}; + +struct trace_event_raw_xdp_devmap_xmit { + struct trace_entry ent; + int from_ifindex; + u32 act; + int to_ifindex; + int drops; + int sent; + int err; + char __data[0]; +}; + +struct trace_event_raw_mem_disconnect { + struct trace_entry ent; + const struct xdp_mem_allocator *xa; + u32 mem_id; + u32 mem_type; + const void *allocator; + char __data[0]; +}; + +struct trace_event_raw_mem_connect { + struct trace_entry ent; + const struct xdp_mem_allocator *xa; + u32 mem_id; + u32 mem_type; + const void *allocator; + const struct xdp_rxq_info *rxq; + int ifindex; + char __data[0]; +}; + +struct trace_event_raw_mem_return_failed { + struct trace_entry ent; + const struct page *page; + u32 mem_id; + u32 mem_type; + char __data[0]; +}; + +struct trace_event_raw_bpf_xdp_link_attach_failed { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_data_offsets_bpf_xdp_link_attach_failed { + u32 msg; + const void *msg_ptr_; +}; + +struct trace_event_data_offsets_xdp_exception {}; + +struct trace_event_data_offsets_xdp_bulk_tx {}; + +struct trace_event_data_offsets_xdp_redirect_template {}; + +struct trace_event_data_offsets_xdp_cpumap_kthread {}; + +struct trace_event_data_offsets_xdp_cpumap_enqueue {}; + +struct trace_event_data_offsets_xdp_devmap_xmit {}; + +struct trace_event_data_offsets_mem_disconnect {}; + +struct trace_event_data_offsets_mem_connect {}; + +struct trace_event_data_offsets_mem_return_failed {}; + +struct utf8_table { + int cmask; + int cval; + int shift; + long lmask; + long lval; +}; + +typedef u32 unicode_t; + +enum fuse_parse_result { + FOUND_ERR = -1, + FOUND_NONE = 0, + FOUND_SOME = 1, + FOUND_ALL = 2, +}; + +struct fuse_dirent { + uint64_t ino; + uint64_t off; + uint32_t namelen; + uint32_t type; + char name[0]; +}; + +struct fuse_direntplus { + struct fuse_entry_out entry_out; + struct fuse_dirent dirent; +}; + +enum { + SKCIPHER_WALK_PHYS = 1, + SKCIPHER_WALK_SLOW = 2, + SKCIPHER_WALK_COPY = 4, + SKCIPHER_WALK_DIFF = 8, + SKCIPHER_WALK_SLEEP = 16, +}; + +struct skcipher_walk_buffer { + struct list_head entry; + struct scatter_walk dst; + unsigned int len; + u8 *data; + u8 buffer[0]; +}; + +struct crypto_istat_cipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; +}; + +struct latency_bucket { + unsigned long total_latency; + int samples; +}; + +struct avg_latency_bucket { + unsigned long latency; + bool valid; +}; + +struct throtl_data { + struct throtl_service_queue service_queue; + struct request_queue *queue; + unsigned int nr_queued[2]; + unsigned int throtl_slice; + struct work_struct dispatch_work; + unsigned int limit_index; + bool limit_valid[2]; + unsigned long low_upgrade_time; + unsigned long low_downgrade_time; + unsigned int scale; + struct latency_bucket tmp_buckets[18]; + struct avg_latency_bucket avg_buckets[18]; + struct latency_bucket __attribute__((btf_type_tag("percpu"))) *latency_buckets[2]; + unsigned long last_calculate_time; + unsigned long filtered_latency; + bool track_bio_latency; +}; + +enum tg_state_flags { + THROTL_TG_PENDING = 1, + THROTL_TG_WAS_EMPTY = 2, + THROTL_TG_CANCELING = 4, +}; + +enum { + LIMIT_LOW = 0, + LIMIT_MAX = 1, + LIMIT_CNT = 2, +}; + +enum pci_bar_type { + pci_bar_unknown = 0, + pci_bar_io = 1, + pci_bar_mem32 = 2, + pci_bar_mem64 = 3, +}; + +struct pci_domain_busn_res { + struct list_head list; + struct resource res; + int domain_nr; +}; + +struct serial8250_config { + const char *name; + unsigned short fifo_size; + unsigned short tx_loadsz; + unsigned char fcr; + unsigned char rxtrig_bytes[4]; + unsigned int flags; +}; + +struct e1000_host_mng_command_header { + u8 command_id; + u8 checksum; + u16 reserved1; + u16 reserved2; + u16 command_length; }; enum iwl_statistics_subcmd_ids { @@ -140654,7 +133760,7 @@ enum iwl_fw_statistics_type { FW_STATISTICS_HE = 6, }; -struct iwl_rx_mpdu_res_start___2 { +struct iwl_rx_mpdu_res_start { __le16 byte_count; __le16 assist; }; @@ -140953,7 +134059,7 @@ struct mvm_statistics_load { u8 avg_energy[16]; }; -struct iwl_notif_statistics___2 { +struct iwl_notif_statistics { __le32 flag; struct mvm_statistics_rx rx; struct mvm_statistics_tx tx; @@ -140975,204 +134081,7308 @@ struct iwl_ba_window_status_notif { __le16 mpdu_rx_count[16]; }; -struct input_event { - __kernel_ulong_t __sec; - __kernel_ulong_t __usec; - __u16 type; - __u16 code; - __s32 value; +struct netdev_lag_lower_state_info { + u8 link_up: 1; + u8 tx_enabled: 1; }; -enum blk_crypto_mode_num { - BLK_ENCRYPTION_MODE_INVALID = 0, - BLK_ENCRYPTION_MODE_AES_256_XTS = 1, - BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV = 2, - BLK_ENCRYPTION_MODE_ADIANTUM = 3, - BLK_ENCRYPTION_MODE_SM4_XTS = 4, - BLK_ENCRYPTION_MODE_MAX = 5, +struct net_failover_info { + struct net_device __attribute__((btf_type_tag("rcu"))) *primary_dev; + struct net_device __attribute__((btf_type_tag("rcu"))) *standby_dev; + struct rtnl_link_stats64 primary_stats; + struct rtnl_link_stats64 standby_stats; + struct rtnl_link_stats64 failover_stats; + spinlock_t stats_lock; }; -enum suspend_mode { - PRESUSPEND = 0, - PRESUSPEND_UNDO = 1, - POSTSUSPEND = 2, +typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *); + +typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int); + +typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *, int); + +typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, int); + +struct trace_event_raw_smbus_write { + struct trace_entry ent; + int adapter_nr; + __u16 addr; + __u16 flags; + __u8 command; + __u8 len; + __u32 protocol; + __u8 buf[34]; + char __data[0]; }; -struct blk_crypto_profile; - -struct blk_crypto_key; - -struct blk_crypto_ll_ops { - int (*keyslot_program)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int); - int (*keyslot_evict)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int); +struct trace_event_raw_smbus_read { + struct trace_entry ent; + int adapter_nr; + __u16 flags; + __u16 addr; + __u8 command; + __u32 protocol; + __u8 buf[34]; + char __data[0]; }; -struct blk_crypto_keyslot; - -struct blk_crypto_profile { - struct blk_crypto_ll_ops ll_ops; - unsigned int max_dun_bytes_supported; - unsigned int modes_supported[5]; - struct device *dev; - unsigned int num_slots; - struct rw_semaphore lock; - struct lock_class_key lockdep_key; - wait_queue_head_t idle_slots_wait_queue; - struct list_head idle_slots; - spinlock_t idle_slots_lock; - struct hlist_head *slot_hashtable; - unsigned int log_slot_ht_size; - struct blk_crypto_keyslot *slots; +struct trace_event_raw_smbus_reply { + struct trace_entry ent; + int adapter_nr; + __u16 addr; + __u16 flags; + __u8 command; + __u8 len; + __u32 protocol; + __u8 buf[34]; + char __data[0]; }; -struct blk_crypto_config { - enum blk_crypto_mode_num crypto_mode; - unsigned int data_unit_size; - unsigned int dun_bytes; +struct trace_event_raw_smbus_result { + struct trace_entry ent; + int adapter_nr; + __u16 addr; + __u16 flags; + __u8 read_write; + __u8 command; + __s16 res; + __u32 protocol; + char __data[0]; }; -struct blk_crypto_key { - struct blk_crypto_config crypto_cfg; - unsigned int data_unit_size_bits; - unsigned int size; - u8 raw[64]; +struct i2c_smbus_alert_setup { + int irq; }; -enum nft_cmp_ops { - NFT_CMP_EQ = 0, - NFT_CMP_NEQ = 1, - NFT_CMP_LT = 2, - NFT_CMP_LTE = 3, - NFT_CMP_GT = 4, - NFT_CMP_GTE = 5, +struct trace_event_data_offsets_smbus_write {}; + +struct trace_event_data_offsets_smbus_read {}; + +struct trace_event_data_offsets_smbus_reply {}; + +struct trace_event_data_offsets_smbus_result {}; + +struct efi_system_resource_table { + u32 fw_resource_count; + u32 fw_resource_count_max; + u64 fw_resource_version; + u8 entries[0]; }; -enum nft_cmp_attributes { - NFTA_CMP_UNSPEC = 0, - NFTA_CMP_SREG = 1, - NFTA_CMP_OP = 2, - NFTA_CMP_DATA = 3, - __NFTA_CMP_MAX = 4, +struct esre_entry; + +struct esre_attribute { + struct attribute attr; + ssize_t (*show)(struct esre_entry *, char *); + ssize_t (*store)(struct esre_entry *, const char *, size_t); }; -union nft_cmp_offload_data { - u16 val16; - u32 val32; - u64 val64; +struct efi_system_resource_entry_v1; + +struct esre_entry { + union { + struct efi_system_resource_entry_v1 *esre1; + } esre; + struct kobject kobj; + struct list_head list; }; -struct nft_cmp_expr { - struct nft_data data; - u8 sreg; - u8 len; - enum nft_cmp_ops op: 8; +struct efi_system_resource_entry_v1 { + efi_guid_t fw_class; + u32 fw_type; + u32 fw_version; + u32 lowest_supported_fw_version; + u32 capsule_flags; + u32 last_attempt_version; + u32 last_attempt_status; }; -struct ip6addrlbl_init_table { - const struct in6_addr *prefix; - int prefixlen; - u32 label; +struct fib_notifier_net { + struct list_head fib_notifier_ops; + struct atomic_notifier_head fib_chain; }; enum { - IFAL_ADDRESS = 1, - IFAL_LABEL = 2, - __IFAL_MAX = 3, + ETHTOOL_A_PRIVFLAGS_UNSPEC = 0, + ETHTOOL_A_PRIVFLAGS_HEADER = 1, + ETHTOOL_A_PRIVFLAGS_FLAGS = 2, + __ETHTOOL_A_PRIVFLAGS_CNT = 3, + ETHTOOL_A_PRIVFLAGS_MAX = 2, }; -struct ip6addrlbl_entry { - struct in6_addr prefix; - int prefixlen; - int ifindex; - int addrtype; - u32 label; - struct hlist_node list; +struct privflags_reply_data { + struct ethnl_reply_data base; + const char (*priv_flag_names)[32]; + unsigned int n_priv_flags; + u32 priv_flags; +}; + +struct nft_rhash { + struct rhashtable ht; + struct delayed_work gc_work; +}; + +struct nft_hash_elem { + struct nft_elem_priv priv; + struct hlist_node node; + struct nft_set_ext ext; +}; + +struct nft_rhash_elem { + struct nft_elem_priv priv; + struct rhash_head node; + struct nft_set_ext ext; +}; + +struct nft_hash { + u32 seed; + u32 buckets; + struct hlist_head table[0]; +}; + +struct nft_rhash_cmp_arg { + const struct nft_set *set; + const u32 *key; + u8 genmask; + u64 tstamp; +}; + +struct nft_rhash_ctx { + const struct nft_ctx ctx; + const struct nft_set *set; +}; + +enum unix_socket_lock_class { + U_LOCK_NORMAL = 0, + U_LOCK_SECOND = 1, + U_LOCK_DIAG = 2, +}; + +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 2, +}; + +struct bpf_iter__unix { + union { + struct bpf_iter_meta *meta; + }; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; +}; + +struct bpf_unix_iter_state { + struct seq_net_private p; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + struct sock **batch; + bool st_bucket_done; +}; + +struct unix_stream_read_state { + int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); + struct socket *socket; + struct msghdr *msg; + struct pipe_inode_info *pipe; + size_t size; + int flags; + unsigned int splice_flags; +}; + +enum { + st_wordstart = 0, + st_wordcmp = 1, + st_wordskip = 2, +}; + +enum { + st_wordstart___2 = 0, + st_wordcmp___2 = 1, + st_wordskip___2 = 2, + st_bufcpy = 3, +}; + +struct real_mode_header { + u32 text_start; + u32 ro_end; + u32 trampoline_start; + u32 trampoline_header; + u32 trampoline_start64; + u32 trampoline_pgd; + u32 wakeup_start; + u32 wakeup_header; + u32 machine_real_restart_asm; + u32 machine_real_restart_seg; +}; + +struct trampoline_header { + u64 start; + u64 efer; + u32 cr4; + u32 flags; + u32 lock; +}; + +enum { + MEMTYPE_EXACT_MATCH = 0, + MEMTYPE_END_MATCH = 1, +}; + +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; + +struct bpf_dtab_netdev; + +struct bpf_dtab { + struct bpf_map map; + struct bpf_dtab_netdev __attribute__((btf_type_tag("rcu"))) **netdev_map; + struct list_head list; + struct hlist_head *dev_index_head; + spinlock_t index_lock; + unsigned int items; + u32 n_buckets; +}; + +struct bpf_devmap_val { + __u32 ifindex; + union { + int fd; + __u32 id; + } bpf_prog; +}; + +struct bpf_dtab_netdev { + struct net_device *dev; + struct hlist_node index_hlist; + struct bpf_prog *xdp_prog; + struct callback_head rcu; + unsigned int idx; + struct bpf_devmap_val val; +}; + +struct swap_iocb { + struct kiocb iocb; + struct bio_vec bvec[32]; + int pages; + int len; +}; + +struct iomap_ioend { + struct list_head io_list; + u16 io_type; + u16 io_flags; + struct inode *io_inode; + size_t io_size; + loff_t io_offset; + sector_t io_sector; + struct bio io_bio; +}; + +struct iomap_readpage_ctx { + struct folio *cur_folio; + bool cur_folio_in_bio; + struct bio *bio; + struct readahead_control *rac; +}; + +struct iomap_folio_state { + spinlock_t state_lock; + unsigned int read_bytes_pending; + atomic_t write_bytes_pending; + unsigned long state[0]; +}; + +typedef int (*iomap_punch_t)(struct inode *, loff_t, loff_t); + +struct iomap_writeback_ops; + +struct iomap_writepage_ctx { + struct iomap iomap; + struct iomap_ioend *ioend; + const struct iomap_writeback_ops *ops; + u32 nr_folios; +}; + +struct iomap_writeback_ops { + int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t, unsigned int); + int (*prepare_ioend)(struct iomap_ioend *, int); + void (*discard_folio)(struct folio *, loff_t); +}; + +struct fuse_getxattr_in { + uint32_t size; + uint32_t padding; +}; + +struct fuse_getxattr_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_setxattr_in { + uint32_t size; + uint32_t flags; + uint32_t setxattr_flags; + uint32_t padding; +}; + +struct btrfs_plug_cb { + struct blk_plug_cb cb; + struct btrfs_fs_info *info; + struct list_head rbio_list; +}; + +struct btrfs_stripe_hash { + struct list_head hash_list; + spinlock_t lock; +}; + +struct btrfs_stripe_hash_table { + struct list_head stripe_cache; + spinlock_t cache_lock; + int cache_size; + struct btrfs_stripe_hash table[0]; +}; + +struct sector_ptr { + struct page *page; + unsigned int pgoff: 24; + unsigned int uptodate: 8; +}; + +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP = 2, + IOPRIO_WHO_USER = 3, +}; + +enum { + IO_CHECK_CQ_OVERFLOW_BIT = 0, + IO_CHECK_CQ_DROPPED_BIT = 1, +}; + +struct io_napi_entry { + unsigned int napi_id; + struct list_head list; + unsigned long timeout; + struct hlist_node node; struct callback_head rcu; }; -struct ifaddrlblmsg { - __u8 ifal_family; - __u8 __ifal_reserved; - __u8 ifal_prefixlen; - __u8 ifal_flags; - __u32 ifal_index; - __u32 ifal_seq; +struct io_wait_queue { + struct wait_queue_entry wq; + struct io_ring_ctx *ctx; + unsigned int cq_tail; + unsigned int nr_timeouts; + ktime_t timeout; + unsigned int napi_busy_poll_to; + bool napi_prefer_busy_poll; }; -enum nl80211_peer_measurement_peer_attrs { - __NL80211_PMSR_PEER_ATTR_INVALID = 0, - NL80211_PMSR_PEER_ATTR_ADDR = 1, - NL80211_PMSR_PEER_ATTR_CHAN = 2, - NL80211_PMSR_PEER_ATTR_REQ = 3, - NL80211_PMSR_PEER_ATTR_RESP = 4, - NUM_NL80211_PMSR_PEER_ATTRS = 5, - NL80211_PMSR_PEER_ATTR_MAX = 4, +struct io_uring_napi { + __u32 busy_poll_to; + __u8 prefer_busy_poll; + __u8 pad[3]; + __u64 resv; }; -enum nl80211_peer_measurement_req { - __NL80211_PMSR_REQ_ATTR_INVALID = 0, - NL80211_PMSR_REQ_ATTR_DATA = 1, - NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 2, - NUM_NL80211_PMSR_REQ_ATTRS = 3, - NL80211_PMSR_REQ_ATTR_MAX = 2, +struct acpi_pci_link_irq { + u32 active; + u8 triggering; + u8 polarity; + u8 resource_type; + u8 possible_count; + u32 possible[16]; + u8 initialized: 1; + u8 reserved: 7; }; -enum nl80211_peer_measurement_ftm_req { - __NL80211_PMSR_FTM_REQ_ATTR_INVALID = 0, - NL80211_PMSR_FTM_REQ_ATTR_ASAP = 1, - NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 2, - NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 3, - NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 4, - NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 5, - NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 6, - NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 7, - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 8, - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 9, - NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 10, - NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 11, - NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 12, - NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 13, - NUM_NL80211_PMSR_FTM_REQ_ATTR = 14, - NL80211_PMSR_FTM_REQ_ATTR_MAX = 13, +struct acpi_pci_link { + struct list_head list; + struct acpi_device *device; + struct acpi_pci_link_irq irq; + int refcnt; }; -enum nl80211_peer_measurement_resp { - __NL80211_PMSR_RESP_ATTR_INVALID = 0, - NL80211_PMSR_RESP_ATTR_DATA = 1, - NL80211_PMSR_RESP_ATTR_STATUS = 2, - NL80211_PMSR_RESP_ATTR_HOST_TIME = 3, - NL80211_PMSR_RESP_ATTR_AP_TSF = 4, - NL80211_PMSR_RESP_ATTR_FINAL = 5, - NL80211_PMSR_RESP_ATTR_PAD = 6, - NUM_NL80211_PMSR_RESP_ATTRS = 7, - NL80211_PMSR_RESP_ATTR_MAX = 6, +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); + +struct platform_msi_priv_data { + struct device *dev; + void *host_data; + msi_alloc_info_t arg; + irq_write_msi_msg_t write_msg; + int devid; }; -enum nl80211_peer_measurement_ftm_resp { - __NL80211_PMSR_FTM_RESP_ATTR_INVALID = 0, - NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 1, - NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 2, - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 3, - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 4, - NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 5, - NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 6, - NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 7, - NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 8, - NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 9, - NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 10, - NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 11, - NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 12, - NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 13, - NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 14, - NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 15, - NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 16, - NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 17, - NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 18, - NL80211_PMSR_FTM_RESP_ATTR_LCI = 19, - NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 20, - NL80211_PMSR_FTM_RESP_ATTR_PAD = 21, - NUM_NL80211_PMSR_FTM_RESP_ATTR = 22, - NL80211_PMSR_FTM_RESP_ATTR_MAX = 21, +struct iwl_shared_mem_lmac_cfg { + __le32 txfifo_addr; + __le32 txfifo_size[15]; + __le32 rxfifo1_addr; + __le32 rxfifo1_size; +}; + +struct iwl_shared_mem_cfg { + __le32 shared_mem_addr; + __le32 shared_mem_size; + __le32 sample_buff_addr; + __le32 sample_buff_size; + __le32 rxfifo2_addr; + __le32 rxfifo2_size; + __le32 page_buff_addr; + __le32 page_buff_size; + __le32 lmac_num; + struct iwl_shared_mem_lmac_cfg lmac_smem[3]; + __le32 rxfifo2_control_addr; + __le32 rxfifo2_control_size; +}; + +struct iwl_shared_mem_cfg_v2 { + __le32 shared_mem_addr; + __le32 shared_mem_size; + __le32 sample_buff_addr; + __le32 sample_buff_size; + __le32 txfifo_addr; + __le32 txfifo_size[8]; + __le32 rxfifo_size[2]; + __le32 page_buff_addr; + __le32 page_buff_size; + __le32 rxfifo_addr; + __le32 internal_txfifo_addr; + __le32 internal_txfifo_size[6]; +}; + +struct i2c_smbus_alert { + struct work_struct alert; + struct i2c_client *ara; +}; + +struct alert_data { + unsigned short addr; + enum i2c_alert_protocol type; + unsigned int data; +}; + +typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); + +typedef efi_status_t efi_set_time_t(efi_time_t *); + +typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); + +typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); + +typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); + +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); + +typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); + +typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); + +struct efi { + const efi_runtime_services_t *runtime; + unsigned int runtime_version; + unsigned int runtime_supported_mask; + unsigned long acpi; + unsigned long acpi20; + unsigned long smbios; + unsigned long smbios3; + unsigned long esrt; + unsigned long tpm_log; + unsigned long tpm_final_log; + unsigned long mokvar_table; + unsigned long coco_secret; + unsigned long unaccepted; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_info_t *query_variable_info; + efi_query_variable_info_t *query_variable_info_nonblocking; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + struct efi_memory_map memmap; + unsigned long flags; +}; + +struct linux_efi_memreserve { + int size; + atomic_t count; + phys_addr_t next; + struct { + phys_addr_t base; + phys_addr_t size; + } entry[0]; +}; + +struct debugfs_blob_wrapper { + void *data; + unsigned long size; +}; + +struct linux_efi_random_seed { + u32 size; + u8 bits[0]; +}; + +typedef struct { + u16 version; + u16 length; + u32 runtime_services_supported; +} efi_rt_properties_table_t; + +enum { + SK_DIAG_BPF_STORAGE_REQ_NONE = 0, + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, + __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, +}; + +enum { + SK_DIAG_BPF_STORAGE_REP_NONE = 0, + SK_DIAG_BPF_STORAGE = 1, + __SK_DIAG_BPF_STORAGE_REP_MAX = 2, +}; + +enum { + SK_DIAG_BPF_STORAGE_NONE = 0, + SK_DIAG_BPF_STORAGE_PAD = 1, + SK_DIAG_BPF_STORAGE_MAP_ID = 2, + SK_DIAG_BPF_STORAGE_MAP_VALUE = 3, + __SK_DIAG_BPF_STORAGE_MAX = 4, +}; + +typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); + +typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); + +struct bpf_sk_storage_diag { + u32 nr_maps; + struct bpf_map *maps[0]; +}; + +struct bpf_iter__bpf_sk_storage_map { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + struct sock *sk; + }; + union { + void *value; + }; +}; + +struct bpf_iter_seq_sk_storage_map_info { + struct bpf_map *map; + unsigned int bucket_id; + unsigned int skip_elems; +}; + +enum nft_lookup_attributes { + NFTA_LOOKUP_UNSPEC = 0, + NFTA_LOOKUP_SET = 1, + NFTA_LOOKUP_SREG = 2, + NFTA_LOOKUP_DREG = 3, + NFTA_LOOKUP_SET_ID = 4, + NFTA_LOOKUP_FLAGS = 5, + __NFTA_LOOKUP_MAX = 6, +}; + +enum nft_lookup_flags { + NFT_LOOKUP_F_INV = 1, +}; + +struct nft_lookup { + struct nft_set *set; + u8 sreg; + u8 dreg; + bool dreg_set; + bool invert; + struct nft_set_binding binding; +}; + +struct bpf_iter__udp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct udp_sock *udp_sk; + }; + uid_t uid; + long: 0; + int bucket; +}; + +struct bpf_udp_iter_state { + struct udp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + int offset; + struct sock **batch; + bool st_bucket_done; +}; + +struct __bridge_info { + __u64 designated_root; + __u64 bridge_id; + __u32 root_path_cost; + __u32 max_age; + __u32 hello_time; + __u32 forward_delay; + __u32 bridge_max_age; + __u32 bridge_hello_time; + __u32 bridge_forward_delay; + __u8 topology_change; + __u8 topology_change_detected; + __u8 root_port; + __u8 stp_enabled; + __u32 ageing_time; + __u32 gc_interval; + __u32 hello_timer_value; + __u32 tcn_timer_value; + __u32 topology_change_timer_value; + __u32 gc_timer_value; +}; + +struct __port_info { + __u64 designated_root; + __u64 designated_bridge; + __u16 port_id; + __u16 designated_port; + __u32 path_cost; + __u32 designated_cost; + __u8 state; + __u8 top_change_ack; + __u8 config_pending; + __u8 unused0; + __u32 message_age_timer_value; + __u32 forward_delay_timer_value; + __u32 hold_timer_value; +}; + +struct jump_label_patch { + const void *code; + int size; +}; + +struct kretprobe_blackpoint { + const char *name; + void *addr; +}; + +struct __arch_relative_insn { + u8 op; + s32 raddr; +} __attribute__((packed)); + +struct numa_memblk { + u64 start; + u64 end; + int nid; +}; + +struct numa_meminfo { + int nr_blks; + struct numa_memblk blk[2048]; +}; + +enum wd_read_status { + WD_READ_SUCCESS = 0, + WD_READ_UNSTABLE = 1, + WD_READ_SKIP = 2, +}; + +enum rdmacg_resource_type { + RDMACG_RESOURCE_HCA_HANDLE = 0, + RDMACG_RESOURCE_HCA_OBJECT = 1, + RDMACG_RESOURCE_MAX = 2, +}; + +enum rdmacg_file_type { + RDMACG_RESOURCE_TYPE_MAX = 0, + RDMACG_RESOURCE_TYPE_STAT = 1, +}; + +struct rdmacg_resource { + int max; + int usage; +}; + +struct rdmacg_device; + +struct rdmacg_resource_pool { + struct rdmacg_device *device; + struct rdmacg_resource resources[2]; + struct list_head cg_node; + struct list_head dev_node; + u64 usage_sum; + int num_max_cnt; +}; + +struct rdmacg_device { + struct list_head dev_node; + struct list_head rpools; + char *name; +}; + +struct rdma_cgroup { + struct cgroup_subsys_state css; + struct list_head rpools; +}; + +enum hist_field_fn { + HIST_FIELD_FN_NOP = 0, + HIST_FIELD_FN_VAR_REF = 1, + HIST_FIELD_FN_COUNTER = 2, + HIST_FIELD_FN_CONST = 3, + HIST_FIELD_FN_LOG2 = 4, + HIST_FIELD_FN_BUCKET = 5, + HIST_FIELD_FN_TIMESTAMP = 6, + HIST_FIELD_FN_CPU = 7, + HIST_FIELD_FN_STRING = 8, + HIST_FIELD_FN_DYNSTRING = 9, + HIST_FIELD_FN_RELDYNSTRING = 10, + HIST_FIELD_FN_PSTRING = 11, + HIST_FIELD_FN_S64 = 12, + HIST_FIELD_FN_U64 = 13, + HIST_FIELD_FN_S32 = 14, + HIST_FIELD_FN_U32 = 15, + HIST_FIELD_FN_S16 = 16, + HIST_FIELD_FN_U16 = 17, + HIST_FIELD_FN_S8 = 18, + HIST_FIELD_FN_U8 = 19, + HIST_FIELD_FN_UMINUS = 20, + HIST_FIELD_FN_MINUS = 21, + HIST_FIELD_FN_PLUS = 22, + HIST_FIELD_FN_DIV = 23, + HIST_FIELD_FN_MULT = 24, + HIST_FIELD_FN_DIV_POWER2 = 25, + HIST_FIELD_FN_DIV_NOT_POWER2 = 26, + HIST_FIELD_FN_DIV_MULT_SHIFT = 27, + HIST_FIELD_FN_EXECNAME = 28, + HIST_FIELD_FN_STACK = 29, +}; + +enum field_op_id { + FIELD_OP_NONE = 0, + FIELD_OP_PLUS = 1, + FIELD_OP_MINUS = 2, + FIELD_OP_UNARY_MINUS = 3, + FIELD_OP_DIV = 4, + FIELD_OP_MULT = 5, +}; + +enum handler_id { + HANDLER_ONMATCH = 1, + HANDLER_ONMAX = 2, + HANDLER_ONCHANGE = 3, +}; + +enum action_id { + ACTION_SAVE = 1, + ACTION_TRACE = 2, + ACTION_SNAPSHOT = 3, +}; + +enum hist_field_flags { + HIST_FIELD_FL_HITCOUNT = 1, + HIST_FIELD_FL_KEY = 2, + HIST_FIELD_FL_STRING = 4, + HIST_FIELD_FL_HEX = 8, + HIST_FIELD_FL_SYM = 16, + HIST_FIELD_FL_SYM_OFFSET = 32, + HIST_FIELD_FL_EXECNAME = 64, + HIST_FIELD_FL_SYSCALL = 128, + HIST_FIELD_FL_STACKTRACE = 256, + HIST_FIELD_FL_LOG2 = 512, + HIST_FIELD_FL_TIMESTAMP = 1024, + HIST_FIELD_FL_TIMESTAMP_USECS = 2048, + HIST_FIELD_FL_VAR = 4096, + HIST_FIELD_FL_EXPR = 8192, + HIST_FIELD_FL_VAR_REF = 16384, + HIST_FIELD_FL_CPU = 32768, + HIST_FIELD_FL_ALIAS = 65536, + HIST_FIELD_FL_BUCKET = 131072, + HIST_FIELD_FL_CONST = 262144, + HIST_FIELD_FL_PERCENT = 524288, + HIST_FIELD_FL_GRAPH = 1048576, +}; + +enum { + HIST_ERR_NONE = 0, + HIST_ERR_DUPLICATE_VAR = 1, + HIST_ERR_VAR_NOT_UNIQUE = 2, + HIST_ERR_TOO_MANY_VARS = 3, + HIST_ERR_MALFORMED_ASSIGNMENT = 4, + HIST_ERR_NAMED_MISMATCH = 5, + HIST_ERR_TRIGGER_EEXIST = 6, + HIST_ERR_TRIGGER_ENOENT_CLEAR = 7, + HIST_ERR_SET_CLOCK_FAIL = 8, + HIST_ERR_BAD_FIELD_MODIFIER = 9, + HIST_ERR_TOO_MANY_SUBEXPR = 10, + HIST_ERR_TIMESTAMP_MISMATCH = 11, + HIST_ERR_TOO_MANY_FIELD_VARS = 12, + HIST_ERR_EVENT_FILE_NOT_FOUND = 13, + HIST_ERR_HIST_NOT_FOUND = 14, + HIST_ERR_HIST_CREATE_FAIL = 15, + HIST_ERR_SYNTH_VAR_NOT_FOUND = 16, + HIST_ERR_SYNTH_EVENT_NOT_FOUND = 17, + HIST_ERR_SYNTH_TYPE_MISMATCH = 18, + HIST_ERR_SYNTH_COUNT_MISMATCH = 19, + HIST_ERR_FIELD_VAR_PARSE_FAIL = 20, + HIST_ERR_VAR_CREATE_FIND_FAIL = 21, + HIST_ERR_ONX_NOT_VAR = 22, + HIST_ERR_ONX_VAR_NOT_FOUND = 23, + HIST_ERR_ONX_VAR_CREATE_FAIL = 24, + HIST_ERR_FIELD_VAR_CREATE_FAIL = 25, + HIST_ERR_TOO_MANY_PARAMS = 26, + HIST_ERR_PARAM_NOT_FOUND = 27, + HIST_ERR_INVALID_PARAM = 28, + HIST_ERR_ACTION_NOT_FOUND = 29, + HIST_ERR_NO_SAVE_PARAMS = 30, + HIST_ERR_TOO_MANY_SAVE_ACTIONS = 31, + HIST_ERR_ACTION_MISMATCH = 32, + HIST_ERR_NO_CLOSING_PAREN = 33, + HIST_ERR_SUBSYS_NOT_FOUND = 34, + HIST_ERR_INVALID_SUBSYS_EVENT = 35, + HIST_ERR_INVALID_REF_KEY = 36, + HIST_ERR_VAR_NOT_FOUND = 37, + HIST_ERR_FIELD_NOT_FOUND = 38, + HIST_ERR_EMPTY_ASSIGNMENT = 39, + HIST_ERR_INVALID_SORT_MODIFIER = 40, + HIST_ERR_EMPTY_SORT_FIELD = 41, + HIST_ERR_TOO_MANY_SORT_FIELDS = 42, + HIST_ERR_INVALID_SORT_FIELD = 43, + HIST_ERR_INVALID_STR_OPERAND = 44, + HIST_ERR_EXPECT_NUMBER = 45, + HIST_ERR_UNARY_MINUS_SUBEXPR = 46, + HIST_ERR_DIVISION_BY_ZERO = 47, + HIST_ERR_NEED_NOHC_VAL = 48, +}; + +struct hist_trigger_data; + +struct hist_var_data { + struct list_head list; + struct hist_trigger_data *hist_data; +}; + +struct hist_field; + +struct hist_trigger_attrs; + +struct action_data; + +struct field_var; + +struct field_var_hist; + +struct hist_trigger_data { + struct hist_field *fields[22]; + unsigned int n_vals; + unsigned int n_keys; + unsigned int n_fields; + unsigned int n_vars; + unsigned int n_var_str; + unsigned int key_size; + struct tracing_map_sort_key sort_keys[2]; + unsigned int n_sort_keys; + struct trace_event_file *event_file; + struct hist_trigger_attrs *attrs; + struct tracing_map *map; + bool enable_timestamps; + bool remove; + struct hist_field *var_refs[16]; + unsigned int n_var_refs; + struct action_data *actions[8]; + unsigned int n_actions; + struct field_var *field_vars[64]; + unsigned int n_field_vars; + unsigned int n_field_var_str; + struct field_var_hist *field_var_hists[64]; + unsigned int n_field_var_hists; + struct field_var *save_vars[64]; + unsigned int n_save_vars; + unsigned int n_save_var_str; +}; + +struct hist_var { + char *name; + struct hist_trigger_data *hist_data; + unsigned int idx; +}; + +struct hist_field { + struct ftrace_event_field *field; + unsigned long flags; + unsigned long buckets; + const char *type; + struct hist_field *operands[2]; + struct hist_trigger_data *hist_data; + enum hist_field_fn fn_num; + unsigned int ref; + unsigned int size; + unsigned int offset; + unsigned int is_signed; + struct hist_var var; + enum field_op_id operator; + char *system; + char *event_name; + char *name; + unsigned int var_ref_idx; + bool read_once; + unsigned int var_str_idx; + u64 constant; + u64 div_multiplier; +}; + +struct var_defs { + unsigned int n_vars; + char *name[16]; + char *expr[16]; +}; + +struct hist_trigger_attrs { + char *keys_str; + char *vals_str; + char *sort_key_str; + char *name; + char *clock; + bool pause; + bool cont; + bool clear; + bool ts_in_usecs; + bool no_hitcount; + unsigned int map_bits; + char *assignment_str[16]; + unsigned int n_assignments; + char *action_str[8]; + unsigned int n_actions; + struct var_defs var_defs; +}; + +typedef bool (*check_track_val_fn_t)(u64, u64); + +typedef void (*action_fn_t)(struct hist_trigger_data *, struct tracing_map_elt *, struct trace_buffer *, void *, struct ring_buffer_event *, void *, struct action_data *, u64 *); + +struct action_data { + enum handler_id handler; + enum action_id action; + char *action_name; + action_fn_t fn; + unsigned int n_params; + char *params[64]; + unsigned int var_ref_idx[64]; + struct synth_event *synth_event; + bool use_trace_keyword; + char *synth_event_name; + union { + struct { + char *event; + char *event_system; + } match_data; + struct { + char *var_str; + struct hist_field *var_ref; + struct hist_field *track_var; + check_track_val_fn_t check_val; + action_fn_t save_data; + } track_data; + }; +}; + +struct field_var { + struct hist_field *var; + struct hist_field *val; +}; + +struct field_var_hist { + struct hist_trigger_data *hist_data; + char *cmd; +}; + +struct hist_val_stat { + u64 max; + u64 total; +}; + +struct hist_elt_data { + char *comm; + u64 *var_ref_vals; + char **field_var_str; + int n_field_var_str; +}; + +typedef void (*synth_probe_func_t)(void *, u64 *, unsigned int *); + +struct track_data { + u64 track_val; + bool updated; + unsigned int key_len; + void *key; + struct tracing_map_elt elt; + struct action_data *action_data; + struct hist_trigger_data *hist_data; +}; + +struct dnotify_struct; + +struct dnotify_mark { + struct fsnotify_mark fsn_mark; + struct dnotify_struct *dn; +}; + +struct dnotify_struct { + struct dnotify_struct *dn_next; + __u32 dn_mask; + int dn_fd; + struct file *dn_filp; + fl_owner_t dn_owner; +}; + +struct cryptomgr_param { + struct rtattr *tb[34]; + struct { + struct rtattr attr; + struct crypto_attr_type data; + } type; + struct { + struct rtattr attr; + struct crypto_attr_alg data; + } attrs[32]; + char template[128]; + struct crypto_larval *larval; + u32 otype; + u32 omask; +}; + +typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); + +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); + +typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); + +typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); + +typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); + +typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); + +typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int); + +typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); + +typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); + +struct creds; + +enum { + IOSQE_FIXED_FILE_BIT = 0, + IOSQE_IO_DRAIN_BIT = 1, + IOSQE_IO_LINK_BIT = 2, + IOSQE_IO_HARDLINK_BIT = 3, + IOSQE_ASYNC_BIT = 4, + IOSQE_BUFFER_SELECT_BIT = 5, + IOSQE_CQE_SKIP_SUCCESS_BIT = 6, +}; + +struct trace_event_raw_io_uring_create { + struct trace_entry ent; + int fd; + void *ctx; + u32 sq_entries; + u32 cq_entries; + u32 flags; + char __data[0]; +}; + +struct trace_event_raw_io_uring_register { + struct trace_entry ent; + void *ctx; + unsigned int opcode; + unsigned int nr_files; + unsigned int nr_bufs; + long ret; + char __data[0]; +}; + +struct trace_event_raw_io_uring_file_get { + struct trace_entry ent; + void *ctx; + void *req; + u64 user_data; + int fd; + char __data[0]; +}; + +struct trace_event_raw_io_uring_queue_async_work { + struct trace_entry ent; + void *ctx; + void *req; + u64 user_data; + u8 opcode; + unsigned long long flags; + struct io_wq_work *work; + int rw; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_defer { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long data; + u8 opcode; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_link { + struct trace_entry ent; + void *ctx; + void *req; + void *target_req; + char __data[0]; +}; + +struct trace_event_raw_io_uring_cqring_wait { + struct trace_entry ent; + void *ctx; + int min_events; + char __data[0]; +}; + +struct trace_event_raw_io_uring_fail_link { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + void *link; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_complete { + struct trace_entry ent; + void *ctx; + void *req; + u64 user_data; + int res; + unsigned int cflags; + u64 extra1; + u64 extra2; + char __data[0]; +}; + +struct trace_event_raw_io_uring_submit_req { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + unsigned long long flags; + bool sq_thread; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_poll_arm { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + int mask; + int events; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_add { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + int mask; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_req_failed { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + u8 flags; + u8 ioprio; + u64 off; + u64 addr; + u32 len; + u32 op_flags; + u16 buf_index; + u16 personality; + u32 file_index; + u64 pad1; + u64 addr3; + int error; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_cqe_overflow { + struct trace_entry ent; + void *ctx; + unsigned long long user_data; + s32 res; + u32 cflags; + void *ocqe; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_work_run { + struct trace_entry ent; + void *tctx; + unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_io_uring_short_write { + struct trace_entry ent; + void *ctx; + u64 fpos; + u64 wanted; + u64 got; + char __data[0]; +}; + +struct trace_event_raw_io_uring_local_work_run { + struct trace_entry ent; + void *ctx; + int count; + unsigned int loops; + char __data[0]; +}; + +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; +}; + +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; +}; + +struct trace_event_data_offsets_io_uring_queue_async_work { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_defer { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_fail_link { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_submit_req { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_poll_arm { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_task_add { + u32 op_str; + const void *op_str_ptr_; +}; + +struct trace_event_data_offsets_io_uring_req_failed { + u32 op_str; + const void *op_str_ptr_; +}; + +struct io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad; + __u64 ts; +}; + +struct trace_event_data_offsets_io_uring_create {}; + +struct trace_event_data_offsets_io_uring_register {}; + +struct trace_event_data_offsets_io_uring_file_get {}; + +struct trace_event_data_offsets_io_uring_link {}; + +struct trace_event_data_offsets_io_uring_cqring_wait {}; + +struct trace_event_data_offsets_io_uring_complete {}; + +struct trace_event_data_offsets_io_uring_cqe_overflow {}; + +struct trace_event_data_offsets_io_uring_task_work_run {}; + +struct trace_event_data_offsets_io_uring_short_write {}; + +struct trace_event_data_offsets_io_uring_local_work_run {}; + +struct io_cold_def { + unsigned short async_size; + const char *name; + int (*prep_async)(struct io_kiocb *); + void (*cleanup)(struct io_kiocb *); + void (*fail)(struct io_kiocb *); +}; + +struct io_task_cancel { + struct task_struct *task; + bool all; +}; + +struct clk_fractional_divider { + struct clk_hw hw; + void *reg; + u8 mshift; + u8 mwidth; + u8 nshift; + u8 nwidth; + u8 flags; + void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); + spinlock_t *lock; +}; + +struct u32_fract { + __u32 numerator; + __u32 denominator; +}; + +typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); + +struct e1000_reg_info { + u32 ofs; + char *name; +}; + +struct trace_event_raw_e1000e_trace_mac_register { + struct trace_entry ent; + uint32_t reg; + char __data[0]; +}; + +union e1000_rx_desc_packet_split { + struct { + __le64 buffer_addr[4]; + } read; + struct { + struct { + __le32 mrq; + union { + __le32 rss; + struct { + __le16 ip_id; + __le16 csum; + } csum_ip; + } hi_dword; + } lower; + struct { + __le32 status_error; + __le16 length0; + __le16 vlan; + } middle; + struct { + __le16 header_status; + __le16 length[3]; + } upper; + __le64 reserved; + } wb; +}; + +struct e1000_context_desc { + union { + __le32 ip_config; + struct { + u8 ipcss; + u8 ipcso; + __le16 ipcse; + } ip_fields; + } lower_setup; + union { + __le32 tcp_config; + struct { + u8 tucss; + u8 tucso; + __le16 tucse; + } tcp_fields; + } upper_setup; + __le32 cmd_and_length; + union { + __le32 data; + struct { + u8 status; + u8 hdr_len; + __le16 mss; + } fields; + } tcp_seg_setup; +}; + +struct my_u1 { + __le64 a; + __le64 b; + __le64 c; + __le64 d; +}; + +struct trace_event_data_offsets_e1000e_trace_mac_register {}; + +struct rtw_hw_reg_desc { + u32 addr; + u32 mask; + const char *desc; +}; + +enum rtw_fw_rf_type { + FW_RF_1T2R = 0, + FW_RF_2T4R = 1, + FW_RF_2T2R = 2, + FW_RF_2T3R = 3, + FW_RF_1T1R = 4, + FW_RF_2T2R_GREEN = 5, + FW_RF_3T3R = 6, + FW_RF_3T4R = 7, + FW_RF_4T4R = 8, + FW_RF_MAX_TYPE = 15, +}; + +enum rtw_beacon_filter_offload_mode { + BCN_FILTER_OFFLOAD_MODE_0 = 0, + BCN_FILTER_OFFLOAD_MODE_1 = 1, + BCN_FILTER_OFFLOAD_MODE_2 = 2, + BCN_FILTER_OFFLOAD_MODE_3 = 3, + BCN_FILTER_OFFLOAD_MODE_DEFAULT = 0, +}; + +enum rtw_packet_type { + RTW_PACKET_PROBE_REQ = 0, + RTW_PACKET_UNDEFINE = 2147483647, +}; + +enum rtw_scan_report_code { + RTW_SCAN_REPORT_SUCCESS = 0, + RTW_SCAN_REPORT_ERR_PHYDM = 1, + RTW_SCAN_REPORT_ERR_ID = 2, + RTW_SCAN_REPORT_ERR_TX = 3, + RTW_SCAN_REPORT_CANCELED = 16, + RTW_SCAN_REPORT_CANCELED_EXT = 17, + RTW_SCAN_REPORT_FW_DISABLED = 240, +}; + +enum rtw_scan_notify_id { + RTW_SCAN_NOTIFY_ID_PRESWITCH = 0, + RTW_SCAN_NOTIFY_ID_POSTSWITCH = 1, + RTW_SCAN_NOTIFY_ID_PROBE_PRETX = 2, + RTW_SCAN_NOTIFY_ID_PROBE_ISSUETX = 3, + RTW_SCAN_NOTIFY_ID_NULL0_PRETX = 4, + RTW_SCAN_NOTIFY_ID_NULL0_ISSUETX = 5, + RTW_SCAN_NOTIFY_ID_NULL0_POSTTX = 6, + RTW_SCAN_NOTIFY_ID_NULL1_PRETX = 7, + RTW_SCAN_NOTIFY_ID_NULL1_ISSUETX = 8, + RTW_SCAN_NOTIFY_ID_NULL1_POSTTX = 9, + RTW_SCAN_NOTIFY_ID_DWELLEXT = 10, +}; + +enum rtw_c2h_cmd_id_ext { + C2H_SCAN_STATUS_RPT = 3, + C2H_CCX_RPT = 15, + C2H_CHAN_SWITCH = 34, +}; + +enum rtw_channel_type { + RTW_CHANNEL_PASSIVE = 0, + RTW_CHANNEL_ACTIVE = 1, + RTW_CHANNEL_RADAR = 2, +}; + +enum rtw_scan_extra_id { + RTW_SCAN_EXTRA_ID_DFS = 0, +}; + +enum rtw_scan_extra_info { + RTW_SCAN_EXTRA_ACTION_SCAN = 0, +}; + +struct rtw_c2h_adaptivity { + u8 density; + u8 igi; + u8 l2h_th_init; + u8 l2h; + u8 h2l; + u8 option; +}; + +struct rtw_h2c_cmd { + __le32 msg; + __le32 msg_ext; +}; + +struct rtw_fw_iter_ra_data { + struct rtw_dev *rtwdev; + u8 *payload; +}; + +struct rtw_beacon_filter_iter_data { + struct rtw_dev *rtwdev; + u8 *payload; +}; + +struct rtw_h2c_register { + u32 w0; + u32 w1; +}; + +struct rtw_chan_list { + u32 buf_size; + u32 ch_num; + u32 size; + u16 addr; +}; + +struct rtw_chan_info { + int pri_ch_idx; + int action_id; + int bw; + u8 extra_info; + u8 channel; + u16 timeout; +}; + +struct rtw_ch_switch_option { + u8 periodic_option; + u32 tsf_high; + u32 tsf_low; + u8 dest_ch_en; + u8 absolute_time_en; + u8 dest_ch; + u8 normal_period; + u8 normal_period_sel; + u8 normal_cycle; + u8 slow_period; + u8 slow_period_sel; + u8 nlo_en; + bool switch_en; + bool back_op_en; +}; + +struct rtw_lps_pg_dpk_hdr { + u16 dpk_path_ok; + u8 dpk_txagc[2]; + u16 dpk_gs[2]; + u32 coef[40]; + u8 dpk_ch; +} __attribute__((packed)); + +struct rtw_lps_pg_info_hdr { + u8 macid; + u8 mbssid; + u8 pattern_count; + u8 mu_tab_group_id; + u8 sec_cam_count; + u8 tx_bu_page_count; + u16 rsvd; + u8 sec_cam[8]; +}; + +struct rtw_nlo_info_hdr { + u8 nlo_count; + u8 hidden_ap_count; + u8 rsvd1[2]; + u8 pattern_check[4]; + u8 rsvd2[8]; + u8 ssid_len[16]; + u8 chiper[16]; + u8 rsvd3[16]; + u8 location[8]; +}; + +struct rtw_fw_wow_keep_alive_para { + bool adopt; + u8 pkt_type; + u8 period; +}; + +struct rtw_fw_wow_disconnect_para { + bool adopt; + u8 period; + u8 retry_count; +}; + +typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_set_alarm)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_read_alarm)(void *, time64_t, int); + +typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int); + +typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int); + +typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int); + +typedef void (*btf_trace_rtc_set_offset)(void *, long, int); + +typedef void (*btf_trace_rtc_read_offset)(void *, long, int); + +typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); + +typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); + +typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); + +enum { + none = 0, + day = 1, + month = 2, + year = 3, +}; + +struct trace_event_raw_rtc_time_alarm_class { + struct trace_entry ent; + time64_t secs; + int err; + char __data[0]; +}; + +struct trace_event_raw_rtc_irq_set_freq { + struct trace_entry ent; + int freq; + int err; + char __data[0]; +}; + +struct trace_event_raw_rtc_irq_set_state { + struct trace_entry ent; + int enabled; + int err; + char __data[0]; +}; + +struct trace_event_raw_rtc_alarm_irq_enable { + struct trace_entry ent; + unsigned int enabled; + int err; + char __data[0]; +}; + +struct trace_event_raw_rtc_offset_class { + struct trace_entry ent; + long offset; + int err; + char __data[0]; +}; + +struct trace_event_raw_rtc_timer_class { + struct trace_entry ent; + struct rtc_timer *timer; + ktime_t expires; + ktime_t period; + char __data[0]; +}; + +struct trace_event_data_offsets_rtc_time_alarm_class {}; + +struct trace_event_data_offsets_rtc_irq_set_freq {}; + +struct trace_event_data_offsets_rtc_irq_set_state {}; + +struct trace_event_data_offsets_rtc_alarm_irq_enable {}; + +struct trace_event_data_offsets_rtc_offset_class {}; + +struct trace_event_data_offsets_rtc_timer_class {}; + +struct dax_operations { + long (*direct_access)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *); + bool (*dax_supported)(struct dax_device *, struct block_device *, int, sector_t, sector_t); + int (*zero_page_range)(struct dax_device *, unsigned long, size_t); + size_t (*recovery_write)(struct dax_device *, unsigned long, void *, size_t, struct iov_iter *); +}; + +enum { + DM_TIO_INSIDE_DM_IO = 0, + DM_TIO_IS_DUPLICATE_BIO = 1, +}; + +enum { + DM_IO_ACCOUNTED = 0, + DM_IO_WAS_SPLIT = 1, + DM_IO_BLK_STAT = 2, +}; + +struct table_device { + struct list_head list; + refcount_t count; + struct dm_dev dm_dev; +}; + +struct clone_info { + struct dm_table *map; + struct bio *bio; + struct dm_io *io; + sector_t sector; + unsigned int sector_count; + bool is_abnormal_io: 1; + bool submit_as_polled: 1; +}; + +struct dm_pr { + u64 old_key; + u64 new_key; + u32 flags; + bool abort; + bool fail_early; + int ret; + enum pr_type type; + struct pr_keys *read_keys; + struct pr_held_reservation *rsv; +}; + +enum { + NETDEV_A_PAGE_POOL_STATS_INFO = 1, + NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8, + NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW = 9, + NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER = 10, + NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY = 11, + NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL = 12, + NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE = 13, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED = 14, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL = 15, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING = 16, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL = 17, + NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT = 18, + __NETDEV_A_PAGE_POOL_STATS_MAX = 19, + NETDEV_A_PAGE_POOL_STATS_MAX = 18, +}; + +enum { + NETDEV_A_PAGE_POOL_ID = 1, + NETDEV_A_PAGE_POOL_IFINDEX = 2, + NETDEV_A_PAGE_POOL_NAPI_ID = 3, + NETDEV_A_PAGE_POOL_INFLIGHT = 4, + NETDEV_A_PAGE_POOL_INFLIGHT_MEM = 5, + NETDEV_A_PAGE_POOL_DETACH_TIME = 6, + __NETDEV_A_PAGE_POOL_MAX = 7, + NETDEV_A_PAGE_POOL_MAX = 6, +}; + +typedef int (*pp_nl_fill_cb)(struct sk_buff *, const struct page_pool *, const struct genl_info *); + +struct page_pool_dump_cb { + unsigned long ifindex; + u32 pp_id; +}; + +enum { + ETHTOOL_A_TSINFO_UNSPEC = 0, + ETHTOOL_A_TSINFO_HEADER = 1, + ETHTOOL_A_TSINFO_TIMESTAMPING = 2, + ETHTOOL_A_TSINFO_TX_TYPES = 3, + ETHTOOL_A_TSINFO_RX_FILTERS = 4, + ETHTOOL_A_TSINFO_PHC_INDEX = 5, + __ETHTOOL_A_TSINFO_CNT = 6, + ETHTOOL_A_TSINFO_MAX = 5, +}; + +struct tsinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_ts_info ts_info; +}; + +enum nft_trace_attributes { + NFTA_TRACE_UNSPEC = 0, + NFTA_TRACE_TABLE = 1, + NFTA_TRACE_CHAIN = 2, + NFTA_TRACE_RULE_HANDLE = 3, + NFTA_TRACE_TYPE = 4, + NFTA_TRACE_VERDICT = 5, + NFTA_TRACE_ID = 6, + NFTA_TRACE_LL_HEADER = 7, + NFTA_TRACE_NETWORK_HEADER = 8, + NFTA_TRACE_TRANSPORT_HEADER = 9, + NFTA_TRACE_IIF = 10, + NFTA_TRACE_IIFTYPE = 11, + NFTA_TRACE_OIF = 12, + NFTA_TRACE_OIFTYPE = 13, + NFTA_TRACE_MARK = 14, + NFTA_TRACE_NFPROTO = 15, + NFTA_TRACE_POLICY = 16, + NFTA_TRACE_PAD = 17, + __NFTA_TRACE_MAX = 18, +}; + +enum tcp_ca_ack_event_flags { + CA_ACK_SLOWPATH = 1, + CA_ACK_WIN_UPDATE = 2, + CA_ACK_ECE = 4, +}; + +enum tcp_fastopen_client_fail { + TFO_STATUS_UNSPEC = 0, + TFO_COOKIE_UNAVAILABLE = 1, + TFO_DATA_NOT_ACKED = 2, + TFO_SYN_RETRANSMITTED = 3, +}; + +struct tcp_sacktag_state { + u64 first_sackt; + u64 last_sackt; + u32 reord; + u32 sack_delivered; + int flag; + unsigned int mss_now; + struct rate_sample *rate; +}; + +enum rfkill_type { + RFKILL_TYPE_ALL = 0, + RFKILL_TYPE_WLAN = 1, + RFKILL_TYPE_BLUETOOTH = 2, + RFKILL_TYPE_UWB = 3, + RFKILL_TYPE_WIMAX = 4, + RFKILL_TYPE_WWAN = 5, + RFKILL_TYPE_GPS = 6, + RFKILL_TYPE_FM = 7, + RFKILL_TYPE_NFC = 8, + NUM_RFKILL_TYPES = 9, +}; + +struct rt_bandwidth { + raw_spinlock_t rt_runtime_lock; + ktime_t rt_period; + u64 rt_runtime; + struct hrtimer rt_period_timer; + unsigned int rt_period_active; +}; + +struct scx_cpu_acquire_args; + +struct scx_cpu_release_args; + +struct scx_init_task_args; + +struct scx_exit_task_args; + +struct scx_cgroup_init_args; + +struct scx_exit_info; + +struct sched_ext_ops { + s32 (*select_cpu)(struct task_struct *, s32, u64); + void (*enqueue)(struct task_struct *, u64); + void (*dequeue)(struct task_struct *, u64); + void (*dispatch)(s32, struct task_struct *); + void (*tick)(struct task_struct *); + void (*runnable)(struct task_struct *, u64); + void (*running)(struct task_struct *); + void (*stopping)(struct task_struct *, bool); + void (*quiescent)(struct task_struct *, u64); + bool (*yield)(struct task_struct *, struct task_struct *); + bool (*core_sched_before)(struct task_struct *, struct task_struct *); + void (*set_weight)(struct task_struct *, u32); + void (*set_cpumask)(struct task_struct *, const struct cpumask *); + void (*update_idle)(s32, bool); + void (*cpu_acquire)(s32, struct scx_cpu_acquire_args *); + void (*cpu_release)(s32, struct scx_cpu_release_args *); + s32 (*init_task)(struct task_struct *, struct scx_init_task_args *); + void (*exit_task)(struct task_struct *, struct scx_exit_task_args *); + void (*enable)(struct task_struct *); + void (*disable)(struct task_struct *); + s32 (*cgroup_init)(struct cgroup *, struct scx_cgroup_init_args *); + void (*cgroup_exit)(struct cgroup *); + s32 (*cgroup_prep_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_cancel_move)(struct task_struct *, struct cgroup *, struct cgroup *); + void (*cgroup_set_weight)(struct cgroup *, u32); + void (*cpu_online)(s32); + void (*cpu_offline)(s32); + s32 (*init)(); + void (*exit)(struct scx_exit_info *); + u32 dispatch_max_batch; + u64 flags; + u32 timeout_ms; + u32 exit_dump_len; + u64 hotplug_seq; + char name[128]; +}; + +struct scx_cpu_acquire_args {}; + +enum scx_cpu_preempt_reason { + SCX_CPU_PREEMPT_RT = 0, + SCX_CPU_PREEMPT_DL = 1, + SCX_CPU_PREEMPT_STOP = 2, + SCX_CPU_PREEMPT_UNKNOWN = 3, +}; + +struct scx_cpu_release_args { + enum scx_cpu_preempt_reason reason; + struct task_struct *task; +}; + +struct scx_init_task_args { + bool fork; + struct cgroup *cgroup; +}; + +struct scx_exit_task_args { + bool cancelled; +}; + +struct scx_cgroup_init_args { + u32 weight; +}; + +enum scx_exit_kind { + SCX_EXIT_NONE = 0, + SCX_EXIT_DONE = 1, + SCX_EXIT_UNREG = 64, + SCX_EXIT_UNREG_BPF = 65, + SCX_EXIT_UNREG_KERN = 66, + SCX_EXIT_SYSRQ = 67, + SCX_EXIT_ERROR = 1024, + SCX_EXIT_ERROR_BPF = 1025, + SCX_EXIT_ERROR_STALL = 1026, +}; + +struct scx_exit_info { + enum scx_exit_kind kind; + s64 exit_code; + const char *reason; + unsigned long *bt; + u32 bt_len; + char *msg; + char *dump; +}; + +struct scx_dsp_ctx { + struct rq *rq; + struct rq_flags *rf; + u32 buf_cursor; + u32 nr_tasks; +}; + +struct scx_dsp_buf_ent { + struct task_struct *task; + unsigned long qseq; + u64 dsq_id; + u64 enq_flags; +}; + +struct scx_bpf_error_bstr_bufs { + u64 data[12]; + char msg[1024]; +}; + +enum dl_bw_request { + dl_bw_req_check_overflow = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, +}; + +enum scx_kf_mask { + SCX_KF_UNLOCKED = 0, + SCX_KF_SLEEPABLE = 1, + SCX_KF_CPU_RELEASE = 2, + SCX_KF_DISPATCH = 4, + SCX_KF_ENQUEUE = 8, + SCX_KF_SELECT_CPU = 16, + SCX_KF_REST = 32, + __SCX_KF_RQ_LOCKED = 62, + __SCX_KF_TERMINAL = 56, +}; + +enum scx_dsq_id_flags { + SCX_DSQ_FLAG_BUILTIN = 9223372036854775808ULL, + SCX_DSQ_FLAG_LOCAL_ON = 4611686018427387904ULL, + SCX_DSQ_INVALID = 9223372036854775808ULL, + SCX_DSQ_GLOBAL = 9223372036854775809ULL, + SCX_DSQ_LOCAL = 9223372036854775810ULL, + SCX_DSQ_LOCAL_ON = 13835058055282163712ULL, + SCX_DSQ_LOCAL_CPU_MASK = 4294967295ULL, +}; + +enum scx_public_consts { + SCX_OPS_NAME_LEN = 128ULL, + SCX_SLICE_DFL = 20000000ULL, + SCX_SLICE_INF = 18446744073709551615ULL, +}; + +enum scx_task_state { + SCX_TASK_NONE = 0, + SCX_TASK_INIT = 1, + SCX_TASK_READY = 2, + SCX_TASK_ENABLED = 3, + SCX_TASK_NR_STATES = 4, +}; + +enum scx_rq_flags { + SCX_RQ_BALANCING = 1, + SCX_RQ_CAN_STOP_TICK = 2, +}; + +enum scx_tg_flags { + SCX_TG_ONLINE = 1, + SCX_TG_INITED = 2, +}; + +enum scx_ops_enable_state { + SCX_OPS_PREPPING = 0, + SCX_OPS_ENABLING = 1, + SCX_OPS_ENABLED = 2, + SCX_OPS_DISABLING = 3, + SCX_OPS_DISABLED = 4, +}; + +enum scx_enq_flags { + SCX_ENQ_WAKEUP = 1ULL, + SCX_ENQ_HEAD = 16ULL, + SCX_ENQ_PREEMPT = 4294967296ULL, + SCX_ENQ_REENQ = 1099511627776ULL, + SCX_ENQ_LAST = 2199023255552ULL, + __SCX_ENQ_INTERNAL_MASK = 18374686479671623680ULL, + SCX_ENQ_CLEAR_OPSS = 72057594037927936ULL, + SCX_ENQ_DSQ_PRIQ = 144115188075855872ULL, +}; + +enum scx_deq_flags { + SCX_DEQ_SLEEP = 1ULL, + SCX_DEQ_CORE_SCHED_EXEC = 4294967296ULL, +}; + +enum scx_kick_flags { + SCX_KICK_IDLE = 1, + SCX_KICK_PREEMPT = 2, + SCX_KICK_WAIT = 4, +}; + +enum scx_ops_state { + SCX_OPSS_NONE = 0, + SCX_OPSS_QUEUEING = 1, + SCX_OPSS_QUEUED = 2, + SCX_OPSS_DISPATCHING = 3, + SCX_OPSS_QSEQ_SHIFT = 2, +}; + +enum scx_ent_flags { + SCX_TASK_QUEUED = 1, + SCX_TASK_BAL_KEEP = 2, + SCX_TASK_RESET_RUNNABLE_AT = 4, + SCX_TASK_DEQD_FOR_SLEEP = 8, + SCX_TASK_STATE_SHIFT = 8, + SCX_TASK_STATE_BITS = 2, + SCX_TASK_STATE_MASK = 768, + SCX_TASK_CURSOR = -2147483648, +}; + +enum scx_dsq_iter_flags { + SCX_DSQ_ITER_REV = 1, + __SCX_DSQ_ITER_ALL_FLAGS = 1, +}; + +enum scx_ent_dsq_flags { + SCX_TASK_DSQ_ON_PRIQ = 1, + SCX_TASK_DSQ_CURSOR = -2147483648, +}; + +enum scx_consts { + SCX_DSP_DFL_MAX_BATCH = 32, + SCX_DSP_MAX_LOOPS = 32, + SCX_WATCHDOG_MAX_TIMEOUT = 30000, + SCX_EXIT_BT_LEN = 64, + SCX_EXIT_MSG_LEN = 1024, + SCX_EXIT_DUMP_DFL_LEN = 32768, + SCX_CPUPERF_ONE = 1024, +}; + +enum scx_exit_code { + SCX_ECODE_RSN_HOTPLUG = 4294967296ULL, + SCX_ECODE_ACT_RESTART = 281474976710656ULL, +}; + +enum scx_opi { + SCX_OPI_BEGIN = 0, + SCX_OPI_NORMAL_BEGIN = 0, + SCX_OPI_NORMAL_END = 26, + SCX_OPI_CPU_HOTPLUG_BEGIN = 26, + SCX_OPI_CPU_HOTPLUG_END = 28, + SCX_OPI_END = 28, +}; + +enum cpu_cftype_id { + CPU_CFTYPE_WEIGHT = 0, + CPU_CFTYPE_WEIGHT_NICE = 1, + CPU_CFTYPE_IDLE = 2, + CPU_CFTYPE_CNT = 3, +}; + +enum scx_ops_flags { + SCX_OPS_KEEP_BUILTIN_IDLE = 1, + SCX_OPS_ENQ_LAST = 2, + SCX_OPS_ENQ_EXITING = 4, + SCX_OPS_SWITCH_PARTIAL = 8, + SCX_OPS_CGROUP_KNOB_WEIGHT = 65536, + SCX_OPS_ALL_FLAGS = 65551, +}; + +enum scx_wake_flags { + SCX_WAKE_FORK = 4, + SCX_WAKE_TTWU = 8, + SCX_WAKE_SYNC = 16, +}; + +enum scx_pick_idle_cpu_flags { + SCX_PICK_IDLE_CORE = 1, +}; + +enum dispatch_to_local_dsq_ret { + DTL_DISPATCHED = 0, + DTL_LOST = 1, + DTL_NOT_LOCAL = 2, + DTL_INVALID = 3, +}; + +struct idle_timer { + struct hrtimer timer; + int done; +}; + +struct bpf_struct_ops_sched_ext_ops { + struct bpf_struct_ops_common_value common; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sched_ext_ops data; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +typedef struct rt_rq *rt_rq_iter_t; + +struct scx_task_iter { + struct sched_ext_entity cursor; + struct task_struct *locked; + struct rq *rq; + struct rq_flags rf; +}; + +struct sched_enq_and_set_ctx { + struct task_struct *p; + int queue_flags; + bool queued; + bool running; +}; + +struct bpf_iter_scx_dsq_kern { + struct bpf_iter_scx_dsq_kern *self; + struct scx_dsq_node cursor; + struct scx_dispatch_q *dsq; + u64 dsq_seq; + u64 flags; +}; + +struct bpf_iter_scx_dsq { + u64 __opaque[12]; +}; + +struct old_linux_dirent { + unsigned long d_ino; + unsigned long d_offset; + unsigned short d_namlen; + char d_name[0]; +}; + +struct readdir_callback { + struct dir_context ctx; + struct old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; + int result; +}; + +struct linux_dirent { + unsigned long d_ino; + unsigned long d_off; + unsigned short d_reclen; + char d_name[0]; +}; + +struct getdents_callback___2 { + struct dir_context ctx; + struct linux_dirent __attribute__((btf_type_tag("user"))) *current_dir; + int prev_reclen; + int count; + int error; +}; + +struct linux_dirent64 { + u64 d_ino; + s64 d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[0]; +}; + +struct getdents_callback64 { + struct dir_context ctx; + struct linux_dirent64 __attribute__((btf_type_tag("user"))) *current_dir; + int prev_reclen; + int count; + int error; +}; + +enum { + BIAS = 2147483648, +}; + +struct pde_opener { + struct list_head lh; + struct file *file; + bool closing; + struct completion *c; +}; + +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, +}; + +struct bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; +}; + +struct debugfs_devm_entry { + int (*read)(struct seq_file *, void *); + struct device *dev; +}; + +struct variable_validate { + efi_guid_t vendor; + char *name; + bool (*validate)(efi_char16_t *, int, u8 *, unsigned long); +}; + +struct efi_generic_dev_path { + u8 type; + u8 sub_type; + u16 length; +}; + +struct keyctl_dh_params { + union { + __s32 private; + __s32 priv; + }; + __s32 prime; + __s32 base; +}; + +struct keyctl_kdf_params { + char __attribute__((btf_type_tag("user"))) *hashname; + char __attribute__((btf_type_tag("user"))) *otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; +}; + +struct broken_edid { + u8 manufacturer[4]; + u32 model; + u32 fix; +}; + +struct __fb_timings { + u32 dclk; + u32 hfreq; + u32 vfreq; + u32 hactive; + u32 vactive; + u32 hblank; + u32 vblank; + u32 htotal; + u32 vtotal; +}; + +struct apd_private_data; + +struct apd_device_desc { + unsigned int fixed_clk_rate; + struct property_entry *properties; + int (*setup)(struct apd_private_data *); +}; + +struct apd_private_data { + struct clk *clk; + struct acpi_device *adev; + const struct apd_device_desc *dev_desc; +}; + +struct acpi_gpe_block_status_context { + struct acpi_gpe_register_info *gpe_skip_register_info; + u8 gpe_skip_mask; + u8 retval; +}; + +struct clk_fixed_factor { + struct clk_hw hw; + unsigned int mult; + unsigned int div; + unsigned long acc; + unsigned int flags; +}; + +struct iwl_fw_paging_cmd { + __le32 flags; + __le32 block_size; + __le32 block_num; + __le32 device_phy_addr[33]; +}; + +struct rtw_iter_bitrate_mask_data { + struct rtw_dev *rtwdev; + struct ieee80211_vif *vif; + const struct cfg80211_bitrate_mask *mask; +}; + +struct stripe { + struct dm_dev *dev; + sector_t physical_start; + atomic_t error_count; +}; + +struct stripe_c { + uint32_t stripes; + int stripes_shift; + sector_t stripe_width; + uint32_t chunk_size; + int chunk_size_shift; + struct dm_target *ti; + struct work_struct trigger_event; + struct stripe stripe[0]; +}; + +struct neigh_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table neigh_vars[22]; +}; + +enum { + NDTA_UNSPEC = 0, + NDTA_NAME = 1, + NDTA_THRESH1 = 2, + NDTA_THRESH2 = 3, + NDTA_THRESH3 = 4, + NDTA_CONFIG = 5, + NDTA_PARMS = 6, + NDTA_STATS = 7, + NDTA_GC_INTERVAL = 8, + NDTA_PAD = 9, + __NDTA_MAX = 10, +}; + +enum { + NDTPA_UNSPEC = 0, + NDTPA_IFINDEX = 1, + NDTPA_REFCNT = 2, + NDTPA_REACHABLE_TIME = 3, + NDTPA_BASE_REACHABLE_TIME = 4, + NDTPA_RETRANS_TIME = 5, + NDTPA_GC_STALETIME = 6, + NDTPA_DELAY_PROBE_TIME = 7, + NDTPA_QUEUE_LEN = 8, + NDTPA_APP_PROBES = 9, + NDTPA_UCAST_PROBES = 10, + NDTPA_MCAST_PROBES = 11, + NDTPA_ANYCAST_DELAY = 12, + NDTPA_PROXY_DELAY = 13, + NDTPA_PROXY_QLEN = 14, + NDTPA_LOCKTIME = 15, + NDTPA_QUEUE_LENBYTES = 16, + NDTPA_MCAST_REPROBES = 17, + NDTPA_PAD = 18, + NDTPA_INTERVAL_PROBE_TIME_MS = 19, + __NDTPA_MAX = 20, +}; + +struct neigh_dump_filter { + int master_idx; + int dev_idx; +}; + +struct ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; +}; + +struct ndt_config { + __u16 ndtc_key_len; + __u16 ndtc_entry_size; + __u32 ndtc_entries; + __u32 ndtc_last_flush; + __u32 ndtc_last_rand; + __u32 ndtc_hash_rnd; + __u32 ndtc_hash_mask; + __u32 ndtc_hash_chain_gc; + __u32 ndtc_proxy_qlen; +}; + +struct ndt_stats { + __u64 ndts_allocs; + __u64 ndts_destroys; + __u64 ndts_hash_grows; + __u64 ndts_res_failed; + __u64 ndts_lookups; + __u64 ndts_hits; + __u64 ndts_rcv_probes_mcast; + __u64 ndts_rcv_probes_ucast; + __u64 ndts_periodic_gc_runs; + __u64 ndts_forced_gc_runs; + __u64 ndts_table_fulls; +}; + +enum ctattr_expect { + CTA_EXPECT_UNSPEC = 0, + CTA_EXPECT_MASTER = 1, + CTA_EXPECT_TUPLE = 2, + CTA_EXPECT_MASK = 3, + CTA_EXPECT_TIMEOUT = 4, + CTA_EXPECT_ID = 5, + CTA_EXPECT_HELP_NAME = 6, + CTA_EXPECT_ZONE = 7, + CTA_EXPECT_FLAGS = 8, + CTA_EXPECT_CLASS = 9, + CTA_EXPECT_NAT = 10, + CTA_EXPECT_FN = 11, + __CTA_EXPECT_MAX = 12, +}; + +enum ctattr_tuple { + CTA_TUPLE_UNSPEC = 0, + CTA_TUPLE_IP = 1, + CTA_TUPLE_PROTO = 2, + CTA_TUPLE_ZONE = 3, + __CTA_TUPLE_MAX = 4, +}; + +enum ctattr_type { + CTA_UNSPEC = 0, + CTA_TUPLE_ORIG = 1, + CTA_TUPLE_REPLY = 2, + CTA_STATUS = 3, + CTA_PROTOINFO = 4, + CTA_HELP = 5, + CTA_NAT_SRC = 6, + CTA_TIMEOUT = 7, + CTA_MARK = 8, + CTA_COUNTERS_ORIG = 9, + CTA_COUNTERS_REPLY = 10, + CTA_USE = 11, + CTA_ID = 12, + CTA_NAT_DST = 13, + CTA_TUPLE_MASTER = 14, + CTA_SEQ_ADJ_ORIG = 15, + CTA_NAT_SEQ_ADJ_ORIG = 15, + CTA_SEQ_ADJ_REPLY = 16, + CTA_NAT_SEQ_ADJ_REPLY = 16, + CTA_SECMARK = 17, + CTA_ZONE = 18, + CTA_SECCTX = 19, + CTA_TIMESTAMP = 20, + CTA_MARK_MASK = 21, + CTA_LABELS = 22, + CTA_LABELS_MASK = 23, + CTA_SYNPROXY = 24, + CTA_FILTER = 25, + CTA_STATUS_MASK = 26, + __CTA_MAX = 27, +}; + +enum ctattr_ip { + CTA_IP_UNSPEC = 0, + CTA_IP_V4_SRC = 1, + CTA_IP_V4_DST = 2, + CTA_IP_V6_SRC = 3, + CTA_IP_V6_DST = 4, + __CTA_IP_MAX = 5, +}; + +enum ctattr_expect_nat { + CTA_EXPECT_NAT_UNSPEC = 0, + CTA_EXPECT_NAT_DIR = 1, + CTA_EXPECT_NAT_TUPLE = 2, + __CTA_EXPECT_NAT_MAX = 3, +}; + +enum ctnl_exp_msg_types { + IPCTNL_MSG_EXP_NEW = 0, + IPCTNL_MSG_EXP_GET = 1, + IPCTNL_MSG_EXP_DELETE = 2, + IPCTNL_MSG_EXP_GET_STATS_CPU = 3, + IPCTNL_MSG_EXP_MAX = 4, +}; + +enum ctattr_expect_stats { + CTA_STATS_EXP_UNSPEC = 0, + CTA_STATS_EXP_NEW = 1, + CTA_STATS_EXP_CREATE = 2, + CTA_STATS_EXP_DELETE = 3, + __CTA_STATS_EXP_MAX = 4, +}; + +enum ctattr_help { + CTA_HELP_UNSPEC = 0, + CTA_HELP_NAME = 1, + CTA_HELP_INFO = 2, + __CTA_HELP_MAX = 3, +}; + +enum ctattr_seqadj { + CTA_SEQADJ_UNSPEC = 0, + CTA_SEQADJ_CORRECTION_POS = 1, + CTA_SEQADJ_OFFSET_BEFORE = 2, + CTA_SEQADJ_OFFSET_AFTER = 3, + __CTA_SEQADJ_MAX = 4, +}; + +enum ctattr_synproxy { + CTA_SYNPROXY_UNSPEC = 0, + CTA_SYNPROXY_ISN = 1, + CTA_SYNPROXY_ITS = 2, + CTA_SYNPROXY_TSOFF = 3, + __CTA_SYNPROXY_MAX = 4, +}; + +enum ctattr_filter { + CTA_FILTER_UNSPEC = 0, + CTA_FILTER_ORIG_FLAGS = 1, + CTA_FILTER_REPLY_FLAGS = 2, + __CTA_FILTER_MAX = 3, +}; + +enum cntl_msg_types { + IPCTNL_MSG_CT_NEW = 0, + IPCTNL_MSG_CT_GET = 1, + IPCTNL_MSG_CT_DELETE = 2, + IPCTNL_MSG_CT_GET_CTRZERO = 3, + IPCTNL_MSG_CT_GET_STATS_CPU = 4, + IPCTNL_MSG_CT_GET_STATS = 5, + IPCTNL_MSG_CT_GET_DYING = 6, + IPCTNL_MSG_CT_GET_UNCONFIRMED = 7, + IPCTNL_MSG_MAX = 8, +}; + +enum ctattr_counters { + CTA_COUNTERS_UNSPEC = 0, + CTA_COUNTERS_PACKETS = 1, + CTA_COUNTERS_BYTES = 2, + CTA_COUNTERS32_PACKETS = 3, + CTA_COUNTERS32_BYTES = 4, + CTA_COUNTERS_PAD = 5, + __CTA_COUNTERS_MAX = 6, +}; + +enum ctattr_tstamp { + CTA_TIMESTAMP_UNSPEC = 0, + CTA_TIMESTAMP_START = 1, + CTA_TIMESTAMP_STOP = 2, + CTA_TIMESTAMP_PAD = 3, + __CTA_TIMESTAMP_MAX = 4, +}; + +enum ctattr_stats_cpu { + CTA_STATS_UNSPEC = 0, + CTA_STATS_SEARCHED = 1, + CTA_STATS_FOUND = 2, + CTA_STATS_NEW = 3, + CTA_STATS_INVALID = 4, + CTA_STATS_IGNORE = 5, + CTA_STATS_DELETE = 6, + CTA_STATS_DELETE_LIST = 7, + CTA_STATS_INSERT = 8, + CTA_STATS_INSERT_FAILED = 9, + CTA_STATS_DROP = 10, + CTA_STATS_EARLY_DROP = 11, + CTA_STATS_ERROR = 12, + CTA_STATS_SEARCH_RESTART = 13, + CTA_STATS_CLASH_RESOLVE = 14, + CTA_STATS_CHAIN_TOOLONG = 15, + __CTA_STATS_MAX = 16, +}; + +enum ctattr_stats_global { + CTA_STATS_GLOBAL_UNSPEC = 0, + CTA_STATS_GLOBAL_ENTRIES = 1, + CTA_STATS_GLOBAL_MAX_ENTRIES = 2, + __CTA_STATS_GLOBAL_MAX = 3, +}; + +struct ctnetlink_filter_u32 { + u32 val; + u32 mask; +}; + +struct ctnetlink_filter { + u8 family; + bool zone_filter; + u_int32_t orig_flags; + u_int32_t reply_flags; + struct nf_conntrack_tuple orig; + struct nf_conntrack_tuple reply; + struct nf_conntrack_zone zone; + struct ctnetlink_filter_u32 mark; + struct ctnetlink_filter_u32 status; +}; + +struct nf_conn_tstamp { + u_int64_t start; + u_int64_t stop; +}; + +struct ctnetlink_list_dump_ctx { + struct nf_conn *last; + unsigned int cpu; + bool done; +}; + +struct mcs_group___2 { + u8 shift; + u16 duration[12]; +}; + +enum psc_op { + SNP_PAGE_STATE_PRIVATE = 1, + SNP_PAGE_STATE_SHARED = 2, +}; + +struct tp_transition_snapshot { + unsigned long rcu; + unsigned long srcu; + bool ongoing; +}; + +enum tp_func_state { + TP_FUNC_0 = 0, + TP_FUNC_1 = 1, + TP_FUNC_2 = 2, + TP_FUNC_N = 3, +}; + +enum tp_transition_sync { + TP_TRANSITION_SYNC_1_0_1 = 0, + TP_TRANSITION_SYNC_N_2_1 = 1, + _NR_TP_TRANSITION_SYNC = 2, +}; + +struct tp_module { + struct list_head list; + struct module *mod; +}; + +struct tp_probes { + struct callback_head rcu; + struct tracepoint_func probes[0]; +}; + +typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); + +struct trace_event_raw_error_report_template { + struct trace_entry ent; + enum error_detector error_detector; + unsigned long id; + char __data[0]; +}; + +struct trace_event_data_offsets_error_report_template {}; + +struct follow_page_context { + struct dev_pagemap *pgmap; + unsigned int page_mask; +}; + +struct fat_cache { + struct list_head cache_list; + int nr_contig; + int fcluster; + int dcluster; +}; + +struct fat_cache_id { + unsigned int id; + int nr_contig; + int fcluster; + int dcluster; +}; + +enum scrub_stripe_flags { + SCRUB_STRIPE_FLAG_INITIALIZED = 0, + SCRUB_STRIPE_FLAG_REPAIR_DONE = 1, + SCRUB_STRIPE_FLAG_NO_REPORT = 2, +}; + +struct scrub_sector_verification; + +struct scrub_stripe { + struct scrub_ctx *sctx; + struct btrfs_block_group *bg; + struct page *pages[16]; + struct scrub_sector_verification *sectors; + struct btrfs_device *dev; + u64 logical; + u64 physical; + u16 mirror_num; + u16 nr_sectors; + u16 nr_data_extents; + u16 nr_meta_extents; + atomic_t pending_io; + wait_queue_head_t io_wait; + wait_queue_head_t repair_wait; + unsigned long state; + unsigned long extent_sector_bitmap; + unsigned long init_error_bitmap; + unsigned int init_nr_io_errors; + unsigned int init_nr_csum_errors; + unsigned int init_nr_meta_errors; + unsigned long error_bitmap; + unsigned long io_error_bitmap; + unsigned long csum_error_bitmap; + unsigned long meta_error_bitmap; + unsigned long write_error_bitmap; + spinlock_t write_error_lock; + u8 *csums; + struct work_struct work; +}; + +struct scrub_ctx { + struct scrub_stripe stripes[128]; + struct scrub_stripe *raid56_data_stripes; + struct btrfs_fs_info *fs_info; + struct btrfs_path extent_path; + struct btrfs_path csum_path; + int first_free; + int cur_stripe; + atomic_t cancel_req; + int readonly; + ktime_t throttle_deadline; + u64 throttle_sent; + int is_dev_replace; + u64 write_pointer; + struct mutex wr_lock; + struct btrfs_device *wr_tgtdev; + struct btrfs_scrub_progress stat; + spinlock_t stat_lock; + refcount_t refs; +}; + +struct scrub_sector_verification { + bool is_metadata; + union { + u8 *csum; + u64 generation; + }; +}; + +struct scrub_warning { + struct btrfs_path *path; + u64 extent_item_size; + const char *errstr; + u64 physical; + u64 logical; + struct btrfs_device *dev; +}; + +struct xxhash64_tfm_ctx { + u64 seed; +}; + +struct xxhash64_desc_ctx { + struct xxh64_state xxhstate; +}; + +struct io_rw { + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; +}; + +struct io_rw_state { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov[8]; +}; + +struct io_async_rw { + struct io_rw_state s; + const struct iovec *free_iovec; + size_t bytes_done; + struct wait_page_queue wpq; +}; + +struct vesafb_par { + u32 pseudo_palette[256]; + resource_size_t base; + resource_size_t size; + int wc_cookie; + struct resource *region; +}; + +enum { + LDISC_SEM_NORMAL = 0, + LDISC_SEM_OTHER = 1, +}; + +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; +}; + +enum iwl_prph_scratch_flags { + IWL_PRPH_SCRATCH_IMR_DEBUG_EN = 2, + IWL_PRPH_SCRATCH_EARLY_DEBUG_EN = 16, + IWL_PRPH_SCRATCH_EDBG_DEST_DRAM = 256, + IWL_PRPH_SCRATCH_EDBG_DEST_INTERNAL = 512, + IWL_PRPH_SCRATCH_EDBG_DEST_ST_ARBITER = 1024, + IWL_PRPH_SCRATCH_EDBG_DEST_TB22DTF = 2048, + IWL_PRPH_SCRATCH_RB_SIZE_4K = 65536, + IWL_PRPH_SCRATCH_MTR_MODE = 131072, + IWL_PRPH_SCRATCH_MTR_FORMAT = 786432, + IWL_PRPH_SCRATCH_RB_SIZE_EXT_MASK = 15728640, + IWL_PRPH_SCRATCH_RB_SIZE_EXT_8K = 8388608, + IWL_PRPH_SCRATCH_RB_SIZE_EXT_12K = 9437184, + IWL_PRPH_SCRATCH_RB_SIZE_EXT_16K = 10485760, +}; + +enum iwl_prph_scratch_mtr_format { + IWL_PRPH_MTR_FORMAT_16B = 0, + IWL_PRPH_MTR_FORMAT_32B = 262144, + IWL_PRPH_MTR_FORMAT_64B = 524288, + IWL_PRPH_MTR_FORMAT_256B = 786432, +}; + +struct iwl_prph_scrath_mem_desc_addr_array { + __le64 mem_descs[64]; +}; + +enum iwl_link_ctx_protection_flags { + LINK_PROT_FLG_TGG_PROTECT = 1, + LINK_PROT_FLG_HT_PROT = 2, + LINK_PROT_FLG_FAT_PROT = 4, + LINK_PROT_FLG_SELF_CTS_EN = 8, +}; + +enum iwl_link_ctx_flags { + LINK_FLG_BSS_COLOR_DIS = 1, + LINK_FLG_MU_EDCA_CW = 2, + LINK_FLG_RU_2MHZ_BLOCK = 4, + LINK_FLG_NDP_FEEDBACK_ENABLED = 8, +}; + +struct iwl_link_config_cmd { + __le32 action; + __le32 link_id; + __le32 mac_id; + __le32 phy_id; + u8 local_link_addr[6]; + __le16 reserved_for_local_link_addr; + __le32 modify_mask; + __le32 active; + union { + __le32 listen_lmac; + __le32 reserved1; + }; + __le32 cck_rates; + __le32 ofdm_rates; + __le32 cck_short_preamble; + __le32 short_slot; + __le32 protection_flags; + __le32 qos_flags; + struct iwl_ac_qos___2 ac[5]; + u8 htc_trig_based_pkt_ext; + u8 rand_alloc_ecwmin; + u8 rand_alloc_ecwmax; + u8 ndp_fdbk_buff_th_exp; + struct iwl_he_backoff_conf trig_based_txf[4]; + __le32 bi; + __le32 dtim_interval; + __le16 puncture_mask; + __le16 frame_time_rts_th; + __le32 flags; + __le32 flags_mask; + u8 ref_bssid_addr[6]; + __le16 reserved_for_ref_bssid_addr; + u8 bssid_index; + u8 bss_color; + u8 spec_link_id; + u8 reserved2; + u8 ibss_bssid_addr[6]; + __le16 reserved_for_ibss_bssid_addr; + __le32 reserved3[8]; +}; + +struct component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); +}; + +struct tctl_offset { + u8 model; + const char *id; + int offset; +}; + +struct k10temp_data { + struct pci_dev *pdev; + void (*read_htcreg)(struct pci_dev *, u32 *); + void (*read_tempreg)(struct pci_dev *, u32 *); + int temp_offset; + u32 temp_adjust_mask; + u32 show_temp; + bool is_zen; + u32 ccd_offset; + bool disp_negative; +}; + +struct compat_mmsghdr { + struct compat_msghdr msg_hdr; + compat_uint_t msg_len; +}; + +typedef u32 compat_caddr_t; + +struct compat_if_settings { + unsigned int type; + unsigned int size; + compat_uptr_t ifs_ifsu; +}; + +struct compat_ifreq { + union { + char ifrn_name[16]; + } ifr_ifrn; + union { + struct sockaddr ifru_addr; + struct sockaddr ifru_dstaddr; + struct sockaddr ifru_broadaddr; + struct sockaddr ifru_netmask; + struct sockaddr ifru_hwaddr; + short ifru_flags; + compat_int_t ifru_ivalue; + compat_int_t ifru_mtu; + struct compat_ifmap ifru_map; + char ifru_slave[16]; + char ifru_newname[16]; + compat_caddr_t ifru_data; + struct compat_if_settings ifru_settings; + } ifr_ifru; +}; + +struct mmsghdr { + struct user_msghdr msg_hdr; + unsigned int msg_len; +}; + +struct __kernel_old_timespec { + __kernel_old_time_t tv_sec; + long tv_nsec; +}; + +struct scm_ts_pktinfo { + __u32 if_index; + __u32 pkt_length; + __u32 reserved[2]; +}; + +struct scm_timestamping_internal { + struct timespec64 ts[3]; +}; + +struct used_address { + struct __kernel_sockaddr_storage name; + unsigned int name_len; +}; + +enum nfnl_cthelper_type { + NFCTH_UNSPEC = 0, + NFCTH_NAME = 1, + NFCTH_TUPLE = 2, + NFCTH_QUEUE_NUM = 3, + NFCTH_POLICY = 4, + NFCTH_PRIV_DATA_LEN = 5, + NFCTH_STATUS = 6, + __NFCTH_MAX = 7, +}; + +enum nfnl_cthelper_tuple_type { + NFCTH_TUPLE_UNSPEC = 0, + NFCTH_TUPLE_L3PROTONUM = 1, + NFCTH_TUPLE_L4PROTONUM = 2, + __NFCTH_TUPLE_MAX = 3, +}; + +enum nfnl_cthelper_policy_type { + NFCTH_POLICY_SET_UNSPEC = 0, + NFCTH_POLICY_SET_NUM = 1, + NFCTH_POLICY_SET = 2, + NFCTH_POLICY_SET1 = 2, + NFCTH_POLICY_SET2 = 3, + NFCTH_POLICY_SET3 = 4, + NFCTH_POLICY_SET4 = 5, + __NFCTH_POLICY_SET_MAX = 6, +}; + +enum nfnl_cthelper_pol_type { + NFCTH_POLICY_UNSPEC = 0, + NFCTH_POLICY_NAME = 1, + NFCTH_POLICY_EXPECT_MAX = 2, + NFCTH_POLICY_EXPECT_TIMEOUT = 3, + __NFCTH_POLICY_MAX = 4, +}; + +enum nfnl_cthelper_msg_types { + NFNL_MSG_CTHELPER_NEW = 0, + NFNL_MSG_CTHELPER_GET = 1, + NFNL_MSG_CTHELPER_DEL = 2, + NFNL_MSG_CTHELPER_MAX = 3, +}; + +struct nfnl_cthelper { + struct list_head list; + struct nf_conntrack_helper helper; +}; + +struct tcp_metrics_block; + +struct tcpm_hash_bucket { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; +}; + +struct tcp_fastopen_metrics { + u16 mss; + u16 syn_loss: 10; + u16 try_exp: 2; + unsigned long last_syn_loss; + struct tcp_fastopen_cookie cookie; +}; + +struct tcp_metrics_block { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; + struct net *tcpm_net; + struct inetpeer_addr tcpm_saddr; + struct inetpeer_addr tcpm_daddr; + unsigned long tcpm_stamp; + u32 tcpm_lock; + u32 tcpm_vals[5]; + struct tcp_fastopen_metrics tcpm_fastopen; + struct callback_head callback_head; +}; + +enum tcp_metric_index { + TCP_METRIC_RTT = 0, + TCP_METRIC_RTTVAR = 1, + TCP_METRIC_SSTHRESH = 2, + TCP_METRIC_CWND = 3, + TCP_METRIC_REORDERING = 4, + TCP_METRIC_RTT_US = 5, + TCP_METRIC_RTTVAR_US = 6, + __TCP_METRIC_MAX = 7, +}; + +enum { + TCP_METRICS_ATTR_UNSPEC = 0, + TCP_METRICS_ATTR_ADDR_IPV4 = 1, + TCP_METRICS_ATTR_ADDR_IPV6 = 2, + TCP_METRICS_ATTR_AGE = 3, + TCP_METRICS_ATTR_TW_TSVAL = 4, + TCP_METRICS_ATTR_TW_TS_STAMP = 5, + TCP_METRICS_ATTR_VALS = 6, + TCP_METRICS_ATTR_FOPEN_MSS = 7, + TCP_METRICS_ATTR_FOPEN_SYN_DROPS = 8, + TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS = 9, + TCP_METRICS_ATTR_FOPEN_COOKIE = 10, + TCP_METRICS_ATTR_SADDR_IPV4 = 11, + TCP_METRICS_ATTR_SADDR_IPV6 = 12, + TCP_METRICS_ATTR_PAD = 13, + __TCP_METRICS_ATTR_MAX = 14, +}; + +enum { + TCP_METRICS_CMD_UNSPEC = 0, + TCP_METRICS_CMD_GET = 1, + TCP_METRICS_CMD_DEL = 2, + __TCP_METRICS_CMD_MAX = 3, +}; + +struct nft_ct_frag6_pernet { + struct ctl_table_header *nf_frag_frags_hdr; + struct fqdir *fqdir; +}; + +enum ieee80211_s1g_chanwidth { + IEEE80211_S1G_CHANWIDTH_1MHZ = 0, + IEEE80211_S1G_CHANWIDTH_2MHZ = 1, + IEEE80211_S1G_CHANWIDTH_4MHZ = 3, + IEEE80211_S1G_CHANWIDTH_8MHZ = 7, + IEEE80211_S1G_CHANWIDTH_16MHZ = 15, +}; + +struct ieee80211_noa_data { + u32 next_tsf; + bool has_next_tsf; + u8 absent; + u8 count[4]; + struct { + u32 start; + u32 duration; + u32 interval; + } desc[4]; +}; + +enum { + TRACE_NOP_OPT_ACCEPT = 1, + TRACE_NOP_OPT_REFUSE = 2, +}; + +struct static_call_tramp_key { + s32 tramp; + s32 key; +}; + +typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); + +typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); + +typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); + +typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); + +typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); + +typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, int); + +typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); + +struct reclaim_stat; + +typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); + +struct reclaim_stat { + unsigned int nr_dirty; + unsigned int nr_unqueued_dirty; + unsigned int nr_congested; + unsigned int nr_writeback; + unsigned int nr_immediate; + unsigned int nr_pageout; + unsigned int nr_activate[2]; + unsigned int nr_ref_keep; + unsigned int nr_unmap_fail; + unsigned int nr_lazyfree_fail; +}; + +typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, unsigned long, unsigned long, unsigned long, unsigned long, int, int); + +typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long); + +typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); + +enum pgdat_flags { + PGDAT_DIRTY = 0, + PGDAT_WRITEBACK = 1, + PGDAT_RECLAIM_LOCKED = 2, +}; + +enum folio_references { + FOLIOREF_RECLAIM = 0, + FOLIOREF_RECLAIM_CLEAN = 1, + FOLIOREF_KEEP = 2, + FOLIOREF_ACTIVATE = 3, +}; + +enum lruvec_flags { + LRUVEC_CGROUP_CONGESTED = 0, + LRUVEC_NODE_CONGESTED = 1, +}; + +enum scan_balance { + SCAN_EQUAL = 0, + SCAN_FRACT = 1, + SCAN_ANON = 2, + SCAN_FILE = 3, +}; + +struct trace_event_raw_mm_vmscan_kswapd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_kswapd_wake { + struct trace_entry ent; + int nid; + int zid; + int order; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_wakeup_kswapd { + struct trace_entry ent; + int nid; + int zid; + int order; + unsigned long gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { + struct trace_entry ent; + int order; + unsigned long gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { + struct trace_entry ent; + unsigned long nr_reclaimed; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_start { + struct trace_entry ent; + struct shrinker *shr; + void *shrink; + int nid; + long nr_objects_to_shrink; + unsigned long gfp_flags; + unsigned long cache_items; + unsigned long long delta; + unsigned long total_scan; + int priority; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_end { + struct trace_entry ent; + struct shrinker *shr; + int nid; + void *shrink; + long unused_scan; + long new_scan; + int retval; + long total_scan; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_isolate { + struct trace_entry ent; + int highest_zoneidx; + int order; + unsigned long nr_requested; + unsigned long nr_scanned; + unsigned long nr_skipped; + unsigned long nr_taken; + int lru; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_write_folio { + struct trace_entry ent; + unsigned long pfn; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_inactive { + struct trace_entry ent; + int nid; + unsigned long nr_scanned; + unsigned long nr_reclaimed; + unsigned long nr_dirty; + unsigned long nr_writeback; + unsigned long nr_congested; + unsigned long nr_immediate; + unsigned int nr_activate0; + unsigned int nr_activate1; + unsigned long nr_ref_keep; + unsigned long nr_unmap_fail; + int priority; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_active { + struct trace_entry ent; + int nid; + unsigned long nr_taken; + unsigned long nr_active; + unsigned long nr_deactivated; + unsigned long nr_referenced; + int priority; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_node_reclaim_begin { + struct trace_entry ent; + int nid; + int order; + unsigned long gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_throttled { + struct trace_entry ent; + int nid; + int usec_timeout; + int usec_delayed; + int reason; + char __data[0]; +}; + +struct scan_control { + unsigned long nr_to_reclaim; + nodemask_t *nodemask; + struct mem_cgroup *target_mem_cgroup; + unsigned long anon_cost; + unsigned long file_cost; + unsigned int may_deactivate: 2; + unsigned int force_deactivate: 1; + unsigned int skipped_deactivate: 1; + unsigned int may_writepage: 1; + unsigned int may_unmap: 1; + unsigned int may_swap: 1; + unsigned int no_cache_trim_mode: 1; + unsigned int cache_trim_mode_failed: 1; + unsigned int proactive: 1; + unsigned int memcg_low_reclaim: 1; + unsigned int memcg_low_skipped: 1; + unsigned int hibernation_mode: 1; + unsigned int compaction_ready: 1; + unsigned int cache_trim_mode: 1; + unsigned int file_is_tiny: 1; + unsigned int no_demotion: 1; + s8 order; + s8 priority; + s8 reclaim_idx; + gfp_t gfp_mask; + unsigned long nr_scanned; + unsigned long nr_reclaimed; + struct { + unsigned int dirty; + unsigned int unqueued_dirty; + unsigned int congested; + unsigned int writeback; + unsigned int immediate; + unsigned int file_taken; + unsigned int taken; + } nr; + struct reclaim_state reclaim_state; +}; + +typedef enum { + PAGE_KEEP = 0, + PAGE_ACTIVATE = 1, + PAGE_SUCCESS = 2, + PAGE_CLEAN = 3, +} pageout_t; + +struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; + +struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; + +struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; + +struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; + +struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; + +struct trace_event_data_offsets_mm_shrink_slab_start {}; + +struct trace_event_data_offsets_mm_shrink_slab_end {}; + +struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; + +struct trace_event_data_offsets_mm_vmscan_write_folio {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; + +struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; + +struct trace_event_data_offsets_mm_vmscan_throttled {}; + +enum btrfs_tree_block_status { + BTRFS_TREE_BLOCK_CLEAN = 0, + BTRFS_TREE_BLOCK_INVALID_NRITEMS = 1, + BTRFS_TREE_BLOCK_INVALID_PARENT_KEY = 2, + BTRFS_TREE_BLOCK_BAD_KEY_ORDER = 3, + BTRFS_TREE_BLOCK_INVALID_LEVEL = 4, + BTRFS_TREE_BLOCK_INVALID_FREE_SPACE = 5, + BTRFS_TREE_BLOCK_INVALID_OFFSETS = 6, + BTRFS_TREE_BLOCK_INVALID_BLOCKPTR = 7, + BTRFS_TREE_BLOCK_INVALID_ITEM = 8, + BTRFS_TREE_BLOCK_INVALID_OWNER = 9, +}; + +struct cmac_desc_ctx { + unsigned int len; + u8 odds[0]; +}; + +struct cmac_tfm_ctx { + struct crypto_cipher *child; + __be64 consts[0]; +}; + +struct pr_reservation { + __u64 key; + __u32 type; + __u32 flags; +}; + +struct pr_preempt { + __u64 old_key; + __u64 new_key; + __u32 type; + __u32 flags; +}; + +struct pr_clear { + __u64 key; + __u32 flags; + __u32 __pad; +}; + +struct pr_registration { + __u64 old_key; + __u64 new_key; + __u32 flags; + __u32 __pad; +}; + +struct blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void __attribute__((btf_type_tag("user"))) *data; +}; + +struct blkpg_partition { + long long start; + long long length; + int pno; + char devname[64]; + char volname[64]; +}; + +enum acpi_subtable_type { + ACPI_SUBTABLE_COMMON = 0, + ACPI_SUBTABLE_HMAT = 1, + ACPI_SUBTABLE_PRMT = 2, + ACPI_SUBTABLE_CEDT = 3, + CDAT_SUBTABLE = 4, +}; + +enum acpi_cdat_type { + ACPI_CDAT_TYPE_DSMAS = 0, + ACPI_CDAT_TYPE_DSLBIS = 1, + ACPI_CDAT_TYPE_DSMSCIS = 2, + ACPI_CDAT_TYPE_DSIS = 3, + ACPI_CDAT_TYPE_DSEMTS = 4, + ACPI_CDAT_TYPE_SSLBIS = 5, + ACPI_CDAT_TYPE_RESERVED = 6, +}; + +struct acpi_subtable_entry { + union acpi_subtable_headers *hdr; + enum acpi_subtable_type type; +}; + +struct platform_object { + struct platform_device pdev; + char name[0]; +}; + +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; +}; + +struct dev_pm_domain_attach_data { + const char * const *pd_names; + const u32 num_pd_names; + const u32 pd_flags; +}; + +struct dev_pm_domain_list { + struct device **pd_devs; + struct device_link **pd_links; + u32 num_pds; +}; + +enum spi_signal_type { + SPI_SIGNAL_UNKNOWN = 1, + SPI_SIGNAL_SE = 2, + SPI_SIGNAL_LVD = 3, + SPI_SIGNAL_HVD = 4, +}; + +enum spi_compare_returns { + SPI_COMPARE_SUCCESS = 0, + SPI_COMPARE_FAILURE = 1, + SPI_COMPARE_SKIP_TEST = 2, +}; + +enum { + SPI_BLIST_NOIUS = 1, +}; + +struct spi_transport_attrs { + int period; + int min_period; + int offset; + int max_offset; + unsigned int width: 1; + unsigned int max_width: 1; + unsigned int iu: 1; + unsigned int max_iu: 1; + unsigned int dt: 1; + unsigned int qas: 1; + unsigned int max_qas: 1; + unsigned int wr_flow: 1; + unsigned int rd_strm: 1; + unsigned int rti: 1; + unsigned int pcomp_en: 1; + unsigned int hold_mcs: 1; + unsigned int initial_dv: 1; + unsigned long flags; + unsigned int support_sync: 1; + unsigned int support_wide: 1; + unsigned int support_dt: 1; + unsigned int support_dt_only; + unsigned int support_ius; + unsigned int support_qas; + unsigned int dv_pending: 1; + unsigned int dv_in_progress: 1; + struct mutex dv_mutex; +}; + +struct spi_function_template; + +struct spi_internal { + struct scsi_transport_template t; + struct spi_function_template *f; +}; + +struct spi_function_template { + void (*get_period)(struct scsi_target *); + void (*set_period)(struct scsi_target *, int); + void (*get_offset)(struct scsi_target *); + void (*set_offset)(struct scsi_target *, int); + void (*get_width)(struct scsi_target *); + void (*set_width)(struct scsi_target *, int); + void (*get_iu)(struct scsi_target *); + void (*set_iu)(struct scsi_target *, int); + void (*get_dt)(struct scsi_target *); + void (*set_dt)(struct scsi_target *, int); + void (*get_qas)(struct scsi_target *); + void (*set_qas)(struct scsi_target *, int); + void (*get_wr_flow)(struct scsi_target *); + void (*set_wr_flow)(struct scsi_target *, int); + void (*get_rd_strm)(struct scsi_target *); + void (*set_rd_strm)(struct scsi_target *, int); + void (*get_rti)(struct scsi_target *); + void (*set_rti)(struct scsi_target *, int); + void (*get_pcomp_en)(struct scsi_target *); + void (*set_pcomp_en)(struct scsi_target *, int); + void (*get_hold_mcs)(struct scsi_target *); + void (*set_hold_mcs)(struct scsi_target *, int); + void (*get_signalling)(struct Scsi_Host *); + void (*set_signalling)(struct Scsi_Host *, enum spi_signal_type); + int (*deny_binding)(struct scsi_target *); + unsigned long show_period: 1; + unsigned long show_offset: 1; + unsigned long show_width: 1; + unsigned long show_iu: 1; + unsigned long show_dt: 1; + unsigned long show_qas: 1; + unsigned long show_wr_flow: 1; + unsigned long show_rd_strm: 1; + unsigned long show_rti: 1; + unsigned long show_pcomp_en: 1; + unsigned long show_hold_mcs: 1; +}; + +struct spi_host_attrs { + enum spi_signal_type signalling; +}; + +struct work_queue_wrapper { + struct work_struct work; + struct scsi_device *sdev; +}; + +enum iwl_mei_nvm_caps { + MEI_NVM_CAPS_LARI_SUPPORT = 1, + MEI_NVM_CAPS_11AX_SUPPORT = 2, +}; + +enum iwl_nvm_sbands_flags { + IWL_NVM_SBANDS_FLAGS_LAR = 1, + IWL_NVM_SBANDS_FLAGS_NO_WIDE_IN_5GHZ = 2, +}; + +enum nvm_sku_bits { + NVM_SKU_CAP_BAND_24GHZ = 1, + NVM_SKU_CAP_BAND_52GHZ = 2, + NVM_SKU_CAP_11N_ENABLE = 4, + NVM_SKU_CAP_11AC_ENABLE = 8, + NVM_SKU_CAP_MIMO_DISABLE = 32, +}; + +enum nvm_offsets { + SUBSYSTEM_ID = 10, + HW_ADDR = 21, + NVM_SW_SECTION = 448, + NVM_VERSION = 0, + RADIO_CFG = 1, + SKU = 2, + N_HW_ADDRS = 3, + NVM_CHANNELS = 32, + NVM_CALIB_SECTION = 696, + XTAL_CALIB = 94, + NVM_CHANNELS_SDP = 0, +}; + +enum ext_nvm_offsets { + MAC_ADDRESS_OVERRIDE_EXT_NVM = 1, + NVM_VERSION_EXT_NVM = 0, + N_HW_ADDRS_FAMILY_8000 = 3, + RADIO_CFG_FAMILY_EXT_NVM = 0, + SKU_FAMILY_8000 = 2, + NVM_CHANNELS_EXTENDED = 0, + NVM_LAR_OFFSET_OLD = 1223, + NVM_LAR_OFFSET = 1287, + NVM_LAR_ENABLED = 7, +}; + +enum iwl_nvm_channel_flags { + NVM_CHANNEL_VALID = 1, + NVM_CHANNEL_IBSS = 2, + NVM_CHANNEL_ACTIVE = 8, + NVM_CHANNEL_RADAR = 16, + NVM_CHANNEL_INDOOR_ONLY = 32, + NVM_CHANNEL_GO_CONCURRENT = 64, + NVM_CHANNEL_UNIFORM = 128, + NVM_CHANNEL_20MHZ = 256, + NVM_CHANNEL_40MHZ = 512, + NVM_CHANNEL_80MHZ = 1024, + NVM_CHANNEL_160MHZ = 2048, + NVM_CHANNEL_DC_HIGH = 4096, + NVM_CHANNEL_VLP = 8192, + NVM_CHANNEL_AFC = 16384, +}; + +enum iwl_geo_information { + GEO_NO_INFO = 0, + GEO_WMM_ETSI_5GHZ_INFO = 1, +}; + +enum iwl_nvm_info_general_flags { + NVM_GENERAL_FLAGS_EMPTY_OTP = 1, +}; + +enum iwl_nvm_mac_sku_flags { + NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED = 1, + NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED = 2, + NVM_MAC_SKU_FLAGS_802_11N_ENABLED = 4, + NVM_MAC_SKU_FLAGS_802_11AC_ENABLED = 8, + NVM_MAC_SKU_FLAGS_802_11AX_ENABLED = 16, + NVM_MAC_SKU_FLAGS_MIMO_DISABLED = 32, + NVM_MAC_SKU_FLAGS_WAPI_ENABLED = 256, + NVM_MAC_SKU_FLAGS_REG_CHECK_ENABLED = 16384, + NVM_MAC_SKU_FLAGS_API_LOCK_ENABLED = 32768, +}; + +enum ieee80211_vht_max_ampdu_length_exp { + IEEE80211_VHT_MAX_AMPDU_8K = 0, + IEEE80211_VHT_MAX_AMPDU_16K = 1, + IEEE80211_VHT_MAX_AMPDU_32K = 2, + IEEE80211_VHT_MAX_AMPDU_64K = 3, + IEEE80211_VHT_MAX_AMPDU_128K = 4, + IEEE80211_VHT_MAX_AMPDU_256K = 5, + IEEE80211_VHT_MAX_AMPDU_512K = 6, + IEEE80211_VHT_MAX_AMPDU_1024K = 7, +}; + +enum iwl_reg_capa_flags_v4 { + REG_CAPA_V4_160MHZ_ALLOWED = 8, + REG_CAPA_V4_80MHZ_ALLOWED = 16, + REG_CAPA_V4_MCS_12_ALLOWED = 32, + REG_CAPA_V4_MCS_13_ALLOWED = 64, + REG_CAPA_V4_11BE_DISABLED = 256, + REG_CAPA_V4_11AX_DISABLED = 8192, + REG_CAPA_V4_320MHZ_ALLOWED = 65536, +}; + +enum iwl_reg_capa_flags_v2 { + REG_CAPA_V2_STRADDLE_DISABLED = 1, + REG_CAPA_V2_BF_CCD_LOW_BAND = 2, + REG_CAPA_V2_BF_CCD_HIGH_BAND = 4, + REG_CAPA_V2_160MHZ_ALLOWED = 8, + REG_CAPA_V2_80MHZ_ALLOWED = 16, + REG_CAPA_V2_MCS_8_ALLOWED = 32, + REG_CAPA_V2_MCS_9_ALLOWED = 64, + REG_CAPA_V2_WEATHER_DISABLED = 128, + REG_CAPA_V2_40MHZ_ALLOWED = 256, + REG_CAPA_V2_11AX_DISABLED = 1024, +}; + +enum iwl_reg_capa_flags_v1 { + REG_CAPA_V1_BF_CCD_LOW_BAND = 1, + REG_CAPA_V1_BF_CCD_HIGH_BAND = 2, + REG_CAPA_V1_160MHZ_ALLOWED = 4, + REG_CAPA_V1_80MHZ_ALLOWED = 8, + REG_CAPA_V1_MCS_8_ALLOWED = 16, + REG_CAPA_V1_MCS_9_ALLOWED = 32, + REG_CAPA_V1_40MHZ_FORBIDDEN = 128, + REG_CAPA_V1_DC_HIGH_ENABLED = 512, + REG_CAPA_V1_11AX_DISABLED = 1024, +}; + +struct iwl_reg_capa { + bool allow_40mhz; + bool allow_80mhz; + bool allow_160mhz; + bool allow_320mhz; + bool disable_11ax; + bool disable_11be; +}; + +struct iwl_nvm_get_info { + __le32 reserved; +}; + +struct iwl_nvm_get_info_general { + __le32 flags; + __le16 nvm_version; + u8 board_type; + u8 n_hw_addrs; +}; + +struct iwl_nvm_get_info_sku { + __le32 mac_sku_flags; +}; + +struct iwl_nvm_get_info_phy { + __le32 tx_chains; + __le32 rx_chains; +}; + +struct iwl_nvm_get_info_regulatory { + __le32 lar_enabled; + __le32 n_channels; + __le32 channel_profile[110]; +}; + +struct iwl_nvm_get_info_rsp { + struct iwl_nvm_get_info_general general; + struct iwl_nvm_get_info_sku mac_sku; + struct iwl_nvm_get_info_phy phy_sku; + struct iwl_nvm_get_info_regulatory regulatory; +}; + +struct iwl_nvm_get_info_regulatory_v1 { + __le32 lar_enabled; + __le16 channel_profile[51]; + __le16 reserved; +}; + +struct iwl_nvm_get_info_rsp_v3 { + struct iwl_nvm_get_info_general general; + struct iwl_nvm_get_info_sku mac_sku; + struct iwl_nvm_get_info_phy phy_sku; + struct iwl_nvm_get_info_regulatory_v1 regulatory; +}; + +struct ieee80211_tpt_blink { + int throughput; + int blink_time; +}; + +enum { + IF_COMB_AP = 0, + NUM_IF_COMB = 1, +}; + +enum sharp_state { + STATE_INACTIVE___8 = 0, + STATE_BIT_PULSE___4 = 1, + STATE_BIT_SPACE___4 = 2, + STATE_TRAILER_PULSE___3 = 3, + STATE_ECHO_SPACE = 4, + STATE_TRAILER_SPACE___3 = 5, +}; + +struct firmware_map_entry; + +struct memmap_attribute { + struct attribute attr; + ssize_t (*show)(struct firmware_map_entry *, char *); +}; + +struct firmware_map_entry { + u64 start; + u64 end; + const char *type; + struct list_head list; + struct kobject kobj; +}; + +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; +}; + +struct scm_timestamping { + struct __kernel_old_timespec ts[3]; +}; + +struct bpf_nf_link { + struct bpf_link link; + struct nf_hook_ops hook_ops; + struct net *net; + u32 dead; + const struct nf_defrag_hook *defrag_hook; +}; + +enum nft_immediate_attributes { + NFTA_IMMEDIATE_UNSPEC = 0, + NFTA_IMMEDIATE_DREG = 1, + NFTA_IMMEDIATE_DATA = 2, + __NFTA_IMMEDIATE_MAX = 3, +}; + +struct tcp_plb_state { + u8 consec_cong_rounds: 5; + u8 unused: 3; + u32 pause_until; +}; + +struct sta_link_alloc { + struct link_sta_info info; + struct ieee80211_link_sta sta; + struct callback_head callback_head; +}; + +struct mutex_waiter { + struct list_head list; + struct task_struct *task; + struct ww_acquire_ctx *ww_ctx; + void *magic; +}; + +struct ce_unbind { + struct clock_event_device *ce; + int res; +}; + +struct pids_cgroup { + struct cgroup_subsys_state css; + atomic64_t counter; + atomic64_t limit; + int64_t watermark; + struct cgroup_file events_file; + atomic64_t events_limit; +}; + +struct padata_work { + struct work_struct pw_work; + struct list_head pw_list; + void *pw_data; +}; + +struct padata_instance; + +struct padata_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct padata_instance *, struct attribute *, char *); + ssize_t (*store)(struct padata_instance *, struct attribute *, const char *, size_t); +}; + +struct padata_cpumask { + cpumask_var_t pcpu; + cpumask_var_t cbcpu; +}; + +struct padata_instance { + struct hlist_node cpu_online_node; + struct hlist_node cpu_dead_node; + struct workqueue_struct *parallel_wq; + struct workqueue_struct *serial_wq; + struct list_head pslist; + struct padata_cpumask cpumask; + struct kobject kobj; + struct mutex lock; + u8 flags; +}; + +struct padata_shell; + +struct padata_list; + +struct padata_serial_queue; + +struct parallel_data { + struct padata_shell *ps; + struct padata_list __attribute__((btf_type_tag("percpu"))) *reorder_list; + struct padata_serial_queue __attribute__((btf_type_tag("percpu"))) *squeue; + refcount_t refcnt; + unsigned int seq_nr; + unsigned int processed; + int cpu; + struct padata_cpumask cpumask; + struct work_struct reorder_work; + spinlock_t lock; +}; + +struct padata_shell { + struct padata_instance *pinst; + struct parallel_data __attribute__((btf_type_tag("rcu"))) *pd; + struct parallel_data *opd; + struct list_head list; +}; + +struct padata_list { + struct list_head list; + spinlock_t lock; +}; + +struct padata_serial_queue { + struct padata_list serial; + struct work_struct work; + struct parallel_data *pd; +}; + +struct padata_priv { + struct list_head list; + struct parallel_data *pd; + int cb_cpu; + unsigned int seq_nr; + int info; + void (*parallel)(struct padata_priv *); + void (*serial)(struct padata_priv *); +}; + +struct padata_mt_job_state { + spinlock_t lock; + struct completion completion; + struct padata_mt_job *job; + int nworks; + int nworks_fini; + unsigned long chunk_size; +}; + +struct memory_dev_type; + +struct node_memory_type_map { + struct memory_dev_type *memtype; + int map_count; +}; + +struct memory_dev_type { + struct list_head tier_sibling; + struct list_head list; + int adistance; + nodemask_t nodes; + struct kref kref; +}; + +struct demotion_nodes { + nodemask_t preferred; +}; + +struct access_coordinate { + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; +}; + +enum { + EXT4_FC_STATUS_OK = 0, + EXT4_FC_STATUS_INELIGIBLE = 1, + EXT4_FC_STATUS_SKIPPED = 2, + EXT4_FC_STATUS_FAILED = 3, +}; + +struct ext4_fc_dentry_update { + int fcd_op; + int fcd_parent; + int fcd_ino; + struct qstr fcd_name; + unsigned char fcd_iname[40]; + struct list_head fcd_list; + struct list_head fcd_dilist; +}; + +struct __track_dentry_update_args { + struct dentry *dentry; + int op; +}; + +struct __track_range_args { + ext4_lblk_t start; + ext4_lblk_t end; +}; + +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; +}; + +struct ext4_fc_head { + __le32 fc_features; + __le32 fc_tid; +}; + +struct ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + __u8 fc_dname[0]; +}; + +struct ext4_fc_tail { + __le32 fc_tid; + __le32 fc_crc; +}; + +struct ext4_fc_add_range { + __le32 fc_ino; + __u8 fc_ex[12]; +}; + +struct ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; +}; + +struct dentry_info_args { + int parent_ino; + int dname_len; + int ino; + int inode_len; + char *dname; +}; + +struct ext4_fc_del_range { + __le32 fc_ino; + __le32 fc_lblk; + __le32 fc_len; +}; + +struct ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[0]; +}; + +struct workspace___3 { + void *mem; + void *buf; + void *cbuf; + struct list_head list; +}; + +struct akcipher_instance { + void (*free)(struct akcipher_instance *); + union { + struct { + char head[72]; + struct crypto_instance base; + } s; + struct akcipher_alg alg; + }; +}; + +struct crypto_istat_akcipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t verify_cnt; + atomic64_t sign_cnt; + atomic64_t err_cnt; +}; + +struct crypto_akcipher_spawn { + struct crypto_spawn base; +}; + +enum bfqq_state_flags { + BFQQF_just_created = 0, + BFQQF_busy = 1, + BFQQF_wait_request = 2, + BFQQF_non_blocking_wait_rq = 3, + BFQQF_fifo_expire = 4, + BFQQF_has_short_ttime = 5, + BFQQF_sync = 6, + BFQQF_IO_bound = 7, + BFQQF_in_large_burst = 8, + BFQQF_softrt_update = 9, + BFQQF_coop = 10, + BFQQF_split_coop = 11, +}; + +struct acpi_thermal_trip { + unsigned long temp_dk; + struct acpi_handle_list devices; +}; + +struct acpi_thermal_passive { + struct acpi_thermal_trip trip; + unsigned long tc1; + unsigned long tc2; + unsigned long delay; +}; + +struct acpi_thermal_active { + struct acpi_thermal_trip trip; +}; + +struct acpi_thermal_trips { + struct acpi_thermal_passive passive; + struct acpi_thermal_active active[10]; +}; + +struct acpi_thermal { + struct acpi_device *device; + acpi_bus_id name; + unsigned long temp_dk; + unsigned long last_temp_dk; + unsigned long polling_frequency; + volatile u8 zombie; + struct acpi_thermal_trips trips; + struct thermal_zone_device *thermal_zone; + int kelvin_offset; + struct work_struct thermal_check_work; + struct mutex thermal_check_lock; + refcount_t thermal_check_count; +}; + +struct adjust_trip_data { + struct acpi_thermal *tz; + u32 event; +}; + +struct acpi_thermal_bind_data { + struct thermal_zone_device *thermal; + struct thermal_cooling_device *cdev; + bool bind; +}; + +struct lpss8250; + +struct lpss8250_board { + unsigned long freq; + unsigned int base_baud; + int (*setup)(struct lpss8250 *, struct uart_port *); + void (*exit)(struct lpss8250 *); +}; + +struct dw_dma; + +struct dw_dma_platform_data; + +struct dw_dma_chip { + struct device *dev; + int id; + int irq; + void *regs; + struct clk *clk; + struct dw_dma *dw; + const struct dw_dma_platform_data *pdata; +}; + +struct dw_dma_slave { + struct device *dma_dev; + u8 src_id; + u8 dst_id; + u8 m_master; + u8 p_master; + u8 channels; + bool hs_polarity; +}; + +struct lpss8250 { + struct dw8250_port_data data; + struct lpss8250_board *board; + struct dw_dma_chip dma_chip; + struct dw_dma_slave dma_param; + u8 dma_maxburst; +}; + +struct dw_dma_platform_data { + u32 nr_masters; + u32 nr_channels; + u32 chan_allocation_order; + u32 chan_priority; + u32 block_size; + u32 data_width[4]; + u32 multi_block[8]; + u32 max_burst[8]; + u32 protctl; + u32 quirks; +}; + +struct e1000_option___2 { + enum { + enable_option___2 = 0, + range_option___2 = 1, + list_option___2 = 2, + } type; + const char *name; + const char *err; + int def; + union { + struct { + int min; + int max; + } r; + struct { + int nr; + const struct e1000_opt_list *p; + } l; + } arg; +}; + +enum { + MEASUREMENT_READY = 1, + MEASUREMENT_ACTIVE = 2, +}; + +struct iwl_rx_mpdu_res_start___2 { + __le16 byte_count; + __le16 reserved; +}; + +struct iwlagn_non_cfg_phy { + __le32 non_cfg_phy[8]; +}; + +struct iwl_error_resp___2 { + __le32 error_type; + u8 cmd_id; + u8 reserved1; + __le16 bad_cmd_seq_num; + __le32 error_info; + __le64 timestamp; +} __attribute__((packed)); + +struct iwl_csa_notification { + __le16 band; + __le16 channel; + __le32 status; +}; + +struct iwlagn_tx_resp { + u8 frame_count; + u8 bt_kill_count; + u8 failure_rts; + u8 failure_frame; + __le32 rate_n_flags; + __le16 wireless_media_time; + u8 pa_status; + u8 pa_integ_res_a[3]; + u8 pa_integ_res_b[3]; + u8 pa_integ_res_C[3]; + __le32 tfd_info; + __le16 seq_ctl; + __le16 byte_cnt; + u8 tlc_info; + u8 ra_tid; + __le16 frame_ctrl; + struct agg_tx_status status; +}; + +struct iwlagn_beacon_notif { + struct iwlagn_tx_resp beacon_notify_hdr; + __le32 low_tsf; + __le32 high_tsf; + __le32 ibss_mgr_status; +}; + +struct iwl_wipan_noa_descriptor { + u8 count; + __le32 duration; + __le32 interval; + __le32 starttime; +} __attribute__((packed)); + +struct iwl_wipan_noa_attribute { + u8 id; + __le16 length; + u8 index; + u8 ct_window; + struct iwl_wipan_noa_descriptor descr0; + struct iwl_wipan_noa_descriptor descr1; + u8 reserved; +} __attribute__((packed)); + +struct iwl_wipan_noa_notification { + u32 noa_active; + struct iwl_wipan_noa_attribute noa_attribute; +}; + +struct statistics_rx { + struct statistics_rx_phy ofdm; + struct statistics_rx_phy cck; + struct statistics_rx_non_phy general; + struct statistics_rx_ht_phy ofdm_ht; +}; + +struct statistics_general { + struct statistics_general_common common; + __le32 reserved2; + __le32 reserved3; +}; + +struct iwl_notif_statistics___2 { + __le32 flag; + struct statistics_rx rx; + struct statistics_tx tx; + struct statistics_general general; +}; + +struct statistics_rx_non_phy_bt { + struct statistics_rx_non_phy common; + __le32 num_bt_kills; + __le32 reserved[2]; +}; + +struct statistics_rx_bt { + struct statistics_rx_phy ofdm; + struct statistics_rx_phy cck; + struct statistics_rx_non_phy_bt general; + struct statistics_rx_ht_phy ofdm_ht; +}; + +struct statistics_bt_activity { + __le32 hi_priority_tx_req_cnt; + __le32 hi_priority_tx_denied_cnt; + __le32 lo_priority_tx_req_cnt; + __le32 lo_priority_tx_denied_cnt; + __le32 hi_priority_rx_req_cnt; + __le32 hi_priority_rx_denied_cnt; + __le32 lo_priority_rx_req_cnt; + __le32 lo_priority_rx_denied_cnt; +}; + +struct statistics_general_bt { + struct statistics_general_common common; + struct statistics_bt_activity activity; + __le32 reserved2; + __le32 reserved3; +}; + +struct iwl_bt_notif_statistics { + __le32 flag; + struct statistics_rx_bt rx; + struct statistics_tx tx; + struct statistics_general_bt general; +}; + +struct iwl_card_state_notif { + __le32 flags; +}; + +struct iwl_missed_beacon_notif { + __le32 consecutive_missed_beacons; + __le32 total_missed_becons; + __le32 num_expected_beacons; + __le32 num_recvd_beacons; +}; + +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE = 1, + INDICATOR_GREEN_BLINK = 2, + INDICATOR_GREEN_BLINK_OFF = 3, + INDICATOR_AMBER_BLINK = 4, + INDICATOR_AMBER_BLINK_OFF = 5, + INDICATOR_ALT_BLINK = 6, + INDICATOR_ALT_BLINK_OFF = 7, +} __attribute__((mode(byte))); + +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, +}; + +enum hub_activation_type { + HUB_INIT = 0, + HUB_INIT2 = 1, + HUB_INIT3 = 2, + HUB_POST_RESET = 3, + HUB_RESUME = 4, + HUB_RESET_RESUME = 5, +}; + +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; +}; + +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; +}; + +struct usbdevfs_hub_portinfo { + char nports; + char port[127]; +}; + +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; +}; + +struct md_setup_args { + int minor; + int partitioned; + int level; + int chunk; + char *device_names; +}; + +struct conntrack_gc_work { + struct delayed_work dwork; + u32 next_bucket; + u32 avg_timeout; + u32 count; + u32 start_time; + bool exiting; + bool early_drop; +}; + +enum nf_ct_ecache_state { + NFCT_ECACHE_DESTROY_FAIL = 0, + NFCT_ECACHE_DESTROY_SENT = 1, +}; + +struct nf_ct_timeout { + __u16 l3num; + const struct nf_conntrack_l4proto *l4proto; + char data[0]; +}; + +struct nf_conn_timeout { + struct nf_ct_timeout __attribute__((btf_type_tag("rcu"))) *timeout; +}; + +struct brnf_frag_data { + char mac[22]; + u8 encap_size; + u8 size; + u16 vlan_tci; + __be16 vlan_proto; +}; + +enum nf_br_hook_priorities { + NF_BR_PRI_FIRST = -2147483648, + NF_BR_PRI_NAT_DST_BRIDGED = -300, + NF_BR_PRI_FILTER_BRIDGED = -200, + NF_BR_PRI_BRNF = 0, + NF_BR_PRI_NAT_DST_OTHER = 100, + NF_BR_PRI_FILTER_OTHER = 200, + NF_BR_PRI_NAT_SRC = 300, + NF_BR_PRI_LAST = 2147483647, +}; + +struct brnf_net { + bool enabled; + struct ctl_table_header *ctl_hdr; + int call_iptables; + int call_ip6tables; + int call_arptables; + int filter_vlan_tagged; + int filter_pppoe_tagged; + int pass_vlan_indev; +}; + +typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); + +struct compress_format { + unsigned char magic[2]; + const char *name; + decompress_fn decompressor; +}; + +typedef struct { + unsigned long key[2]; +} hsiphash_key_t; + +typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); + +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); + +typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); + +typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); + +typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); + +typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); + +typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); + +typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64); + +typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); + +typedef void (*btf_trace_sched_process_hang)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); + +typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int); + +typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int); + +typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); + +typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); + +typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); + +typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); + +typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); + +typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); + +typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); + +typedef void (*btf_trace_ipi_entry)(void *, const char *); + +typedef void (*btf_trace_ipi_exit)(void *, const char *); + +struct tick_work { + int cpu; + atomic_t state; + struct delayed_work work; +}; + +enum { + preempt_dynamic_undefined = -1, + preempt_dynamic_none = 0, + preempt_dynamic_voluntary = 1, + preempt_dynamic_full = 2, +}; + +enum { + cpuset = 0, + possible = 1, + fail = 2, +}; + +union cpumask_rcuhead { + cpumask_t cpumask; + struct callback_head rcu; +}; + +struct trace_event_raw_sched_kthread_stop { + struct trace_entry ent; + char comm[16]; + pid_t pid; + char __data[0]; +}; + +struct trace_event_raw_sched_kthread_stop_ret { + struct trace_entry ent; + int ret; + char __data[0]; +}; + +struct trace_event_raw_sched_kthread_work_queue_work { + struct trace_entry ent; + void *work; + void *function; + void *worker; + char __data[0]; +}; + +struct trace_event_raw_sched_kthread_work_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + +struct trace_event_raw_sched_kthread_work_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + +struct trace_event_raw_sched_wakeup_template { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + int target_cpu; + char __data[0]; +}; + +struct trace_event_raw_sched_switch { + struct trace_entry ent; + char prev_comm[16]; + pid_t prev_pid; + int prev_prio; + long prev_state; + char next_comm[16]; + pid_t next_pid; + int next_prio; + char __data[0]; +}; + +struct trace_event_raw_sched_migrate_task { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + int orig_cpu; + int dest_cpu; + char __data[0]; +}; + +struct trace_event_raw_sched_process_template { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + char __data[0]; +}; + +struct trace_event_raw_sched_process_wait { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + char __data[0]; +}; + +struct trace_event_raw_sched_process_fork { + struct trace_entry ent; + char parent_comm[16]; + pid_t parent_pid; + char child_comm[16]; + pid_t child_pid; + char __data[0]; +}; + +struct trace_event_raw_sched_process_exec { + struct trace_entry ent; + u32 __data_loc_filename; + pid_t pid; + pid_t old_pid; + char __data[0]; +}; + +struct trace_event_raw_sched_stat_runtime { + struct trace_entry ent; + char comm[16]; + pid_t pid; + u64 runtime; + char __data[0]; +}; + +struct trace_event_raw_sched_pi_setprio { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int oldprio; + int newprio; + char __data[0]; +}; + +struct trace_event_raw_sched_process_hang { + struct trace_entry ent; + char comm[16]; + pid_t pid; + char __data[0]; +}; + +struct trace_event_raw_sched_move_numa { + struct trace_entry ent; + pid_t pid; + pid_t tgid; + pid_t ngid; + int src_cpu; + int src_nid; + int dst_cpu; + int dst_nid; + char __data[0]; +}; + +struct trace_event_raw_sched_numa_pair_template { + struct trace_entry ent; + pid_t src_pid; + pid_t src_tgid; + pid_t src_ngid; + int src_cpu; + int src_nid; + pid_t dst_pid; + pid_t dst_tgid; + pid_t dst_ngid; + int dst_cpu; + int dst_nid; + char __data[0]; +}; + +struct trace_event_raw_sched_wake_idle_without_ipi { + struct trace_entry ent; + int cpu; + char __data[0]; +}; + +struct trace_event_raw_ipi_raise { + struct trace_entry ent; + u32 __data_loc_target_cpus; + const char *reason; + char __data[0]; +}; + +struct trace_event_raw_ipi_send_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *callback; + char __data[0]; +}; + +struct trace_event_raw_ipi_send_cpumask { + struct trace_entry ent; + u32 __data_loc_cpumask; + void *callsite; + void *callback; + char __data[0]; +}; + +struct trace_event_raw_ipi_handler { + struct trace_entry ent; + const char *reason; + char __data[0]; +}; + +struct trace_event_data_offsets_sched_process_exec { + u32 filename; + const void *filename_ptr_; +}; + +struct trace_event_data_offsets_ipi_raise { + u32 target_cpus; + const void *target_cpus_ptr_; +}; + +struct trace_event_data_offsets_ipi_send_cpumask { + u32 cpumask; + const void *cpumask_ptr_; +}; + +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_irq_t; + +typedef struct { + void *lock; +} class_preempt_t; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; + +typedef struct { + raw_spinlock_t *lock; + unsigned long flags; +} class_raw_spinlock_irqsave_t; + +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; + +typedef struct task_struct *class_find_get_task_t; + +typedef struct { + void *lock; + unsigned long flags; +} class_irqsave_t; + +typedef struct { + struct rq *lock; + struct rq *lock2; +} class_double_rq_lock_t; + +struct set_affinity_pending; + +struct migration_arg { + struct task_struct *task; + int dest_cpu; + struct set_affinity_pending *pending; +}; + +struct set_affinity_pending { + refcount_t refs; + unsigned int stop_pending; + struct completion done; + struct cpu_stop_work stop_work; + struct migration_arg arg; +}; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irq_t; + +struct trace_event_data_offsets_sched_kthread_stop {}; + +struct trace_event_data_offsets_sched_kthread_stop_ret {}; + +struct trace_event_data_offsets_sched_kthread_work_queue_work {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_start {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_end {}; + +struct trace_event_data_offsets_sched_wakeup_template {}; + +struct trace_event_data_offsets_sched_switch {}; + +struct trace_event_data_offsets_sched_migrate_task {}; + +struct trace_event_data_offsets_sched_process_template {}; + +struct trace_event_data_offsets_sched_process_wait {}; + +struct trace_event_data_offsets_sched_process_fork {}; + +struct trace_event_data_offsets_sched_stat_runtime {}; + +struct trace_event_data_offsets_sched_pi_setprio {}; + +struct trace_event_data_offsets_sched_process_hang {}; + +struct trace_event_data_offsets_sched_move_numa {}; + +struct trace_event_data_offsets_sched_numa_pair_template {}; + +struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; + +struct trace_event_data_offsets_ipi_send_cpu {}; + +struct trace_event_data_offsets_ipi_handler {}; + +typedef int (*tg_visitor)(struct task_group *, void *); + +typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); + +typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); + +typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); + +struct vfree_deferred { + struct llist_head list; + struct work_struct wq; +}; + +struct vmap_block_queue { + spinlock_t lock; + struct list_head free; + struct xarray vmap_blocks; +}; + +struct vmap_pool { + struct list_head head; + unsigned long len; +}; + +struct rb_list { + struct rb_root root; + struct list_head head; + spinlock_t lock; +}; + +struct vmap_node { + struct vmap_pool pool[256]; + spinlock_t pool_lock; + bool skip_populate; + struct rb_list busy; + struct rb_list lazy; + struct list_head purge_list; + struct work_struct purge_work; + unsigned long nr_purged; +}; + +struct vmap_area { + unsigned long va_start; + unsigned long va_end; + struct rb_node rb_node; + struct list_head list; + union { + unsigned long subtree_max_size; + struct vm_struct *vm; + }; + unsigned long flags; +}; + +enum fit_type { + NOTHING_FIT = 0, + FL_FIT_TYPE = 1, + LE_FIT_TYPE = 2, + RE_FIT_TYPE = 3, + NE_FIT_TYPE = 4, +}; + +typedef unsigned int kasan_vmalloc_flags_t; + +struct trace_event_raw_alloc_vmap_area { + struct trace_entry ent; + unsigned long addr; + unsigned long size; + unsigned long align; + unsigned long vstart; + unsigned long vend; + int failed; + char __data[0]; +}; + +struct trace_event_raw_purge_vmap_area_lazy { + struct trace_entry ent; + unsigned long start; + unsigned long end; + unsigned int npurged; + char __data[0]; +}; + +struct trace_event_raw_free_vmap_area_noflush { + struct trace_entry ent; + unsigned long va_start; + unsigned long nr_lazy; + unsigned long nr_lazy_max; + char __data[0]; +}; + +struct vmap_block { + spinlock_t lock; + struct vmap_area *va; + unsigned long free; + unsigned long dirty; + unsigned long used_map[4]; + unsigned long dirty_min; + unsigned long dirty_max; + struct list_head free_list; + struct callback_head callback_head; + struct list_head purge; +}; + +struct trace_event_data_offsets_alloc_vmap_area {}; + +struct trace_event_data_offsets_purge_vmap_area_lazy {}; + +struct trace_event_data_offsets_free_vmap_area_noflush {}; + +struct fuse_ioctl_out { + int32_t result; + uint32_t flags; + uint32_t in_iovs; + uint32_t out_iovs; +}; + +struct fuse_ioctl_iovec { + uint64_t base; + uint64_t len; +}; + +struct fuse_ioctl_in { + uint64_t fh; + uint32_t flags; + uint32_t cmd; + uint64_t arg; + uint32_t in_size; + uint32_t out_size; +}; + +struct drbg_state; + +struct drbg_state_ops { + int (*update)(struct drbg_state *, struct list_head *, int); + int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *); + int (*crypto_init)(struct drbg_state *); + int (*crypto_fini)(struct drbg_state *); +}; + +enum drbg_seed_state { + DRBG_SEED_STATE_UNSEEDED = 0, + DRBG_SEED_STATE_PARTIAL = 1, + DRBG_SEED_STATE_FULL = 2, +}; + +struct drbg_string { + const unsigned char *buf; + size_t len; + struct list_head list; +}; + +struct drbg_core; + +struct drbg_state { + struct mutex drbg_mutex; + unsigned char *V; + unsigned char *Vbuf; + unsigned char *C; + unsigned char *Cbuf; + size_t reseed_ctr; + size_t reseed_threshold; + unsigned char *scratchpad; + unsigned char *scratchpadbuf; + void *priv_data; + struct crypto_skcipher *ctr_handle; + struct skcipher_request *ctr_req; + __u8 *outscratchpadbuf; + __u8 *outscratchpad; + struct crypto_wait ctr_wait; + struct scatterlist sg_in; + struct scatterlist sg_out; + enum drbg_seed_state seeded; + unsigned long last_seed_time; + bool pr; + bool fips_primed; + unsigned char *prev; + struct crypto_rng *jent; + const struct drbg_state_ops *d_ops; + const struct drbg_core *core; + struct drbg_string test_data; +}; + +typedef uint32_t drbg_flag_t; + +struct drbg_core { + drbg_flag_t flags; + __u8 statelen; + __u8 blocklen_bytes; + char cra_name[128]; + char backend_cra_name[128]; +}; + +enum drbg_prefixes { + DRBG_PREFIX0 = 0, + DRBG_PREFIX1 = 1, + DRBG_PREFIX2 = 2, + DRBG_PREFIX3 = 3, +}; + +struct sdesc { + struct shash_desc shash; + char ctx[0]; +}; + +struct percentile_stats { + u64 total; + u64 missed; +}; + +struct latency_stat { + union { + struct percentile_stats ps; + struct blk_rq_stat rqs; + }; +}; + +struct iolatency_grp; + +struct child_latency_info { + spinlock_t lock; + u64 last_scale_event; + u64 scale_lat; + u64 nr_samples; + struct iolatency_grp *scale_grp; + atomic_t scale_cookie; +}; + +struct blk_iolatency; + +struct iolatency_grp { + struct blkg_policy_data pd; + struct latency_stat __attribute__((btf_type_tag("percpu"))) *stats; + struct latency_stat cur_stat; + struct blk_iolatency *blkiolat; + unsigned int max_depth; + struct rq_wait rq_wait; + atomic64_t window_start; + atomic_t scale_cookie; + u64 min_lat_nsec; + u64 cur_win_nsec; + u64 lat_avg; + u64 nr_samples; + bool ssd; + struct child_latency_info child_lat; +}; + +struct blk_iolatency { + struct rq_qos rqos; + struct timer_list timer; + bool enabled; + atomic_t enable_cnt; + struct work_struct enable_work; +}; + +struct uni_pagedict { + u16 **uni_pgdir[32]; + unsigned long refcount; + unsigned long sum; + unsigned char *inverse_translations[4]; + u16 *inverse_trans_unicode; +}; + +struct swnode { + struct kobject kobj; + struct fwnode_handle fwnode; + const struct software_node *node; + int id; + struct ida child_ids; + struct list_head entry; + struct list_head children; + struct swnode *parent; + unsigned int allocated: 1; + unsigned int managed: 1; +}; + +struct my_u { + __le64 a; + __le64 b; +}; + +struct queue_entry_priv_usb { + struct urb *urb; +}; + +struct queue_entry_priv_usb_bcn { + struct urb *urb; + unsigned int guardian_data; + struct urb *guardian_urb; +}; + +struct rt2x00_async_read_data { + __le32 reg; + struct usb_ctrlrequest cr; + struct rt2x00_dev *rt2x00dev; + bool (*callback)(struct rt2x00_dev *, int, u32); +}; + +enum serio_event_type { + SERIO_RESCAN_PORT = 0, + SERIO_RECONNECT_PORT = 1, + SERIO_RECONNECT_SUBTREE = 2, + SERIO_REGISTER_PORT = 3, + SERIO_ATTACH_DRIVER = 4, +}; + +struct serio_event { + enum serio_event_type type; + void *object; + struct module *owner; + struct list_head node; +}; + +enum nec_state { + STATE_INACTIVE___9 = 0, + STATE_HEADER_SPACE___4 = 1, + STATE_BIT_PULSE___5 = 2, + STATE_BIT_SPACE___5 = 3, + STATE_TRAILER_PULSE___4 = 4, + STATE_TRAILER_SPACE___4 = 5, +}; + +typedef int (*cppc_mode_transition_fn)(int); + +enum amd_pstate_mode { + AMD_PSTATE_UNDEFINED = 0, + AMD_PSTATE_DISABLE = 1, + AMD_PSTATE_PASSIVE = 2, + AMD_PSTATE_ACTIVE = 3, + AMD_PSTATE_GUIDED = 4, + AMD_PSTATE_MAX = 5, +}; + +struct amd_aperf_mperf { + u64 aperf; + u64 mperf; + u64 tsc; +}; + +struct amd_cpudata { + int cpu; + struct freq_qos_request req[2]; + u64 cppc_req_cached; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_nonlinear_perf; + u32 lowest_perf; + u32 prefcore_ranking; + u32 min_limit_perf; + u32 max_limit_perf; + u32 min_limit_freq; + u32 max_limit_freq; + u32 max_freq; + u32 min_freq; + u32 nominal_freq; + u32 lowest_nonlinear_freq; + struct amd_aperf_mperf cur; + struct amd_aperf_mperf prev; + u64 freq; + bool boost_supported; + bool hw_prefcore; + s16 epp_policy; + s16 epp_cached; + u32 policy; + u64 cppc_cap1_cached; + bool suspended; +}; + +typedef void (*btf_trace_bpf_trigger_tp)(void *, int); + +typedef void (*btf_trace_bpf_test_finish)(void *, int *); + +struct bpf_test_timer { + enum { + NO_PREEMPT = 0, + NO_MIGRATE = 1, + } mode; + u32 i; + u64 time_start; + u64 time_spent; +}; + +struct bpf_fentry_test_t { + struct bpf_fentry_test_t *a; +}; + +struct trace_event_raw_bpf_trigger_tp { + struct trace_entry ent; + int nonce; + char __data[0]; +}; + +struct trace_event_raw_bpf_test_finish { + struct trace_entry ent; + int err; + char __data[0]; +}; + +struct xdp_test_data { + struct xdp_buff *orig_ctx; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info rxq; + struct net_device *dev; + struct page_pool *pp; + struct xdp_frame **frames; + struct sk_buff **skbs; + struct xdp_mem_info mem; + u32 batch_size; + u32 frame_cnt; + long: 64; + long: 64; +}; + +struct xdp_page_head { + struct xdp_buff orig_ctx; + struct xdp_buff ctx; + union { + struct { + struct {} __empty_frame; + struct xdp_frame frame[0]; + }; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; +}; + +struct trace_event_data_offsets_bpf_trigger_tp {}; + +struct trace_event_data_offsets_bpf_test_finish {}; + +struct prog_test_member1 { + int a; +}; + +struct prog_test_member { + struct prog_test_member1 m; + int c; +}; + +struct prog_test_ref_kfunc { + int a; + int b; + struct prog_test_member memb; + struct prog_test_ref_kfunc *next; + refcount_t cnt; +}; + +struct bpf_raw_tp_test_run_info { + struct bpf_prog *prog; + void *ctx; + u32 retval; +}; + +enum nft_objref_attributes { + NFTA_OBJREF_UNSPEC = 0, + NFTA_OBJREF_IMM_TYPE = 1, + NFTA_OBJREF_IMM_NAME = 2, + NFTA_OBJREF_SET_SREG = 3, + NFTA_OBJREF_SET_NAME = 4, + NFTA_OBJREF_SET_ID = 5, + __NFTA_OBJREF_MAX = 6, +}; + +struct nft_objref_map { + struct nft_set *set; + u8 sreg; + struct nft_set_binding binding; +}; + +struct rate_control_alg { + struct list_head list; + const struct rate_control_ops *ops; +}; + +struct cpuid_bit { + u16 feature; + u8 reg; + u8 bit; + u32 level; + u32 sub_leaf; +}; + +struct x86_topology_system { + unsigned int dom_shifts[7]; + unsigned int dom_size[7]; +}; + +struct topo_scan { + struct cpuinfo_x86 *c; + unsigned int dom_shifts[7]; + unsigned int dom_ncpus[7]; + unsigned int ebx1_nproc_shift; + u16 amd_nodes_per_pkg; + u16 amd_node_id; +}; + +enum topo_types { + INVALID_TYPE = 0, + SMT_TYPE = 1, + CORE_TYPE = 2, + MAX_TYPE_0B = 3, + MODULE_TYPE = 3, + TILE_TYPE = 4, + DIE_TYPE = 5, + DIEGRP_TYPE = 6, + MAX_TYPE_1F = 7, +}; + +struct pcpu_hot { + union { + struct { + struct task_struct *current_task; + int preempt_count; + int cpu_number; + unsigned long top_of_stack; + void *hardirq_stack_ptr; + u16 softirq_pending; + bool hardirq_stack_inuse; + }; + u8 pad[64]; + }; +}; + +struct fixed_percpu_data { + char gs_base[40]; + unsigned long stack_canary; +}; + +struct cpuid_dependent_feature { + u32 feature; + u32 level; +}; + +struct ppin_info { + int feature; + int msr_ppin_ctl; + int msr_ppin; +}; + +typedef void (*btf_trace_lock_acquire)(void *, struct lockdep_map *, unsigned int, int, int, int, struct lockdep_map *, unsigned long); + +typedef void (*btf_trace_lock_release)(void *, struct lockdep_map *, unsigned long); + +typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); + +typedef void (*btf_trace_contention_end)(void *, void *, int); + +struct trace_event_raw_lock_acquire { + struct trace_entry ent; + unsigned int flags; + u32 __data_loc_name; + void *lockdep_addr; + char __data[0]; +}; + +struct trace_event_raw_lock { + struct trace_entry ent; + u32 __data_loc_name; + void *lockdep_addr; + char __data[0]; +}; + +struct trace_event_raw_contention_begin { + struct trace_entry ent; + void *lock_addr; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_contention_end { + struct trace_entry ent; + void *lock_addr; + int ret; + char __data[0]; +}; + +struct trace_event_data_offsets_lock_acquire { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_lock { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_contention_begin {}; + +struct trace_event_data_offsets_contention_end {}; + +enum ring_buffer_type { + RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28, + RINGBUF_TYPE_PADDING = 29, + RINGBUF_TYPE_TIME_EXTEND = 30, + RINGBUF_TYPE_TIME_STAMP = 31, +}; + +enum { + RB_LEN_TIME_EXTEND = 8, + RB_LEN_TIME_STAMP = 8, +}; + +enum { + RB_CTX_TRANSITION = 0, + RB_CTX_NMI = 1, + RB_CTX_IRQ = 2, + RB_CTX_SOFTIRQ = 3, + RB_CTX_NORMAL = 4, + RB_CTX_MAX = 5, +}; + +enum { + RB_ADD_STAMP_NONE = 0, + RB_ADD_STAMP_EXTEND = 2, + RB_ADD_STAMP_ABSOLUTE = 4, + RB_ADD_STAMP_FORCE = 8, +}; + +struct buffer_data_page; + +struct buffer_page { + struct list_head list; + local_t write; + unsigned int read; + local_t entries; + unsigned long real_end; + unsigned int order; + struct buffer_data_page *page; +}; + +struct buffer_data_page { + u64 time_stamp; + local_t commit; + unsigned char data[0]; +}; + +struct ring_buffer_per_cpu; + +struct ring_buffer_iter { + struct ring_buffer_per_cpu *cpu_buffer; + unsigned long head; + unsigned long next_event; + struct buffer_page *head_page; + struct buffer_page *cache_reader_page; + unsigned long cache_read; + unsigned long cache_pages_removed; + u64 read_stamp; + u64 page_stamp; + struct ring_buffer_event *event; + size_t event_size; + int missed_events; +}; + +struct rb_time_struct { + local64_t time; +}; + +typedef struct rb_time_struct rb_time_t; + +struct rb_irq_work { + struct irq_work work; + wait_queue_head_t waiters; + wait_queue_head_t full_waiters; + atomic_t seq; + bool waiters_pending; + bool full_waiters_pending; + bool wakeup_full; +}; + +struct ring_buffer_per_cpu { + int cpu; + atomic_t record_disabled; + atomic_t resize_disabled; + struct trace_buffer *buffer; + raw_spinlock_t reader_lock; + arch_spinlock_t lock; + struct lock_class_key lock_key; + struct buffer_data_page *free_page; + unsigned long nr_pages; + unsigned int current_context; + struct list_head *pages; + struct buffer_page *head_page; + struct buffer_page *tail_page; + struct buffer_page *commit_page; + struct buffer_page *reader_page; + unsigned long lost_events; + unsigned long last_overrun; + unsigned long nest; + local_t entries_bytes; + local_t entries; + local_t overrun; + local_t commit_overrun; + local_t dropped_events; + local_t committing; + local_t commits; + local_t pages_touched; + local_t pages_lost; + local_t pages_read; + long last_pages_touch; + size_t shortest_full; + unsigned long read; + unsigned long read_bytes; + rb_time_t write_stamp; + rb_time_t before_stamp; + u64 event_stamp[5]; + u64 read_stamp; + unsigned long pages_removed; + long nr_pages_to_update; + struct list_head new_pages; + struct work_struct update_pages_work; + struct completion update_done; + struct rb_irq_work irq_work; +}; + +struct trace_buffer { + unsigned int flags; + int cpus; + atomic_t record_disabled; + atomic_t resizing; + cpumask_var_t cpumask; + struct lock_class_key *reader_lock_key; + struct mutex mutex; + struct ring_buffer_per_cpu **buffers; + struct hlist_node node; + u64 (*clock)(); + struct rb_irq_work irq_work; + bool time_stamp_abs; + unsigned int subbuf_size; + unsigned int subbuf_order; + unsigned int max_data_size; +}; + +struct rb_event_info { + u64 ts; + u64 delta; + u64 before; + u64 after; + unsigned long length; + struct buffer_page *tail_page; + int add_timestamp; +}; + +struct buffer_data_read_page { + unsigned int order; + struct buffer_data_page *data; +}; + +struct rb_wait_data { + struct rb_irq_work *irq_work; + int seq; +}; + +struct f_owner_ex { + int type; + __kernel_pid_t pid; +}; + +typedef struct { + __le32 a_version; +} ext4_acl_header; + +typedef struct { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +} ext4_acl_entry; + +struct ahash_alg { + int (*init)(struct ahash_request *); + int (*update)(struct ahash_request *); + int (*final)(struct ahash_request *); + int (*finup)(struct ahash_request *); + int (*digest)(struct ahash_request *); + int (*export)(struct ahash_request *, void *); + int (*import)(struct ahash_request *, const void *); + int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_ahash *); + void (*exit_tfm)(struct crypto_ahash *); + int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); + struct hash_alg_common halg; +}; + +struct ahash_instance { + void (*free)(struct ahash_instance *); + union { + struct { + char head[96]; + struct crypto_instance base; + } s; + struct ahash_alg alg; + }; +}; + +struct crypto_hash_walk { + char *data; + unsigned int offset; + unsigned int flags; + struct page *pg; + unsigned int entrylen; + unsigned int total; + struct scatterlist *sg; +}; + +typedef enum { + search_hashChain = 0, + search_binaryTree = 1, + search_rowHash = 2, +} searchMethod_e; + +typedef U64 ZSTD_VecMask; + +struct lpi_constraints { + acpi_handle handle; + int min_dstate; +}; + +struct amd_lps0_hid_device_data { + const bool check_off_by_one; +}; + +struct acpi_s2idle_dev_ops { + struct list_head list_node; + void (*prepare)(); + void (*check)(); + void (*restore)(); +}; + +struct lpi_device_constraint_amd { + char *name; + int enabled; + int function_states; + int min_dstate; +}; + +struct lpi_device_info { + char *name; + int enabled; + union acpi_object *package; +}; + +struct lpi_device_constraint { + int uid; + int min_dstate; + int function_states; +}; + +struct aggregate_device; + +struct component { + struct list_head node; + struct aggregate_device *adev; + bool bound; + const struct component_ops *ops; + int subcomponent; + struct device *dev; +}; + +struct component_master_ops; + +struct component_match; + +struct aggregate_device { + struct list_head node; + bool bound; + const struct component_master_ops *ops; + struct device *parent; + struct component_match *match; +}; + +struct component_master_ops { + int (*bind)(struct device *); + void (*unbind)(struct device *); +}; + +struct component_match_array; + +struct component_match { + size_t alloc; + size_t num; + struct component_match_array *compare; +}; + +struct component_match_array { + void *data; + int (*compare)(struct device *, void *); + int (*compare_typed)(struct device *, int, void *); + void (*release)(struct device *, void *); + struct component *component; + bool duplicate; +}; + +struct ata_internal { + struct scsi_transport_template t; + struct device_attribute private_port_attrs[3]; + struct device_attribute private_link_attrs[3]; + struct device_attribute private_dev_attrs[9]; + struct transport_container link_attr_cont; + struct transport_container dev_attr_cont; + struct device_attribute *link_attrs[4]; + struct device_attribute *port_attrs[4]; + struct device_attribute *dev_attrs[10]; +}; + +struct ata_show_ering_arg { + char *buf; + int written; +}; + +enum iwl_tx_queue_cfg_actions { + TX_QUEUE_CFG_ENABLE_QUEUE = 1, + TX_QUEUE_CFG_TFD_SHORT_FORMAT = 2, +}; + +struct iwl_gen3_bc_tbl_entry { + __le16 tfd_offset; +}; + +struct iwlagn_scd_bc_tbl { + __le16 tfd_offset[320]; +}; + +struct iwl_tx_queue_cfg_rsp { + __le16 queue_number; + __le16 flags; + __le16 write_pointer; + __le16 reserved; +}; + +struct iwl_tx_queue_cfg_cmd { + u8 sta_id; + u8 tid; + __le16 flags; + __le32 cb_size; + __le64 byte_cnt_addr; + __le64 tfdq_addr; +}; + +enum usb_dr_mode { + USB_DR_MODE_UNKNOWN = 0, + USB_DR_MODE_HOST = 1, + USB_DR_MODE_PERIPHERAL = 2, + USB_DR_MODE_OTG = 3, +}; + +struct ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; +}; + +enum i8042_controller_reset_mode { + I8042_RESET_NEVER = 0, + I8042_RESET_ALWAYS = 1, + I8042_RESET_ON_S2RAM = 2, +}; + +struct i8042_port { + struct serio *serio; + int irq; + bool exists; + bool driver_bound; + signed char mux; +}; + +struct crypt_config; + +struct dm_crypt_request; + +struct crypt_iv_operations { + int (*ctr)(struct crypt_config *, struct dm_target *, const char *); + void (*dtr)(struct crypt_config *); + int (*init)(struct crypt_config *); + int (*wipe)(struct crypt_config *); + int (*generator)(struct crypt_config *, u8 *, struct dm_crypt_request *); + int (*post)(struct crypt_config *, u8 *, struct dm_crypt_request *); +}; + +struct iv_benbi_private { + int shift; +}; + +struct iv_lmk_private { + struct crypto_shash *hash_tfm; + u8 *seed; +}; + +struct iv_tcw_private { + struct crypto_shash *crc32_tfm; + u8 *iv_seed; + u8 *whitening; +}; + +struct iv_elephant_private { + struct crypto_skcipher *tfm; +}; + +struct crypt_config { + struct dm_dev *dev; + sector_t start; + struct percpu_counter n_allocated_pages; + struct workqueue_struct *io_queue; + struct workqueue_struct *crypt_queue; + spinlock_t write_thread_lock; + struct task_struct *write_thread; + struct rb_root write_tree; + char *cipher_string; + char *cipher_auth; + char *key_string; + const struct crypt_iv_operations *iv_gen_ops; + union { + struct iv_benbi_private benbi; + struct iv_lmk_private lmk; + struct iv_tcw_private tcw; + struct iv_elephant_private elephant; + } iv_gen_private; + u64 iv_offset; + unsigned int iv_size; + unsigned short sector_size; + unsigned char sector_shift; + union { + struct crypto_skcipher **tfms; + struct crypto_aead **tfms_aead; + } cipher_tfm; + unsigned int tfms_count; + unsigned long cipher_flags; + unsigned int dmreq_start; + unsigned int per_bio_data_size; + unsigned long flags; + unsigned int key_size; + unsigned int key_parts; + unsigned int key_extra_size; + unsigned int key_mac_size; + unsigned int integrity_tag_size; + unsigned int integrity_iv_size; + unsigned int on_disk_tag_size; + unsigned int tag_pool_max_sectors; + mempool_t tag_pool; + mempool_t req_pool; + mempool_t page_pool; + struct bio_set bs; + struct mutex bio_alloc_lock; + u8 *authenc_key; + u8 key[0]; +}; + +struct convert_context; + +struct dm_crypt_request { + struct convert_context *ctx; + struct scatterlist sg_in[4]; + struct scatterlist sg_out[4]; + u64 iv_sector; +}; + +struct convert_context { + struct completion restart; + struct bio *bio_in; + struct bvec_iter iter_in; + struct bio *bio_out; + struct bvec_iter iter_out; + atomic_t cc_pending; + u64 cc_sector; + union { + struct skcipher_request *req; + struct aead_request *req_aead; + } r; + bool aead_recheck; + bool aead_failed; +}; + +enum flags { + DM_CRYPT_SUSPENDED = 0, + DM_CRYPT_KEY_VALID = 1, + DM_CRYPT_SAME_CPU = 2, + DM_CRYPT_NO_OFFLOAD = 3, + DM_CRYPT_NO_READ_WORKQUEUE = 4, + DM_CRYPT_NO_WRITE_WORKQUEUE = 5, + DM_CRYPT_WRITE_INLINE = 6, +}; + +enum cipher_flags { + CRYPT_MODE_INTEGRITY_AEAD = 0, + CRYPT_IV_LARGE_SECTORS = 1, + CRYPT_ENCRYPT_PREPROCESS = 2, +}; + +struct dm_crypt_io { + struct crypt_config *cc; + struct bio *base_bio; + u8 *integrity_metadata; + bool integrity_metadata_from_pool: 1; + struct work_struct work; + struct convert_context ctx; + atomic_t io_pending; + blk_status_t error; + sector_t sector; + struct bvec_iter saved_bi_iter; + struct rb_node rb_node; +}; + +struct bio_integrity_payload { + struct bio *bip_bio; + struct bvec_iter bip_iter; + unsigned short bip_vcnt; + unsigned short bip_max_vcnt; + unsigned short bip_flags; + int: 0; + struct bvec_iter bio_iter; + struct work_struct bip_work; + struct bio_vec *bip_vec; + struct bio_vec bip_inline_vecs[0]; +}; + +struct md5_state { + u32 hash[4]; + u32 block[16]; + u64 byte_count; +}; + +enum { + ETHTOOL_A_WOL_UNSPEC = 0, + ETHTOOL_A_WOL_HEADER = 1, + ETHTOOL_A_WOL_MODES = 2, + ETHTOOL_A_WOL_SOPASS = 3, + __ETHTOOL_A_WOL_CNT = 4, + ETHTOOL_A_WOL_MAX = 3, +}; + +struct wol_reply_data { + struct ethnl_reply_data base; + struct ethtool_wolinfo wol; + bool show_sopass; +}; + +struct tcpvegas_info { + __u32 tcpv_enabled; + __u32 tcpv_rttcnt; + __u32 tcpv_rtt; + __u32 tcpv_minrtt; +}; + +struct tcp_dctcp_info { + __u16 dctcp_enabled; + __u16 dctcp_ce_state; + __u32 dctcp_alpha; + __u32 dctcp_ab_ecn; + __u32 dctcp_ab_tot; +}; + +struct tcp_bbr_info { + __u32 bbr_bw_lo; + __u32 bbr_bw_hi; + __u32 bbr_min_rtt; + __u32 bbr_pacing_gain; + __u32 bbr_cwnd_gain; +}; + +union tcp_cc_info { + struct tcpvegas_info vegas; + struct tcp_dctcp_info dctcp; + struct tcp_bbr_info bbr; +}; + +enum { + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, +}; + +enum { + BPF_TCP_ESTABLISHED = 1, + BPF_TCP_SYN_SENT = 2, + BPF_TCP_SYN_RECV = 3, + BPF_TCP_FIN_WAIT1 = 4, + BPF_TCP_FIN_WAIT2 = 5, + BPF_TCP_TIME_WAIT = 6, + BPF_TCP_CLOSE = 7, + BPF_TCP_CLOSE_WAIT = 8, + BPF_TCP_LAST_ACK = 9, + BPF_TCP_LISTEN = 10, + BPF_TCP_CLOSING = 11, + BPF_TCP_NEW_SYN_RECV = 12, + BPF_TCP_BOUND_INACTIVE = 13, + BPF_TCP_MAX_STATES = 14, +}; + +enum { + TCP_NLA_PAD = 0, + TCP_NLA_BUSY = 1, + TCP_NLA_RWND_LIMITED = 2, + TCP_NLA_SNDBUF_LIMITED = 3, + TCP_NLA_DATA_SEGS_OUT = 4, + TCP_NLA_TOTAL_RETRANS = 5, + TCP_NLA_PACING_RATE = 6, + TCP_NLA_DELIVERY_RATE = 7, + TCP_NLA_SND_CWND = 8, + TCP_NLA_REORDERING = 9, + TCP_NLA_MIN_RTT = 10, + TCP_NLA_RECUR_RETRANS = 11, + TCP_NLA_DELIVERY_RATE_APP_LMT = 12, + TCP_NLA_SNDQ_SIZE = 13, + TCP_NLA_CA_STATE = 14, + TCP_NLA_SND_SSTHRESH = 15, + TCP_NLA_DELIVERED = 16, + TCP_NLA_DELIVERED_CE = 17, + TCP_NLA_BYTES_SENT = 18, + TCP_NLA_BYTES_RETRANS = 19, + TCP_NLA_DSACK_DUPS = 20, + TCP_NLA_REORD_SEEN = 21, + TCP_NLA_SRTT = 22, + TCP_NLA_TIMEOUT_REHASH = 23, + TCP_NLA_BYTES_NOTSENT = 24, + TCP_NLA_EDT = 25, + TCP_NLA_TTL = 26, + TCP_NLA_REHASH = 27, +}; + +struct tcp_splice_state { + struct pipe_inode_info *pipe; + size_t len; + unsigned int flags; +}; + +struct tcp_info { + __u8 tcpi_state; + __u8 tcpi_ca_state; + __u8 tcpi_retransmits; + __u8 tcpi_probes; + __u8 tcpi_backoff; + __u8 tcpi_options; + __u8 tcpi_snd_wscale: 4; + __u8 tcpi_rcv_wscale: 4; + __u8 tcpi_delivery_rate_app_limited: 1; + __u8 tcpi_fastopen_client_fail: 2; + __u32 tcpi_rto; + __u32 tcpi_ato; + __u32 tcpi_snd_mss; + __u32 tcpi_rcv_mss; + __u32 tcpi_unacked; + __u32 tcpi_sacked; + __u32 tcpi_lost; + __u32 tcpi_retrans; + __u32 tcpi_fackets; + __u32 tcpi_last_data_sent; + __u32 tcpi_last_ack_sent; + __u32 tcpi_last_data_recv; + __u32 tcpi_last_ack_recv; + __u32 tcpi_pmtu; + __u32 tcpi_rcv_ssthresh; + __u32 tcpi_rtt; + __u32 tcpi_rttvar; + __u32 tcpi_snd_ssthresh; + __u32 tcpi_snd_cwnd; + __u32 tcpi_advmss; + __u32 tcpi_reordering; + __u32 tcpi_rcv_rtt; + __u32 tcpi_rcv_space; + __u32 tcpi_total_retrans; + __u64 tcpi_pacing_rate; + __u64 tcpi_max_pacing_rate; + __u64 tcpi_bytes_acked; + __u64 tcpi_bytes_received; + __u32 tcpi_segs_out; + __u32 tcpi_segs_in; + __u32 tcpi_notsent_bytes; + __u32 tcpi_min_rtt; + __u32 tcpi_data_segs_in; + __u32 tcpi_data_segs_out; + __u64 tcpi_delivery_rate; + __u64 tcpi_busy_time; + __u64 tcpi_rwnd_limited; + __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; + __u32 tcpi_rcv_ooopack; + __u32 tcpi_snd_wnd; + __u32 tcpi_rcv_wnd; + __u32 tcpi_rehash; + __u16 tcpi_total_rto; + __u16 tcpi_total_rto_recoveries; + __u32 tcpi_total_rto_time; +}; + +struct tcp_zerocopy_receive { + __u64 address; + __u32 length; + __u32 recv_skip_hint; + __u32 inq; + __s32 err; + __u64 copybuf_address; + __s32 copybuf_len; + __u32 flags; + __u64 msg_control; + __u64 msg_controllen; + __u32 msg_flags; + __u32 reserved; +}; + +struct tcp_repair_opt { + __u32 opt_code; + __u32 opt_val; +}; + +struct tcp_repair_window { + __u32 snd_wl1; + __u32 snd_wnd; + __u32 max_window; + __u32 rcv_wnd; + __u32 rcv_wup; +}; + +struct static_key_false_deferred { + struct static_key_false key; + unsigned long timeout; + struct delayed_work work; +}; + +struct ip6fl_iter_state { + struct seq_net_private p; + struct pid_namespace *pid_ns; + int bucket; +}; + +struct change_member { + struct e820_entry *entry; + unsigned long long addr; +}; + +enum { + HIBERNATION_INVALID = 0, + HIBERNATION_PLATFORM = 1, + HIBERNATION_SHUTDOWN = 2, + HIBERNATION_REBOOT = 3, + HIBERNATION_SUSPEND = 4, + HIBERNATION_TEST_RESUME = 5, + __HIBERNATION_AFTER_LAST = 6, +}; + +struct vm_event_state { + unsigned long event[98]; +}; + +struct contig_page_info { + unsigned long free_pages; + unsigned long free_blocks_total; + unsigned long free_blocks_suitable; +}; + +struct statfs { + __kernel_long_t f_type; + __kernel_long_t f_bsize; + __kernel_long_t f_blocks; + __kernel_long_t f_bfree; + __kernel_long_t f_bavail; + __kernel_long_t f_files; + __kernel_long_t f_ffree; + __kernel_fsid_t f_fsid; + __kernel_long_t f_namelen; + __kernel_long_t f_frsize; + __kernel_long_t f_flags; + __kernel_long_t f_spare[4]; +}; + +struct statfs64 { + __kernel_long_t f_type; + __kernel_long_t f_bsize; + __u64 f_blocks; + __u64 f_bfree; + __u64 f_bavail; + __u64 f_files; + __u64 f_ffree; + __kernel_fsid_t f_fsid; + __kernel_long_t f_namelen; + __kernel_long_t f_frsize; + __kernel_long_t f_flags; + __kernel_long_t f_spare[4]; +}; + +typedef int __kernel_daddr_t; + +struct ustat { + __kernel_daddr_t f_tfree; + unsigned long f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +struct sysctl_alias { + const char *kernel_param; + const char *sysctl_param; +}; + +struct btrfs_feature_attr { + struct kobj_attribute kobj_attr; + enum btrfs_feature_set feature_set; + u64 feature_bit; +}; + +struct raid_kobject { + u64 flags; + struct kobject kobj; +}; + +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, +}; + +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, +}; + +struct io_stats_per_prio { + uint32_t inserted; + uint32_t merged; + uint32_t dispatched; + atomic_t completed; +}; + +struct dd_per_prio { + struct list_head dispatch; + struct rb_root sort_list[2]; + struct list_head fifo_list[2]; + sector_t latest_pos[2]; + struct io_stats_per_prio stats; +}; + +struct deadline_data { + struct dd_per_prio per_prio[3]; + enum dd_data_dir last_dir; + unsigned int batching; + unsigned int starved; + int fifo_expire[2]; + int fifo_batch; + int writes_starved; + int front_merges; + u32 async_depth; + int prio_aging_expire; + spinlock_t lock; + spinlock_t zone_lock; +}; + +enum { + IORING_MSG_DATA = 0, + IORING_MSG_SEND_FD = 1, +}; + +struct io_msg { + struct file *file; + struct file *src_file; + struct callback_head tw; + u64 user_data; + u32 len; + u32 cmd; + u32 src_fd; + union { + u32 dst_fd; + u32 cqe_flags; + }; + u32 flags; +}; + +struct pci_bus_resource { + struct list_head list; + struct resource *res; + unsigned int flags; +}; + +enum { + MATCH_MTR = 0, + MATCH_MEQ = 1, + MATCH_MLE = 2, + MATCH_MLT = 3, + MATCH_MGE = 4, + MATCH_MGT = 5, +}; + +struct acpi_device_walk_info { + struct acpi_table_desc *table_desc; + struct acpi_evaluate_info *evaluate_info; + u32 device_count; + u32 num_STA; + u32 num_INI; +}; + +struct pnp_fixup { + char id[7]; + void (*quirk_function)(struct pnp_dev *); +}; + +typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); + +struct ata_scsi_args { + struct ata_device *dev; + u16 *id; + struct scsi_cmnd *cmd; +}; + +enum { + TX_STATUS_SUCCESS___2 = 1, + TX_STATUS_DIRECT_DONE___2 = 2, + TX_STATUS_POSTPONE_DELAY___2 = 64, + TX_STATUS_POSTPONE_FEW_BYTES___2 = 65, + TX_STATUS_POSTPONE_BT_PRIO___2 = 66, + TX_STATUS_POSTPONE_QUIET_PERIOD___2 = 67, + TX_STATUS_POSTPONE_CALC_TTAK___2 = 68, + TX_STATUS_FAIL_INTERNAL_CROSSED_RETRY___2 = 129, + TX_STATUS_FAIL_SHORT_LIMIT___2 = 130, + TX_STATUS_FAIL_LONG_LIMIT___2 = 131, + TX_STATUS_FAIL_FIFO_UNDERRUN = 132, + TX_STATUS_FAIL_DRAIN_FLOW___2 = 133, + TX_STATUS_FAIL_RFKILL_FLUSH___2 = 134, + TX_STATUS_FAIL_LIFE_EXPIRE___2 = 135, + TX_STATUS_FAIL_DEST_PS___2 = 136, + TX_STATUS_FAIL_HOST_ABORTED___2 = 137, + TX_STATUS_FAIL_BT_RETRY___2 = 138, + TX_STATUS_FAIL_STA_INVALID___2 = 139, + TX_STATUS_FAIL_FRAG_DROPPED___2 = 140, + TX_STATUS_FAIL_TID_DISABLE___2 = 141, + TX_STATUS_FAIL_FIFO_FLUSHED___2 = 142, + TX_STATUS_FAIL_INSUFFICIENT_CF_POLL = 143, + TX_STATUS_FAIL_PASSIVE_NO_RX = 144, + TX_STATUS_FAIL_NO_BEACON_ON_RADAR = 145, +}; + +enum { + AGG_TX_STATE_TRANSMITTED = 0, + AGG_TX_STATE_UNDERRUN_MSK = 1, + AGG_TX_STATE_BT_PRIO_MSK = 2, + AGG_TX_STATE_FEW_BYTES_MSK = 4, + AGG_TX_STATE_ABORT_MSK = 8, + AGG_TX_STATE_LAST_SENT_TTL_MSK = 16, + AGG_TX_STATE_LAST_SENT_TRY_CNT_MSK = 32, + AGG_TX_STATE_LAST_SENT_BT_KILL_MSK = 64, + AGG_TX_STATE_SCD_QUERY_MSK = 128, + AGG_TX_STATE_TEST_BAD_CRC32_MSK = 256, + AGG_TX_STATE_RESPONSE_MSK = 511, + AGG_TX_STATE_DUMP_TX_MSK = 512, + AGG_TX_STATE_DELAY_TX_MSK = 1024, +}; + +enum { + TX_STATUS_MSK___2 = 255, + TX_STATUS_DELAY_MSK = 64, + TX_STATUS_ABORT_MSK = 128, + TX_PACKET_MODE_MSK = 65280, + TX_FIFO_NUMBER_MSK = 458752, + TX_RESERVED = 7864320, + TX_POWER_PA_DETECT_MSK = 2139095040, + TX_ABORT_REQUIRED_MSK = 2147483648, +}; + +struct iwl_compressed_ba_resp { + __le32 sta_addr_lo32; + __le16 sta_addr_hi16; + __le16 reserved; + u8 sta_id; + u8 tid; + __le16 seq_ctl; + __le64 bitmap; + __le16 scd_flow; + __le16 scd_ssn; + u8 txed; + u8 txed_2_done; + __le16 reserved1; +} __attribute__((packed)); + +enum csi_seg_len { + HAL_CSI_SEG_4K = 0, + HAL_CSI_SEG_8K = 1, + HAL_CSI_SEG_11K = 2, +}; + +struct mu_bfer_init_para { + u16 paid; + u16 csi_para; + u16 my_aid; + enum csi_seg_len csi_length_sel; + u8 bfer_address[6]; +}; + +struct cfg_mumimo_para { + u8 sounding_sts[6]; + u16 grouping_bitmap; + u8 mu_tx_en; + u32 given_gid_tab[2]; + u32 given_user_pos[4]; +}; + +struct dm_rq_target_io; + +struct dm_rq_clone_bio_info { + struct bio *orig; + struct dm_rq_target_io *tio; + struct bio clone; +}; + +struct dm_rq_target_io { + struct mapped_device *md; + struct dm_target *ti; + struct request *orig; + struct request *clone; + struct kthread_work work; + blk_status_t error; + union map_info info; + struct dm_stats_aux stats_aux; + unsigned long duration_jiffies; + unsigned int n_sectors; + unsigned int completed; +}; + +enum { + IF_LINK_MODE_DEFAULT = 0, + IF_LINK_MODE_DORMANT = 1, + IF_LINK_MODE_TESTING = 2, +}; + +enum lw_bits { + LW_URGENT = 0, +}; + +struct arppayload { + unsigned char mac_src[6]; + unsigned char ip_src[4]; + unsigned char mac_dst[6]; + unsigned char ip_dst[4]; +}; + +struct icmp6_filter { + __u32 data[8]; +}; + +struct raw6_sock { + struct inet_sock inet; + __u32 checksum; + __u32 offset; + struct icmp6_filter filter; + __u32 ip6mr_table; + struct ipv6_pinfo inet6; +}; + +struct raw6_frag_vec { + struct msghdr *msg; + int hlen; + char c[4]; +}; + +enum ieee80211_bss_valid_data_flags { + IEEE80211_BSS_VALID_WMM = 2, + IEEE80211_BSS_VALID_RATES = 4, + IEEE80211_BSS_VALID_ERP = 8, +}; + +struct inform_bss_update_data { + struct ieee80211_rx_status *rx_status; + bool beacon; +}; + +typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); + +typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); + +typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); + +typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); + +typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); + +typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); + +enum cgroup_opt_features { + OPT_FEATURE_PRESSURE = 0, + OPT_FEATURE_COUNT = 1, +}; + +enum cfile_flags { + CFILE_HIDDEN = 1, +}; + +enum cgroup2_param { + Opt_nsdelegate = 0, + Opt_favordynmods___2 = 1, + Opt_memory_localevents = 2, + Opt_memory_recursiveprot = 3, + Opt_memory_hugetlb_accounting = 4, + nr__cgroup2_params = 5, +}; + +struct trace_event_raw_cgroup_root { + struct trace_entry ent; + int root; + u16 ss_mask; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_cgroup { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + char __data[0]; +}; + +struct trace_event_raw_cgroup_migrate { + struct trace_entry ent; + int dst_root; + int dst_level; + u64 dst_id; + int pid; + u32 __data_loc_dst_path; + u32 __data_loc_comm; + char __data[0]; +}; + +struct trace_event_raw_cgroup_event { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + int val; + char __data[0]; +}; + +struct trace_event_data_offsets_cgroup_root { + u32 name; + const void *name_ptr_; +}; + +struct trace_event_data_offsets_cgroup { + u32 path; + const void *path_ptr_; +}; + +struct trace_event_data_offsets_cgroup_migrate { + u32 dst_path; + const void *dst_path_ptr_; + u32 comm; + const void *comm_ptr_; +}; + +struct trace_event_data_offsets_cgroup_event { + u32 path; + const void *path_ptr_; +}; + +struct swap_cgroup_ctrl { + struct page **map; + unsigned long length; + spinlock_t lock; +}; + +struct swap_cgroup { + unsigned short id; +}; + +struct epitem; + +struct eventpoll { + struct mutex mtx; + wait_queue_head_t wq; + wait_queue_head_t poll_wait; + struct list_head rdllist; + rwlock_t lock; + struct rb_root_cached rbr; + struct epitem *ovflist; + struct wakeup_source *ws; + struct user_struct *user; + struct file *file; + u64 gen; + struct hlist_head refs; + refcount_t refcount; + unsigned int napi_id; + u32 busy_poll_usecs; + u16 busy_poll_budget; + bool prefer_busy_poll; + u8 nests; +}; + +struct epoll_filefd { + struct file *file; + int fd; +} __attribute__((packed)); + +struct eppoll_entry; + +struct epitem { + union { + struct rb_node rbn; + struct callback_head rcu; + }; + struct list_head rdllink; + struct epitem *next; + struct epoll_filefd ffd; + bool dying; + struct eppoll_entry *pwqlist; + struct eventpoll *ep; + struct hlist_node fllink; + struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; + struct epoll_event event; +}; + +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; +}; + +struct epitems_head { + struct hlist_head epitems; + struct epitems_head *next; +}; + +struct ep_pqueue { + poll_table pt; + struct epitem *epi; +}; + +struct epoll_params { + __u32 busy_poll_usecs; + __u16 busy_poll_budget; + __u8 prefer_busy_poll; + __u8 __pad; +}; + +struct fat_floppy_defaults { + unsigned int nr_sectors; + unsigned int sec_per_clus; + unsigned int dir_entries; + unsigned int media; + unsigned int fat_length; +}; + +enum { + Opt_check_n = 0, + Opt_check_r___2 = 1, + Opt_check_s___2 = 2, + Opt_uid___8 = 3, + Opt_gid___9 = 4, + Opt_umask = 5, + Opt_dmask = 6, + Opt_fmask = 7, + Opt_allow_utime = 8, + Opt_codepage = 9, + Opt_usefree = 10, + Opt_nocase = 11, + Opt_quiet = 12, + Opt_showexec = 13, + Opt_debug___2 = 14, + Opt_immutable = 15, + Opt_dots = 16, + Opt_nodots = 17, + Opt_charset = 18, + Opt_shortname_lower = 19, + Opt_shortname_win95 = 20, + Opt_shortname_winnt = 21, + Opt_shortname_mixed = 22, + Opt_utf8_no = 23, + Opt_utf8_yes = 24, + Opt_uni_xl_no = 25, + Opt_uni_xl_yes = 26, + Opt_nonumtail_no = 27, + Opt_nonumtail_yes = 28, + Opt_obsolete = 29, + Opt_flush = 30, + Opt_tz_utc = 31, + Opt_rodir = 32, + Opt_err_cont = 33, + Opt_err_panic = 34, + Opt_err_ro = 35, + Opt_discard___3 = 36, + Opt_nfs = 37, + Opt_time_offset = 38, + Opt_nfs_stale_rw = 39, + Opt_nfs_nostale_ro = 40, + Opt_err___7 = 41, + Opt_dos1xfloppy = 42, +}; + +struct fat_bios_param_block { + u16 fat_sector_size; + u8 fat_sec_per_clus; + u16 fat_reserved; + u8 fat_fats; + u16 fat_dir_entries; + u16 fat_sectors; + u16 fat_fat_length; + u32 fat_total_sect; + u8 fat16_state; + u32 fat16_vol_id; + u32 fat32_length; + u32 fat32_root_cluster; + u16 fat32_info_sector; + u8 fat32_state; + u32 fat32_vol_id; +}; + +struct rsa_asn1_template { + const char *name; + const u8 *data; + size_t size; +}; + +struct pkcs1pad_inst_ctx { + struct crypto_akcipher_spawn spawn; + const struct rsa_asn1_template *digest_info; +}; + +struct pkcs1pad_ctx { + struct crypto_akcipher *child; + unsigned int key_size; +}; + +struct pkcs1pad_request { + struct scatterlist in_sg[2]; + struct scatterlist out_sg[1]; + uint8_t *in_buf; + uint8_t *out_buf; + struct akcipher_request child_req; +}; + +struct ccm_instance_ctx { + struct crypto_skcipher_spawn ctr; + struct crypto_ahash_spawn mac; +}; + +struct crypto_ccm_req_priv_ctx { + u8 odata[16]; + u8 idata[16]; + u8 auth_tag[16]; + u32 flags; + struct scatterlist src[3]; + struct scatterlist dst[3]; + union { + struct ahash_request ahreq; + struct skcipher_request skreq; + }; +}; + +struct cbcmac_tfm_ctx { + struct crypto_cipher *child; +}; + +struct cbcmac_desc_ctx { + unsigned int len; + u8 dg[0]; +}; + +struct crypto_ccm_ctx { + struct crypto_ahash *mac; + struct crypto_skcipher *ctr; +}; + +struct crypto_rfc4309_ctx { + struct crypto_aead *child; + u8 nonce[3]; +}; + +struct crypto_rfc4309_req_ctx { + struct scatterlist src[3]; + struct scatterlist dst[3]; + struct aead_request subreq; +}; + +struct bsg_device { + struct request_queue *queue; + struct device device; + struct cdev cdev; + int max_queue; + unsigned int timeout; + unsigned int reserved_size; + bsg_sg_io_fn *sg_io_fn; +}; + +struct reciprocal_value_adv { + u32 m; + u8 sh; + u8 exp; + bool is_wide_m; +}; + +struct pci_dev_reset_methods { + u16 vendor; + u16 device; + int (*reset)(struct pci_dev *, bool); +}; + +struct pci_dev_acs_enabled { + u16 vendor; + u16 device; + int (*acs_enabled)(struct pci_dev *, u16); +}; + +struct pci_dev_acs_ops { + u16 vendor; + u16 device; + int (*enable_acs)(struct pci_dev *); + int (*disable_acs_redir)(struct pci_dev *); +}; + +enum { + SWITCHTEC_GAS_MRPC_OFFSET = 0, + SWITCHTEC_GAS_TOP_CFG_OFFSET = 4096, + SWITCHTEC_GAS_SW_EVENT_OFFSET = 6144, + SWITCHTEC_GAS_SYS_INFO_OFFSET = 8192, + SWITCHTEC_GAS_FLASH_INFO_OFFSET = 8704, + SWITCHTEC_GAS_PART_CFG_OFFSET = 16384, + SWITCHTEC_GAS_NTB_OFFSET = 65536, + SWITCHTEC_GAS_PFF_CSR_OFFSET = 1261568, +}; + +enum { + SWITCHTEC_NTB_REG_INFO_OFFSET = 0, + SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, + SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, +}; + +struct pci_fixup { + u16 vendor; + u16 device; + u32 class; + unsigned int class_shift; + int hook_offset; +}; + +struct nt_partition_info { + u32 xlink_enabled; + u32 target_part_low; + u32 target_part_high; + u32 reserved; +}; + +struct ntb_info_regs { + u8 partition_count; + u8 partition_id; + u16 reserved1; + u64 ep_map; + u16 requester_id; + u16 reserved2; + u32 reserved3[4]; + struct nt_partition_info ntp_info[48]; +} __attribute__((packed)); + +struct ntb_ctrl_regs { + u32 partition_status; + u32 partition_op; + u32 partition_ctrl; + u32 bar_setup; + u32 bar_error; + u16 lut_table_entries; + u16 lut_table_offset; + u32 lut_error; + u16 req_id_table_size; + u16 req_id_table_offset; + u32 req_id_error; + u32 reserved1[7]; + struct { + u32 ctl; + u32 win_size; + u64 xlate_addr; + } bar_entry[6]; + struct { + u32 win_size; + u32 reserved[3]; + } bar_ext_entry[6]; + u32 reserved2[192]; + u32 req_id_table[512]; + u32 reserved3[256]; + u64 lut_entry[512]; +}; + +struct ich_laptop { + u16 device; + u16 subvendor; + u16 subdevice; +}; + +struct piix_map_db { + const u32 mask; + const u16 port_enable; + const int map[0]; +}; + +enum piix_controller_ids { + piix_pata_mwdma = 0, + piix_pata_33 = 1, + ich_pata_33 = 2, + ich_pata_66 = 3, + ich_pata_100 = 4, + ich_pata_100_nomwdma1 = 5, + ich5_sata = 6, + ich6_sata = 7, + ich6m_sata = 8, + ich8_sata = 9, + ich8_2port_sata = 10, + ich8m_apple_sata = 11, + tolapai_sata = 12, + piix_pata_vmw = 13, + ich8_sata_snb = 14, + ich8_2port_sata_snb = 15, + ich8_2port_sata_byt = 16, +}; + +enum { + PIIX_IOCFG = 84, + ICH5_PMR = 144, + ICH5_PCS = 146, + PIIX_SIDPR_BAR = 5, + PIIX_SIDPR_LEN = 16, + PIIX_SIDPR_IDX = 0, + PIIX_SIDPR_DATA = 4, + PIIX_FLAG_CHECKINTR = 268435456, + PIIX_FLAG_SIDPR = 536870912, + PIIX_PATA_FLAGS = 1, + PIIX_SATA_FLAGS = 268435458, + PIIX_FLAG_PIO16 = 1073741824, + PIIX_80C_PRI = 48, + PIIX_80C_SEC = 192, + P0 = 0, + P1 = 1, + P2 = 2, + P3 = 3, + IDE = -1, + NA = -2, + RV = -3, + PIIX_AHCI_DEVICE = 6, + PIIX_HOST_BROKEN_SUSPEND = 16777216, +}; + +struct piix_host_priv { + const int *map; + u32 saved_iocfg; + void *sidpr; +}; + +struct iwl_dbg_tlv_ver_data { + int min_ver; + int max_ver; +}; + +enum iwl_fw_ini_config_set_type { + IWL_FW_INI_CONFIG_SET_TYPE_INVALID = 0, + IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_MAC = 1, + IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_PHY = 2, + IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_AUX = 3, + IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_MEMORY = 4, + IWL_FW_INI_CONFIG_SET_TYPE_CSR = 5, + IWL_FW_INI_CONFIG_SET_TYPE_DBGC_DRAM_ADDR = 6, + IWL_FW_INI_CONFIG_SET_TYPE_PERIPH_SCRATCH_HWM = 7, + IWL_FW_INI_CONFIG_SET_TYPE_MAX_NUM = 8, +} __attribute__((mode(byte))); + +struct iwl_dbg_tlv_timer_node { + struct list_head list; + struct timer_list timer; + struct iwl_fw_runtime *fwrt; + struct iwl_ucode_tlv *tlv; +}; + +struct iwl_fw_ini_hcmd { + u8 id; + u8 group; + __le16 reserved; + u8 data[0]; +}; + +struct iwl_fw_ini_hcmd_tlv { + struct iwl_fw_ini_header hdr; + __le32 time_point; + __le32 period_msec; + struct iwl_fw_ini_hcmd hcmd; +}; + +struct iwl_buf_alloc_frag { + __le64 addr; + __le32 size; +} __attribute__((packed)); + +struct iwl_buf_alloc_cmd { + __le32 alloc_id; + __le32 buf_location; + __le32 num_frags; + struct iwl_buf_alloc_frag frags[16]; +}; + +struct iwl_dram_info { + __le32 first_word; + __le32 second_word; + struct iwl_buf_alloc_cmd dram_frags[4]; +}; + +struct iwl_dbgc1_info { + __le32 first_word; + __le32 dbgc1_add_lsb; + __le32 dbgc1_add_msb; + __le32 dbgc1_size; +}; + +struct iwl_fw_ini_addr_val { + __le32 address; + __le32 value; +}; + +struct iwl_fw_ini_conf_set_tlv { + struct iwl_fw_ini_header hdr; + __le32 time_point; + __le32 set_type; + __le32 addr_offset; + struct iwl_fw_ini_addr_val addr_val[0]; +}; + +struct serport { + struct tty_struct *tty; + wait_queue_head_t wait; + struct serio *serio; + struct serio_device_id id; + spinlock_t lock; + unsigned long flags; +}; + +struct cs_policy_dbs_info { + struct policy_dbs_info policy_dbs; + unsigned int down_skip; + unsigned int requested_freq; +}; + +struct cs_dbs_tuners { + unsigned int down_threshold; + unsigned int freq_step; +}; + +struct cfg80211_per_bw_puncturing_values { + u8 len; + const u16 *valid_values; }; #ifndef BPF_NO_PRESERVE_ACCESS_INDEX diff --git a/scheds/include/vmlinux/vmlinux.h b/scheds/include/vmlinux/vmlinux.h index 3807d89..c5da5a5 120000 --- a/scheds/include/vmlinux/vmlinux.h +++ b/scheds/include/vmlinux/vmlinux.h @@ -1 +1 @@ -vmlinux-v6.9-g5dc95302301f.h \ No newline at end of file +vmlinux-v6.9-g73f4013eb1eb.h \ No newline at end of file